").addClass(h).appendTo(a("body")),e=c.removeClass(p.inward).removeClass(p.outward).addClass(p.animating).addClass(p.transition).addClass(i).css(s),f=c.addClass(p.inward).css(s),g=c.attr("class",h).show().css("display"),v.verbose("Determining final display state",g),e!=f?(v.debug("Transition exists for animation",i),j=!0):(v.debug("Static animation found",i,g),j=!1),c.remove(),v.save.displayType(g),v.save.transitionExists(i,j)),j}},is:{animating:function(){return w.hasClass(p.animating)},inward:function(){return w.hasClass(p.inward)},outward:function(){return w.hasClass(p.outward)},looping:function(){return w.hasClass(p.looping)},occuring:function(a){return a=a||b.animation,w.hasClass(a)},visible:function(){return w.is(":visible")},supported:function(){return s!==!1&&r!==!1}},hide:function(){v.verbose("Hiding element"),v.remove.visible(),v.set.hidden(),v.repaint()},show:function(a){v.verbose("Showing element",a),v.remove.hidden(),v.set.visible(),v.repaint()},start:function(){v.verbose("Starting animation"),w.removeClass(p.disabled)},stop:function(){v.debug("Stopping animation"),w.addClass(p.disabled)},toggle:function(){v.debug("Toggling play status"),w.toggleClass(p.disabled)},setting:function(c,e){if(a.isPlainObject(c))a.extend(!0,b,c);else{if(e===d)return b[c];b[c]=e}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,v,b);else{if(c===d)return v[b];v[b]=c}},debug:function(){b.debug&&(b.performance?v.performance.log(arguments):(v.debug=Function.prototype.bind.call(console.info,console,b.name+":"),v.debug.apply(console,arguments)))},verbose:function(){b.verbose&&b.debug&&(b.performance?v.performance.log(arguments):(v.verbose=Function.prototype.bind.call(console.info,console,b.name+":"),v.verbose.apply(console,arguments)))},error:function(){v.error=Function.prototype.bind.call(console.error,console,b.name+":"),v.error.apply(console,arguments)},performance:{log:function(a){var c,d,e;b.performance&&(c=(new Date).getTime(),e=h||c,d=c-e,h=c,i.push({Element:x,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":d})),clearTimeout(v.performance.timer),v.performance.timer=setTimeout(v.performance.display,100)},display:function(){var c=b.name+":",e=0;h=!1,clearTimeout(v.performance.timer),a.each(i,function(a,b){e+=b["Execution Time"]}),c+=" "+e+"ms",g&&(c+=" '"+g+"'"),f.size()>1&&(c+=" ("+f.size()+")"),(console.group!==d||console.table!==d)&&i.length>0&&(console.groupCollapsed(c),console.table?console.table(i):a.each(i,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),i=[]}},invoke:function(b,c,f){var g,h,i,j=n;return c=c||l,f=x||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,c):h!==d&&(i=h),a.isArray(e)?e.push(i):e!==d?e=[e,i]:i!==d&&(e=i),h||!1}},v.initialize()}),e!==d?e:this},a.fn.transition.exists={},a.fn.transition.settings={name:"Transition",debug:!1,verbose:!0,performance:!0,namespace:"transition",complete:function(){},onShow:function(){},onHide:function(){},allowRepeats:!1,animation:"fade",duration:"700ms",queue:!0,className:{animating:"animating",disabled:"disabled",hidden:"hidden",inward:"in",loading:"loading",looping:"looping",outward:"out",transition:"ui transition",visible:"visible"},error:{noAnimation:"There is no css animation matching the one you specified.",repeated:"That animation is already occurring, cancelling repeated animation",method:"The method you called is not defined",support:"This browser does not support CSS animations"}}}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/build/minified/modules/video.min.css b/css/semantic/build/minified/modules/video.min.css
new file mode 100644
index 0000000..4f0f124
--- /dev/null
+++ b/css/semantic/build/minified/modules/video.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.video{position:relative;max-width:100%}.ui.video .placeholder{background-color:#333}.ui.video .play{cursor:pointer;position:absolute;top:0;left:0;z-index:10;width:100%;height:100%;-ms-filter:"alpha(Opacity=60)";filter:alpha(opacity=60);opacity:.6;-webkit-transition:opacity .3s;-moz-transition:opacity .3s;transition:opacity .3s}.ui.video .play.icon:before{position:absolute;top:50%;left:50%;z-index:11;font-size:6rem;margin:-3rem 0 0 -3rem;color:#FFF;text-shadow:0 3px 3px rgba(0,0,0,.4)}.ui.video .placeholder{display:block;width:100%;height:100%}.ui.video .embed{display:none}.ui.video .play:hover{opacity:1}.ui.video.active .play,.ui.video.active .placeholder{display:none}.ui.video.active .embed{display:block}
\ No newline at end of file
diff --git a/css/semantic/build/minified/modules/video.min.js b/css/semantic/build/minified/modules/video.min.js
new file mode 100644
index 0000000..e4d650d
--- /dev/null
+++ b/css/semantic/build/minified/modules/video.min.js
@@ -0,0 +1 @@
+!function(a,b,c,d){a.fn.video=function(b){var c,e=a(this),f=e.selector||"",g=(new Date).getTime(),h=[],i=arguments[0],j="string"==typeof i,k=[].slice.call(arguments,1);return e.each(function(){var l,m=a.isPlainObject(b)?a.extend(!0,{},a.fn.video.settings,b):a.extend({},a.fn.video.settings),n=m.selector,o=m.className,p=m.error,q=m.metadata,r=m.namespace,s="."+r,t="module-"+r,u=a(this),v=u.find(n.placeholder),w=u.find(n.playButton),x=u.find(n.embed),y=this,z=u.data(t);l={initialize:function(){l.debug("Initializing video"),v.on("click"+s,l.play),w.on("click"+s,l.play),l.instantiate()},instantiate:function(){l.verbose("Storing instance of module",l),z=l,u.data(t,l)},destroy:function(){l.verbose("Destroying previous instance of video"),u.removeData(t).off(s),v.off(s),w.off(s)},change:function(a,b,c){l.debug("Changing video to ",a,b,c),u.data(q.source,a).data(q.id,b).data(q.url,c),m.onChange()},reset:function(){l.debug("Clearing video embed and showing placeholder"),u.removeClass(o.active),x.html(" "),v.show(),m.onReset()},play:function(){l.debug("Playing video");var a=u.data(q.source)||!1,b=u.data(q.url)||!1,c=u.data(q.id)||!1;x.html(l.generate.html(a,c,b)),u.addClass(o.active),m.onPlay()},generate:{html:function(a,b,c){l.debug("Generating embed html");var d,e="auto"==m.width?u.width():m.width,f="auto"==m.height?u.height():m.height;return a&&b?"vimeo"==a?d='
':"youtube"==a&&(d='
VIDEO '):c?d='
':l.error(p.noVideo),d},url:function(a){var b=m.api?1:0,c=m.autoplay?1:0,d=m.hd?1:0,e=m.showUI?1:0,f=m.showUI?0:1,g="";return"vimeo"==a&&(g="api="+b+"&title="+e+"&byline="+e+"&portrait="+e+"&autoplay="+c,m.color&&(g+="&color="+m.color)),"ustream"==a?(g="autoplay="+c,m.color&&(g+="&color="+m.color)):"youtube"==a&&(g="enablejsapi="+b+"&autoplay="+c+"&autohide="+f+"&hq="+d+"&modestbranding=1",m.color&&(g+="&color="+m.color)),g}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,m,b);else{if(c===d)return m[b];m[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,l,b);else{if(c===d)return l[b];l[b]=c}},debug:function(){m.debug&&(m.performance?l.performance.log(arguments):(l.debug=Function.prototype.bind.call(console.info,console,m.name+":"),l.debug.apply(console,arguments)))},verbose:function(){m.verbose&&m.debug&&(m.performance?l.performance.log(arguments):(l.verbose=Function.prototype.bind.call(console.info,console,m.name+":"),l.verbose.apply(console,arguments)))},error:function(){l.error=Function.prototype.bind.call(console.error,console,m.name+":"),l.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;m.performance&&(b=(new Date).getTime(),d=g||b,c=b-d,g=b,h.push({Element:y,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(l.performance.timer),l.performance.timer=setTimeout(l.performance.display,100)},display:function(){var b=m.name+":",c=0;g=!1,clearTimeout(l.performance.timer),a.each(h,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",f&&(b+=" '"+f+"'"),e.size()>1&&(b+=" ("+e.size()+")"),(console.group!==d||console.table!==d)&&h.length>0&&(console.groupCollapsed(b),console.table?console.table(h):a.each(h,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),h=[]}},invoke:function(b,e,f){var g,h,i,j=z;return e=e||k,f=y||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,e):h!==d&&(i=h),a.isArray(c)?c.push(i):c!==d?c=[c,i]:i!==d&&(c=i),h}},j?(z===d&&l.initialize(),l.invoke(i)):(z!==d&&l.destroy(),l.initialize())}),c!==d?c:this},a.fn.video.settings={name:"Video",namespace:"video",debug:!1,verbose:!0,performance:!0,metadata:{source:"source",id:"id",url:"url"},onPlay:function(){},onReset:function(){},onChange:function(){},onPause:function(){},onStop:function(){},width:"auto",height:"auto",autoplay:!1,color:"#442359",hd:!0,showUI:!1,api:!0,error:{noVideo:"No video specified",method:"The method you called is not defined"},className:{active:"active"},selector:{embed:".embed",placeholder:".placeholder",playButton:".play"}}}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/build/minified/views/comment.min.css b/css/semantic/build/minified/views/comment.min.css
new file mode 100644
index 0000000..dc1c763
--- /dev/null
+++ b/css/semantic/build/minified/views/comment.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.comments a{cursor:pointer}.ui.comments .comment{position:relative;margin-top:.5em;padding-top:.5em}.ui.comments .comment:first-child{margin-top:0;padding-top:0}.ui.comments .comment .avatar{display:block;float:left;width:4em}.ui.comments .comment .avatar img{display:block;margin:0 auto;width:3em;height:3em;border-radius:500px}.ui.comments .comment>.content,.ui.comments .comment>.avatar{display:block}.ui.comments .comment .avatar~.content{padding:0 1em}.ui.comments .comment>.avatar~.content{padding-top:.25em;margin-left:3.5em}.ui.comments .comment .metadata{display:inline-block;margin-left:.3em;color:rgba(0,0,0,.4)}.ui.comments .comment .metadata>*{display:inline-block;margin:0 .3em 0 0}.ui.comments .comment .text{margin:.25em 0 .5em;word-wrap:break-word}.ui.comments .comment .actions{font-size:.9em}.ui.comments .comment .actions a{display:inline-block;margin:0 .3em 0 0;color:rgba(0,0,0,.3)}.ui.comments .comment .actions a.active,.ui.comments .comment .actions a:hover{color:rgba(0,0,0,.6)}.ui.comments .reply.form{margin-top:.75em;width:100%;max-width:30em}.ui.comments .comment .reply.form{margin-left:2em}.ui.comments>.reply.form{margin-top:1.5em;max-width:40em}.ui.comments .reply.form textarea{height:12em}.ui.comments .comment .comments{margin-top:.5em;padding-top:.5em;padding-bottom:1em}.ui.comments .comment .comments:before{position:absolute;top:0;left:0}.ui.comments>.comment .comments{margin-left:2em}.ui.comments>.comment>.comments>.comment>.comments{margin-left:1.75em}.ui.comments>.comment>.comments>.comment>.comments>.comment>.comments{margin-left:1.5em}.ui.comments>.comment>.comments>.comment>.comments>.comment>.comments>.comment .comments{margin-left:.5em}.ui.threaded.comments .comment .comments{margin-left:2em!important;padding-left:2em!important;-webkit-box-shadow:-1px 0 0 rgba(0,0,0,.05);box-shadow:-1px 0 0 rgba(0,0,0,.05)}.ui.minimal.comments .comment .actions{opacity:0;-webkit-transition:opacity .1s ease-out;-moz-transition:opacity .1s ease-out;transition:opacity .1s ease-out;-webkit-transition-delay:.1s;-moz-transition-delay:.1s;transition-delay:.1s}.ui.minimal.comments .comment>.content:hover>.actions{opacity:1}.ui.small.comments{font-size:.875em}
\ No newline at end of file
diff --git a/css/semantic/build/minified/views/feed.min.css b/css/semantic/build/minified/views/feed.min.css
new file mode 100644
index 0000000..9af5eee
--- /dev/null
+++ b/css/semantic/build/minified/views/feed.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.feed a{cursor:pointer}.ui.feed,.ui.feed .event,.ui.feed .label,.ui.feed .content,.ui.feed .extra{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.feed .event{width:100%;display:table;padding:1em}.ui.feed .event:first-child{border-top:0}.ui.feed .event:last-child{margin-bottom:1em}.ui.feed .label{width:3em;display:table-cell;vertical-align:top;text-align:left}.ui.feed .label .icon{font-size:1.5em;padding:.5em;margin:0}.ui.feed .label img{width:3em;margin:0;border-radius:50em}.ui.feed .label+.content{padding:.75em 1em 0}.ui.feed .content{display:table-cell;vertical-align:top;text-align:left;word-wrap:break-word}.ui.feed .content .date{float:right;padding-left:1em;color:rgba(0,0,0,.4)}.ui.feed .content .summary{color:rgba(0,0,0,.75)}.ui.feed .content .summary img{display:inline-block;margin-right:.25em;width:4em;border-radius:500px}.ui.feed .content .extra{margin:1em 0 0;padding:.5em 0 0;color:rgba(0,0,0,.5)}.ui.feed .content .extra.images img{display:inline-block;margin-right:.25em;width:6em}.ui.feed .content .extra.text{padding:.5em 1em;border-left:.2em solid rgba(0,0,0,.1)}.ui.small.feed{font-size:.875em}.ui.small.feed .label img{width:2.5em}.ui.small.feed .label .icon{font-size:1.25em}.ui.feed .event{padding:.75em 0}.ui.small.feed .label+.content{padding:.5em .5em 0}.ui.small.feed .content .extra.images img{width:5em}.ui.small.feed .content .extra{margin:.5em 0 0}.ui.small.feed .content .extra.text{padding:.25em .5em}
\ No newline at end of file
diff --git a/css/semantic/build/minified/views/item.min.css b/css/semantic/build/minified/views/item.min.css
new file mode 100644
index 0000000..febb118
--- /dev/null
+++ b/css/semantic/build/minified/views/item.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.items{margin:1em 0 0}.ui.items:first-child{margin-top:0}.ui.items:last-child{margin-bottom:-1em}.ui.items:after{display:block;content:' ';height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.row>.item,.ui.items>.item{display:block;float:left;position:relative;top:0;width:316px;min-height:375px;margin:0 .5em 2.5em;padding:0;background-color:#FFF;line-height:1.2;font-size:1em;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1);border-bottom:.2em solid rgba(0,0,0,.2);border-radius:.33em;-webkit-transition:-webkit-box-shadow .2s ease;-moz-transition:box-shadow .2s ease;transition:box-shadow .2s ease;padding:.5em}.ui.items a.item,.ui.items .item a{cursor:pointer}.ui.items .item,.ui.items .item>.image,.ui.items .item>.image .overlay,.ui.items .item>.content,.ui.items .item>.content>.meta,.ui.items .item>.content>.extra{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.items .item>.image{display:block;position:relative;background-color:rgba(0,0,0,.05);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;border-radius:.2em}.ui.items .item>.image>img{display:block;width:100%}.ui.items .item>.content{padding:.75em .5em}.ui.items .item>.content>.name{display:block;font-size:1.25em;font-weight:700;margin-bottom:.2em;color:rgba(0,0,0,.7)}.ui.items .item>.content>.description{clear:both;margin:0;color:rgba(0,0,0,.45)}.ui.items .item>.content>.description p{margin:0 0 .2em}.ui.items .item>.content>.description p:last-child{margin-bottom:0}.ui.items .item .meta{float:right;color:rgba(0,0,0,.35)}.ui.items .item>.content>.meta+.name{float:left}.ui.items .item .star.label:hover::after{border-right-color:#F6EFC3}.ui.items .item .star.label:hover::after{border-top-color:#F6EFC3}.ui.items .item .star.label:hover .icon{color:#ac9400}.ui.items .item .star.label.active::after{border-right-color:#F6EFC3}.ui.items .item .star.label.active::after{border-top-color:#F6EFC3}.ui.items .item .star.label.active .icon{color:#ac9400}.ui.items .item .like.label:hover::after{border-right-color:#F5E1E2}.ui.items .item .like.label.active::after{border-top-color:#F5E1E2}.ui.items .item .like.label:hover .icon{color:#ef404a}.ui.items .item .like.label.active::after{border-right-color:#F5E1E2}.ui.items .item .like.label.active::after{border-top-color:#F5E1E2}.ui.items .item .like.label.active .icon{color:#ef404a}.ui.items .item .extra{position:absolute;width:100%;padding:0 .5em;bottom:-2em;left:0;height:1.5em;color:rgba(0,0,0,.25);-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.ui.items .item .extra>img{display:inline-block;border-radius:500px;margin-right:.25em;vertical-align:middle;width:2em}.ui.items .item .extra .left{float:left}.ui.items .item .extra .right{float:right}.ui.items .item:hover{cursor:pointer;z-index:5;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.2)}.ui.items .item:hover .extra{color:rgba(0,0,0,.5)}.ui.items .item:nth-of-type(6n+1):hover{border-bottom-color:#6ECFF5!important}.ui.items .item:nth-of-type(6n+2):hover{border-bottom-color:#5C6166!important}.ui.items .item:nth-of-type(6n+3):hover{border-bottom-color:#A1CF64!important}.ui.items .item:nth-of-type(6n+4):hover{border-bottom-color:#D95C5C!important}.ui.items .item:nth-of-type(6n+5):hover{border-bottom-color:#00B5AD!important}.ui.items .item:nth-of-type(6n+6):hover{border-bottom-color:#564F8A!important}.ui.connected.items{display:table;width:100%;margin-left:0!important;margin-right:0!important}.ui.connected.items>.row>.item,.ui.connected.items>.item{float:none;display:table-cell;vertical-align:top;height:auto;border-radius:0;margin:0;width:33.33%}.ui.connected.items>.row{display:table;margin:.5em 0}.ui.connected.items>.row:first-child{margin-top:0}.ui.connected.items>.item,.ui.connected.items>.row:last-child>.item{border-bottom:.2em solid rgba(0,0,0,.2)}.ui.connected.items>.row:last-child>.item:first-child,.ui.connected.items>.item:first-child{border-radius:0 0 0 .33em}.ui.connected.items>.row:last-child>.item:last-child,.ui.connected.items>.item:last-child{border-radius:0 0 .33em}.ui.connected.items .item:hover{border-bottom-width:.2em}.ui.one.connected.items>.row>.item,.ui.one.connected.items>.item{width:50%;padding-left:2%;padding-right:2%}.ui.two.connected.items>.row>.item,.ui.two.connected.items>.item{width:50%;padding-left:1%;padding-right:1%}.ui.three.connected.items>.row>.item,.ui.three.connected.items>.item{width:33.333%;padding-left:1%;padding-right:1%}.ui.four.connected.items>.row>.item,.ui.four.connected.items>.item{width:25%;padding-left:.5%;padding-right:.5%}.ui.five.connected.items>.row>.item,.ui.five.connected.items>.item{width:20%;padding-left:.5%;padding-right:.5%}.ui.six.connected.items>.row>.item,.ui.six.connected.items>.item{width:16.66%;padding-left:.5%;padding-right:.5%}.ui.seven.connected.items>.row>.item,.ui.seven.connected.items>.item{width:14.28%;padding-left:.5%;padding-right:.5%}.ui.eight.connected.items>.row>.item,.ui.eight.connected.items>.item{width:12.5%;padding-left:.25%;padding-right:.25%}.ui.nine.connected.items>.row>.item,.ui.nine.connected.items>.item{width:11.11%;padding-left:.25%;padding-right:.25%}.ui.ten.connected.items>.row>.item,.ui.ten.connected.items>.item{width:10%;padding-left:.2%;padding-right:.2%}.ui.eleven.connected.items>.row>.item,.ui.eleven.connected.items>.item{width:9.09%;padding-left:.2%;padding-right:.2%}.ui.twelve.connected.items>.row>.item,.ui.twelve.connected.items>.item{width:8.3333%;padding-left:.1%;padding-right:.1%}@media only screen and (max-width:768px){.ui.stackable.items{display:block!important}.ui.stackable.items>.item,.ui.stackable.items>.row>.item{display:block!important;height:auto!important;width:auto!important;padding:0!important}}.ui.horizontal.items>.item,.ui.items>.horizontal.item{display:table}.ui.horizontal.items>.item>.image,.ui.items>.horizontal.item>.image{display:table-cell;width:50%}.ui.horizontal.items>.item>.image+.content,.ui.items>.horizontal.item>.image+.content{width:50%;display:table-cell}.ui.horizontal.items>.item>.content,.ui.items>.horizontal.item>.content{padding:1% 1.7% 11% 3%;vertical-align:top}.ui.horizontal.items>.item>.meta,.ui.items>.horizontal.item>.meta{position:absolute;padding:0;bottom:7%;left:3%;width:94%}.ui.horizontal.items>.item>.image+.content+.meta,.ui.items>.horizontal.item>.image+.content+.meta{bottom:7%;left:53%;width:44%}.ui.horizontal.items>.item .avatar,.ui.items>.horizontal.item .avatar{width:11.5%}.ui.items>.item .avatar{max-width:25px}.ui.one.items{margin-left:-2%;margin-right:-2%}.ui.one.items>.item{width:100%;margin-left:2%;margin-right:2%}.ui.two.items{margin-left:-1%;margin-right:-1%}.ui.two.items>.item{width:48%;margin-left:1%;margin-right:1%}.ui.two.items>.item:nth-child(2n+1){clear:left}.ui.three.items{margin-left:-1%;margin-right:-1%}.ui.three.items>.item{width:31.333%;margin-left:1%;margin-right:1%}.ui.three.items>.item:nth-child(3n+1){clear:left}.ui.four.items{margin-left:-.5%;margin-right:-.5%}.ui.four.items>.item{width:24%;margin-left:.5%;margin-right:.5%}.ui.four.items>.item:nth-child(4n+1){clear:left}.ui.five.items{margin-left:-.5%;margin-right:-.5%}.ui.five.items>.item{width:19%;margin-left:.5%;margin-right:.5%}.ui.five.items>.item:nth-child(5n+1){clear:left}.ui.six.items{margin-left:-.5%;margin-right:-.5%}.ui.six.items>.item{width:15.66%;margin-left:.5%;margin-right:.5%}.ui.six.items>.item:nth-child(6n+1){clear:left}.ui.seven.items{margin-left:-.5%;margin-right:-.5%}.ui.seven.items>.item{width:13.28%;margin-left:.5%;margin-right:.5%;font-size:11px}.ui.seven.items>.item:nth-child(7n+1){clear:left}.ui.eight.items{margin-left:-.25%;margin-right:-.25%}.ui.eight.items>.item{width:12%;margin-left:.25%;margin-right:.25%;font-size:11px}.ui.eight.items>.item:nth-child(8n+1){clear:left}.ui.nine.items{margin-left:-.25%;margin-right:-.25%}.ui.nine.items>.item{width:10.61%;margin-left:.25%;margin-right:.25%;font-size:10px}.ui.nine.items>.item:nth-child(9n+1){clear:left}.ui.ten.items{margin-left:-.2%;margin-right:-.2%}.ui.ten.items>.item{width:9.6%;margin-left:.2%;margin-right:.2%;font-size:10px}.ui.ten.items>.item:nth-child(10n+1){clear:left}.ui.eleven.items{margin-left:-.2%;margin-right:-.2%}.ui.eleven.items>.item{width:8.69%;margin-left:.2%;margin-right:.2%;font-size:9px}.ui.eleven.items>.item:nth-child(11n+1){clear:left}.ui.twelve.items{margin-left:-.1%;margin-right:-.1%}.ui.twelve.items>.item{width:8.1333%;margin-left:.1%;margin-right:.1%;font-size:9px}.ui.twelve.items>.item:nth-child(12n+1){clear:left}
\ No newline at end of file
diff --git a/css/semantic/build/minified/views/list.min.css b/css/semantic/build/minified/views/list.min.css
new file mode 100644
index 0000000..9de44ef
--- /dev/null
+++ b/css/semantic/build/minified/views/list.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+ul.ui.list,ol.ui.list,.ui.list{list-style-type:none;margin:1em 0;padding:0}ul.ui.list ul,ol.ui.list ol,.ui.list .list{margin:0;padding:.5em 0 .5em 1em}ul.ui.list:first-child,ol.ui.list:first-child,.ui.list:first-child{margin-top:0}ul.ui.list:last-child,ol.ui.list:last-child,.ui.list:last-child{margin-bottom:0}ul.ui.list li,ol.ui.list li,.ui.list .item{display:list-item;list-style-type:none;list-style-position:inside;padding:.3em 0;line-height:1.2em}.ui.list .item:after{content:'';display:block;height:0;clear:both;visibility:hidden}.ui.list .list{clear:both}.ui.list .item>.icon{display:block;float:left;margin:0 1em 0 0;padding:.1em 0 0}.ui.list .item>.icon:only-child{display:inline-block}.ui.horizontal.list .item>.icon{margin:0;padding:0 .25em 0 0}.ui.horizontal.list .item>.icon,.ui.horizontal.list .item>.icon+.content{float:none;display:inline-block}.ui.list .item>img{display:block;float:left;margin-right:1em;vertical-align:middle}.ui.list .item>.content{display:inline-block;vertical-align:middle;line-height:1.2em}.ui.list .item>.icon+.content{display:table-cell;vertical-align:top}.ui.list a{cursor:pointer}.ui.list a .icon{color:rgba(0,0,0,.6);-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.ui.list .header{font-weight:700}.ui.list .description{color:rgba(0,0,0,.5)}.ui.list .item>.left.floated{margin-right:1em;float:left}.ui.list .item>.right.floated{margin-left:1em;float:right}.ui.horizontal.list{display:inline-block;font-size:0}.ui.horizontal.list>.item{display:inline-block;margin-left:1em;font-size:1rem}.ui.horizontal.list>.item:first-child{margin-left:0}.ui.horizontal.list .list{padding-left:0;padding-bottom:0}.ui.list a:hover .icon{color:rgba(0,0,0,.8)}.ui.inverted.list a .icon{color:rgba(255,255,255,.6)}.ui.inverted.list .description{color:rgba(255,255,255,.8)}.ui.inverted.link.list .item{color:rgba(255,255,255,.4)}.ui.link.list .item{color:rgba(0,0,0,.3)}.ui.link.list a.item,.ui.link.list .item a{color:rgba(0,0,0,.5)}.ui.link.list a.item:hover,.ui.link.list .item a:hover{color:rgba(0,0,0,.8)}.ui.link.list a.item:active,.ui.link.list .item a:active{color:rgba(0,0,0,.8)}.ui.link.list a.active.item,.ui.link.list .active.item a{color:rgba(0,0,0,.8)}.ui.inverted.link.list a.item,.ui.inverted.link.list .item a{color:rgba(255,255,255,.6)}.ui.inverted.link.list a.item:hover,.ui.inverted.link.list .item a:hover{color:rgba(255,255,255,.8)}.ui.inverted.link.list a.item:active,.ui.inverted.link.list .item a:active{color:rgba(255,255,255,.9)}.ui.inverted.link.list a.active.item,.ui.inverted.link.list .active.item a{color:rgba(255,255,255,.8)}.ui.selection.list .item{cursor:pointer;color:rgba(0,0,0,.4);padding:.5em;-webkit-transition:.2s color ease,.2s padding-left ease,.2s background-color ease;-moz-transition:.2s color ease,.2s padding-left ease,.2s background-color ease;transition:.2s color ease,.2s padding-left ease,.2s background-color ease}.ui.selection.list .item:hover{background-color:rgba(0,0,0,.02);color:rgba(0,0,0,.7)}.ui.selection.list .item:active{background-color:rgba(0,0,0,.05);color:rgba(0,0,0,.7)}.ui.selection.list .item.active{background-color:rgba(0,0,0,.04);color:rgba(0,0,0,.7)}.ui.animated.list .item{-webkit-transition:.2s color ease,.2s padding-left ease,.2s background-color ease;-moz-transition:.2s color ease,.2s padding-left ease,.2s background-color ease;transition:.2s color ease,.2s padding-left ease,.2s background-color ease}.ui.animated.list:not(.horizontal) .item:hover{padding-left:1em}.ui.animated.list:not(.horizontal) .item:hover .item:hover{padding-left:.5em}.ui.inverted.selection.list .item{color:rgba(255,255,255,.6)}.ui.inverted.selection.list .item:hover{background-color:rgba(255,255,255,.04);color:rgba(255,255,255,.8)}.ui.inverted.selection.list .item:active{background-color:rgba(255,255,255,.1);color:rgba(255,255,255,.7)}.ui.inverted.selection.list .item.active{background-color:rgba(255,255,255,.08);color:#FFF}ul.ui.list,.ui.bulleted.list{margin-left:1.5em}ul.ui.list li,.ui.bulleted.list .item{position:relative}ul.ui.list li:before,.ui.bulleted.list .item:before{position:absolute;left:-1.5em;content:'•'}ul.ui.list ul,.ui.bulleted.list .list{padding-left:1.5em}ul.ui.horizontal.bulleted.list,.ui.horizontal.bulleted.list{margin-left:0}ul.ui.horizontal.bulleted.list li,.ui.horizontal.bulleted.list .item{margin-left:1.5em}ul.ui.horizontal.bulleted.list li:before,.ui.horizontal.bulleted.list .item:before{left:-.9em}ul.ui.horizontal.bulleted.list li:first-child,.ui.horizontal.bulleted.list .item:first-child{margin-left:0}ul.ui.horizontal.bulleted.list li:first-child::before,.ui.horizontal.bulleted.list .item:first-child::before{display:none}ol.ui.list,.ui.ordered.list{counter-reset:ordered;margin-left:2em;list-style-type:none}ol.ui.list li,.ui.ordered.list .item{list-style-type:none;position:relative}ol.ui.list li:before,.ui.ordered.list .item:before{position:absolute;left:-2em;counter-increment:ordered;content:counters(ordered,".");text-align:right;vertical-align:top;opacity:.75}ol.ui.list ol,.ui.ordered.list .list{counter-reset:ordered;padding-left:2.5em}ol.ui.list ol li:before,.ui.ordered.list .list .item:before{left:-2.5em}ol.ui.horizontal.list,.ui.ordered.horizontal.list{margin-left:0}ol.ui.horizontal.list li:before,.ui.ordered.horizontal.list .item:before{position:static;left:0;margin:0 .5em 0 0}.ui.divided.list>.item,.ui.divided.list:not(.horizontal)>.list{border-top:1px solid rgba(0,0,0,.1);padding-left:.5em;padding-right:.5em}.ui.divided.list .item .menu .item{border-width:0}.ui.divided.list .item:first-child{border-top-width:0}.ui.divided.list:not(.horizontal) .list{margin-left:-.5em;margin-right:-.5em}.ui.divided.list:not(.horizontal) .list .item{padding-left:1em;padding-right:1em}.ui.divided.list:not(.horizontal) .list .item:first-child{border-top-width:1px}.ui.divided.bulleted.list{margin-left:0}.ui.divided.bulleted.list .item{padding-left:1.5em}.ui.divided.bulleted.list .item:before{left:.5em}.ui.divided.ordered.list{margin-left:0}.ui.divided.ordered.list>.item{padding-left:2em;padding-right:2em}.ui.divided.ordered.list>.item:before{left:.5em}.ui.divided.ordered.list .item .list{margin-left:-2em;margin-right:-2em}.ui.divided.horizontal.list{margin-left:0}.ui.divided.horizontal.list>.item{border-top:0;border-left:1px solid rgba(0,0,0,.1);margin:0;padding-left:.75em;padding-right:.75em;line-height:.6em}.ui.horizontal.divided.list>.item:first-child{border-left:0;padding-left:0}.ui.divided.inverted.list>.item,.ui.divided.inverted.list>.list{border-color:rgba(255,255,255,.2)}.ui.divided.inverted.horizontal.list .item{border-color:rgba(255,255,255,.2)}.ui.celled.list>.item,.ui.celled.list>.list{border-top:1px solid rgba(0,0,0,.1);padding-left:.5em;padding-right:.5em}.ui.celled.list>.item:last-child{border-bottom:1px solid rgba(0,0,0,.1)}.ui.celled.list .item .list{margin-left:-.5em;margin-right:-.5em}.ui.celled.list .item .list .item{border-width:0}.ui.celled.list .list .item:first-child{border-top-width:0}.ui.celled.bulleted.list{margin-left:0}.ui.celled.bulleted.list>.item{padding-left:1.5em}.ui.celled.bulleted.list>.item:before{left:.5em}.ui.celled.ordered.list{margin-left:0}.ui.celled.ordered.list .item{padding-left:2em;padding-right:2em}.ui.celled.ordered.list .item:before{left:.5em}.ui.celled.ordered.list .item .list{margin-left:-2em;margin-right:-2em}.ui.horizontal.celled.list{margin-left:0}.ui.horizontal.celled.list .item{border-top:0;border-left:1px solid rgba(0,0,0,.1);margin:0;padding-left:.75em;padding-right:.75em;line-height:.6em}.ui.horizontal.celled.list .item:last-child{border-bottom:0;border-right:1px solid rgba(0,0,0,.1)}.ui.celled.inverted.list>.item,.ui.celled.inverted.list>.list{border-color:rgba(255,255,255,.2)}.ui.celled.inverted.horizontal.list .item{border-color:rgba(255,255,255,.2)}.ui.relaxed.list:not(.horizontal) .item{padding-top:.5em;padding-bottom:.5em}.ui.relaxed.list .header{margin-bottom:.25em}.ui.horizontal.relaxed.list .item{padding-left:1.25em;padding-right:1.25em}.ui.very.relaxed.list:not(.horizontal) .item{padding-top:1em;padding-bottom:1em}.ui.very.relaxed.list .header{margin-bottom:.5em}.ui.horizontal.very.relaxed.list .item{padding-left:2em;padding-right:2em}.ui.mini.list .item{font-size:.7rem}.ui.tiny.list .item{font-size:.8125rem}.ui.small.list .item{font-size:.875rem}.ui.list .item{font-size:1em}.ui.large.list .item{font-size:1.125rem}.ui.big.list .item{font-size:1.25rem}.ui.huge.list .item{font-size:1.375rem}.ui.massive.list .item{font-size:1.5rem}
\ No newline at end of file
diff --git a/css/semantic/build/minified/views/statistic.min.css b/css/semantic/build/minified/views/statistic.min.css
new file mode 100644
index 0000000..bcb0e38
--- /dev/null
+++ b/css/semantic/build/minified/views/statistic.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.statistic{text-align:center}.ui.statistic>.number{font-size:4em;font-weight:700;color:rgba(0,0,0,.7)}.ui.statistic>.description{opacity:.8}
\ No newline at end of file
diff --git a/css/semantic/build/packaged/css/semantic.css b/css/semantic/build/packaged/css/semantic.css
new file mode 100644
index 0000000..52512b2
--- /dev/null
+++ b/css/semantic/build/packaged/css/semantic.css
@@ -0,0 +1,18577 @@
+/*
+ * # Semantic - Breadcrumb
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Breadcrumb
+*******************************/
+
+.ui.breadcrumb {
+ margin: 1em 0em;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.ui.breadcrumb:first-child {
+ margin-top: 0em;
+}
+
+.ui.breadcrumb:last-child {
+ margin-bottom: 0em;
+}
+
+/*******************************
+ Content
+*******************************/
+
+.ui.breadcrumb .divider {
+ display: inline-block;
+ opacity: 0.5;
+ margin: 0em 0.15em 0em;
+ font-size: 1em;
+ color: rgba(0, 0, 0, 0.3);
+}
+
+.ui.breadcrumb a.section {
+ cursor: pointer;
+}
+
+.ui.breadcrumb .section {
+ display: inline-block;
+ margin: 0em;
+ padding: 0em;
+}
+
+/* Loose Coupling */
+
+.ui.breadcrumb.segment {
+ display: inline-block;
+ padding: 0.5em 1em;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.breadcrumb .active.section {
+ font-weight: bold;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.small.breadcrumb {
+ font-size: 0.75em;
+}
+
+.ui.large.breadcrumb {
+ font-size: 1.1em;
+}
+
+.ui.huge.breadcrumb {
+ font-size: 1.3em;
+}
+/*
+ * # Semantic - Form
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------------
+ Form
+---------------------*/
+
+.ui.form {
+ position: relative;
+ max-width: 100%;
+}
+
+.ui.form :first-child {
+ margin-top: 0em;
+}
+
+.ui.form :last-child {
+ margin-bottom: 0em;
+}
+
+/*--------------------
+ Content
+---------------------*/
+
+.ui.form > p {
+ margin: 1em 0;
+}
+
+/*--------------------
+ Field
+---------------------*/
+
+.ui.form .field {
+ clear: both;
+ margin: 0em 0em 1em;
+}
+
+/*--------------------
+ Labels
+---------------------*/
+
+.ui.form .field > label {
+ margin: 0em 0em 0.3em;
+ display: block;
+ color: #555555;
+ font-size: 0.875em;
+}
+
+/*--------------------
+ Standard Inputs
+---------------------*/
+
+.ui.form textarea,
+.ui.form input[type="text"],
+.ui.form input[type="email"],
+.ui.form input[type="date"],
+.ui.form input[type="password"],
+.ui.form input[type="number"],
+.ui.form input[type="url"],
+.ui.form input[type="tel"],
+.ui.form .ui.input {
+ width: 100%;
+}
+
+.ui.form textarea,
+.ui.form input[type="text"],
+.ui.form input[type="email"],
+.ui.form input[type="date"],
+.ui.form input[type="password"],
+.ui.form input[type="number"],
+.ui.form input[type="url"],
+.ui.form input[type="tel"] {
+ margin: 0em;
+ padding: 0.65em 1em;
+ font-size: 1em;
+ background-color: #FFFFFF;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ outline: none;
+ color: rgba(0, 0, 0, 0.7);
+ border-radius: 0.3125em;
+ -webkit-transition: background-color 0.3s ease-out, -webkit-box-shadow 0.2s ease, border-color 0.2s ease;
+ -moz-transition: background-color 0.3s ease-out, box-shadow 0.2s ease, border-color 0.2s ease;
+ transition: background-color 0.3s ease-out, box-shadow 0.2s ease, border-color 0.2s ease;
+ -webkit-box-shadow: 0em 0em 0em 0em rgba(0, 0, 0, 0.3) inset;
+ box-shadow: 0em 0em 0em 0em rgba(0, 0, 0, 0.3) inset;
+ -webkit-appearance: none;
+ -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.textarea,
+.ui.form textarea {
+ line-height: 1.33;
+ min-height: 8em;
+ height: 12em;
+ max-height: 24em;
+ resize: vertical;
+}
+
+.ui.form textarea,
+.ui.form input[type="checkbox"] {
+ vertical-align: top;
+}
+
+/*--------------------
+ Dividers
+---------------------*/
+
+.ui.form .divider {
+ clear: both;
+ margin: 1em 0em;
+}
+
+/*--------------------
+ Types of Messages
+---------------------*/
+
+.ui.form .info.message,
+.ui.form .warning.message,
+.ui.form .error.message {
+ display: none;
+}
+
+/* Assumptions */
+
+.ui.form .message:first-child {
+ margin-top: 0px;
+}
+
+/*--------------------
+ Validation Prompt
+---------------------*/
+
+.ui.form .field .prompt.label {
+ white-space: nowrap;
+}
+
+.ui.form .inline.field .prompt {
+ margin-top: 0em;
+ margin-left: 1em;
+}
+
+.ui.form .inline.field .prompt:before {
+ margin-top: -0.3em;
+ bottom: auto;
+ right: auto;
+ top: 50%;
+ left: 0em;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------------
+ Focus
+---------------------*/
+
+.ui.form input[type="text"]:focus,
+.ui.form input[type="email"]:focus,
+.ui.form input[type="date"]:focus,
+.ui.form input[type="password"]:focus,
+.ui.form input[type="number"]:focus,
+.ui.form input[type="url"]:focus,
+.ui.form input[type="tel"]:focus,
+.ui.form textarea:focus {
+ color: rgba(0, 0, 0, 0.85);
+ border-color: rgba(0, 0, 0, 0.2);
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+ -webkit-appearance: none;
+ -webkit-box-shadow: 0.3em 0em 0em 0em rgba(0, 0, 0, 0.2) inset;
+ box-shadow: 0.3em 0em 0em 0em rgba(0, 0, 0, 0.2) inset;
+}
+
+/*--------------------
+ Error
+---------------------*/
+
+/* On Form */
+
+.ui.form.warning .warning.message {
+ display: block;
+}
+
+/*--------------------
+ Warning
+---------------------*/
+
+/* On Form */
+
+.ui.form.error .error.message {
+ display: block;
+}
+
+/* On Field(s) */
+
+.ui.form .fields.error .field label,
+.ui.form .field.error label,
+.ui.form .fields.error .field .input,
+.ui.form .field.error .input {
+ color: #D95C5C;
+}
+
+.ui.form .fields.error .field .corner.label,
+.ui.form .field.error .corner.label {
+ border-color: #D95C5C;
+ color: #FFFFFF;
+}
+
+.ui.form .fields.error .field textarea,
+.ui.form .fields.error .field input[type="text"],
+.ui.form .fields.error .field input[type="email"],
+.ui.form .fields.error .field input[type="date"],
+.ui.form .fields.error .field input[type="password"],
+.ui.form .fields.error .field input[type="number"],
+.ui.form .fields.error .field input[type="url"],
+.ui.form .fields.error .field input[type="tel"],
+.ui.form .field.error textarea,
+.ui.form .field.error input[type="text"],
+.ui.form .field.error input[type="email"],
+.ui.form .field.error input[type="date"],
+.ui.form .field.error input[type="password"],
+.ui.form .field.error input[type="number"],
+.ui.form .field.error input[type="url"],
+.ui.form .field.error input[type="tel"] {
+ background-color: #FFFAFA;
+ border-color: #E7BEBE;
+ border-left: none;
+ color: #D95C5C;
+ padding-left: 1.2em;
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+ -webkit-box-shadow: 0.3em 0em 0em 0em #D95C5C inset;
+ box-shadow: 0.3em 0em 0em 0em #D95C5C inset;
+}
+
+.ui.form .field.error textarea:focus,
+.ui.form .field.error input[type="text"]:focus,
+.ui.form .field.error input[type="email"]:focus,
+.ui.form .field.error input[type="date"]:focus,
+.ui.form .field.error input[type="password"]:focus,
+.ui.form .field.error input[type="number"]:focus,
+.ui.form .field.error input[type="url"]:focus,
+.ui.form .field.error input[type="tel"]:focus {
+ border-color: #ff5050;
+ color: #ff5050;
+ -webkit-appearance: none;
+ -webkit-box-shadow: 0.3em 0em 0em 0em #FF5050 inset;
+ box-shadow: 0.3em 0em 0em 0em #FF5050 inset;
+}
+
+/*----------------------------
+ Dropdown Selection Warning
+-----------------------------*/
+
+.ui.form .fields.error .field .ui.dropdown,
+.ui.form .fields.error .field .ui.dropdown .item,
+.ui.form .field.error .ui.dropdown,
+.ui.form .field.error .ui.dropdown .item {
+ background-color: #FFFAFA;
+ color: #D95C5C;
+}
+
+.ui.form .fields.error .field .ui.dropdown,
+.ui.form .field.error .ui.dropdown {
+ -webkit-box-shadow: 0px 0px 0px 1px #E7BEBE !important;
+ box-shadow: 0px 0px 0px 1px #E7BEBE !important;
+}
+
+.ui.form .fields.error .field .ui.dropdown:hover,
+.ui.form .field.error .ui.dropdown:hover {
+ -webkit-box-shadow: 0px 0px 0px 1px #E7BEBE !important;
+ box-shadow: 0px 0px 0px 1px #E7BEBE !important;
+}
+
+.ui.form .fields.error .field .ui.dropdown:hover .menu,
+.ui.form .field.error .ui.dropdown:hover .menu {
+ -webkit-box-shadow: 0px 1px 0px 1px #E7BEBE;
+ box-shadow: 0px 1px 0px 1px #E7BEBE;
+}
+
+.ui.form .fields.error .field .ui.dropdown .menu .item:hover,
+.ui.form .field.error .ui.dropdown .menu .item:hover {
+ background-color: #FFF2F2;
+}
+
+.ui.form .fields.error .field .ui.dropdown .menu .active.item,
+.ui.form .field.error .ui.dropdown .menu .active.item {
+ background-color: #FDCFCF !important;
+}
+
+/*--------------------
+ Empty (Placeholder)
+---------------------*/
+
+/* browsers require these rules separate */
+
+.ui.form ::-webkit-input-placeholder {
+ color: #AAAAAA;
+}
+
+.ui.form ::-moz-placeholder {
+ color: #AAAAAA;
+}
+
+.ui.form :focus::-webkit-input-placeholder {
+ color: #999999;
+}
+
+.ui.form :focus::-moz-placeholder {
+ color: #999999;
+}
+
+/* Error Placeholder */
+
+.ui.form .error ::-webkit-input-placeholder {
+ color: rgba(255, 80, 80, 0.4);
+}
+
+.ui.form .error ::-moz-placeholder {
+ color: rgba(255, 80, 80, 0.4);
+}
+
+.ui.form .error :focus::-webkit-input-placeholder {
+ color: rgba(255, 80, 80, 0.7);
+}
+
+.ui.form .error :focus::-moz-placeholder {
+ color: rgba(255, 80, 80, 0.7);
+}
+
+/*--------------------
+ Disabled
+---------------------*/
+
+.ui.form .field :disabled,
+.ui.form .field.disabled {
+ opacity: 0.5;
+}
+
+.ui.form .field.disabled label {
+ opacity: 0.5;
+}
+
+.ui.form .field.disabled :disabled {
+ opacity: 1;
+}
+
+/*--------------------
+ Loading State
+---------------------*/
+
+/* On Form */
+
+.ui.form.loading {
+ position: relative;
+}
+
+.ui.form.loading:after {
+ position: absolute;
+ top: 0%;
+ left: 0%;
+ content: '';
+ width: 100%;
+ height: 100%;
+ background: rgba(255, 255, 255, 0.8) url(../images/loader-large.gif) no-repeat 50% 50%;
+ visibility: visible;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------------
+ Fluid Width
+---------------------*/
+
+.ui.form.fluid {
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*--------------------------
+ Input w/ attached Button
+---------------------------*/
+
+.ui.form input.attached {
+ width: auto;
+}
+
+/*--------------------
+ Date Input
+---------------------*/
+
+.ui.form .date.field > label {
+ position: relative;
+}
+
+.ui.form .date.field > label:after {
+ position: absolute;
+ top: 2em;
+ right: 0.5em;
+ font-family: 'Icons';
+ content: '\f133';
+ font-size: 1.2em;
+ font-weight: normal;
+ color: #CCCCCC;
+}
+
+/*--------------------
+ Inverted Colors
+---------------------*/
+
+.ui.inverted.form label {
+ color: #FFFFFF;
+}
+
+.ui.inverted.form .field.error textarea,
+.ui.inverted.form .field.error input[type="text"],
+.ui.inverted.form .field.error input[type="email"],
+.ui.inverted.form .field.error input[type="date"],
+.ui.inverted.form .field.error input[type="password"],
+.ui.inverted.form .field.error input[type="number"],
+.ui.inverted.form .field.error input[type="url"],
+.ui.inverted.form .field.error input[type="tel"] {
+ background-color: #FFCCCC;
+}
+
+.ui.inverted.form .ui.checkbox label {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.form .ui.checkbox label:hover,
+.ui.inverted.form .ui.checkbox .box:hover {
+ color: #FFFFFF;
+}
+
+/*--------------------
+ Field Groups
+---------------------*/
+
+/* Grouped Vertically */
+
+.ui.form .grouped.fields {
+ margin: 0em 0em 1em;
+}
+
+.ui.form .grouped.fields .field {
+ display: block;
+ float: none;
+ margin: 0.5em 0em;
+ padding: 0em;
+}
+
+/*--------------------
+ Fields
+---------------------*/
+
+/* Split fields */
+
+.ui.form .fields {
+ clear: both;
+}
+
+.ui.form .fields:after {
+ content: ' ';
+ display: block;
+ clear: both;
+ visibility: hidden;
+ line-height: 0;
+ height: 0;
+}
+
+.ui.form .fields > .field {
+ clear: none;
+ float: left;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.form .fields > .field:first-child {
+ border-left: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* Other Combinations */
+
+.ui.form .two.fields > .fields,
+.ui.form .two.fields > .field {
+ width: 50%;
+ padding-left: 1%;
+ padding-right: 1%;
+}
+
+.ui.form .three.fields > .fields,
+.ui.form .three.fields > .field {
+ width: 33.333%;
+ padding-left: 1%;
+ padding-right: 1%;
+}
+
+.ui.form .four.fields > .fields,
+.ui.form .four.fields > .field {
+ width: 25%;
+ padding-left: 1%;
+ padding-right: 1%;
+}
+
+.ui.form .five.fields > .fields,
+.ui.form .five.fields > .field {
+ width: 20%;
+ padding-left: 1%;
+ padding-right: 1%;
+}
+
+/* Swap to full width on mobile */
+
+@media only screen and (max-width: 767px) {
+ .ui.form .two.fields > .fields,
+ .ui.form .two.fields > .field,
+ .ui.form .three.fields > .fields,
+ .ui.form .three.fields > .field,
+ .ui.form .four.fields > .fields,
+ .ui.form .four.fields > .field,
+ .ui.form .five.fields > .fields,
+ .ui.form .five.fields > .field {
+ width: 100%;
+ padding-left: 0%;
+ padding-right: 0%;
+ }
+}
+
+.ui.form .fields .field:first-child {
+ padding-left: 0%;
+}
+
+.ui.form .fields .field:last-child {
+ padding-right: 0%;
+}
+
+/*--------------------
+ Inline Fields
+---------------------*/
+
+.ui.form .inline.fields .field {
+ min-height: 1.3em;
+ margin-right: 0.5em;
+}
+
+.ui.form .inline.fields .field > label,
+.ui.form .inline.fields .field > p,
+.ui.form .inline.fields .field > input,
+.ui.form .inline.field > label,
+.ui.form .inline.field > p,
+.ui.form .inline.field > input {
+ display: inline-block;
+ width: auto;
+ margin-top: 0em;
+ margin-bottom: 0em;
+ vertical-align: middle;
+ font-size: 1em;
+}
+
+.ui.form .inline.fields .field > input,
+.ui.form .inline.field > input {
+ font-size: 0.875em;
+}
+
+.ui.form .inline.fields .field > :first-child,
+.ui.form .inline.field > :first-child {
+ margin: 0em 0.5em 0em 0em;
+}
+
+.ui.form .inline.fields .field > :only-child,
+.ui.form .inline.field > :only-child {
+ margin: 0em;
+}
+
+/*--------------------
+ Sizes
+---------------------*/
+
+/* Standard */
+
+.ui.small.form {
+ font-size: 0.875em;
+}
+
+.ui.small.form textarea,
+.ui.small.form input[type="text"],
+.ui.small.form input[type="email"],
+.ui.small.form input[type="date"],
+.ui.small.form input[type="password"],
+.ui.small.form input[type="number"],
+.ui.small.form input[type="url"],
+.ui.small.form input[type="tel"],
+.ui.small.form label {
+ font-size: 1em;
+}
+
+/* Large */
+
+.ui.large.form {
+ font-size: 1.125em;
+}
+/*
+ * # Semantic - Grid
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Grid
+*******************************/
+
+.ui.grid {
+ display: block;
+ text-align: left;
+ font-size: 0em;
+ margin: 0% -1.5%;
+ padding: 0%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+body > .ui.grid {
+ margin-left: 0% !important;
+ margin-right: 0% !important;
+}
+
+.ui.grid:after,
+.ui.row:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+/*-------------------
+ Columns
+--------------------*/
+
+/* Standard 16 column */
+
+.ui.grid > .column,
+.ui.grid > .row > .column {
+ display: inline-block;
+ text-align: left;
+ font-size: 1rem;
+ width: 6.25%;
+ padding-left: 1.5%;
+ padding-right: 1.5%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ vertical-align: top;
+}
+
+/* Vertical padding when no rows */
+
+.ui.grid > .column {
+ margin-top: 1rem;
+ margin-bottom: 1rem;
+}
+
+/*-------------------
+ Rows
+--------------------*/
+
+.ui.grid > .row {
+ display: block;
+ width: 100% !important;
+ margin-top: 1.5%;
+ padding: 1rem 0% 0%;
+ font-size: 0rem;
+}
+
+.ui.grid > .row:first-child {
+ padding-top: 0rem;
+ margin-top: 0rem;
+}
+
+/*-------------------
+ Content
+--------------------*/
+
+.ui.grid > .row > img,
+.ui.grid > .row > .column > img {
+ max-width: 100%;
+}
+
+.ui.grid .column > .ui.segment:only-child {
+ margin: 0em;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-----------------------
+ Page Grid (Responsive)
+-------------------------*/
+
+.ui.page.grid {
+ min-width: 320px;
+ margin-left: 0%;
+ margin-right: 0%;
+}
+
+@media only screen and (max-width: 991px) {
+ .ui.page.grid {
+ padding: 0% 4%;
+ }
+}
+
+@media only screen and (min-width: 992px) {
+ .ui.page.grid {
+ padding: 0% 8%;
+ }
+}
+
+@media only screen and (min-width: 1500px) {
+ .ui.page.grid {
+ padding: 0% 13%;
+ }
+}
+
+@media only screen and (min-width: 1750px) {
+ .ui.page.grid {
+ padding: 0% 18%;
+ }
+}
+
+@media only screen and (min-width: 2000px) {
+ .ui.page.grid {
+ padding: 0% 23%;
+ }
+}
+
+/*-------------------
+ Column Width
+--------------------*/
+
+/* Sizing Combinations */
+
+.ui.grid > .row > .one.wide.column,
+.ui.grid > .column.row > .one.wide.column,
+.ui.grid > .one.wide.column,
+.ui.column.grid > .one.wide.column {
+ width: 6.25%;
+}
+
+.ui.grid > .row > .two.wide.column,
+.ui.grid > .column.row > .two.wide.column,
+.ui.grid > .two.wide.column,
+.ui.column.grid > .two.wide.column {
+ width: 12.5%;
+}
+
+.ui.grid > .row > .three.wide.column,
+.ui.grid > .column.row > .three.wide.column,
+.ui.grid > .three.wide.column,
+.ui.column.grid > .three.wide.column {
+ width: 18.75%;
+}
+
+.ui.grid > .row > .four.wide.column,
+.ui.grid > .column.row > .four.wide.column,
+.ui.grid > .four.wide.column,
+.ui.column.grid > .four.wide.column {
+ width: 25%;
+}
+
+.ui.grid > .row > .five.wide.column,
+.ui.grid > .column.row > .five.wide.column,
+.ui.grid > .five.wide.column,
+.ui.column.grid > .five.wide.column {
+ width: 31.25%;
+}
+
+.ui.grid > .row > .six.wide.column,
+.ui.grid > .column.row > .six.wide.column,
+.ui.grid > .six.wide.column,
+.ui.column.grid > .six.wide.column {
+ width: 37.5%;
+}
+
+.ui.grid > .row > .seven.wide.column,
+.ui.grid > .column.row > .seven.wide.column,
+.ui.grid > .seven.wide.column,
+.ui.column.grid > .seven.wide.column {
+ width: 43.75%;
+}
+
+.ui.grid > .row > .eight.wide.column,
+.ui.grid > .column.row > .eight.wide.column,
+.ui.grid > .eight.wide.column,
+.ui.column.grid > .eight.wide.column {
+ width: 50%;
+}
+
+.ui.grid > .row > .nine.wide.column,
+.ui.grid > .column.row > .nine.wide.column,
+.ui.grid > .nine.wide.column,
+.ui.column.grid > .nine.wide.column {
+ width: 56.25%;
+}
+
+.ui.grid > .row > .ten.wide.column,
+.ui.grid > .column.row > .ten.wide.column,
+.ui.grid > .ten.wide.column,
+.ui.column.grid > .ten.wide.column {
+ width: 62.5%;
+}
+
+.ui.grid > .row > .eleven.wide.column,
+.ui.grid > .column.row > .eleven.wide.column,
+.ui.grid > .eleven.wide.column,
+.ui.column.grid > .eleven.wide.column {
+ width: 68.75%;
+}
+
+.ui.grid > .row > .twelve.wide.column,
+.ui.grid > .column.row > .twelve.wide.column,
+.ui.grid > .twelve.wide.column,
+.ui.column.grid > .twelve.wide.column {
+ width: 75%;
+}
+
+.ui.grid > .row > .thirteen.wide.column,
+.ui.grid > .column.row > .thirteen.wide.column,
+.ui.grid > .thirteen.wide.column,
+.ui.column.grid > .thirteen.wide.column {
+ width: 81.25%;
+}
+
+.ui.grid > .row > .fourteen.wide.column,
+.ui.grid > .column.row > .fourteen.wide.column,
+.ui.grid > .fourteen.wide.column,
+.ui.column.grid > .fourteen.wide.column {
+ width: 87.5%;
+}
+
+.ui.grid > .row > .fifteen.wide.column,
+.ui.grid > .column.row > .fifteen.wide.column,
+.ui.grid > .fifteen.wide.column,
+.ui.column.grid > .fifteen.wide.column {
+ width: 93.75%;
+}
+
+.ui.grid > .row > .sixteen.wide.column,
+.ui.grid > .column.row > .sixteen.wide.column,
+.ui.grid > .sixteen.wide.column,
+.ui.column.grid > .sixteen.wide.column {
+ width: 100%;
+}
+
+/*-------------------
+ Column Count
+--------------------*/
+
+/* Assume full width with one column */
+
+.ui.one.column.grid > .row > .column,
+.ui.one.column.grid > .column,
+.ui.grid > .one.column.row > .column {
+ width: 100%;
+}
+
+.ui.two.column.grid > .row > .column,
+.ui.two.column.grid > .column,
+.ui.grid > .two.column.row > .column {
+ width: 50%;
+}
+
+.ui.three.column.grid > .row > .column,
+.ui.three.column.grid > .column,
+.ui.grid > .three.column.row > .column {
+ width: 33.3333%;
+}
+
+.ui.four.column.grid > .row > .column,
+.ui.four.column.grid > .column,
+.ui.grid > .four.column.row > .column {
+ width: 25%;
+}
+
+.ui.five.column.grid > .row > .column,
+.ui.five.column.grid > .column,
+.ui.grid > .five.column.row > .column {
+ width: 20%;
+}
+
+.ui.six.column.grid > .row > .column,
+.ui.six.column.grid > .column,
+.ui.grid > .six.column.row > .column {
+ width: 16.66667%;
+}
+
+.ui.seven.column.grid > .row > .column,
+.ui.seven.column.grid > .column,
+.ui.grid > .seven.column.row > .column {
+ width: 14.2857%;
+}
+
+.ui.eight.column.grid > .row > .column,
+.ui.eight.column.grid > .column,
+.ui.grid > .eight.column.row > .column {
+ width: 12.5%;
+}
+
+.ui.nine.column.grid > .row > .column,
+.ui.nine.column.grid > .column,
+.ui.grid > .nine.column.row > .column {
+ width: 11.1111%;
+}
+
+.ui.ten.column.grid > .row > .column,
+.ui.ten.column.grid > .column,
+.ui.grid > .ten.column.row > .column {
+ width: 10%;
+}
+
+.ui.eleven.column.grid > .row > .column,
+.ui.eleven.column.grid > .column,
+.ui.grid > .eleven.column.row > .column {
+ width: 9.0909%;
+}
+
+.ui.twelve.column.grid > .row > .column,
+.ui.twelve.column.grid > .column,
+.ui.grid > .twelve.column.row > .column {
+ width: 8.3333%;
+}
+
+.ui.thirteen.column.grid > .row > .column,
+.ui.thirteen.column.grid > .column,
+.ui.grid > .thirteen.column.row > .column {
+ width: 7.6923%;
+}
+
+.ui.fourteen.column.grid > .row > .column,
+.ui.fourteen.column.grid > .column,
+.ui.grid > .fourteen.column.row > .column {
+ width: 7.1428%;
+}
+
+.ui.fifteen.column.grid > .row > .column,
+.ui.fifteen.column.grid > .column,
+.ui.grid > .fifteen.column.row > .column {
+ width: 6.6666%;
+}
+
+.ui.sixteen.column.grid > .row > .column,
+.ui.sixteen.column.grid > .column,
+.ui.grid > .sixteen.column.row > .column {
+ width: 6.25%;
+}
+
+/* Assume full width with one column */
+
+.ui.grid > .column:only-child,
+.ui.grid > .row > .column:only-child {
+ width: 100%;
+}
+
+/*----------------------
+ Relaxed
+-----------------------*/
+
+.ui.relaxed.grid {
+ margin: 0% -2.5%;
+}
+
+.ui.relaxed.grid > .column,
+.ui.relaxed.grid > .row > .column {
+ padding-left: 2.5%;
+ padding-right: 2.5%;
+}
+
+/*----------------------
+ "Floated"
+-----------------------*/
+
+.ui.grid .left.floated.column {
+ float: left;
+}
+
+.ui.grid .right.floated.column {
+ float: right;
+}
+
+/*----------------------
+ Divided
+-----------------------*/
+
+.ui.divided.grid,
+.ui.divided.grid > .row {
+ display: table;
+ width: 100%;
+ margin-left: 0% !important;
+ margin-right: 0% !important;
+}
+
+.ui.divided.grid > .column:not(.row),
+.ui.divided.grid > .row > .column {
+ display: table-cell;
+ -webkit-box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.1), -2px 0px 0px 0px rgba(255, 255, 255, 0.8);
+ box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.1), -2px 0px 0px 0px rgba(255, 255, 255, 0.8);
+}
+
+.ui.divided.grid > .column.row {
+ display: table;
+}
+
+.ui.divided.grid > .column:first-child,
+.ui.divided.grid > .row > .column:first-child {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* Vertically Divided */
+
+.ui.vertically.divided.grid > .row {
+ -webkit-box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1), 0px -2px 0px 0px rgba(255, 255, 255, 0.8) !important;
+ box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1), 0px -2px 0px 0px rgba(255, 255, 255, 0.8) !important;
+}
+
+.ui.vertically.divided.grid > .row > .column,
+.ui.vertically.divided.grid > .column:not(.row),
+.ui.vertically.divided.grid > .row:first-child {
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+/*----------------------
+ Celled
+-----------------------*/
+
+.ui.celled.grid {
+ display: table;
+ width: 100%;
+ margin-left: 0% !important;
+ margin-right: 0% !important;
+ -webkit-box-shadow: 0px 0px 0px 1px #DFDFDF;
+ box-shadow: 0px 0px 0px 1px #DFDFDF;
+}
+
+.ui.celled.grid > .row,
+.ui.celled.grid > .column.row,
+.ui.celled.grid > .column.row:first-child {
+ display: table;
+ width: 100%;
+ margin-top: 0em;
+ padding-top: 0em;
+ -webkit-box-shadow: 0px -1px 0px 0px #dfdfdf;
+ box-shadow: 0px -1px 0px 0px #dfdfdf;
+}
+
+.ui.celled.grid > .column:not(.row),
+.ui.celled.grid > .row > .column {
+ display: table-cell;
+ padding: 0.75em;
+ -webkit-box-shadow: -1px 0px 0px 0px #dfdfdf;
+ box-shadow: -1px 0px 0px 0px #dfdfdf;
+}
+
+.ui.celled.grid > .column:first-child,
+.ui.celled.grid > .row > .column:first-child {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.celled.page.grid {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*----------------------
+ Horizontally Centered
+-----------------------*/
+
+/* Vertical Centered */
+
+.ui.left.aligned.grid,
+.ui.left.aligned.grid > .row > .column,
+.ui.left.aligned.grid > .column,
+.ui.grid .left.aligned.column,
+.ui.grid > .left.aligned.row > .column {
+ text-align: left;
+}
+
+.ui.center.aligned.grid,
+.ui.center.aligned.grid > .row > .column,
+.ui.center.aligned.grid > .column,
+.ui.grid .center.aligned.column,
+.ui.grid > .center.aligned.row > .column {
+ text-align: center;
+}
+
+.ui.right.aligned.grid,
+.ui.right.aligned.grid > .row > .column,
+.ui.right.aligned.grid > .column,
+.ui.grid .right.aligned.column,
+.ui.grid > .right.aligned.row > .column {
+ text-align: right;
+}
+
+.ui.justified.grid,
+.ui.justified.grid > .row > .column,
+.ui.justified.grid > .column,
+.ui.grid .justified.column,
+.ui.grid > .justified.row > .column {
+ text-align: justify;
+ -webkit-hyphens: auto;
+ -moz-hyphens: auto;
+ -ms-hyphens: auto;
+ hyphens: auto;
+}
+
+/*----------------------
+ Vertically Centered
+-----------------------*/
+
+/* Vertical Centered */
+
+.ui.top.aligned.grid,
+.ui.top.aligned.grid > .row > .column,
+.ui.top.aligned.grid > .column,
+.ui.grid .top.aligned.column,
+.ui.grid > .top.aligned.row > .column {
+ vertical-align: top;
+}
+
+.ui.middle.aligned.grid,
+.ui.middle.aligned.grid > .row > .column,
+.ui.middle.aligned.grid > .column,
+.ui.grid .middle.aligned.column,
+.ui.grid > .middle.aligned.row > .column {
+ vertical-align: middle;
+}
+
+.ui.bottom.aligned.grid,
+.ui.bottom.aligned.grid > .row > .column,
+.ui.bottom.aligned.grid > .column,
+.ui.grid .bottom.aligned.column,
+.ui.grid > .bottom.aligned.row > .column {
+ vertical-align: bottom;
+}
+
+/*----------------------
+ Equal Height Columns
+-----------------------*/
+
+.ui.grid > .equal.height.row {
+ display: table;
+ width: 100%;
+}
+
+.ui.grid > .equal.height.row > .column {
+ display: table-cell;
+}
+
+/*----------------------
+ Only (Device)
+-----------------------*/
+
+/* Mobile Only */
+
+@media only screen and (max-width: 767px) {
+ .ui.mobile.only.grid,
+ .ui.grid > .mobile.only.row {
+ display: block !important;
+ }
+
+ .ui.grid > .row > .mobile.only.column {
+ display: inline-block !important;
+ }
+
+ .ui.divided.mobile.only.grid,
+ .ui.celled.mobile.only.grid,
+ .ui.divided.mobile.only.grid .row,
+ .ui.celled.mobile.only.grid .row,
+ .ui.divided.grid .mobile.only.row,
+ .ui.celled.grid .mobile.only.row,
+ .ui.grid .mobile.only.equal.height.row,
+ .ui.mobile.only.grid .equal.height.row {
+ display: table !important;
+ }
+
+ .ui.divided.grid > .row > .mobile.only.column,
+ .ui.celled.grid > .row > .mobile.only.column,
+ .ui.divided.mobile.only.grid > .row > .column,
+ .ui.celled.mobile.only.grid > .row > .column,
+ .ui.divided.mobile.only.grid > .column,
+ .ui.celled.mobile.only.grid > .column {
+ display: table-cell !important;
+ }
+}
+
+@media only screen and (min-width: 768px) {
+ .ui.mobile.only.grid,
+ .ui.grid > .mobile.only.row,
+ .ui.grid > .mobile.only.column,
+ .ui.grid > .row > .mobile.only.column {
+ display: none;
+ }
+}
+
+/* Tablet Only */
+
+@media only screen and (min-width: 768px) and (max-width: 991px) {
+ .ui.tablet.only.grid,
+ .ui.grid > .tablet.only.row {
+ display: block !important;
+ }
+
+ .ui.grid > .row > .tablet.only.column {
+ display: inline-block !important;
+ }
+
+ .ui.divided.tablet.only.grid,
+ .ui.celled.tablet.only.grid,
+ .ui.divided.tablet.only.grid .row,
+ .ui.celled.tablet.only.grid .row,
+ .ui.divided.grid .tablet.only.row,
+ .ui.celled.grid .tablet.only.row,
+ .ui.grid .tablet.only.equal.height.row,
+ .ui.tablet.only.grid .equal.height.row {
+ display: table !important;
+ }
+
+ .ui.divided.grid > .row > .tablet.only.column,
+ .ui.celled.grid > .row > .tablet.only.column,
+ .ui.divided.tablet.only.grid > .row > .column,
+ .ui.celled.tablet.only.grid > .row > .column,
+ .ui.divided.tablet.only.grid > .column,
+ .ui.celled.tablet.only.grid > .column {
+ display: table-cell !important;
+ }
+}
+
+@media only screen and (max-width: 767px), (min-width: 992px) {
+ .ui.tablet.only.grid,
+ .ui.grid > .tablet.only.row,
+ .ui.grid > .tablet.only.column,
+ .ui.grid > .row > .tablet.only.column {
+ display: none;
+ }
+}
+
+/* Computer Only */
+
+@media only screen and (min-width: 992px) {
+ .ui.computer.only.grid,
+ .ui.grid > .computer.only.row {
+ display: block !important;
+ }
+
+ .ui.grid > .row > .computer.only.column {
+ display: inline-block !important;
+ }
+
+ .ui.divided.computer.only.grid,
+ .ui.celled.computer.only.grid,
+ .ui.divided.computer.only.grid .row,
+ .ui.celled.computer.only.grid .row,
+ .ui.divided.grid .computer.only.row,
+ .ui.celled.grid .computer.only.row,
+ .ui.grid .computer.only.equal.height.row,
+ .ui.computer.only.grid .equal.height.row {
+ display: table !important;
+ }
+
+ .ui.divided.grid > .row > .computer.only.column,
+ .ui.celled.grid > .row > .computer.only.column,
+ .ui.divided.computer.only.grid > .row > .column,
+ .ui.celled.computer.only.grid > .row > .column,
+ .ui.divided.computer.only.grid > .column,
+ .ui.celled.computer.only.grid > .column {
+ display: table-cell !important;
+ }
+}
+
+@media only screen and (max-width: 991px) {
+ .ui.computer.only.grid,
+ .ui.grid > .computer.only.row,
+ .ui.grid > .computer.only.column,
+ .ui.grid > .row > .computer.only.column {
+ display: none;
+ }
+}
+
+/*-------------------
+ Doubling
+--------------------*/
+
+/* Mobily Only */
+
+@media only screen and (max-width: 767px) {
+ .ui.two.column.doubling.grid > .row > .column,
+ .ui.two.column.doubling.grid > .column,
+ .ui.grid > .two.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.three.column.doubling.grid > .row > .column,
+ .ui.three.column.doubling.grid > .column,
+ .ui.grid > .three.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.four.column.doubling.grid > .row > .column,
+ .ui.four.column.doubling.grid > .column,
+ .ui.grid > .four.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.five.column.doubling.grid > .row > .column,
+ .ui.five.column.doubling.grid > .column,
+ .ui.grid > .five.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.six.column.doubling.grid > .row > .column,
+ .ui.six.column.doubling.grid > .column,
+ .ui.grid > .six.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.seven.column.doubling.grid > .row > .column,
+ .ui.seven.column.doubling.grid > .column,
+ .ui.grid > .seven.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.eight.column.doubling.grid > .row > .column,
+ .ui.eight.column.doubling.grid > .column,
+ .ui.grid > .eight.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.nine.column.doubling.grid > .row > .column,
+ .ui.nine.column.doubling.grid > .column,
+ .ui.grid > .nine.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.ten.column.doubling.grid > .row > .column,
+ .ui.ten.column.doubling.grid > .column,
+ .ui.grid > .ten.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.twelve.column.doubling.grid > .row > .column,
+ .ui.twelve.column.doubling.grid > .column,
+ .ui.grid > .twelve.column.doubling.row > .column {
+ width: 33.3333333333333%;
+ }
+
+ .ui.fourteen.column.doubling.grid > .row > .column,
+ .ui.fourteen.column.doubling.grid > .column,
+ .ui.grid > .fourteen.column.doubling.row > .column {
+ width: 33.3333333333333%;
+ }
+
+ .ui.sixteen.column.doubling.grid > .row > .column,
+ .ui.sixteen.column.doubling.grid > .column,
+ .ui.grid > .sixteen.column.doubling.row > .column {
+ width: 25%;
+ }
+}
+
+/* Tablet Only */
+
+@media only screen and (min-width: 768px) and (max-width: 991px) {
+ .ui.two.column.doubling.grid > .row > .column,
+ .ui.two.column.doubling.grid > .column,
+ .ui.grid > .two.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.three.column.doubling.grid > .row > .column,
+ .ui.three.column.doubling.grid > .column,
+ .ui.grid > .three.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.four.column.doubling.grid > .row > .column,
+ .ui.four.column.doubling.grid > .column,
+ .ui.grid > .four.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.five.column.doubling.grid > .row > .column,
+ .ui.five.column.doubling.grid > .column,
+ .ui.grid > .five.column.doubling.row > .column {
+ width: 33.3333333%;
+ }
+
+ .ui.six.column.doubling.grid > .row > .column,
+ .ui.six.column.doubling.grid > .column,
+ .ui.grid > .six.column.doubling.row > .column {
+ width: 33.3333333%;
+ }
+
+ .ui.eight.column.doubling.grid > .row > .column,
+ .ui.eight.column.doubling.grid > .column,
+ .ui.grid > .eight.column.doubling.row > .column {
+ width: 33.3333333%;
+ }
+
+ .ui.eight.column.doubling.grid > .row > .column,
+ .ui.eight.column.doubling.grid > .column,
+ .ui.grid > .eight.column.doubling.row > .column {
+ width: 25%;
+ }
+
+ .ui.nine.column.doubling.grid > .row > .column,
+ .ui.nine.column.doubling.grid > .column,
+ .ui.grid > .nine.column.doubling.row > .column {
+ width: 25%;
+ }
+
+ .ui.ten.column.doubling.grid > .row > .column,
+ .ui.ten.column.doubling.grid > .column,
+ .ui.grid > .ten.column.doubling.row > .column {
+ width: 20%;
+ }
+
+ .ui.twelve.column.doubling.grid > .row > .column,
+ .ui.twelve.column.doubling.grid > .column,
+ .ui.grid > .twelve.column.doubling.row > .column {
+ width: 16.6666666%;
+ }
+
+ .ui.fourteen.column.doubling.grid > .row > .column,
+ .ui.fourteen.column.doubling.grid > .column,
+ .ui.grid > .fourteen.column.doubling.row > .column {
+ width: 14.28571428571429%;
+ }
+
+ .ui.sixteen.column.doubling.grid > .row > .column,
+ .ui.sixteen.column.doubling.grid > .column,
+ .ui.grid > .sixteen.column.doubling.row > .column {
+ width: 12.5%;
+ }
+}
+
+/*-------------------
+ Stackable
+--------------------*/
+
+@media only screen and (max-width: 767px) {
+ .ui.stackable.grid {
+ display: block !important;
+ padding: 0em;
+ margin: 0em;
+ }
+
+ .ui.stackable.grid > .row > .column,
+ .ui.stackable.grid > .column {
+ display: block !important;
+ width: auto !important;
+ margin: 1em 0em 0em !important;
+ padding: 1em 0em 0em !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+ }
+
+ .ui.stackable.divided.grid .column,
+ .ui.stackable.celled.grid .column {
+ border-top: 1px dotted rgba(0, 0, 0, 0.1);
+ }
+
+ .ui.stackable.grid > .row:first-child > .column:first-child,
+ .ui.stackable.grid > .column:first-child {
+ margin-top: 0em !important;
+ padding-top: 0em !important;
+ }
+
+ .ui.stackable.divided.grid > .row:first-child > .column:first-child,
+ .ui.stackable.celled.grid > .row:first-child > .column:first-child,
+ .ui.stackable.divided.grid > .column:first-child,
+ .ui.stackable.celled.grid > .column:first-child {
+ border-top: none !important;
+ }
+
+ .ui.stackable.page.grid > .row > .column,
+ .ui.stackable.page.grid > .column {
+ padding-left: 1em !important;
+ padding-right: 1em !important;
+ }
+
+ /* Remove pointers from vertical menus */
+
+ .ui.stackable.grid .vertical.pointing.menu .item:after {
+ display: none;
+ }
+}
+/*
+ * # Semantic - Menu
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------
+ Menu
+---------------*/
+
+.ui.menu {
+ margin: 1rem 0rem;
+ background-color: #FFFFFF;
+ font-size: 0px;
+ font-weight: normal;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ border-radius: 0.1875rem;
+}
+
+.ui.menu:first-child {
+ margin-top: 0rem;
+}
+
+.ui.menu:last-child {
+ margin-bottom: 0rem;
+}
+
+.ui.menu:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+.ui.menu > .item:first-child {
+ border-radius: 0.1875em 0px 0px 0.1875em;
+}
+
+.ui.menu > .item:last-child {
+ border-radius: 0px 0.1875em 0.1875em 0px;
+}
+
+.ui.menu .item {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ vertical-align: middle;
+ line-height: 1;
+ text-decoration: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-transition: opacity 0.2s ease, background 0.2s ease, -webkit-box-shadow 0.2s ease;
+ -moz-transition: opacity 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
+ transition: opacity 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
+}
+
+/*--------------
+ Colors
+---------------*/
+
+/* Text Color */
+
+.ui.menu .item,
+.ui.menu .item > a:not(.button) {
+ color: rgba(0, 0, 0, 0.75);
+}
+
+.ui.menu .item .item,
+.ui.menu .item .item > a:not(.button) {
+ color: rgba(30, 30, 30, 0.7);
+}
+
+.ui.menu .item .item .item,
+.ui.menu .item .item .item > a:not(.button) {
+ color: rgba(30, 30, 30, 0.6);
+}
+
+.ui.menu .dropdown .menu .item,
+.ui.menu .dropdown .menu .item a:not(.button) {
+ color: rgba(0, 0, 0, 0.75);
+}
+
+/* Hover */
+
+.ui.menu .item .menu a.item:hover,
+.ui.menu .item .menu .link.item:hover {
+ color: rgba(0, 0, 0, 0.85);
+}
+
+.ui.menu .dropdown .menu .item a:not(.button):hover {
+ color: rgba(0, 0, 0, 0.85);
+}
+
+/* Active */
+
+.ui.menu .active.item,
+.ui.menu .active.item a:not(.button) {
+ color: rgba(0, 0, 0, 0.85);
+ border-radius: 0px;
+}
+
+/*--------------
+ Items
+---------------*/
+
+.ui.menu .item {
+ position: relative;
+ display: inline-block;
+ padding: 0.83em 0.95em;
+ border-top: 0em solid rgba(0, 0, 0, 0);
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -moz-user-select: -moz-none;
+ -khtml-user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.ui.menu .menu {
+ margin: 0em;
+}
+
+.ui.menu .item.left,
+.ui.menu .menu.left {
+ float: left;
+}
+
+.ui.menu .item.right,
+.ui.menu .menu.right {
+ float: right;
+}
+
+/*--------------
+ Borders
+---------------*/
+
+.ui.menu .item:before {
+ position: absolute;
+ content: '';
+ top: 0%;
+ left: 0px;
+ width: 1px;
+ height: 100%;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.05)), color-stop(50%, rgba(0, 0, 0, 0.1)), to(rgba(0, 0, 0, 0.05)));
+ background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.1) 50%, rgba(0, 0, 0, 0.05) 100%);
+ background-image: -moz-linear-gradient(rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.1) 50%, rgba(0, 0, 0, 0.05) 100%);
+ background-image: linear-gradient(rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.1) 50%, rgba(0, 0, 0, 0.05) 100%);
+}
+
+.ui.menu > .menu:not(.right):first-child > .item:first-child:before,
+.ui.menu .item:first-child:before {
+ display: none;
+}
+
+.ui.menu .menu.right .item:before,
+.ui.menu .item.right:before {
+ right: auto;
+ left: 0px;
+}
+
+/*--------------
+ Text Content
+---------------*/
+
+.ui.menu .text.item > *,
+.ui.menu .item > p:only-child {
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+ line-height: 1.3;
+ color: rgba(0, 0, 0, 0.6);
+}
+
+.ui.menu .item > p:first-child {
+ margin-top: 0px;
+}
+
+.ui.menu .item > p:last-child {
+ margin-bottom: 0px;
+}
+
+/*--------------
+ Button
+---------------*/
+
+.ui.menu:not(.vertical) .item > .button {
+ position: relative;
+ top: -0.05em;
+ margin: -0.55em 0;
+ padding-bottom: 0.55em;
+ padding-top: 0.55em;
+ font-size: 0.875em;
+}
+
+/*--------------
+ Inputs
+---------------*/
+
+.ui.menu:not(.vertical) .item > .input {
+ margin-top: -0.85em;
+ margin-bottom: -0.85em;
+ padding-top: 0.3em;
+ padding-bottom: 0.3em;
+ width: 100%;
+ vertical-align: top;
+}
+
+.ui.menu .item > .input input {
+ padding-top: 0.35em;
+ padding-bottom: 0.35em;
+}
+
+.ui.vertical.menu .item > .input input {
+ margin: 0em;
+ padding-top: 0.63em;
+ padding-bottom: 0.63em;
+}
+
+/* Action Input */
+
+.ui.menu:not(.vertical) .item > .button.labeled > .icon {
+ padding-top: 0.6em;
+}
+
+.ui.menu:not(.vertical) .item .action.input > .button {
+ font-size: 0.8em;
+ padding: 0.55em 0.8em;
+}
+
+/* Resizes */
+
+.ui.small.menu:not(.vertical) .item > .input input {
+ padding-top: 0.4em;
+ padding-bottom: 0.4em;
+}
+
+.ui.large.menu:not(.vertical) .item > .input input {
+ top: -0.125em;
+ padding-bottom: 0.6em;
+ padding-top: 0.6em;
+}
+
+.ui.large.menu:not(.vertical) .item .action.input > .button {
+ font-size: 0.8em;
+ padding: 0.9em;
+}
+
+.ui.large.menu:not(.vertical) .item .action.input > .button > .icon {
+ padding-top: 0.8em;
+}
+
+/*--------------
+ Header
+---------------*/
+
+.ui.menu .header.item {
+ background-color: rgba(0, 0, 0, 0.04);
+ margin: 0em;
+}
+
+.ui.vertical.menu .header.item {
+ font-weight: bold;
+}
+
+/*--------------
+ Dropdowns
+---------------*/
+
+.ui.menu .dropdown .menu .item .icon {
+ float: none;
+ margin: 0em 0.75em 0em 0em;
+}
+
+.ui.menu .dropdown.item .menu {
+ left: 1px;
+ margin: 0px;
+ min-width: -webkit-calc(99%);
+ min-width: -moz-calc(99%);
+ min-width: calc(99%);
+ -webkit-box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.secondary.menu .dropdown.item .menu {
+ left: 0px;
+ min-width: 100%;
+}
+
+.ui.menu .pointing.dropdown.item .menu {
+ margin-top: 0.75em;
+}
+
+.ui.menu .simple.dropdown.item .menu {
+ margin: 0px !important;
+}
+
+.ui.menu .dropdown.item .menu .item {
+ width: 100%;
+ color: rgba(0, 0, 0, 0.75);
+}
+
+.ui.menu .dropdown.item .menu .active.item {
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.ui.menu .ui.dropdown .menu .item:before {
+ display: none;
+}
+
+/*--------------
+ Labels
+---------------*/
+
+.ui.menu .item > .label {
+ background-color: rgba(0, 0, 0, 0.35);
+ color: #FFFFFF;
+ margin: -0.15em 0em -0.15em 0.5em;
+ padding: 0.3em 0.8em;
+ vertical-align: baseline;
+}
+
+.ui.menu .item > .floating.label {
+ padding: 0.3em 0.8em;
+}
+
+/*--------------
+ Images
+---------------*/
+
+.ui.menu .item > img:only-child {
+ display: block;
+ max-width: 100%;
+ margin: 0em auto;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.link.menu .item:hover,
+.ui.menu .link.item:hover,
+.ui.menu a.item:hover,
+.ui.menu .ui.dropdown .menu .item:hover {
+ cursor: pointer;
+ background-color: rgba(0, 0, 0, 0.02);
+}
+
+.ui.menu .ui.dropdown.item.active {
+ background-color: rgba(0, 0, 0, 0.02);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border-bottom-right-radius: 0em;
+ border-bottom-left-radius: 0em;
+}
+
+/*--------------
+ Down
+---------------*/
+
+.ui.link.menu .item:active,
+.ui.menu .link.item:active,
+.ui.menu a.item:active,
+.ui.menu .ui.dropdown .menu .item:active {
+ background-color: rgba(0, 0, 0, 0.05);
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.menu .active.item {
+ background-color: rgba(0, 0, 0, 0.01);
+ color: rgba(0, 0, 0, 0.95);
+ -webkit-box-shadow: 0em 0.2em 0em inset;
+ box-shadow: 0em 0.2em 0em inset;
+}
+
+.ui.vertical.menu .active.item {
+ border-radius: 0em;
+ -webkit-box-shadow: 0.2em 0em 0em inset;
+ box-shadow: 0.2em 0em 0em inset;
+}
+
+.ui.vertical.menu > .active.item:first-child {
+ border-radius: 0em 0.1875em 0em 0em;
+}
+
+.ui.vertical.menu > .active.item:last-child {
+ border-radius: 0em 0em 0.1875em 0em;
+}
+
+.ui.vertical.menu > .active.item:only-child {
+ border-radius: 0em 0.1875em 0.1875em 0em;
+}
+
+.ui.vertical.menu .active.item .menu .active.item {
+ border-left: none;
+}
+
+.ui.vertical.menu .active.item .menu .active.item {
+ padding-left: 1.5rem;
+}
+
+.ui.vertical.menu .item .menu .active.item {
+ background-color: rgba(0, 0, 0, 0.03);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*--------------
+ Disabled
+---------------*/
+
+.ui.menu .item.disabled,
+.ui.menu .item.disabled:hover {
+ cursor: default;
+ color: rgba(0, 0, 0, 0.2);
+ background-color: transparent !important;
+}
+
+/*--------------------
+ Loading
+---------------------*/
+
+/* On Form */
+
+.ui.menu.loading {
+ position: relative;
+}
+
+.ui.menu.loading:after {
+ position: absolute;
+ top: 0%;
+ left: 0%;
+ content: '';
+ width: 100%;
+ height: 100%;
+ background: rgba(255, 255, 255, 0.8) url(../images/loader-large.gif) no-repeat 50% 50%;
+ visibility: visible;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Vertical
+---------------*/
+
+.ui.vertical.menu .item {
+ display: block;
+ height: auto !important;
+ border-top: none;
+ border-left: 0em solid rgba(0, 0, 0, 0);
+ border-right: none;
+}
+
+.ui.vertical.menu > .item:first-child {
+ border-radius: 0.1875em 0.1875em 0px 0px;
+}
+
+.ui.vertical.menu > .item:last-child {
+ border-radius: 0px 0px 0.1875em 0.1875em;
+}
+
+.ui.vertical.menu .item > .label {
+ float: right;
+ text-align: center;
+}
+
+.ui.vertical.menu .item > i.icon {
+ float: right;
+ width: 1.22em;
+ margin: 0em 0em 0em 0.5em;
+}
+
+.ui.vertical.menu .item > .label + i.icon {
+ float: none;
+ margin: 0em 0.25em 0em 0em;
+}
+
+/*--- Border ---*/
+
+.ui.vertical.menu .item:before {
+ position: absolute;
+ content: '';
+ top: 0%;
+ left: 0px;
+ width: 100%;
+ height: 1px;
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.03) 0%, rgba(0, 0, 0, 0.1) 1.5em, rgba(0, 0, 0, 0.03) 100%);
+ background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.03) 0%, rgba(0, 0, 0, 0.1) 1.5em, rgba(0, 0, 0, 0.03) 100%);
+ background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.03)), color-stop(1.5em, rgba(0, 0, 0, 0.1)), to(rgba(0, 0, 0, 0.03)));
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.03) 0%, rgba(0, 0, 0, 0.1) 1.5em, rgba(0, 0, 0, 0.03) 100%);
+}
+
+.ui.vertical.menu .item:first-child:before {
+ background-image: none !important;
+}
+
+/*--- Dropdown ---*/
+
+.ui.vertical.menu .dropdown.item > i {
+ float: right;
+ content: "\f0da";
+}
+
+.ui.vertical.menu .dropdown.item .menu {
+ top: 0% !important;
+ left: 100%;
+ margin: 0px 0px 0px 1px;
+ -webkit-box-shadow: 0 0px 1px 1px #DDDDDD;
+ box-shadow: 0 0px 1px 1px #DDDDDD;
+}
+
+.ui.vertical.menu .dropdown.item.active {
+ border-top-right-radius: 0em;
+ border-bottom-right-radius: 0em;
+}
+
+.ui.vertical.menu .dropdown.item .menu .item {
+ font-size: 1rem;
+}
+
+.ui.vertical.menu .dropdown.item .menu .item i.icon {
+ margin-right: 0em;
+}
+
+.ui.vertical.menu .dropdown.item.active {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*--- Sub Menu ---*/
+
+.ui.vertical.menu .item > .menu {
+ margin: 0.5em -0.95em 0em;
+}
+
+.ui.vertical.menu .item > .menu > .item {
+ padding: 0.5rem 1.5rem;
+ font-size: 0.875em;
+}
+
+.ui.vertical.menu .item > .menu > .item:before {
+ display: none;
+}
+
+/*--------------
+ Tiered
+---------------*/
+
+.ui.tiered.menu > .sub.menu > .item {
+ color: rgba(0, 0, 0, 0.4);
+}
+
+.ui.tiered.menu > .menu > .item:hover {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.tiered.menu .item.active {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.tiered.menu > .menu .item.active:after {
+ position: absolute;
+ content: '';
+ margin-top: -1px;
+ top: 100%;
+ left: 0px;
+ width: 100%;
+ height: 2px;
+ background-color: #FBFBFB;
+}
+
+.ui.tiered.menu .sub.menu {
+ background-color: rgba(0, 0, 0, 0.01);
+ border-radius: 0em;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ color: #FFFFFF;
+}
+
+.ui.tiered.menu .sub.menu .item {
+ font-size: 0.875rem;
+}
+
+.ui.tiered.menu .sub.menu .item:before {
+ background-image: none;
+}
+
+.ui.tiered.menu .sub.menu .active.item {
+ padding-top: 0.83em;
+ background-color: transparent;
+ border-radius: 0 0 0 0;
+ border-top: medium none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ color: rgba(0, 0, 0, 0.7) !important;
+}
+
+.ui.tiered.menu .sub.menu .active.item:after {
+ display: none;
+}
+
+/* Inverted */
+
+.ui.inverted.tiered.menu > .menu > .item {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+.ui.inverted.tiered.menu .sub.menu {
+ background-color: rgba(0, 0, 0, 0.2);
+}
+
+.ui.inverted.tiered.menu .sub.menu .item {
+ color: rgba(255, 255, 255, 0.6);
+}
+
+.ui.inverted.tiered.menu > .menu > .item:hover {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.inverted.tiered.menu .active.item:after {
+ display: none;
+}
+
+.ui.inverted.tiered.menu > .sub.menu > .active.item,
+.ui.inverted.tiered.menu > .menu > .active.item {
+ color: #ffffff !important;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* Tiered pointing */
+
+.ui.pointing.tiered.menu > .menu > .item:after {
+ display: none;
+}
+
+.ui.pointing.tiered.menu > .sub.menu > .item:after {
+ display: block;
+}
+
+/*--------------
+ Tabular
+---------------*/
+
+.ui.tabular.menu {
+ background-color: transparent;
+ border-bottom: 1px solid #DCDDDE;
+ border-radius: 0em;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.ui.tabular.menu .item {
+ background-color: transparent;
+ border-left: 1px solid transparent;
+ border-right: 1px solid transparent;
+ border-top: 1px solid transparent;
+ padding-left: 1.4em;
+ padding-right: 1.4em;
+ color: rgba(0, 0, 0, 0.6);
+}
+
+.ui.tabular.menu .item:before {
+ display: none;
+}
+
+/* Hover */
+
+.ui.tabular.menu .item:hover {
+ background-color: transparent;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/* Active */
+
+.ui.tabular.menu .active.item {
+ position: relative;
+ background-color: #FFFFFF;
+ color: rgba(0, 0, 0, 0.8);
+ border-color: #DCDDDE;
+ font-weight: bold;
+ margin-bottom: -1px;
+ border-bottom: 1px solid #FFFFFF;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border-radius: 5px 5px 0 0;
+}
+
+/* Coupling with segment for attachment */
+
+.ui.attached.tabular.menu {
+ position: relative;
+ z-index: 2;
+}
+
+.ui.tabular.menu ~ .bottom.attached.segment {
+ margin: 1px 0px 0px 1px;
+}
+
+/*--------------
+ Pagination
+---------------*/
+
+.ui.pagination.menu {
+ margin: 0em;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.ui.pagination.menu .item {
+ min-width: 3em;
+ text-align: center;
+}
+
+.ui.pagination.menu .icon.item i.icon {
+ vertical-align: top;
+}
+
+.ui.pagination.menu.floated {
+ display: block;
+}
+
+/* active */
+
+.ui.pagination.menu .active.item {
+ border-top: none;
+ padding-top: 0.83em;
+ background-color: rgba(0, 0, 0, 0.05);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*--------------
+ Secondary
+---------------*/
+
+.ui.secondary.menu {
+ background-color: transparent;
+ border-radius: 0px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.secondary.menu > .menu > .item,
+.ui.secondary.menu > .item {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border: none;
+ height: auto !important;
+ margin: 0em 0.25em;
+ padding: 0.5em 1em;
+ border-radius: 0.3125em;
+}
+
+.ui.secondary.menu > .menu > .item:before,
+.ui.secondary.menu > .item:before {
+ display: none !important;
+}
+
+.ui.secondary.menu .item > .input input {
+ background-color: transparent;
+ border: none;
+}
+
+.ui.secondary.menu .link.item,
+.ui.secondary.menu a.item {
+ opacity: 0.8;
+ -webkit-transition: none;
+ -moz-transition: none;
+ transition: none;
+}
+
+.ui.secondary.menu .header.item {
+ border-right: 0.1em solid rgba(0, 0, 0, 0.1);
+ background-color: transparent;
+ border-radius: 0em;
+}
+
+/* hover */
+
+.ui.secondary.menu .link.item:hover,
+.ui.secondary.menu a.item:hover {
+ opacity: 1;
+}
+
+/* active */
+
+.ui.secondary.menu > .menu > .active.item,
+.ui.secondary.menu > .active.item {
+ background-color: rgba(0, 0, 0, 0.08);
+ opacity: 1;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.secondary.vertical.menu > .active.item {
+ border-radius: 0.3125em;
+}
+
+/* inverted */
+
+.ui.secondary.inverted.menu .link.item,
+.ui.secondary.inverted.menu a.item {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+.ui.secondary.inverted.menu .link.item:hover,
+.ui.secondary.inverted.menu a.item:hover {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.secondary.inverted.menu .active.item {
+ background-color: rgba(255, 255, 255, 0.1);
+}
+
+/* disable variations */
+
+.ui.secondary.item.menu > .item {
+ margin: 0em;
+}
+
+.ui.secondary.attached.menu {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*---------------------
+ Secondary Pointing
+-----------------------*/
+
+.ui.secondary.pointing.menu {
+ border-bottom: 3px solid rgba(0, 0, 0, 0.1);
+}
+
+.ui.secondary.pointing.menu > .menu > .item,
+.ui.secondary.pointing.menu > .item {
+ margin: 0em 0em -3px;
+ padding: 0.6em 0.95em;
+ border-bottom: 3px solid rgba(0, 0, 0, 0);
+ border-radius: 0em;
+ -webkit-transition: color 0.2s;
+ -moz-transition: color 0.2s;
+ transition: color 0.2s;
+}
+
+/* Item Types */
+
+.ui.secondary.pointing.menu .header.item {
+ margin-bottom: -3px;
+ background-color: transparent !important;
+ border-right-width: 0px !important;
+ font-weight: bold !important;
+ color: rgba(0, 0, 0, 0.8) !important;
+}
+
+.ui.secondary.pointing.menu .text.item {
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.ui.secondary.pointing.menu > .menu > .item:after,
+.ui.secondary.pointing.menu > .item:after {
+ display: none;
+}
+
+/* Hover */
+
+.ui.secondary.pointing.menu > .menu > .link.item:hover,
+.ui.secondary.pointing.menu > .link.item:hover,
+.ui.secondary.pointing.menu > .menu > a.item:hover,
+.ui.secondary.pointing.menu > a.item:hover {
+ background-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+/* Down */
+
+.ui.secondary.pointing.menu > .menu > .link.item:active,
+.ui.secondary.pointing.menu > .link.item:active,
+.ui.secondary.pointing.menu > .menu > a.item:active,
+.ui.secondary.pointing.menu > a.item:active {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.2);
+}
+
+/* Active */
+
+.ui.secondary.pointing.menu > .menu > .item.active,
+.ui.secondary.pointing.menu > .item.active {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.4);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*---------------------
+ Secondary Vertical
+-----------------------*/
+
+.ui.secondary.vertical.pointing.menu {
+ border: none;
+ border-right: 3px solid rgba(0, 0, 0, 0.1);
+}
+
+.ui.secondary.vertical.menu > .item {
+ border: none;
+ margin: 0em 0em 0.3em;
+ padding: 0.6em 0.8em;
+ border-radius: 0.1875em;
+}
+
+.ui.secondary.vertical.menu > .header.item {
+ border-radius: 0em;
+}
+
+.ui.secondary.vertical.pointing.menu > .item {
+ margin: 0em -3px 0em 0em;
+ border-bottom: none;
+ border-right: 3px solid transparent;
+ border-radius: 0em;
+}
+
+/* Hover */
+
+.ui.secondary.vertical.pointing.menu > .item:hover {
+ background-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+/* Down */
+
+.ui.secondary.vertical.pointing.menu > .item:active {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.2);
+}
+
+/* Active */
+
+.ui.secondary.vertical.pointing.menu > .item.active {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.4);
+ color: rgba(0, 0, 0, 0.85);
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.secondary.inverted.menu {
+ background-color: transparent;
+}
+
+.ui.secondary.inverted.pointing.menu {
+ border-bottom: 3px solid rgba(255, 255, 255, 0.1);
+}
+
+.ui.secondary.inverted.pointing.menu > .item {
+ color: rgba(255, 255, 255, 0.7);
+}
+
+.ui.secondary.inverted.pointing.menu > .header.item {
+ color: #FFFFFF !important;
+}
+
+/* Hover */
+
+.ui.secondary.inverted.pointing.menu > .menu > .item:hover,
+.ui.secondary.inverted.pointing.menu > .item:hover {
+ color: rgba(255, 255, 255, 0.85);
+}
+
+/* Down */
+
+.ui.secondary.inverted.pointing.menu > .menu > .item:active,
+.ui.secondary.inverted.pointing.menu > .item:active {
+ border-color: rgba(255, 255, 255, 0.4);
+}
+
+/* Active */
+
+.ui.secondary.inverted.pointing.menu > .menu > .item.active,
+.ui.secondary.inverted.pointing.menu > .item.active {
+ border-color: rgba(255, 255, 255, 0.8);
+ color: #ffffff;
+}
+
+/*---------------------
+ Inverted Vertical
+----------------------*/
+
+.ui.secondary.inverted.vertical.pointing.menu {
+ border-right: 3px solid rgba(255, 255, 255, 0.1);
+ border-bottom: none;
+}
+
+/*--------------
+ Text Menu
+---------------*/
+
+.ui.text.menu {
+ background-color: transparent;
+ margin: 1rem -1rem;
+ border-radius: 0px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.text.menu > .item {
+ opacity: 0.8;
+ margin: 0em 1em;
+ padding: 0em;
+ height: auto !important;
+ border-radius: 0px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ -webkit-transition: opacity 0.2s ease;
+ -moz-transition: opacity 0.2s ease;
+ transition: opacity 0.2s ease;
+}
+
+.ui.text.menu > .item:before {
+ display: none !important;
+}
+
+.ui.text.menu .header.item {
+ background-color: transparent;
+ opacity: 1;
+ color: rgba(50, 50, 50, 0.8);
+ font-size: 0.875rem;
+ padding: 0em;
+ text-transform: uppercase;
+ font-weight: bold;
+}
+
+/*--- fluid text ---*/
+
+.ui.text.item.menu .item {
+ margin: 0em;
+}
+
+/*--- vertical text ---*/
+
+.ui.vertical.text.menu {
+ margin: 1rem 0em;
+}
+
+.ui.vertical.text.menu:first-child {
+ margin-top: 0rem;
+}
+
+.ui.vertical.text.menu:last-child {
+ margin-bottom: 0rem;
+}
+
+.ui.vertical.text.menu .item {
+ float: left;
+ clear: left;
+ margin: 0.5em 0em;
+}
+
+.ui.vertical.text.menu .item > i.icon {
+ float: none;
+ margin: 0em 0.83em 0em 0em;
+}
+
+.ui.vertical.text.menu .header.item {
+ margin: 0.8em 0em;
+}
+
+/*--- hover ---*/
+
+.ui.text.menu .item:hover {
+ opacity: 1;
+ background-color: transparent;
+}
+
+/*--- active ---*/
+
+.ui.text.menu .active.item {
+ background-color: transparent;
+ padding: 0em;
+ border: none;
+ opacity: 1;
+ font-weight: bold;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* disable variations */
+
+.ui.text.pointing.menu .active.item:after {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.text.attached.menu {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.text.menu,
+.ui.inverted.text.menu .item,
+.ui.inverted.text.menu .item:hover,
+.ui.inverted.text.menu .item.active {
+ background-color: transparent;
+}
+
+/*--------------
+ Icon Only
+---------------*/
+
+.ui.icon.menu,
+.ui.vertical.icon.menu {
+ width: auto;
+ display: inline-block;
+ height: auto;
+}
+
+.ui.icon.menu > .item {
+ height: auto;
+ text-align: center;
+ color: rgba(60, 60, 60, 0.7);
+}
+
+.ui.icon.menu > .item > .icon {
+ display: block;
+ float: none !important;
+ opacity: 1;
+ margin: 0em auto !important;
+}
+
+.ui.icon.menu .icon:before {
+ opacity: 1;
+}
+
+/* Item Icon Only */
+
+.ui.menu .icon.item .icon {
+ margin: 0em;
+}
+
+.ui.vertical.icon.menu {
+ float: none;
+}
+
+/*--- inverted ---*/
+
+.ui.inverted.icon.menu .item {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.icon.menu .icon {
+ color: #ffffff;
+}
+
+/*--------------
+ Labeled Icon
+---------------*/
+
+.ui.labeled.icon.menu {
+ text-align: center;
+}
+
+.ui.labeled.icon.menu > .item > .icon {
+ display: block;
+ font-size: 1.5em !important;
+ margin: 0em auto 0.3em !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Colors
+---------------*/
+
+/*--- Light Colors ---*/
+
+.ui.menu .green.active.item,
+.ui.green.menu .active.item {
+ border-color: #A1CF64 !important;
+ color: #A1CF64 !important;
+}
+
+.ui.menu .red.active.item,
+.ui.red.menu .active.item {
+ border-color: #D95C5C !important;
+ color: #D95C5C !important;
+}
+
+.ui.menu .blue.active.item,
+.ui.blue.menu .active.item {
+ border-color: #6ECFF5 !important;
+ color: #6ECFF5 !important;
+}
+
+.ui.menu .purple.active.item,
+.ui.purple.menu .active.item {
+ border-color: #564F8A !important;
+ color: #564F8A !important;
+}
+
+.ui.menu .orange.active.item,
+.ui.orange.menu .active.item {
+ border-color: #F05940 !important;
+ color: #F05940 !important;
+}
+
+.ui.menu .teal.active.item,
+.ui.teal.menu .active.item {
+ border-color: #00B5AD !important;
+ color: #00B5AD !important;
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.inverted.menu {
+ background-color: #333333;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.menu .header.item {
+ margin: 0em;
+ background-color: rgba(0, 0, 0, 0.3);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.menu .item,
+.ui.inverted.menu .item > a {
+ color: #FFFFFF;
+}
+
+.ui.inverted.menu .item .item,
+.ui.inverted.menu .item .item > a {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.menu .dropdown .menu .item,
+.ui.inverted.menu .dropdown .menu .item a {
+ color: rgba(0, 0, 0, 0.75) !important;
+}
+
+.ui.inverted.menu .item.disabled,
+.ui.inverted.menu .item.disabled:hover {
+ color: rgba(255, 255, 255, 0.2);
+}
+
+/*--- Border ---*/
+
+.ui.inverted.menu .item:before {
+ background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+ background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.03)), color-stop(50%, rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0.03)));
+ background-image: linear-gradient(rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+}
+
+.ui.vertical.inverted.menu .item:before {
+ background-image: -webkit-linear-gradient(left, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+ background-image: -moz-linear-gradient(left, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+ background-image: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0.03)), color-stop(50%, rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0.03)));
+ background-image: linear-gradient(to right, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+}
+
+/*--- Hover ---*/
+
+.ui.link.inverted.menu .item:hover,
+.ui.inverted.menu .link.item:hover,
+.ui.inverted.menu a.item:hover,
+.ui.inverted.menu .dropdown.item:hover {
+ background-color: rgba(255, 255, 255, 0.1);
+}
+
+.ui.inverted.menu a.item:hover,
+.ui.inverted.menu .item > a:hover,
+.ui.inverted.menu .item .menu a.item:hover,
+.ui.inverted.menu .item .menu .link.item:hover {
+ color: #ffffff;
+}
+
+/*--- Down ---*/
+
+.ui.inverted.menu a.item:active,
+.ui.inverted.menu .dropdown.item:active,
+.ui.inverted.menu .link.item:active,
+.ui.inverted.menu a.item:active {
+ background-color: rgba(255, 255, 255, 0.15);
+}
+
+/*--- Active ---*/
+
+.ui.inverted.menu .active.item {
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+ background-color: rgba(255, 255, 255, 0.2);
+}
+
+.ui.inverted.menu .active.item,
+.ui.inverted.menu .active.item a {
+ color: #ffffff !important;
+}
+
+.ui.inverted.vertical.menu .item .menu .active.item {
+ background-color: rgba(255, 255, 255, 0.2);
+ color: #ffffff;
+}
+
+/*--- Pointers ---*/
+
+.ui.inverted.pointing.menu .active.item:after {
+ background-color: #5B5B5B;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.pointing.menu .active.item:hover:after {
+ background-color: #4A4A4A;
+}
+
+/*--------------
+ Selection
+---------------*/
+
+.ui.selection.menu > .item {
+ color: rgba(0, 0, 0, 0.4);
+}
+
+.ui.selection.menu > .item:hover {
+ color: rgba(0, 0, 0, 0.6);
+}
+
+.ui.selection.menu > .item.active {
+ color: rgba(0, 0, 0, 0.85);
+}
+
+.ui.inverted.selection.menu > .item {
+ color: rgba(255, 255, 255, 0.4);
+}
+
+.ui.inverted.selection.menu > .item:hover {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.inverted.selection.menu > .item.active {
+ color: #FFFFFF;
+}
+
+/*--------------
+ Floated
+---------------*/
+
+.ui.floated.menu {
+ float: left;
+ margin: 0rem 0.5rem 0rem 0rem;
+}
+
+.ui.right.floated.menu {
+ float: right;
+ margin: 0rem 0rem 0rem 0.5rem;
+}
+
+/*--------------
+ Inverted Colors
+---------------*/
+
+/*--- Light Colors ---*/
+
+.ui.grey.menu {
+ background-color: #F0F0F0;
+}
+
+/*--- Inverted Colors ---*/
+
+.ui.inverted.green.menu {
+ background-color: #A1CF64;
+}
+
+.ui.inverted.green.pointing.menu .active.item:after {
+ background-color: #A1CF64;
+}
+
+.ui.inverted.red.menu {
+ background-color: #D95C5C;
+}
+
+.ui.inverted.red.pointing.menu .active.item:after {
+ background-color: #F16883;
+}
+
+.ui.inverted.blue.menu {
+ background-color: #6ECFF5;
+}
+
+.ui.inverted.blue.pointing.menu .active.item:after {
+ background-color: #6ECFF5;
+}
+
+.ui.inverted.purple.menu {
+ background-color: #564F8A;
+}
+
+.ui.inverted.purple.pointing.menu .active.item:after {
+ background-color: #564F8A;
+}
+
+.ui.inverted.orange.menu {
+ background-color: #F05940;
+}
+
+.ui.inverted.orange.pointing.menu .active.item:after {
+ background-color: #F05940;
+}
+
+.ui.inverted.teal.menu {
+ background-color: #00B5AD;
+}
+
+.ui.inverted.teal.pointing.menu .active.item:after {
+ background-color: #00B5AD;
+}
+
+/*--------------
+ Fitted
+---------------*/
+
+.ui.fitted.menu .item,
+.ui.fitted.menu .item .menu .item,
+.ui.menu .fitted.item {
+ padding: 0em;
+}
+
+.ui.horizontally.fitted.menu .item,
+.ui.horizontally.fitted.menu .item .menu .item,
+.ui.menu .horizontally.fitted.item {
+ padding-top: 0.83em;
+ padding-bottom: 0.83em;
+}
+
+.ui.vertically.fitted.menu .item,
+.ui.vertically.fitted.menu .item .menu .item,
+.ui.menu .vertically.fitted.item {
+ padding-left: 0.95em;
+ padding-right: 0.95em;
+}
+
+/*--------------
+ Borderless
+---------------*/
+
+.ui.borderless.menu .item:before,
+.ui.borderless.menu .item .menu .item:before,
+.ui.menu .borderless.item:before {
+ background-image: none;
+}
+
+/*-------------------
+ Compact
+--------------------*/
+
+.ui.compact.menu {
+ display: inline-block;
+ margin: 0em;
+ vertical-align: middle;
+}
+
+.ui.compact.vertical.menu {
+ width: auto !important;
+}
+
+.ui.compact.vertical.menu .item:last-child::before {
+ display: block;
+}
+
+/*-------------------
+ Fluid
+--------------------*/
+
+.ui.menu.fluid,
+.ui.vertical.menu.fluid {
+ display: block;
+ width: 100% !important;
+}
+
+/*-------------------
+ Evenly Sized
+--------------------*/
+
+.ui.item.menu,
+.ui.item.menu .item {
+ width: 100%;
+ padding-left: 0px !important;
+ padding-right: 0px !important;
+ text-align: center;
+}
+
+.ui.menu.two.item .item {
+ width: 50%;
+}
+
+.ui.menu.three.item .item {
+ width: 33.333%;
+}
+
+.ui.menu.four.item .item {
+ width: 25%;
+}
+
+.ui.menu.five.item .item {
+ width: 20%;
+}
+
+.ui.menu.six.item .item {
+ width: 16.666%;
+}
+
+.ui.menu.seven.item .item {
+ width: 14.285%;
+}
+
+.ui.menu.eight.item .item {
+ width: 12.500%;
+}
+
+.ui.menu.nine.item .item {
+ width: 11.11%;
+}
+
+.ui.menu.ten.item .item {
+ width: 10.0%;
+}
+
+.ui.menu.eleven.item .item {
+ width: 9.09%;
+}
+
+.ui.menu.twelve.item .item {
+ width: 8.333%;
+}
+
+/*--------------
+ Fixed
+---------------*/
+
+.ui.menu.fixed {
+ position: fixed;
+ z-index: 999;
+ margin: 0em;
+ border: none;
+ width: 100%;
+}
+
+.ui.menu.fixed,
+.ui.menu.fixed .item:first-child,
+.ui.menu.fixed .item:last-child {
+ border-radius: 0px !important;
+}
+
+.ui.menu.fixed.top {
+ top: 0px;
+ left: 0px;
+ right: auto;
+ bottom: auto;
+}
+
+.ui.menu.fixed.right {
+ top: 0px;
+ right: 0px;
+ left: auto;
+ bottom: auto;
+ width: auto;
+ height: 100%;
+}
+
+.ui.menu.fixed.bottom {
+ bottom: 0px;
+ left: 0px;
+ top: auto;
+ right: auto;
+}
+
+.ui.menu.fixed.left {
+ top: 0px;
+ left: 0px;
+ right: auto;
+ bottom: auto;
+ width: auto;
+ height: 100%;
+}
+
+/* Coupling with Grid */
+
+.ui.fixed.menu + .ui.grid {
+ padding-top: 2.75rem;
+}
+
+/*-------------------
+ Pointing
+--------------------*/
+
+.ui.pointing.menu .active.item:after {
+ position: absolute;
+ bottom: -0.3em;
+ left: 50%;
+ content: "";
+ margin-left: -0.3em;
+ width: 0.6em;
+ height: 0.6em;
+ border: none;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
+ background-image: none;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ z-index: 2;
+ -webkit-transition: background 0.2s ease;
+ -moz-transition: background 0.2s ease;
+ transition: background 0.2s ease;
+}
+
+/* Don't double up pointers */
+
+.ui.pointing.menu .active.item .menu .active.item:after {
+ display: none;
+}
+
+.ui.vertical.pointing.menu .active.item:after {
+ position: absolute;
+ top: 50%;
+ margin-top: -0.3em;
+ right: -0.4em;
+ bottom: auto;
+ left: auto;
+ border: none;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* Colors */
+
+.ui.pointing.menu .active.item:after {
+ background-color: #FCFCFC;
+}
+
+.ui.pointing.menu .active.item:hover:after {
+ background-color: #FAFAFA;
+}
+
+.ui.vertical.pointing.menu .menu .active.item:after {
+ background-color: #F4F4F4;
+}
+
+.ui.pointing.menu a.active.item:active:after {
+ background-color: #F0F0F0;
+}
+
+/*--------------
+ Attached
+---------------*/
+
+.ui.menu.attached {
+ margin: 0rem;
+ border-radius: 0px;
+ /* avoid rgba multiplying */
+ -webkit-box-shadow: 0px 0px 0px 1px #DDDDDD;
+ box-shadow: 0px 0px 0px 1px #DDDDDD;
+}
+
+.ui.top.attached.menu {
+ border-radius: 0.1875em 0.1875em 0px 0px;
+}
+
+.ui.menu.bottom.attached {
+ border-radius: 0px 0px 0.1875em 0.1875em;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.small.menu .item {
+ font-size: 0.875rem;
+}
+
+.ui.small.vertical.menu {
+ width: 13rem;
+}
+
+.ui.menu .item {
+ font-size: 1rem;
+}
+
+.ui.vertical.menu {
+ width: 15rem;
+}
+
+.ui.large.menu .item {
+ font-size: 1.125rem;
+}
+
+.ui.large.menu .item .item {
+ font-size: 0.875rem;
+}
+
+.ui.large.menu .dropdown .item {
+ font-size: 1rem;
+}
+
+.ui.large.vertical.menu {
+ width: 18rem;
+}
+/*
+ * # Semantic - Message
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Message
+*******************************/
+
+.ui.message {
+ position: relative;
+ min-height: 18px;
+ margin: 1em 0em;
+ height: auto;
+ background-color: #EFEFEF;
+ padding: 1em;
+ line-height: 1.33;
+ color: rgba(0, 0, 0, 0.6);
+ -webkit-transition: opacity 0.1s ease, color 0.1s ease, background 0.1s ease, -webkit-box-shadow 0.1s ease;
+ -moz-transition: opacity 0.1s ease, color 0.1s ease, background 0.1s ease, box-shadow 0.1s ease;
+ transition: opacity 0.1s ease, color 0.1s ease, background 0.1s ease, box-shadow 0.1s ease;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ border-radius: 0.325em 0.325em 0.325em 0.325em;
+}
+
+.ui.message:first-child {
+ margin-top: 0em;
+}
+
+.ui.message:last-child {
+ margin-bottom: 0em;
+}
+
+/*--------------
+ Content
+---------------*/
+
+/* block with headers */
+
+.ui.message .header {
+ margin: 0em;
+ font-size: 1.33em;
+ font-weight: bold;
+}
+
+/* block with paragraphs */
+
+.ui.message p {
+ opacity: 0.85;
+ margin: 1em 0em;
+}
+
+.ui.message p:first-child {
+ margin-top: 0em;
+}
+
+.ui.message p:last-child {
+ margin-bottom: 0em;
+}
+
+.ui.message .header + p {
+ margin-top: 0.3em;
+}
+
+.ui.message > :first-child {
+ margin-top: 0em;
+}
+
+.ui.message > :last-child {
+ margin-bottom: 0em;
+}
+
+/* block with child list */
+
+.ui.message ul.list {
+ opacity: 0.85;
+ list-style-position: inside;
+ margin: 0.2em 0em;
+ padding: 0em;
+}
+
+.ui.message ul.list li {
+ position: relative;
+ list-style-type: none;
+ margin: 0em 0em 0.3em 1em;
+ padding: 0em;
+}
+
+.ui.message ul.list li:before {
+ position: absolute;
+ content: '\2022';
+ top: -0.05em;
+ left: -0.8em;
+ height: 100%;
+ vertical-align: baseline;
+ opacity: 0.5;
+}
+
+.ui.message ul.list li:first-child {
+ margin-top: 0em;
+}
+
+/* dismissable block */
+
+.ui.message > .close.icon {
+ cursor: pointer;
+ position: absolute;
+ top: 1em;
+ right: 0.5em;
+ opacity: 0.7;
+ -webkit-transition: opacity 0.1s linear;
+ -moz-transition: opacity 0.1s linear;
+ transition: opacity 0.1s linear;
+}
+
+.ui.message > .close.icon:hover {
+ opacity: 1;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.message.visible,
+.ui.header.visible {
+ display: block !important;
+}
+
+.ui.message.hidden,
+.ui.header.hidden {
+ display: none;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Compact
+---------------*/
+
+.ui.compact.message {
+ display: inline-block;
+}
+
+/*--------------
+ Attached
+---------------*/
+
+.ui.attached.message {
+ margin-left: -1px;
+ margin-right: -1px;
+ margin-bottom: -1px;
+ border-radius: 0.325em 0.325em 0em 0em;
+ -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.attached + .ui.attached.message:not(.top):not(.bottom) {
+ margin-top: -1px;
+ border-radius: 0em;
+}
+
+.ui.bottom.attached.message {
+ margin-top: -1px;
+ border-radius: 0em 0em 0.325em 0.325em;
+}
+
+.ui.bottom.attached.message:not(:last-child) {
+ margin-bottom: 1em;
+}
+
+.ui.attached.icon.message {
+ display: block;
+ width: auto;
+}
+
+/*--------------
+ Icon
+---------------*/
+
+.ui.icon.message {
+ display: table;
+ width: 100%;
+}
+
+.ui.icon.message > .icon:not(.close) {
+ display: table-cell;
+ vertical-align: middle;
+ font-size: 3.8em;
+ opacity: 0.5;
+}
+
+.ui.icon.message > .icon + .content {
+ padding-left: 1em;
+}
+
+.ui.icon.message > .content {
+ display: table-cell;
+ vertical-align: middle;
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.inverted.message {
+ background-color: rgba(255, 255, 255, 0.05);
+ color: rgba(255, 255, 255, 0.95);
+}
+
+/*--------------
+ Floating
+---------------*/
+
+.ui.floating.message {
+ -webkit-box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.1), 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset;
+ box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.1), 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset;
+}
+
+/*--------------
+ Colors
+---------------*/
+
+.ui.black.message {
+ background-color: #333333;
+ color: rgba(255, 255, 255, 0.95);
+}
+
+/*--------------
+ Types
+---------------*/
+
+.ui.blue.message,
+.ui.info.message {
+ background-color: #E6F4F9;
+ color: #4D8796;
+}
+
+/* Green Text Block */
+
+.ui.green.message {
+ background-color: #DEFCD5;
+ color: #52A954;
+}
+
+/* Yellow Text Block */
+
+.ui.yellow.message,
+.ui.warning.message {
+ background-color: #F6F3D5;
+ color: #96904D;
+}
+
+/* Red Text Block */
+
+.ui.red.message {
+ background-color: #F1D7D7;
+ color: #A95252;
+}
+
+/* Success Text Block */
+
+.ui.success.message,
+.ui.positive.message {
+ background-color: #DEFCD5;
+ color: #52A954;
+}
+
+/* Error Text Block */
+
+.ui.error.message,
+.ui.negative.message {
+ background-color: #F1D7D7;
+ color: #A95252;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.small.message {
+ font-size: 0.875em;
+}
+
+.ui.message {
+ font-size: 1em;
+}
+
+.ui.large.message {
+ font-size: 1.125em;
+}
+
+.ui.huge.message {
+ font-size: 1.5em;
+}
+
+.ui.massive.message {
+ font-size: 2em;
+}
+/*
+ * # Semantic - Table
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Table
+*******************************/
+
+/* Prototype */
+
+.ui.table {
+ width: 100%;
+ border-collapse: collapse;
+}
+
+/* Table Content */
+
+.ui.table th,
+.ui.table tr,
+.ui.table td {
+ border-collapse: collapse;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-transition: all 0.1s ease-out;
+ -moz-transition: all 0.1s ease-out;
+ transition: all 0.1s ease-out;
+}
+
+/* Headers */
+
+.ui.table thead {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.03);
+}
+
+.ui.table tfoot th {
+ background-color: rgba(0, 0, 0, 0.03);
+}
+
+.ui.table th {
+ cursor: auto;
+ background-color: rgba(0, 0, 0, 0.05);
+ text-align: left;
+ color: rgba(0, 0, 0, 0.8);
+ padding: 0.5em 0.7em;
+ vertical-align: middle;
+}
+
+.ui.table thead th:first-child {
+ border-radius: 5px 0px 0px 0px;
+}
+
+.ui.table thead th:last-child {
+ border-radius: 0px 5px 0px 0px;
+}
+
+.ui.table tfoot th:first-child {
+ border-radius: 0px 0px 0px 5px;
+}
+
+.ui.table tfoot th:last-child {
+ border-radius: 0px 0px 5px 0px;
+}
+
+.ui.table tfoot th:only-child {
+ border-radius: 0px 0px 5px 5px;
+}
+
+/* Table Cells */
+
+.ui.table td {
+ padding: 0.40em 0.7em;
+ vertical-align: middle;
+}
+
+/* Footer */
+
+.ui.table tfoot {
+ border-top: 1px solid rgba(0, 0, 0, 0.03);
+}
+
+.ui.table tfoot th {
+ font-weight: normal;
+ font-style: italic;
+}
+
+/* Table Striping */
+
+.ui.table tbody tr:nth-child(2n) {
+ background-color: rgba(0, 0, 50, 0.02);
+}
+
+/* Icons */
+
+.ui.table > .icon {
+ vertical-align: baseline;
+}
+
+.ui.table > .icon:only-child {
+ margin: 0em;
+}
+
+/* Table Segment */
+
+.ui.table.segment:after {
+ display: none;
+}
+
+.ui.table.segment.stacked:after {
+ display: block;
+}
+
+/* Responsive */
+
+@media only screen and (max-width: 768px) {
+ .ui.table {
+ display: block;
+ padding: 0em;
+ }
+
+ .ui.table thead,
+ .ui.table tfoot {
+ display: none;
+ }
+
+ .ui.table tbody {
+ display: block;
+ }
+
+ .ui.table tr {
+ display: block;
+ }
+
+ .ui.table tr > td {
+ width: 100% !important;
+ display: block;
+ border: none !important;
+ padding: 0.25em 0.75em;
+ -webkit-box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05) !important;
+ box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05) !important;
+ }
+
+ .ui.table td:first-child {
+ font-weight: bold;
+ padding-top: 1em;
+ }
+
+ .ui.table td:last-child {
+ -webkit-box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1) inset !important;
+ box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1) inset !important;
+ padding-bottom: 1em;
+ }
+
+ /* Clear BG Colors */
+
+ .ui.table tr > td.warning,
+ .ui.table tr > td.error,
+ .ui.table tr > td.active,
+ .ui.table tr > td.positive,
+ .ui.table tr > td.negative {
+ background-color: transparent !important;
+ }
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+/* Sortable */
+
+.ui.sortable.table th.disabled:hover {
+ cursor: auto;
+ text-align: left;
+ font-weight: bold;
+ color: #333333;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.sortable.table thead th:hover {
+ background-color: rgba(0, 0, 0, 0.13);
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/* Inverted Sortable */
+
+.ui.inverted.sortable.table thead th:hover {
+ background-color: rgba(255, 255, 255, 0.13);
+ color: #ffffff;
+}
+
+/*--------------
+ Positive
+---------------*/
+
+.ui.table tr.positive,
+.ui.table td.positive {
+ -webkit-box-shadow: 2px 0px 0px #119000 inset;
+ box-shadow: 2px 0px 0px #119000 inset;
+}
+
+.ui.table tr.positive td,
+.ui.table td.positive {
+ background-color: #F2F8F0 !important;
+ color: #119000 !important;
+}
+
+.ui.celled.table tr.positive:hover td,
+.ui.celled.table tr:hover td.positive,
+.ui.table tr.positive:hover td,
+.ui.table td:hover.positive,
+.ui.table th:hover.positive {
+ background-color: #ECF5E9 !important;
+ color: #119000 !important;
+}
+
+/*--------------
+ Negative
+---------------*/
+
+.ui.table tr.negative,
+.ui.table td.negative {
+ -webkit-box-shadow: 2px 0px 0px #CD2929 inset;
+ box-shadow: 2px 0px 0px #CD2929 inset;
+}
+
+.ui.table tr.negative td,
+.ui.table td.negative {
+ background-color: #F9F4F4;
+ color: #CD2929 !important;
+}
+
+.ui.celled.table tr.negative:hover td,
+.ui.celled.table tr:hover td.negative,
+.ui.table tr.negative:hover td,
+.ui.table td:hover.negative,
+.ui.table th:hover.negative {
+ background-color: #F2E8E8;
+ color: #CD2929;
+}
+
+/*--------------
+ Error
+---------------*/
+
+.ui.table tr.error,
+.ui.table td.error {
+ -webkit-box-shadow: 2px 0px 0px #CD2929 inset;
+ box-shadow: 2px 0px 0px #CD2929 inset;
+}
+
+.ui.table tr.error td,
+.ui.table td.error,
+.ui.table th.error {
+ background-color: #F9F4F4;
+ color: #CD2929;
+}
+
+.ui.celled.table tr.error:hover td,
+.ui.celled.table tr:hover td.error,
+.ui.table tr.error:hover td,
+.ui.table td:hover.error,
+.ui.table th:hover.error {
+ background-color: #F2E8E8;
+ color: #CD2929;
+}
+
+/*--------------
+ Warning
+---------------*/
+
+.ui.table tr.warning,
+.ui.table td.warning {
+ -webkit-box-shadow: 2px 0px 0px #7D6C00 inset;
+ box-shadow: 2px 0px 0px #7D6C00 inset;
+}
+
+.ui.table tr.warning td,
+.ui.table td.warning,
+.ui.table th.warning {
+ background-color: #FBF6E9;
+ color: #7D6C00;
+}
+
+.ui.celled.table tr.warning:hover td,
+.ui.celled.table tr:hover td.warning,
+.ui.table tr.warning:hover td,
+.ui.table td:hover.warning,
+.ui.table th:hover.warning {
+ background-color: #F3EDDC;
+ color: #7D6C00;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.table tr.active,
+.ui.table td.active {
+ -webkit-box-shadow: 2px 0px 0px rgba(50, 50, 50, 0.9) inset;
+ box-shadow: 2px 0px 0px rgba(50, 50, 50, 0.9) inset;
+}
+
+.ui.table tr.active td,
+.ui.table tr td.active {
+ background-color: #E0E0E0;
+ color: rgba(50, 50, 50, 0.9);
+ /* border-color: rgba(0, 0, 0, 0.15) !important; */
+}
+
+/*--------------
+ Disabled
+---------------*/
+
+.ui.table tr.disabled td,
+.ui.table tr td.disabled,
+.ui.table tr.disabled:hover td,
+.ui.table tr:hover td.disabled {
+ color: rgba(150, 150, 150, 0.3);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Column Count
+---------------*/
+
+.ui.two.column.table td {
+ width: 50%;
+}
+
+.ui.three.column.table td {
+ width: 33.3333%;
+}
+
+.ui.four.column.table td {
+ width: 25%;
+}
+
+.ui.five.column.table td {
+ width: 20%;
+}
+
+.ui.six.column.table td {
+ width: 16.66667%;
+}
+
+.ui.seven.column.table td {
+ width: 14.2857%;
+}
+
+.ui.eight.column.table td {
+ width: 12.5%;
+}
+
+.ui.nine.column.table td {
+ width: 11.1111%;
+}
+
+.ui.ten.column.table td {
+ width: 10%;
+}
+
+.ui.eleven.column.table td {
+ width: 9.0909%;
+}
+
+.ui.twelve.column.table td {
+ width: 8.3333%;
+}
+
+.ui.thirteen.column.table td {
+ width: 7.6923%;
+}
+
+.ui.fourteen.column.table td {
+ width: 7.1428%;
+}
+
+.ui.fifteen.column.table td {
+ width: 6.6666%;
+}
+
+.ui.sixteen.column.table td {
+ width: 6.25%;
+}
+
+/* Column Width */
+
+.ui.table th.one.wide,
+.ui.table td.one.wide {
+ width: 6.25%;
+}
+
+.ui.table th.two.wide,
+.ui.table td.two.wide {
+ width: 12.5%;
+}
+
+.ui.table th.three.wide,
+.ui.table td.three.wide {
+ width: 18.75%;
+}
+
+.ui.table th.four.wide,
+.ui.table td.four.wide {
+ width: 25%;
+}
+
+.ui.table th.five.wide,
+.ui.table td.five.wide {
+ width: 31.25%;
+}
+
+.ui.table th.six.wide,
+.ui.table td.six.wide {
+ width: 37.5%;
+}
+
+.ui.table th.seven.wide,
+.ui.table td.seven.wide {
+ width: 43.75%;
+}
+
+.ui.table th.eight.wide,
+.ui.table td.eight.wide {
+ width: 50%;
+}
+
+.ui.table th.nine.wide,
+.ui.table td.nine.wide {
+ width: 56.25%;
+}
+
+.ui.table th.ten.wide,
+.ui.table td.ten.wide {
+ width: 62.5%;
+}
+
+.ui.table th.eleven.wide,
+.ui.table td.eleven.wide {
+ width: 68.75%;
+}
+
+.ui.table th.twelve.wide,
+.ui.table td.twelve.wide {
+ width: 75%;
+}
+
+.ui.table th.thirteen.wide,
+.ui.table td.thirteen.wide {
+ width: 81.25%;
+}
+
+.ui.table th.fourteen.wide,
+.ui.table td.fourteen.wide {
+ width: 87.5%;
+}
+
+.ui.table th.fifteen.wide,
+.ui.table td.fifteen.wide {
+ width: 93.75%;
+}
+
+.ui.table th.sixteen.wide,
+.ui.table td.sixteen.wide {
+ width: 100%;
+}
+
+/*--------------
+ Celled
+---------------*/
+
+.ui.celled.table {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.celled.table tbody tr,
+.ui.celled.table tfoot tr {
+ border: none;
+}
+
+.ui.celled.table th,
+.ui.celled.table td {
+ border: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* Coupling with segment */
+
+.ui.celled.table.segment th:first-child,
+.ui.celled.table.segment td:first-child {
+ border-left: none;
+}
+
+.ui.celled.table.segment th:last-child,
+.ui.celled.table.segment td:last-child {
+ border-right: none;
+}
+
+/*--------------
+ Sortable
+---------------*/
+
+.ui.sortable.table thead th {
+ cursor: pointer;
+ white-space: nowrap;
+}
+
+.ui.sortable.table thead th.sorted,
+.ui.sortable.table thead th.sorted:hover {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.ui.sortable.table thead th:after {
+ display: inline-block;
+ content: '';
+ width: 1em;
+ opacity: 0.8;
+ margin: 0em 0em 0em 0.5em;
+ font-family: 'Icons';
+ font-style: normal;
+ font-weight: normal;
+ text-decoration: inherit;
+}
+
+.ui.sortable.table thead th.ascending:after {
+ content: '\25b4';
+}
+
+.ui.sortable.table thead th.descending:after {
+ content: '\25be';
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+/* Text Color */
+
+.ui.inverted.table td {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.inverted.table th {
+ background-color: rgba(0, 0, 0, 0.15);
+ color: rgba(255, 255, 255, 0.9);
+}
+
+/* Stripes */
+
+.ui.inverted.table tbody tr:nth-child(2n) {
+ background-color: rgba(255, 255, 255, 0.06);
+}
+
+/*--------------
+ Definition
+---------------*/
+
+.ui.definition.table td:first-child {
+ font-weight: bold;
+}
+
+/*--------------
+ Collapsing
+---------------*/
+
+.ui.collapsing.table {
+ width: auto;
+}
+
+/*--------------
+ Basic
+---------------*/
+
+.ui.basic.table th {
+ background-color: transparent;
+ padding: 0.5em;
+}
+
+.ui.basic.table tbody tr {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.03);
+}
+
+.ui.basic.table td {
+ padding: 0.8em 0.5em;
+}
+
+.ui.basic.table tbody tr:nth-child(2n) {
+ background-color: transparent !important;
+}
+
+/*--------------
+ Padded
+---------------*/
+
+.ui.padded.table th,
+.ui.padded.table td {
+ padding: 0.8em 1em;
+}
+
+.ui.compact.table th {
+ padding: 0.3em 0.5em;
+}
+
+.ui.compact.table td {
+ padding: 0.2em 0.5em;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+/* Small */
+
+.ui.small.table {
+ font-size: 0.875em;
+}
+
+/* Standard */
+
+.ui.table {
+ font-size: 1em;
+}
+
+/* Large */
+
+.ui.large.table {
+ font-size: 1.1em;
+}
+/*
+ * # Semantic - basic.Icon (Basic)
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Basic Icon
+*******************************/
+
+@font-face {
+ font-family: 'Basic Icons';
+ src: url(../fonts/basic.icons.eot);
+ src: url(../fonts/basic.icons.eot?#iefix) format('embedded-opentype'), url(../fonts/basic.icons.svg#basic.icons) format('svg'), url(../fonts/basic.icons.woff) format('woff'), url(../fonts/basic.icons.ttf) format('truetype');
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-decoration: inherit;
+ text-transform: none;
+}
+
+i.basic.icon {
+ display: inline-block;
+ opacity: 0.75;
+ margin: 0em 0.25em 0em 0em;
+ width: 1.23em;
+ height: 1em;
+ font-family: 'Basic Icons';
+ font-style: normal;
+ line-height: 1;
+ font-weight: normal;
+ text-decoration: inherit;
+ text-align: center;
+ speak: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-font-smoothing: antialiased;
+ -moz-font-smoothing: antialiased;
+ font-smoothing: antialiased;
+}
+
+/* basic.icons available */
+
+i.basic.icon.circle.attention:before {
+ content: '\2757';
+}
+
+/* '❗' */
+
+i.basic.icon.circle.help:before {
+ content: '\e704';
+}
+
+/* '' */
+
+i.basic.icon.circle.info:before {
+ content: '\e705';
+}
+
+/* '' */
+
+i.basic.icon.add:before {
+ content: '\2795';
+}
+
+/* '➕' */
+
+i.basic.icon.chart:before {
+ content: '📈';
+}
+
+/* '\1f4c8' */
+
+i.basic.icon.chart.bar:before {
+ content: '📊';
+}
+
+/* '\1f4ca' */
+
+i.basic.icon.chart.pie:before {
+ content: '\e7a2';
+}
+
+/* '' */
+
+i.basic.icon.resize.full:before {
+ content: '\e744';
+}
+
+/* '' */
+
+i.basic.icon.resize.horizontal:before {
+ content: '\2b0d';
+}
+
+/* '⬍' */
+
+i.basic.icon.resize.small:before {
+ content: '\e746';
+}
+
+/* '' */
+
+i.basic.icon.resize.vertical:before {
+ content: '\2b0c';
+}
+
+/* '⬌' */
+
+i.basic.icon.down:before {
+ content: '\2193';
+}
+
+/* '↓' */
+
+i.basic.icon.down.triangle:before {
+ content: '\25be';
+}
+
+/* '▾' */
+
+i.basic.icon.down.arrow:before {
+ content: '\e75c';
+}
+
+/* '' */
+
+i.basic.icon.left:before {
+ content: '\2190';
+}
+
+/* '←' */
+
+i.basic.icon.left.triangle:before {
+ content: '\25c2';
+}
+
+/* '◂' */
+
+i.basic.icon.left.arrow:before {
+ content: '\e75d';
+}
+
+/* '' */
+
+i.basic.icon.right:before {
+ content: '\2192';
+}
+
+/* '→' */
+
+i.basic.icon.right.triangle:before {
+ content: '\25b8';
+}
+
+/* '▸' */
+
+i.basic.icon.right.arrow:before {
+ content: '\e75e';
+}
+
+/* '' */
+
+i.basic.icon.up:before {
+ content: '\2191';
+}
+
+/* '↑' */
+
+i.basic.icon.up.triangle:before {
+ content: '\25b4';
+}
+
+/* '▴' */
+
+i.basic.icon.up.arrow:before {
+ content: '\e75f';
+}
+
+/* '' */
+
+i.basic.icon.folder:before {
+ content: '\e810';
+}
+
+/* '' */
+
+i.basic.icon.open.folder:before {
+ content: '📂';
+}
+
+/* '\1f4c2' */
+
+i.basic.icon.globe:before {
+ content: '𝌍';
+}
+
+/* '\1d30d' */
+
+i.basic.icon.desk.globe:before {
+ content: '🌐';
+}
+
+/* '\1f310' */
+
+i.basic.icon.star:before {
+ content: '\e801';
+}
+
+/* '' */
+
+i.basic.icon.star.empty:before {
+ content: '\e800';
+}
+
+/* '' */
+
+i.basic.icon.star.half:before {
+ content: '\e701';
+}
+
+/* '' */
+
+i.basic.icon.lock:before {
+ content: '🔒';
+}
+
+/* '\1f512' */
+
+i.basic.icon.unlock:before {
+ content: '🔓';
+}
+
+/* '\1f513' */
+
+i.basic.icon.layout.grid:before {
+ content: '\e80c';
+}
+
+/* '' */
+
+i.basic.icon.layout.block:before {
+ content: '\e708';
+}
+
+/* '' */
+
+i.basic.icon.layout.list:before {
+ content: '\e80b';
+}
+
+/* '' */
+
+i.basic.icon.heart.empty:before {
+ content: '\2661';
+}
+
+/* '♡' */
+
+i.basic.icon.heart:before {
+ content: '\2665';
+}
+
+/* '♥' */
+
+i.basic.icon.asterisk:before {
+ content: '\2731';
+}
+
+/* '✱' */
+
+i.basic.icon.attachment:before {
+ content: '📎';
+}
+
+/* '\1f4ce' */
+
+i.basic.icon.attention:before {
+ content: '\26a0';
+}
+
+/* '⚠' */
+
+i.basic.icon.trophy:before {
+ content: '🏉';
+}
+
+/* '\1f3c9' */
+
+i.basic.icon.barcode:before {
+ content: '\e792';
+}
+
+/* '' */
+
+i.basic.icon.cart:before {
+ content: '\e813';
+}
+
+/* '' */
+
+i.basic.icon.block:before {
+ content: '🚫';
+}
+
+/* '\1f6ab' */
+
+i.basic.icon.book:before {
+ content: '📖';
+}
+
+i.basic.icon.bookmark:before {
+ content: '🔖';
+}
+
+/* '\1f516' */
+
+i.basic.icon.calendar:before {
+ content: '📅';
+}
+
+/* '\1f4c5' */
+
+i.basic.icon.cancel:before {
+ content: '\2716';
+}
+
+/* '✖' */
+
+i.basic.icon.close:before {
+ content: '\e80d';
+}
+
+/* '' */
+
+i.basic.icon.color:before {
+ content: '\e794';
+}
+
+/* '' */
+
+i.basic.icon.chat:before {
+ content: '\e720';
+}
+
+/* '' */
+
+i.basic.icon.check:before {
+ content: '\2611';
+}
+
+/* '☑' */
+
+i.basic.icon.time:before {
+ content: '🕔';
+}
+
+/* '\1f554' */
+
+i.basic.icon.cloud:before {
+ content: '\2601';
+}
+
+/* '☁' */
+
+i.basic.icon.code:before {
+ content: '\e714';
+}
+
+/* '' */
+
+i.basic.icon.email:before {
+ content: '\40';
+}
+
+/* '@' */
+
+i.basic.icon.settings:before {
+ content: '\26ef';
+}
+
+/* '⛯' */
+
+i.basic.icon.setting:before {
+ content: '\2699';
+}
+
+/* '⚙' */
+
+i.basic.icon.comment:before {
+ content: '\e802';
+}
+
+/* '' */
+
+i.basic.icon.clockwise.counter:before {
+ content: '\27f2';
+}
+
+/* '⟲' */
+
+i.basic.icon.clockwise:before {
+ content: '\27f3';
+}
+
+/* '⟳' */
+
+i.basic.icon.cube:before {
+ content: '\e807';
+}
+
+/* '' */
+
+i.basic.icon.direction:before {
+ content: '\27a2';
+}
+
+/* '➢' */
+
+i.basic.icon.doc:before {
+ content: '📄';
+}
+
+/* '\1f4c4' */
+
+i.basic.icon.docs:before {
+ content: '\e736';
+}
+
+/* '' */
+
+i.basic.icon.dollar:before {
+ content: '💵';
+}
+
+/* '\1f4b5' */
+
+i.basic.icon.paint:before {
+ content: '\e7b5';
+}
+
+/* '' */
+
+i.basic.icon.edit:before {
+ content: '\270d';
+}
+
+/* '✍' */
+
+i.basic.icon.eject:before {
+ content: '\2ecf';
+}
+
+/* '⻏' */
+
+i.basic.icon.export:before {
+ content: '\e715';
+}
+
+/* '' */
+
+i.basic.icon.hide:before {
+ content: '\e70b';
+}
+
+/* '' */
+
+i.basic.icon.unhide:before {
+ content: '\e80f';
+}
+
+/* '' */
+
+i.basic.icon.facebook:before {
+ content: '\f301';
+}
+
+/* '' */
+
+i.basic.icon.fast-forward:before {
+ content: '\e804';
+}
+
+/* '' */
+
+i.basic.icon.fire:before {
+ content: '🔥';
+}
+
+/* '\1f525' */
+
+i.basic.icon.flag:before {
+ content: '\2691';
+}
+
+/* '⚑' */
+
+i.basic.icon.lightning:before {
+ content: '\26a1';
+}
+
+/* '⚡' */
+
+i.basic.icon.lab:before {
+ content: '\68';
+}
+
+/* 'h' */
+
+i.basic.icon.flight:before {
+ content: '\2708';
+}
+
+/* '✈' */
+
+i.basic.icon.forward:before {
+ content: '\27a6';
+}
+
+/* '➦' */
+
+i.basic.icon.gift:before {
+ content: '🎁';
+}
+
+/* '\1f381' */
+
+i.basic.icon.github:before {
+ content: '\f308';
+}
+
+/* '' */
+
+i.basic.icon.globe:before {
+ content: '\e817';
+}
+
+/* '' */
+
+i.basic.icon.headphones:before {
+ content: '🎧';
+}
+
+/* '\1f3a7' */
+
+i.basic.icon.question:before {
+ content: '\2753';
+}
+
+/* '❓' */
+
+i.basic.icon.home:before {
+ content: '\2302';
+}
+
+/* '⌂' */
+
+i.basic.icon.i:before {
+ content: '\2139';
+}
+
+/* 'ℹ' */
+
+i.basic.icon.idea:before {
+ content: '💡';
+}
+
+/* '\1f4a1' */
+
+i.basic.icon.open:before {
+ content: '🔗';
+}
+
+/* '\1f517' */
+
+i.basic.icon.content:before {
+ content: '\e782';
+}
+
+/* '' */
+
+i.basic.icon.location:before {
+ content: '\e724';
+}
+
+/* '' */
+
+i.basic.icon.mail:before {
+ content: '\2709';
+}
+
+/* '✉' */
+
+i.basic.icon.mic:before {
+ content: '🎤';
+}
+
+/* '\1f3a4' */
+
+i.basic.icon.minus:before {
+ content: '\2d';
+}
+
+/* '-' */
+
+i.basic.icon.money:before {
+ content: '💰';
+}
+
+/* '\1f4b0' */
+
+i.basic.icon.off:before {
+ content: '\e78e';
+}
+
+/* '' */
+
+i.basic.icon.pause:before {
+ content: '\e808';
+}
+
+/* '' */
+
+i.basic.icon.photos:before {
+ content: '\e812';
+}
+
+/* '' */
+
+i.basic.icon.photo:before {
+ content: '🌄';
+}
+
+/* '\1f304' */
+
+i.basic.icon.pin:before {
+ content: '📌';
+}
+
+/* '\1f4cc' */
+
+i.basic.icon.play:before {
+ content: '\e809';
+}
+
+/* '' */
+
+i.basic.icon.plus:before {
+ content: '\2b';
+}
+
+/* '+' */
+
+i.basic.icon.print:before {
+ content: '\e716';
+}
+
+/* '' */
+
+i.basic.icon.rss:before {
+ content: '\e73a';
+}
+
+/* '' */
+
+i.basic.icon.search:before {
+ content: '🔍';
+}
+
+/* '\1f50d' */
+
+i.basic.icon.shuffle:before {
+ content: '\e803';
+}
+
+/* '' */
+
+i.basic.icon.tag:before {
+ content: '\e80a';
+}
+
+/* '' */
+
+i.basic.icon.tags:before {
+ content: '\e70d';
+}
+
+/* '' */
+
+i.basic.icon.terminal:before {
+ content: '\e7ac';
+}
+
+/* '' */
+
+i.basic.icon.thumbs.down:before {
+ content: '👎';
+}
+
+/* '\1f44e' */
+
+i.basic.icon.thumbs.up:before {
+ content: '👍';
+}
+
+/* '\1f44d' */
+
+i.basic.icon.to-end:before {
+ content: '\e806';
+}
+
+/* '' */
+
+i.basic.icon.to-start:before {
+ content: '\e805';
+}
+
+/* '' */
+
+i.basic.icon.top.list:before {
+ content: '🏆';
+}
+
+/* '\1f3c6' */
+
+i.basic.icon.trash:before {
+ content: '\e729';
+}
+
+/* '' */
+
+i.basic.icon.twitter:before {
+ content: '\f303';
+}
+
+/* '' */
+
+i.basic.icon.upload:before {
+ content: '\e711';
+}
+
+/* '' */
+
+i.basic.icon.user.add:before {
+ content: '\e700';
+}
+
+/* '' */
+
+i.basic.icon.user:before {
+ content: '👤';
+}
+
+/* '\1f464' */
+
+i.basic.icon.community:before {
+ content: '\e814';
+}
+
+/* '' */
+
+i.basic.icon.users:before {
+ content: '👥';
+}
+
+/* '\1f465' */
+
+i.basic.icon.id:before {
+ content: '\e722';
+}
+
+/* '' */
+
+i.basic.icon.url:before {
+ content: '🔗';
+}
+
+/* '\1f517' */
+
+i.basic.icon.zoom.in:before {
+ content: '\e750';
+}
+
+/* '' */
+
+i.basic.icon.zoom.out:before {
+ content: '\e751';
+}
+
+/* '' */
+
+/*--------------
+ Spacing Fix
+---------------*/
+
+/* dropdown arrows are to the right */
+
+i.dropdown.basic.icon {
+ margin: 0em 0em 0em 0.5em;
+}
+
+/* stars are usually consecutive */
+
+i.basic.icon.star {
+ width: auto;
+ margin: 0em;
+}
+
+/* left side basic.icons */
+
+i.basic.icon.left,
+i.basic.icon.left,
+i.basic.icon.left {
+ width: auto;
+ margin: 0em 0.5em 0em 0em;
+}
+
+/* right side basic.icons */
+
+i.basic.icon.search,
+i.basic.icon.up,
+i.basic.icon.down,
+i.basic.icon.right {
+ width: auto;
+ margin: 0em 0em 0em 0.5em;
+}
+
+/*--------------
+ Aliases
+---------------*/
+
+/* aliases for convenience */
+
+i.basic.icon.delete:before {
+ content: '\e80d';
+}
+
+/* '' */
+
+i.basic.icon.dropdown:before {
+ content: '\25be';
+}
+
+/* '▾' */
+
+i.basic.icon.help:before {
+ content: '\e704';
+}
+
+/* '' */
+
+i.basic.icon.info:before {
+ content: '\e705';
+}
+
+/* '' */
+
+i.basic.icon.error:before {
+ content: '\e80d';
+}
+
+/* '' */
+
+i.basic.icon.dislike:before {
+ content: '\2661';
+}
+
+/* '♡' */
+
+i.basic.icon.like:before {
+ content: '\2665';
+}
+
+/* '♥' */
+
+i.basic.icon.eye:before {
+ content: '\e80f';
+}
+
+/* '' */
+
+i.basic.icon.eye.hidden:before {
+ content: '\e70b';
+}
+
+/* '' */
+
+i.basic.icon.date:before {
+ content: '📅';
+}
+
+/* '\1f4c5' */
+
+/*******************************
+ States
+*******************************/
+
+i.basic.icon.hover {
+ opacity: 1;
+}
+
+i.basic.icon.active {
+ opacity: 1;
+}
+
+i.emphasized.basic.icon {
+ opacity: 1;
+}
+
+i.basic.icon.disabled {
+ opacity: 0.3;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Link
+--------------------*/
+
+i.link.basic.icon {
+ cursor: pointer;
+ opacity: 0.7;
+ -webkit-transition: opacity 0.3s ease-out;
+ -moz-transition: opacity 0.3s ease-out;
+ transition: opacity 0.3s ease-out;
+}
+
+.link.basic.icon:hover {
+ opacity: 1 !important;
+}
+
+/*-------------------
+ Circular
+--------------------*/
+
+i.circular.basic.icon {
+ border-radius: 500px !important;
+ padding: 0.5em 0em !important;
+ -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ line-height: 1 !important;
+ width: 2em !important;
+ height: 2em !important;
+}
+
+i.circular.inverted.basic.icon {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Flipped
+--------------------*/
+
+i.vertically.flipped.basic.icon {
+ -webkit-transform: scale(1, -1);
+ -moz-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+
+i.horizontally.flipped.basic.icon {
+ -webkit-transform: scale(-1, 1);
+ -moz-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+
+/*-------------------
+ Rotated
+--------------------*/
+
+i.left.rotated.basic.icon {
+ -webkit-transform: rotate(-90deg);
+ -moz-transform: rotate(-90deg);
+ -ms-transform: rotate(-90deg);
+ transform: rotate(-90deg);
+}
+
+i.right.rotated.basic.icon {
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+
+/*-------------------
+ Square
+--------------------*/
+
+i.square.basic.icon {
+ width: 2em;
+ height: 2em;
+ padding: 0.5em 0.35em !important;
+ -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ vertical-align: baseline;
+}
+
+i.square.basic.icon:before {
+ vertical-align: middle;
+}
+
+i.square.inverted.basic.icon {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+i.inverted.basic.icon {
+ background-color: #222222;
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+i.blue.basic.icon {
+ color: #6ECFF5 !important;
+}
+
+i.black.basic.icon {
+ color: #5C6166 !important;
+}
+
+i.green.basic.icon {
+ color: #A1CF64 !important;
+}
+
+i.red.basic.icon {
+ color: #D95C5C !important;
+}
+
+i.purple.basic.icon {
+ color: #564F8A !important;
+}
+
+i.teal.basic.icon {
+ color: #00B5AD !important;
+}
+
+/*-------------------
+ Inverted Colors
+--------------------*/
+
+i.inverted.black.basic.icon {
+ background-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.blue.basic.icon {
+ background-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.green.basic.icon {
+ background-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.red.basic.icon {
+ background-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.purple.basic.icon {
+ background-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.teal.basic.icon {
+ background-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+i.small.basic.icon {
+ font-size: 0.875em;
+}
+
+i.basic.icon {
+ font-size: 1em;
+}
+
+i.large.basic.icon {
+ font-size: 1.5em;
+ margin-right: 0.2em;
+ vertical-align: middle;
+}
+
+i.big.basic.icon {
+ font-size: 2em;
+ margin-right: 0.5em;
+ vertical-align: middle;
+}
+
+i.huge.basic.icon {
+ font-size: 4em;
+ margin-right: 0.75em;
+ vertical-align: middle;
+}
+
+i.massive.basic.icon {
+ font-size: 8em;
+ margin-right: 1em;
+ vertical-align: middle;
+}
+/*
+ * # Semantic - Button
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Button
+*******************************/
+
+/* Prototype */
+
+.ui.button {
+ cursor: pointer;
+ display: inline-block;
+ vertical-align: middle;
+ min-height: 1em;
+ outline: none;
+ border: none;
+ background-color: #FAFAFA;
+ color: #808080;
+ margin: 0em;
+ padding: 0.8em 1.5em;
+ font-size: 1rem;
+ text-transform: uppercase;
+ line-height: 1;
+ font-weight: bold;
+ font-style: normal;
+ text-align: center;
+ text-decoration: none;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.05)));
+ background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
+ background-image: -moz-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
+ background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
+ border-radius: 0.25em;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.08) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.08) inset;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -webkit-transition: opacity 0.25s ease, background-color 0.25s ease, color 0.25s ease, background 0.25s ease, -webkit-box-shadow 0.25s ease;
+ -moz-transition: opacity 0.25s ease, background-color 0.25s ease, color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
+ transition: opacity 0.25s ease, background-color 0.25s ease, color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Active
+---------------*/
+
+.ui.buttons .active.button,
+.ui.active.button {
+ background-color: #EAEAEA;
+ background-image: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.button:hover {
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.08)));
+ background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.08));
+ background-image: -moz-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.08));
+ background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.08));
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.button.active:hover {
+ background-image: none;
+}
+
+.ui.button:hover .icon,
+.ui.button.hover .icon {
+ opacity: 0.85;
+}
+
+/*--------------
+ Down
+---------------*/
+
+.ui.button:active,
+.ui.active.button:active {
+ background-color: #F1F1F1;
+ color: rgba(0, 0, 0, 0.7);
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important;
+}
+
+/*--------------
+ Loading
+---------------*/
+
+.ui.loading.button {
+ position: relative;
+ cursor: default;
+ background-color: #FFFFFF !important;
+ color: transparent !important;
+ -webkit-transition: all 0s linear;
+ -moz-transition: all 0s linear;
+ transition: all 0s linear;
+}
+
+.ui.loading.button:after {
+ position: absolute;
+ top: 0em;
+ left: 0em;
+ width: 100%;
+ height: 100%;
+ content: '';
+ background: transparent url(../images/loader-mini.gif) no-repeat 50% 50%;
+}
+
+.ui.labeled.icon.loading.button .icon {
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Disabled
+--------------------*/
+
+.ui.disabled.button,
+.ui.disabled.button:hover,
+.ui.disabled.button.active {
+ background-color: #DDDDDD !important;
+ cursor: default;
+ color: rgba(0, 0, 0, 0.5) !important;
+ opacity: 0.3 !important;
+ background-image: none !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Animated
+--------------------*/
+
+.ui.animated.button {
+ position: relative;
+ overflow: hidden;
+}
+
+.ui.animated.button .visible.content {
+ position: relative;
+}
+
+.ui.animated.button .hidden.content {
+ position: absolute;
+ width: 100%;
+}
+
+/* Horizontal */
+
+.ui.animated.button .visible.content,
+.ui.animated.button .hidden.content {
+ -webkit-transition: right 0.3s ease 0s;
+ -moz-transition: right 0.3s ease 0s;
+ transition: right 0.3s ease 0s;
+}
+
+.ui.animated.button .visible.content {
+ left: auto;
+ right: 0%;
+}
+
+.ui.animated.button .hidden.content {
+ top: 50%;
+ left: auto;
+ right: -100%;
+ margin-top: -0.55em;
+}
+
+.ui.animated.button:hover .visible.content {
+ left: auto;
+ right: 200%;
+}
+
+.ui.animated.button:hover .hidden.content {
+ left: auto;
+ right: 0%;
+}
+
+/* Vertical */
+
+.ui.vertical.animated.button .visible.content,
+.ui.vertical.animated.button .hidden.content {
+ -webkit-transition: top 0.3s ease 0s, -webkit-transform 0.3s ease 0s;
+ -moz-transition: top 0.3s ease 0s, -moz-transform 0.3s ease 0s;
+ transition: top 0.3s ease 0s, transform 0.3s ease 0s;
+}
+
+.ui.vertical.animated.button .visible.content {
+ -webkit-transform: translateY(0%);
+ -moz-transform: translateY(0%);
+ -ms-transform: translateY(0%);
+ transform: translateY(0%);
+ right: auto;
+}
+
+.ui.vertical.animated.button .hidden.content {
+ top: -100%;
+ left: 0%;
+ right: auto;
+}
+
+.ui.vertical.animated.button:hover .visible.content {
+ -webkit-transform: translateY(200%);
+ -moz-transform: translateY(200%);
+ -ms-transform: translateY(200%);
+ transform: translateY(200%);
+ right: auto;
+}
+
+.ui.vertical.animated.button:hover .hidden.content {
+ top: 50%;
+ right: auto;
+}
+
+/* Fade */
+
+.ui.fade.animated.button .visible.content,
+.ui.fade.animated.button .hidden.content {
+ -webkit-transition: opacity 0.3s ease 0s, -webkit-transform 0.3s ease 0s;
+ -moz-transition: opacity 0.3s ease 0s, -moz-transform 0.3s ease 0s;
+ transition: opacity 0.3s ease 0s, transform 0.3s ease 0s;
+}
+
+.ui.fade.animated.button .visible.content {
+ left: auto;
+ right: auto;
+ opacity: 1;
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+}
+
+.ui.fade.animated.button .hidden.content {
+ opacity: 0;
+ left: 0%;
+ right: auto;
+ -webkit-transform: scale(1.2);
+ -moz-transform: scale(1.2);
+ -ms-transform: scale(1.2);
+ transform: scale(1.2);
+}
+
+.ui.fade.animated.button:hover .visible.content {
+ left: auto;
+ right: auto;
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ -moz-transform: scale(0.7);
+ -ms-transform: scale(0.7);
+ transform: scale(0.7);
+}
+
+.ui.fade.animated.button:hover .hidden.content {
+ left: 0%;
+ right: auto;
+ opacity: 1;
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+}
+
+/*-------------------
+ Primary
+--------------------*/
+
+.ui.primary.buttons .button,
+.ui.primary.button {
+ background-color: #D95C5C;
+ color: #FFFFFF;
+}
+
+.ui.primary.buttons .button:hover,
+.ui.primary.button:hover,
+.ui.primary.buttons .active.button,
+.ui.primary.button.active {
+ background-color: #E75859;
+ color: #FFFFFF;
+}
+
+.ui.primary.buttons .button:active,
+.ui.primary.button:active {
+ background-color: #D24B4C;
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Secondary
+--------------------*/
+
+.ui.secondary.buttons .button,
+.ui.secondary.button {
+ background-color: #00B5AD;
+ color: #FFFFFF;
+}
+
+.ui.secondary.buttons .button:hover,
+.ui.secondary.button:hover,
+.ui.secondary.buttons .active.button,
+.ui.secondary.button.active {
+ background-color: #009A93;
+ color: #FFFFFF;
+}
+
+.ui.secondary.buttons .button:active,
+.ui.secondary.button:active {
+ background-color: #00847E;
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Social
+--------------------*/
+
+/* Facebook */
+
+.ui.facebook.button {
+ background-color: #3B579D;
+ color: #FFFFFF;
+}
+
+.ui.facebook.button:hover {
+ background-color: #3A59A9;
+ color: #FFFFFF;
+}
+
+.ui.facebook.button:active {
+ background-color: #334F95;
+ color: #FFFFFF;
+}
+
+/* Twitter */
+
+.ui.twitter.button {
+ background-color: #4092CC;
+ color: #FFFFFF;
+}
+
+.ui.twitter.button:hover {
+ background-color: #399ADE;
+ color: #FFFFFF;
+}
+
+.ui.twitter.button:active {
+ background-color: #3283BC;
+ color: #FFFFFF;
+}
+
+/* Google Plus */
+
+.ui.google.plus.button {
+ background-color: #D34836;
+ color: #FFFFFF;
+}
+
+.ui.google.plus.button:hover {
+ background-color: #E3432E;
+ color: #FFFFFF;
+}
+
+.ui.google.plus.button:active {
+ background-color: #CA3A27;
+ color: #FFFFFF;
+}
+
+/* Linked In */
+
+.ui.linkedin.button {
+ background-color: #1F88BE;
+ color: #FFFFFF;
+}
+
+.ui.linkedin.button:hover {
+ background-color: #1394D6;
+ color: #FFFFFF;
+}
+
+.ui.linkedin.button:active {
+ background-color: #1179AE;
+ color: #FFFFFF;
+}
+
+/* YouTube */
+
+.ui.youtube.button {
+ background-color: #CC181E;
+ color: #FFFFFF;
+}
+
+.ui.youtube.button:hover {
+ background-color: #DF0209;
+ color: #FFFFFF;
+}
+
+.ui.youtube.button:active {
+ background-color: #A50006;
+ color: #FFFFFF;
+}
+
+/* Instagram */
+
+.ui.instagram.button {
+ background-color: #49769C;
+ color: #FFFFFF;
+}
+
+.ui.instagram.button:hover {
+ background-color: #4781B1;
+ color: #FFFFFF;
+}
+
+.ui.instagram.button:active {
+ background-color: #38658A;
+ color: #FFFFFF;
+}
+
+/* Pinterest */
+
+.ui.pinterest.button {
+ background-color: #00ACED;
+ color: #FFFFFF;
+}
+
+.ui.pinterest.button:hover {
+ background-color: #00B9FF;
+ color: #FFFFFF;
+}
+
+.ui.pinterest.button:active {
+ background-color: #009EDA;
+ color: #FFFFFF;
+}
+
+/* vk.com */
+
+.ui.vk.button {
+ background-color: #4D7198;
+ color: #FFFFFF;
+}
+
+.ui.vk.button:hover {
+ background-color: #537AA5;
+ color: #FFFFFF;
+}
+
+.ui.vk.button:active {
+ background-color: #405E7E;
+ color: #FFFFFF;
+}
+
+/*--------------
+ Icon
+---------------*/
+
+.ui.button > .icon {
+ margin-right: 0.6em;
+ line-height: 1;
+ -webkit-transition: opacity 0.1s ease;
+ -moz-transition: opacity 0.1s ease;
+ transition: opacity 0.1s ease;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Floated
+--------------------*/
+
+.ui.left.floated.buttons,
+.ui.left.floated.button {
+ float: left;
+ margin-right: 0.25em;
+}
+
+.ui.right.floated.buttons,
+.ui.right.floated.button {
+ float: right;
+ margin-left: 0.25em;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+.ui.buttons .button,
+.ui.button {
+ font-size: 1rem;
+}
+
+.ui.mini.buttons .button,
+.ui.mini.buttons .or,
+.ui.mini.button {
+ font-size: 0.8rem;
+}
+
+.ui.mini.buttons .button,
+.ui.mini.button {
+ padding: 0.6em 0.8em;
+}
+
+.ui.mini.icon.buttons .button,
+.ui.mini.buttons .icon.button {
+ padding: 0.6em 0.6em;
+}
+
+.ui.tiny.buttons .button,
+.ui.tiny.buttons .or,
+.ui.tiny.button {
+ font-size: 0.875em;
+}
+
+.ui.tiny.buttons .button,
+.ui.tiny.buttons .button,
+.ui.tiny.button {
+ padding: 0.6em 0.8em;
+}
+
+.ui.tiny.icon.buttons .button,
+.ui.tiny.buttons .icon.button {
+ padding: 0.6em 0.6em;
+}
+
+.ui.small.buttons .button,
+.ui.small.buttons .or,
+.ui.small.button {
+ font-size: 0.875rem;
+}
+
+.ui.large.buttons .button,
+.ui.large.buttons .or,
+.ui.large.button {
+ font-size: 1.125rem;
+}
+
+.ui.big.buttons .button,
+.ui.big.buttons .or,
+.ui.big.button {
+ font-size: 1.25rem;
+}
+
+.ui.huge.buttons .button,
+.ui.huge.buttons .or,
+.ui.huge.button {
+ font-size: 1.375rem;
+}
+
+.ui.massive.buttons .button,
+.ui.massive.buttons .or,
+.ui.massive.button {
+ font-size: 1.5rem;
+ font-weight: bold;
+}
+
+/* Or resize */
+
+.ui.tiny.buttons .or:before,
+.ui.mini.buttons .or:before {
+ width: 1.45em;
+ height: 1.55em;
+ line-height: 1.4;
+ margin-left: -0.725em;
+ margin-top: -0.25em;
+}
+
+.ui.tiny.buttons .or:after,
+.ui.mini.buttons .or:after {
+ height: 1.45em;
+}
+
+/* loading */
+
+.ui.huge.loading.button:after {
+ background-image: url(../images/loader-small.gif);
+}
+
+.ui.massive.buttons .loading.button:after,
+.ui.gigantic.buttons .loading.button:after,
+.ui.massive.loading.button:after,
+.ui.gigantic.loading.button:after {
+ background-image: url(../images/loader-medium.gif);
+}
+
+.ui.huge.loading.button:after,
+.ui.huge.loading.button.active:after {
+ background-image: url(../images/loader-small.gif);
+}
+
+.ui.massive.buttons .loading.button:after,
+.ui.gigantic.buttons .loading.button:after,
+.ui.massive.loading.button:after,
+.ui.gigantic.loading.button:after,
+.ui.massive.buttons .loading.button.active:after,
+.ui.gigantic.buttons .loading.button.active:after,
+.ui.massive.loading.button.active:after,
+.ui.gigantic.loading.button.active:after {
+ background-image: url(../images/loader-medium.gif);
+}
+
+/*--------------
+ Icon Only
+---------------*/
+
+.ui.icon.buttons .button,
+.ui.icon.button {
+ padding: 0.8em;
+}
+
+.ui.icon.buttons .button > .icon,
+.ui.icon.button > .icon {
+ opacity: 0.9;
+ margin: 0em;
+ vertical-align: top;
+}
+
+/*-------------------
+ Basic
+--------------------*/
+
+.ui.basic.buttons .button,
+.ui.basic.button {
+ background-color: transparent !important;
+ background-image: none;
+ color: #808080 !important;
+ font-weight: normal;
+ text-transform: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.basic.buttons {
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ border-radius: 0.25em;
+}
+
+.ui.basic.buttons .button:hover,
+.ui.basic.button:hover {
+ background-image: none;
+ color: #7F7F7F !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.18) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.18) inset;
+}
+
+.ui.basic.buttons .button:active,
+.ui.basic.button:active {
+ background-color: rgba(0, 0, 0, 0.02) !important;
+ color: #7F7F7F !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.basic.buttons .button.active,
+.ui.basic.button.active {
+ background-color: rgba(0, 0, 0, 0.05);
+ color: #7F7F7F;
+ -webkit-box-shadow: 0px 0px 0px 1px #BDBDBD inset;
+ box-shadow: 0px 0px 0px 1px #BDBDBD inset;
+}
+
+.ui.basic.buttons .button.active:hover,
+.ui.basic.button.active:hover {
+ background-color: rgba(0, 0, 0, 0.1);
+}
+
+/* Inverted */
+
+.ui.basic.inverted.buttons .button,
+.ui.basic.inverted.button {
+ color: #FAFAFA !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.3) inset;
+ box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.3) inset;
+}
+
+.ui.basic.inverted.buttons .button:hover,
+.ui.basic.inverted.button:hover {
+ background-image: none;
+ color: #FFFFFF !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.5) inset;
+ box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.5) inset;
+}
+
+.ui.basic.inverted.buttons .button:active,
+.ui.basic.inverted.button:active {
+ background-color: rgba(255, 255, 255, 0.05) !important;
+ color: #FFFFFF !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.8) inset !important;
+ box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.8) inset !important;
+}
+
+.ui.basic.inverted.buttons .button.active,
+.ui.basic.inverted.button.active {
+ background-color: rgba(255, 255, 255, 0.5);
+ color: #FFFFFF;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.basic.inverted.buttons .button.active:hover,
+.ui.basic.inverted.button.active:hover {
+ background-color: rgba(0, 0, 0, 0.1);
+}
+
+/* Basic Group */
+
+.ui.basic.buttons .button {
+ border-left: 1px solid rgba(0, 0, 0, 0.1);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.basic.buttons .button:hover,
+.ui.basic.buttons .button:active {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.basic.buttons .button.active,
+.ui.basic.buttons .button.active:hover {
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2) inset;
+}
+
+/*--------------
+ Labeled Icon
+---------------*/
+
+.ui.labeled.icon.buttons .button,
+.ui.labeled.icon.button {
+ position: relative;
+ padding-left: 4em !important;
+ padding-right: 1.4em !important;
+}
+
+.ui.labeled.icon.buttons > .button > .icon,
+.ui.labeled.icon.button > .icon {
+ position: absolute;
+ top: 0em;
+ left: 0em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 2.75em;
+ height: 100%;
+ padding-top: 0.8em;
+ background-color: rgba(0, 0, 0, 0.05);
+ text-align: center;
+ border-radius: 0.25em 0px 0px 0.25em;
+ line-height: 1;
+ -webkit-box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset;
+ box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset;
+}
+
+.ui.labeled.icon.buttons .button > .icon {
+ border-radius: 0em;
+}
+
+.ui.labeled.icon.buttons .button:first-child > .icon {
+ border-top-left-radius: 0.25em;
+ border-bottom-left-radius: 0.25em;
+}
+
+.ui.labeled.icon.buttons .button:last-child > .icon {
+ border-top-right-radius: 0.25em;
+ border-bottom-right-radius: 0.25em;
+}
+
+.ui.vertical.labeled.icon.buttons .button:first-child > .icon {
+ border-radius: 0em;
+ border-top-left-radius: 0.25em;
+}
+
+.ui.vertical.labeled.icon.buttons .button:last-child > .icon {
+ border-radius: 0em;
+ border-bottom-left-radius: 0.25em;
+}
+
+.ui.right.labeled.icon.button {
+ padding-left: 1.4em !important;
+ padding-right: 4em !important;
+}
+
+.ui.left.fluid.labeled.icon.button,
+.ui.right.fluid.labeled.icon.button {
+ padding-left: 1.4em !important;
+ padding-right: 1.4em !important;
+}
+
+.ui.right.labeled.icon.button .icon {
+ left: auto;
+ right: 0em;
+ border-radius: 0em 0.25em 0.25em 0em;
+ -webkit-box-shadow: 1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset;
+ box-shadow: 1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset;
+}
+
+/*--------------
+ Toggle
+---------------*/
+
+/* Toggle (Modifies active state to give affordances) */
+
+.ui.toggle.buttons .active.button,
+.ui.buttons .button.toggle.active,
+.ui.button.toggle.active {
+ background-color: #5BBD72 !important;
+ color: #FFFFFF !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.ui.button.toggle.active:hover {
+ background-color: #58CB73 !important;
+ color: #FFFFFF !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+/*--------------
+ Circular
+---------------*/
+
+.ui.circular.button {
+ border-radius: 10em;
+}
+
+/*--------------
+ Attached
+---------------*/
+
+.ui.attached.button {
+ display: block;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important;
+}
+
+.ui.attached.top.button {
+ border-radius: 0.25em 0.25em 0em 0em;
+}
+
+.ui.attached.bottom.button {
+ border-radius: 0em 0em 0.25em 0.25em;
+}
+
+.ui.attached.left.button {
+ display: inline-block;
+ border-left: none;
+ padding-right: 0.75em;
+ text-align: right;
+ border-radius: 0.25em 0em 0em 0.25em;
+}
+
+.ui.attached.right.button {
+ display: inline-block;
+ padding-left: 0.75em;
+ text-align: left;
+ border-radius: 0em 0.25em 0.25em 0em;
+}
+
+/*-------------------
+ Or Buttons
+--------------------*/
+
+.ui.buttons .or {
+ position: relative;
+ float: left;
+ width: 0.3em;
+ height: 1.1em;
+ z-index: 3;
+}
+
+.ui.buttons .or:before {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ content: 'or';
+ background-color: #FFFFFF;
+ margin-top: -0.1em;
+ margin-left: -0.9em;
+ width: 1.8em;
+ height: 1.8em;
+ line-height: 1.55;
+ color: #AAAAAA;
+ font-style: normal;
+ font-weight: normal;
+ text-align: center;
+ border-radius: 500px;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.buttons .or[data-text]:before {
+ content: attr(data-text);
+}
+
+.ui.buttons .or:after {
+ position: absolute;
+ top: 0em;
+ left: 0em;
+ content: ' ';
+ width: 0.3em;
+ height: 1.7em;
+ background-color: transparent;
+ border-top: 0.5em solid #FFFFFF;
+ border-bottom: 0.5em solid #FFFFFF;
+}
+
+/* Fluid Or */
+
+.ui.fluid.buttons .or {
+ width: 0em !important;
+}
+
+.ui.fluid.buttons .or:after {
+ display: none;
+}
+
+/*-------------------
+ Attached
+--------------------*/
+
+/* Plural Attached */
+
+.attached.ui.buttons {
+ margin: 0px;
+ border-radius: 4px 4px 0px 0px;
+}
+
+.attached.ui.buttons .button:first-child {
+ border-radius: 4px 0px 0px 0px;
+}
+
+.attached.ui.buttons .button:last-child {
+ border-radius: 0px 4px 0px 0px;
+}
+
+/* Bottom Side */
+
+.bottom.attached.ui.buttons {
+ margin-top: -1px;
+ border-radius: 0px 0px 4px 4px;
+}
+
+.bottom.attached.ui.buttons .button:first-child {
+ border-radius: 0px 0px 0px 4px;
+}
+
+.bottom.attached.ui.buttons .button:last-child {
+ border-radius: 0px 0px 4px 0px;
+}
+
+/* Left Side */
+
+.left.attached.ui.buttons {
+ margin-left: -1px;
+ border-radius: 0px 4px 4px 0px;
+}
+
+.left.attached.ui.buttons .button:first-child {
+ margin-left: -1px;
+ border-radius: 0px 4px 0px 0px;
+}
+
+.left.attached.ui.buttons .button:last-child {
+ margin-left: -1px;
+ border-radius: 0px 0px 4px 0px;
+}
+
+/* Right Side */
+
+.right.attached.ui.buttons,
+.right.attached.ui.buttons .button {
+ margin-right: -1px;
+ border-radius: 4px 0px 0px 4px;
+}
+
+.right.attached.ui.buttons .button:first-child {
+ margin-left: -1px;
+ border-radius: 4px 0px 0px 0px;
+}
+
+.right.attached.ui.buttons .button:last-child {
+ margin-left: -1px;
+ border-radius: 0px 0px 0px 4px;
+}
+
+/* Fluid */
+
+.ui.fluid.buttons,
+.ui.button.fluid,
+.ui.fluid.buttons > .button {
+ display: block;
+ width: 100%;
+}
+
+.ui.\32.buttons > .button,
+.ui.two.buttons > .button {
+ width: 50%;
+}
+
+.ui.\33.buttons > .button,
+.ui.three.buttons > .button {
+ width: 33.333%;
+}
+
+.ui.\34.buttons > .button,
+.ui.four.buttons > .button {
+ width: 25%;
+}
+
+.ui.\35.buttons > .button,
+.ui.five.buttons > .button {
+ width: 20%;
+}
+
+.ui.\36.buttons > .button,
+.ui.six.buttons > .button {
+ width: 16.666%;
+}
+
+.ui.\37.buttons > .button,
+.ui.seven.buttons > .button {
+ width: 14.285%;
+}
+
+.ui.\38.buttons > .button,
+.ui.eight.buttons > .button {
+ width: 12.500%;
+}
+
+.ui.\39.buttons > .button,
+.ui.nine.buttons > .button {
+ width: 11.11%;
+}
+
+.ui.\31\30.buttons > .button,
+.ui.ten.buttons > .button {
+ width: 10%;
+}
+
+.ui.\31\31.buttons > .button,
+.ui.eleven.buttons > .button {
+ width: 9.09%;
+}
+
+.ui.\31\32.buttons > .button,
+.ui.twelve.buttons > .button {
+ width: 8.3333%;
+}
+
+/* Fluid Vertical Buttons */
+
+.ui.fluid.vertical.buttons,
+.ui.fluid.vertical.buttons > .button {
+ display: block;
+ width: auto;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.\32.vertical.buttons > .button,
+.ui.two.vertical.buttons > .button {
+ height: 50%;
+}
+
+.ui.\33.vertical.buttons > .button,
+.ui.three.vertical.buttons > .button {
+ height: 33.333%;
+}
+
+.ui.\34.vertical.buttons > .button,
+.ui.four.vertical.buttons > .button {
+ height: 25%;
+}
+
+.ui.\35.vertical.buttons > .button,
+.ui.five.vertical.buttons > .button {
+ height: 20%;
+}
+
+.ui.\36.vertical.buttons > .button,
+.ui.six.vertical.buttons > .button {
+ height: 16.666%;
+}
+
+.ui.\37.vertical.buttons > .button,
+.ui.seven.vertical.buttons > .button {
+ height: 14.285%;
+}
+
+.ui.\38.vertical.buttons > .button,
+.ui.eight.vertical.buttons > .button {
+ height: 12.500%;
+}
+
+.ui.\39.vertical.buttons > .button,
+.ui.nine.vertical.buttons > .button {
+ height: 11.11%;
+}
+
+.ui.\31\30.vertical.buttons > .button,
+.ui.ten.vertical.buttons > .button {
+ height: 10%;
+}
+
+.ui.\31\31.vertical.buttons > .button,
+.ui.eleven.vertical.buttons > .button {
+ height: 9.09%;
+}
+
+.ui.\31\32.vertical.buttons > .button,
+.ui.twelve.vertical.buttons > .button {
+ height: 8.3333%;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+/*--- Black ---*/
+
+.ui.black.buttons .button,
+.ui.black.button {
+ background-color: #5C6166;
+ color: #FFFFFF;
+}
+
+.ui.black.buttons .button:hover,
+.ui.black.button:hover {
+ background-color: #4C4C4C;
+ color: #FFFFFF;
+}
+
+.ui.black.buttons .button:active,
+.ui.black.button:active {
+ background-color: #333333;
+ color: #FFFFFF;
+}
+
+/*--- Green ---*/
+
+.ui.green.buttons .button,
+.ui.green.button {
+ background-color: #5BBD72;
+ color: #FFFFFF;
+}
+
+.ui.green.buttons .button:hover,
+.ui.green.button:hover,
+.ui.green.buttons .active.button,
+.ui.green.button.active {
+ background-color: #58cb73;
+ color: #FFFFFF;
+}
+
+.ui.green.buttons .button:active,
+.ui.green.button:active {
+ background-color: #4CB164;
+ color: #FFFFFF;
+}
+
+/*--- Red ---*/
+
+.ui.red.buttons .button,
+.ui.red.button {
+ background-color: #D95C5C;
+ color: #FFFFFF;
+}
+
+.ui.red.buttons .button:hover,
+.ui.red.button:hover,
+.ui.red.buttons .active.button,
+.ui.red.button.active {
+ background-color: #E75859;
+ color: #FFFFFF;
+}
+
+.ui.red.buttons .button:active,
+.ui.red.button:active {
+ background-color: #D24B4C;
+ color: #FFFFFF;
+}
+
+/*--- Orange ---*/
+
+.ui.orange.buttons .button,
+.ui.orange.button {
+ background-color: #E96633;
+ color: #FFFFFF;
+}
+
+.ui.orange.buttons .button:hover,
+.ui.orange.button:hover,
+.ui.orange.buttons .active.button,
+.ui.orange.button.active {
+ background-color: #FF7038;
+ color: #FFFFFF;
+}
+
+.ui.orange.buttons .button:active,
+.ui.orange.button:active {
+ background-color: #DA683B;
+ color: #FFFFFF;
+}
+
+/*--- Blue ---*/
+
+.ui.blue.buttons .button,
+.ui.blue.button {
+ background-color: #6ECFF5;
+ color: #FFFFFF;
+}
+
+.ui.blue.buttons .button:hover,
+.ui.blue.button:hover,
+.ui.blue.buttons .active.button,
+.ui.blue.button.active {
+ background-color: #1AB8F3;
+ color: #FFFFFF;
+}
+
+.ui.blue.buttons .button:active,
+.ui.blue.button:active {
+ background-color: #0AA5DF;
+ color: #FFFFFF;
+}
+
+/*--- Purple ---*/
+
+.ui.purple.buttons .button,
+.ui.purple.button {
+ background-color: #564F8A;
+ color: #FFFFFF;
+}
+
+.ui.purple.buttons .button:hover,
+.ui.purple.button:hover,
+.ui.purple.buttons .active.button,
+.ui.purple.button.active {
+ background-color: #3E3773;
+ color: #FFFFFF;
+}
+
+.ui.purple.buttons .button:active,
+.ui.purple.button:active {
+ background-color: #2E2860;
+ color: #FFFFFF;
+}
+
+/*--- Teal ---*/
+
+.ui.teal.buttons .button,
+.ui.teal.button {
+ background-color: #00B5AD;
+ color: #FFFFFF;
+}
+
+.ui.teal.buttons .button:hover,
+.ui.teal.button:hover,
+.ui.teal.buttons .active.button,
+.ui.teal.button.active {
+ background-color: #009A93;
+ color: #FFFFFF;
+}
+
+.ui.teal.buttons .button:active,
+.ui.teal.button:active {
+ background-color: #00847E;
+ color: #FFFFFF;
+}
+
+/*---------------
+ Positive
+----------------*/
+
+.ui.positive.buttons .button,
+.ui.positive.button {
+ background-color: #5BBD72 !important;
+ color: #FFFFFF;
+}
+
+.ui.positive.buttons .button:hover,
+.ui.positive.button:hover,
+.ui.positive.buttons .active.button,
+.ui.positive.button.active {
+ background-color: #58CB73 !important;
+ color: #FFFFFF;
+}
+
+.ui.positive.buttons .button:active,
+.ui.positive.button:active {
+ background-color: #4CB164 !important;
+ color: #FFFFFF;
+}
+
+/*---------------
+ Negative
+----------------*/
+
+.ui.negative.buttons .button,
+.ui.negative.button {
+ background-color: #D95C5C !important;
+ color: #FFFFFF;
+}
+
+.ui.negative.buttons .button:hover,
+.ui.negative.button:hover,
+.ui.negative.buttons .active.button,
+.ui.negative.button.active {
+ background-color: #E75859 !important;
+ color: #FFFFFF;
+}
+
+.ui.negative.buttons .button:active,
+.ui.negative.button:active {
+ background-color: #D24B4C !important;
+ color: #FFFFFF;
+}
+
+/*******************************
+ Groups
+*******************************/
+
+.ui.buttons {
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.ui.buttons:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+.ui.buttons .button:first-child {
+ border-left: none;
+}
+
+.ui.buttons .button {
+ float: left;
+ border-radius: 0em;
+}
+
+.ui.buttons .button:first-child {
+ margin-left: 0em;
+ border-top-left-radius: 0.25em;
+ border-bottom-left-radius: 0.25em;
+}
+
+.ui.buttons .button:last-child {
+ border-top-right-radius: 0.25em;
+ border-bottom-right-radius: 0.25em;
+}
+
+/* Vertical Style */
+
+.ui.vertical.buttons {
+ display: inline-block;
+}
+
+.ui.vertical.buttons .button {
+ display: block;
+ float: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.vertical.buttons .button:first-child,
+.ui.vertical.buttons .mini.button:first-child,
+.ui.vertical.buttons .tiny.button:first-child,
+.ui.vertical.buttons .small.button:first-child,
+.ui.vertical.buttons .massive.button:first-child,
+.ui.vertical.buttons .huge.button:first-child {
+ margin-top: 0px;
+ border-radius: 0.25em 0.25em 0px 0px;
+}
+
+.ui.vertical.buttons .button:last-child,
+.ui.vertical.buttons .mini.button:last-child,
+.ui.vertical.buttons .tiny.button:last-child,
+.ui.vertical.buttons .small.button:last-child,
+.ui.vertical.buttons .massive.button:last-child,
+.ui.vertical.buttons .huge.button:last-child,
+.ui.vertical.buttons .gigantic.button:last-child {
+ border-radius: 0px 0px 0.25em 0.25em;
+}
+/*
+ * # Semantic - Divider
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Divider
+*******************************/
+
+.ui.divider {
+ margin: 1rem 0rem;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ border-bottom: 1px solid rgba(255, 255, 255, 0.8);
+ line-height: 1;
+ height: 0em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+
+.ui.vertical.divider,
+.ui.horizontal.divider {
+ position: absolute;
+ border: none;
+ height: 0em;
+ margin: 0em;
+ background-color: transparent;
+ font-size: 0.875rem;
+ font-weight: bold;
+ text-align: center;
+ text-transform: uppercase;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--------------
+ Vertical
+---------------*/
+
+.ui.vertical.divider {
+ position: absolute;
+ z-index: 2;
+ top: 50%;
+ left: 50%;
+ margin: 0% 0% 0% -3%;
+ width: 6%;
+ height: 50%;
+ line-height: 0;
+ padding: 0em;
+}
+
+.ui.vertical.divider:before,
+.ui.vertical.divider:after {
+ position: absolute;
+ left: 50%;
+ content: " ";
+ z-index: 3;
+ border-left: 1px solid rgba(0, 0, 0, 0.1);
+ border-right: 1px solid rgba(255, 255, 255, 0.8);
+ width: 0%;
+ height: 80%;
+}
+
+.ui.vertical.divider:before {
+ top: -100%;
+}
+
+.ui.vertical.divider:after {
+ top: auto;
+ bottom: 0px;
+}
+
+/*--------------
+ Horizontal
+---------------*/
+
+.ui.horizontal.divider {
+ position: relative;
+ top: 0%;
+ left: 0%;
+ margin: 1rem 1.5rem;
+ height: auto;
+ padding: 0em;
+ line-height: 1;
+}
+
+.ui.horizontal.divider:before,
+.ui.horizontal.divider:after {
+ position: absolute;
+ content: " ";
+ z-index: 3;
+ width: 50%;
+ top: 50%;
+ height: 0%;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ border-bottom: 1px solid rgba(255, 255, 255, 0.8);
+}
+
+.ui.horizontal.divider:before {
+ left: 0%;
+ margin-left: -1.5rem;
+}
+
+.ui.horizontal.divider:after {
+ left: auto;
+ right: 0%;
+ margin-right: -1.5rem;
+}
+
+/*--------------
+ Icon
+---------------*/
+
+.ui.divider > .icon {
+ margin: 0em;
+ font-size: 1rem;
+ vertical-align: middle;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.divider.inverted {
+ color: #ffffff;
+}
+
+.ui.vertical.inverted.divider,
+.ui.horizontal.inverted.divider {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.divider.inverted,
+.ui.divider.inverted:after,
+.ui.divider.inverted:before {
+ border-top-color: rgba(0, 0, 0, 0.15);
+ border-bottom-color: rgba(255, 255, 255, 0.15);
+ border-left-color: rgba(0, 0, 0, 0.15);
+ border-right-color: rgba(255, 255, 255, 0.15);
+}
+
+/*--------------
+ Fitted
+---------------*/
+
+.ui.fitted.divider {
+ margin: 0em;
+}
+
+/*--------------
+ Clearing
+---------------*/
+
+.ui.clearing.divider {
+ clear: both;
+}
+
+/*--------------
+ Section
+---------------*/
+
+.ui.section.divider {
+ margin-top: 2rem;
+ margin-bottom: 2rem;
+}
+/*
+ * # Semantic - Header
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Header
+*******************************/
+
+/* Standard */
+
+.ui.header {
+ border: none;
+ margin: 1em 0em 1rem;
+ padding: 0em;
+ font-size: 1.33em;
+ font-weight: bold;
+ line-height: 1.33;
+}
+
+.ui.header .sub.header {
+ font-size: 1rem;
+ font-weight: normal;
+ margin: 0em;
+ padding: 0em;
+ line-height: 1.2;
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.header .icon {
+ display: table-cell;
+ vertical-align: middle;
+ padding-right: 0.5em;
+}
+
+.ui.header .icon:only-child {
+ display: inline-block;
+ vertical-align: baseline;
+}
+
+.ui.header .content {
+ display: inline-block;
+ vertical-align: top;
+}
+
+.ui.header .icon + .content {
+ padding-left: 0.5em;
+ display: table-cell;
+}
+
+/* Positioning */
+
+.ui.header:first-child {
+ margin-top: 0em;
+}
+
+.ui.header:last-child {
+ margin-bottom: 0em;
+}
+
+.ui.header + p {
+ margin-top: 0em;
+}
+
+/*--------------
+ Page Heading
+---------------*/
+
+h1.ui.header {
+ min-height: 1rem;
+ line-height: 1.33;
+ font-size: 2rem;
+}
+
+h2.ui.header {
+ line-height: 1.33;
+ font-size: 1.75rem;
+}
+
+h3.ui.header {
+ line-height: 1.33;
+ font-size: 1.33rem;
+}
+
+h4.ui.header {
+ line-height: 1.33;
+ font-size: 1.1rem;
+}
+
+h5.ui.header {
+ line-height: 1.2;
+ font-size: 1rem;
+}
+
+/*--------------
+ Content Heading
+---------------*/
+
+.ui.huge.header {
+ min-height: 1em;
+ font-size: 2em;
+}
+
+.ui.large.header {
+ font-size: 1.75em;
+}
+
+.ui.medium.header {
+ font-size: 1.33em;
+}
+
+.ui.small.header {
+ font-size: 1.1em;
+}
+
+.ui.tiny.header {
+ font-size: 1em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Icon
+--------------------*/
+
+.ui.icon.header {
+ display: inline-block;
+ text-align: center;
+}
+
+.ui.icon.header .icon {
+ float: none;
+ display: block;
+ font-size: 3em;
+ margin: 0em auto 0.2em;
+ padding: 0em;
+}
+
+.ui.icon.header .content {
+ display: block;
+}
+
+.ui.icon.header .circular.icon,
+.ui.icon.header .square.icon {
+ font-size: 2em;
+}
+
+.ui.block.icon.header .icon {
+ margin-bottom: 0em;
+}
+
+.ui.icon.header.aligned {
+ margin-left: auto;
+ margin-right: auto;
+ display: block;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.disabled.header {
+ opacity: 0.5;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Colors
+--------------------*/
+
+.ui.blue.header {
+ color: #6ECFF5 !important;
+}
+
+.ui.black.header {
+ color: #5C6166 !important;
+}
+
+.ui.green.header {
+ color: #A1CF64 !important;
+}
+
+.ui.red.header {
+ color: #D95C5C !important;
+}
+
+.ui.purple.header {
+ color: #564F8A !important;
+}
+
+.ui.teal.header {
+ color: #00B5AD !important;
+}
+
+.ui.blue.dividing.header {
+ border-bottom: 3px solid #6ECFF5;
+}
+
+.ui.black.dividing.header {
+ border-bottom: 3px solid #5C6166;
+}
+
+.ui.green.dividing.header {
+ border-bottom: 3px solid #A1CF64;
+}
+
+.ui.red.dividing.header {
+ border-bottom: 3px solid #D95C5C;
+}
+
+.ui.purple.dividing.header {
+ border-bottom: 3px solid #564F8A;
+}
+
+.ui.teal.dividing.header {
+ border-bottom: 3px solid #00B5AD;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.inverted.header {
+ color: #FFFFFF;
+}
+
+.ui.inverted.header .sub.header {
+ color: rgba(255, 255, 255, 0.85);
+}
+
+/*-------------------
+ Inverted Colors
+--------------------*/
+
+.ui.inverted.black.header {
+ background-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.blue.header {
+ background-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.green.header {
+ background-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.red.header {
+ background-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.purple.header {
+ background-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.teal.header {
+ background-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.block.header {
+ border-bottom: none;
+}
+
+/*-------------------
+ Aligned
+--------------------*/
+
+.ui.left.aligned.header {
+ text-align: left;
+}
+
+.ui.right.aligned.header {
+ text-align: right;
+}
+
+.ui.center.aligned.header {
+ text-align: center;
+}
+
+.ui.justified.header {
+ text-align: justify;
+}
+
+.ui.justified.header:after {
+ display: inline-block;
+ content: '';
+ width: 100%;
+}
+
+/*-------------------
+ Floated
+--------------------*/
+
+.ui.floated.header,
+.ui.left.floated.header {
+ float: left;
+ margin-top: 0em;
+ margin-right: 0.5em;
+}
+
+.ui.right.floated.header {
+ float: right;
+ margin-top: 0em;
+ margin-left: 0.5em;
+}
+
+/*-------------------
+ Fittted
+--------------------*/
+
+.ui.fitted.header {
+ padding: 0em;
+}
+
+/*-------------------
+ Dividing
+--------------------*/
+
+.ui.dividing.header {
+ padding-bottom: 0.2rem;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+.ui.dividing.header .sub.header {
+ padding-bottom: 0.5em;
+}
+
+.ui.dividing.header .icon {
+ margin-bottom: 0.2em;
+}
+
+/*-------------------
+ Block
+--------------------*/
+
+.ui.block.header {
+ background-color: rgba(0, 0, 0, 0.05);
+ padding: 0.5em 1em;
+}
+
+/*-------------------
+ Attached
+--------------------*/
+
+.ui.attached.header {
+ background-color: #E0E0E0;
+ padding: 0.5em 1rem;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.top.attached.header {
+ margin-bottom: 0em;
+ border-radius: 0.3125em 0.3125em 0em 0em;
+}
+
+.ui.bottom.attached.header {
+ margin-top: 0em;
+ border-radius: 0em 0em 0.3125em 0.3125em;
+}
+/*
+ * # Semantic - Icon
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*!
+ * Font Awesome 3.2.1
+ * the iconic font designed for Bootstrap
+ * ------------------------------------------------------------------------------
+ * The full suite of pictographic icons, examples, and documentation can be
+ * found at http://fon.io. Stay up to date on Twitter at
+ * http://twitter.com/fon.
+ *
+ * License
+ * ------------------------------------------------------------------------------
+ * - The Font Awesome font is licensed under SIL OFL 1.1 -
+ * http://scripts.sil.org/OFL
+
+/*******************************
+ Icon
+*******************************/
+
+@font-face {
+ font-family: 'Icons';
+ src: url(../fonts/icons.eot);
+ src: url(../fonts/icons.eot?#iefix) format('embedded-opentype'), url(../fonts/icons.svg#icons) format('svg'), url(../fonts/icons.woff) format('woff'), url(../fonts/icons.ttf) format('truetype');
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-decoration: inherit;
+ text-transform: none;
+}
+
+i.icon {
+ display: inline-block;
+ opacity: 0.75;
+ margin: 0em 0.25em 0em 0em;
+ width: 1.23em;
+ height: 1em;
+ font-family: 'Icons';
+ font-style: normal;
+ line-height: 1;
+ font-weight: normal;
+ text-decoration: inherit;
+ text-align: center;
+ speak: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+i.icon.left:before {
+ content: "\f060";
+}
+
+i.icon.right:before {
+ content: "\f061";
+}
+
+i.icon.add.sign.box:before {
+ content: "\f0fe";
+}
+
+i.icon.add.sign:before {
+ content: "\f055";
+}
+
+i.icon.add:before {
+ content: "\f067";
+}
+
+i.icon.adjust:before {
+ content: "\f042";
+}
+
+i.icon.adn:before {
+ content: "\f170";
+}
+
+i.icon.align.center:before {
+ content: "\f037";
+}
+
+i.icon.align.justify:before {
+ content: "\f039";
+}
+
+i.icon.align.left:before {
+ content: "\f036";
+}
+
+i.icon.align.right:before {
+ content: "\f038";
+}
+
+i.icon.ambulance:before {
+ content: "\f0f9";
+}
+
+i.icon.anchor:before {
+ content: "\f13d";
+}
+
+i.icon.android:before {
+ content: "\f17b";
+}
+
+i.icon.angle.down:before {
+ content: "\f107";
+}
+
+i.icon.angle.left:before {
+ content: "\f104";
+}
+
+i.icon.angle.right:before {
+ content: "\f105";
+}
+
+i.icon.angle.up:before {
+ content: "\f106";
+}
+
+i.icon.apple:before {
+ content: "\f179";
+}
+
+i.icon.archive:before {
+ content: "\f187";
+}
+
+i.icon.arrow.down:before {
+ content: "\f078";
+}
+
+i.icon.arrow.left:before {
+ content: "\f053";
+}
+
+i.icon.arrow.right:before {
+ content: "\f054";
+}
+
+i.icon.arrow.sign.down:before {
+ content: "\f13a";
+}
+
+i.icon.arrow.sign.left:before {
+ content: "\f137";
+}
+
+i.icon.arrow.sign.right:before {
+ content: "\f138";
+}
+
+i.icon.arrow.sign.up:before {
+ content: "\f139";
+}
+
+i.icon.arrow.up:before {
+ content: "\f077";
+}
+
+i.icon.asterisk:before {
+ content: "\f069";
+}
+
+i.icon.attachment:before {
+ content: "\f0c6";
+}
+
+i.icon.attention:before {
+ content: "\f06a";
+}
+
+i.icon.backward:before {
+ content: "\f04a";
+}
+
+i.icon.ban.circle:before {
+ content: "\f05e";
+}
+
+i.icon.bar.chart:before {
+ content: "\f080";
+}
+
+i.icon.barcode:before {
+ content: "\f02a";
+}
+
+i.icon.beer:before {
+ content: "\f0fc";
+}
+
+i.icon.bell.outline:before {
+ content: "\f0a2";
+}
+
+i.icon.bell:before {
+ content: "\f0f3";
+}
+
+i.icon.bitbucket.sign:before {
+ content: "\f172";
+}
+
+i.icon.bitbucket:before {
+ content: "\f171";
+}
+
+i.icon.bitcoin:before {
+ content: "\f15a";
+}
+
+i.icon.bold:before {
+ content: "\f032";
+}
+
+i.icon.bolt:before {
+ content: "\f0e7";
+}
+
+i.icon.book:before {
+ content: "\f02d";
+}
+
+i.icon.bookmark.empty:before {
+ content: "\f097";
+}
+
+i.icon.bookmark:before {
+ content: "\f02e";
+}
+
+i.icon.box.arrow.down:before {
+ content: "\f150";
+}
+
+/*rtl:ignore*/
+
+i.icon.box.arrow.right:before {
+ content: "\f152";
+}
+
+i.icon.box.arrow.up:before {
+ content: "\f151";
+}
+
+i.icon.briefcase:before {
+ content: "\f0b1";
+}
+
+i.icon.browser:before {
+ content: "\f022";
+}
+
+i.icon.bug:before {
+ content: "\f188";
+}
+
+i.icon.building:before {
+ content: "\f0f7";
+}
+
+i.icon.bullhorn:before {
+ content: "\f0a1";
+}
+
+i.icon.bullseye:before {
+ content: "\f140";
+}
+
+i.icon.calendar.empty:before {
+ content: "\f133";
+}
+
+i.icon.calendar:before {
+ content: "\f073";
+}
+
+i.icon.camera.retro:before {
+ content: "\f083";
+}
+
+i.icon.camera:before {
+ content: "\f030";
+}
+
+i.icon.triangle.down:before {
+ content: "\f0d7";
+}
+
+i.icon.triangle.left:before {
+ content: "\f0d9";
+}
+
+i.icon.triangle.right:before {
+ content: "\f0da";
+}
+
+i.icon.triangle.up:before {
+ content: "\f0d8";
+}
+
+i.icon.cart:before {
+ content: "\f07a";
+}
+
+i.icon.certificate:before {
+ content: "\f0a3";
+}
+
+i.icon.chat.outline:before {
+ content: "\f0e6";
+}
+
+i.icon.chat:before {
+ content: "\f086";
+}
+
+i.icon.checkbox.empty:before {
+ content: "\f096";
+}
+
+i.icon.checkbox.minus:before {
+ content: "\f147";
+}
+
+i.icon.checked.checkbox:before {
+ content: "\f046";
+}
+
+i.icon.checkmark.sign:before {
+ content: "\f14a";
+}
+
+i.icon.checkmark:before {
+ content: "\f00c";
+}
+
+i.icon.circle.blank:before {
+ content: "\f10c";
+}
+
+i.icon.circle.down:before {
+ content: "\f0ab";
+}
+
+i.icon.circle.left:before {
+ content: "\f0a8";
+}
+
+i.icon.circle.right:before {
+ content: "\f0a9";
+}
+
+i.icon.circle.up:before {
+ content: "\f0aa";
+}
+
+i.icon.circle:before {
+ content: "\f111";
+}
+
+i.icon.cloud.download:before {
+ content: "\f0ed";
+}
+
+i.icon.cloud.upload:before {
+ content: "\f0ee";
+}
+
+i.icon.cloud:before {
+ content: "\f0c2";
+}
+
+i.icon.code.fork:before {
+ content: "\f126";
+}
+
+i.icon.code:before {
+ content: "\f121";
+}
+
+i.icon.coffee:before {
+ content: "\f0f4";
+}
+
+i.icon.collapse:before {
+ content: "\f117";
+}
+
+i.icon.comment.outline:before {
+ content: "\f0e5";
+}
+
+i.icon.comment:before {
+ content: "\f075";
+}
+
+i.icon.copy:before {
+ content: "\f0c5";
+}
+
+i.icon.crop:before {
+ content: "\f125";
+}
+
+i.icon.css3:before {
+ content: "\f13c";
+}
+
+i.icon.cut:before {
+ content: "\f0c4";
+}
+
+i.icon.dashboard:before {
+ content: "\f0e4";
+}
+
+i.icon.desktop:before {
+ content: "\f108";
+}
+
+i.icon.doctor:before {
+ content: "\f0f0";
+}
+
+i.icon.dollar:before {
+ content: "\f155";
+}
+
+i.icon.double.angle.down:before {
+ content: "\f103";
+}
+
+i.icon.double.angle.left:before {
+ content: "\f100";
+}
+
+i.icon.double.angle.right:before {
+ content: "\f101";
+}
+
+i.icon.double.angle.up:before {
+ content: "\f102";
+}
+
+i.icon.down:before {
+ content: "\f063";
+}
+
+i.icon.download.disk:before {
+ content: "\f019";
+}
+
+i.icon.download:before {
+ content: "\f01a";
+}
+
+i.icon.dribbble:before {
+ content: "\f17d";
+}
+
+i.icon.dropbox:before {
+ content: "\f16b";
+}
+
+i.icon.edit.sign:before {
+ content: "\f14b";
+}
+
+i.icon.edit:before {
+ content: "\f044";
+}
+
+i.icon.eject:before {
+ content: "\f052";
+}
+
+i.icon.ellipsis.horizontal:before {
+ content: "\f141";
+}
+
+i.icon.ellipsis.vertical:before {
+ content: "\f142";
+}
+
+i.icon.eraser:before {
+ content: "\f12d";
+}
+
+i.icon.euro:before {
+ content: "\f153";
+}
+
+i.icon.exchange:before {
+ content: "\f0ec";
+}
+
+i.icon.exclamation:before {
+ content: "\f12a";
+}
+
+i.icon.expand:before {
+ content: "\f116";
+}
+
+i.icon.external.url.sign:before {
+ content: "\f14c";
+}
+
+i.icon.external.url:before {
+ content: "\f08e";
+}
+
+i.icon.facebook.sign:before {
+ content: "\f082";
+}
+
+i.icon.facebook:before {
+ content: "\f09a";
+}
+
+i.icon.facetime.video:before {
+ content: "\f03d";
+}
+
+i.icon.fast.backward:before {
+ content: "\f049";
+}
+
+i.icon.fast.forward:before {
+ content: "\f050";
+}
+
+i.icon.female:before {
+ content: "\f182";
+}
+
+i.icon.fighter.jet:before {
+ content: "\f0fb";
+}
+
+i.icon.file.outline:before {
+ content: "\f016";
+}
+
+i.icon.file.text.outline:before {
+ content: "\f0f6";
+}
+
+i.icon.file.text:before {
+ content: "\f15c";
+}
+
+i.icon.file:before {
+ content: "\f15b";
+}
+
+i.icon.filter:before {
+ content: "\f0b0";
+}
+
+i.icon.fire.extinguisher:before {
+ content: "\f134";
+}
+
+i.icon.fire:before {
+ content: "\f06d";
+}
+
+i.icon.flag.checkered:before {
+ content: "\f11e";
+}
+
+i.icon.flag.empty:before {
+ content: "\f11d";
+}
+
+i.icon.flag:before {
+ content: "\f024";
+}
+
+i.icon.flickr:before {
+ content: "\f16e";
+}
+
+i.icon.folder.open.outline:before {
+ content: "\f115";
+}
+
+i.icon.folder.open:before {
+ content: "\f07c";
+}
+
+i.icon.folder.outline:before {
+ content: "\f114";
+}
+
+i.icon.folder:before {
+ content: "\f07b";
+}
+
+i.icon.font:before {
+ content: "\f031";
+}
+
+i.icon.food:before {
+ content: "\f0f5";
+}
+
+i.icon.forward.mail:before {
+ content: "\f064";
+}
+
+i.icon.forward:before {
+ content: "\f04e";
+}
+
+i.icon.foursquare:before {
+ content: "\f180";
+}
+
+i.icon.frown:before {
+ content: "\f119";
+}
+
+i.icon.fullscreen:before {
+ content: "\f0b2";
+}
+
+i.icon.gamepad:before {
+ content: "\f11b";
+}
+
+i.icon.gift:before {
+ content: "\f06b";
+}
+
+i.icon.github.alternate:before {
+ content: "\f09b";
+}
+
+i.icon.github.sign:before {
+ content: "\f092";
+}
+
+i.icon.github:before {
+ content: "\f113";
+}
+
+i.icon.gittip:before {
+ content: "\f184";
+}
+
+i.icon.glass:before {
+ content: "\f000";
+}
+
+i.icon.globe:before {
+ content: "\f0ac";
+}
+
+i.icon.google.plus.sign:before {
+ content: "\f0d4";
+}
+
+i.icon.google.plus:before {
+ content: "\f0d5";
+}
+
+i.icon.h.sign:before {
+ content: "\f0fd";
+}
+
+i.icon.hand.down:before {
+ content: "\f0a7";
+}
+
+i.icon.hand.left:before {
+ content: "\f0a5";
+}
+
+i.icon.hand.right:before {
+ content: "\f0a4";
+}
+
+i.icon.hand.up:before {
+ content: "\f0a6";
+}
+
+i.icon.hdd:before {
+ content: "\f0a0";
+}
+
+i.icon.headphones:before {
+ content: "\f025";
+}
+
+i.icon.heart.empty:before {
+ content: "\f08a";
+}
+
+i.icon.heart:before {
+ content: "\f004";
+}
+
+i.icon.help:before {
+ content: "\f059";
+}
+
+i.icon.hide:before {
+ content: "\f070";
+}
+
+i.icon.home:before {
+ content: "\f015";
+}
+
+i.icon.hospital:before {
+ content: "\f0f8";
+}
+
+i.icon.html5:before {
+ content: "\f13b";
+}
+
+i.icon.inbox:before {
+ content: "\f01c";
+}
+
+i.icon.indent.left:before {
+ content: "\f03b";
+}
+
+i.icon.indent.right:before {
+ content: "\f03c";
+}
+
+i.icon.info.letter:before {
+ content: "\f129";
+}
+
+i.icon.info:before {
+ content: "\f05a";
+}
+
+i.icon.instagram:before {
+ content: "\f16d";
+}
+
+i.icon.italic:before {
+ content: "\f033";
+}
+
+i.icon.key:before {
+ content: "\f084";
+}
+
+i.icon.keyboard:before {
+ content: "\f11c";
+}
+
+i.icon.lab:before {
+ content: "\f0c3";
+}
+
+i.icon.laptop:before {
+ content: "\f109";
+}
+
+i.icon.layout.block:before {
+ content: "\f009";
+}
+
+i.icon.layout.column:before {
+ content: "\f0db";
+}
+
+i.icon.layout.grid:before {
+ content: "\f00a";
+}
+
+i.icon.layout.list:before {
+ content: "\f00b";
+}
+
+i.icon.leaf:before {
+ content: "\f06c";
+}
+
+i.icon.legal:before {
+ content: "\f0e3";
+}
+
+i.icon.lemon:before {
+ content: "\f094";
+}
+
+i.icon.level.down:before {
+ content: "\f149";
+}
+
+i.icon.level.up:before {
+ content: "\f148";
+}
+
+i.icon.lightbulb:before {
+ content: "\f0eb";
+}
+
+i.icon.linkedin.sign:before {
+ content: "\f08c";
+}
+
+i.icon.linkedin:before {
+ content: "\f0e1";
+}
+
+i.icon.linux:before {
+ content: "\f17c";
+}
+
+i.icon.list.ordered:before {
+ content: "\f0cb";
+}
+
+i.icon.list.unordered:before {
+ content: "\f0ca";
+}
+
+i.icon.list:before {
+ content: "\f03a";
+}
+
+i.icon.loading:before {
+ content: "\f110";
+}
+
+i.icon.location:before {
+ content: "\f124";
+}
+
+i.icon.lock:before {
+ content: "\f023";
+}
+
+i.icon.long.arrow.down:before {
+ content: "\f175";
+}
+
+i.icon.long.arrow.left:before {
+ content: "\f177";
+}
+
+i.icon.long.arrow.right:before {
+ content: "\f178";
+}
+
+i.icon.long.arrow.up:before {
+ content: "\f176";
+}
+
+i.icon.magic:before {
+ content: "\f0d0";
+}
+
+i.icon.magnet:before {
+ content: "\f076";
+}
+
+i.icon.mail.outline:before {
+ content: "\f003";
+}
+
+i.icon.mail.reply:before {
+ content: "\f112";
+}
+
+i.icon.mail:before {
+ content: "\f0e0";
+}
+
+i.icon.male:before {
+ content: "\f183";
+}
+
+i.icon.map.marker:before {
+ content: "\f041";
+}
+
+i.icon.map:before {
+ content: "\f14e";
+}
+
+i.icon.maxcdn:before {
+ content: "\f136";
+}
+
+i.icon.medkit:before {
+ content: "\f0fa";
+}
+
+i.icon.meh:before {
+ content: "\f11a";
+}
+
+i.icon.minus.sign.alternate:before {
+ content: "\f146";
+}
+
+i.icon.minus.sign:before {
+ content: "\f056";
+}
+
+i.icon.minus:before {
+ content: "\f068";
+}
+
+i.icon.mobile:before {
+ content: "\f10b";
+}
+
+i.icon.money:before {
+ content: "\f0d6";
+}
+
+i.icon.moon:before {
+ content: "\f186";
+}
+
+i.icon.move:before {
+ content: "\f047";
+}
+
+i.icon.music:before {
+ content: "\f001";
+}
+
+i.icon.mute:before {
+ content: "\f131";
+}
+
+i.icon.off:before {
+ content: "\f011";
+}
+
+i.icon.ok.circle:before {
+ content: "\f05d";
+}
+
+i.icon.ok.sign:before {
+ content: "\f058";
+}
+
+i.icon.paste:before {
+ content: "\f0ea";
+}
+
+i.icon.pause:before {
+ content: "\f04c";
+}
+
+i.icon.payment:before {
+ content: "\f09d";
+}
+
+i.icon.pencil:before {
+ content: "\f040";
+}
+
+i.icon.phone.sign:before {
+ content: "\f098";
+}
+
+i.icon.phone:before {
+ content: "\f095";
+}
+
+i.icon.photo:before {
+ content: "\f03e";
+}
+
+i.icon.pin:before {
+ content: "\f08d";
+}
+
+i.icon.pinterest.sign:before {
+ content: "\f0d3";
+}
+
+i.icon.pinterest:before {
+ content: "\f0d2";
+}
+
+i.icon.plane:before {
+ content: "\f072";
+}
+
+i.icon.play.circle:before {
+ content: "\f01d";
+}
+
+i.icon.play.sign:before {
+ content: "\f144";
+}
+
+i.icon.play:before {
+ content: "\f04b";
+}
+
+i.icon.pound:before {
+ content: "\f154";
+}
+
+i.icon.print:before {
+ content: "\f02f";
+}
+
+i.icon.puzzle.piece:before {
+ content: "\f12e";
+}
+
+i.icon.qr.code:before {
+ content: "\f029";
+}
+
+i.icon.question:before {
+ content: "\f128";
+}
+
+i.icon.quote.left:before {
+ content: "\f10d";
+}
+
+i.icon.quote.right:before {
+ content: "\f10e";
+}
+
+i.icon.refresh:before {
+ content: "\f021";
+}
+
+i.icon.remove.circle:before {
+ content: "\f05c";
+}
+
+i.icon.remove.sign:before {
+ content: "\f057";
+}
+
+i.icon.remove:before {
+ content: "\f00d";
+}
+
+i.icon.renren:before {
+ content: "\f18b";
+}
+
+i.icon.reorder:before {
+ content: "\f0c9";
+}
+
+i.icon.repeat:before {
+ content: "\f01e";
+}
+
+i.icon.reply.all.mail:before {
+ content: "\f122";
+}
+
+i.icon.resize.full:before {
+ content: "\f065";
+}
+
+i.icon.resize.horizontal:before {
+ content: "\f07e";
+}
+
+i.icon.resize.small:before {
+ content: "\f066";
+}
+
+i.icon.resize.vertical:before {
+ content: "\f07d";
+}
+
+i.icon.retweet:before {
+ content: "\f079";
+}
+
+i.icon.road:before {
+ content: "\f018";
+}
+
+i.icon.rocket:before {
+ content: "\f135";
+}
+
+i.icon.rss.sign:before {
+ content: "\f143";
+}
+
+i.icon.rss:before {
+ content: "\f09e";
+}
+
+i.icon.rupee:before {
+ content: "\f156";
+}
+
+i.icon.save:before {
+ content: "\f0c7";
+}
+
+i.icon.screenshot:before {
+ content: "\f05b";
+}
+
+i.icon.search:before {
+ content: "\f002";
+}
+
+i.icon.setting:before {
+ content: "\f013";
+}
+
+i.icon.settings:before {
+ content: "\f085";
+}
+
+i.icon.share.sign:before {
+ content: "\f14d";
+}
+
+i.icon.share:before {
+ content: "\f045";
+}
+
+i.icon.shield:before {
+ content: "\f132";
+}
+
+i.icon.shuffle:before {
+ content: "\f074";
+}
+
+i.icon.sign.in:before {
+ content: "\f090";
+}
+
+i.icon.sign.out:before {
+ content: "\f08b";
+}
+
+i.icon.sign:before {
+ content: "\f0c8";
+}
+
+i.icon.signal:before {
+ content: "\f012";
+}
+
+i.icon.sitemap:before {
+ content: "\f0e8";
+}
+
+i.icon.skype:before {
+ content: "\f17e";
+}
+
+i.icon.smile:before {
+ content: "\f118";
+}
+
+i.icon.sort.ascending:before {
+ content: "\f0de";
+}
+
+i.icon.sort.descending:before {
+ content: "\f0dd";
+}
+
+i.icon.sort.alphabet.descending:before {
+ content: "\f15e";
+}
+
+i.icon.sort.alphabet:before {
+ content: "\f15d";
+}
+
+i.icon.sort.attributes.descending:before {
+ content: "\f161";
+}
+
+i.icon.sort.attributes:before {
+ content: "\f160";
+}
+
+i.icon.sort.order.descending:before {
+ content: "\f163";
+}
+
+i.icon.sort.order:before {
+ content: "\f162";
+}
+
+i.icon.sort:before {
+ content: "\f0dc";
+}
+
+i.icon.stackexchange:before {
+ content: "\f16c";
+}
+
+i.icon.star.empty:before {
+ content: "\f006";
+}
+
+i.icon.star.half.empty:before {
+ content: "\f123";
+}
+
+i.icon.star.half.full:before,
+i.icon.star.half:before {
+ content: "\f089";
+}
+
+i.icon.star:before {
+ content: "\f005";
+}
+
+i.icon.step.backward:before {
+ content: "\f048";
+}
+
+i.icon.step.forward:before {
+ content: "\f051";
+}
+
+i.icon.stethoscope:before {
+ content: "\f0f1";
+}
+
+i.icon.stop:before {
+ content: "\f04d";
+}
+
+i.icon.strikethrough:before {
+ content: "\f0cc";
+}
+
+i.icon.subscript:before {
+ content: "\f12c";
+}
+
+i.icon.suitcase:before {
+ content: "\f0f2";
+}
+
+i.icon.sun:before {
+ content: "\f185";
+}
+
+i.icon.superscript:before {
+ content: "\f12b";
+}
+
+i.icon.table:before {
+ content: "\f0ce";
+}
+
+i.icon.tablet:before {
+ content: "\f10a";
+}
+
+i.icon.tag:before {
+ content: "\f02b";
+}
+
+i.icon.tags:before {
+ content: "\f02c";
+}
+
+i.icon.tasks:before {
+ content: "\f0ae";
+}
+
+i.icon.terminal:before {
+ content: "\f120";
+}
+
+i.icon.text.height:before {
+ content: "\f034";
+}
+
+i.icon.text.width:before {
+ content: "\f035";
+}
+
+i.icon.thumbs.down.outline:before {
+ content: "\f088";
+}
+
+i.icon.thumbs.down:before {
+ content: "\f165";
+}
+
+i.icon.thumbs.up.outline:before {
+ content: "\f087";
+}
+
+i.icon.thumbs.up:before {
+ content: "\f164";
+}
+
+i.icon.ticket:before {
+ content: "\f145";
+}
+
+i.icon.time:before {
+ content: "\f017";
+}
+
+i.icon.tint:before {
+ content: "\f043";
+}
+
+i.icon.trash:before {
+ content: "\f014";
+}
+
+i.icon.trello:before {
+ content: "\f181";
+}
+
+i.icon.trophy:before {
+ content: "\f091";
+}
+
+i.icon.truck:before {
+ content: "\f0d1";
+}
+
+i.icon.tumblr.sign:before {
+ content: "\f174";
+}
+
+i.icon.tumblr:before {
+ content: "\f173";
+}
+
+i.icon.twitter.sign:before {
+ content: "\f081";
+}
+
+i.icon.twitter:before {
+ content: "\f099";
+}
+
+i.icon.umbrella:before {
+ content: "\f0e9";
+}
+
+i.icon.underline:before {
+ content: "\f0cd";
+}
+
+i.icon.undo:before {
+ content: "\f0e2";
+}
+
+i.icon.unhide:before {
+ content: "\f06e";
+}
+
+i.icon.unlink:before {
+ content: "\f127";
+}
+
+i.icon.unlock.alternate:before {
+ content: "\f13e";
+}
+
+i.icon.unlock:before {
+ content: "\f09c";
+}
+
+i.icon.unmute:before {
+ content: "\f130";
+}
+
+i.icon.up:before {
+ content: "\f062";
+}
+
+i.icon.upload.disk:before {
+ content: "\f093";
+}
+
+i.icon.upload:before {
+ content: "\f01b";
+}
+
+i.icon.url:before {
+ content: "\f0c1";
+}
+
+i.icon.user:before {
+ content: "\f007";
+}
+
+i.icon.users:before {
+ content: "\f0c0";
+}
+
+i.icon.video:before {
+ content: "\f008";
+}
+
+i.icon.vk:before {
+ content: "\f189";
+}
+
+i.icon.volume.down:before {
+ content: "\f027";
+}
+
+i.icon.volume.off:before {
+ content: "\f026";
+}
+
+i.icon.volume.up:before {
+ content: "\f028";
+}
+
+i.icon.warning:before {
+ content: "\f071";
+}
+
+i.icon.weibo:before {
+ content: "\f18a";
+}
+
+i.icon.windows:before {
+ content: "\f17a";
+}
+
+i.icon.won:before {
+ content: "\f159";
+}
+
+i.icon.wrench:before {
+ content: "\f0ad";
+}
+
+i.icon.xing.sign:before {
+ content: "\f169";
+}
+
+i.icon.xing:before {
+ content: "\f168";
+}
+
+i.icon.yen:before {
+ content: "\f157";
+}
+
+i.icon.youtube.play:before {
+ content: "\f16a";
+}
+
+i.icon.youtube.sign:before {
+ content: "\f166";
+}
+
+i.icon.youtube:before {
+ content: "\f167";
+}
+
+i.icon.yuan:before {
+ content: "\f158";
+}
+
+i.icon.zoom.in:before {
+ content: "\f00e";
+}
+
+i.icon.zoom.out:before {
+ content: "\f010";
+}
+
+/*--------------
+ Aliases
+---------------*/
+
+i.icon.check:before {
+ content: "\f00c";
+}
+
+i.icon.close:before {
+ content: "\f00d";
+}
+
+i.icon.delete:before {
+ content: "\f00d";
+}
+
+i.icon.like:before {
+ content: "\f004";
+}
+
+i.icon.plus:before {
+ content: "\f067";
+}
+
+i.icon.signup:before {
+ content: "\f044";
+}
+
+/*--------------
+ Spacing Fix
+---------------*/
+
+/* stars are usually consecutive */
+
+i.icon.star {
+ width: auto;
+ margin: 0em;
+}
+
+/* left side icons */
+
+i.icon.left {
+ width: auto;
+ margin: 0em 0.5em 0em 0em;
+}
+
+/* right side icons */
+
+i.icon.search,
+i.icon.right {
+ width: auto;
+ margin: 0em 0em 0em 0.5em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Loading
+---------------*/
+
+i.icon.loading {
+ -webkit-animation: icon-loading 2s linear infinite;
+ -moz-animation: icon-loading 2s linear infinite;
+ -ms-animation: icon-loading 2s linear infinite;
+ animation: icon-loading 2s linear infinite;
+}
+
+@keyframes icon-loading {
+ from {
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ to {
+ -webkit-transform: rotate(360deg);
+ -moz-transform: rotate(360deg);
+ -ms-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-moz-keyframes icon-loading {
+ from {
+ -moz-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ to {
+ -moz-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-webkit-keyframes icon-loading {
+ from {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ to {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-ms-keyframes icon-loading {
+ from {
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ to {
+ -ms-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+/*******************************
+ States
+*******************************/
+
+i.icon.hover {
+ opacity: 1;
+}
+
+i.icon.active {
+ opacity: 1;
+}
+
+i.emphasized.icon {
+ opacity: 1;
+}
+
+i.icon.disabled {
+ opacity: 0.3;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Link
+--------------------*/
+
+i.link.icon {
+ cursor: pointer;
+ opacity: 0.7;
+ -webkit-transition: opacity 0.3s ease-out;
+ -moz-transition: opacity 0.3s ease-out;
+ transition: opacity 0.3s ease-out;
+}
+
+i.link.icon:hover {
+ opacity: 1 !important;
+}
+
+/*-------------------
+ Circular
+--------------------*/
+
+i.circular.icon {
+ border-radius: 500em !important;
+ padding: 0.5em 0.35em !important;
+ -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ line-height: 1 !important;
+ width: 2em !important;
+ height: 2em !important;
+}
+
+i.circular.inverted.icon {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Flipped
+--------------------*/
+
+i.flipped.icon,
+i.horizontally.flipped.icon {
+ -webkit-transform: scale(-1, 1);
+ -moz-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+
+i.vertically.flipped.icon {
+ -webkit-transform: scale(1, -1);
+ -moz-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+
+/*-------------------
+ Rotated
+--------------------*/
+
+i.rotated.icon,
+i.right.rotated.icon,
+i.clockwise.rotated.icon {
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+
+i.left.rotated.icon,
+i.counterclockwise.rotated.icon {
+ -webkit-transform: rotate(-90deg);
+ -moz-transform: rotate(-90deg);
+ -ms-transform: rotate(-90deg);
+ transform: rotate(-90deg);
+}
+
+/*-------------------
+ Square
+--------------------*/
+
+i.square.icon {
+ width: 2em;
+ height: 2em;
+ padding: 0.5em 0.35em !important;
+ -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ vertical-align: baseline;
+}
+
+i.square.inverted.icon {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+i.inverted.icon {
+ background-color: #222222;
+ color: #FFFFFF;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+i.blue.icon {
+ color: #6ECFF5 !important;
+}
+
+i.black.icon {
+ color: #5C6166 !important;
+}
+
+i.green.icon {
+ color: #A1CF64 !important;
+}
+
+i.red.icon {
+ color: #D95C5C !important;
+}
+
+i.purple.icon {
+ color: #564F8A !important;
+}
+
+i.orange.icon {
+ color: #F05940 !important;
+}
+
+i.teal.icon {
+ color: #00B5AD !important;
+}
+
+/*-------------------
+ Inverted Colors
+--------------------*/
+
+i.inverted.black.icon {
+ background-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.blue.icon {
+ background-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.green.icon {
+ background-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.red.icon {
+ background-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.purple.icon {
+ background-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.orange.icon {
+ background-color: #F05940 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.teal.icon {
+ background-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+i.small.icon {
+ font-size: 0.875em;
+}
+
+i.icon {
+ font-size: 1em;
+}
+
+i.large.icon {
+ font-size: 1.5em;
+ vertical-align: middle;
+}
+
+i.big.icon {
+ font-size: 2em;
+ vertical-align: middle;
+}
+
+i.huge.icon {
+ font-size: 4em;
+ vertical-align: middle;
+}
+
+i.massive.icon {
+ font-size: 8em;
+ vertical-align: middle;
+}
+/*
+ * # Semantic - Image
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Image
+*******************************/
+
+.ui.image {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+ max-width: 100%;
+ background-color: rgba(0, 0, 0, 0.05);
+}
+
+img.ui.image {
+ display: block;
+ background: none;
+}
+
+.ui.image img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.disabled.image {
+ cursor: default;
+ opacity: 0.3;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Rounded
+---------------*/
+
+.ui.rounded.images .image,
+.ui.rounded.images img,
+.ui.rounded.image img,
+.ui.rounded.image {
+ border-radius: 0.3125em;
+}
+
+/*--------------
+ Circular
+---------------*/
+
+.ui.circular.images .image,
+.ui.circular.images img,
+.ui.circular.image img,
+.ui.circular.image {
+ border-radius: 500rem;
+}
+
+/*--------------
+ Fluid
+---------------*/
+
+.ui.fluid.images,
+.ui.fluid.image,
+.ui.fluid.images img,
+.ui.fluid.image img {
+ display: block;
+ width: 100%;
+}
+
+/*--------------
+ Avatar
+---------------*/
+
+.ui.avatar.images .image,
+.ui.avatar.images img,
+.ui.avatar.image img,
+.ui.avatar.image {
+ margin-right: 0.5em;
+ display: inline-block;
+ width: 2em;
+ height: 2em;
+ border-radius: 500rem;
+}
+
+/*-------------------
+ Floated
+--------------------*/
+
+.ui.floated.image,
+.ui.floated.images {
+ float: left;
+ margin-right: 1em;
+ margin-bottom: 1em;
+}
+
+.ui.right.floated.images,
+.ui.right.floated.image {
+ float: right;
+ margin-bottom: 1em;
+ margin-left: 1em;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.tiny.images .image,
+.ui.tiny.images img,
+.ui.tiny.image {
+ width: 20px;
+ font-size: 0.7rem;
+}
+
+.ui.mini.images .image,
+.ui.mini.images img,
+.ui.mini.image {
+ width: 35px;
+ font-size: 0.8rem;
+}
+
+.ui.small.images .image,
+.ui.small.images img,
+.ui.small.image {
+ width: 80px;
+ font-size: 0.9rem;
+}
+
+.ui.medium.images .image,
+.ui.medium.images img,
+.ui.medium.image {
+ width: 300px;
+ font-size: 1rem;
+}
+
+.ui.large.images .image,
+.ui.large.images img,
+.ui.large.image {
+ width: 450px;
+ font-size: 1.1rem;
+}
+
+.ui.huge.images .image,
+.ui.huge.images img,
+.ui.huge.image {
+ width: 600px;
+ font-size: 1.2rem;
+}
+
+/*******************************
+ Groups
+*******************************/
+
+.ui.images {
+ font-size: 0em;
+ margin: 0em -0.25rem 0rem;
+}
+
+.ui.images .image,
+.ui.images img {
+ display: inline-block;
+ margin: 0em 0.25em 0.5em;
+}
+/*
+ * # Semantic - Input
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------------
+ Inputs
+---------------------*/
+
+.ui.input {
+ display: inline-block;
+ position: relative;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.input input {
+ width: 100%;
+ font-family: "Helvetica Neue", "Helvetica", Arial;
+ margin: 0em;
+ padding: 0.65em 1em;
+ font-size: 1em;
+ background-color: #FFFFFF;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ outline: none;
+ color: rgba(0, 0, 0, 0.7);
+ border-radius: 0.3125em;
+ -webkit-transition: background-color 0.3s ease-out, -webkit-box-shadow 0.2s ease, border-color 0.2s ease;
+ -moz-transition: background-color 0.3s ease-out, box-shadow 0.2s ease, border-color 0.2s ease;
+ transition: background-color 0.3s ease-out, box-shadow 0.2s ease, border-color 0.2s ease;
+ -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*--------------------
+ Placeholder
+---------------------*/
+
+/* browsers require these rules separate */
+
+.ui.input::-webkit-input-placeholder {
+ color: #BBBBBB;
+}
+
+.ui.input::-moz-placeholder {
+ color: #BBBBBB;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------------
+ Active
+---------------------*/
+
+.ui.input input:active,
+.ui.input.down input {
+ border-color: rgba(0, 0, 0, 0.3);
+ background-color: #FAFAFA;
+}
+
+/*--------------------
+ Loading
+---------------------*/
+
+.ui.loading.input > .icon {
+ background: url(../images/loader-mini.gif) no-repeat 50% 50%;
+}
+
+.ui.loading.input > .icon:before,
+.ui.loading.input > .icon:after {
+ display: none;
+}
+
+/*--------------------
+ Focus
+---------------------*/
+
+.ui.input.focus input,
+.ui.input input:focus {
+ border-color: rgba(0, 0, 0, 0.2);
+ color: rgba(0, 0, 0, 0.85);
+}
+
+.ui.input.focus input input::-webkit-input-placeholder,
+.ui.input input:focus input::-webkit-input-placeholder {
+ color: #AAAAAA;
+}
+
+.ui.input.focus input input::-moz-placeholder,
+.ui.input input:focus input::-moz-placeholder {
+ color: #AAAAAA;
+}
+
+/*--------------------
+ Error
+---------------------*/
+
+.ui.input.error input {
+ background-color: #FFFAFA;
+ border-color: #E7BEBE;
+ color: #D95C5C;
+}
+
+/* Error Placeholder */
+
+.ui.input.error input ::-webkit-input-placeholder {
+ color: rgba(255, 80, 80, 0.4);
+}
+
+.ui.input.error input ::-moz-placeholder {
+ color: rgba(255, 80, 80, 0.4);
+}
+
+.ui.input.error input :focus::-webkit-input-placeholder {
+ color: rgba(255, 80, 80, 0.7);
+}
+
+.ui.input.error input :focus::-moz-placeholder {
+ color: rgba(255, 80, 80, 0.7);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------------
+ Transparent
+---------------------*/
+
+.ui.transparent.input input {
+ border: none;
+ background-color: transparent;
+}
+
+/*--------------------
+ Icon
+---------------------*/
+
+.ui.icon.input > .icon {
+ cursor: default;
+ position: absolute;
+ opacity: 0.5;
+ top: 0px;
+ right: 0px;
+ margin: 0em;
+ width: 2.6em;
+ height: 100%;
+ padding-top: 0.82em;
+ text-align: center;
+ border-radius: 0em 0.3125em 0.3125em 0em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-transition: opacity 0.3s ease-out;
+ -moz-transition: opacity 0.3s ease-out;
+ transition: opacity 0.3s ease-out;
+}
+
+.ui.icon.input > .link.icon {
+ cursor: pointer;
+}
+
+.ui.icon.input input {
+ padding-right: 3em !important;
+}
+
+.ui.icon.input > .circular.icon {
+ top: 0.35em;
+ right: 0.5em;
+}
+
+/* Left Side */
+
+.ui.left.icon.input > .icon {
+ right: auto;
+ left: 1px;
+ border-radius: 0.3125em 0em 0em 0.3125em;
+}
+
+.ui.left.icon.input > .circular.icon {
+ right: auto;
+ left: 0.5em;
+}
+
+.ui.left.icon.input > input {
+ padding-left: 3em !important;
+ padding-right: 1.2em !important;
+}
+
+/* Focus */
+
+.ui.icon.input > input:focus ~ .icon {
+ opacity: 1;
+}
+
+/*--------------------
+ Labeled
+---------------------*/
+
+.ui.labeled.input .corner.label {
+ font-size: 0.7em;
+ border-radius: 0 0.3125em;
+}
+
+.ui.labeled.input .left.corner.label {
+ border-radius: 0.3125em 0;
+}
+
+.ui.labeled.input input {
+ padding-right: 2.5em !important;
+}
+
+/* Spacing with corner label */
+
+.ui.labeled.icon.input:not(.left) > input {
+ padding-right: 3.25em !important;
+}
+
+.ui.labeled.icon.input:not(.left) > .icon {
+ margin-right: 1.25em;
+}
+
+/*--------------------
+ Action
+---------------------*/
+
+.ui.action.input {
+ display: table;
+}
+
+.ui.action.input > input {
+ display: table-cell;
+ border-top-right-radius: 0px !important;
+ border-bottom-right-radius: 0px !important;
+ border-right: none;
+}
+
+.ui.action.input > .button,
+.ui.action.input > .buttons {
+ display: table-cell;
+ border-top-left-radius: 0px;
+ border-bottom-left-radius: 0px;
+ white-space: nowrap;
+}
+
+.ui.action.input > .button > .icon,
+.ui.action.input > .buttons > .button > .icon {
+ display: inline;
+ vertical-align: top;
+}
+
+.ui.fluid.action.input {
+ display: table;
+ width: 100%;
+}
+
+.ui.fluid.action.input > .button {
+ width: 0.01%;
+}
+
+/*--------------------
+ Fluid
+---------------------*/
+
+.ui.fluid.input {
+ display: block;
+}
+
+/*--------------------
+ Size
+---------------------*/
+
+.ui.mini.input {
+ font-size: 0.8125em;
+}
+
+.ui.small.input {
+ font-size: 0.875em;
+}
+
+.ui.input {
+ font-size: 1em;
+}
+
+.ui.large.input {
+ font-size: 1.125em;
+}
+
+.ui.big.input {
+ font-size: 1.25em;
+}
+
+.ui.huge.input {
+ font-size: 1.375em;
+}
+
+.ui.massive.input {
+ font-size: 1.5em;
+}
+/*
+ * # Semantic - Label
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Label
+*******************************/
+
+.ui.label {
+ display: inline-block;
+ vertical-align: middle;
+ margin: -0.25em 0.25em 0em;
+ background-color: #E8E8E8;
+ border-color: #E8E8E8;
+ padding: 0.5em 0.8em;
+ color: rgba(0, 0, 0, 0.65);
+ text-transform: uppercase;
+ font-weight: normal;
+ border-radius: 0.325em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-transition: background 0.1s linear;
+ -moz-transition: background 0.1s linear;
+ transition: background 0.1s linear;
+}
+
+.ui.label:first-child {
+ margin-left: 0em;
+}
+
+.ui.label:last-child {
+ margin-right: 0em;
+}
+
+/* Link */
+
+a.ui.label {
+ cursor: pointer;
+}
+
+/* Inside Link */
+
+.ui.label a {
+ cursor: pointer;
+ color: inherit;
+ opacity: 0.8;
+ -webkit-transition: 0.2s opacity ease;
+ -moz-transition: 0.2s opacity ease;
+ transition: 0.2s opacity ease;
+}
+
+.ui.label a:hover {
+ opacity: 1;
+}
+
+/* Detail */
+
+.ui.label .detail {
+ display: inline-block;
+ margin-left: 0.5em;
+ font-weight: bold;
+ opacity: 0.8;
+}
+
+/* Icon */
+
+.ui.label .icon {
+ width: auto;
+}
+
+/* Removable label */
+
+.ui.label .delete.icon {
+ cursor: pointer;
+ margin: 0em 0em 0em 0.5em;
+ opacity: 0.7;
+ -webkit-transition: background 0.1s linear;
+ -moz-transition: background 0.1s linear;
+ transition: background 0.1s linear;
+}
+
+.ui.label .delete.icon:hover {
+ opacity: 0.99;
+}
+
+/*-------------------
+ Coupling
+--------------------*/
+
+/* Padding on next content after a label */
+
+.ui.segment > .attached.label:first-child + * {
+ margin-top: 2.5em;
+}
+
+.ui.segment > .bottom.attached.label:first-child ~ :last-child {
+ margin-top: 0em;
+ margin-bottom: 2.5em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+.ui.image.label {
+ width: auto !important;
+ margin-top: 0em;
+ margin-bottom: 0em;
+ padding-top: 0.4em;
+ padding-bottom: 0.4em;
+ line-height: 1.5em;
+ vertical-align: baseline;
+ text-transform: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.image.label img {
+ display: inline-block;
+ height: 2.25em;
+ margin: -0.4em 0.8em -0.4em -0.8em;
+ vertical-align: top;
+ border-radius: 0.325em 0em 0em 0.325em;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*-------------------
+ Disabled
+--------------------*/
+
+.ui.label.disabled {
+ opacity: 0.5;
+}
+
+/*-------------------
+ Hover
+--------------------*/
+
+a.ui.labels .label:hover,
+a.ui.label:hover {
+ background-color: #E0E0E0;
+ border-color: #E0E0E0;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.labels a.label:hover:before,
+a.ui.label:hover:before {
+ background-color: #E0E0E0;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+/*-------------------
+ Visible
+--------------------*/
+
+.ui.labels.visible .label,
+.ui.label.visible {
+ display: inline-block !important;
+}
+
+/*-------------------
+ Hidden
+--------------------*/
+
+.ui.labels.hidden .label,
+.ui.label.hidden {
+ display: none !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Tag
+--------------------*/
+
+.ui.tag.labels .label,
+.ui.tag.label {
+ margin-left: 1em;
+ position: relative;
+ padding: 0.33em 1.3em 0.33em 1.4em;
+ border-radius: 0px 3px 3px 0px;
+}
+
+.ui.tag.labels .label:before,
+.ui.tag.label:before {
+ position: absolute;
+ top: 0.3em;
+ left: 0.3em;
+ content: '';
+ margin-left: -1em;
+ background-image: none;
+ width: 1.5em;
+ height: 1.5em;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ -webkit-transition: background 0.1s linear;
+ -moz-transition: background 0.1s linear;
+ transition: background 0.1s linear;
+}
+
+.ui.tag.labels .label:after,
+.ui.tag.label:after {
+ position: absolute;
+ content: '';
+ top: 50%;
+ left: -0.25em;
+ margin-top: -0.3em;
+ background-color: #FFFFFF;
+ width: 0.55em;
+ height: 0.55em;
+ -webkit-box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.3);
+ box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.3);
+ border-radius: 100px 100px 100px 100px;
+}
+
+/*-------------------
+ Ribbon
+--------------------*/
+
+.ui.ribbon.label {
+ position: relative;
+ margin: 0em 0.2em;
+ left: -2rem;
+ padding-left: 2rem;
+ border-radius: 0px 4px 4px 0px;
+ border-color: rgba(0, 0, 0, 0.15);
+}
+
+.ui.ribbon.label:after {
+ position: absolute;
+ content: "";
+ top: 100%;
+ left: 0%;
+ border-top: 0em solid transparent;
+ border-right-width: 1em;
+ border-right-color: inherit;
+ border-right-style: solid;
+ border-bottom: 1em solid transparent;
+ border-left: 0em solid transparent;
+ width: 0em;
+ height: 0em;
+}
+
+/*-------------------
+ Attached
+--------------------*/
+
+.ui.top.attached.label,
+.ui.attached.label {
+ width: 100%;
+ position: absolute;
+ margin: 0em;
+ top: 0em;
+ left: 0em;
+ padding: 0.75em 1em;
+ border-radius: 4px 4px 0em 0em;
+}
+
+.ui.bottom.attached.label {
+ top: auto;
+ bottom: 0em;
+ border-radius: 0em 0em 4px 4px;
+}
+
+.ui.top.left.attached.label {
+ width: auto;
+ margin-top: 0em !important;
+ border-radius: 4px 0em 4px 0em;
+}
+
+.ui.top.right.attached.label {
+ width: auto;
+ left: auto;
+ right: 0em;
+ border-radius: 0em 4px 0em 4px;
+}
+
+.ui.bottom.left.attached.label {
+ width: auto;
+ top: auto;
+ bottom: 0em;
+ border-radius: 4px 0em 0em 4px;
+}
+
+.ui.bottom.right.attached.label {
+ top: auto;
+ bottom: 0em;
+ left: auto;
+ right: 0em;
+ width: auto;
+ border-radius: 4px 0em 4px 0em;
+}
+
+/*-------------------
+ Corner Label
+--------------------*/
+
+.ui.corner.label {
+ background-color: transparent;
+ position: absolute;
+ top: 0em;
+ right: 0em;
+ z-index: 10;
+ margin: 0em;
+ width: 3em;
+ height: 3em;
+ padding: 0em;
+ text-align: center;
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+.ui.corner.label:after {
+ position: absolute;
+ content: "";
+ right: 0em;
+ top: 0em;
+ z-index: -1;
+ width: 0em;
+ height: 0em;
+ border-top: 0em solid transparent;
+ border-right: 3em solid transparent;
+ border-bottom: 3em solid transparent;
+ border-left: 0em solid transparent;
+ border-right-color: inherit;
+ -webkit-transition: border-color 0.2s ease;
+ -moz-transition: border-color 0.2s ease;
+ transition: border-color 0.2s ease;
+}
+
+.ui.corner.label .icon {
+ font-size: 0.875em;
+ margin: 0.5em 0em 0em 1.25em;
+}
+
+.ui.corner.label .text {
+ display: inline-block;
+ font-weight: bold;
+ margin: 0.5em 0em 0em 1em;
+ width: 2.5em;
+ font-size: 0.875em;
+ text-align: center;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+}
+
+/* Coupling */
+
+.ui.rounded.image > .ui.corner.label,
+.ui.input > .ui.corner.label,
+.ui.segment > .ui.corner.label {
+ overflow: hidden;
+}
+
+.ui.segment > .ui.corner.label {
+ top: -1px;
+ right: -1px;
+}
+
+.ui.segment > .ui.left.corner.label {
+ right: auto;
+ left: -1px;
+}
+
+.ui.input > .ui.corner.label {
+ top: 1px;
+ right: 1px;
+}
+
+.ui.input > .ui.right.corner.label {
+ right: auto;
+ left: 1px;
+}
+
+/* Left Corner */
+
+.ui.left.corner.label,
+.ui.left.corner.label:after {
+ right: auto;
+ left: 0em;
+}
+
+.ui.left.corner.label:after {
+ border-top: 3em solid transparent;
+ border-right: 3em solid transparent;
+ border-bottom: 0em solid transparent;
+ border-left: 0em solid transparent;
+ border-top-color: inherit;
+}
+
+.ui.left.corner.label .icon {
+ margin: 0.5em 0em 0em -1em;
+}
+
+.ui.left.corner.label .text {
+ margin: 0.5em 0em 0em -1em;
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+}
+
+/* Hover */
+
+.ui.corner.label:hover {
+ background-color: transparent;
+}
+
+/*-------------------
+ Fluid
+--------------------*/
+
+.ui.label.fluid,
+.ui.fluid.labels > .label {
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.inverted.labels .label,
+.ui.inverted.label {
+ color: #FFFFFF !important;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+/*--- Black ---*/
+
+.ui.black.labels .label,
+.ui.black.label {
+ background-color: #5C6166 !important;
+ border-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .black.label:before,
+.ui.black.labels .label:before,
+.ui.black.label:before {
+ background-color: #5C6166 !important;
+}
+
+/* Hover */
+
+a.ui.black.labels .label:hover,
+a.ui.black.label:hover {
+ background-color: #333333 !important;
+ border-color: #333333 !important;
+}
+
+.ui.labels a.black.label:hover:before,
+.ui.black.labels a.label:hover:before,
+a.ui.black.label:hover:before {
+ background-color: #333333 !important;
+}
+
+/* Corner */
+
+.ui.black.corner.label,
+.ui.black.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.black.ribbon.label {
+ border-color: #333333 !important;
+}
+
+/*--- Green ---*/
+
+.ui.green.labels .label,
+.ui.green.label {
+ background-color: #A1CF64 !important;
+ border-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .green.label:before,
+.ui.green.labels .label:before,
+.ui.green.label:before {
+ background-color: #A1CF64 !important;
+}
+
+/* Hover */
+
+a.ui.green.labels .label:hover,
+a.ui.green.label:hover {
+ background-color: #89B84C !important;
+ border-color: #89B84C !important;
+}
+
+.ui.labels a.green.label:hover:before,
+.ui.green.labels a.label:hover:before,
+a.ui.green.label:hover:before {
+ background-color: #89B84C !important;
+}
+
+/* Corner */
+
+.ui.green.corner.label,
+.ui.green.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.green.ribbon.label {
+ border-color: #89B84C !important;
+}
+
+/*--- Red ---*/
+
+.ui.red.labels .label,
+.ui.red.label {
+ background-color: #D95C5C !important;
+ border-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .red.label:before,
+.ui.red.labels .label:before,
+.ui.red.label:before {
+ background-color: #D95C5C !important;
+}
+
+/* Corner */
+
+.ui.red.corner.label,
+.ui.red.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Hover */
+
+a.ui.red.labels .label:hover,
+a.ui.red.label:hover {
+ background-color: #DE3859 !important;
+ border-color: #DE3859 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.red.label:hover:before,
+.ui.red.labels a.label:hover:before,
+a.ui.red.label:hover:before {
+ background-color: #DE3859 !important;
+}
+
+/* Ribbon */
+
+.ui.red.ribbon.label {
+ border-color: #DE3859 !important;
+}
+
+/*--- Blue ---*/
+
+.ui.blue.labels .label,
+.ui.blue.label {
+ background-color: #6ECFF5 !important;
+ border-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .blue.label:before,
+.ui.blue.labels .label:before,
+.ui.blue.label:before {
+ background-color: #6ECFF5 !important;
+}
+
+/* Hover */
+
+a.ui.blue.labels .label:hover,
+.ui.blue.labels a.label:hover,
+a.ui.blue.label:hover {
+ background-color: #1AB8F3 !important;
+ border-color: #1AB8F3 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.blue.label:hover:before,
+.ui.blue.labels a.label:hover:before,
+a.ui.blue.label:hover:before {
+ background-color: #1AB8F3 !important;
+}
+
+/* Corner */
+
+.ui.blue.corner.label,
+.ui.blue.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.blue.ribbon.label {
+ border-color: #1AB8F3 !important;
+}
+
+/*--- Purple ---*/
+
+.ui.purple.labels .label,
+.ui.purple.label {
+ background-color: #564F8A !important;
+ border-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .purple.label:before,
+.ui.purple.labels .label:before,
+.ui.purple.label:before {
+ background-color: #564F8A !important;
+}
+
+/* Hover */
+
+a.ui.purple.labels .label:hover,
+.ui.purple.labels a.label:hover,
+a.ui.purple.label:hover {
+ background-color: #3E3773 !important;
+ border-color: #3E3773 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.purple.label:hover:before,
+.ui.purple.labels a.label:hover:before,
+a.ui.purple.label:hover:before {
+ background-color: #3E3773 !important;
+}
+
+/* Corner */
+
+.ui.purple.corner.label,
+.ui.purple.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.purple.ribbon.label {
+ border-color: #3E3773 !important;
+}
+
+/*--- Orange ---*/
+
+.ui.orange.labels .label,
+.ui.orange.label {
+ background-color: #F05940 !important;
+ border-color: #F05940 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .orange.label:before,
+.ui.orange.labels .label:before,
+.ui.orange.label:before {
+ background-color: #F05940 !important;
+}
+
+/* Hover */
+
+a.ui.orange.labels .label:hover,
+.ui.orange.labels a.label:hover,
+a.ui.orange.label:hover {
+ background-color: #FF4121 !important;
+ border-color: #FF4121 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.orange.label:hover:before,
+.ui.orange.labels a.label:hover:before,
+a.ui.orange.label:hover:before {
+ background-color: #FF4121 !important;
+}
+
+/* Corner */
+
+.ui.orange.corner.label,
+.ui.orange.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.orange.ribbon.label {
+ border-color: #FF4121 !important;
+}
+
+/*--- Teal ---*/
+
+.ui.teal.labels .label,
+.ui.teal.label {
+ background-color: #00B5AD !important;
+ border-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .teal.label:before,
+.ui.teal.labels .label:before,
+.ui.teal.label:before {
+ background-color: #00B5AD !important;
+}
+
+/* Hover */
+
+a.ui.teal.labels .label:hover,
+.ui.teal.labels a.label:hover,
+a.ui.teal.label:hover {
+ background-color: #009A93 !important;
+ border-color: #009A93 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.teal.label:hover:before,
+.ui.teal.labels a.label:hover:before,
+a.ui.teal.label:hover:before {
+ background-color: #009A93 !important;
+}
+
+/* Corner */
+
+.ui.teal.corner.label,
+.ui.teal.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.teal.ribbon.label {
+ border-color: #009A93 !important;
+}
+
+/*-------------------
+ Horizontal
+--------------------*/
+
+.ui.horizontal.labels .label,
+.ui.horizontal.label {
+ margin: -0.125em 0.5em -0.125em 0em;
+ padding: 0.35em 1em;
+ min-width: 6em;
+ text-align: center;
+}
+
+/*-------------------
+ Circular
+--------------------*/
+
+.ui.circular.labels .label,
+.ui.circular.label {
+ min-height: 1em;
+ max-height: 2em;
+ padding: 0.5em !important;
+ line-height: 1em;
+ text-align: center;
+ border-radius: 500rem;
+}
+
+/*-------------------
+ Pointing
+--------------------*/
+
+.ui.pointing.label {
+ position: relative;
+}
+
+.ui.attached.pointing.label {
+ position: absolute;
+}
+
+.ui.pointing.label:before {
+ position: absolute;
+ content: "";
+ width: 0.6em;
+ height: 0.6em;
+ background-image: none;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ z-index: 2;
+ -webkit-transition: background 0.1s linear;
+ -moz-transition: background 0.1s linear;
+ transition: background 0.1s linear;
+}
+
+/*--- Above ---*/
+
+.ui.pointing.label:before {
+ background-color: #E8E8E8;
+}
+
+.ui.pointing.label,
+.ui.pointing.above.label {
+ margin-top: 1em;
+}
+
+.ui.pointing.label:before,
+.ui.pointing.above.label:before {
+ margin-left: -0.3em;
+ top: -0.3em;
+ left: 50%;
+}
+
+/*--- Below ---*/
+
+.ui.pointing.below.label {
+ margin-top: 0em;
+ margin-bottom: 1em;
+}
+
+.ui.pointing.below.label:before {
+ margin-left: -0.3em;
+ top: auto;
+ right: auto;
+ bottom: -0.3em;
+ left: 50%;
+}
+
+/*--- Left ---*/
+
+.ui.pointing.left.label {
+ margin-top: 0em;
+ margin-left: 1em;
+}
+
+.ui.pointing.left.label:before {
+ margin-top: -0.3em;
+ bottom: auto;
+ right: auto;
+ top: 50%;
+ left: 0em;
+}
+
+/*--- Right ---*/
+
+.ui.pointing.right.label {
+ margin-top: 0em;
+ margin-right: 1em;
+}
+
+.ui.pointing.right.label:before {
+ margin-top: -0.3em;
+ right: -0.3em;
+ top: 50%;
+ bottom: auto;
+ left: auto;
+}
+
+/*------------------
+ Floating Label
+-------------------*/
+
+.ui.floating.label {
+ position: absolute;
+ z-index: 100;
+ top: -1em;
+ left: 100%;
+ margin: 0em 0em 0em -1.5em !important;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+.ui.small.labels .label,
+.ui.small.label {
+ font-size: 0.75rem;
+}
+
+.ui.label {
+ font-size: 0.8125rem;
+}
+
+.ui.large.labels .label,
+.ui.large.label {
+ font-size: 0.875rem;
+}
+
+.ui.huge.labels .label,
+.ui.huge.label {
+ font-size: 1rem;
+}
+/*
+ * # Semantic - Loader
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Loader
+*******************************/
+
+/* Standard Size */
+
+.ui.loader {
+ display: none;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ margin: 0px;
+ z-index: 1000;
+ -webkit-transform: translateX(-50%) translateY(-50%);
+ -moz-transform: translateX(-50%) translateY(-50%);
+ -ms-transform: translateX(-50%) translateY(-50%);
+ transform: translateX(-50%) translateY(-50%);
+}
+
+.ui.dimmer .loader {
+ display: block;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Text
+--------------------*/
+
+.ui.text.loader {
+ width: auto !important;
+ height: auto !important;
+ text-align: center;
+ font-style: normal;
+}
+
+.ui.mini.text.loader {
+ min-width: 16px;
+ padding-top: 2em;
+ font-size: 0.875em;
+}
+
+.ui.small.text.loader {
+ min-width: 24px;
+ padding-top: 2.5em;
+ font-size: 0.875em;
+}
+
+.ui.text.loader {
+ min-width: 32px;
+ font-size: 1em;
+ padding-top: 3em;
+}
+
+.ui.large.text.loader {
+ min-width: 64px;
+ padding-top: 5em;
+ font-size: 1.2em;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.loader.active,
+.ui.loader.visible {
+ display: block;
+}
+
+.ui.loader.disabled,
+.ui.loader.hidden {
+ display: none;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.dimmer .ui.text.loader,
+.ui.inverted.text.loader {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.dimmer .ui.text.loader {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/* Tiny Size */
+
+.ui.dimmer .mini.ui.loader,
+.ui.inverted .mini.ui.loader {
+ background-image: url(../images/loader-mini-inverted.gif);
+}
+
+/* Small Size */
+
+.ui.dimmer .small.ui.loader,
+.ui.inverted .small.ui.loader {
+ background-image: url(../images/loader-small-inverted.gif);
+}
+
+/* Standard Size */
+
+.ui.dimmer .ui.loader,
+.ui.inverted.loader {
+ background-image: url(../images/loader-medium-inverted.gif);
+}
+
+/* Large Size */
+
+.ui.dimmer .large.ui.loader,
+.ui.inverted .large.ui.loader {
+ background-image: url(../images/loader-large-inverted.gif);
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+/* Tiny Size */
+
+.ui.inverted.dimmer .ui.mini.loader,
+.ui.mini.loader {
+ width: 16px;
+ height: 16px;
+ background-image: url(../images/loader-mini.gif);
+}
+
+/* Small Size */
+
+.ui.inverted.dimmer .ui.small.loader,
+.ui.small.loader {
+ width: 24px;
+ height: 24px;
+ background-image: url(../images/loader-small.gif);
+}
+
+.ui.inverted.dimmer .ui.loader,
+.ui.loader {
+ width: 32px;
+ height: 32px;
+ background: url(../images/loader-medium.gif) no-repeat;
+ background-position: 48% 0px;
+}
+
+/* Large Size */
+
+.ui.inverted.dimmer .ui.loader.large,
+.ui.loader.large {
+ width: 64px;
+ height: 64px;
+ background-image: url(../images/loader-large.gif);
+}
+
+/*-------------------
+ Inline
+--------------------*/
+
+.ui.inline.loader {
+ position: static;
+ vertical-align: middle;
+ margin: 0em;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+}
+
+.ui.inline.loader.active,
+.ui.inline.loader.visible {
+ display: inline-block;
+}
+/*
+ * # Semantic - Progress Bar
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Progress Bar
+*******************************/
+
+.ui.progress {
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ width: 100%;
+ height: 35px;
+ background-color: #FAFAFA;
+ padding: 5px;
+ border-radius: 0.3125em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.progress .bar {
+ display: inline-block;
+ height: 100%;
+ background-color: #CCCCCC;
+ border-radius: 3px;
+ -webkit-transition: width 1s ease-in-out, background-color 1s ease-out;
+ -moz-transition: width 1s ease-in-out, background-color 1s ease-out;
+ transition: width 1s ease-in-out, background-color 1s ease-out;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Successful
+---------------*/
+
+.ui.successful.progress .bar {
+ background-color: #73E064 !important;
+}
+
+.ui.successful.progress .bar,
+.ui.successful.progress .bar::after {
+ -webkit-animation: none !important;
+ -moz-animation: none !important;
+ animation: none !important;
+}
+
+.ui.warning.progress .bar {
+ background-color: #E96633 !important;
+}
+
+.ui.warning.progress .bar,
+.ui.warning.progress .bar::after {
+ -webkit-animation: none !important;
+ -moz-animation: none !important;
+ animation: none !important;
+}
+
+/*--------------
+ Failed
+---------------*/
+
+.ui.failed.progress .bar {
+ background-color: #DF9BA4 !important;
+}
+
+.ui.failed.progress .bar,
+.ui.failed.progress .bar::after {
+ -webkit-animation: none !important;
+ -moz-animation: none !important;
+ animation: none !important;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.active.progress .bar {
+ position: relative;
+}
+
+.ui.active.progress .bar::after {
+ content: '';
+ opacity: 0;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ right: 0px;
+ bottom: 0px;
+ background: #FFFFFF;
+ border-radius: 3px;
+ -webkit-animation: progress-active 2s ease-out infinite;
+ -moz-animation: progress-active 2s ease-out infinite;
+ animation: progress-active 2s ease-out infinite;
+}
+
+@-webkit-keyframes progress-active {
+ 0% {
+ opacity: 0;
+ width: 0;
+ }
+
+ 50% {
+ opacity: 0.3;
+ }
+
+ 100% {
+ opacity: 0;
+ width: 95%;
+ }
+}
+
+@-moz-keyframes progress-active {
+ 0% {
+ opacity: 0;
+ width: 0;
+ }
+
+ 50% {
+ opacity: 0.3;
+ }
+
+ 100% {
+ opacity: 0;
+ width: 100%;
+ }
+}
+
+@keyframes progress-active {
+ 0% {
+ opacity: 0;
+ width: 0;
+ }
+
+ 50% {
+ opacity: 0.3;
+ }
+
+ 100% {
+ opacity: 0;
+ width: 100%;
+ }
+}
+
+/*--------------
+ Disabled
+---------------*/
+
+.ui.disabled.progress {
+ opacity: 0.35;
+}
+
+.ui.disabled.progress .bar,
+.ui.disabled.progress .bar::after {
+ -webkit-animation: none !important;
+ -moz-animation: none !important;
+ animation: none !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Attached
+---------------*/
+
+/* bottom attached */
+
+.ui.progress.attached {
+ position: relative;
+ border: none;
+}
+
+.ui.progress.attached,
+.ui.progress.attached .bar {
+ display: block;
+ height: 3px;
+ padding: 0px;
+ overflow: hidden;
+ border-radius: 0em 0em 0.3125em 0.3125em;
+}
+
+.ui.progress.attached .bar {
+ border-radius: 0em;
+}
+
+/* top attached */
+
+.ui.progress.top.attached,
+.ui.progress.top.attached .bar {
+ top: -2px;
+ border-radius: 0.3125em 0.3125em 0em 0em;
+}
+
+.ui.progress.top.attached .bar {
+ border-radius: 0em;
+}
+
+/*--------------
+ Colors
+---------------*/
+
+.ui.blue.progress .bar {
+ background-color: #6ECFF5;
+}
+
+.ui.black.progress .bar {
+ background-color: #5C6166;
+}
+
+.ui.green.progress .bar {
+ background-color: #A1CF64;
+}
+
+.ui.red.progress .bar {
+ background-color: #EF4D6D;
+}
+
+.ui.purple.progress .bar {
+ background-color: #564F8A;
+}
+
+.ui.teal.progress .bar {
+ background-color: #00B5AD;
+}
+
+/*--------------
+ Striped
+---------------*/
+
+.ui.progress.striped .bar {
+ -webkit-background-size: 30px 30px;
+ background-size: 30px 30px;
+ background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+ background-image: -webkit-linear-gradient(135deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -moz-linear-gradient(135deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -webkit-linear-gradient(315deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -moz-linear-gradient(315deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+
+.ui.progress.active.striped .bar:after {
+ -webkit-animation: none;
+ -moz-animation: none;
+ -ms-animation: none;
+ animation: none;
+}
+
+.ui.progress.active.striped .bar {
+ -webkit-animation: progress-striped 3s linear infinite;
+ -moz-animation: progress-striped 3s linear infinite;
+ animation: progress-striped 3s linear infinite;
+}
+
+@-webkit-keyframes progress-striped {
+ 0% {
+ background-position: 0px 0;
+ }
+
+ 100% {
+ background-position: 60px 0;
+ }
+}
+
+@-moz-keyframes progress-striped {
+ 0% {
+ background-position: 0px 0;
+ }
+
+ 100% {
+ background-position: 60px 0;
+ }
+}
+
+@keyframes progress-striped {
+ 0% {
+ background-position: 0px 0;
+ }
+
+ 100% {
+ background-position: 60px 0;
+ }
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.small.progress .bar {
+ height: 14px;
+}
+/*
+ * # Semantic - Reveal
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Reveal
+*******************************/
+
+.ui.reveal {
+ display: inline-block;
+ position: relative !important;
+ z-index: 2 !important;
+ font-size: 0em !important;
+}
+
+.ui.reveal > .content {
+ font-size: 1rem !important;
+}
+
+.ui.reveal > .visible.content {
+ -webkit-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ -moz-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+}
+
+.ui.reveal > .visible.content {
+ position: absolute !important;
+ top: 0em !important;
+ left: 0em !important;
+ z-index: 4 !important;
+ -webkit-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ -moz-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+}
+
+.ui.reveal > .hidden.content {
+ position: relative !important;
+ z-index: 3 !important;
+}
+
+/*------------------
+ Loose Coupling
+-------------------*/
+
+.ui.reveal.button {
+ overflow: hidden;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Slide
+---------------*/
+
+.ui.slide.reveal {
+ position: relative !important;
+ display: block;
+ overflow: hidden !important;
+ white-space: nowrap;
+}
+
+.ui.slide.reveal > .content {
+ display: block;
+ float: left;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 0em;
+ -webkit-transition: top 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, left 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, right 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, bottom 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ -moz-transition: top 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, left 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, right 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, bottom 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ transition: top 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, left 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, right 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, bottom 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+}
+
+.ui.slide.reveal > .visible.content {
+ position: relative !important;
+}
+
+.ui.slide.reveal > .hidden.content {
+ position: absolute !important;
+ left: 100% !important;
+ width: 100% !important;
+}
+
+.ui.slide.reveal:hover > .visible.content,
+.ui.slide.reveal:focus > .visible.content {
+ left: -100% !important;
+}
+
+.ui.slide.reveal:hover > .hidden.content,
+.ui.slide.reveal:focus > .hidden.content {
+ left: 0% !important;
+}
+
+.ui.right.slide.reveal > .visible.content {
+ left: 0%;
+}
+
+.ui.right.slide.reveal > .hidden.content {
+ left: auto !important;
+ right: 100% !important;
+}
+
+.ui.right.slide.reveal:hover > .visible.content,
+.ui.right.slide.reveal:focus > .visible.content {
+ left: 100% !important;
+ right: auto !important;
+}
+
+.ui.right.slide.reveal:hover > .hidden.content,
+.ui.right.slide.reveal:focus > .hidden.content {
+ left: auto !important;
+ right: 0% !important;
+}
+
+.ui.up.slide.reveal > .visible.content {
+ top: 0% !important;
+ left: 0% !important;
+ right: auto !important;
+ bottom: auto !important;
+}
+
+.ui.up.slide.reveal > .hidden.content {
+ top: 100% !important;
+ left: 0% !important;
+ right: auto !important;
+ bottom: auto !important;
+}
+
+.ui.slide.up.reveal:hover > .visible.content,
+.ui.slide.up.reveal:focus > .visible.content {
+ top: -100% !important;
+ left: 0% !important;
+}
+
+.ui.slide.up.reveal:hover > .hidden.content,
+.ui.slide.up.reveal:focus > .hidden.content {
+ top: 0% !important;
+ left: 0% !important;
+}
+
+.ui.down.slide.reveal > .visible.content {
+ top: auto !important;
+ right: auto !important;
+ bottom: auto !important;
+ bottom: 0% !important;
+}
+
+.ui.down.slide.reveal > .hidden.content {
+ top: auto !important;
+ right: auto !important;
+ bottom: 100% !important;
+ left: 0% !important;
+}
+
+.ui.slide.down.reveal:hover > .visible.content,
+.ui.slide.down.reveal:focus > .visible.content {
+ left: 0% !important;
+ bottom: -100% !important;
+}
+
+.ui.slide.down.reveal:hover > .hidden.content,
+.ui.slide.down.reveal:focus > .hidden.content {
+ left: 0% !important;
+ bottom: 0% !important;
+}
+
+/*--------------
+ Fade
+---------------*/
+
+.ui.fade.reveal > .visible.content {
+ opacity: 1;
+}
+
+.ui.fade.reveal:hover > .visible.content,
+.ui.fade.reveal:focus > .visible.content {
+ opacity: 0;
+}
+
+/*--------------
+ Move
+---------------*/
+
+.ui.move.reveal > .visible.content,
+.ui.move.left.reveal > .visible.content {
+ left: auto !important;
+ top: auto !important;
+ bottom: auto !important;
+ right: 0% !important;
+}
+
+.ui.move.reveal:hover > .visible.content,
+.ui.move.left.reveal:hover > .visible.content,
+.ui.move.reveal:focus > .visible.content,
+.ui.move.left.reveal:focus > .visible.content {
+ right: 100% !important;
+}
+
+.ui.move.right.reveal > .visible.content {
+ right: auto !important;
+ top: auto !important;
+ bottom: auto !important;
+ left: 0% !important;
+}
+
+.ui.move.right.reveal:hover > .visible.content,
+.ui.move.right.reveal:focus > .visible.content {
+ left: 100% !important;
+}
+
+.ui.move.up.reveal > .visible.content {
+ right: auto !important;
+ left: auto !important;
+ top: auto !important;
+ bottom: 0% !important;
+}
+
+.ui.move.up.reveal:hover > .visible.content,
+.ui.move.up.reveal:focus > .visible.content {
+ bottom: 100% !important;
+}
+
+.ui.move.down.reveal > .visible.content {
+ right: auto !important;
+ left: auto !important;
+ top: 0% !important;
+ bottom: auto !important;
+}
+
+.ui.move.down.reveal:hover > .visible.content,
+.ui.move.down.reveal:focus > .visible.content {
+ top: 100% !important;
+}
+
+/*--------------
+ Rotate
+---------------*/
+
+.ui.rotate.reveal > .visible.content {
+ -webkit-transition-duration: 0.8s;
+ -moz-transition-duration: 0.8s;
+ transition-duration: 0.8s;
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+}
+
+.ui.rotate.reveal > .visible.content,
+.ui.rotate.right.reveal > .visible.content {
+ -webkit-transform-origin: bottom right;
+ -moz-transform-origin: bottom right;
+ -ms-transform-origin: bottom right;
+ transform-origin: bottom right;
+}
+
+.ui.rotate.reveal:hover > .visible.content,
+.ui.rotate.right.reveal:hover > .visible.content,
+.ui.rotate.reveal:focus > .visible.content,
+.ui.rotate.right.reveal:focus > .visible.content {
+ -webkit-transform: rotate(110deg);
+ -moz-transform: rotate(110deg);
+ -ms-transform: rotate(110deg);
+ transform: rotate(110deg);
+}
+
+.ui.rotate.left.reveal > .visible.content {
+ -webkit-transform-origin: bottom left;
+ -moz-transform-origin: bottom left;
+ -ms-transform-origin: bottom left;
+ transform-origin: bottom left;
+}
+
+.ui.rotate.left.reveal:hover > .visible.content,
+.ui.rotate.left.reveal:focus > .visible.content {
+ -webkit-transform: rotate(-110deg);
+ -moz-transform: rotate(-110deg);
+ -ms-transform: rotate(-110deg);
+ transform: rotate(-110deg);
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.disabled.reveal {
+ opacity: 1 !important;
+}
+
+.ui.disabled.reveal > .content {
+ -webkit-transition: none !important;
+ -moz-transition: none !important;
+ transition: none !important;
+}
+
+.ui.disabled.reveal:hover > .visible.content,
+.ui.disabled.reveal:focus > .visible.content {
+ position: static !important;
+ display: block !important;
+ opacity: 1 !important;
+ top: 0 !important;
+ left: 0 !important;
+ right: auto !important;
+ bottom: auto !important;
+ -webkit-transform: none !important;
+ -moz-transform: none !important;
+ -ms-transform: none !important;
+ transform: none !important;
+}
+
+.ui.disabled.reveal:hover > .hidden.content,
+.ui.disabled.reveal:focus > .hidden.content {
+ display: none !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Masked
+---------------*/
+
+.ui.masked.reveal {
+ overflow: hidden;
+}
+
+/*--------------
+ Instant
+---------------*/
+
+.ui.instant.reveal > .content {
+ -webkit-transition-delay: 0s !important;
+ -moz-transition-delay: 0s !important;
+ transition-delay: 0s !important;
+}
+/*
+ * # Semantic - Segment
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Segment
+*******************************/
+
+.ui.segment {
+ position: relative;
+ background-color: #FFFFFF;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ margin: 1em 0em;
+ padding: 1em;
+ border-radius: 5px 5px 5px 5px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.segment:first-child {
+ margin-top: 0em;
+}
+
+.ui.segment:last-child {
+ margin-bottom: 0em;
+}
+
+.ui.segment:after {
+ content: '';
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+.ui.vertical.segment {
+ margin: 0em;
+ padding-left: 0em;
+ padding-right: 0em;
+ background-color: transparent;
+ border-radius: 0px;
+ -webkit-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.1);
+}
+
+.ui.vertical.segment:first-child {
+ padding-top: 0em;
+}
+
+.ui.horizontal.segment {
+ margin: 0em;
+ padding-top: 0em;
+ padding-bottom: 0em;
+ background-color: transparent;
+ border-radius: 0px;
+ -webkit-box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1);
+ box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1);
+}
+
+.ui.horizontal.segment:first-child {
+ padding-left: 0em;
+}
+
+/*-------------------
+ Loose Coupling
+--------------------*/
+
+.ui.pointing.menu ~ .ui.attached.segment {
+ top: 1px;
+}
+
+.ui.page.grid.segment .ui.grid .ui.segment.column {
+ padding-top: 2rem;
+ padding-bottom: 2rem;
+}
+
+.ui.grid.segment,
+.ui.grid .ui.segment.row,
+.ui.grid .ui.segment.column {
+ border-radius: 0em;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border: none;
+}
+
+/* No padding on edge content */
+
+.ui.segment > :first-child {
+ margin-top: 0em;
+}
+
+.ui.segment > :last-child {
+ margin-bottom: 0em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Piled
+--------------------*/
+
+.ui.piled.segment {
+ margin: 2em 0em;
+ -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15);
+ -ms-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15);
+ -o-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15);
+ box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15);
+}
+
+.ui.piled.segment:first-child {
+ margin-top: 0em;
+}
+
+.ui.piled.segment:last-child {
+ margin-bottom: 0em;
+}
+
+.ui.piled.segment:after,
+.ui.piled.segment:before {
+ background-color: #FFFFFF;
+ visibility: visible;
+ content: "";
+ display: block;
+ height: 100%;
+ left: -1px;
+ position: absolute;
+ width: 100%;
+ -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.piled.segment:after {
+ -webkit-transform: rotate(1.2deg);
+ -moz-transform: rotate(1.2deg);
+ -ms-transform: rotate(1.2deg);
+ transform: rotate(1.2deg);
+ top: 0;
+ z-index: -1;
+}
+
+.ui.piled.segment:before {
+ -webkit-transform: rotate(-1.2deg);
+ -moz-transform: rotate(-1.2deg);
+ -ms-transform: rotate(-1.2deg);
+ transform: rotate(-1.2deg);
+ top: 0;
+ z-index: -2;
+}
+
+/*-------------------
+ Stacked
+--------------------*/
+
+.ui.stacked.segment {
+ padding-bottom: 1.7em;
+}
+
+.ui.stacked.segment:after,
+.ui.stacked.segment:before {
+ content: '';
+ position: absolute;
+ bottom: -3px;
+ left: 0%;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ background-color: rgba(0, 0, 0, 0.02);
+ width: 100%;
+ height: 5px;
+ visibility: visible;
+}
+
+.ui.stacked.segment:before {
+ bottom: 0px;
+}
+
+/* Inverted */
+
+.ui.stacked.inverted.segment:after,
+.ui.stacked.inverted.segment:before {
+ background-color: rgba(255, 255, 255, 0.1);
+ border-top: 1px solid rgba(255, 255, 255, 0.35);
+}
+
+/*-------------------
+ Circular
+--------------------*/
+
+.ui.circular.segment {
+ display: table-cell;
+ padding: 2em;
+ text-align: center;
+ vertical-align: middle;
+ border-radius: 500em;
+}
+
+/*-------------------
+ Raised
+--------------------*/
+
+.ui.raised.segment {
+ -webkit-box-shadow: 0px 1px 2px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 1px 2px 1px rgba(0, 0, 0, 0.1);
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.disabled.segment {
+ opacity: 0.8;
+ color: #DDDDDD;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Basic
+--------------------*/
+
+.ui.basic.segment {
+ position: relative;
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border-radius: 0px;
+}
+
+.ui.basic.segment:first-child {
+ padding-top: 0em;
+}
+
+.ui.basic.segment:last-child {
+ padding-bottom: 0em;
+}
+
+/*-------------------
+ Fittted
+--------------------*/
+
+.ui.fitted.segment {
+ padding: 0em;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+.ui.blue.segment {
+ border-top: 0.2em solid #6ECFF5;
+}
+
+.ui.green.segment {
+ border-top: 0.2em solid #A1CF64;
+}
+
+.ui.red.segment {
+ border-top: 0.2em solid #D95C5C;
+}
+
+.ui.orange.segment {
+ border-top: 0.2em solid #F05940;
+}
+
+.ui.purple.segment {
+ border-top: 0.2em solid #564F8A;
+}
+
+.ui.teal.segment {
+ border-top: 0.2em solid #00B5AD;
+}
+
+/*-------------------
+ Inverted Colors
+--------------------*/
+
+.ui.inverted.black.segment {
+ background-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.blue.segment {
+ background-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.green.segment {
+ background-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.red.segment {
+ background-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.orange.segment {
+ background-color: #F05940 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.purple.segment {
+ background-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.teal.segment {
+ background-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+/*-------------------
+ Aligned
+--------------------*/
+
+.ui.left.aligned.segment {
+ text-align: left;
+}
+
+.ui.right.aligned.segment {
+ text-align: right;
+}
+
+.ui.center.aligned.segment {
+ text-align: center;
+}
+
+.ui.justified.segment {
+ text-align: justify;
+ -webkit-hyphens: auto;
+ -moz-hyphens: auto;
+ -ms-hyphens: auto;
+ hyphens: auto;
+}
+
+/*-------------------
+ Floated
+--------------------*/
+
+.ui.floated.segment,
+.ui.left.floated.segment {
+ float: left;
+}
+
+.ui.right.floated.segment {
+ float: right;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.inverted.segment {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.segment .segment {
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.inverted.segment .inverted.segment {
+ color: #FFFFFF;
+}
+
+.ui.inverted.segment,
+.ui.primary.inverted.segment {
+ background-color: #222222;
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Ordinality
+--------------------*/
+
+.ui.primary.segment {
+ background-color: #FFFFFF;
+ color: #555555;
+}
+
+.ui.secondary.segment {
+ background-color: #FAF9FA;
+ color: #777777;
+}
+
+.ui.tertiary.segment {
+ background-color: #EBEBEB;
+ color: #B0B0B0;
+}
+
+.ui.secondary.inverted.segment {
+ background-color: #555555;
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(rgba(255, 255, 255, 0.3)), to(rgba(255, 255, 255, 0.3)));
+ background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.3) 100%);
+ background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.3) 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.3)), to(rgba(255, 255, 255, 0.3)));
+ background-image: linear-gradient(rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.3) 100%);
+ color: #FAFAFA;
+}
+
+.ui.tertiary.inverted.segment {
+ background-color: #555555;
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(rgba(255, 255, 255, 0.6)), to(rgba(255, 255, 255, 0.6)));
+ background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.6) 100%);
+ background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.6) 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.6)), to(rgba(255, 255, 255, 0.6)));
+ background-image: linear-gradient(rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.6) 100%);
+ color: #EEEEEE;
+}
+
+/*-------------------
+ Attached
+--------------------*/
+
+.ui.segment.attached {
+ top: -1px;
+ bottom: -1px;
+ border-radius: 0px;
+ margin: 0em;
+ -webkit-box-shadow: 0px 0px 0px 1px #DDDDDD;
+ box-shadow: 0px 0px 0px 1px #DDDDDD;
+}
+
+.ui.top.attached.segment {
+ top: 0px;
+ bottom: -1px;
+ margin-top: 1em;
+ margin-bottom: 0em;
+ border-radius: 5px 5px 0px 0px;
+}
+
+.ui.segment.top.attached:first-child {
+ margin-top: 0em;
+}
+
+.ui.segment.bottom.attached {
+ top: -1px;
+ bottom: 0px;
+ margin-top: 0em;
+ margin-bottom: 1em;
+ border-radius: 0px 0px 5px 5px;
+}
+
+.ui.segment.bottom.attached:last-child {
+ margin-bottom: 0em;
+}
+/*
+ * # Semantic - Steps
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Step
+*******************************/
+
+.ui.step,
+.ui.steps .step {
+ display: inline-block;
+ position: relative;
+ padding: 1em 2em 1em 3em;
+ vertical-align: top;
+ background-color: #FFFFFF;
+ color: #888888;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.step:after,
+.ui.steps .step:after {
+ position: absolute;
+ z-index: 2;
+ content: '';
+ top: 0.42em;
+ right: -1em;
+ border: medium none;
+ background-color: #FFFFFF;
+ width: 2.2em;
+ height: 2.2em;
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+ -webkit-box-shadow: -1px -1px 0 0 rgba(0, 0, 0, 0.15) inset;
+ box-shadow: -1px -1px 0 0 rgba(0, 0, 0, 0.15) inset;
+}
+
+.ui.step,
+.ui.steps .step,
+.ui.steps .step:after {
+ -webkit-transition: background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, -webkit-box-shadow 0.1s ease;
+ -moz-transition: background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, box-shadow 0.1s ease;
+ transition: background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, box-shadow 0.1s ease;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/* Vertical */
+
+.ui.vertical.steps {
+ overflow: visible;
+}
+
+.ui.vertical.steps .step {
+ display: block;
+ border-radius: 0em;
+ padding: 1em 2em;
+}
+
+.ui.vertical.steps .step:first-child {
+ padding: 1em 2em;
+ border-radius: 0em;
+ border-top-left-radius: 0.3125rem;
+ border-top-right-radius: 0.3125rem;
+}
+
+.ui.vertical.steps .active.step:first-child {
+ border-top-right-radius: 0rem;
+}
+
+.ui.vertical.steps .step:last-child {
+ border-radius: 0em;
+ border-bottom-left-radius: 0.3125rem;
+ border-bottom-right-radius: 0.3125rem;
+}
+
+.ui.vertical.steps .active.step:last-child {
+ border-bottom-right-radius: 0rem;
+}
+
+/* Arrow */
+
+.ui.vertical.steps .step:after {
+ display: none;
+}
+
+/* Active Arrow */
+
+.ui.vertical.steps .active.step:after {
+ display: block;
+}
+
+/* Two Line */
+
+.ui.vertical.steps .two.line.step {
+ line-height: 1.3;
+}
+
+.ui.vertical.steps .two.line.active.step:after {
+ position: absolute;
+ z-index: 2;
+ content: '';
+ top: 0em;
+ right: -1.45em;
+ background-color: transparent;
+ border-bottom: 2.35em solid transparent;
+ border-left: 1.55em solid #555555;
+ border-top: 2.35em solid transparent;
+ width: 0em;
+ height: 0em;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+}
+
+/*******************************
+ Group
+*******************************/
+
+.ui.steps {
+ cursor: pointer;
+ display: inline-block;
+ font-size: 0em;
+ overflow: hidden;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ line-height: 1;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ border-radius: 0.3125rem;
+}
+
+.ui.steps .step:first-child {
+ padding-left: 1.35em;
+ border-radius: 0.3125em 0em 0em 0.3125em;
+}
+
+.ui.steps .step:last-child {
+ border-radius: 0em 0.3125em 0.3125em 0em;
+}
+
+.ui.steps .step:only-child {
+ border-radius: 0.3125em;
+}
+
+.ui.steps .step:last-child {
+ margin-right: 0em;
+}
+
+.ui.steps .step:last-child:after {
+ display: none;
+}
+
+/*******************************
+ States
+*******************************/
+
+/* Hover */
+
+.ui.step:hover,
+.ui.step.hover {
+ background-color: #F7F7F7;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.steps .step.hover:after,
+.ui.steps .step:hover:after,
+.ui.step:hover,
+.ui.step.hover::after {
+ background-color: #F7F7F7;
+}
+
+/* Hover */
+
+.ui.steps .step.down,
+.ui.steps .step:active,
+.ui.step.down,
+.ui.step:active {
+ background-color: #F0F0F0;
+}
+
+.ui.steps .step.down:after,
+.ui.steps .step:active:after,
+.ui.steps.down::after,
+.ui.steps:active::after {
+ background-color: #F0F0F0;
+}
+
+/* Active */
+
+.ui.steps .step.active,
+.ui.active.step {
+ cursor: auto;
+ background-color: #555555;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+
+.ui.steps .step.active:after,
+.ui.active.steps:after {
+ background-color: #555555;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* Disabled */
+
+.ui.steps .disabled.step,
+.ui.disabled.step {
+ cursor: auto;
+ background-color: #FFFFFF;
+ color: #CBCBCB;
+}
+
+.ui.steps .disabled.step:after,
+.ui.disabled.step:after {
+ background-color: #FFFFFF;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/* Attached */
+
+.attached.ui.steps {
+ margin: 0em;
+ border-radius: 0.3125em 0.3125em 0em 0em;
+}
+
+.attached.ui.steps .step:first-child {
+ border-radius: 0.3125em 0em 0em 0em;
+}
+
+.attached.ui.steps .step:last-child {
+ border-radius: 0em 0.3125em 0em 0em;
+}
+
+/* Bottom Side */
+
+.bottom.attached.ui.steps {
+ margin-top: -1px;
+ border-radius: 0em 0em 0.3125em 0.3125em;
+}
+
+.bottom.attached.ui.steps .step:first-child {
+ border-radius: 0em 0em 0em 0.3125em;
+}
+
+.bottom.attached.ui.steps .step:last-child {
+ border-radius: 0em 0em 0.3125em 0em;
+}
+
+/* Evenly divided */
+
+.ui.one.steps,
+.ui.two.steps,
+.ui.three.steps,
+.ui.four.steps,
+.ui.five.steps,
+.ui.six.steps,
+.ui.seven.steps,
+.ui.eight.steps {
+ display: block;
+}
+
+.ui.one.steps > .step {
+ width: 100%;
+}
+
+.ui.two.steps > .step {
+ width: 50%;
+}
+
+.ui.three.steps > .step {
+ width: 33.333%;
+}
+
+.ui.four.steps > .step {
+ width: 25%;
+}
+
+.ui.five.steps > .step {
+ width: 20%;
+}
+
+.ui.six.steps > .step {
+ width: 16.666%;
+}
+
+.ui.seven.steps > .step {
+ width: 14.285%;
+}
+
+.ui.eight.steps > .step {
+ width: 12.500%;
+}
+
+/*******************************
+ Sizes
+*******************************/
+
+.ui.small.step,
+.ui.small.steps .step {
+ font-size: 0.8rem;
+}
+
+.ui.step,
+.ui.steps .step {
+ font-size: 1rem;
+}
+
+.ui.large.step,
+.ui.large.steps .step {
+ font-size: 1.25rem;
+}
+/*
+ * # Semantic - Accordion
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Accordion
+*******************************/
+
+.ui.accordion,
+.ui.accordion .accordion {
+ width: 600px;
+ max-width: 100%;
+ font-size: 1rem;
+ border-radius: 0.3125em;
+ background-color: #FFFFFF;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.accordion .title,
+.ui.accordion .accordion .title {
+ cursor: pointer;
+ margin: 0em;
+ padding: 0.75em 1em;
+ color: rgba(0, 0, 0, 0.6);
+ border-top: 1px solid rgba(0, 0, 0, 0.05);
+ -webkit-transition: background-color 0.2s ease-out;
+ -moz-transition: background-color 0.2s ease-out;
+ transition: background-color 0.2s ease-out;
+}
+
+.ui.accordion .title:first-child,
+.ui.accordion .accordion .title:first-child {
+ border-top: none;
+}
+
+/* Content */
+
+.ui.accordion .content,
+.ui.accordion .accordion .content {
+ display: none;
+ margin: 0em;
+ padding: 1.3em 1em;
+}
+
+/* Arrow */
+
+.ui.accordion .title .dropdown.icon,
+.ui.accordion .accordion .title .dropdown.icon {
+ display: inline-block;
+ float: none;
+ margin: 0em 0.5em 0em 0em;
+ -webkit-transition: -webkit-transform 0.2s ease, opacity 0.2s ease;
+ -moz-transition: -moz-transform 0.2s ease, opacity 0.2s ease;
+ transition: transform 0.2s ease,
+ opacity 0.2s ease;
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+}
+
+.ui.accordion .title .dropdown.icon:before,
+.ui.accordion .accordion .title .dropdown.icon:before {
+ content: '\f0da' /*rtl:'\f0d9'*/;
+}
+
+/*--------------
+ Loose Coupling
+---------------*/
+
+.ui.basic.accordion.menu {
+ background-color: #FFFFFF;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.basic.accordion.menu .title,
+.ui.basic.accordion.menu .content {
+ padding: 0em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Basic
+---------------*/
+
+.ui.basic.accordion {
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.basic.accordion .title,
+.ui.basic.accordion .accordion .title {
+ background-color: transparent;
+ border-top: none;
+ padding-left: 0em;
+ padding-right: 0em;
+}
+
+.ui.basic.accordion .content,
+.ui.basic.accordion .accordion .content {
+ padding: 0.5em 0em;
+}
+
+.ui.basic.accordion .active.title,
+.ui.basic.accordion .accordion .active.title {
+ background-color: transparent;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.accordion .title:hover,
+.ui.accordion .active.title,
+.ui.accordion .accordion .title:hover,
+.ui.accordion .accordion .active.title {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.accordion .active.title,
+.ui.accordion .accordion .active.title {
+ background-color: rgba(0, 0, 0, 0.1);
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.accordion .active.title .dropdown.icon,
+.ui.accordion .accordion .active.title .dropdown.icon {
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+
+.ui.accordion .active.content,
+.ui.accordion .accordion .active.content {
+ display: block;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Fluid
+---------------*/
+
+.ui.fluid.accordion,
+.ui.fluid.accordion .accordion {
+ width: 100%;
+}
+/*
+ * # Semantic - Chat Room
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Chat Room
+*******************************/
+
+.ui.chatroom {
+ background-color: #F8F8F8;
+ width: 330px;
+ height: 370px;
+ padding: 0px;
+}
+
+.ui.chatroom .room {
+ position: relative;
+ background-color: #FFFFFF;
+ overflow: hidden;
+ height: 286px;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ border-top: none;
+ border-bottom: none;
+}
+
+.ui.chatroom .room .loader {
+ display: none;
+ margin: -25px 0px 0px -25px;
+}
+
+/* Chat Room Actions */
+
+.ui.chatroom .actions {
+ overflow: hidden;
+ background-color: #EEEEEE;
+ padding: 4px;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ border-radius: 5px 5px 0px 0px;
+}
+
+.ui.chatroom .actions .button {
+ float: right;
+ margin-left: 3px;
+}
+
+/* Online User Count */
+
+.ui.chatroom .actions .message {
+ float: left;
+ margin-left: 6px;
+ font-size: 11px;
+ color: #AAAAAA;
+ text-shadow: 0px -1px 0px rgba(255, 255, 255, 0.8);
+ line-height: 28px;
+}
+
+.ui.chatroom .actions .message .loader {
+ display: inline-block;
+ margin-right: 8px;
+}
+
+/* Chat Room Text Log */
+
+.ui.chatroom .log {
+ float: left;
+ overflow: auto;
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+
+.ui.chatroom .log .message {
+ padding: 3px 0px;
+ border-top: 1px dotted #DADADA;
+}
+
+.ui.chatroom .log .message:first-child {
+ border-top: none;
+}
+
+/* status event */
+
+.ui.chatroom .status {
+ padding: 5px 0px;
+ color: #AAAAAA;
+ font-size: 12px;
+ font-style: italic;
+ line-height: 1.33;
+ border-top: 1px dotted #DADADA;
+}
+
+.ui.chatroom .log .status:first-child {
+ border-top: none;
+}
+
+.ui.chatroom .log .flag {
+ float: left;
+}
+
+.ui.chatroom .log p {
+ margin-left: 0px;
+}
+
+.ui.chatroom .log .author {
+ font-weight: bold;
+ -webkit-transition: color 0.3s ease-out;
+ -moz-transition: color 0.3s ease-out;
+ transition: color 0.3s ease-out;
+}
+
+.ui.chatroom .log a.author:hover {
+ opacity: 0.8;
+}
+
+.ui.chatroom .log .message.admin p {
+ font-weight: bold;
+ margin: 1px 0px 0px 23px;
+}
+
+.ui.chatroom .log .divider {
+ margin: -1px 0px;
+ font-size: 11px;
+ padding: 10px 0px;
+ border-top: 1px solid #F8F8F8;
+ border-bottom: 1px solid #F8F8F8;
+}
+
+.ui.chatroom .log .divider .rule {
+ top: 50%;
+ width: 15%;
+}
+
+.ui.chatroom .log .divider .label {
+ color: #777777;
+ margin: 0px;
+}
+
+/* Chat Room User List */
+
+.ui.chatroom .room .list {
+ position: relative;
+ overflow: auto;
+ overflow-x: hidden;
+ overflow-y: auto;
+ float: left;
+ background-color: #EEEEEE;
+ border-left: 1px solid #DDDDDD;
+}
+
+.ui.chatroom .room .list .user {
+ display: table;
+ padding: 3px 7px;
+ border-bottom: 1px solid #DDDDDD;
+}
+
+.ui.chatroom .room .list .user:hover {
+ background-color: #F8F8F8;
+}
+
+.ui.chatroom .room .list .image {
+ display: table-cell;
+ vertical-align: middle;
+ width: 20px;
+}
+
+.ui.chatroom .room .list .image img {
+ width: 20px;
+ height: 20px;
+ vertical-align: middle;
+}
+
+.ui.chatroom .room .list p {
+ display: table-cell;
+ vertical-align: middle;
+ padding-left: 7px;
+ padding-right: 14px;
+ font-size: 11px;
+ line-height: 1.2;
+ font-weight: bold;
+}
+
+.ui.chatroom .room .list a:hover {
+ opacity: 0.8;
+}
+
+/* User List Loading */
+
+.ui.chatroom.loading .loader {
+ display: block;
+}
+
+/* Chat Room Talk Input */
+
+.ui.chatroom .talk {
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ padding: 5px 0px 0px;
+ background-color: #EEEEEE;
+ border-radius: 0px 0px 5px 5px;
+}
+
+.ui.chatroom .talk .avatar,
+.ui.chatroom .talk input,
+.ui.chatroom .talk .button {
+ float: left;
+}
+
+.ui.chatroom .talk .avatar img {
+ display: block;
+ width: 30px;
+ height: 30px;
+ margin-right: 4px;
+ border-radius: 500rem;
+}
+
+.ui.chatroom .talk input {
+ border: 1px solid #CCCCCC;
+ margin: 0px;
+ width: 196px;
+ height: 14px;
+ padding: 8px 5px;
+ font-size: 12px;
+ color: #555555;
+}
+
+.ui.chatroom .talk input.focus {
+ border: 1px solid #AAAAAA;
+}
+
+.ui.chatroom .send {
+ width: 80px;
+ height: 32px;
+ margin-left: -1px;
+ padding: 4px 12px;
+ font-size: 12px;
+ line-height: 23px;
+ -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset;
+ border-radius: 0 5px 5px 0;
+}
+
+.ui.chatroom .talk .log-in.button {
+ display: block;
+ float: none;
+ margin-top: -6px;
+ height: 22px;
+ border-radius: 0px 0px 4px 4px;
+}
+
+.ui.chatroom .talk .log-in.button i {
+ vertical-align: text-top;
+}
+
+/* Quirky Flags */
+
+.ui.chatroom .log .team.flag {
+ width: 18px;
+}
+
+/* Chat room Loaded */
+
+.ui.chatroom.loading .loader {
+ display: block;
+}
+
+/* Standard Size */
+
+.ui.chatroom {
+ width: 330px;
+ height: 370px;
+}
+
+.ui.chatroom .room .container {
+ width: 3000px;
+}
+
+.ui.chatroom .log {
+ width: 314px;
+ height: 278px;
+ padding: 4px 7px;
+}
+
+.ui.chatroom .room .list {
+ width: 124px;
+ height: 278px;
+ padding: 4px 0px;
+}
+
+.ui.chatroom .room .list .user {
+ width: 110px;
+}
+
+.ui.chatroom .talk {
+ height: 40px;
+}
+/*
+ * # Semantic - Checkbox
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Checkbox
+*******************************/
+
+/*--------------
+ Standard
+---------------*/
+
+/*--- Content ---*/
+
+.ui.checkbox {
+ position: relative;
+ display: inline-block;
+ min-width: 1em;
+ height: 1.25em;
+ line-height: 1em;
+ outline: none;
+ vertical-align: middle;
+}
+
+.ui.checkbox input {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ opacity: 0;
+ outline: none;
+}
+
+/*--- Box ---*/
+
+.ui.checkbox .box,
+.ui.checkbox label {
+ cursor: pointer;
+ padding-left: 2em;
+ outline: none;
+}
+
+.ui.checkbox .box:before,
+.ui.checkbox label:before {
+ position: absolute;
+ top: 0em;
+ line-height: 1;
+ width: 1em;
+ height: 1em;
+ left: 0em;
+ content: '';
+ border-radius: 4px;
+ background: #FFFFFF;
+ -webkit-transition: background-color 0.3s ease, -webkit-box-shadow 0.3s ease;
+ -moz-transition: background-color 0.3s ease, box-shadow 0.3s ease;
+ transition: background-color 0.3s ease, box-shadow 0.3s ease;
+ -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.2);
+ box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.2);
+}
+
+/*--- Checkbox ---*/
+
+.ui.checkbox .box:after,
+.ui.checkbox label:after {
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
+ filter: alpha(opacity=0);
+ opacity: 0;
+ content: '';
+ position: absolute;
+ background: transparent;
+ border: 0.2em solid #333333;
+ border-top: none;
+ border-right: none;
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+}
+
+.ui.checkbox .box:after,
+.ui.checkbox label:after {
+ top: 0.275em;
+ left: 0.2em;
+ width: 0.45em;
+ height: 0.15em;
+}
+
+/*--- Inside Label ---*/
+
+.ui.checkbox label {
+ color: rgba(0, 0, 0, 0.6);
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+.ui.checkbox label:hover {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.checkbox input:focus ~ label {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--- Outside Label ---*/
+
+.ui.checkbox ~ label {
+ cursor: pointer;
+ opacity: 0.85;
+ vertical-align: middle;
+}
+
+.ui.checkbox ~ label:hover {
+ opacity: 1;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--- Hover ---*/
+
+.ui.checkbox .box:hover::before,
+.ui.checkbox label:hover::before {
+ -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
+ box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
+}
+
+/*--- Down ---*/
+
+.ui.checkbox .box:active::before,
+.ui.checkbox label:active::before {
+ background-color: #F5F5F5;
+}
+
+/*--- Focus ---*/
+
+.ui.checkbox input:focus ~ .box:before,
+.ui.checkbox input:focus ~ label:before {
+ -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
+ box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
+}
+
+/*--- Active ---*/
+
+.ui.checkbox input:checked ~ .box:after,
+.ui.checkbox input:checked ~ label:after {
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
+ filter: alpha(opacity=100);
+ opacity: 1;
+}
+
+/*--- Disabled ---*/
+
+.ui.disabled.checkbox ~ .box:after,
+.ui.checkbox input[disabled] ~ .box:after,
+.ui.disabled.checkbox label,
+.ui.checkbox input[disabled] ~ label {
+ opacity: 0.4;
+ color: rgba(0, 0, 0, 0.3);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Radio
+---------------*/
+
+.ui.radio.checkbox .box:before,
+.ui.radio.checkbox label:before {
+ min-width: 1em;
+ height: 1em;
+ border-radius: 500px;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+}
+
+.ui.radio.checkbox .box:after,
+.ui.radio.checkbox label:after {
+ border: none;
+ top: 0.2em;
+ left: 0.2em;
+ width: 0.6em;
+ height: 0.6em;
+ background-color: #555555;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+ border-radius: 500px;
+}
+
+/*--------------
+ Slider
+---------------*/
+
+.ui.slider.checkbox {
+ cursor: pointer;
+ min-width: 3em;
+}
+
+/* Line */
+
+.ui.slider.checkbox:after {
+ position: absolute;
+ top: 0.5em;
+ left: 0em;
+ content: '';
+ width: 3em;
+ height: 2px;
+ background-color: rgba(0, 0, 0, 0.1);
+}
+
+/* Button */
+
+.ui.slider.checkbox .box,
+.ui.slider.checkbox label {
+ padding-left: 4em;
+}
+
+.ui.slider.checkbox .box:before,
+.ui.slider.checkbox label:before {
+ cursor: pointer;
+ display: block;
+ position: absolute;
+ top: -0.25em;
+ left: 0em;
+ z-index: 1;
+ width: 1.5em;
+ height: 1.5em;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ border-radius: 50rem;
+ -webkit-transition: left 0.3s ease 0s;
+ -moz-transition: left 0.3s ease 0s;
+ transition: left 0.3s ease 0s;
+}
+
+/* Button Activation Light */
+
+.ui.slider.checkbox .box:after,
+.ui.slider.checkbox label:after {
+ opacity: 1;
+ position: absolute;
+ content: '';
+ top: 0.15em;
+ left: 0em;
+ z-index: 2;
+ margin-left: 0.375em;
+ border: none;
+ width: 0.75em;
+ height: 0.75em;
+ border-radius: 50rem;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+ -webkit-transition: background 0.3s ease 0s,
+ left 0.3s ease 0s;
+ -moz-transition: background 0.3s ease 0s,
+ left 0.3s ease 0s;
+ transition: background 0.3s ease 0s,
+ left 0.3s ease 0s;
+}
+
+/* Selected Slider Toggle */
+
+.ui.slider.checkbox input:checked ~ .box:before,
+.ui.slider.checkbox input:checked ~ label:before,
+.ui.slider.checkbox input:checked ~ .box:after,
+.ui.slider.checkbox input:checked ~ label:after {
+ left: 1.75em;
+}
+
+/* Off Color */
+
+.ui.slider.checkbox .box:after,
+.ui.slider.checkbox label:after {
+ background-color: #D95C5C;
+}
+
+/* On Color */
+
+.ui.slider.checkbox input:checked ~ .box:after,
+.ui.slider.checkbox input:checked ~ label:after {
+ background-color: #89B84C;
+}
+
+/*--------------
+ Toggle
+---------------*/
+
+.ui.toggle.checkbox {
+ cursor: pointer;
+}
+
+.ui.toggle.checkbox .box,
+.ui.toggle.checkbox label {
+ padding-left: 4em;
+}
+
+/* Switch */
+
+.ui.toggle.checkbox .box:before,
+.ui.toggle.checkbox label:before {
+ cursor: pointer;
+ display: block;
+ position: absolute;
+ content: '';
+ top: -0.25em;
+ left: 0em;
+ z-index: 1;
+ background-color: #FFFFFF;
+ width: 3em;
+ height: 1.5em;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ border-radius: 50rem;
+}
+
+/* Activation Light */
+
+.ui.toggle.checkbox .box:after,
+.ui.toggle.checkbox label:after {
+ opacity: 1;
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ content: '';
+ position: absolute;
+ top: 0.15em;
+ left: 0.5em;
+ z-index: 2;
+ border: none;
+ width: 0.75em;
+ height: 0.75em;
+ background-color: #D95C5C;
+ border-radius: 50rem;
+ -webkit-transition: background 0.3s ease 0s,
+ left 0.3s ease 0s;
+ -moz-transition: background 0.3s ease 0s,
+ left 0.3s ease 0s;
+ transition: background 0.3s ease 0s,
+ left 0.3s ease 0s;
+}
+
+/* Active */
+
+.ui.toggle.checkbox:active .box:before,
+.ui.toggle.checkbox:active label:before {
+ background-color: #F5F5F5;
+}
+
+/* Active */
+
+.ui.toggle.checkbox input:checked ~ .box:after,
+.ui.toggle.checkbox input:checked ~ label:after {
+ left: 1.75em;
+ background-color: #89B84C;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.checkbox {
+ font-size: 1em;
+}
+
+.ui.large.checkbox {
+ font-size: 1.25em;
+}
+
+.ui.huge.checkbox {
+ font-size: 1.5em;
+}
+/*
+ * # Semantic - Dimmer
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Dimmer
+*******************************/
+
+.ui.dimmable {
+ position: relative;
+}
+
+.ui.dimmer {
+ display: none;
+ position: absolute;
+ top: 0em !important;
+ left: 0em !important;
+ width: 0%;
+ height: 0%;
+ text-align: center;
+ vertical-align: middle;
+ background-color: rgba(0, 0, 0, 0.85);
+ opacity: 0;
+ line-height: 1;
+ -webkit-animation-fill-mode: both;
+ -moz-animation-fill-mode: both;
+ animation-fill-mode: both;
+ -webkit-animation-duration: 0.5s;
+ -moz-animation-duration: 0.5s;
+ animation-duration: 0.5s;
+ -webkit-transition: background-color 0.5s linear;
+ -moz-transition: background-color 0.5s linear;
+ transition: background-color 0.5s linear;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ z-index: 1000;
+}
+
+/* Dimmer Content */
+
+.ui.dimmer > .content {
+ width: 100%;
+ height: 100%;
+ display: table;
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+}
+
+.ui.dimmer > .content > div {
+ display: table-cell;
+ vertical-align: middle;
+ color: #FFFFFF;
+}
+
+/* Loose Coupling */
+
+.ui.segment > .ui.dimmer {
+ border-radius: 5px;
+}
+
+.ui.horizontal.segment > .ui.dimmer,
+.ui.vertical.segment > .ui.dimmer {
+ border-radius: 5px;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.dimmed.dimmable:not(body) {
+ overflow: hidden;
+}
+
+.ui.dimmed.dimmable > .ui.animating.dimmer,
+.ui.dimmed.dimmable > .ui.visible.dimmer,
+.ui.active.dimmer {
+ display: block;
+ width: 100%;
+ height: 100%;
+ opacity: 1;
+}
+
+.ui.disabled.dimmer {
+ width: 0em !important;
+ height: 0em !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Page
+---------------*/
+
+.ui.page.dimmer {
+ position: fixed;
+ -webkit-transform-style: preserve-3d;
+ -moz-transform-style: preserve-3d;
+ -ms-transform-style: preserve-3d;
+ transform-style: preserve-3d;
+ -webkit-perspective: 2000px;
+ -moz-perspective: 2000px;
+ -ms-perspective: 2000px;
+ perspective: 2000px;
+ -webkit-transform-origin: center center;
+ -moz-transform-origin: center center;
+ -ms-transform-origin: center center;
+ transform-origin: center center;
+}
+
+.ui.scrolling.dimmable > .dimmer,
+.ui.scrolling.page.dimmer {
+ position: absolute;
+}
+
+/*--------------
+ Aligned
+---------------*/
+
+.ui.dimmer > .top.aligned.content > * {
+ vertical-align: top;
+}
+
+.ui.dimmer > .bottom.aligned.content > * {
+ vertical-align: bottom;
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.inverted.dimmer {
+ background-color: rgba(255, 255, 255, 0.85);
+}
+
+.ui.inverted.dimmer > .content > * {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--------------
+ Simple
+---------------*/
+
+/* Displays without javascript */
+
+.ui.simple.dimmer {
+ display: block;
+ overflow: hidden;
+ opacity: 1;
+ z-index: -100;
+ background-color: rgba(0, 0, 0, 0);
+}
+
+.ui.dimmed.dimmable > .ui.simple.dimmer {
+ overflow: visible;
+ opacity: 1;
+ width: 100%;
+ height: 100%;
+ background-color: rgba(0, 0, 0, 0.85);
+ z-index: 1;
+}
+
+.ui.simple.inverted.dimmer {
+ background-color: rgba(255, 255, 255, 0);
+}
+
+.ui.dimmed.dimmable > .ui.simple.inverted.dimmer {
+ background-color: rgba(255, 255, 255, 0.85);
+}
+/*
+ * # Semantic - Dropdown
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Dropdown
+*******************************/
+
+.ui.dropdown {
+ cursor: pointer;
+ position: relative;
+ display: inline-block;
+ line-height: 1;
+ -webkit-transition: border-radius 0.1s ease, width 0.2s ease;
+ -moz-transition: border-radius 0.1s ease, width 0.2s ease;
+ transition: border-radius 0.1s ease, width 0.2s ease;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -moz-tap-highlight-color: rgba(0, 0, 0, 0);
+ tap-highlight-color: rgba(0, 0, 0, 0);
+}
+
+/*******************************
+ Content
+*******************************/
+
+/*--------------
+ Menu
+---------------*/
+
+.ui.dropdown .menu {
+ cursor: auto;
+ position: absolute;
+ display: none;
+ top: 100%;
+ margin: 0em;
+ background-color: #FFFFFF;
+ min-width: 100%;
+ white-space: nowrap;
+ font-size: 0.875em;
+ text-shadow: none;
+ -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1);
+ border-radius: 0px 0px 0.325em 0.325em;
+ -webkit-transition: opacity 0.2s ease;
+ -moz-transition: opacity 0.2s ease;
+ transition: opacity 0.2s ease;
+ z-index: 11;
+}
+
+/*--------------
+ Icon
+---------------*/
+
+.ui.dropdown > .dropdown.icon {
+ width: auto;
+ margin: 0em 0em 0em 1em;
+}
+
+.ui.dropdown > .dropdown.icon:before {
+ content: "\f0d7";
+}
+
+.ui.dropdown .menu .item .dropdown.icon {
+ width: auto;
+ float: right;
+ margin: 0em 0em 0em 0.5em;
+}
+
+.ui.dropdown .menu .item .dropdown.icon:before {
+ content: "\f0da" /*rtl:"\f0d9"*/;
+}
+
+/*--------------
+ Text
+---------------*/
+
+.ui.dropdown > .text {
+ display: inline-block;
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+/* Flyout Direction */
+
+.ui.dropdown .menu {
+ left: 0px;
+}
+
+/*--------------
+ Sub Menu
+---------------*/
+
+.ui.dropdown .menu .menu {
+ top: 0% !important;
+ left: 100% !important;
+ margin: 0em !important;
+ border-radius: 0 0.325em 0.325em 0em !important;
+}
+
+.ui.dropdown .menu .menu:after {
+ display: none;
+}
+
+.ui.dropdown .menu .item {
+ cursor: pointer;
+ border: none;
+ border-top: 1px solid rgba(0, 0, 0, 0.05);
+ height: auto;
+ font-size: 0.875em;
+ display: block;
+ color: rgba(0, 0, 0, 0.75);
+ padding: 0.85em 1em !important;
+ font-size: 0.875rem;
+ text-transform: none;
+ font-weight: normal;
+ text-align: left;
+ -webkit-touch-callout: none;
+}
+
+.ui.dropdown .menu .item:before {
+ display: none;
+}
+
+.ui.dropdown .menu .item .icon {
+ margin-right: 0.75em;
+}
+
+.ui.dropdown .menu .item:first-child {
+ border-top: none;
+}
+
+/*******************************
+ Coupling
+*******************************/
+
+/* Opposite on last menu on right */
+
+.ui.menu .right.menu .dropdown:last-child .menu,
+.ui.buttons > .ui.dropdown:last-child .menu {
+ left: auto;
+ right: 0px;
+}
+
+.ui.vertical.menu .dropdown.item > .dropdown.icon:before {
+ content: "\f0da" /*rtl:"\f0d9"*/;
+}
+
+.ui.dropdown.icon.button > .dropdown.icon {
+ margin: 0em;
+}
+
+/*******************************
+ States
+*******************************/
+
+/* Dropdown Visible */
+
+.ui.visible.dropdown > .menu {
+ display: block;
+}
+
+/*--------------------
+ Hover
+----------------------*/
+
+/* Menu Item Hover */
+
+.ui.dropdown .menu .item:hover {
+ background-color: rgba(0, 0, 0, 0.02);
+ z-index: 12;
+}
+
+/*--------------------
+ Active
+----------------------*/
+
+/* Menu Item Active */
+
+.ui.dropdown .menu .active.item {
+ background-color: rgba(0, 0, 0, 0.06) !important;
+ border-left: none;
+ border-color: transparent !important;
+ -webkit-box-shadow: none;
+ -moz-shadow: none;
+ box-shadow: none;
+ z-index: 12;
+}
+
+/*--------------------
+ Default Text
+----------------------*/
+
+.ui.dropdown > .default.text,
+.ui.default.dropdown > .text {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.dropdown:hover > .default.text,
+.ui.default.dropdown:hover > .text {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--------------------
+ Error
+----------------------*/
+
+.ui.dropdown.error,
+.ui.dropdown.error > .text,
+.ui.dropdown.error > .default.text {
+ color: #D95C5C !important;
+}
+
+.ui.selection.dropdown.error {
+ background-color: #FFFAFA;
+ -webkit-box-shadow: 0px 0px 0px 1px #e7bebe !important;
+ box-shadow: 0px 0px 0px 1px #e7bebe !important;
+}
+
+.ui.selection.dropdown.error:hover {
+ -webkit-box-shadow: 0px 0px 0px 1px #e7bebe !important;
+ box-shadow: 0px 0px 0px 1px #e7bebe !important;
+}
+
+.ui.dropdown.error > .menu,
+.ui.dropdown.error > .menu .menu {
+ -webkit-box-shadow: 0px 0px 1px 1px #E7BEBE !important;
+ box-shadow: 0px 0px 1px 1px #E7BEBE !important;
+}
+
+.ui.dropdown.error > .menu .item {
+ color: #D95C5C !important;
+}
+
+/* Item Hover */
+
+.ui.dropdown.error > .menu .item:hover {
+ background-color: #FFF2F2 !important;
+}
+
+/* Item Active */
+
+.ui.dropdown.error > .menu .active.item {
+ background-color: #FDCFCF !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Simple
+---------------*/
+
+/* Displays without javascript */
+
+.ui.simple.dropdown .menu:before,
+.ui.simple.dropdown .menu:after {
+ display: none;
+}
+
+.ui.simple.dropdown .menu {
+ display: block;
+ overflow: hidden;
+ top: -9999px !important;
+ position: absolute;
+ opacity: 0;
+ width: 0;
+ height: 0;
+ -webkit-transition: opacity 0.2s ease-out;
+ -moz-transition: opacity 0.2s ease-out;
+ transition: opacity 0.2s ease-out;
+}
+
+.ui.simple.active.dropdown,
+.ui.simple.dropdown:hover {
+ border-bottom-left-radius: 0em !important;
+ border-bottom-right-radius: 0em !important;
+}
+
+.ui.simple.active.dropdown > .menu,
+.ui.simple.dropdown:hover > .menu {
+ overflow: visible;
+ width: auto;
+ height: auto;
+ top: 100% !important;
+ opacity: 1;
+}
+
+.ui.simple.dropdown > .menu .item:active > .menu,
+.ui.simple.dropdown:hover > .menu .item:hover > .menu {
+ overflow: visible;
+ width: auto;
+ height: auto;
+ top: 0% !important;
+ left: 100% !important;
+ opacity: 1;
+}
+
+.ui.simple.disabled.dropdown:hover .menu {
+ display: none;
+ height: 0px;
+ width: 0px;
+ overflow: hidden;
+}
+
+/*--------------
+ Selection
+---------------*/
+
+/* Displays like a select box */
+
+.ui.selection.dropdown {
+ cursor: pointer;
+ display: inline-block;
+ word-wrap: break-word;
+ white-space: normal;
+ background-color: #FFFFFF;
+ padding: 0.65em 1em;
+ line-height: 1.33;
+ color: rgba(0, 0, 0, 0.8);
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important;
+ border-radius: 0.3125em !important;
+}
+
+.ui.selection.dropdown select {
+ display: none;
+}
+
+.ui.selection.dropdown > .dropdown.icon {
+ opacity: 0.7;
+ margin: 0.2em 0em 0.2em 1.25em;
+ -webkit-transition: opacity 0.2s ease-out;
+ -moz-transition: opacity 0.2s ease-out;
+ transition: opacity 0.2s ease-out;
+}
+
+.ui.selection.dropdown,
+.ui.selection.dropdown .menu {
+ -webkit-transition: -webkit-box-shadow 0.2s ease-out;
+ -moz-transition: box-shadow 0.2s ease-out;
+ transition: box-shadow 0.2s ease-out;
+}
+
+.ui.selection.dropdown .menu {
+ top: 100%;
+ max-height: 312px;
+ overflow-x: hidden;
+ overflow-y: auto;
+ -webkit-box-shadow: 0px 1px 0px 1px #E0E0E0;
+ box-shadow: 0px 1px 0px 1px #E0E0E0;
+ border-radius: 0px 0px 0.325em 0.325em;
+}
+
+.ui.selection.dropdown .menu:after,
+.ui.selection.dropdown .menu:before {
+ display: none;
+}
+
+.ui.selection.dropdown .menu img {
+ height: 2.5em;
+ display: inline-block;
+ vertical-align: middle;
+ margin-right: 0.5em;
+}
+
+/* Visible */
+
+.ui.visible.selection.dropdown {
+ border-bottom-left-radius: 0em !important;
+ border-bottom-right-radius: 0em !important;
+}
+
+/* Active */
+
+.ui.active.selection.dropdown {
+ border-radius: 0.3125em 0.3125em 0em 0em !important;
+}
+
+.ui.active.selection.dropdown > .dropdown.icon {
+ opacity: 1;
+}
+
+/*--------------
+ Fluid
+---------------*/
+
+.ui.fluid.dropdown {
+ display: block;
+}
+
+.ui.fluid.dropdown > .dropdown.icon {
+ float: right;
+}
+
+/*--------------
+ Inline
+---------------*/
+
+.ui.inline.dropdown {
+ cursor: pointer;
+ display: inline-block;
+ color: inherit;
+}
+
+.ui.inline.dropdown .dropdown.icon {
+ margin: 0em 0.5em 0em 0.25em;
+}
+
+.ui.inline.dropdown .text {
+ font-weight: bold;
+}
+
+.ui.inline.dropdown .menu {
+ cursor: auto;
+ margin-top: 0.25em;
+ border-radius: 0.325em;
+}
+
+/*--------------
+ Floating
+---------------*/
+
+.ui.floating.dropdown .menu {
+ left: 0;
+ right: auto;
+ margin-top: 0.5em !important;
+ border-radius: 0.325em;
+}
+
+/*--------------
+ Pointing
+---------------*/
+
+.ui.pointing.dropdown .menu {
+ top: 100%;
+ margin-top: 0.75em;
+ border-radius: 0.325em;
+}
+
+.ui.pointing.dropdown .menu:after {
+ display: block;
+ position: absolute;
+ pointer-events: none;
+ content: " ";
+ visibility: visible;
+ width: 0.5em;
+ height: 0.5em;
+ -webkit-box-shadow: -1px -1px 0px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: -1px -1px 0px 1px rgba(0, 0, 0, 0.05);
+ background-image: none;
+ background-color: #FFFFFF;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ z-index: 2;
+}
+
+.ui.pointing.dropdown .menu .active.item:first-child {
+ background: transparent -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.03));
+ background: transparent -moz-linear-gradient(transparent, rgba(0, 0, 0, 0.03));
+ background: transparent-webkit-gradient(linear, left top, left bottom, from(transparent), to(rgba(0, 0, 0, 0.03)));
+ background: transparent linear-gradient(transparent, rgba(0, 0, 0, 0.03));
+}
+
+/* Directions */
+
+.ui.pointing.dropdown .menu:after {
+ top: -0.25em;
+ left: 50%;
+ margin: 0em 0em 0em -0.25em;
+}
+
+.ui.top.left.pointing.dropdown .menu {
+ top: 100%;
+ bottom: auto;
+ left: 0%;
+ right: auto;
+ margin: 0.75em 0em 0em;
+}
+
+.ui.top.left.pointing.dropdown .menu:after {
+ top: -0.25em;
+ left: 1.25em;
+ right: auto;
+ margin: 0em;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+}
+
+.ui.top.right.pointing.dropdown .menu {
+ top: 100%;
+ bottom: auto;
+ right: 0%;
+ left: auto;
+ margin: 0.75em 0em 0em;
+}
+
+.ui.top.right.pointing.dropdown .menu:after {
+ top: -0.25em;
+ left: auto;
+ right: 1.25em;
+ margin: 0em;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+}
+
+.ui.left.pointing.dropdown .menu {
+ top: 0%;
+ left: 100%;
+ right: auto;
+ margin: 0em 0em 0em 0.75em;
+}
+
+.ui.left.pointing.dropdown .menu:after {
+ top: 1em;
+ left: -0.25em;
+ margin: 0em 0em 0em 0em;
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+}
+
+.ui.right.pointing.dropdown .menu {
+ top: 0%;
+ left: auto;
+ right: 100%;
+ margin: 0em 0.75em 0em 0em;
+}
+
+.ui.right.pointing.dropdown .menu:after {
+ top: 1em;
+ left: auto;
+ right: -0.25em;
+ margin: 0em 0em 0em 0em;
+ -webkit-transform: rotate(135deg);
+ -moz-transform: rotate(135deg);
+ -ms-transform: rotate(135deg);
+ transform: rotate(135deg);
+}
+/*
+ * # Semantic - Modal
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Modal
+*******************************/
+
+.ui.modal {
+ display: none;
+ position: fixed;
+ z-index: 1001;
+ top: 50%;
+ left: 50%;
+ text-align: left;
+ width: 90%;
+ margin-left: -45%;
+ background-color: #FFFFFF;
+ border: 1px solid #DDDDDD;
+ border-radius: 5px;
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+}
+
+/*******************************
+ Content
+*******************************/
+
+/*--------------
+ Close
+---------------*/
+
+.ui.modal > .close {
+ cursor: pointer;
+ position: absolute;
+ z-index: 1;
+ opacity: 0.8;
+ font-size: 1.25em;
+ top: -1.75em;
+ right: -1.75em;
+ color: #FFFFFF;
+}
+
+.ui.modal > .close:hover {
+ opacity: 1;
+}
+
+/*--------------
+ Header
+---------------*/
+
+.ui.modal > .header {
+ margin: 0em;
+ padding: 1.5rem 2rem;
+ font-size: 1.6em;
+ font-weight: bold;
+ border-radius: 0.325em 0.325em 0px 0px;
+}
+
+/*--------------
+ Content
+---------------*/
+
+.ui.modal > .content {
+ display: table;
+ width: 100%;
+ position: relative;
+ padding: 2em;
+ background-color: #F4F4F4;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.modal > .content > .left:not(.ui) {
+ display: table-cell;
+ padding-right: 1.5%;
+ min-width: 25%;
+}
+
+.ui.modal > .content > .right:not(.ui) {
+ display: table-cell;
+ padding-left: 1.5%;
+ vertical-align: top;
+}
+
+/*rtl:ignore*/
+
+.ui.modal > .content > .left:not(.ui) > i.icon {
+ font-size: 8em;
+ margin: 0em;
+}
+
+.ui.modal > .content p {
+ line-height: 1.6;
+}
+
+/*--------------
+ Actions
+---------------*/
+
+.ui.modal .actions {
+ padding: 1rem 2rem;
+ text-align: right;
+}
+
+.ui.modal .actions > .button {
+ margin-left: 0.75em;
+}
+
+/*-------------------
+ Sizing
+--------------------*/
+
+/* Mobile Only */
+
+@media only screen and (max-width: 768px) {
+ /*rtl:ignore*/
+
+ .ui.modal .content > .left:not(.ui) {
+ display: block;
+ padding: 0em 0em 1em;
+ }
+
+ /*rtl:ignore*/
+
+ .ui.modal .content > .right:not(.ui) {
+ display: block;
+ padding: 1em 0em 0em;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+
+ .ui.modal .content .image {
+ width: auto !important;
+ max-width: 100%;
+ }
+
+ .ui.modal .actions {
+ padding-bottom: 0em;
+ }
+
+ .ui.modal .actions > .buttons,
+ .ui.modal .actions > .button {
+ margin-bottom: 1em;
+ }
+}
+
+/* Tablet and Mobile */
+
+@media only screen and (max-width: 998px) {
+ .ui.modal {
+ width: 92%;
+ margin-left: -46%;
+ }
+
+ .ui.modal > .close {
+ color: rgba(0, 0, 0, 0.8);
+ top: 1.5rem;
+ right: 1rem;
+ }
+}
+
+/* Computer / Responsive */
+
+@media only screen and (min-width: 998px) {
+ .ui.modal {
+ width: 74%;
+ margin-left: -37%;
+ }
+}
+
+@media only screen and (min-width: 1500px) {
+ .ui.modal {
+ width: 56%;
+ margin-left: -28%;
+ }
+}
+
+@media only screen and (min-width: 1750px) {
+ .ui.modal {
+ width: 42%;
+ margin-left: -21%;
+ }
+}
+
+@media only screen and (min-width: 2000px) {
+ .ui.modal {
+ width: 36%;
+ margin-left: -18%;
+ }
+}
+
+/*******************************
+ Types
+*******************************/
+
+.ui.basic.modal {
+ background-color: transparent;
+ border: none;
+ color: #FFFFFF;
+}
+
+.ui.basic.modal > .close {
+ top: 1.5rem;
+ right: 1rem;
+}
+
+.ui.basic.modal .content {
+ background-color: transparent;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/* A modal that cannot fit on the page */
+
+.ui.modal.scrolling {
+ position: absolute;
+ margin-top: 10px;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.active.modal {
+ display: block;
+}
+
+/*--------------
+ Size
+---------------*/
+
+/* Small */
+
+.ui.small.modal > .header {
+ font-size: 1.3em;
+}
+
+@media only screen and (min-width: 998px) {
+ .ui.small.modal {
+ width: 58%;
+ margin-left: -29%;
+ }
+}
+
+@media only screen and (min-width: 1500px) {
+ .ui.small.modal {
+ width: 40%;
+ margin-left: -20%;
+ }
+}
+
+@media only screen and (min-width: 1750px) {
+ .ui.small.modal {
+ width: 26%;
+ margin-left: -13%;
+ }
+}
+
+@media only screen and (min-width: 2000px) {
+ .ui.small.modal {
+ width: 20%;
+ margin-left: -10%;
+ }
+}
+
+/* Large */
+
+@media only screen and (min-width: 998px) {
+ .ui.large.modal {
+ width: 74%;
+ margin-left: -37%;
+ }
+}
+
+@media only screen and (min-width: 1500px) {
+ .ui.large.modal {
+ width: 64%;
+ margin-left: -32%;
+ }
+}
+
+@media only screen and (min-width: 1750px) {
+ .ui.large.modal {
+ width: 54%;
+ margin-left: -27%;
+ }
+}
+
+@media only screen and (min-width: 2000px) {
+ .ui.large.modal {
+ width: 44%;
+ margin-left: -22%;
+ }
+}
+/*
+ * # Semantic - Nag
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Nag
+*******************************/
+
+.ui.nag {
+ display: none;
+ opacity: 0.95;
+ position: relative;
+ top: 0px;
+ left: 0%;
+ z-index: 101;
+ min-height: 0;
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 0em;
+ line-height: 3em;
+ padding: 0em 1em;
+ background-color: #555555;
+ -webkit-box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2);
+ box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2);
+ font-size: 1em;
+ text-align: center;
+ color: rgba(255, 255, 255, 0.8);
+ border-radius: 0px 0px 5px 5px;
+ -webkit-transition: 0.2s background;
+ -moz-transition: 0.2s background;
+ transition: 0.2s background;
+}
+
+a.ui.nag {
+ cursor: pointer;
+}
+
+.ui.nag > .title {
+ display: inline-block;
+ margin: 0em 0.5em;
+ color: #FFFFFF;
+}
+
+.ui.nag > .close.icon {
+ cursor: pointer;
+ opacity: 0.4;
+ position: absolute;
+ top: 50%;
+ right: 1em;
+ margin-top: -0.5em;
+ color: #FFFFFF;
+ -webkit-transition: 0.1s opacity;
+ -moz-transition: 0.1s opacity;
+ transition: 0.1s opacity;
+}
+
+/*******************************
+ States
+*******************************/
+
+/* Hover */
+
+.ui.nag:hover {
+ opacity: 1;
+}
+
+.ui.nag .close:hover {
+ opacity: 1;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Static
+---------------*/
+
+.ui.overlay.nag {
+ position: absolute;
+ display: block;
+}
+
+/*--------------
+ Fixed
+---------------*/
+
+.ui.fixed.nag {
+ position: fixed;
+}
+
+/*--------------
+ Bottom
+---------------*/
+
+.ui.bottom.nag {
+ border-radius: 5px 5px 0px 0px;
+}
+
+.ui.fixed.bottom.nags,
+.ui.fixed.bottom.nag {
+ top: auto;
+ bottom: 0px;
+}
+
+/*--------------
+ White
+---------------*/
+
+.ui.white.nags .nag,
+.ui.white.nag {
+ background-color: #F1F1F1;
+ text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.8);
+ color: #ACACAC;
+}
+
+.ui.white.nags .nag .close,
+.ui.white.nags .nag .title,
+.ui.white.nag .close,
+.ui.white.nag .title {
+ color: #333333;
+}
+
+/*******************************
+ Groups
+*******************************/
+
+.ui.nags .nag {
+ border-radius: 0px;
+}
+/*
+ * # Semantic - Popup
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Popup
+*******************************/
+
+.ui.popup {
+ display: none;
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ z-index: 900;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ max-width: 250px;
+ background-color: #FFFFFF;
+ padding: 0.8em 1.2em;
+ font-size: 0.875rem;
+ font-weight: normal;
+ font-style: normal;
+ color: rgba(0, 0, 0, 0.7);
+ border-radius: 0.2em;
+ -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
+}
+
+.ui.popup .header {
+ padding: 0em 0em 0.5em;
+ font-size: 1.125em;
+ line-height: 1.2;
+ font-weight: bold;
+}
+
+.ui.popup:before {
+ position: absolute;
+ content: "";
+ width: 0.75em;
+ height: 0.75rem;
+ background-image: none;
+ background-color: #FFFFFF;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ z-index: 2;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.popup .ui.button {
+ width: 100%;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Spacing
+---------------*/
+
+.ui.popup {
+ margin: 0em;
+}
+
+.ui.popup.bottom {
+ margin: 0.75em 0em 0em;
+}
+
+.ui.popup.top {
+ margin: 0em 0em 0.75em;
+}
+
+.ui.popup.left.center {
+ margin: 0em 0.75em 0em 0em;
+}
+
+.ui.popup.right.center {
+ margin: 0em 0em 0em 0.75em;
+}
+
+.ui.popup.center {
+ margin-left: -1.25em;
+}
+
+/*--------------
+ Pointer
+---------------*/
+
+/*--- Below ---*/
+
+.ui.bottom.center.popup:before {
+ margin-left: -0.4em;
+ top: -0.4em;
+ left: 50%;
+ right: auto;
+ bottom: auto;
+ -webkit-box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+}
+
+.ui.bottom.left.popup {
+ margin-right: -2em;
+}
+
+.ui.bottom.left.popup:before {
+ top: -0.4em;
+ right: 1em;
+ bottom: auto;
+ left: auto;
+ margin-left: 0em;
+ -webkit-box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+}
+
+.ui.bottom.right.popup {
+ margin-left: -2em;
+}
+
+.ui.bottom.right.popup:before {
+ top: -0.4em;
+ left: 1em;
+ right: auto;
+ bottom: auto;
+ margin-left: 0em;
+ -webkit-box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+}
+
+/*--- Above ---*/
+
+.ui.top.center.popup:before {
+ top: auto;
+ right: auto;
+ bottom: -0.4em;
+ left: 50%;
+ margin-left: -0.4em;
+}
+
+.ui.top.left.popup {
+ margin-right: -2em;
+}
+
+.ui.top.left.popup:before {
+ bottom: -0.4em;
+ right: 1em;
+ top: auto;
+ left: auto;
+ margin-left: 0em;
+}
+
+.ui.top.right.popup {
+ margin-left: -2em;
+}
+
+.ui.top.right.popup:before {
+ bottom: -0.4em;
+ left: 1em;
+ top: auto;
+ right: auto;
+ margin-left: 0em;
+}
+
+/*--- Left Center ---*/
+
+.ui.left.center.popup:before {
+ top: 50%;
+ right: -0.35em;
+ bottom: auto;
+ left: auto;
+ margin-top: -0.4em;
+ -webkit-box-shadow: 1px -1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: 1px -1px 1px rgba(0, 0, 0, 0.2);
+}
+
+/*--- Right Center ---*/
+
+.ui.right.center.popup:before {
+ top: 50%;
+ left: -0.35em;
+ bottom: auto;
+ right: auto;
+ margin-top: -0.4em;
+ -webkit-box-shadow: -1px 1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: -1px 1px 1px rgba(0, 0, 0, 0.2);
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.loading.popup {
+ display: block;
+ visibility: hidden;
+}
+
+.ui.animating.popup,
+.ui.visible.popup {
+ display: block;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Size
+---------------*/
+
+.ui.small.popup {
+ font-size: 0.75rem;
+}
+
+.ui.large.popup {
+ font-size: 1rem;
+}
+
+/*--------------
+ Colors
+---------------*/
+
+/* Inverted colors */
+
+.ui.inverted.popup {
+ background-color: #333333;
+ border: none;
+ color: #FFFFFF;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.popup .header {
+ background-color: rgba(0, 0, 0, 0.2);
+ color: #FFFFFF;
+}
+
+.ui.inverted.popup:before {
+ background-color: #333333;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+/*
+ * # Semantic - Rating
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Rating
+*******************************/
+
+.ui.rating {
+ display: inline-block;
+ font-size: 0em;
+ vertical-align: middle;
+ margin: 0em 0.5rem 0em 0em;
+}
+
+.ui.rating:last-child {
+ margin-right: 0em;
+}
+
+.ui.rating:before {
+ display: block;
+ content: '';
+ visibility: hidden;
+ clear: both;
+ height: 0;
+}
+
+/* Icon */
+
+.ui.rating .icon {
+ cursor: pointer;
+ margin: 0em;
+ width: 1em;
+ height: auto;
+ padding: 0em;
+ color: rgba(0, 0, 0, 0.15);
+ font-weight: normal;
+ font-style: normal;
+}
+
+.ui.rating .icon:before {
+ content: "\2605";
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Star
+--------------------*/
+
+.ui.star.rating .icon {
+ width: 1.2em;
+}
+
+/* Star */
+
+.ui.star.rating .icon:before {
+ content: '\f006';
+ font-family: 'Icons';
+}
+
+/* Active Star */
+
+.ui.star.rating .active.icon:before {
+ content: '\f005';
+ font-family: 'Icons';
+}
+
+/*-------------------
+ Heart
+--------------------*/
+
+.ui.heart.rating .icon {
+ width: 1.2em;
+}
+
+.ui.heart.rating .icon:before {
+ content: '\f08a';
+ font-family: 'Icons';
+}
+
+/* Active */
+
+.ui.heart.rating .active.icon:before {
+ content: '\f004';
+ font-family: 'Icons';
+}
+
+.ui.heart.rating .active.icon {
+ color: #EF404A !important;
+}
+
+/* Hovered */
+
+.ui.heart.rating .hover.icon,
+.ui.heart.rating .active.hover.icon {
+ color: #FF2733 !important;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*-------------------
+ Active
+--------------------*/
+
+/* disabled rating */
+
+.ui.disabled.rating .icon {
+ cursor: default;
+}
+
+/* active icons */
+
+.ui.rating .active.icon {
+ color: #FFCB08 !important;
+}
+
+/*-------------------
+ Hover
+--------------------*/
+
+/* rating */
+
+.ui.rating.hover .active.icon {
+ opacity: 0.5;
+}
+
+/* icon */
+
+.ui.rating .icon.hover,
+.ui.rating .icon.hover.active {
+ opacity: 1;
+ color: #FFB70A !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.small.rating .icon {
+ font-size: 0.75rem;
+}
+
+.ui.rating .icon {
+ font-size: 1rem;
+}
+
+.ui.large.rating .icon {
+ font-size: 1.5rem;
+ vertical-align: middle;
+}
+
+.ui.huge.rating .icon {
+ font-size: 2rem;
+ vertical-align: middle;
+}
+/*
+ * # Semantic - Search
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Search
+*******************************/
+
+.ui.search {
+ position: relative;
+ text-shadow: none;
+ font-style: normal;
+ font-weight: normal;
+}
+
+.ui.search input {
+ border-radius: 500rem;
+}
+
+/*--------------
+ Button
+---------------*/
+
+.ui.search > .button {
+ position: relative;
+ z-index: 2;
+ float: right;
+ margin: 0px 0px 0px -15px;
+ padding: 6px 15px 7px;
+ border-radius: 0px 15px 15px 0px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*--------------
+ Results
+---------------*/
+
+.ui.search .results {
+ display: none;
+ position: absolute;
+ z-index: 999;
+ top: 100%;
+ left: 0px;
+ overflow: hidden;
+ background-color: #FFFFFF;
+ margin-top: 0.5em;
+ width: 380px;
+ font-size: 0.875em;
+ line-height: 1.2;
+ color: #555555;
+ border-radius: 3px;
+ -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1), 0px -2px 0px 0px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1), 0px -2px 0px 0px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.search .result {
+ cursor: pointer;
+ overflow: hidden;
+ padding: 0.5em 1em;
+}
+
+.ui.search .result:first-child {
+ border-top: none;
+}
+
+.ui.search .result .image {
+ background: #F0F0F0;
+ margin-right: 10px;
+ float: left;
+ overflow: hidden;
+ border-radius: 3px;
+ width: 38px;
+ height: 38px;
+}
+
+.ui.search .result .image img {
+ display: block;
+ width: 38px;
+ height: 38px;
+}
+
+.ui.search .result .image ~ .info {
+ float: none;
+ margin-left: 50px;
+}
+
+.ui.search .result .info {
+ float: left;
+}
+
+.ui.search .result .title {
+ font-weight: bold;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.search .result .description {
+ color: rgba(0, 0, 0, 0.6);
+}
+
+.ui.search .result .price {
+ float: right;
+ color: #5BBD72;
+ font-weight: bold;
+}
+
+/*--------------
+ Message
+---------------*/
+
+.ui.search .message {
+ padding: 1em;
+}
+
+.ui.search .message .text .title {
+ margin: 0em 0em 0.5rem;
+ font-size: 1.25rem;
+ font-weight: bold;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.search .message .text .description {
+ margin: 0em;
+ font-size: 1rem;
+ color: rgba(0, 0, 0, 0.5);
+}
+
+/*--------------
+ Categories
+---------------*/
+
+.ui.search .results .category {
+ background-color: #FAFAFA;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ -webkit-transition: background 0.2s ease-in;
+ -moz-transition: background 0.2s ease-in;
+ transition: background 0.2s ease-in;
+}
+
+.ui.search .results .category:first-child {
+ border-top: none;
+}
+
+.ui.search .results .category > .name {
+ float: left;
+ padding: 12px 0px 0px 8px;
+ font-weight: bold;
+ color: #777777;
+ text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.8);
+}
+
+.ui.search .results .category .result {
+ background-color: #FFFFFF;
+ margin-left: 80px;
+ border-left: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* View All Results */
+
+.ui.search .all {
+ display: block;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ background-color: #FAFAFA;
+ height: 2em;
+ line-height: 2em;
+ color: rgba(0, 0, 0, 0.6);
+ font-weight: bold;
+ text-align: center;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.search .result:hover,
+.ui.search .category .result:hover {
+ background-color: #F8F8F8;
+}
+
+.ui.search .all:hover {
+ background-color: #F0F0F0;
+}
+
+/*--------------
+ Loading
+---------------*/
+
+.ui.search.loading .input .icon {
+ background: url(../images/loader-mini.gif) no-repeat 50% 50%;
+}
+
+.ui.search.loading .input .icon:before,
+.ui.search.loading .input .icon:after {
+ display: none;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.search .results .category.active {
+ background-color: #F1F1F1;
+}
+
+.ui.search .results .category.active > .name {
+ color: #333333;
+}
+
+.ui.search .result.active,
+.ui.search .category .result.active {
+ background-color: #FBFBFB;
+}
+
+.ui.search .result.active .title {
+ color: #000000;
+}
+
+.ui.search .result.active .description {
+ color: #555555;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/* Large */
+
+.ui.search .large.result .image,
+.ui.search .large.result .image img {
+ width: 50px;
+ height: 50px;
+}
+
+.ui.search .large.results .indented.info {
+ margin-left: 65px;
+}
+
+.ui.search .large.results .info .title {
+ font-size: 16px;
+}
+
+.ui.search .large.results .info .description {
+ font-size: 11px;
+}
+/*
+ * # Semantic - Shape
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Shape
+*******************************/
+
+.ui.shape {
+ display: inline-block;
+ position: relative;
+ -webkit-perspective: 2000px;
+ -moz-perspective: 2000px;
+ -ms-perspective: 2000px;
+ perspective: 2000px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.shape .sides {
+ -webkit-transform-style: preserve-3d;
+ -moz-transform-style: preserve-3d;
+ -ms-transform-style: preserve-3d;
+ transform-style: preserve-3d;
+}
+
+.ui.shape .side {
+ opacity: 1;
+ width: 100%;
+ margin: 0em !important;
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ -ms-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.shape .side {
+ display: none;
+}
+
+/*******************************
+ Types
+*******************************/
+
+.ui.cube.shape .side {
+ min-width: 15em;
+ height: 15em;
+ padding: 2em;
+ background-color: #E6E6E6;
+ color: rgba(0, 0, 0, 0.6);
+ -webkit-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.3);
+ box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.3);
+}
+
+.ui.cube.shape .side > .content {
+ width: 100%;
+ height: 100%;
+ display: table;
+ text-align: center;
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+}
+
+.ui.cube.shape .side > .content > div {
+ display: table-cell;
+ vertical-align: middle;
+ font-size: 2em;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.text.shape.animating .sides {
+ position: static;
+}
+
+.ui.text.shape .side {
+ white-space: nowrap;
+}
+
+.ui.text.shape .side > * {
+ white-space: normal;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Loading
+---------------*/
+
+.ui.loading.shape {
+ position: absolute;
+ top: -9999px;
+ left: -9999px;
+}
+
+/*--------------
+ Animating
+---------------*/
+
+.ui.shape .animating.side {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ z-index: 100;
+}
+
+.ui.shape .hidden.side {
+ opacity: 0.4;
+}
+
+/*--------------
+ CSS
+---------------*/
+
+.ui.shape.animating {
+ -webkit-transition: all 0.6s ease-in-out;
+ -moz-transition: all 0.6s ease-in-out;
+ transition: all 0.6s ease-in-out;
+}
+
+.ui.shape.animating .sides {
+ position: absolute;
+}
+
+.ui.shape.animating .sides {
+ -webkit-transition: all 0.6s ease-in-out;
+ -moz-transition: all 0.6s ease-in-out;
+ transition: all 0.6s ease-in-out;
+}
+
+.ui.shape.animating .side {
+ -webkit-transition: opacity 0.6s ease-in-out;
+ -moz-transition: opacity 0.6s ease-in-out;
+ transition: opacity 0.6s ease-in-out;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.shape .active.side {
+ display: block;
+}
+/*
+ * # Semantic - Sidebar
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Sidebar
+*******************************/
+
+body {
+ -webkit-transition: margin 0.3s ease, -webkit-transform 0.3s ease /*rtl:append:,
+ padding 0.3s ease*/;
+ -moz-transition: margin 0.3s ease, -moz-transform 0.3s ease /*rtl:append:,
+ padding 0.3s ease*/;
+ transition: margin 0.3s ease, transform 0.3s ease /*rtl:append:,
+ padding 0.3s ease*/;
+}
+
+.ui.sidebar {
+ position: fixed;
+ margin: 0 !important;
+ height: 100% !important;
+ border-radius: 0px !important;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -ms-overflow-y: auto;
+ overflow-y: auto;
+ top: 0px;
+ left: 0px;
+ z-index: 999;
+ -webkit-transition: margin-left 0.3s ease, margin-top 0.3s ease;
+ -moz-transition: margin-left 0.3s ease, margin-top 0.3s ease;
+ transition: margin-left 0.3s ease, margin-top 0.3s ease;
+}
+
+/*-------------------
+ Coupling
+--------------------*/
+
+body.pushed.scrolling.ui.dimmable {
+ position: static;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Direction
+--------------------*/
+
+.ui.right.very.thin.sidebar,
+.ui.right.thin.sidebar,
+.ui.right.sidebar,
+.ui.right.wide.sidebar,
+.ui.right.very.wide.sidebar {
+ left: 100%;
+ margin: 0px !important;
+}
+
+.ui.top.sidebar {
+ width: 100% !important;
+}
+
+.ui.bottom.sidebar {
+ width: 100% !important;
+ top: 100%;
+ margin: 0px !important;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.active.sidebar {
+ margin-left: 0px !important;
+}
+
+.ui.active.top.sidebar,
+.ui.active.bottom.sidebar {
+ margin-top: 0px !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Formatted
+--------------------*/
+
+.ui.styled.sidebar {
+ padding: 1em 1.5em;
+ background-color: #FFFFFF;
+ -webkit-box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1);
+ box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1);
+}
+
+.ui.styled.very.thin.sidebar {
+ padding: 0.5em;
+}
+
+.ui.styled.thin.sidebar {
+ padding: 1em;
+}
+
+/*-------------------
+ Floating
+--------------------*/
+
+.ui.floating.sidebar {
+ -webkit-box-shadow: 2px 0px 2px rgba(0, 0, 0, 0.2);
+ box-shadow: 2px 0px 2px rgba(0, 0, 0, 0.2);
+}
+
+.ui.right.floating.sidebar {
+ -webkit-box-shadow: -2px 0px 2px rgba(0, 0, 0, 0.2);
+ box-shadow: -2px 0px 2px rgba(0, 0, 0, 0.2);
+}
+
+.ui.top.floating.sidebar {
+ -webkit-box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.2);
+ box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.2);
+}
+
+.ui.bottom.floating.sidebar {
+ -webkit-box-shadow: 0px -4px 4px rgba(0, 0, 0, 0.2);
+ box-shadow: 0px -4px 4px rgba(0, 0, 0, 0.2);
+}
+
+/*-------------------
+ Width
+--------------------*/
+
+/* Very Thin */
+
+.ui.very.thin.sidebar {
+ width: 60px !important;
+ margin-left: -60px !important;
+}
+
+.ui.active.very.thin.sidebar {
+ margin-left: 0px !important;
+}
+
+.ui.active.right.very.thin.sidebar {
+ margin-left: -60px !important;
+}
+
+/* Thin */
+
+.ui.thin.sidebar {
+ width: 200px !important;
+ margin-left: -200px !important;
+}
+
+.ui.active.thin.sidebar {
+ margin-left: 0px !important;
+}
+
+.ui.active.right.thin.sidebar {
+ margin-left: -200px !important;
+}
+
+/* Standard */
+
+.ui.sidebar {
+ width: 275px !important;
+ margin-left: -275px !important;
+}
+
+.ui.active.sidebar {
+ margin-left: 0px !important;
+}
+
+.ui.active.right.sidebar {
+ margin-left: -275px !important;
+}
+
+/* Wide */
+
+.ui.wide.sidebar {
+ width: 350px !important;
+ margin-left: -350px !important;
+}
+
+.ui.active.wide.sidebar {
+ margin-left: 0px !important;
+}
+
+.ui.active.right.wide.sidebar {
+ margin-left: -350px !important;
+}
+
+/* Very Wide */
+
+.ui.very.wide.sidebar {
+ width: 475px !important;
+ margin-left: -475px !important;
+}
+
+.ui.active.very.wide.sidebar {
+ margin-left: 0px !important;
+}
+
+.ui.active.right.very.wide.sidebar {
+ margin-left: -475px !important;
+}
+
+/*-------------------
+ Height
+--------------------*/
+
+/* Standard */
+
+.ui.top.sidebar {
+ margin: -40px 0px 0px 0px !important;
+}
+
+.ui.top.sidebar,
+.ui.bottom.sidebar {
+ height: 40px !important;
+}
+
+.ui.active.bottom.sidebar {
+ margin-top: -40px !important;
+}
+/*
+ * # Semantic - Tab
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ UI Tabs
+*******************************/
+
+.ui.tab {
+ display: none;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------------
+ Active
+---------------------*/
+
+.ui.tab.active,
+.ui.tab.open {
+ display: block;
+}
+
+/*--------------------
+ Loading
+---------------------*/
+
+.ui.tab.loading {
+ position: relative;
+ overflow: hidden;
+ display: block;
+ min-height: 250px;
+ text-indent: -10000px;
+}
+
+.ui.tab.loading * {
+ position: relative !important;
+ left: -10000px !important;
+}
+
+.ui.tab.loading:after {
+ position: absolute;
+ top: 50px;
+ left: 50%;
+ content: 'Loading...';
+ margin-left: -32px;
+ text-indent: 5px;
+ color: rgba(0, 0, 0, 0.4);
+ width: 100%;
+ height: 100%;
+ padding-top: 75px;
+ background: url(../images/loader-large.gif) no-repeat 0px 0px;
+ visibility: visible;
+}
+/*******************************
+ Semantic - Transition
+ Author: Jack Lukic
+
+ CSS animation definitions for
+ transition module
+
+*******************************/
+
+/*
+ Some transitions adapted from Animate CSS
+ https://github.com/daneden/animate.css
+*/
+
+.ui.transition {
+ -webkit-animation-iteration-count: 1;
+ -moz-animation-iteration-count: 1;
+ animation-iteration-count: 1;
+ -webkit-animation-duration: 1s;
+ -moz-animation-duration: 1s;
+ animation-duration: 1s;
+ -webkit-animation-timing-function: ease;
+ -moz-animation-timing-function: ease;
+ animation-timing-function: ease;
+ -webkit-animation-fill-mode: both;
+ -moz-animation-fill-mode: both;
+ animation-fill-mode: both;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.animating.transition {
+ display: block;
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ -ms-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-transform: translateZ(0);
+ -moz-transform: translateZ(0);
+ -ms-transform: translateZ(0);
+ transform: translateZ(0);
+}
+
+/* Loading */
+
+.ui.loading.transition {
+ position: absolute;
+ top: -999999px;
+ left: -99999px;
+}
+
+/* Hidden */
+
+.ui.hidden.transition {
+ display: none;
+}
+
+/* Visible */
+
+.ui.visible.transition {
+ display: block;
+ visibility: visible;
+}
+
+/* Disabled */
+
+.ui.disabled.transition {
+ -webkit-animation-play-state: paused;
+ -moz-animation-play-state: paused;
+ animation-play-state: paused;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.looping.transition {
+ -webkit-animation-iteration-count: infinite;
+ -moz-animation-iteration-count: infinite;
+ animation-iteration-count: infinite;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Emphasis
+---------------*/
+
+.ui.flash.transition {
+ -webkit-animation-name: flash;
+ -moz-animation-name: flash;
+ animation-name: flash;
+}
+
+.ui.shake.transition {
+ -webkit-animation-name: shake;
+ -moz-animation-name: shake;
+ animation-name: shake;
+}
+
+.ui.bounce.transition {
+ -webkit-animation-name: bounce;
+ -moz-animation-name: bounce;
+ animation-name: bounce;
+}
+
+.ui.tada.transition {
+ -webkit-animation-name: tada;
+ -moz-animation-name: tada;
+ animation-name: tada;
+}
+
+/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
+
+.ui.pulse.transition {
+ -webkit-animation-name: pulse;
+ -moz-animation-name: pulse;
+ animation-name: pulse;
+}
+
+/*--------------
+ Flips
+---------------*/
+
+.ui.flip.transition.in,
+.ui.flip.transition.out {
+ -webkit-perspective: 2000px;
+ -moz-perspective: 2000px;
+ -ms-perspective: 2000px;
+ perspective: 2000px;
+}
+
+.ui.horizontal.flip.transition.in,
+.ui.horizontal.flip.transition.out {
+ -webkit-animation-name: horizontalFlip;
+ -moz-animation-name: horizontalFlip;
+ animation-name: horizontalFlip;
+}
+
+.ui.horizontal.flip.transition.out {
+ -webkit-animation-name: horizontalFlipOut;
+ -moz-animation-name: horizontalFlipOut;
+ animation-name: horizontalFlipOut;
+}
+
+.ui.vertical.flip.transition.in,
+.ui.vertical.flip.transition.out {
+ -webkit-animation-name: verticalFlip;
+ -moz-animation-name: verticalFlip;
+ animation-name: verticalFlip;
+}
+
+.ui.vertical.flip.transition.out {
+ -webkit-animation-name: verticalFlipOut;
+ -moz-animation-name: verticalFlipOut;
+ animation-name: verticalFlipOut;
+}
+
+/*--------------
+ Fades
+---------------*/
+
+.ui.fade.transition.in {
+ -webkit-animation-name: fade;
+ -moz-animation-name: fade;
+ animation-name: fade;
+}
+
+.ui.fade.transition.out {
+ -webkit-animation-name: fadeOut;
+ -moz-animation-name: fadeOut;
+ animation-name: fadeOut;
+}
+
+.ui.fade.up.transition.in {
+ -webkit-animation-name: fadeUp;
+ -moz-animation-name: fadeUp;
+ animation-name: fadeUp;
+}
+
+.ui.fade.up.transition.out {
+ -webkit-animation-name: fadeUpOut;
+ -moz-animation-name: fadeUpOut;
+ animation-name: fadeUpOut;
+}
+
+.ui.fade.down.transition.in {
+ -webkit-animation-name: fadeDown;
+ -moz-animation-name: fadeDown;
+ animation-name: fadeDown;
+}
+
+.ui.fade.down.transition.out {
+ -webkit-animation-name: fadeDownOut;
+ -moz-animation-name: fadeDownOut;
+ animation-name: fadeDownOut;
+}
+
+/*--------------
+ Scale
+---------------*/
+
+.ui.scale.transition.in {
+ -webkit-animation-name: scale;
+ -moz-animation-name: scale;
+ animation-name: scale;
+}
+
+.ui.scale.transition.out {
+ -webkit-animation-name: scaleOut;
+ -moz-animation-name: scaleOut;
+ animation-name: scaleOut;
+}
+
+/*--------------
+ Slide
+---------------*/
+
+.ui.slide.down.transition.in {
+ -webkit-animation-name: slide;
+ -moz-animation-name: slide;
+ animation-name: slide;
+ -moz-transform-origin: 50% 0%;
+ transform-origin: 50% 0%;
+ -ms-transform-origin: 50% 0%;
+ -webkit-transform-origin: 50% 0%;
+}
+
+.ui.slide.down.transition.out {
+ -webkit-animation-name: slideOut;
+ -moz-animation-name: slideOut;
+ animation-name: slideOut;
+ -webkit-transform-origin: 50% 0%;
+ -moz-transform-origin: 50% 0%;
+ -ms-transform-origin: 50% 0%;
+ transform-origin: 50% 0%;
+}
+
+.ui.slide.up.transition.in {
+ -webkit-animation-name: slide;
+ -moz-animation-name: slide;
+ animation-name: slide;
+ -webkit-transform-origin: 50% 100%;
+ -moz-transform-origin: 50% 100%;
+ -ms-transform-origin: 50% 100%;
+ transform-origin: 50% 100%;
+}
+
+.ui.slide.up.transition.out {
+ -webkit-animation-name: slideOut;
+ -moz-animation-name: slideOut;
+ animation-name: slideOut;
+ -webkit-transform-origin: 50% 100%;
+ -moz-transform-origin: 50% 100%;
+ -ms-transform-origin: 50% 100%;
+ transform-origin: 50% 100%;
+}
+
+@-webkit-keyframes slide {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+}
+
+@-moz-keyframes slide {
+ 0% {
+ opacity: 0;
+ -moz-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+}
+
+@keyframes slide {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ -moz-transform: scaleY(0);
+ -ms-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ -moz-transform: scaleY(1);
+ -ms-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+}
+
+@-webkit-keyframes slideOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+}
+
+@-moz-keyframes slideOut {
+ 0% {
+ opacity: 1;
+ -moz-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+}
+
+@keyframes slideOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ -moz-transform: scaleY(1);
+ -ms-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ -moz-transform: scaleY(0);
+ -ms-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+}
+
+/*******************************
+ Animations
+*******************************/
+
+/*--------------
+ Emphasis
+---------------*/
+
+/* Flash */
+
+@-webkit-keyframes flash {
+ 0%, 50%, 100% {
+ opacity: 1;
+ }
+
+ 25%, 75% {
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes flash {
+ 0%, 50%, 100% {
+ opacity: 1;
+ }
+
+ 25%, 75% {
+ opacity: 0;
+ }
+}
+
+@keyframes flash {
+ 0%, 50%, 100% {
+ opacity: 1;
+ }
+
+ 25%, 75% {
+ opacity: 0;
+ }
+}
+
+/* Shake */
+
+@-webkit-keyframes shake {
+ 0%, 100% {
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ }
+
+ 10%, 30%, 50%, 70%, 90% {
+ -webkit-transform: translateX(-10px);
+ transform: translateX(-10px);
+ }
+
+ 20%, 40%, 60%, 80% {
+ -webkit-transform: translateX(10px);
+ transform: translateX(10px);
+ }
+}
+
+@-moz-keyframes shake {
+ 0%, 100% {
+ -moz-transform: translateX(0);
+ transform: translateX(0);
+ }
+
+ 10%, 30%, 50%, 70%, 90% {
+ -moz-transform: translateX(-10px);
+ transform: translateX(-10px);
+ }
+
+ 20%, 40%, 60%, 80% {
+ -moz-transform: translateX(10px);
+ transform: translateX(10px);
+ }
+}
+
+@keyframes shake {
+ 0%, 100% {
+ -webkit-transform: translateX(0);
+ -moz-transform: translateX(0);
+ -ms-transform: translateX(0);
+ transform: translateX(0);
+ }
+
+ 10%, 30%, 50%, 70%, 90% {
+ -webkit-transform: translateX(-10px);
+ -moz-transform: translateX(-10px);
+ -ms-transform: translateX(-10px);
+ transform: translateX(-10px);
+ }
+
+ 20%, 40%, 60%, 80% {
+ -webkit-transform: translateX(10px);
+ -moz-transform: translateX(10px);
+ -ms-transform: translateX(10px);
+ transform: translateX(10px);
+ }
+}
+
+/* Bounce */
+
+@-webkit-keyframes bounce {
+ 0%, 20%, 50%, 80%, 100% {
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 40% {
+ -webkit-transform: translateY(-30px);
+ transform: translateY(-30px);
+ }
+
+ 60% {
+ -webkit-transform: translateY(-15px);
+ transform: translateY(-15px);
+ }
+}
+
+@-moz-keyframes bounce {
+ 0%, 20%, 50%, 80%, 100% {
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 40% {
+ -moz-transform: translateY(-30px);
+ transform: translateY(-30px);
+ }
+
+ 60% {
+ -moz-transform: translateY(-15px);
+ transform: translateY(-15px);
+ }
+}
+
+@keyframes bounce {
+ 0%, 20%, 50%, 80%, 100% {
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 40% {
+ -webkit-transform: translateY(-30px);
+ -moz-transform: translateY(-30px);
+ -ms-transform: translateY(-30px);
+ transform: translateY(-30px);
+ }
+
+ 60% {
+ -webkit-transform: translateY(-15px);
+ -moz-transform: translateY(-15px);
+ -ms-transform: translateY(-15px);
+ transform: translateY(-15px);
+ }
+}
+
+/* Tada */
+
+@-webkit-keyframes tada {
+ 0% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 10%, 20% {
+ -webkit-transform: scale(0.9) rotate(-3deg);
+ transform: scale(0.9) rotate(-3deg);
+ }
+
+ 30%, 50%, 70%, 90% {
+ -webkit-transform: scale(1.1) rotate(3deg);
+ transform: scale(1.1) rotate(3deg);
+ }
+
+ 40%, 60%, 80% {
+ -webkit-transform: scale(1.1) rotate(-3deg);
+ transform: scale(1.1) rotate(-3deg);
+ }
+
+ 100% {
+ -webkit-transform: scale(1) rotate(0);
+ transform: scale(1) rotate(0);
+ }
+}
+
+@-moz-keyframes tada {
+ 0% {
+ -moz-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 10%, 20% {
+ -moz-transform: scale(0.9) rotate(-3deg);
+ transform: scale(0.9) rotate(-3deg);
+ }
+
+ 30%, 50%, 70%, 90% {
+ -moz-transform: scale(1.1) rotate(3deg);
+ transform: scale(1.1) rotate(3deg);
+ }
+
+ 40%, 60%, 80% {
+ -moz-transform: scale(1.1) rotate(-3deg);
+ transform: scale(1.1) rotate(-3deg);
+ }
+
+ 100% {
+ -moz-transform: scale(1) rotate(0);
+ transform: scale(1) rotate(0);
+ }
+}
+
+@keyframes tada {
+ 0% {
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 10%, 20% {
+ -webkit-transform: scale(0.9) rotate(-3deg);
+ -moz-transform: scale(0.9) rotate(-3deg);
+ -ms-transform: scale(0.9) rotate(-3deg);
+ transform: scale(0.9) rotate(-3deg);
+ }
+
+ 30%, 50%, 70%, 90% {
+ -webkit-transform: scale(1.1) rotate(3deg);
+ -moz-transform: scale(1.1) rotate(3deg);
+ -ms-transform: scale(1.1) rotate(3deg);
+ transform: scale(1.1) rotate(3deg);
+ }
+
+ 40%, 60%, 80% {
+ -webkit-transform: scale(1.1) rotate(-3deg);
+ -moz-transform: scale(1.1) rotate(-3deg);
+ -ms-transform: scale(1.1) rotate(-3deg);
+ transform: scale(1.1) rotate(-3deg);
+ }
+
+ 100% {
+ -webkit-transform: scale(1) rotate(0);
+ -moz-transform: scale(1) rotate(0);
+ -ms-transform: scale(1) rotate(0);
+ transform: scale(1) rotate(0);
+ }
+}
+
+/* Pulse */
+
+@-webkit-keyframes pulse {
+ 0% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+
+ 50% {
+ -webkit-transform: scale(0.9);
+ transform: scale(0.9);
+ opacity: 0.7;
+ }
+
+ 100% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes pulse {
+ 0% {
+ -moz-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+
+ 50% {
+ -moz-transform: scale(0.9);
+ transform: scale(0.9);
+ opacity: 0.7;
+ }
+
+ 100% {
+ -moz-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+@keyframes pulse {
+ 0% {
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+
+ 50% {
+ -webkit-transform: scale(0.9);
+ -moz-transform: scale(0.9);
+ -ms-transform: scale(0.9);
+ transform: scale(0.9);
+ opacity: 0.7;
+ }
+
+ 100% {
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+/*--------------
+ Flips
+---------------*/
+
+/* Horizontal */
+
+@-webkit-keyframes horizontalFlip {
+ 0% {
+ -webkit-transform: rotateY(-90deg);
+ transform: rotateY(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes horizontalFlip {
+ 0% {
+ -moz-transform: rotateY(-90deg);
+ transform: rotateY(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+}
+
+@keyframes horizontalFlip {
+ 0% {
+ -webkit-transform: rotateY(-90deg);
+ -moz-transform: rotateY(-90deg);
+ -ms-transform: rotateY(-90deg);
+ transform: rotateY(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: rotateY(0deg);
+ -moz-transform: rotateY(0deg);
+ -ms-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+}
+
+/* Horizontal */
+
+@-webkit-keyframes horizontalFlipOut {
+ 0% {
+ -webkit-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: rotateY(90deg);
+ transform: rotateY(90deg);
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes horizontalFlipOut {
+ 0% {
+ -moz-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -moz-transform: rotateY(90deg);
+ transform: rotateY(90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes horizontalFlipOut {
+ 0% {
+ -webkit-transform: rotateY(0deg);
+ -moz-transform: rotateY(0deg);
+ -ms-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: rotateY(90deg);
+ -moz-transform: rotateY(90deg);
+ -ms-transform: rotateY(90deg);
+ transform: rotateY(90deg);
+ opacity: 0;
+ }
+}
+
+/* Vertical */
+
+@-webkit-keyframes verticalFlip {
+ 0% {
+ -webkit-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes verticalFlip {
+ 0% {
+ -moz-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+}
+
+@keyframes verticalFlip {
+ 0% {
+ -webkit-transform: rotateX(-90deg);
+ -moz-transform: rotateX(-90deg);
+ -ms-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: rotateX(0deg);
+ -moz-transform: rotateX(0deg);
+ -ms-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+}
+
+@-webkit-keyframes verticalFlipOut {
+ 0% {
+ -webkit-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes verticalFlipOut {
+ 0% {
+ -moz-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -moz-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes verticalFlipOut {
+ 0% {
+ -webkit-transform: rotateX(0deg);
+ -moz-transform: rotateX(0deg);
+ -ms-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: rotateX(-90deg);
+ -moz-transform: rotateX(-90deg);
+ -ms-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+}
+
+/*--------------
+ Fades
+---------------*/
+
+/* Fade */
+
+@-webkit-keyframes fade {
+ 0% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes fade {
+ 0% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ }
+}
+
+@keyframes fade {
+ 0% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ }
+}
+
+@-webkit-keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+}
+
+@keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+}
+
+/* Fade Up */
+
+@-webkit-keyframes fadeUp {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@-moz-keyframes fadeUp {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@keyframes fadeUp {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ -moz-transform: translateY(20px);
+ -ms-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@-webkit-keyframes fadeUpOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+}
+
+@-moz-keyframes fadeUpOut {
+ 0% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+}
+
+@keyframes fadeUpOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ -moz-transform: translateY(20px);
+ -ms-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+}
+
+/* Fade Down */
+
+@-webkit-keyframes fadeDown {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@-moz-keyframes fadeDown {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@keyframes fadeDown {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ -moz-transform: translateY(-20px);
+ -ms-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@-webkit-keyframes fadeDownOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+}
+
+@-moz-keyframes fadeDownOut {
+ 0% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+}
+
+@keyframes fadeDownOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ -moz-transform: translateY(-20px);
+ -ms-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+}
+
+/*--------------
+ Scale
+---------------*/
+
+/* Scale */
+
+@-webkit-keyframes scale {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+@-moz-keyframes scale {
+ 0% {
+ opacity: 0;
+ -moz-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+@keyframes scale {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ -moz-transform: scale(0.7);
+ -ms-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+@-webkit-keyframes scaleOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+}
+
+@-moz-keyframes scaleOut {
+ 0% {
+ opacity: 1;
+ -moz-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+}
+
+@keyframes scaleOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ -moz-transform: scale(0.7);
+ -ms-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+}
+/*
+ * # Semantic - Video
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Video
+*******************************/
+
+.ui.video {
+ position: relative;
+ max-width: 100%;
+}
+
+/*--------------
+ Content
+---------------*/
+
+/* Placeholder Image */
+
+.ui.video .placeholder {
+ background-color: #333333;
+}
+
+/* Play Icon Overlay */
+
+.ui.video .play {
+ cursor: pointer;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ z-index: 10;
+ width: 100%;
+ height: 100%;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
+ filter: alpha(opacity=60);
+ opacity: 0.6;
+ -webkit-transition: opacity 0.3s;
+ -moz-transition: opacity 0.3s;
+ transition: opacity 0.3s;
+}
+
+.ui.video .play.icon:before {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ z-index: 11;
+ font-size: 6rem;
+ margin: -3rem 0em 0em -3rem;
+ color: #FFFFFF;
+ text-shadow: 0px 3px 3px rgba(0, 0, 0, 0.4);
+}
+
+.ui.video .placeholder {
+ display: block;
+ width: 100%;
+ height: 100%;
+}
+
+/* IFrame Embed */
+
+.ui.video .embed {
+ display: none;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.video .play:hover {
+ opacity: 1;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.video.active .play,
+.ui.video.active .placeholder {
+ display: none;
+}
+
+.ui.video.active .embed {
+ display: block;
+}
+/*
+ * # Semantic Comment View
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: April 17 2013
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------
+ Comments
+---------------*/
+
+.ui.comments a {
+ cursor: pointer;
+}
+
+/*--------------
+ Comment
+---------------*/
+
+.ui.comments .comment {
+ position: relative;
+ margin-top: 0.5em;
+ padding-top: 0.5em;
+}
+
+.ui.comments .comment:first-child {
+ margin-top: 0em;
+ padding-top: 0em;
+}
+
+/*--------------------
+ Avatar (Optional)
+---------------------*/
+
+.ui.comments .comment .avatar {
+ display: block;
+ float: left;
+ width: 4em;
+}
+
+.ui.comments .comment .avatar img {
+ display: block;
+ margin: 0em auto;
+ width: 3em;
+ height: 3em;
+ border-radius: 500px;
+}
+
+/*--------------
+ Content
+---------------*/
+
+.ui.comments .comment > .content,
+.ui.comments .comment > .avatar {
+ display: block;
+}
+
+.ui.comments .comment .avatar ~ .content {
+ padding: 0em 1em;
+}
+
+/* If there is an avatar move content over */
+
+.ui.comments .comment > .avatar ~ .content {
+ padding-top: 0.25em;
+ margin-left: 3.5em;
+}
+
+.ui.comments .comment .metadata {
+ display: inline-block;
+ margin-left: 0.3em;
+ color: rgba(0, 0, 0, 0.4);
+}
+
+.ui.comments .comment .metadata > * {
+ display: inline-block;
+ margin: 0em 0.3em 0em 0em;
+}
+
+/*--------------------
+ Comment Text
+---------------------*/
+
+.ui.comments .comment .text {
+ margin: 0.25em 0em 0.5em;
+ word-wrap: break-word;
+}
+
+/*--------------------
+ User Actions
+---------------------*/
+
+.ui.comments .comment .actions {
+ font-size: 0.9em;
+}
+
+.ui.comments .comment .actions a {
+ display: inline-block;
+ margin: 0em 0.3em 0em 0em;
+ color: rgba(0, 0, 0, 0.3);
+}
+
+.ui.comments .comment .actions a.active,
+.ui.comments .comment .actions a:hover {
+ color: rgba(0, 0, 0, 0.6);
+}
+
+/*--------------------
+ Reply Form
+---------------------*/
+
+.ui.comments .reply.form {
+ margin-top: 0.75em;
+ width: 100%;
+ max-width: 30em;
+}
+
+.ui.comments .comment .reply.form {
+ margin-left: 2em;
+}
+
+.ui.comments > .reply.form {
+ margin-top: 1.5em;
+ max-width: 40em;
+}
+
+.ui.comments .reply.form textarea {
+ height: 12em;
+}
+
+/*--------------------
+ Nested Comments
+---------------------*/
+
+.ui.comments .comment .comments {
+ margin-top: 0.5em;
+ padding-top: 0.5em;
+ padding-bottom: 1em;
+}
+
+.ui.comments .comment .comments:before {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+}
+
+/* One Deep */
+
+.ui.comments > .comment .comments {
+ margin-left: 2em;
+}
+
+/* Two Deep */
+
+.ui.comments > .comment > .comments > .comment > .comments {
+ margin-left: 1.75em;
+}
+
+/* Three Deep */
+
+.ui.comments > .comment > .comments > .comment > .comments > .comment > .comments {
+ margin-left: 1.5em;
+}
+
+/* Four Deep or more */
+
+.ui.comments > .comment > .comments > .comment > .comments > .comment > .comments > .comment .comments {
+ margin-left: 0.5em;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------------
+ Threaded
+---------------------*/
+
+.ui.threaded.comments .comment .comments {
+ margin-left: 2em !important;
+ padding-left: 2em !important;
+ -webkit-box-shadow: -1px 0px 0px rgba(0, 0, 0, 0.05);
+ box-shadow: -1px 0px 0px rgba(0, 0, 0, 0.05);
+}
+
+/*--------------------
+ Minimal
+---------------------*/
+
+.ui.minimal.comments .comment .actions {
+ opacity: 0;
+ -webkit-transition: opacity 0.1s ease-out;
+ -moz-transition: opacity 0.1s ease-out;
+ transition: opacity 0.1s ease-out;
+ -webkit-transition-delay: 0.1s;
+ -moz-transition-delay: 0.1s;
+ transition-delay: 0.1s;
+}
+
+.ui.minimal.comments .comment > .content:hover > .actions {
+ opacity: 1;
+}
+
+/*--------------------
+ Sizes
+---------------------*/
+
+.ui.small.comments {
+ font-size: 0.875em;
+}
+/*
+ * # Activity Feed View
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: May 22, 2013
+ */
+
+/*******************************
+ Activity Feed
+*******************************/
+
+.ui.feed a {
+ cursor: pointer;
+}
+
+.ui.feed,
+.ui.feed .event,
+.ui.feed .label,
+.ui.feed .content,
+.ui.feed .extra {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*******************************
+ Content
+*******************************/
+
+/* Event */
+
+.ui.feed .event {
+ width: 100%;
+ display: table;
+ padding: 1em;
+}
+
+.ui.feed .event:first-child {
+ border-top: 0px;
+}
+
+.ui.feed .event:last-child {
+ margin-bottom: 1em;
+}
+
+/* Event Label */
+
+.ui.feed .label {
+ width: 3em;
+ display: table-cell;
+ vertical-align: top;
+ text-align: left;
+}
+
+.ui.feed .label .icon {
+ font-size: 1.5em;
+ padding: 0.5em;
+ margin: 0em;
+}
+
+.ui.feed .label img {
+ width: 3em;
+ margin: 0em;
+ border-radius: 50em;
+}
+
+.ui.feed .label + .content {
+ padding: 0.75em 1em 0em;
+}
+
+/* Content */
+
+.ui.feed .content {
+ display: table-cell;
+ vertical-align: top;
+ text-align: left;
+ word-wrap: break-word;
+}
+
+/* Date */
+
+.ui.feed .content .date {
+ float: right;
+ padding-left: 1em;
+ color: rgba(0, 0, 0, 0.4);
+}
+
+/* Summary */
+
+.ui.feed .content .summary {
+ color: rgba(0, 0, 0, 0.75);
+}
+
+.ui.feed .content .summary img {
+ display: inline-block;
+ margin-right: 0.25em;
+ width: 4em;
+ border-radius: 500px;
+}
+
+/* Additional Information */
+
+.ui.feed .content .extra {
+ margin: 1em 0em 0em;
+ padding: 0.5em 0em 0em;
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.feed .content .extra.images img {
+ display: inline-block;
+ margin-right: 0.25em;
+ width: 6em;
+}
+
+.ui.feed .content .extra.text {
+ padding: 0.5em 1em;
+ border-left: 0.2em solid rgba(0, 0, 0, 0.1);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.small.feed {
+ font-size: 0.875em;
+}
+
+.ui.small.feed .label img {
+ width: 2.5em;
+}
+
+.ui.small.feed .label .icon {
+ font-size: 1.25em;
+}
+
+.ui.feed .event {
+ padding: 0.75em 0em;
+}
+
+.ui.small.feed .label + .content {
+ padding: 0.5em 0.5em 0;
+}
+
+.ui.small.feed .content .extra.images img {
+ width: 5em;
+}
+
+.ui.small.feed .content .extra {
+ margin: 0.5em 0em 0em;
+}
+
+.ui.small.feed .content .extra.text {
+ padding: 0.25em 0.5em;
+}
+/*
+ * # Semantic Item View
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: April 17 2013
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------
+ Items
+---------------*/
+
+.ui.items {
+ margin: 1em 0em 0em;
+}
+
+.ui.items:first-child {
+ margin-top: 0em;
+}
+
+.ui.items:last-child {
+ margin-bottom: -1em;
+}
+
+/* Force Clearing */
+
+.ui.items:after {
+ display: block;
+ content: ' ';
+ height: 0px;
+ clear: both;
+ overflow: hidden;
+ visibility: hidden;
+}
+
+/*--------------
+ Item
+---------------*/
+
+.ui.items > .row > .item,
+.ui.items > .item {
+ display: block;
+ float: left;
+ position: relative;
+ top: 0px;
+ width: 316px;
+ min-height: 375px;
+ margin: 0em 0.5em 2.5em;
+ padding: 0em;
+ background-color: #FFFFFF;
+ line-height: 1.2;
+ font-size: 1em;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ border-bottom: 0.2em solid rgba(0, 0, 0, 0.2);
+ border-radius: 0.33em;
+ -webkit-transition: -webkit-box-shadow 0.2s ease;
+ -moz-transition: box-shadow 0.2s ease;
+ transition: box-shadow 0.2s ease;
+ padding: 0.5em;
+}
+
+.ui.items a.item,
+.ui.items .item a {
+ cursor: pointer;
+}
+
+.ui.items .item,
+.ui.items .item > .image,
+.ui.items .item > .image .overlay,
+.ui.items .item > .content,
+.ui.items .item > .content > .meta,
+.ui.items .item > .content > .extra {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*--------------
+ Images
+---------------*/
+
+.ui.items .item > .image {
+ display: block;
+ position: relative;
+ background-color: rgba(0, 0, 0, 0.05);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ border-radius: 0.2em;
+}
+
+.ui.items .item > .image > img {
+ display: block;
+ width: 100%;
+}
+
+/*--------------
+ Content
+---------------*/
+
+.ui.items .item > .content {
+ padding: 0.75em 0.5em;
+}
+
+.ui.items .item > .content > .name {
+ display: block;
+ font-size: 1.25em;
+ font-weight: bold;
+ margin-bottom: 0.2em;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.items .item > .content > .description {
+ clear: both;
+ margin: 0em 0em;
+ color: rgba(0, 0, 0, 0.45);
+}
+
+.ui.items .item > .content > .description p {
+ margin: 0em 0em 0.2em;
+}
+
+.ui.items .item > .content > .description p:last-child {
+ margin-bottom: 0em;
+}
+
+/*--------------
+ Meta
+---------------*/
+
+.ui.items .item .meta {
+ float: right;
+ color: rgba(0, 0, 0, 0.35);
+}
+
+.ui.items .item > .content > .meta + .name {
+ float: left;
+}
+
+/*--------------
+ Labels
+---------------*/
+
+/*-----star----- */
+
+/* hover */
+
+.ui.items .item .star.label:hover::after {
+ border-right-color: #F6EFC3;
+}
+
+.ui.items .item .star.label:hover::after {
+ border-top-color: #F6EFC3;
+}
+
+.ui.items .item .star.label:hover .icon {
+ color: #ac9400;
+}
+
+/* active */
+
+.ui.items .item .star.label.active::after {
+ border-right-color: #F6EFC3;
+}
+
+.ui.items .item .star.label.active::after {
+ border-top-color: #F6EFC3;
+}
+
+.ui.items .item .star.label.active .icon {
+ color: #ac9400;
+}
+
+/*-----like----- */
+
+/* hover */
+
+.ui.items .item .like.label:hover::after {
+ border-right-color: #F5E1E2;
+}
+
+.ui.items .item .like.label.active::after {
+ border-top-color: #F5E1E2;
+}
+
+.ui.items .item .like.label:hover .icon {
+ color: #ef404a;
+}
+
+/* active */
+
+.ui.items .item .like.label.active::after {
+ border-right-color: #F5E1E2;
+}
+
+.ui.items .item .like.label.active::after {
+ border-top-color: #F5E1E2;
+}
+
+.ui.items .item .like.label.active .icon {
+ color: #ef404a;
+}
+
+/*--------------
+ Extra
+---------------*/
+
+.ui.items .item .extra {
+ position: absolute;
+ width: 100%;
+ padding: 0em 0.5em;
+ bottom: -2em;
+ left: 0em;
+ height: 1.5em;
+ color: rgba(0, 0, 0, 0.25);
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+.ui.items .item .extra > img {
+ display: inline-block;
+ border-radius: 500px 500px 500px 500px;
+ margin-right: 0.25em;
+ vertical-align: middle;
+ width: 2em;
+}
+
+.ui.items .item .extra .left {
+ float: left;
+}
+
+.ui.items .item .extra .right {
+ float: right;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.items .item:hover {
+ cursor: pointer;
+ z-index: 5;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2);
+}
+
+.ui.items .item:hover .extra {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.items .item:nth-of-type(6n+1):hover {
+ border-bottom-color: #6ECFF5 !important;
+}
+
+.ui.items .item:nth-of-type(6n+2):hover {
+ border-bottom-color: #5C6166 !important;
+}
+
+.ui.items .item:nth-of-type(6n+3):hover {
+ border-bottom-color: #A1CF64 !important;
+}
+
+.ui.items .item:nth-of-type(6n+4):hover {
+ border-bottom-color: #D95C5C !important;
+}
+
+.ui.items .item:nth-of-type(6n+5):hover {
+ border-bottom-color: #00B5AD !important;
+}
+
+.ui.items .item:nth-of-type(6n+6):hover {
+ border-bottom-color: #564F8A !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Connected
+---------------*/
+
+.ui.connected.items {
+ display: table;
+ width: 100%;
+ margin-left: 0em !important;
+ margin-right: 0em !important;
+}
+
+.ui.connected.items > .row > .item,
+.ui.connected.items > .item {
+ float: none;
+ display: table-cell;
+ vertical-align: top;
+ height: auto;
+ border-radius: 0px;
+ margin: 0em;
+ width: 33.33%;
+}
+
+.ui.connected.items > .row {
+ display: table;
+ margin: 0.5em 0em;
+}
+
+.ui.connected.items > .row:first-child {
+ margin-top: 0em;
+}
+
+/* Borders */
+
+.ui.connected.items > .item,
+.ui.connected.items > .row:last-child > .item {
+ border-bottom: 0.2em solid rgba(0, 0, 0, 0.2);
+}
+
+.ui.connected.items > .row:last-child > .item:first-child,
+.ui.connected.items > .item:first-child {
+ border-radius: 0em 0em 0em 0.33em;
+}
+
+.ui.connected.items > .row:last-child > .item:last-child,
+.ui.connected.items > .item:last-child {
+ border-radius: 0em 0em 0.33em 0em;
+}
+
+/* Hover */
+
+.ui.connected.items .item:hover {
+ border-bottom-width: 0.2em;
+}
+
+/* Item Count */
+
+.ui.one.connected.items > .row > .item,
+.ui.one.connected.items > .item {
+ width: 50%;
+ padding-left: 2%;
+ padding-right: 2%;
+}
+
+.ui.two.connected.items > .row > .item,
+.ui.two.connected.items > .item {
+ width: 50%;
+ padding-left: 1%;
+ padding-right: 1%;
+}
+
+.ui.three.connected.items > .row > .item,
+.ui.three.connected.items > .item {
+ width: 33.333%;
+ padding-left: 1%;
+ padding-right: 1%;
+}
+
+.ui.four.connected.items > .row > .item,
+.ui.four.connected.items > .item {
+ width: 25%;
+ padding-left: 0.5%;
+ padding-right: 0.5%;
+}
+
+.ui.five.connected.items > .row > .item,
+.ui.five.connected.items > .item {
+ width: 20%;
+ padding-left: 0.5%;
+ padding-right: 0.5%;
+}
+
+.ui.six.connected.items > .row > .item,
+.ui.six.connected.items > .item {
+ width: 16.66%;
+ padding-left: 0.5%;
+ padding-right: 0.5%;
+}
+
+.ui.seven.connected.items > .row > .item,
+.ui.seven.connected.items > .item {
+ width: 14.28%;
+ padding-left: 0.5%;
+ padding-right: 0.5%;
+}
+
+.ui.eight.connected.items > .row > .item,
+.ui.eight.connected.items > .item {
+ width: 12.5%;
+ padding-left: 0.25%;
+ padding-right: 0.25%;
+}
+
+.ui.nine.connected.items > .row > .item,
+.ui.nine.connected.items > .item {
+ width: 11.11%;
+ padding-left: 0.25%;
+ padding-right: 0.25%;
+}
+
+.ui.ten.connected.items > .row > .item,
+.ui.ten.connected.items > .item {
+ width: 10%;
+ padding-left: 0.2%;
+ padding-right: 0.2%;
+}
+
+.ui.eleven.connected.items > .row > .item,
+.ui.eleven.connected.items > .item {
+ width: 9.09%;
+ padding-left: 0.2%;
+ padding-right: 0.2%;
+}
+
+.ui.twelve.connected.items > .row > .item,
+.ui.twelve.connected.items > .item {
+ width: 8.3333%;
+ padding-left: 0.1%;
+ padding-right: 0.1%;
+}
+
+/*-------------------
+ Responsive
+--------------------*/
+
+@media only screen and (max-width: 768px) {
+ .ui.stackable.items {
+ display: block !important;
+ }
+
+ .ui.stackable.items > .item,
+ .ui.stackable.items > .row > .item {
+ display: block !important;
+ height: auto !important;
+ width: auto !important;
+ padding: 0% !important;
+ }
+}
+
+/*--------------------
+ Horizontal
+---------------------*/
+
+.ui.horizontal.items > .item,
+.ui.items > .horizontal.item {
+ display: table;
+}
+
+.ui.horizontal.items > .item > .image,
+.ui.items > .horizontal.item > .image {
+ display: table-cell;
+ width: 50%;
+}
+
+.ui.horizontal.items > .item > .image + .content,
+.ui.items > .horizontal.item > .image + .content {
+ width: 50%;
+ display: table-cell;
+}
+
+.ui.horizontal.items > .item > .content,
+.ui.items > .horizontal.item > .content {
+ padding: 1% 1.7% 11% 3%;
+ vertical-align: top;
+}
+
+.ui.horizontal.items > .item > .meta,
+.ui.items > .horizontal.item > .meta {
+ position: absolute;
+ padding: 0%;
+ bottom: 7%;
+ left: 3%;
+ width: 94%;
+}
+
+.ui.horizontal.items > .item > .image + .content + .meta,
+.ui.items > .horizontal.item > .image + .content + .meta {
+ bottom: 7%;
+ left: 53%;
+ width: 44%;
+}
+
+.ui.horizontal.items > .item .avatar,
+.ui.items > .horizontal.item .avatar {
+ width: 11.5%;
+}
+
+.ui.items > .item .avatar {
+ max-width: 25px;
+}
+
+/*--------------
+ Item Count
+---------------*/
+
+.ui.one.items {
+ margin-left: -2%;
+ margin-right: -2%;
+}
+
+.ui.one.items > .item {
+ width: 100%;
+ margin-left: 2%;
+ margin-right: 2%;
+}
+
+.ui.two.items {
+ margin-left: -1%;
+ margin-right: -1%;
+}
+
+.ui.two.items > .item {
+ width: 48%;
+ margin-left: 1%;
+ margin-right: 1%;
+}
+
+.ui.two.items > .item:nth-child(2n+1) {
+ clear: left;
+}
+
+.ui.three.items {
+ margin-left: -1%;
+ margin-right: -1%;
+}
+
+.ui.three.items > .item {
+ width: 31.333%;
+ margin-left: 1%;
+ margin-right: 1%;
+}
+
+.ui.three.items > .item:nth-child(3n+1) {
+ clear: left;
+}
+
+.ui.four.items {
+ margin-left: -0.5%;
+ margin-right: -0.5%;
+}
+
+.ui.four.items > .item {
+ width: 24%;
+ margin-left: 0.5%;
+ margin-right: 0.5%;
+}
+
+.ui.four.items > .item:nth-child(4n+1) {
+ clear: left;
+}
+
+.ui.five.items {
+ margin-left: -0.5%;
+ margin-right: -0.5%;
+}
+
+.ui.five.items > .item {
+ width: 19%;
+ margin-left: 0.5%;
+ margin-right: 0.5%;
+}
+
+.ui.five.items > .item:nth-child(5n+1) {
+ clear: left;
+}
+
+.ui.six.items {
+ margin-left: -0.5%;
+ margin-right: -0.5%;
+}
+
+.ui.six.items > .item {
+ width: 15.66%;
+ margin-left: 0.5%;
+ margin-right: 0.5%;
+}
+
+.ui.six.items > .item:nth-child(6n+1) {
+ clear: left;
+}
+
+.ui.seven.items {
+ margin-left: -0.5%;
+ margin-right: -0.5%;
+}
+
+.ui.seven.items > .item {
+ width: 13.28%;
+ margin-left: 0.5%;
+ margin-right: 0.5%;
+ font-size: 11px;
+}
+
+.ui.seven.items > .item:nth-child(7n+1) {
+ clear: left;
+}
+
+.ui.eight.items {
+ margin-left: -0.25%;
+ margin-right: -0.25%;
+}
+
+.ui.eight.items > .item {
+ width: 12.0%;
+ margin-left: 0.25%;
+ margin-right: 0.25%;
+ font-size: 11px;
+}
+
+.ui.eight.items > .item:nth-child(8n+1) {
+ clear: left;
+}
+
+.ui.nine.items {
+ margin-left: -0.25%;
+ margin-right: -0.25%;
+}
+
+.ui.nine.items > .item {
+ width: 10.61%;
+ margin-left: 0.25%;
+ margin-right: 0.25%;
+ font-size: 10px;
+}
+
+.ui.nine.items > .item:nth-child(9n+1) {
+ clear: left;
+}
+
+.ui.ten.items {
+ margin-left: -0.2%;
+ margin-right: -0.2%;
+}
+
+.ui.ten.items > .item {
+ width: 9.6%;
+ margin-left: 0.2%;
+ margin-right: 0.2%;
+ font-size: 10px;
+}
+
+.ui.ten.items > .item:nth-child(10n+1) {
+ clear: left;
+}
+
+.ui.eleven.items {
+ margin-left: -0.2%;
+ margin-right: -0.2%;
+}
+
+.ui.eleven.items > .item {
+ width: 8.69%;
+ margin-left: 0.2%;
+ margin-right: 0.2%;
+ font-size: 9px;
+}
+
+.ui.eleven.items > .item:nth-child(11n+1) {
+ clear: left;
+}
+
+.ui.twelve.items {
+ margin-left: -0.1%;
+ margin-right: -0.1%;
+}
+
+.ui.twelve.items > .item {
+ width: 8.1333%;
+ margin-left: 0.1%;
+ margin-right: 0.1%;
+ font-size: 9px;
+}
+
+.ui.twelve.items > .item:nth-child(12n+1) {
+ clear: left;
+}
+/*
+ * # Semantic List - Flat
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: April 26 2013
+ */
+
+/*******************************
+ List
+*******************************/
+
+ul.ui.list,
+ol.ui.list,
+.ui.list {
+ list-style-type: none;
+ margin: 1em 0em;
+ padding: 0em;
+}
+
+ul.ui.list ul,
+ol.ui.list ol,
+.ui.list .list {
+ margin: 0em;
+ padding: 0.5em 0em 0.5em 1em;
+}
+
+ul.ui.list:first-child,
+ol.ui.list:first-child,
+.ui.list:first-child {
+ margin-top: 0em;
+}
+
+ul.ui.list:last-child,
+ol.ui.list:last-child,
+.ui.list:last-child {
+ margin-bottom: 0em;
+}
+
+/*******************************
+ Content
+*******************************/
+
+/* List Item */
+
+ul.ui.list li,
+ol.ui.list li,
+.ui.list .item {
+ display: list-item;
+ list-style-type: none;
+ list-style-position: inside;
+ padding: 0.3em 0em;
+ line-height: 1.2em;
+}
+
+.ui.list .item:after {
+ content: '';
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+/* Sub-List */
+
+.ui.list .list {
+ clear: both;
+}
+
+/* Icon */
+
+.ui.list .item > .icon {
+ display: block;
+ float: left;
+ margin: 0em 1em 0em 0em;
+ padding: 0.1em 0em 0em 0em;
+}
+
+.ui.list .item > .icon:only-child {
+ display: inline-block;
+}
+
+.ui.horizontal.list .item > .icon {
+ margin: 0em;
+ padding: 0em 0.25em 0em 0em;
+}
+
+.ui.horizontal.list .item > .icon,
+.ui.horizontal.list .item > .icon + .content {
+ float: none;
+ display: inline-block;
+}
+
+/* Image */
+
+.ui.list .item > img {
+ display: block;
+ float: left;
+ margin-right: 1em;
+ vertical-align: middle;
+}
+
+/* Content */
+
+.ui.list .item > .content {
+ display: inline-block;
+ vertical-align: middle;
+ line-height: 1.2em;
+}
+
+.ui.list .item > .icon + .content {
+ display: table-cell;
+ vertical-align: top;
+}
+
+/* Link */
+
+.ui.list a {
+ cursor: pointer;
+}
+
+.ui.list a .icon {
+ color: rgba(0, 0, 0, 0.6);
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+/* Header */
+
+.ui.list .header {
+ font-weight: bold;
+}
+
+.ui.list .description {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+/* Floated Content */
+
+.ui.list .item > .left.floated {
+ margin-right: 1em;
+ float: left;
+}
+
+.ui.list .item > .right.floated {
+ margin-left: 1em;
+ float: right;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Horizontal
+--------------------*/
+
+.ui.horizontal.list {
+ display: inline-block;
+ font-size: 0em;
+}
+
+.ui.horizontal.list > .item {
+ display: inline-block;
+ margin-left: 1em;
+ font-size: 1rem;
+}
+
+.ui.horizontal.list > .item:first-child {
+ margin-left: 0em;
+}
+
+.ui.horizontal.list .list {
+ padding-left: 0em;
+ padding-bottom: 0em;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*-------------------
+ Hover
+--------------------*/
+
+.ui.list a:hover .icon {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.inverted.list a .icon {
+ color: rgba(255, 255, 255, 0.6);
+}
+
+.ui.inverted.list .description {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.link.list .item {
+ color: rgba(255, 255, 255, 0.4);
+}
+
+/*-------------------
+ Link
+--------------------*/
+
+.ui.link.list .item {
+ color: rgba(0, 0, 0, 0.3);
+}
+
+.ui.link.list a.item,
+.ui.link.list .item a {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.link.list a.item:hover,
+.ui.link.list .item a:hover {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.link.list a.item:active,
+.ui.link.list .item a:active {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.link.list a.active.item,
+.ui.link.list .active.item a {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/* Inverted */
+
+.ui.inverted.link.list a.item,
+.ui.inverted.link.list .item a {
+ color: rgba(255, 255, 255, 0.6);
+}
+
+.ui.inverted.link.list a.item:hover,
+.ui.inverted.link.list .item a:hover {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.link.list a.item:active,
+.ui.inverted.link.list .item a:active {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.inverted.link.list a.active.item,
+.ui.inverted.link.list .active.item a {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+/*-------------------
+ Selection
+--------------------*/
+
+.ui.selection.list .item {
+ cursor: pointer;
+ color: rgba(0, 0, 0, 0.4);
+ padding: 0.5em;
+ -webkit-transition: 0.2s color ease, 0.2s padding-left ease, 0.2s background-color ease;
+ -moz-transition: 0.2s color ease, 0.2s padding-left ease, 0.2s background-color ease;
+ transition: 0.2s color ease, 0.2s padding-left ease, 0.2s background-color ease;
+}
+
+.ui.selection.list .item:hover {
+ background-color: rgba(0, 0, 0, 0.02);
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.selection.list .item:active {
+ background-color: rgba(0, 0, 0, 0.05);
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.selection.list .item.active {
+ background-color: rgba(0, 0, 0, 0.04);
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.animated.list .item {
+ -webkit-transition: 0.2s color ease, 0.2s padding-left ease, 0.2s background-color ease;
+ -moz-transition: 0.2s color ease, 0.2s padding-left ease, 0.2s background-color ease;
+ transition: 0.2s color ease, 0.2s padding-left ease, 0.2s background-color ease;
+}
+
+.ui.animated.list:not(.horizontal) .item:hover {
+ padding-left: 1em;
+}
+
+.ui.animated.list:not(.horizontal) .item:hover .item:hover {
+ padding-left: 0.5em;
+}
+
+/* Inverted */
+
+.ui.inverted.selection.list .item {
+ color: rgba(255, 255, 255, 0.6);
+}
+
+.ui.inverted.selection.list .item:hover {
+ background-color: rgba(255, 255, 255, 0.04);
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.selection.list .item:active {
+ background-color: rgba(255, 255, 255, 0.1);
+ color: rgba(255, 255, 255, 0.7);
+}
+
+.ui.inverted.selection.list .item.active {
+ background-color: rgba(255, 255, 255, 0.08);
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Bulleted
+--------------------*/
+
+ul.ui.list,
+.ui.bulleted.list {
+ margin-left: 1.5em;
+}
+
+ul.ui.list li,
+.ui.bulleted.list .item {
+ position: relative;
+}
+
+ul.ui.list li:before,
+.ui.bulleted.list .item:before {
+ position: absolute;
+ left: -1.5em;
+ content: '•';
+}
+
+ul.ui.list ul,
+.ui.bulleted.list .list {
+ padding-left: 1.5em;
+}
+
+/* Horizontal Bulleted */
+
+ul.ui.horizontal.bulleted.list,
+.ui.horizontal.bulleted.list {
+ margin-left: 0em;
+}
+
+ul.ui.horizontal.bulleted.list li,
+.ui.horizontal.bulleted.list .item {
+ margin-left: 1.5em;
+}
+
+ul.ui.horizontal.bulleted.list li:before,
+.ui.horizontal.bulleted.list .item:before {
+ left: -0.9em;
+}
+
+ul.ui.horizontal.bulleted.list li:first-child,
+.ui.horizontal.bulleted.list .item:first-child {
+ margin-left: 0em;
+}
+
+ul.ui.horizontal.bulleted.list li:first-child::before,
+.ui.horizontal.bulleted.list .item:first-child::before {
+ display: none;
+}
+
+/*-------------------
+ Ordered
+--------------------*/
+
+ol.ui.list,
+.ui.ordered.list {
+ counter-reset: ordered;
+ margin-left: 2em;
+ list-style-type: none;
+}
+
+ol.ui.list li,
+.ui.ordered.list .item {
+ list-style-type: none;
+ position: relative;
+}
+
+ol.ui.list li:before,
+.ui.ordered.list .item:before {
+ position: absolute;
+ left: -2em;
+ counter-increment: ordered;
+ content: counters(ordered, ".");
+ text-align: right;
+ vertical-align: top;
+ opacity: 0.75;
+}
+
+ol.ui.list ol,
+.ui.ordered.list .list {
+ counter-reset: ordered;
+ padding-left: 2.5em;
+}
+
+ol.ui.list ol li:before,
+.ui.ordered.list .list .item:before {
+ left: -2.5em;
+}
+
+/* Horizontal Ordered */
+
+ol.ui.horizontal.list,
+.ui.ordered.horizontal.list {
+ margin-left: 0em;
+}
+
+ol.ui.horizontal.list li:before,
+.ui.ordered.horizontal.list .item:before {
+ position: static;
+ left: 0em;
+ margin: 0em 0.5em 0em 0em;
+}
+
+/*-------------------
+ Divided
+--------------------*/
+
+.ui.divided.list > .item,
+.ui.divided.list:not(.horizontal) > .list {
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+}
+
+.ui.divided.list .item .menu .item {
+ border-width: 0px;
+}
+
+.ui.divided.list .item:first-child {
+ border-top-width: 0px;
+}
+
+/* Sub Menu */
+
+.ui.divided.list:not(.horizontal) .list {
+ margin-left: -0.5em;
+ margin-right: -0.5em;
+}
+
+.ui.divided.list:not(.horizontal) .list .item {
+ padding-left: 1em;
+ padding-right: 1em;
+}
+
+.ui.divided.list:not(.horizontal) .list .item:first-child {
+ border-top-width: 1px;
+}
+
+/* Divided bulleted */
+
+.ui.divided.bulleted.list {
+ margin-left: 0em;
+}
+
+.ui.divided.bulleted.list .item {
+ padding-left: 1.5em;
+}
+
+.ui.divided.bulleted.list .item:before {
+ left: 0.5em;
+}
+
+/* Divided ordered */
+
+.ui.divided.ordered.list {
+ margin-left: 0em;
+}
+
+.ui.divided.ordered.list > .item {
+ padding-left: 2em;
+ padding-right: 2em;
+}
+
+.ui.divided.ordered.list > .item:before {
+ left: 0.5em;
+}
+
+.ui.divided.ordered.list .item .list {
+ margin-left: -2em;
+ margin-right: -2em;
+}
+
+/* Divided horizontal */
+
+.ui.divided.horizontal.list {
+ margin-left: 0em;
+}
+
+.ui.divided.horizontal.list > .item {
+ border-top: none;
+ border-left: 1px solid rgba(0, 0, 0, 0.1);
+ margin: 0em;
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ line-height: 0.6em;
+}
+
+.ui.horizontal.divided.list > .item:first-child {
+ border-left: none;
+ padding-left: 0em;
+}
+
+/* Inverted */
+
+.ui.divided.inverted.list > .item,
+.ui.divided.inverted.list > .list {
+ border-color: rgba(255, 255, 255, 0.2);
+}
+
+.ui.divided.inverted.horizontal.list .item {
+ border-color: rgba(255, 255, 255, 0.2);
+}
+
+/*-------------------
+ Celled
+--------------------*/
+
+.ui.celled.list > .item,
+.ui.celled.list > .list {
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+}
+
+.ui.celled.list > .item:last-child {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* Sub Menu */
+
+.ui.celled.list .item .list {
+ margin-left: -0.5em;
+ margin-right: -0.5em;
+}
+
+.ui.celled.list .item .list .item {
+ border-width: 0px;
+}
+
+.ui.celled.list .list .item:first-child {
+ border-top-width: 0px;
+}
+
+/* Celled Bulleted */
+
+.ui.celled.bulleted.list {
+ margin-left: 0em;
+}
+
+.ui.celled.bulleted.list > .item {
+ padding-left: 1.5em;
+}
+
+.ui.celled.bulleted.list > .item:before {
+ left: 0.5em;
+}
+
+/* Celled Ordered */
+
+.ui.celled.ordered.list {
+ margin-left: 0em;
+}
+
+.ui.celled.ordered.list .item {
+ padding-left: 2em;
+ padding-right: 2em;
+}
+
+.ui.celled.ordered.list .item:before {
+ left: 0.5em;
+}
+
+.ui.celled.ordered.list .item .list {
+ margin-left: -2em;
+ margin-right: -2em;
+}
+
+/* Celled Horizontal */
+
+.ui.horizontal.celled.list {
+ margin-left: 0em;
+}
+
+.ui.horizontal.celled.list .item {
+ border-top: none;
+ border-left: 1px solid rgba(0, 0, 0, 0.1);
+ margin: 0em;
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ line-height: 0.6em;
+}
+
+.ui.horizontal.celled.list .item:last-child {
+ border-bottom: none;
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* Inverted */
+
+.ui.celled.inverted.list > .item,
+.ui.celled.inverted.list > .list {
+ border-color: rgba(255, 255, 255, 0.2);
+}
+
+.ui.celled.inverted.horizontal.list .item {
+ border-color: rgba(255, 255, 255, 0.2);
+}
+
+/*-------------------
+ Relaxed
+--------------------*/
+
+.ui.relaxed.list:not(.horizontal) .item {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+}
+
+.ui.relaxed.list .header {
+ margin-bottom: 0.25em;
+}
+
+.ui.horizontal.relaxed.list .item {
+ padding-left: 1.25em;
+ padding-right: 1.25em;
+}
+
+.ui.very.relaxed.list:not(.horizontal) .item {
+ padding-top: 1em;
+ padding-bottom: 1em;
+}
+
+.ui.very.relaxed.list .header {
+ margin-bottom: 0.5em;
+}
+
+.ui.horizontal.very.relaxed.list .item {
+ padding-left: 2em;
+ padding-right: 2em;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+.ui.mini.list .item {
+ font-size: 0.7rem;
+}
+
+.ui.tiny.list .item {
+ font-size: 0.8125rem;
+}
+
+.ui.small.list .item {
+ font-size: 0.875rem;
+}
+
+.ui.list .item {
+ font-size: 1em;
+}
+
+.ui.large.list .item {
+ font-size: 1.125rem;
+}
+
+.ui.big.list .item {
+ font-size: 1.25rem;
+}
+
+.ui.huge.list .item {
+ font-size: 1.375rem;
+}
+
+.ui.massive.list .item {
+ font-size: 1.5rem;
+}
+/*
+ * # Statistic
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: Aug 20, 2013
+ */
+
+/*******************************
+ Statistic
+*******************************/
+
+.ui.statistic {
+ text-align: center;
+}
+
+/*******************************
+ Content
+*******************************/
+
+.ui.statistic > .number {
+ font-size: 4em;
+ font-weight: bold;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.statistic > .description {
+ opacity: 0.8;
+}
\ No newline at end of file
diff --git a/css/semantic/build/packaged/css/semantic.min.css b/css/semantic/build/packaged/css/semantic.min.css
new file mode 100644
index 0000000..33438e6
--- /dev/null
+++ b/css/semantic/build/packaged/css/semantic.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.breadcrumb{margin:1em 0;display:inline-block;vertical-align:middle}.ui.breadcrumb:first-child{margin-top:0}.ui.breadcrumb:last-child{margin-bottom:0}.ui.breadcrumb .divider{display:inline-block;opacity:.5;margin:0 .15em;font-size:1em;color:rgba(0,0,0,.3)}.ui.breadcrumb a.section{cursor:pointer}.ui.breadcrumb .section{display:inline-block;margin:0;padding:0}.ui.breadcrumb.segment{display:inline-block;padding:.5em 1em}.ui.breadcrumb .active.section{font-weight:700}.ui.small.breadcrumb{font-size:.75em}.ui.large.breadcrumb{font-size:1.1em}.ui.huge.breadcrumb{font-size:1.3em}.ui.form{position:relative;max-width:100%}.ui.form :first-child{margin-top:0}.ui.form :last-child{margin-bottom:0}.ui.form>p{margin:1em 0}.ui.form .field{clear:both;margin:0 0 1em}.ui.form .field>label{margin:0 0 .3em;display:block;color:#555;font-size:.875em}.ui.form textarea,.ui.form input[type=text],.ui.form input[type=email],.ui.form input[type=date],.ui.form input[type=password],.ui.form input[type=number],.ui.form input[type=url],.ui.form input[type=tel],.ui.form .ui.input{width:100%}.ui.form textarea,.ui.form input[type=text],.ui.form input[type=email],.ui.form input[type=date],.ui.form input[type=password],.ui.form input[type=number],.ui.form input[type=url],.ui.form input[type=tel]{margin:0;padding:.65em 1em;font-size:1em;background-color:#FFF;border:1px solid rgba(0,0,0,.15);outline:0;color:rgba(0,0,0,.7);border-radius:.3125em;-webkit-transition:background-color .3s ease-out,-webkit-box-shadow .2s ease,border-color .2s ease;-moz-transition:background-color .3s ease-out,box-shadow .2s ease,border-color .2s ease;transition:background-color .3s ease-out,box-shadow .2s ease,border-color .2s ease;-webkit-box-shadow:0 0 rgba(0,0,0,.3) inset;box-shadow:0 0 rgba(0,0,0,.3) inset;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.textarea,.ui.form textarea{line-height:1.33;min-height:8em;height:12em;max-height:24em;resize:vertical}.ui.form textarea,.ui.form input[type=checkbox]{vertical-align:top}.ui.form .divider{clear:both;margin:1em 0}.ui.form .info.message,.ui.form .warning.message,.ui.form .error.message{display:none}.ui.form .message:first-child{margin-top:0}.ui.form .field .prompt.label{white-space:nowrap}.ui.form .inline.field .prompt{margin-top:0;margin-left:1em}.ui.form .inline.field .prompt:before{margin-top:-.3em;bottom:auto;right:auto;top:50%;left:0}.ui.form input[type=text]:focus,.ui.form input[type=email]:focus,.ui.form input[type=date]:focus,.ui.form input[type=password]:focus,.ui.form input[type=number]:focus,.ui.form input[type=url]:focus,.ui.form input[type=tel]:focus,.ui.form textarea:focus{color:rgba(0,0,0,.85);border-color:rgba(0,0,0,.2);border-bottom-left-radius:0;border-top-left-radius:0;-webkit-appearance:none;-webkit-box-shadow:.3em 0 0 0 rgba(0,0,0,.2) inset;box-shadow:.3em 0 0 0 rgba(0,0,0,.2) inset}.ui.form.warning .warning.message{display:block}.ui.form.error .error.message{display:block}.ui.form .fields.error .field label,.ui.form .field.error label,.ui.form .fields.error .field .input,.ui.form .field.error .input{color:#D95C5C}.ui.form .fields.error .field .corner.label,.ui.form .field.error .corner.label{border-color:#D95C5C;color:#FFF}.ui.form .fields.error .field textarea,.ui.form .fields.error .field input[type=text],.ui.form .fields.error .field input[type=email],.ui.form .fields.error .field input[type=date],.ui.form .fields.error .field input[type=password],.ui.form .fields.error .field input[type=number],.ui.form .fields.error .field input[type=url],.ui.form .fields.error .field input[type=tel],.ui.form .field.error textarea,.ui.form .field.error input[type=text],.ui.form .field.error input[type=email],.ui.form .field.error input[type=date],.ui.form .field.error input[type=password],.ui.form .field.error input[type=number],.ui.form .field.error input[type=url],.ui.form .field.error input[type=tel]{background-color:snow;border-color:#E7BEBE;border-left:0;color:#D95C5C;padding-left:1.2em;border-bottom-left-radius:0;border-top-left-radius:0;-webkit-box-shadow:.3em 0 0 0 #D95C5C inset;box-shadow:.3em 0 0 0 #D95C5C inset}.ui.form .field.error textarea:focus,.ui.form .field.error input[type=text]:focus,.ui.form .field.error input[type=email]:focus,.ui.form .field.error input[type=date]:focus,.ui.form .field.error input[type=password]:focus,.ui.form .field.error input[type=number]:focus,.ui.form .field.error input[type=url]:focus,.ui.form .field.error input[type=tel]:focus{border-color:#ff5050;color:#ff5050;-webkit-appearance:none;-webkit-box-shadow:.3em 0 0 0 #FF5050 inset;box-shadow:.3em 0 0 0 #FF5050 inset}.ui.form .fields.error .field .ui.dropdown,.ui.form .fields.error .field .ui.dropdown .item,.ui.form .field.error .ui.dropdown,.ui.form .field.error .ui.dropdown .item{background-color:snow;color:#D95C5C}.ui.form .fields.error .field .ui.dropdown,.ui.form .field.error .ui.dropdown{-webkit-box-shadow:0 0 0 1px #E7BEBE!important;box-shadow:0 0 0 1px #E7BEBE!important}.ui.form .fields.error .field .ui.dropdown:hover,.ui.form .field.error .ui.dropdown:hover{-webkit-box-shadow:0 0 0 1px #E7BEBE!important;box-shadow:0 0 0 1px #E7BEBE!important}.ui.form .fields.error .field .ui.dropdown:hover .menu,.ui.form .field.error .ui.dropdown:hover .menu{-webkit-box-shadow:0 1px 0 1px #E7BEBE;box-shadow:0 1px 0 1px #E7BEBE}.ui.form .fields.error .field .ui.dropdown .menu .item:hover,.ui.form .field.error .ui.dropdown .menu .item:hover{background-color:#FFF2F2}.ui.form .fields.error .field .ui.dropdown .menu .active.item,.ui.form .field.error .ui.dropdown .menu .active.item{background-color:#FDCFCF!important}.ui.form ::-webkit-input-placeholder{color:#AAA}.ui.form ::-moz-placeholder{color:#AAA}.ui.form :focus::-webkit-input-placeholder{color:#999}.ui.form :focus::-moz-placeholder{color:#999}.ui.form .error ::-webkit-input-placeholder{color:rgba(255,80,80,.4)}.ui.form .error ::-moz-placeholder{color:rgba(255,80,80,.4)}.ui.form .error :focus::-webkit-input-placeholder{color:rgba(255,80,80,.7)}.ui.form .error :focus::-moz-placeholder{color:rgba(255,80,80,.7)}.ui.form .field :disabled,.ui.form .field.disabled{opacity:.5}.ui.form .field.disabled label{opacity:.5}.ui.form .field.disabled :disabled{opacity:1}.ui.form.loading{position:relative}.ui.form.loading:after{position:absolute;top:0;left:0;content:'';width:100%;height:100%;background:rgba(255,255,255,.8) url(../images/loader-large.gif) no-repeat 50% 50%;visibility:visible}.ui.form.fluid{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.form input.attached{width:auto}.ui.form .date.field>label{position:relative}.ui.form .date.field>label:after{position:absolute;top:2em;right:.5em;font-family:Icons;content:'\f133';font-size:1.2em;font-weight:400;color:#CCC}.ui.inverted.form label{color:#FFF}.ui.inverted.form .field.error textarea,.ui.inverted.form .field.error input[type=text],.ui.inverted.form .field.error input[type=email],.ui.inverted.form .field.error input[type=date],.ui.inverted.form .field.error input[type=password],.ui.inverted.form .field.error input[type=number],.ui.inverted.form .field.error input[type=url],.ui.inverted.form .field.error input[type=tel]{background-color:#FCC}.ui.inverted.form .ui.checkbox label{color:rgba(255,255,255,.8)}.ui.inverted.form .ui.checkbox label:hover,.ui.inverted.form .ui.checkbox .box:hover{color:#FFF}.ui.form .grouped.fields{margin:0 0 1em}.ui.form .grouped.fields .field{display:block;float:none;margin:.5em 0;padding:0}.ui.form .fields{clear:both}.ui.form .fields:after{content:' ';display:block;clear:both;visibility:hidden;line-height:0;height:0}.ui.form .fields>.field{clear:none;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.form .fields>.field:first-child{border-left:0;-webkit-box-shadow:none;box-shadow:none}.ui.form .two.fields>.fields,.ui.form .two.fields>.field{width:50%;padding-left:1%;padding-right:1%}.ui.form .three.fields>.fields,.ui.form .three.fields>.field{width:33.333%;padding-left:1%;padding-right:1%}.ui.form .four.fields>.fields,.ui.form .four.fields>.field{width:25%;padding-left:1%;padding-right:1%}.ui.form .five.fields>.fields,.ui.form .five.fields>.field{width:20%;padding-left:1%;padding-right:1%}@media only screen and (max-width:767px){.ui.form .two.fields>.fields,.ui.form .two.fields>.field,.ui.form .three.fields>.fields,.ui.form .three.fields>.field,.ui.form .four.fields>.fields,.ui.form .four.fields>.field,.ui.form .five.fields>.fields,.ui.form .five.fields>.field{width:100%;padding-left:0;padding-right:0}}.ui.form .fields .field:first-child{padding-left:0}.ui.form .fields .field:last-child{padding-right:0}.ui.form .inline.fields .field{min-height:1.3em;margin-right:.5em}.ui.form .inline.fields .field>label,.ui.form .inline.fields .field>p,.ui.form .inline.fields .field>input,.ui.form .inline.field>label,.ui.form .inline.field>p,.ui.form .inline.field>input{display:inline-block;width:auto;margin-top:0;margin-bottom:0;vertical-align:middle;font-size:1em}.ui.form .inline.fields .field>input,.ui.form .inline.field>input{font-size:.875em}.ui.form .inline.fields .field>:first-child,.ui.form .inline.field>:first-child{margin:0 .5em 0 0}.ui.form .inline.fields .field>:only-child,.ui.form .inline.field>:only-child{margin:0}.ui.small.form{font-size:.875em}.ui.small.form textarea,.ui.small.form input[type=text],.ui.small.form input[type=email],.ui.small.form input[type=date],.ui.small.form input[type=password],.ui.small.form input[type=number],.ui.small.form input[type=url],.ui.small.form input[type=tel],.ui.small.form label{font-size:1em}.ui.large.form{font-size:1.125em}.ui.grid{display:block;text-align:left;font-size:0;margin:0 -1.5%;padding:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body>.ui.grid{margin-left:0!important;margin-right:0!important}.ui.grid:after,.ui.row:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui.grid>.column,.ui.grid>.row>.column{display:inline-block;text-align:left;font-size:1rem;width:6.25%;padding-left:1.5%;padding-right:1.5%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;vertical-align:top}.ui.grid>.column{margin-top:1rem;margin-bottom:1rem}.ui.grid>.row{display:block;width:100%!important;margin-top:1.5%;padding:1rem 0 0;font-size:0rem}.ui.grid>.row:first-child{padding-top:0rem;margin-top:0rem}.ui.grid>.row>img,.ui.grid>.row>.column>img{max-width:100%}.ui.grid .column>.ui.segment:only-child{margin:0}.ui.page.grid{min-width:320px;margin-left:0;margin-right:0}@media only screen and (max-width:991px){.ui.page.grid{padding:0 4%}}@media only screen and (min-width:992px){.ui.page.grid{padding:0 8%}}@media only screen and (min-width:1500px){.ui.page.grid{padding:0 13%}}@media only screen and (min-width:1750px){.ui.page.grid{padding:0 18%}}@media only screen and (min-width:2000px){.ui.page.grid{padding:0 23%}}.ui.grid>.row>.one.wide.column,.ui.grid>.column.row>.one.wide.column,.ui.grid>.one.wide.column,.ui.column.grid>.one.wide.column{width:6.25%}.ui.grid>.row>.two.wide.column,.ui.grid>.column.row>.two.wide.column,.ui.grid>.two.wide.column,.ui.column.grid>.two.wide.column{width:12.5%}.ui.grid>.row>.three.wide.column,.ui.grid>.column.row>.three.wide.column,.ui.grid>.three.wide.column,.ui.column.grid>.three.wide.column{width:18.75%}.ui.grid>.row>.four.wide.column,.ui.grid>.column.row>.four.wide.column,.ui.grid>.four.wide.column,.ui.column.grid>.four.wide.column{width:25%}.ui.grid>.row>.five.wide.column,.ui.grid>.column.row>.five.wide.column,.ui.grid>.five.wide.column,.ui.column.grid>.five.wide.column{width:31.25%}.ui.grid>.row>.six.wide.column,.ui.grid>.column.row>.six.wide.column,.ui.grid>.six.wide.column,.ui.column.grid>.six.wide.column{width:37.5%}.ui.grid>.row>.seven.wide.column,.ui.grid>.column.row>.seven.wide.column,.ui.grid>.seven.wide.column,.ui.column.grid>.seven.wide.column{width:43.75%}.ui.grid>.row>.eight.wide.column,.ui.grid>.column.row>.eight.wide.column,.ui.grid>.eight.wide.column,.ui.column.grid>.eight.wide.column{width:50%}.ui.grid>.row>.nine.wide.column,.ui.grid>.column.row>.nine.wide.column,.ui.grid>.nine.wide.column,.ui.column.grid>.nine.wide.column{width:56.25%}.ui.grid>.row>.ten.wide.column,.ui.grid>.column.row>.ten.wide.column,.ui.grid>.ten.wide.column,.ui.column.grid>.ten.wide.column{width:62.5%}.ui.grid>.row>.eleven.wide.column,.ui.grid>.column.row>.eleven.wide.column,.ui.grid>.eleven.wide.column,.ui.column.grid>.eleven.wide.column{width:68.75%}.ui.grid>.row>.twelve.wide.column,.ui.grid>.column.row>.twelve.wide.column,.ui.grid>.twelve.wide.column,.ui.column.grid>.twelve.wide.column{width:75%}.ui.grid>.row>.thirteen.wide.column,.ui.grid>.column.row>.thirteen.wide.column,.ui.grid>.thirteen.wide.column,.ui.column.grid>.thirteen.wide.column{width:81.25%}.ui.grid>.row>.fourteen.wide.column,.ui.grid>.column.row>.fourteen.wide.column,.ui.grid>.fourteen.wide.column,.ui.column.grid>.fourteen.wide.column{width:87.5%}.ui.grid>.row>.fifteen.wide.column,.ui.grid>.column.row>.fifteen.wide.column,.ui.grid>.fifteen.wide.column,.ui.column.grid>.fifteen.wide.column{width:93.75%}.ui.grid>.row>.sixteen.wide.column,.ui.grid>.column.row>.sixteen.wide.column,.ui.grid>.sixteen.wide.column,.ui.column.grid>.sixteen.wide.column{width:100%}.ui.one.column.grid>.row>.column,.ui.one.column.grid>.column,.ui.grid>.one.column.row>.column{width:100%}.ui.two.column.grid>.row>.column,.ui.two.column.grid>.column,.ui.grid>.two.column.row>.column{width:50%}.ui.three.column.grid>.row>.column,.ui.three.column.grid>.column,.ui.grid>.three.column.row>.column{width:33.3333%}.ui.four.column.grid>.row>.column,.ui.four.column.grid>.column,.ui.grid>.four.column.row>.column{width:25%}.ui.five.column.grid>.row>.column,.ui.five.column.grid>.column,.ui.grid>.five.column.row>.column{width:20%}.ui.six.column.grid>.row>.column,.ui.six.column.grid>.column,.ui.grid>.six.column.row>.column{width:16.66667%}.ui.seven.column.grid>.row>.column,.ui.seven.column.grid>.column,.ui.grid>.seven.column.row>.column{width:14.2857%}.ui.eight.column.grid>.row>.column,.ui.eight.column.grid>.column,.ui.grid>.eight.column.row>.column{width:12.5%}.ui.nine.column.grid>.row>.column,.ui.nine.column.grid>.column,.ui.grid>.nine.column.row>.column{width:11.1111%}.ui.ten.column.grid>.row>.column,.ui.ten.column.grid>.column,.ui.grid>.ten.column.row>.column{width:10%}.ui.eleven.column.grid>.row>.column,.ui.eleven.column.grid>.column,.ui.grid>.eleven.column.row>.column{width:9.0909%}.ui.twelve.column.grid>.row>.column,.ui.twelve.column.grid>.column,.ui.grid>.twelve.column.row>.column{width:8.3333%}.ui.thirteen.column.grid>.row>.column,.ui.thirteen.column.grid>.column,.ui.grid>.thirteen.column.row>.column{width:7.6923%}.ui.fourteen.column.grid>.row>.column,.ui.fourteen.column.grid>.column,.ui.grid>.fourteen.column.row>.column{width:7.1428%}.ui.fifteen.column.grid>.row>.column,.ui.fifteen.column.grid>.column,.ui.grid>.fifteen.column.row>.column{width:6.6666%}.ui.sixteen.column.grid>.row>.column,.ui.sixteen.column.grid>.column,.ui.grid>.sixteen.column.row>.column{width:6.25%}.ui.grid>.column:only-child,.ui.grid>.row>.column:only-child{width:100%}.ui.relaxed.grid{margin:0 -2.5%}.ui.relaxed.grid>.column,.ui.relaxed.grid>.row>.column{padding-left:2.5%;padding-right:2.5%}.ui.grid .left.floated.column{float:left}.ui.grid .right.floated.column{float:right}.ui.divided.grid,.ui.divided.grid>.row{display:table;width:100%;margin-left:0!important;margin-right:0!important}.ui.divided.grid>.column:not(.row),.ui.divided.grid>.row>.column{display:table-cell;-webkit-box-shadow:-1px 0 0 0 rgba(0,0,0,.1),-2px 0 0 0 rgba(255,255,255,.8);box-shadow:-1px 0 0 0 rgba(0,0,0,.1),-2px 0 0 0 rgba(255,255,255,.8)}.ui.divided.grid>.column.row{display:table}.ui.divided.grid>.column:first-child,.ui.divided.grid>.row>.column:first-child{-webkit-box-shadow:none;box-shadow:none}.ui.vertically.divided.grid>.row{-webkit-box-shadow:0 -1px 0 0 rgba(0,0,0,.1),0 -2px 0 0 rgba(255,255,255,.8)!important;box-shadow:0 -1px 0 0 rgba(0,0,0,.1),0 -2px 0 0 rgba(255,255,255,.8)!important}.ui.vertically.divided.grid>.row>.column,.ui.vertically.divided.grid>.column:not(.row),.ui.vertically.divided.grid>.row:first-child{-webkit-box-shadow:none!important;box-shadow:none!important}.ui.celled.grid{display:table;width:100%;margin-left:0!important;margin-right:0!important;-webkit-box-shadow:0 0 0 1px #DFDFDF;box-shadow:0 0 0 1px #DFDFDF}.ui.celled.grid>.row,.ui.celled.grid>.column.row,.ui.celled.grid>.column.row:first-child{display:table;width:100%;margin-top:0;padding-top:0;-webkit-box-shadow:0 -1px 0 0 #dfdfdf;box-shadow:0 -1px 0 0 #dfdfdf}.ui.celled.grid>.column:not(.row),.ui.celled.grid>.row>.column{display:table-cell;padding:.75em;-webkit-box-shadow:-1px 0 0 0 #dfdfdf;box-shadow:-1px 0 0 0 #dfdfdf}.ui.celled.grid>.column:first-child,.ui.celled.grid>.row>.column:first-child{-webkit-box-shadow:none;box-shadow:none}.ui.celled.page.grid{-webkit-box-shadow:none;box-shadow:none}.ui.left.aligned.grid,.ui.left.aligned.grid>.row>.column,.ui.left.aligned.grid>.column,.ui.grid .left.aligned.column,.ui.grid>.left.aligned.row>.column{text-align:left}.ui.center.aligned.grid,.ui.center.aligned.grid>.row>.column,.ui.center.aligned.grid>.column,.ui.grid .center.aligned.column,.ui.grid>.center.aligned.row>.column{text-align:center}.ui.right.aligned.grid,.ui.right.aligned.grid>.row>.column,.ui.right.aligned.grid>.column,.ui.grid .right.aligned.column,.ui.grid>.right.aligned.row>.column{text-align:right}.ui.justified.grid,.ui.justified.grid>.row>.column,.ui.justified.grid>.column,.ui.grid .justified.column,.ui.grid>.justified.row>.column{text-align:justify;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.ui.top.aligned.grid,.ui.top.aligned.grid>.row>.column,.ui.top.aligned.grid>.column,.ui.grid .top.aligned.column,.ui.grid>.top.aligned.row>.column{vertical-align:top}.ui.middle.aligned.grid,.ui.middle.aligned.grid>.row>.column,.ui.middle.aligned.grid>.column,.ui.grid .middle.aligned.column,.ui.grid>.middle.aligned.row>.column{vertical-align:middle}.ui.bottom.aligned.grid,.ui.bottom.aligned.grid>.row>.column,.ui.bottom.aligned.grid>.column,.ui.grid .bottom.aligned.column,.ui.grid>.bottom.aligned.row>.column{vertical-align:bottom}.ui.grid>.equal.height.row{display:table;width:100%}.ui.grid>.equal.height.row>.column{display:table-cell}@media only screen and (max-width:767px){.ui.mobile.only.grid,.ui.grid>.mobile.only.row{display:block!important}.ui.grid>.row>.mobile.only.column{display:inline-block!important}.ui.divided.mobile.only.grid,.ui.celled.mobile.only.grid,.ui.divided.mobile.only.grid .row,.ui.celled.mobile.only.grid .row,.ui.divided.grid .mobile.only.row,.ui.celled.grid .mobile.only.row,.ui.grid .mobile.only.equal.height.row,.ui.mobile.only.grid .equal.height.row{display:table!important}.ui.divided.grid>.row>.mobile.only.column,.ui.celled.grid>.row>.mobile.only.column,.ui.divided.mobile.only.grid>.row>.column,.ui.celled.mobile.only.grid>.row>.column,.ui.divided.mobile.only.grid>.column,.ui.celled.mobile.only.grid>.column{display:table-cell!important}}@media only screen and (min-width:768px){.ui.mobile.only.grid,.ui.grid>.mobile.only.row,.ui.grid>.mobile.only.column,.ui.grid>.row>.mobile.only.column{display:none}}@media only screen and (min-width:768px) and (max-width:991px){.ui.tablet.only.grid,.ui.grid>.tablet.only.row{display:block!important}.ui.grid>.row>.tablet.only.column{display:inline-block!important}.ui.divided.tablet.only.grid,.ui.celled.tablet.only.grid,.ui.divided.tablet.only.grid .row,.ui.celled.tablet.only.grid .row,.ui.divided.grid .tablet.only.row,.ui.celled.grid .tablet.only.row,.ui.grid .tablet.only.equal.height.row,.ui.tablet.only.grid .equal.height.row{display:table!important}.ui.divided.grid>.row>.tablet.only.column,.ui.celled.grid>.row>.tablet.only.column,.ui.divided.tablet.only.grid>.row>.column,.ui.celled.tablet.only.grid>.row>.column,.ui.divided.tablet.only.grid>.column,.ui.celled.tablet.only.grid>.column{display:table-cell!important}}@media only screen and (max-width:767px),(min-width:992px){.ui.tablet.only.grid,.ui.grid>.tablet.only.row,.ui.grid>.tablet.only.column,.ui.grid>.row>.tablet.only.column{display:none}}@media only screen and (min-width:992px){.ui.computer.only.grid,.ui.grid>.computer.only.row{display:block!important}.ui.grid>.row>.computer.only.column{display:inline-block!important}.ui.divided.computer.only.grid,.ui.celled.computer.only.grid,.ui.divided.computer.only.grid .row,.ui.celled.computer.only.grid .row,.ui.divided.grid .computer.only.row,.ui.celled.grid .computer.only.row,.ui.grid .computer.only.equal.height.row,.ui.computer.only.grid .equal.height.row{display:table!important}.ui.divided.grid>.row>.computer.only.column,.ui.celled.grid>.row>.computer.only.column,.ui.divided.computer.only.grid>.row>.column,.ui.celled.computer.only.grid>.row>.column,.ui.divided.computer.only.grid>.column,.ui.celled.computer.only.grid>.column{display:table-cell!important}}@media only screen and (max-width:991px){.ui.computer.only.grid,.ui.grid>.computer.only.row,.ui.grid>.computer.only.column,.ui.grid>.row>.computer.only.column{display:none}}@media only screen and (max-width:767px){.ui.two.column.doubling.grid>.row>.column,.ui.two.column.doubling.grid>.column,.ui.grid>.two.column.doubling.row>.column{width:100%}.ui.three.column.doubling.grid>.row>.column,.ui.three.column.doubling.grid>.column,.ui.grid>.three.column.doubling.row>.column{width:100%}.ui.four.column.doubling.grid>.row>.column,.ui.four.column.doubling.grid>.column,.ui.grid>.four.column.doubling.row>.column{width:100%}.ui.five.column.doubling.grid>.row>.column,.ui.five.column.doubling.grid>.column,.ui.grid>.five.column.doubling.row>.column{width:100%}.ui.six.column.doubling.grid>.row>.column,.ui.six.column.doubling.grid>.column,.ui.grid>.six.column.doubling.row>.column{width:50%}.ui.seven.column.doubling.grid>.row>.column,.ui.seven.column.doubling.grid>.column,.ui.grid>.seven.column.doubling.row>.column{width:50%}.ui.eight.column.doubling.grid>.row>.column,.ui.eight.column.doubling.grid>.column,.ui.grid>.eight.column.doubling.row>.column{width:50%}.ui.nine.column.doubling.grid>.row>.column,.ui.nine.column.doubling.grid>.column,.ui.grid>.nine.column.doubling.row>.column{width:50%}.ui.ten.column.doubling.grid>.row>.column,.ui.ten.column.doubling.grid>.column,.ui.grid>.ten.column.doubling.row>.column{width:50%}.ui.twelve.column.doubling.grid>.row>.column,.ui.twelve.column.doubling.grid>.column,.ui.grid>.twelve.column.doubling.row>.column{width:33.3333333333333%}.ui.fourteen.column.doubling.grid>.row>.column,.ui.fourteen.column.doubling.grid>.column,.ui.grid>.fourteen.column.doubling.row>.column{width:33.3333333333333%}.ui.sixteen.column.doubling.grid>.row>.column,.ui.sixteen.column.doubling.grid>.column,.ui.grid>.sixteen.column.doubling.row>.column{width:25%}}@media only screen and (min-width:768px) and (max-width:991px){.ui.two.column.doubling.grid>.row>.column,.ui.two.column.doubling.grid>.column,.ui.grid>.two.column.doubling.row>.column{width:100%}.ui.three.column.doubling.grid>.row>.column,.ui.three.column.doubling.grid>.column,.ui.grid>.three.column.doubling.row>.column{width:50%}.ui.four.column.doubling.grid>.row>.column,.ui.four.column.doubling.grid>.column,.ui.grid>.four.column.doubling.row>.column{width:50%}.ui.five.column.doubling.grid>.row>.column,.ui.five.column.doubling.grid>.column,.ui.grid>.five.column.doubling.row>.column{width:33.3333333%}.ui.six.column.doubling.grid>.row>.column,.ui.six.column.doubling.grid>.column,.ui.grid>.six.column.doubling.row>.column{width:33.3333333%}.ui.eight.column.doubling.grid>.row>.column,.ui.eight.column.doubling.grid>.column,.ui.grid>.eight.column.doubling.row>.column{width:33.3333333%}.ui.eight.column.doubling.grid>.row>.column,.ui.eight.column.doubling.grid>.column,.ui.grid>.eight.column.doubling.row>.column{width:25%}.ui.nine.column.doubling.grid>.row>.column,.ui.nine.column.doubling.grid>.column,.ui.grid>.nine.column.doubling.row>.column{width:25%}.ui.ten.column.doubling.grid>.row>.column,.ui.ten.column.doubling.grid>.column,.ui.grid>.ten.column.doubling.row>.column{width:20%}.ui.twelve.column.doubling.grid>.row>.column,.ui.twelve.column.doubling.grid>.column,.ui.grid>.twelve.column.doubling.row>.column{width:16.6666666%}.ui.fourteen.column.doubling.grid>.row>.column,.ui.fourteen.column.doubling.grid>.column,.ui.grid>.fourteen.column.doubling.row>.column{width:14.28571428571429%}.ui.sixteen.column.doubling.grid>.row>.column,.ui.sixteen.column.doubling.grid>.column,.ui.grid>.sixteen.column.doubling.row>.column{width:12.5%}}@media only screen and (max-width:767px){.ui.stackable.grid{display:block!important;padding:0;margin:0}.ui.stackable.grid>.row>.column,.ui.stackable.grid>.column{display:block!important;width:auto!important;margin:1em 0 0!important;padding:1em 0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}.ui.stackable.divided.grid .column,.ui.stackable.celled.grid .column{border-top:1px dotted rgba(0,0,0,.1)}.ui.stackable.grid>.row:first-child>.column:first-child,.ui.stackable.grid>.column:first-child{margin-top:0!important;padding-top:0!important}.ui.stackable.divided.grid>.row:first-child>.column:first-child,.ui.stackable.celled.grid>.row:first-child>.column:first-child,.ui.stackable.divided.grid>.column:first-child,.ui.stackable.celled.grid>.column:first-child{border-top:0!important}.ui.stackable.page.grid>.row>.column,.ui.stackable.page.grid>.column{padding-left:1em!important;padding-right:1em!important}.ui.stackable.grid .vertical.pointing.menu .item:after{display:none}}.ui.menu{margin:1rem 0rem;background-color:#FFF;font-size:0;font-weight:400;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1);border-radius:.1875rem}.ui.menu:first-child{margin-top:0rem}.ui.menu:last-child{margin-bottom:0rem}.ui.menu:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui.menu>.item:first-child{border-radius:.1875em 0 0 .1875em}.ui.menu>.item:last-child{border-radius:0 .1875em .1875em 0}.ui.menu .item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);vertical-align:middle;line-height:1;text-decoration:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:opacity .2s ease,background .2s ease,-webkit-box-shadow .2s ease;-moz-transition:opacity .2s ease,background .2s ease,box-shadow .2s ease;transition:opacity .2s ease,background .2s ease,box-shadow .2s ease}.ui.menu .item,.ui.menu .item>a:not(.button){color:rgba(0,0,0,.75)}.ui.menu .item .item,.ui.menu .item .item>a:not(.button){color:rgba(30,30,30,.7)}.ui.menu .item .item .item,.ui.menu .item .item .item>a:not(.button){color:rgba(30,30,30,.6)}.ui.menu .dropdown .menu .item,.ui.menu .dropdown .menu .item a:not(.button){color:rgba(0,0,0,.75)}.ui.menu .item .menu a.item:hover,.ui.menu .item .menu .link.item:hover{color:rgba(0,0,0,.85)}.ui.menu .dropdown .menu .item a:not(.button):hover{color:rgba(0,0,0,.85)}.ui.menu .active.item,.ui.menu .active.item a:not(.button){color:rgba(0,0,0,.85);border-radius:0}.ui.menu .item{position:relative;display:inline-block;padding:.83em .95em;border-top:0 solid rgba(0,0,0,0);-webkit-tap-highlight-color:rgba(0,0,0,0);-moz-user-select:-moz-none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ui.menu .menu{margin:0}.ui.menu .item.left,.ui.menu .menu.left{float:left}.ui.menu .item.right,.ui.menu .menu.right{float:right}.ui.menu .item:before{position:absolute;content:'';top:0;left:0;width:1px;height:100%;background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.05)),color-stop(50%,rgba(0,0,0,.1)),to(rgba(0,0,0,.05)));background-image:-webkit-linear-gradient(rgba(0,0,0,.05) 0,rgba(0,0,0,.1) 50%,rgba(0,0,0,.05) 100%);background-image:-moz-linear-gradient(rgba(0,0,0,.05) 0,rgba(0,0,0,.1) 50%,rgba(0,0,0,.05) 100%);background-image:linear-gradient(rgba(0,0,0,.05) 0,rgba(0,0,0,.1) 50%,rgba(0,0,0,.05) 100%)}.ui.menu>.menu:not(.right):first-child>.item:first-child:before,.ui.menu .item:first-child:before{display:none}.ui.menu .menu.right .item:before,.ui.menu .item.right:before{right:auto;left:0}.ui.menu .text.item>*,.ui.menu .item>p:only-child{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;line-height:1.3;color:rgba(0,0,0,.6)}.ui.menu .item>p:first-child{margin-top:0}.ui.menu .item>p:last-child{margin-bottom:0}.ui.menu:not(.vertical) .item>.button{position:relative;top:-.05em;margin:-.55em 0;padding-bottom:.55em;padding-top:.55em;font-size:.875em}.ui.menu:not(.vertical) .item>.input{margin-top:-.85em;margin-bottom:-.85em;padding-top:.3em;padding-bottom:.3em;width:100%;vertical-align:top}.ui.menu .item>.input input{padding-top:.35em;padding-bottom:.35em}.ui.vertical.menu .item>.input input{margin:0;padding-top:.63em;padding-bottom:.63em}.ui.menu:not(.vertical) .item>.button.labeled>.icon{padding-top:.6em}.ui.menu:not(.vertical) .item .action.input>.button{font-size:.8em;padding:.55em .8em}.ui.small.menu:not(.vertical) .item>.input input{padding-top:.4em;padding-bottom:.4em}.ui.large.menu:not(.vertical) .item>.input input{top:-.125em;padding-bottom:.6em;padding-top:.6em}.ui.large.menu:not(.vertical) .item .action.input>.button{font-size:.8em;padding:.9em}.ui.large.menu:not(.vertical) .item .action.input>.button>.icon{padding-top:.8em}.ui.menu .header.item{background-color:rgba(0,0,0,.04);margin:0}.ui.vertical.menu .header.item{font-weight:700}.ui.menu .dropdown .menu .item .icon{float:none;margin:0 .75em 0 0}.ui.menu .dropdown.item .menu{left:1px;margin:0;min-width:-webkit-calc(99%);min-width:-moz-calc(99%);min-width:calc(99%);-webkit-box-shadow:0 1px 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px 1px rgba(0,0,0,.1)}.ui.secondary.menu .dropdown.item .menu{left:0;min-width:100%}.ui.menu .pointing.dropdown.item .menu{margin-top:.75em}.ui.menu .simple.dropdown.item .menu{margin:0!important}.ui.menu .dropdown.item .menu .item{width:100%;color:rgba(0,0,0,.75)}.ui.menu .dropdown.item .menu .active.item{-webkit-box-shadow:none!important;box-shadow:none!important}.ui.menu .ui.dropdown .menu .item:before{display:none}.ui.menu .item>.label{background-color:rgba(0,0,0,.35);color:#FFF;margin:-.15em 0 -.15em .5em;padding:.3em .8em;vertical-align:baseline}.ui.menu .item>.floating.label{padding:.3em .8em}.ui.menu .item>img:only-child{display:block;max-width:100%;margin:0 auto}.ui.link.menu .item:hover,.ui.menu .link.item:hover,.ui.menu a.item:hover,.ui.menu .ui.dropdown .menu .item:hover{cursor:pointer;background-color:rgba(0,0,0,.02)}.ui.menu .ui.dropdown.item.active{background-color:rgba(0,0,0,.02);-webkit-box-shadow:none;box-shadow:none;border-bottom-right-radius:0;border-bottom-left-radius:0}.ui.link.menu .item:active,.ui.menu .link.item:active,.ui.menu a.item:active,.ui.menu .ui.dropdown .menu .item:active{background-color:rgba(0,0,0,.05)}.ui.menu .active.item{background-color:rgba(0,0,0,.01);color:rgba(0,0,0,.95);-webkit-box-shadow:0 .2em 0 inset;box-shadow:0 .2em 0 inset}.ui.vertical.menu .active.item{border-radius:0;-webkit-box-shadow:.2em 0 0 inset;box-shadow:.2em 0 0 inset}.ui.vertical.menu>.active.item:first-child{border-radius:0 .1875em 0 0}.ui.vertical.menu>.active.item:last-child{border-radius:0 0 .1875em}.ui.vertical.menu>.active.item:only-child{border-radius:0 .1875em .1875em 0}.ui.vertical.menu .active.item .menu .active.item{border-left:0}.ui.vertical.menu .active.item .menu .active.item{padding-left:1.5rem}.ui.vertical.menu .item .menu .active.item{background-color:rgba(0,0,0,.03);-webkit-box-shadow:none;box-shadow:none}.ui.menu .item.disabled,.ui.menu .item.disabled:hover{cursor:default;color:rgba(0,0,0,.2);background-color:transparent!important}.ui.menu.loading{position:relative}.ui.menu.loading:after{position:absolute;top:0;left:0;content:'';width:100%;height:100%;background:rgba(255,255,255,.8) url(../images/loader-large.gif) no-repeat 50% 50%;visibility:visible}.ui.vertical.menu .item{display:block;height:auto!important;border-top:0;border-left:0 solid rgba(0,0,0,0);border-right:0}.ui.vertical.menu>.item:first-child{border-radius:.1875em .1875em 0 0}.ui.vertical.menu>.item:last-child{border-radius:0 0 .1875em .1875em}.ui.vertical.menu .item>.label{float:right;text-align:center}.ui.vertical.menu .item>i.icon{float:right;width:1.22em;margin:0 0 0 .5em}.ui.vertical.menu .item>.label+i.icon{float:none;margin:0 .25em 0 0}.ui.vertical.menu .item:before{position:absolute;content:'';top:0;left:0;width:100%;height:1px;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.03) 0,rgba(0,0,0,.1) 1.5em,rgba(0,0,0,.03) 100%);background-image:-moz-linear-gradient(left,rgba(0,0,0,.03) 0,rgba(0,0,0,.1) 1.5em,rgba(0,0,0,.03) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.03)),color-stop(1.5em,rgba(0,0,0,.1)),to(rgba(0,0,0,.03)));background-image:linear-gradient(to right,rgba(0,0,0,.03) 0,rgba(0,0,0,.1) 1.5em,rgba(0,0,0,.03) 100%)}.ui.vertical.menu .item:first-child:before{background-image:none!important}.ui.vertical.menu .dropdown.item>i{float:right;content:"\f0da"}.ui.vertical.menu .dropdown.item .menu{top:0!important;left:100%;margin:0 0 0 1px;-webkit-box-shadow:0 0 1px 1px #DDD;box-shadow:0 0 1px 1px #DDD}.ui.vertical.menu .dropdown.item.active{border-top-right-radius:0;border-bottom-right-radius:0}.ui.vertical.menu .dropdown.item .menu .item{font-size:1rem}.ui.vertical.menu .dropdown.item .menu .item i.icon{margin-right:0}.ui.vertical.menu .dropdown.item.active{-webkit-box-shadow:none;box-shadow:none}.ui.vertical.menu .item>.menu{margin:.5em -.95em 0}.ui.vertical.menu .item>.menu>.item{padding:.5rem 1.5rem;font-size:.875em}.ui.vertical.menu .item>.menu>.item:before{display:none}.ui.tiered.menu>.sub.menu>.item{color:rgba(0,0,0,.4)}.ui.tiered.menu>.menu>.item:hover{color:rgba(0,0,0,.8)}.ui.tiered.menu .item.active{color:rgba(0,0,0,.8)}.ui.tiered.menu>.menu .item.active:after{position:absolute;content:'';margin-top:-1px;top:100%;left:0;width:100%;height:2px;background-color:#FBFBFB}.ui.tiered.menu .sub.menu{background-color:rgba(0,0,0,.01);border-radius:0;border-top:1px solid rgba(0,0,0,.1);-webkit-box-shadow:none;box-shadow:none;color:#FFF}.ui.tiered.menu .sub.menu .item{font-size:.875rem}.ui.tiered.menu .sub.menu .item:before{background-image:none}.ui.tiered.menu .sub.menu .active.item{padding-top:.83em;background-color:transparent;border-radius:0;border-top:medium none;-webkit-box-shadow:none;box-shadow:none;color:rgba(0,0,0,.7)!important}.ui.tiered.menu .sub.menu .active.item:after{display:none}.ui.inverted.tiered.menu>.menu>.item{color:rgba(255,255,255,.5)}.ui.inverted.tiered.menu .sub.menu{background-color:rgba(0,0,0,.2)}.ui.inverted.tiered.menu .sub.menu .item{color:rgba(255,255,255,.6)}.ui.inverted.tiered.menu>.menu>.item:hover{color:rgba(255,255,255,.9)}.ui.inverted.tiered.menu .active.item:after{display:none}.ui.inverted.tiered.menu>.sub.menu>.active.item,.ui.inverted.tiered.menu>.menu>.active.item{color:#fff!important;-webkit-box-shadow:none;box-shadow:none}.ui.pointing.tiered.menu>.menu>.item:after{display:none}.ui.pointing.tiered.menu>.sub.menu>.item:after{display:block}.ui.tabular.menu{background-color:transparent;border-bottom:1px solid #DCDDDE;border-radius:0;-webkit-box-shadow:none!important;box-shadow:none!important}.ui.tabular.menu .item{background-color:transparent;border-left:1px solid transparent;border-right:1px solid transparent;border-top:1px solid transparent;padding-left:1.4em;padding-right:1.4em;color:rgba(0,0,0,.6)}.ui.tabular.menu .item:before{display:none}.ui.tabular.menu .item:hover{background-color:transparent;color:rgba(0,0,0,.8)}.ui.tabular.menu .active.item{position:relative;background-color:#FFF;color:rgba(0,0,0,.8);border-color:#DCDDDE;font-weight:700;margin-bottom:-1px;border-bottom:1px solid #FFF;-webkit-box-shadow:none;box-shadow:none;border-radius:5px 5px 0 0}.ui.attached.tabular.menu{position:relative;z-index:2}.ui.tabular.menu~.bottom.attached.segment{margin:1px 0 0 1px}.ui.pagination.menu{margin:0;display:inline-block;vertical-align:middle}.ui.pagination.menu .item{min-width:3em;text-align:center}.ui.pagination.menu .icon.item i.icon{vertical-align:top}.ui.pagination.menu.floated{display:block}.ui.pagination.menu .active.item{border-top:0;padding-top:.83em;background-color:rgba(0,0,0,.05);-webkit-box-shadow:none;box-shadow:none}.ui.secondary.menu{background-color:transparent;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.ui.secondary.menu>.menu>.item,.ui.secondary.menu>.item{-webkit-box-shadow:none;box-shadow:none;border:0;height:auto!important;margin:0 .25em;padding:.5em 1em;border-radius:.3125em}.ui.secondary.menu>.menu>.item:before,.ui.secondary.menu>.item:before{display:none!important}.ui.secondary.menu .item>.input input{background-color:transparent;border:0}.ui.secondary.menu .link.item,.ui.secondary.menu a.item{opacity:.8;-webkit-transition:none;-moz-transition:none;transition:none}.ui.secondary.menu .header.item{border-right:.1em solid rgba(0,0,0,.1);background-color:transparent;border-radius:0}.ui.secondary.menu .link.item:hover,.ui.secondary.menu a.item:hover{opacity:1}.ui.secondary.menu>.menu>.active.item,.ui.secondary.menu>.active.item{background-color:rgba(0,0,0,.08);opacity:1;-webkit-box-shadow:none;box-shadow:none}.ui.secondary.vertical.menu>.active.item{border-radius:.3125em}.ui.secondary.inverted.menu .link.item,.ui.secondary.inverted.menu a.item{color:rgba(255,255,255,.5)}.ui.secondary.inverted.menu .link.item:hover,.ui.secondary.inverted.menu a.item:hover{color:rgba(255,255,255,.9)}.ui.secondary.inverted.menu .active.item{background-color:rgba(255,255,255,.1)}.ui.secondary.item.menu>.item{margin:0}.ui.secondary.attached.menu{-webkit-box-shadow:none;box-shadow:none}.ui.secondary.pointing.menu{border-bottom:3px solid rgba(0,0,0,.1)}.ui.secondary.pointing.menu>.menu>.item,.ui.secondary.pointing.menu>.item{margin:0 0 -3px;padding:.6em .95em;border-bottom:3px solid rgba(0,0,0,0);border-radius:0;-webkit-transition:color .2s;-moz-transition:color .2s;transition:color .2s}.ui.secondary.pointing.menu .header.item{margin-bottom:-3px;background-color:transparent!important;border-right-width:0!important;font-weight:700!important;color:rgba(0,0,0,.8)!important}.ui.secondary.pointing.menu .text.item{-webkit-box-shadow:none!important;box-shadow:none!important}.ui.secondary.pointing.menu>.menu>.item:after,.ui.secondary.pointing.menu>.item:after{display:none}.ui.secondary.pointing.menu>.menu>.link.item:hover,.ui.secondary.pointing.menu>.link.item:hover,.ui.secondary.pointing.menu>.menu>a.item:hover,.ui.secondary.pointing.menu>a.item:hover{background-color:transparent;color:rgba(0,0,0,.7)}.ui.secondary.pointing.menu>.menu>.link.item:active,.ui.secondary.pointing.menu>.link.item:active,.ui.secondary.pointing.menu>.menu>a.item:active,.ui.secondary.pointing.menu>a.item:active{background-color:transparent;border-color:rgba(0,0,0,.2)}.ui.secondary.pointing.menu>.menu>.item.active,.ui.secondary.pointing.menu>.item.active{background-color:transparent;border-color:rgba(0,0,0,.4);-webkit-box-shadow:none;box-shadow:none}.ui.secondary.vertical.pointing.menu{border:0;border-right:3px solid rgba(0,0,0,.1)}.ui.secondary.vertical.menu>.item{border:0;margin:0 0 .3em;padding:.6em .8em;border-radius:.1875em}.ui.secondary.vertical.menu>.header.item{border-radius:0}.ui.secondary.vertical.pointing.menu>.item{margin:0 -3px 0 0;border-bottom:0;border-right:3px solid transparent;border-radius:0}.ui.secondary.vertical.pointing.menu>.item:hover{background-color:transparent;color:rgba(0,0,0,.7)}.ui.secondary.vertical.pointing.menu>.item:active{background-color:transparent;border-color:rgba(0,0,0,.2)}.ui.secondary.vertical.pointing.menu>.item.active{background-color:transparent;border-color:rgba(0,0,0,.4);color:rgba(0,0,0,.85)}.ui.secondary.inverted.menu{background-color:transparent}.ui.secondary.inverted.pointing.menu{border-bottom:3px solid rgba(255,255,255,.1)}.ui.secondary.inverted.pointing.menu>.item{color:rgba(255,255,255,.7)}.ui.secondary.inverted.pointing.menu>.header.item{color:#FFF!important}.ui.secondary.inverted.pointing.menu>.menu>.item:hover,.ui.secondary.inverted.pointing.menu>.item:hover{color:rgba(255,255,255,.85)}.ui.secondary.inverted.pointing.menu>.menu>.item:active,.ui.secondary.inverted.pointing.menu>.item:active{border-color:rgba(255,255,255,.4)}.ui.secondary.inverted.pointing.menu>.menu>.item.active,.ui.secondary.inverted.pointing.menu>.item.active{border-color:rgba(255,255,255,.8);color:#fff}.ui.secondary.inverted.vertical.pointing.menu{border-right:3px solid rgba(255,255,255,.1);border-bottom:0}.ui.text.menu{background-color:transparent;margin:1rem -1rem;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.ui.text.menu>.item{opacity:.8;margin:0 1em;padding:0;height:auto!important;border-radius:0;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:opacity .2s ease;-moz-transition:opacity .2s ease;transition:opacity .2s ease}.ui.text.menu>.item:before{display:none!important}.ui.text.menu .header.item{background-color:transparent;opacity:1;color:rgba(50,50,50,.8);font-size:.875rem;padding:0;text-transform:uppercase;font-weight:700}.ui.text.item.menu .item{margin:0}.ui.vertical.text.menu{margin:1rem 0}.ui.vertical.text.menu:first-child{margin-top:0rem}.ui.vertical.text.menu:last-child{margin-bottom:0rem}.ui.vertical.text.menu .item{float:left;clear:left;margin:.5em 0}.ui.vertical.text.menu .item>i.icon{float:none;margin:0 .83em 0 0}.ui.vertical.text.menu .header.item{margin:.8em 0}.ui.text.menu .item:hover{opacity:1;background-color:transparent}.ui.text.menu .active.item{background-color:transparent;padding:0;border:0;opacity:1;font-weight:700;-webkit-box-shadow:none;box-shadow:none}.ui.text.pointing.menu .active.item:after{-webkit-box-shadow:none;box-shadow:none}.ui.text.attached.menu{-webkit-box-shadow:none;box-shadow:none}.ui.inverted.text.menu,.ui.inverted.text.menu .item,.ui.inverted.text.menu .item:hover,.ui.inverted.text.menu .item.active{background-color:transparent}.ui.icon.menu,.ui.vertical.icon.menu{width:auto;display:inline-block;height:auto}.ui.icon.menu>.item{height:auto;text-align:center;color:rgba(60,60,60,.7)}.ui.icon.menu>.item>.icon{display:block;float:none!important;opacity:1;margin:0 auto!important}.ui.icon.menu .icon:before{opacity:1}.ui.menu .icon.item .icon{margin:0}.ui.vertical.icon.menu{float:none}.ui.inverted.icon.menu .item{color:rgba(255,255,255,.8)}.ui.inverted.icon.menu .icon{color:#fff}.ui.labeled.icon.menu{text-align:center}.ui.labeled.icon.menu>.item>.icon{display:block;font-size:1.5em!important;margin:0 auto .3em!important}.ui.menu .green.active.item,.ui.green.menu .active.item{border-color:#A1CF64!important;color:#A1CF64!important}.ui.menu .red.active.item,.ui.red.menu .active.item{border-color:#D95C5C!important;color:#D95C5C!important}.ui.menu .blue.active.item,.ui.blue.menu .active.item{border-color:#6ECFF5!important;color:#6ECFF5!important}.ui.menu .purple.active.item,.ui.purple.menu .active.item{border-color:#564F8A!important;color:#564F8A!important}.ui.menu .orange.active.item,.ui.orange.menu .active.item{border-color:#F05940!important;color:#F05940!important}.ui.menu .teal.active.item,.ui.teal.menu .active.item{border-color:#00B5AD!important;color:#00B5AD!important}.ui.inverted.menu{background-color:#333;-webkit-box-shadow:none;box-shadow:none}.ui.inverted.menu .header.item{margin:0;background-color:rgba(0,0,0,.3);-webkit-box-shadow:none;box-shadow:none}.ui.inverted.menu .item,.ui.inverted.menu .item>a{color:#FFF}.ui.inverted.menu .item .item,.ui.inverted.menu .item .item>a{color:rgba(255,255,255,.8)}.ui.inverted.menu .dropdown .menu .item,.ui.inverted.menu .dropdown .menu .item a{color:rgba(0,0,0,.75)!important}.ui.inverted.menu .item.disabled,.ui.inverted.menu .item.disabled:hover{color:rgba(255,255,255,.2)}.ui.inverted.menu .item:before{background-image:-webkit-linear-gradient(rgba(255,255,255,.03) 0,rgba(255,255,255,.1) 50%,rgba(255,255,255,.03) 100%);background-image:-moz-linear-gradient(rgba(255,255,255,.03) 0,rgba(255,255,255,.1) 50%,rgba(255,255,255,.03) 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,.03)),color-stop(50%,rgba(255,255,255,.1)),to(rgba(255,255,255,.03)));background-image:linear-gradient(rgba(255,255,255,.03) 0,rgba(255,255,255,.1) 50%,rgba(255,255,255,.03) 100%)}.ui.vertical.inverted.menu .item:before{background-image:-webkit-linear-gradient(left,rgba(255,255,255,.03) 0,rgba(255,255,255,.1) 50%,rgba(255,255,255,.03) 100%);background-image:-moz-linear-gradient(left,rgba(255,255,255,.03) 0,rgba(255,255,255,.1) 50%,rgba(255,255,255,.03) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(255,255,255,.03)),color-stop(50%,rgba(255,255,255,.1)),to(rgba(255,255,255,.03)));background-image:linear-gradient(to right,rgba(255,255,255,.03) 0,rgba(255,255,255,.1) 50%,rgba(255,255,255,.03) 100%)}.ui.link.inverted.menu .item:hover,.ui.inverted.menu .link.item:hover,.ui.inverted.menu a.item:hover,.ui.inverted.menu .dropdown.item:hover{background-color:rgba(255,255,255,.1)}.ui.inverted.menu a.item:hover,.ui.inverted.menu .item>a:hover,.ui.inverted.menu .item .menu a.item:hover,.ui.inverted.menu .item .menu .link.item:hover{color:#fff}.ui.inverted.menu a.item:active,.ui.inverted.menu .dropdown.item:active,.ui.inverted.menu .link.item:active,.ui.inverted.menu a.item:active{background-color:rgba(255,255,255,.15)}.ui.inverted.menu .active.item{-webkit-box-shadow:none!important;box-shadow:none!important;background-color:rgba(255,255,255,.2)}.ui.inverted.menu .active.item,.ui.inverted.menu .active.item a{color:#fff!important}.ui.inverted.vertical.menu .item .menu .active.item{background-color:rgba(255,255,255,.2);color:#fff}.ui.inverted.pointing.menu .active.item:after{background-color:#5B5B5B;-webkit-box-shadow:none;box-shadow:none}.ui.inverted.pointing.menu .active.item:hover:after{background-color:#4A4A4A}.ui.selection.menu>.item{color:rgba(0,0,0,.4)}.ui.selection.menu>.item:hover{color:rgba(0,0,0,.6)}.ui.selection.menu>.item.active{color:rgba(0,0,0,.85)}.ui.inverted.selection.menu>.item{color:rgba(255,255,255,.4)}.ui.inverted.selection.menu>.item:hover{color:rgba(255,255,255,.9)}.ui.inverted.selection.menu>.item.active{color:#FFF}.ui.floated.menu{float:left;margin:0rem .5rem 0rem 0rem}.ui.right.floated.menu{float:right;margin:0rem 0rem 0rem .5rem}.ui.grey.menu{background-color:#F0F0F0}.ui.inverted.green.menu{background-color:#A1CF64}.ui.inverted.green.pointing.menu .active.item:after{background-color:#A1CF64}.ui.inverted.red.menu{background-color:#D95C5C}.ui.inverted.red.pointing.menu .active.item:after{background-color:#F16883}.ui.inverted.blue.menu{background-color:#6ECFF5}.ui.inverted.blue.pointing.menu .active.item:after{background-color:#6ECFF5}.ui.inverted.purple.menu{background-color:#564F8A}.ui.inverted.purple.pointing.menu .active.item:after{background-color:#564F8A}.ui.inverted.orange.menu{background-color:#F05940}.ui.inverted.orange.pointing.menu .active.item:after{background-color:#F05940}.ui.inverted.teal.menu{background-color:#00B5AD}.ui.inverted.teal.pointing.menu .active.item:after{background-color:#00B5AD}.ui.fitted.menu .item,.ui.fitted.menu .item .menu .item,.ui.menu .fitted.item{padding:0}.ui.horizontally.fitted.menu .item,.ui.horizontally.fitted.menu .item .menu .item,.ui.menu .horizontally.fitted.item{padding-top:.83em;padding-bottom:.83em}.ui.vertically.fitted.menu .item,.ui.vertically.fitted.menu .item .menu .item,.ui.menu .vertically.fitted.item{padding-left:.95em;padding-right:.95em}.ui.borderless.menu .item:before,.ui.borderless.menu .item .menu .item:before,.ui.menu .borderless.item:before{background-image:none}.ui.compact.menu{display:inline-block;margin:0;vertical-align:middle}.ui.compact.vertical.menu{width:auto!important}.ui.compact.vertical.menu .item:last-child::before{display:block}.ui.menu.fluid,.ui.vertical.menu.fluid{display:block;width:100%!important}.ui.item.menu,.ui.item.menu .item{width:100%;padding-left:0!important;padding-right:0!important;text-align:center}.ui.menu.two.item .item{width:50%}.ui.menu.three.item .item{width:33.333%}.ui.menu.four.item .item{width:25%}.ui.menu.five.item .item{width:20%}.ui.menu.six.item .item{width:16.666%}.ui.menu.seven.item .item{width:14.285%}.ui.menu.eight.item .item{width:12.5%}.ui.menu.nine.item .item{width:11.11%}.ui.menu.ten.item .item{width:10%}.ui.menu.eleven.item .item{width:9.09%}.ui.menu.twelve.item .item{width:8.333%}.ui.menu.fixed{position:fixed;z-index:999;margin:0;border:0;width:100%}.ui.menu.fixed,.ui.menu.fixed .item:first-child,.ui.menu.fixed .item:last-child{border-radius:0!important}.ui.menu.fixed.top{top:0;left:0;right:auto;bottom:auto}.ui.menu.fixed.right{top:0;right:0;left:auto;bottom:auto;width:auto;height:100%}.ui.menu.fixed.bottom{bottom:0;left:0;top:auto;right:auto}.ui.menu.fixed.left{top:0;left:0;right:auto;bottom:auto;width:auto;height:100%}.ui.fixed.menu+.ui.grid{padding-top:2.75rem}.ui.pointing.menu .active.item:after{position:absolute;bottom:-.3em;left:50%;content:"";margin-left:-.3em;width:.6em;height:.6em;border:0;border-bottom:1px solid rgba(0,0,0,.1);border-right:1px solid rgba(0,0,0,.1);background-image:none;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);z-index:2;-webkit-transition:background .2s ease;-moz-transition:background .2s ease;transition:background .2s ease}.ui.pointing.menu .active.item .menu .active.item:after{display:none}.ui.vertical.pointing.menu .active.item:after{position:absolute;top:50%;margin-top:-.3em;right:-.4em;bottom:auto;left:auto;border:0;border-top:1px solid rgba(0,0,0,.1);border-right:1px solid rgba(0,0,0,.1)}.ui.pointing.menu .active.item:after{background-color:#FCFCFC}.ui.pointing.menu .active.item:hover:after{background-color:#FAFAFA}.ui.vertical.pointing.menu .menu .active.item:after{background-color:#F4F4F4}.ui.pointing.menu a.active.item:active:after{background-color:#F0F0F0}.ui.menu.attached{margin:0rem;border-radius:0;-webkit-box-shadow:0 0 0 1px #DDD;box-shadow:0 0 0 1px #DDD}.ui.top.attached.menu{border-radius:.1875em .1875em 0 0}.ui.menu.bottom.attached{border-radius:0 0 .1875em .1875em}.ui.small.menu .item{font-size:.875rem}.ui.small.vertical.menu{width:13rem}.ui.menu .item{font-size:1rem}.ui.vertical.menu{width:15rem}.ui.large.menu .item{font-size:1.125rem}.ui.large.menu .item .item{font-size:.875rem}.ui.large.menu .dropdown .item{font-size:1rem}.ui.large.vertical.menu{width:18rem}.ui.message{position:relative;min-height:18px;margin:1em 0;height:auto;background-color:#EFEFEF;padding:1em;line-height:1.33;color:rgba(0,0,0,.6);-webkit-transition:opacity .1s ease,color .1s ease,background .1s ease,-webkit-box-shadow .1s ease;-moz-transition:opacity .1s ease,color .1s ease,background .1s ease,box-shadow .1s ease;transition:opacity .1s ease,color .1s ease,background .1s ease,box-shadow .1s ease;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;border-radius:.325em}.ui.message:first-child{margin-top:0}.ui.message:last-child{margin-bottom:0}.ui.message .header{margin:0;font-size:1.33em;font-weight:700}.ui.message p{opacity:.85;margin:1em 0}.ui.message p:first-child{margin-top:0}.ui.message p:last-child{margin-bottom:0}.ui.message .header+p{margin-top:.3em}.ui.message>:first-child{margin-top:0}.ui.message>:last-child{margin-bottom:0}.ui.message ul.list{opacity:.85;list-style-position:inside;margin:.2em 0;padding:0}.ui.message ul.list li{position:relative;list-style-type:none;margin:0 0 .3em 1em;padding:0}.ui.message ul.list li:before{position:absolute;content:'\2022';top:-.05em;left:-.8em;height:100%;vertical-align:baseline;opacity:.5}.ui.message ul.list li:first-child{margin-top:0}.ui.message>.close.icon{cursor:pointer;position:absolute;top:1em;right:.5em;opacity:.7;-webkit-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear}.ui.message>.close.icon:hover{opacity:1}.ui.message.visible,.ui.header.visible{display:block!important}.ui.message.hidden,.ui.header.hidden{display:none}.ui.compact.message{display:inline-block}.ui.attached.message{margin-left:-1px;margin-right:-1px;margin-bottom:-1px;border-radius:.325em .325em 0 0;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset}.ui.attached+.ui.attached.message:not(.top):not(.bottom){margin-top:-1px;border-radius:0}.ui.bottom.attached.message{margin-top:-1px;border-radius:0 0 .325em .325em}.ui.bottom.attached.message:not(:last-child){margin-bottom:1em}.ui.attached.icon.message{display:block;width:auto}.ui.icon.message{display:table;width:100%}.ui.icon.message>.icon:not(.close){display:table-cell;vertical-align:middle;font-size:3.8em;opacity:.5}.ui.icon.message>.icon+.content{padding-left:1em}.ui.icon.message>.content{display:table-cell;vertical-align:middle}.ui.inverted.message{background-color:rgba(255,255,255,.05);color:rgba(255,255,255,.95)}.ui.floating.message{-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.05) inset;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.05) inset}.ui.black.message{background-color:#333;color:rgba(255,255,255,.95)}.ui.blue.message,.ui.info.message{background-color:#E6F4F9;color:#4D8796}.ui.green.message{background-color:#DEFCD5;color:#52A954}.ui.yellow.message,.ui.warning.message{background-color:#F6F3D5;color:#96904D}.ui.red.message{background-color:#F1D7D7;color:#A95252}.ui.success.message,.ui.positive.message{background-color:#DEFCD5;color:#52A954}.ui.error.message,.ui.negative.message{background-color:#F1D7D7;color:#A95252}.ui.small.message{font-size:.875em}.ui.message{font-size:1em}.ui.large.message{font-size:1.125em}.ui.huge.message{font-size:1.5em}.ui.massive.message{font-size:2em}.ui.table{width:100%;border-collapse:collapse}.ui.table th,.ui.table tr,.ui.table td{border-collapse:collapse;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:all .1s ease-out;-moz-transition:all .1s ease-out;transition:all .1s ease-out}.ui.table thead{border-bottom:1px solid rgba(0,0,0,.03)}.ui.table tfoot th{background-color:rgba(0,0,0,.03)}.ui.table th{cursor:auto;background-color:rgba(0,0,0,.05);text-align:left;color:rgba(0,0,0,.8);padding:.5em .7em;vertical-align:middle}.ui.table thead th:first-child{border-radius:5px 0 0}.ui.table thead th:last-child{border-radius:0 5px 0 0}.ui.table tfoot th:first-child{border-radius:0 0 0 5px}.ui.table tfoot th:last-child{border-radius:0 0 5px}.ui.table tfoot th:only-child{border-radius:0 0 5px 5px}.ui.table td{padding:.4em .7em;vertical-align:middle}.ui.table tfoot{border-top:1px solid rgba(0,0,0,.03)}.ui.table tfoot th{font-weight:400;font-style:italic}.ui.table tbody tr:nth-child(2n){background-color:rgba(0,0,50,.02)}.ui.table>.icon{vertical-align:baseline}.ui.table>.icon:only-child{margin:0}.ui.table.segment:after{display:none}.ui.table.segment.stacked:after{display:block}@media only screen and (max-width:768px){.ui.table{display:block;padding:0}.ui.table thead,.ui.table tfoot{display:none}.ui.table tbody{display:block}.ui.table tr{display:block}.ui.table tr>td{width:100%!important;display:block;border:0!important;padding:.25em .75em;-webkit-box-shadow:0 1px 0 0 rgba(0,0,0,.05)!important;box-shadow:0 1px 0 0 rgba(0,0,0,.05)!important}.ui.table td:first-child{font-weight:700;padding-top:1em}.ui.table td:last-child{-webkit-box-shadow:0 -1px 0 0 rgba(0,0,0,.1) inset!important;box-shadow:0 -1px 0 0 rgba(0,0,0,.1) inset!important;padding-bottom:1em}.ui.table tr>td.warning,.ui.table tr>td.error,.ui.table tr>td.active,.ui.table tr>td.positive,.ui.table tr>td.negative{background-color:transparent!important}}.ui.sortable.table th.disabled:hover{cursor:auto;text-align:left;font-weight:700;color:#333;color:rgba(0,0,0,.8)}.ui.sortable.table thead th:hover{background-color:rgba(0,0,0,.13);color:rgba(0,0,0,.8)}.ui.inverted.sortable.table thead th:hover{background-color:rgba(255,255,255,.13);color:#fff}.ui.table tr.positive,.ui.table td.positive{-webkit-box-shadow:2px 0 0 #119000 inset;box-shadow:2px 0 0 #119000 inset}.ui.table tr.positive td,.ui.table td.positive{background-color:#F2F8F0!important;color:#119000!important}.ui.celled.table tr.positive:hover td,.ui.celled.table tr:hover td.positive,.ui.table tr.positive:hover td,.ui.table td:hover.positive,.ui.table th:hover.positive{background-color:#ECF5E9!important;color:#119000!important}.ui.table tr.negative,.ui.table td.negative{-webkit-box-shadow:2px 0 0 #CD2929 inset;box-shadow:2px 0 0 #CD2929 inset}.ui.table tr.negative td,.ui.table td.negative{background-color:#F9F4F4;color:#CD2929!important}.ui.celled.table tr.negative:hover td,.ui.celled.table tr:hover td.negative,.ui.table tr.negative:hover td,.ui.table td:hover.negative,.ui.table th:hover.negative{background-color:#F2E8E8;color:#CD2929}.ui.table tr.error,.ui.table td.error{-webkit-box-shadow:2px 0 0 #CD2929 inset;box-shadow:2px 0 0 #CD2929 inset}.ui.table tr.error td,.ui.table td.error,.ui.table th.error{background-color:#F9F4F4;color:#CD2929}.ui.celled.table tr.error:hover td,.ui.celled.table tr:hover td.error,.ui.table tr.error:hover td,.ui.table td:hover.error,.ui.table th:hover.error{background-color:#F2E8E8;color:#CD2929}.ui.table tr.warning,.ui.table td.warning{-webkit-box-shadow:2px 0 0 #7D6C00 inset;box-shadow:2px 0 0 #7D6C00 inset}.ui.table tr.warning td,.ui.table td.warning,.ui.table th.warning{background-color:#FBF6E9;color:#7D6C00}.ui.celled.table tr.warning:hover td,.ui.celled.table tr:hover td.warning,.ui.table tr.warning:hover td,.ui.table td:hover.warning,.ui.table th:hover.warning{background-color:#F3EDDC;color:#7D6C00}.ui.table tr.active,.ui.table td.active{-webkit-box-shadow:2px 0 0 rgba(50,50,50,.9) inset;box-shadow:2px 0 0 rgba(50,50,50,.9) inset}.ui.table tr.active td,.ui.table tr td.active{background-color:#E0E0E0;color:rgba(50,50,50,.9)}.ui.table tr.disabled td,.ui.table tr td.disabled,.ui.table tr.disabled:hover td,.ui.table tr:hover td.disabled{color:rgba(150,150,150,.3)}.ui.two.column.table td{width:50%}.ui.three.column.table td{width:33.3333%}.ui.four.column.table td{width:25%}.ui.five.column.table td{width:20%}.ui.six.column.table td{width:16.66667%}.ui.seven.column.table td{width:14.2857%}.ui.eight.column.table td{width:12.5%}.ui.nine.column.table td{width:11.1111%}.ui.ten.column.table td{width:10%}.ui.eleven.column.table td{width:9.0909%}.ui.twelve.column.table td{width:8.3333%}.ui.thirteen.column.table td{width:7.6923%}.ui.fourteen.column.table td{width:7.1428%}.ui.fifteen.column.table td{width:6.6666%}.ui.sixteen.column.table td{width:6.25%}.ui.table th.one.wide,.ui.table td.one.wide{width:6.25%}.ui.table th.two.wide,.ui.table td.two.wide{width:12.5%}.ui.table th.three.wide,.ui.table td.three.wide{width:18.75%}.ui.table th.four.wide,.ui.table td.four.wide{width:25%}.ui.table th.five.wide,.ui.table td.five.wide{width:31.25%}.ui.table th.six.wide,.ui.table td.six.wide{width:37.5%}.ui.table th.seven.wide,.ui.table td.seven.wide{width:43.75%}.ui.table th.eight.wide,.ui.table td.eight.wide{width:50%}.ui.table th.nine.wide,.ui.table td.nine.wide{width:56.25%}.ui.table th.ten.wide,.ui.table td.ten.wide{width:62.5%}.ui.table th.eleven.wide,.ui.table td.eleven.wide{width:68.75%}.ui.table th.twelve.wide,.ui.table td.twelve.wide{width:75%}.ui.table th.thirteen.wide,.ui.table td.thirteen.wide{width:81.25%}.ui.table th.fourteen.wide,.ui.table td.fourteen.wide{width:87.5%}.ui.table th.fifteen.wide,.ui.table td.fifteen.wide{width:93.75%}.ui.table th.sixteen.wide,.ui.table td.sixteen.wide{width:100%}.ui.celled.table{color:rgba(0,0,0,.8)}.ui.celled.table tbody tr,.ui.celled.table tfoot tr{border:0}.ui.celled.table th,.ui.celled.table td{border:1px solid rgba(0,0,0,.1)}.ui.celled.table.segment th:first-child,.ui.celled.table.segment td:first-child{border-left:0}.ui.celled.table.segment th:last-child,.ui.celled.table.segment td:last-child{border-right:0}.ui.sortable.table thead th{cursor:pointer;white-space:nowrap}.ui.sortable.table thead th.sorted,.ui.sortable.table thead th.sorted:hover{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ui.sortable.table thead th:after{display:inline-block;content:'';width:1em;opacity:.8;margin:0 0 0 .5em;font-family:Icons;font-style:normal;font-weight:400;text-decoration:inherit}.ui.sortable.table thead th.ascending:after{content:'\25b4'}.ui.sortable.table thead th.descending:after{content:'\25be'}.ui.inverted.table td{color:rgba(255,255,255,.9)}.ui.inverted.table th{background-color:rgba(0,0,0,.15);color:rgba(255,255,255,.9)}.ui.inverted.table tbody tr:nth-child(2n){background-color:rgba(255,255,255,.06)}.ui.definition.table td:first-child{font-weight:700}.ui.collapsing.table{width:auto}.ui.basic.table th{background-color:transparent;padding:.5em}.ui.basic.table tbody tr{border-bottom:1px solid rgba(0,0,0,.03)}.ui.basic.table td{padding:.8em .5em}.ui.basic.table tbody tr:nth-child(2n){background-color:transparent!important}.ui.padded.table th,.ui.padded.table td{padding:.8em 1em}.ui.compact.table th{padding:.3em .5em}.ui.compact.table td{padding:.2em .5em}.ui.small.table{font-size:.875em}.ui.table{font-size:1em}.ui.large.table{font-size:1.1em}@font-face{font-family:'Basic Icons';src:url(../fonts/basic.icons.eot);src:url(../fonts/basic.icons.eot?#iefix) format('embedded-opentype'),url(../fonts/basic.icons.svg#basic.icons) format('svg'),url(../fonts/basic.icons.woff) format('woff'),url(../fonts/basic.icons.ttf) format('truetype');font-style:normal;font-weight:400;font-variant:normal;text-decoration:inherit;text-transform:none}i.basic.icon{display:inline-block;opacity:.75;margin:0 .25em 0 0;width:1.23em;height:1em;font-family:'Basic Icons';font-style:normal;line-height:1;font-weight:400;text-decoration:inherit;text-align:center;speak:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-font-smoothing:antialiased;font-smoothing:antialiased}i.basic.icon.circle.attention:before{content:'\2757'}i.basic.icon.circle.help:before{content:'\e704'}i.basic.icon.circle.info:before{content:'\e705'}i.basic.icon.add:before{content:'\2795'}i.basic.icon.chart:before{content:'📈'}i.basic.icon.chart.bar:before{content:'📊'}i.basic.icon.chart.pie:before{content:'\e7a2'}i.basic.icon.resize.full:before{content:'\e744'}i.basic.icon.resize.horizontal:before{content:'\2b0d'}i.basic.icon.resize.small:before{content:'\e746'}i.basic.icon.resize.vertical:before{content:'\2b0c'}i.basic.icon.down:before{content:'\2193'}i.basic.icon.down.triangle:before{content:'\25be'}i.basic.icon.down.arrow:before{content:'\e75c'}i.basic.icon.left:before{content:'\2190'}i.basic.icon.left.triangle:before{content:'\25c2'}i.basic.icon.left.arrow:before{content:'\e75d'}i.basic.icon.right:before{content:'\2192'}i.basic.icon.right.triangle:before{content:'\25b8'}i.basic.icon.right.arrow:before{content:'\e75e'}i.basic.icon.up:before{content:'\2191'}i.basic.icon.up.triangle:before{content:'\25b4'}i.basic.icon.up.arrow:before{content:'\e75f'}i.basic.icon.folder:before{content:'\e810'}i.basic.icon.open.folder:before{content:'📂'}i.basic.icon.globe:before{content:'𝌍'}i.basic.icon.desk.globe:before{content:'🌐'}i.basic.icon.star:before{content:'\e801'}i.basic.icon.star.empty:before{content:'\e800'}i.basic.icon.star.half:before{content:'\e701'}i.basic.icon.lock:before{content:'🔒'}i.basic.icon.unlock:before{content:'🔓'}i.basic.icon.layout.grid:before{content:'\e80c'}i.basic.icon.layout.block:before{content:'\e708'}i.basic.icon.layout.list:before{content:'\e80b'}i.basic.icon.heart.empty:before{content:'\2661'}i.basic.icon.heart:before{content:'\2665'}i.basic.icon.asterisk:before{content:'\2731'}i.basic.icon.attachment:before{content:'📎'}i.basic.icon.attention:before{content:'\26a0'}i.basic.icon.trophy:before{content:'🏉'}i.basic.icon.barcode:before{content:'\e792'}i.basic.icon.cart:before{content:'\e813'}i.basic.icon.block:before{content:'🚫'}i.basic.icon.book:before{content:'📖'}i.basic.icon.bookmark:before{content:'🔖'}i.basic.icon.calendar:before{content:'📅'}i.basic.icon.cancel:before{content:'\2716'}i.basic.icon.close:before{content:'\e80d'}i.basic.icon.color:before{content:'\e794'}i.basic.icon.chat:before{content:'\e720'}i.basic.icon.check:before{content:'\2611'}i.basic.icon.time:before{content:'🕔'}i.basic.icon.cloud:before{content:'\2601'}i.basic.icon.code:before{content:'\e714'}i.basic.icon.email:before{content:'\40'}i.basic.icon.settings:before{content:'\26ef'}i.basic.icon.setting:before{content:'\2699'}i.basic.icon.comment:before{content:'\e802'}i.basic.icon.clockwise.counter:before{content:'\27f2'}i.basic.icon.clockwise:before{content:'\27f3'}i.basic.icon.cube:before{content:'\e807'}i.basic.icon.direction:before{content:'\27a2'}i.basic.icon.doc:before{content:'📄'}i.basic.icon.docs:before{content:'\e736'}i.basic.icon.dollar:before{content:'💵'}i.basic.icon.paint:before{content:'\e7b5'}i.basic.icon.edit:before{content:'\270d'}i.basic.icon.eject:before{content:'\2ecf'}i.basic.icon.export:before{content:'\e715'}i.basic.icon.hide:before{content:'\e70b'}i.basic.icon.unhide:before{content:'\e80f'}i.basic.icon.facebook:before{content:'\f301'}i.basic.icon.fast-forward:before{content:'\e804'}i.basic.icon.fire:before{content:'🔥'}i.basic.icon.flag:before{content:'\2691'}i.basic.icon.lightning:before{content:'\26a1'}i.basic.icon.lab:before{content:'\68'}i.basic.icon.flight:before{content:'\2708'}i.basic.icon.forward:before{content:'\27a6'}i.basic.icon.gift:before{content:'🎁'}i.basic.icon.github:before{content:'\f308'}i.basic.icon.globe:before{content:'\e817'}i.basic.icon.headphones:before{content:'🎧'}i.basic.icon.question:before{content:'\2753'}i.basic.icon.home:before{content:'\2302'}i.basic.icon.i:before{content:'\2139'}i.basic.icon.idea:before{content:'💡'}i.basic.icon.open:before{content:'🔗'}i.basic.icon.content:before{content:'\e782'}i.basic.icon.location:before{content:'\e724'}i.basic.icon.mail:before{content:'\2709'}i.basic.icon.mic:before{content:'🎤'}i.basic.icon.minus:before{content:'\2d'}i.basic.icon.money:before{content:'💰'}i.basic.icon.off:before{content:'\e78e'}i.basic.icon.pause:before{content:'\e808'}i.basic.icon.photos:before{content:'\e812'}i.basic.icon.photo:before{content:'🌄'}i.basic.icon.pin:before{content:'📌'}i.basic.icon.play:before{content:'\e809'}i.basic.icon.plus:before{content:'\2b'}i.basic.icon.print:before{content:'\e716'}i.basic.icon.rss:before{content:'\e73a'}i.basic.icon.search:before{content:'🔍'}i.basic.icon.shuffle:before{content:'\e803'}i.basic.icon.tag:before{content:'\e80a'}i.basic.icon.tags:before{content:'\e70d'}i.basic.icon.terminal:before{content:'\e7ac'}i.basic.icon.thumbs.down:before{content:'👎'}i.basic.icon.thumbs.up:before{content:'👍'}i.basic.icon.to-end:before{content:'\e806'}i.basic.icon.to-start:before{content:'\e805'}i.basic.icon.top.list:before{content:'🏆'}i.basic.icon.trash:before{content:'\e729'}i.basic.icon.twitter:before{content:'\f303'}i.basic.icon.upload:before{content:'\e711'}i.basic.icon.user.add:before{content:'\e700'}i.basic.icon.user:before{content:'👤'}i.basic.icon.community:before{content:'\e814'}i.basic.icon.users:before{content:'👥'}i.basic.icon.id:before{content:'\e722'}i.basic.icon.url:before{content:'🔗'}i.basic.icon.zoom.in:before{content:'\e750'}i.basic.icon.zoom.out:before{content:'\e751'}i.dropdown.basic.icon{margin:0 0 0 .5em}i.basic.icon.star{width:auto;margin:0}i.basic.icon.left,i.basic.icon.left,i.basic.icon.left{width:auto;margin:0 .5em 0 0}i.basic.icon.search,i.basic.icon.up,i.basic.icon.down,i.basic.icon.right{width:auto;margin:0 0 0 .5em}i.basic.icon.delete:before{content:'\e80d'}i.basic.icon.dropdown:before{content:'\25be'}i.basic.icon.help:before{content:'\e704'}i.basic.icon.info:before{content:'\e705'}i.basic.icon.error:before{content:'\e80d'}i.basic.icon.dislike:before{content:'\2661'}i.basic.icon.like:before{content:'\2665'}i.basic.icon.eye:before{content:'\e80f'}i.basic.icon.eye.hidden:before{content:'\e70b'}i.basic.icon.date:before{content:'📅'}i.basic.icon.hover{opacity:1}i.basic.icon.active{opacity:1}i.emphasized.basic.icon{opacity:1}i.basic.icon.disabled{opacity:.3}i.link.basic.icon{cursor:pointer;opacity:.7;-webkit-transition:opacity .3s ease-out;-moz-transition:opacity .3s ease-out;transition:opacity .3s ease-out}.link.basic.icon:hover{opacity:1!important}i.circular.basic.icon{border-radius:500px!important;padding:.5em 0!important;-webkit-box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;line-height:1!important;width:2em!important;height:2em!important}i.circular.inverted.basic.icon{border:0;-webkit-box-shadow:none;box-shadow:none}i.vertically.flipped.basic.icon{-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}i.horizontally.flipped.basic.icon{-webkit-transform:scale(-1,1);-moz-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}i.left.rotated.basic.icon{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}i.right.rotated.basic.icon{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}i.square.basic.icon{width:2em;height:2em;padding:.5em .35em!important;-webkit-box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;vertical-align:baseline}i.square.basic.icon:before{vertical-align:middle}i.square.inverted.basic.icon{border:0;-webkit-box-shadow:none;box-shadow:none}i.inverted.basic.icon{background-color:#222;color:#FFF}i.blue.basic.icon{color:#6ECFF5!important}i.black.basic.icon{color:#5C6166!important}i.green.basic.icon{color:#A1CF64!important}i.red.basic.icon{color:#D95C5C!important}i.purple.basic.icon{color:#564F8A!important}i.teal.basic.icon{color:#00B5AD!important}i.inverted.black.basic.icon{background-color:#5C6166!important;color:#FFF!important}i.inverted.blue.basic.icon{background-color:#6ECFF5!important;color:#FFF!important}i.inverted.green.basic.icon{background-color:#A1CF64!important;color:#FFF!important}i.inverted.red.basic.icon{background-color:#D95C5C!important;color:#FFF!important}i.inverted.purple.basic.icon{background-color:#564F8A!important;color:#FFF!important}i.inverted.teal.basic.icon{background-color:#00B5AD!important;color:#FFF!important}i.small.basic.icon{font-size:.875em}i.basic.icon{font-size:1em}i.large.basic.icon{font-size:1.5em;margin-right:.2em;vertical-align:middle}i.big.basic.icon{font-size:2em;margin-right:.5em;vertical-align:middle}i.huge.basic.icon{font-size:4em;margin-right:.75em;vertical-align:middle}i.massive.basic.icon{font-size:8em;margin-right:1em;vertical-align:middle}.ui.button{cursor:pointer;display:inline-block;vertical-align:middle;min-height:1em;outline:0;border:0;background-color:#FAFAFA;color:gray;margin:0;padding:.8em 1.5em;font-size:1rem;text-transform:uppercase;line-height:1;font-weight:700;font-style:normal;text-align:center;text-decoration:none;background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,0)),to(rgba(0,0,0,.05)));background-image:-webkit-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.05));background-image:-moz-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.05));background-image:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.05));border-radius:.25em;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.08) inset;box-shadow:0 0 0 1px rgba(0,0,0,.08) inset;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-transition:opacity .25s ease,background-color .25s ease,color .25s ease,background .25s ease,-webkit-box-shadow .25s ease;-moz-transition:opacity .25s ease,background-color .25s ease,color .25s ease,background .25s ease,box-shadow .25s ease;transition:opacity .25s ease,background-color .25s ease,color .25s ease,background .25s ease,box-shadow .25s ease}.ui.buttons .active.button,.ui.active.button{background-color:#EAEAEA;background-image:none;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.05) inset!important;box-shadow:0 0 0 1px rgba(0,0,0,.05) inset!important;color:rgba(0,0,0,.7)}.ui.button:hover{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,0)),to(rgba(0,0,0,.08)));background-image:-webkit-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.08));background-image:-moz-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.08));background-image:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.08));color:rgba(0,0,0,.7)}.ui.button.active:hover{background-image:none}.ui.button:hover .icon,.ui.button.hover .icon{opacity:.85}.ui.button:active,.ui.active.button:active{background-color:#F1F1F1;color:rgba(0,0,0,.7);-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.05) inset!important;box-shadow:0 0 0 1px rgba(0,0,0,.05) inset!important}.ui.loading.button{position:relative;cursor:default;background-color:#FFF!important;color:transparent!important;-webkit-transition:all 0s linear;-moz-transition:all 0s linear;transition:all 0s linear}.ui.loading.button:after{position:absolute;top:0;left:0;width:100%;height:100%;content:'';background:transparent url(../images/loader-mini.gif) no-repeat 50% 50%}.ui.labeled.icon.loading.button .icon{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.ui.disabled.button,.ui.disabled.button:hover,.ui.disabled.button.active{background-color:#DDD!important;cursor:default;color:rgba(0,0,0,.5)!important;opacity:.3!important;background-image:none!important;-webkit-box-shadow:none!important;box-shadow:none!important}.ui.animated.button{position:relative;overflow:hidden}.ui.animated.button .visible.content{position:relative}.ui.animated.button .hidden.content{position:absolute;width:100%}.ui.animated.button .visible.content,.ui.animated.button .hidden.content{-webkit-transition:right .3s ease 0s;-moz-transition:right .3s ease 0s;transition:right .3s ease 0s}.ui.animated.button .visible.content{left:auto;right:0}.ui.animated.button .hidden.content{top:50%;left:auto;right:-100%;margin-top:-.55em}.ui.animated.button:hover .visible.content{left:auto;right:200%}.ui.animated.button:hover .hidden.content{left:auto;right:0}.ui.vertical.animated.button .visible.content,.ui.vertical.animated.button .hidden.content{-webkit-transition:top .3s ease 0s,-webkit-transform .3s ease 0s;-moz-transition:top .3s ease 0s,-moz-transform .3s ease 0s;transition:top .3s ease 0s,transform .3s ease 0s}.ui.vertical.animated.button .visible.content{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%);right:auto}.ui.vertical.animated.button .hidden.content{top:-100%;left:0;right:auto}.ui.vertical.animated.button:hover .visible.content{-webkit-transform:translateY(200%);-moz-transform:translateY(200%);-ms-transform:translateY(200%);transform:translateY(200%);right:auto}.ui.vertical.animated.button:hover .hidden.content{top:50%;right:auto}.ui.fade.animated.button .visible.content,.ui.fade.animated.button .hidden.content{-webkit-transition:opacity .3s ease 0s,-webkit-transform .3s ease 0s;-moz-transition:opacity .3s ease 0s,-moz-transform .3s ease 0s;transition:opacity .3s ease 0s,transform .3s ease 0s}.ui.fade.animated.button .visible.content{left:auto;right:auto;opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.ui.fade.animated.button .hidden.content{opacity:0;left:0;right:auto;-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.ui.fade.animated.button:hover .visible.content{left:auto;right:auto;opacity:0;-webkit-transform:scale(0.7);-moz-transform:scale(0.7);-ms-transform:scale(0.7);transform:scale(0.7)}.ui.fade.animated.button:hover .hidden.content{left:0;right:auto;opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.ui.primary.buttons .button,.ui.primary.button{background-color:#D95C5C;color:#FFF}.ui.primary.buttons .button:hover,.ui.primary.button:hover,.ui.primary.buttons .active.button,.ui.primary.button.active{background-color:#E75859;color:#FFF}.ui.primary.buttons .button:active,.ui.primary.button:active{background-color:#D24B4C;color:#FFF}.ui.secondary.buttons .button,.ui.secondary.button{background-color:#00B5AD;color:#FFF}.ui.secondary.buttons .button:hover,.ui.secondary.button:hover,.ui.secondary.buttons .active.button,.ui.secondary.button.active{background-color:#009A93;color:#FFF}.ui.secondary.buttons .button:active,.ui.secondary.button:active{background-color:#00847E;color:#FFF}.ui.facebook.button{background-color:#3B579D;color:#FFF}.ui.facebook.button:hover{background-color:#3A59A9;color:#FFF}.ui.facebook.button:active{background-color:#334F95;color:#FFF}.ui.twitter.button{background-color:#4092CC;color:#FFF}.ui.twitter.button:hover{background-color:#399ADE;color:#FFF}.ui.twitter.button:active{background-color:#3283BC;color:#FFF}.ui.google.plus.button{background-color:#D34836;color:#FFF}.ui.google.plus.button:hover{background-color:#E3432E;color:#FFF}.ui.google.plus.button:active{background-color:#CA3A27;color:#FFF}.ui.linkedin.button{background-color:#1F88BE;color:#FFF}.ui.linkedin.button:hover{background-color:#1394D6;color:#FFF}.ui.linkedin.button:active{background-color:#1179AE;color:#FFF}.ui.youtube.button{background-color:#CC181E;color:#FFF}.ui.youtube.button:hover{background-color:#DF0209;color:#FFF}.ui.youtube.button:active{background-color:#A50006;color:#FFF}.ui.instagram.button{background-color:#49769C;color:#FFF}.ui.instagram.button:hover{background-color:#4781B1;color:#FFF}.ui.instagram.button:active{background-color:#38658A;color:#FFF}.ui.pinterest.button{background-color:#00ACED;color:#FFF}.ui.pinterest.button:hover{background-color:#00B9FF;color:#FFF}.ui.pinterest.button:active{background-color:#009EDA;color:#FFF}.ui.vk.button{background-color:#4D7198;color:#FFF}.ui.vk.button:hover{background-color:#537AA5;color:#FFF}.ui.vk.button:active{background-color:#405E7E;color:#FFF}.ui.button>.icon{margin-right:.6em;line-height:1;-webkit-transition:opacity .1s ease;-moz-transition:opacity .1s ease;transition:opacity .1s ease}.ui.left.floated.buttons,.ui.left.floated.button{float:left;margin-right:.25em}.ui.right.floated.buttons,.ui.right.floated.button{float:right;margin-left:.25em}.ui.buttons .button,.ui.button{font-size:1rem}.ui.mini.buttons .button,.ui.mini.buttons .or,.ui.mini.button{font-size:.8rem}.ui.mini.buttons .button,.ui.mini.button{padding:.6em .8em}.ui.mini.icon.buttons .button,.ui.mini.buttons .icon.button{padding:.6em}.ui.tiny.buttons .button,.ui.tiny.buttons .or,.ui.tiny.button{font-size:.875em}.ui.tiny.buttons .button,.ui.tiny.buttons .button,.ui.tiny.button{padding:.6em .8em}.ui.tiny.icon.buttons .button,.ui.tiny.buttons .icon.button{padding:.6em}.ui.small.buttons .button,.ui.small.buttons .or,.ui.small.button{font-size:.875rem}.ui.large.buttons .button,.ui.large.buttons .or,.ui.large.button{font-size:1.125rem}.ui.big.buttons .button,.ui.big.buttons .or,.ui.big.button{font-size:1.25rem}.ui.huge.buttons .button,.ui.huge.buttons .or,.ui.huge.button{font-size:1.375rem}.ui.massive.buttons .button,.ui.massive.buttons .or,.ui.massive.button{font-size:1.5rem;font-weight:700}.ui.tiny.buttons .or:before,.ui.mini.buttons .or:before{width:1.45em;height:1.55em;line-height:1.4;margin-left:-.725em;margin-top:-.25em}.ui.tiny.buttons .or:after,.ui.mini.buttons .or:after{height:1.45em}.ui.huge.loading.button:after{background-image:url(../images/loader-small.gif)}.ui.massive.buttons .loading.button:after,.ui.gigantic.buttons .loading.button:after,.ui.massive.loading.button:after,.ui.gigantic.loading.button:after{background-image:url(../images/loader-medium.gif)}.ui.huge.loading.button:after,.ui.huge.loading.button.active:after{background-image:url(../images/loader-small.gif)}.ui.massive.buttons .loading.button:after,.ui.gigantic.buttons .loading.button:after,.ui.massive.loading.button:after,.ui.gigantic.loading.button:after,.ui.massive.buttons .loading.button.active:after,.ui.gigantic.buttons .loading.button.active:after,.ui.massive.loading.button.active:after,.ui.gigantic.loading.button.active:after{background-image:url(../images/loader-medium.gif)}.ui.icon.buttons .button,.ui.icon.button{padding:.8em}.ui.icon.buttons .button>.icon,.ui.icon.button>.icon{opacity:.9;margin:0;vertical-align:top}.ui.basic.buttons .button,.ui.basic.button{background-color:transparent!important;background-image:none;color:gray!important;font-weight:400;text-transform:none;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset}.ui.basic.buttons{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;border-radius:.25em}.ui.basic.buttons .button:hover,.ui.basic.button:hover{background-image:none;color:#7F7F7F!important;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.18) inset;box-shadow:0 0 0 1px rgba(0,0,0,.18) inset}.ui.basic.buttons .button:active,.ui.basic.button:active{background-color:rgba(0,0,0,.02)!important;color:#7F7F7F!important;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset}.ui.basic.buttons .button.active,.ui.basic.button.active{background-color:rgba(0,0,0,.05);color:#7F7F7F;-webkit-box-shadow:0 0 0 1px #BDBDBD inset;box-shadow:0 0 0 1px #BDBDBD inset}.ui.basic.buttons .button.active:hover,.ui.basic.button.active:hover{background-color:rgba(0,0,0,.1)}.ui.basic.inverted.buttons .button,.ui.basic.inverted.button{color:#FAFAFA!important;-webkit-box-shadow:0 0 0 1px rgba(255,255,255,.3) inset;box-shadow:0 0 0 1px rgba(255,255,255,.3) inset}.ui.basic.inverted.buttons .button:hover,.ui.basic.inverted.button:hover{background-image:none;color:#FFF!important;-webkit-box-shadow:0 0 0 1px rgba(255,255,255,.5) inset;box-shadow:0 0 0 1px rgba(255,255,255,.5) inset}.ui.basic.inverted.buttons .button:active,.ui.basic.inverted.button:active{background-color:rgba(255,255,255,.05)!important;color:#FFF!important;-webkit-box-shadow:0 0 0 1px rgba(255,255,255,.8) inset!important;box-shadow:0 0 0 1px rgba(255,255,255,.8) inset!important}.ui.basic.inverted.buttons .button.active,.ui.basic.inverted.button.active{background-color:rgba(255,255,255,.5);color:#FFF;-webkit-box-shadow:none;box-shadow:none}.ui.basic.inverted.buttons .button.active:hover,.ui.basic.inverted.button.active:hover{background-color:rgba(0,0,0,.1)}.ui.basic.buttons .button{border-left:1px solid rgba(0,0,0,.1);-webkit-box-shadow:none;box-shadow:none}.ui.basic.buttons .button:hover,.ui.basic.buttons .button:active{-webkit-box-shadow:none;box-shadow:none}.ui.basic.buttons .button.active,.ui.basic.buttons .button.active:hover{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.2) inset;box-shadow:0 0 0 1px rgba(0,0,0,.2) inset}.ui.labeled.icon.buttons .button,.ui.labeled.icon.button{position:relative;padding-left:4em!important;padding-right:1.4em!important}.ui.labeled.icon.buttons>.button>.icon,.ui.labeled.icon.button>.icon{position:absolute;top:0;left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;width:2.75em;height:100%;padding-top:.8em;background-color:rgba(0,0,0,.05);text-align:center;border-radius:.25em 0 0 .25em;line-height:1;-webkit-box-shadow:-1px 0 0 0 rgba(0,0,0,.05) inset;box-shadow:-1px 0 0 0 rgba(0,0,0,.05) inset}.ui.labeled.icon.buttons .button>.icon{border-radius:0}.ui.labeled.icon.buttons .button:first-child>.icon{border-top-left-radius:.25em;border-bottom-left-radius:.25em}.ui.labeled.icon.buttons .button:last-child>.icon{border-top-right-radius:.25em;border-bottom-right-radius:.25em}.ui.vertical.labeled.icon.buttons .button:first-child>.icon{border-radius:0;border-top-left-radius:.25em}.ui.vertical.labeled.icon.buttons .button:last-child>.icon{border-radius:0;border-bottom-left-radius:.25em}.ui.right.labeled.icon.button{padding-left:1.4em!important;padding-right:4em!important}.ui.left.fluid.labeled.icon.button,.ui.right.fluid.labeled.icon.button{padding-left:1.4em!important;padding-right:1.4em!important}.ui.right.labeled.icon.button .icon{left:auto;right:0;border-radius:0 .25em .25em 0;-webkit-box-shadow:1px 0 0 0 rgba(0,0,0,.05) inset;box-shadow:1px 0 0 0 rgba(0,0,0,.05) inset}.ui.toggle.buttons .active.button,.ui.buttons .button.toggle.active,.ui.button.toggle.active{background-color:#5BBD72!important;color:#FFF!important;-webkit-box-shadow:none!important;box-shadow:none!important}.ui.button.toggle.active:hover{background-color:#58CB73!important;color:#FFF!important;-webkit-box-shadow:none!important;box-shadow:none!important}.ui.circular.button{border-radius:10em}.ui.attached.button{display:block;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1)!important;box-shadow:0 0 0 1px rgba(0,0,0,.1)!important}.ui.attached.top.button{border-radius:.25em .25em 0 0}.ui.attached.bottom.button{border-radius:0 0 .25em .25em}.ui.attached.left.button{display:inline-block;border-left:0;padding-right:.75em;text-align:right;border-radius:.25em 0 0 .25em}.ui.attached.right.button{display:inline-block;padding-left:.75em;text-align:left;border-radius:0 .25em .25em 0}.ui.buttons .or{position:relative;float:left;width:.3em;height:1.1em;z-index:3}.ui.buttons .or:before{position:absolute;top:50%;left:50%;content:'or';background-color:#FFF;margin-top:-.1em;margin-left:-.9em;width:1.8em;height:1.8em;line-height:1.55;color:#AAA;font-style:normal;font-weight:400;text-align:center;border-radius:500px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.buttons .or[data-text]:before{content:attr(data-text)}.ui.buttons .or:after{position:absolute;top:0;left:0;content:' ';width:.3em;height:1.7em;background-color:transparent;border-top:.5em solid #FFF;border-bottom:.5em solid #FFF}.ui.fluid.buttons .or{width:0!important}.ui.fluid.buttons .or:after{display:none}.attached.ui.buttons{margin:0;border-radius:4px 4px 0 0}.attached.ui.buttons .button:first-child{border-radius:4px 0 0}.attached.ui.buttons .button:last-child{border-radius:0 4px 0 0}.bottom.attached.ui.buttons{margin-top:-1px;border-radius:0 0 4px 4px}.bottom.attached.ui.buttons .button:first-child{border-radius:0 0 0 4px}.bottom.attached.ui.buttons .button:last-child{border-radius:0 0 4px}.left.attached.ui.buttons{margin-left:-1px;border-radius:0 4px 4px 0}.left.attached.ui.buttons .button:first-child{margin-left:-1px;border-radius:0 4px 0 0}.left.attached.ui.buttons .button:last-child{margin-left:-1px;border-radius:0 0 4px}.right.attached.ui.buttons,.right.attached.ui.buttons .button{margin-right:-1px;border-radius:4px 0 0 4px}.right.attached.ui.buttons .button:first-child{margin-left:-1px;border-radius:4px 0 0}.right.attached.ui.buttons .button:last-child{margin-left:-1px;border-radius:0 0 0 4px}.ui.fluid.buttons,.ui.button.fluid,.ui.fluid.buttons>.button{display:block;width:100%}.ui.\32.buttons>.button,.ui.two.buttons>.button{width:50%}.ui.\33.buttons>.button,.ui.three.buttons>.button{width:33.333%}.ui.\34.buttons>.button,.ui.four.buttons>.button{width:25%}.ui.\35.buttons>.button,.ui.five.buttons>.button{width:20%}.ui.\36.buttons>.button,.ui.six.buttons>.button{width:16.666%}.ui.\37.buttons>.button,.ui.seven.buttons>.button{width:14.285%}.ui.\38.buttons>.button,.ui.eight.buttons>.button{width:12.5%}.ui.\39.buttons>.button,.ui.nine.buttons>.button{width:11.11%}.ui.\31\30.buttons>.button,.ui.ten.buttons>.button{width:10%}.ui.\31\31.buttons>.button,.ui.eleven.buttons>.button{width:9.09%}.ui.\31\32.buttons>.button,.ui.twelve.buttons>.button{width:8.3333%}.ui.fluid.vertical.buttons,.ui.fluid.vertical.buttons>.button{display:block;width:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.\32.vertical.buttons>.button,.ui.two.vertical.buttons>.button{height:50%}.ui.\33.vertical.buttons>.button,.ui.three.vertical.buttons>.button{height:33.333%}.ui.\34.vertical.buttons>.button,.ui.four.vertical.buttons>.button{height:25%}.ui.\35.vertical.buttons>.button,.ui.five.vertical.buttons>.button{height:20%}.ui.\36.vertical.buttons>.button,.ui.six.vertical.buttons>.button{height:16.666%}.ui.\37.vertical.buttons>.button,.ui.seven.vertical.buttons>.button{height:14.285%}.ui.\38.vertical.buttons>.button,.ui.eight.vertical.buttons>.button{height:12.5%}.ui.\39.vertical.buttons>.button,.ui.nine.vertical.buttons>.button{height:11.11%}.ui.\31\30.vertical.buttons>.button,.ui.ten.vertical.buttons>.button{height:10%}.ui.\31\31.vertical.buttons>.button,.ui.eleven.vertical.buttons>.button{height:9.09%}.ui.\31\32.vertical.buttons>.button,.ui.twelve.vertical.buttons>.button{height:8.3333%}.ui.black.buttons .button,.ui.black.button{background-color:#5C6166;color:#FFF}.ui.black.buttons .button:hover,.ui.black.button:hover{background-color:#4C4C4C;color:#FFF}.ui.black.buttons .button:active,.ui.black.button:active{background-color:#333;color:#FFF}.ui.green.buttons .button,.ui.green.button{background-color:#5BBD72;color:#FFF}.ui.green.buttons .button:hover,.ui.green.button:hover,.ui.green.buttons .active.button,.ui.green.button.active{background-color:#58cb73;color:#FFF}.ui.green.buttons .button:active,.ui.green.button:active{background-color:#4CB164;color:#FFF}.ui.red.buttons .button,.ui.red.button{background-color:#D95C5C;color:#FFF}.ui.red.buttons .button:hover,.ui.red.button:hover,.ui.red.buttons .active.button,.ui.red.button.active{background-color:#E75859;color:#FFF}.ui.red.buttons .button:active,.ui.red.button:active{background-color:#D24B4C;color:#FFF}.ui.orange.buttons .button,.ui.orange.button{background-color:#E96633;color:#FFF}.ui.orange.buttons .button:hover,.ui.orange.button:hover,.ui.orange.buttons .active.button,.ui.orange.button.active{background-color:#FF7038;color:#FFF}.ui.orange.buttons .button:active,.ui.orange.button:active{background-color:#DA683B;color:#FFF}.ui.blue.buttons .button,.ui.blue.button{background-color:#6ECFF5;color:#FFF}.ui.blue.buttons .button:hover,.ui.blue.button:hover,.ui.blue.buttons .active.button,.ui.blue.button.active{background-color:#1AB8F3;color:#FFF}.ui.blue.buttons .button:active,.ui.blue.button:active{background-color:#0AA5DF;color:#FFF}.ui.purple.buttons .button,.ui.purple.button{background-color:#564F8A;color:#FFF}.ui.purple.buttons .button:hover,.ui.purple.button:hover,.ui.purple.buttons .active.button,.ui.purple.button.active{background-color:#3E3773;color:#FFF}.ui.purple.buttons .button:active,.ui.purple.button:active{background-color:#2E2860;color:#FFF}.ui.teal.buttons .button,.ui.teal.button{background-color:#00B5AD;color:#FFF}.ui.teal.buttons .button:hover,.ui.teal.button:hover,.ui.teal.buttons .active.button,.ui.teal.button.active{background-color:#009A93;color:#FFF}.ui.teal.buttons .button:active,.ui.teal.button:active{background-color:#00847E;color:#FFF}.ui.positive.buttons .button,.ui.positive.button{background-color:#5BBD72!important;color:#FFF}.ui.positive.buttons .button:hover,.ui.positive.button:hover,.ui.positive.buttons .active.button,.ui.positive.button.active{background-color:#58CB73!important;color:#FFF}.ui.positive.buttons .button:active,.ui.positive.button:active{background-color:#4CB164!important;color:#FFF}.ui.negative.buttons .button,.ui.negative.button{background-color:#D95C5C!important;color:#FFF}.ui.negative.buttons .button:hover,.ui.negative.button:hover,.ui.negative.buttons .active.button,.ui.negative.button.active{background-color:#E75859!important;color:#FFF}.ui.negative.buttons .button:active,.ui.negative.button:active{background-color:#D24B4C!important;color:#FFF}.ui.buttons{display:inline-block;vertical-align:middle}.ui.buttons:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui.buttons .button:first-child{border-left:0}.ui.buttons .button{float:left;border-radius:0}.ui.buttons .button:first-child{margin-left:0;border-top-left-radius:.25em;border-bottom-left-radius:.25em}.ui.buttons .button:last-child{border-top-right-radius:.25em;border-bottom-right-radius:.25em}.ui.vertical.buttons{display:inline-block}.ui.vertical.buttons .button{display:block;float:none;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset}.ui.vertical.buttons .button:first-child,.ui.vertical.buttons .mini.button:first-child,.ui.vertical.buttons .tiny.button:first-child,.ui.vertical.buttons .small.button:first-child,.ui.vertical.buttons .massive.button:first-child,.ui.vertical.buttons .huge.button:first-child{margin-top:0;border-radius:.25em .25em 0 0}.ui.vertical.buttons .button:last-child,.ui.vertical.buttons .mini.button:last-child,.ui.vertical.buttons .tiny.button:last-child,.ui.vertical.buttons .small.button:last-child,.ui.vertical.buttons .massive.button:last-child,.ui.vertical.buttons .huge.button:last-child,.ui.vertical.buttons .gigantic.button:last-child{border-radius:0 0 .25em .25em}.ui.divider{margin:1rem 0rem;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(255,255,255,.8);line-height:1;height:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ui.vertical.divider,.ui.horizontal.divider{position:absolute;border:0;height:0;margin:0;background-color:transparent;font-size:.875rem;font-weight:700;text-align:center;text-transform:uppercase;color:rgba(0,0,0,.8)}.ui.vertical.divider{position:absolute;z-index:2;top:50%;left:50%;margin:0 0 0 -3%;width:6%;height:50%;line-height:0;padding:0}.ui.vertical.divider:before,.ui.vertical.divider:after{position:absolute;left:50%;content:" ";z-index:3;border-left:1px solid rgba(0,0,0,.1);border-right:1px solid rgba(255,255,255,.8);width:0;height:80%}.ui.vertical.divider:before{top:-100%}.ui.vertical.divider:after{top:auto;bottom:0}.ui.horizontal.divider{position:relative;top:0;left:0;margin:1rem 1.5rem;height:auto;padding:0;line-height:1}.ui.horizontal.divider:before,.ui.horizontal.divider:after{position:absolute;content:" ";z-index:3;width:50%;top:50%;height:0;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(255,255,255,.8)}.ui.horizontal.divider:before{left:0;margin-left:-1.5rem}.ui.horizontal.divider:after{left:auto;right:0;margin-right:-1.5rem}.ui.divider>.icon{margin:0;font-size:1rem;vertical-align:middle}.ui.divider.inverted{color:#fff}.ui.vertical.inverted.divider,.ui.horizontal.inverted.divider{color:rgba(255,255,255,.9)}.ui.divider.inverted,.ui.divider.inverted:after,.ui.divider.inverted:before{border-top-color:rgba(0,0,0,.15);border-bottom-color:rgba(255,255,255,.15);border-left-color:rgba(0,0,0,.15);border-right-color:rgba(255,255,255,.15)}.ui.fitted.divider{margin:0}.ui.clearing.divider{clear:both}.ui.section.divider{margin-top:2rem;margin-bottom:2rem}.ui.header{border:0;margin:1em 0 1rem;padding:0;font-size:1.33em;font-weight:700;line-height:1.33}.ui.header .sub.header{font-size:1rem;font-weight:400;margin:0;padding:0;line-height:1.2;color:rgba(0,0,0,.5)}.ui.header .icon{display:table-cell;vertical-align:middle;padding-right:.5em}.ui.header .icon:only-child{display:inline-block;vertical-align:baseline}.ui.header .content{display:inline-block;vertical-align:top}.ui.header .icon+.content{padding-left:.5em;display:table-cell}.ui.header:first-child{margin-top:0}.ui.header:last-child{margin-bottom:0}.ui.header+p{margin-top:0}h1.ui.header{min-height:1rem;line-height:1.33;font-size:2rem}h2.ui.header{line-height:1.33;font-size:1.75rem}h3.ui.header{line-height:1.33;font-size:1.33rem}h4.ui.header{line-height:1.33;font-size:1.1rem}h5.ui.header{line-height:1.2;font-size:1rem}.ui.huge.header{min-height:1em;font-size:2em}.ui.large.header{font-size:1.75em}.ui.medium.header{font-size:1.33em}.ui.small.header{font-size:1.1em}.ui.tiny.header{font-size:1em}.ui.icon.header{display:inline-block;text-align:center}.ui.icon.header .icon{float:none;display:block;font-size:3em;margin:0 auto .2em;padding:0}.ui.icon.header .content{display:block}.ui.icon.header .circular.icon,.ui.icon.header .square.icon{font-size:2em}.ui.block.icon.header .icon{margin-bottom:0}.ui.icon.header.aligned{margin-left:auto;margin-right:auto;display:block}.ui.disabled.header{opacity:.5}.ui.blue.header{color:#6ECFF5!important}.ui.black.header{color:#5C6166!important}.ui.green.header{color:#A1CF64!important}.ui.red.header{color:#D95C5C!important}.ui.purple.header{color:#564F8A!important}.ui.teal.header{color:#00B5AD!important}.ui.blue.dividing.header{border-bottom:3px solid #6ECFF5}.ui.black.dividing.header{border-bottom:3px solid #5C6166}.ui.green.dividing.header{border-bottom:3px solid #A1CF64}.ui.red.dividing.header{border-bottom:3px solid #D95C5C}.ui.purple.dividing.header{border-bottom:3px solid #564F8A}.ui.teal.dividing.header{border-bottom:3px solid #00B5AD}.ui.inverted.header{color:#FFF}.ui.inverted.header .sub.header{color:rgba(255,255,255,.85)}.ui.inverted.black.header{background-color:#5C6166!important;color:#FFF!important}.ui.inverted.blue.header{background-color:#6ECFF5!important;color:#FFF!important}.ui.inverted.green.header{background-color:#A1CF64!important;color:#FFF!important}.ui.inverted.red.header{background-color:#D95C5C!important;color:#FFF!important}.ui.inverted.purple.header{background-color:#564F8A!important;color:#FFF!important}.ui.inverted.teal.header{background-color:#00B5AD!important;color:#FFF!important}.ui.inverted.block.header{border-bottom:0}.ui.left.aligned.header{text-align:left}.ui.right.aligned.header{text-align:right}.ui.center.aligned.header{text-align:center}.ui.justified.header{text-align:justify}.ui.justified.header:after{display:inline-block;content:'';width:100%}.ui.floated.header,.ui.left.floated.header{float:left;margin-top:0;margin-right:.5em}.ui.right.floated.header{float:right;margin-top:0;margin-left:.5em}.ui.fitted.header{padding:0}.ui.dividing.header{padding-bottom:.2rem;border-bottom:1px solid rgba(0,0,0,.1)}.ui.dividing.header .sub.header{padding-bottom:.5em}.ui.dividing.header .icon{margin-bottom:.2em}.ui.block.header{background-color:rgba(0,0,0,.05);padding:.5em 1em}.ui.attached.header{background-color:#E0E0E0;padding:.5em 1rem;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1)}.ui.top.attached.header{margin-bottom:0;border-radius:.3125em .3125em 0 0}.ui.bottom.attached.header{margin-top:0;border-radius:0 0 .3125em .3125em}@font-face{font-family:Icons;src:url(../fonts/icons.eot);src:url(../fonts/icons.eot?#iefix) format('embedded-opentype'),url(../fonts/icons.svg#icons) format('svg'),url(../fonts/icons.woff) format('woff'),url(../fonts/icons.ttf) format('truetype');font-style:normal;font-weight:400;font-variant:normal;text-decoration:inherit;text-transform:none}i.icon{display:inline-block;opacity:.75;margin:0 .25em 0 0;width:1.23em;height:1em;font-family:Icons;font-style:normal;line-height:1;font-weight:400;text-decoration:inherit;text-align:center;speak:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}i.icon.left:before{content:"\f060"}i.icon.right:before{content:"\f061"}i.icon.add.sign.box:before{content:"\f0fe"}i.icon.add.sign:before{content:"\f055"}i.icon.add:before{content:"\f067"}i.icon.adjust:before{content:"\f042"}i.icon.adn:before{content:"\f170"}i.icon.align.center:before{content:"\f037"}i.icon.align.justify:before{content:"\f039"}i.icon.align.left:before{content:"\f036"}i.icon.align.right:before{content:"\f038"}i.icon.ambulance:before{content:"\f0f9"}i.icon.anchor:before{content:"\f13d"}i.icon.android:before{content:"\f17b"}i.icon.angle.down:before{content:"\f107"}i.icon.angle.left:before{content:"\f104"}i.icon.angle.right:before{content:"\f105"}i.icon.angle.up:before{content:"\f106"}i.icon.apple:before{content:"\f179"}i.icon.archive:before{content:"\f187"}i.icon.arrow.down:before{content:"\f078"}i.icon.arrow.left:before{content:"\f053"}i.icon.arrow.right:before{content:"\f054"}i.icon.arrow.sign.down:before{content:"\f13a"}i.icon.arrow.sign.left:before{content:"\f137"}i.icon.arrow.sign.right:before{content:"\f138"}i.icon.arrow.sign.up:before{content:"\f139"}i.icon.arrow.up:before{content:"\f077"}i.icon.asterisk:before{content:"\f069"}i.icon.attachment:before{content:"\f0c6"}i.icon.attention:before{content:"\f06a"}i.icon.backward:before{content:"\f04a"}i.icon.ban.circle:before{content:"\f05e"}i.icon.bar.chart:before{content:"\f080"}i.icon.barcode:before{content:"\f02a"}i.icon.beer:before{content:"\f0fc"}i.icon.bell.outline:before{content:"\f0a2"}i.icon.bell:before{content:"\f0f3"}i.icon.bitbucket.sign:before{content:"\f172"}i.icon.bitbucket:before{content:"\f171"}i.icon.bitcoin:before{content:"\f15a"}i.icon.bold:before{content:"\f032"}i.icon.bolt:before{content:"\f0e7"}i.icon.book:before{content:"\f02d"}i.icon.bookmark.empty:before{content:"\f097"}i.icon.bookmark:before{content:"\f02e"}i.icon.box.arrow.down:before{content:"\f150"}i.icon.box.arrow.right:before{content:"\f152"}i.icon.box.arrow.up:before{content:"\f151"}i.icon.briefcase:before{content:"\f0b1"}i.icon.browser:before{content:"\f022"}i.icon.bug:before{content:"\f188"}i.icon.building:before{content:"\f0f7"}i.icon.bullhorn:before{content:"\f0a1"}i.icon.bullseye:before{content:"\f140"}i.icon.calendar.empty:before{content:"\f133"}i.icon.calendar:before{content:"\f073"}i.icon.camera.retro:before{content:"\f083"}i.icon.camera:before{content:"\f030"}i.icon.triangle.down:before{content:"\f0d7"}i.icon.triangle.left:before{content:"\f0d9"}i.icon.triangle.right:before{content:"\f0da"}i.icon.triangle.up:before{content:"\f0d8"}i.icon.cart:before{content:"\f07a"}i.icon.certificate:before{content:"\f0a3"}i.icon.chat.outline:before{content:"\f0e6"}i.icon.chat:before{content:"\f086"}i.icon.checkbox.empty:before{content:"\f096"}i.icon.checkbox.minus:before{content:"\f147"}i.icon.checked.checkbox:before{content:"\f046"}i.icon.checkmark.sign:before{content:"\f14a"}i.icon.checkmark:before{content:"\f00c"}i.icon.circle.blank:before{content:"\f10c"}i.icon.circle.down:before{content:"\f0ab"}i.icon.circle.left:before{content:"\f0a8"}i.icon.circle.right:before{content:"\f0a9"}i.icon.circle.up:before{content:"\f0aa"}i.icon.circle:before{content:"\f111"}i.icon.cloud.download:before{content:"\f0ed"}i.icon.cloud.upload:before{content:"\f0ee"}i.icon.cloud:before{content:"\f0c2"}i.icon.code.fork:before{content:"\f126"}i.icon.code:before{content:"\f121"}i.icon.coffee:before{content:"\f0f4"}i.icon.collapse:before{content:"\f117"}i.icon.comment.outline:before{content:"\f0e5"}i.icon.comment:before{content:"\f075"}i.icon.copy:before{content:"\f0c5"}i.icon.crop:before{content:"\f125"}i.icon.css3:before{content:"\f13c"}i.icon.cut:before{content:"\f0c4"}i.icon.dashboard:before{content:"\f0e4"}i.icon.desktop:before{content:"\f108"}i.icon.doctor:before{content:"\f0f0"}i.icon.dollar:before{content:"\f155"}i.icon.double.angle.down:before{content:"\f103"}i.icon.double.angle.left:before{content:"\f100"}i.icon.double.angle.right:before{content:"\f101"}i.icon.double.angle.up:before{content:"\f102"}i.icon.down:before{content:"\f063"}i.icon.download.disk:before{content:"\f019"}i.icon.download:before{content:"\f01a"}i.icon.dribbble:before{content:"\f17d"}i.icon.dropbox:before{content:"\f16b"}i.icon.edit.sign:before{content:"\f14b"}i.icon.edit:before{content:"\f044"}i.icon.eject:before{content:"\f052"}i.icon.ellipsis.horizontal:before{content:"\f141"}i.icon.ellipsis.vertical:before{content:"\f142"}i.icon.eraser:before{content:"\f12d"}i.icon.euro:before{content:"\f153"}i.icon.exchange:before{content:"\f0ec"}i.icon.exclamation:before{content:"\f12a"}i.icon.expand:before{content:"\f116"}i.icon.external.url.sign:before{content:"\f14c"}i.icon.external.url:before{content:"\f08e"}i.icon.facebook.sign:before{content:"\f082"}i.icon.facebook:before{content:"\f09a"}i.icon.facetime.video:before{content:"\f03d"}i.icon.fast.backward:before{content:"\f049"}i.icon.fast.forward:before{content:"\f050"}i.icon.female:before{content:"\f182"}i.icon.fighter.jet:before{content:"\f0fb"}i.icon.file.outline:before{content:"\f016"}i.icon.file.text.outline:before{content:"\f0f6"}i.icon.file.text:before{content:"\f15c"}i.icon.file:before{content:"\f15b"}i.icon.filter:before{content:"\f0b0"}i.icon.fire.extinguisher:before{content:"\f134"}i.icon.fire:before{content:"\f06d"}i.icon.flag.checkered:before{content:"\f11e"}i.icon.flag.empty:before{content:"\f11d"}i.icon.flag:before{content:"\f024"}i.icon.flickr:before{content:"\f16e"}i.icon.folder.open.outline:before{content:"\f115"}i.icon.folder.open:before{content:"\f07c"}i.icon.folder.outline:before{content:"\f114"}i.icon.folder:before{content:"\f07b"}i.icon.font:before{content:"\f031"}i.icon.food:before{content:"\f0f5"}i.icon.forward.mail:before{content:"\f064"}i.icon.forward:before{content:"\f04e"}i.icon.foursquare:before{content:"\f180"}i.icon.frown:before{content:"\f119"}i.icon.fullscreen:before{content:"\f0b2"}i.icon.gamepad:before{content:"\f11b"}i.icon.gift:before{content:"\f06b"}i.icon.github.alternate:before{content:"\f09b"}i.icon.github.sign:before{content:"\f092"}i.icon.github:before{content:"\f113"}i.icon.gittip:before{content:"\f184"}i.icon.glass:before{content:"\f000"}i.icon.globe:before{content:"\f0ac"}i.icon.google.plus.sign:before{content:"\f0d4"}i.icon.google.plus:before{content:"\f0d5"}i.icon.h.sign:before{content:"\f0fd"}i.icon.hand.down:before{content:"\f0a7"}i.icon.hand.left:before{content:"\f0a5"}i.icon.hand.right:before{content:"\f0a4"}i.icon.hand.up:before{content:"\f0a6"}i.icon.hdd:before{content:"\f0a0"}i.icon.headphones:before{content:"\f025"}i.icon.heart.empty:before{content:"\f08a"}i.icon.heart:before{content:"\f004"}i.icon.help:before{content:"\f059"}i.icon.hide:before{content:"\f070"}i.icon.home:before{content:"\f015"}i.icon.hospital:before{content:"\f0f8"}i.icon.html5:before{content:"\f13b"}i.icon.inbox:before{content:"\f01c"}i.icon.indent.left:before{content:"\f03b"}i.icon.indent.right:before{content:"\f03c"}i.icon.info.letter:before{content:"\f129"}i.icon.info:before{content:"\f05a"}i.icon.instagram:before{content:"\f16d"}i.icon.italic:before{content:"\f033"}i.icon.key:before{content:"\f084"}i.icon.keyboard:before{content:"\f11c"}i.icon.lab:before{content:"\f0c3"}i.icon.laptop:before{content:"\f109"}i.icon.layout.block:before{content:"\f009"}i.icon.layout.column:before{content:"\f0db"}i.icon.layout.grid:before{content:"\f00a"}i.icon.layout.list:before{content:"\f00b"}i.icon.leaf:before{content:"\f06c"}i.icon.legal:before{content:"\f0e3"}i.icon.lemon:before{content:"\f094"}i.icon.level.down:before{content:"\f149"}i.icon.level.up:before{content:"\f148"}i.icon.lightbulb:before{content:"\f0eb"}i.icon.linkedin.sign:before{content:"\f08c"}i.icon.linkedin:before{content:"\f0e1"}i.icon.linux:before{content:"\f17c"}i.icon.list.ordered:before{content:"\f0cb"}i.icon.list.unordered:before{content:"\f0ca"}i.icon.list:before{content:"\f03a"}i.icon.loading:before{content:"\f110"}i.icon.location:before{content:"\f124"}i.icon.lock:before{content:"\f023"}i.icon.long.arrow.down:before{content:"\f175"}i.icon.long.arrow.left:before{content:"\f177"}i.icon.long.arrow.right:before{content:"\f178"}i.icon.long.arrow.up:before{content:"\f176"}i.icon.magic:before{content:"\f0d0"}i.icon.magnet:before{content:"\f076"}i.icon.mail.outline:before{content:"\f003"}i.icon.mail.reply:before{content:"\f112"}i.icon.mail:before{content:"\f0e0"}i.icon.male:before{content:"\f183"}i.icon.map.marker:before{content:"\f041"}i.icon.map:before{content:"\f14e"}i.icon.maxcdn:before{content:"\f136"}i.icon.medkit:before{content:"\f0fa"}i.icon.meh:before{content:"\f11a"}i.icon.minus.sign.alternate:before{content:"\f146"}i.icon.minus.sign:before{content:"\f056"}i.icon.minus:before{content:"\f068"}i.icon.mobile:before{content:"\f10b"}i.icon.money:before{content:"\f0d6"}i.icon.moon:before{content:"\f186"}i.icon.move:before{content:"\f047"}i.icon.music:before{content:"\f001"}i.icon.mute:before{content:"\f131"}i.icon.off:before{content:"\f011"}i.icon.ok.circle:before{content:"\f05d"}i.icon.ok.sign:before{content:"\f058"}i.icon.paste:before{content:"\f0ea"}i.icon.pause:before{content:"\f04c"}i.icon.payment:before{content:"\f09d"}i.icon.pencil:before{content:"\f040"}i.icon.phone.sign:before{content:"\f098"}i.icon.phone:before{content:"\f095"}i.icon.photo:before{content:"\f03e"}i.icon.pin:before{content:"\f08d"}i.icon.pinterest.sign:before{content:"\f0d3"}i.icon.pinterest:before{content:"\f0d2"}i.icon.plane:before{content:"\f072"}i.icon.play.circle:before{content:"\f01d"}i.icon.play.sign:before{content:"\f144"}i.icon.play:before{content:"\f04b"}i.icon.pound:before{content:"\f154"}i.icon.print:before{content:"\f02f"}i.icon.puzzle.piece:before{content:"\f12e"}i.icon.qr.code:before{content:"\f029"}i.icon.question:before{content:"\f128"}i.icon.quote.left:before{content:"\f10d"}i.icon.quote.right:before{content:"\f10e"}i.icon.refresh:before{content:"\f021"}i.icon.remove.circle:before{content:"\f05c"}i.icon.remove.sign:before{content:"\f057"}i.icon.remove:before{content:"\f00d"}i.icon.renren:before{content:"\f18b"}i.icon.reorder:before{content:"\f0c9"}i.icon.repeat:before{content:"\f01e"}i.icon.reply.all.mail:before{content:"\f122"}i.icon.resize.full:before{content:"\f065"}i.icon.resize.horizontal:before{content:"\f07e"}i.icon.resize.small:before{content:"\f066"}i.icon.resize.vertical:before{content:"\f07d"}i.icon.retweet:before{content:"\f079"}i.icon.road:before{content:"\f018"}i.icon.rocket:before{content:"\f135"}i.icon.rss.sign:before{content:"\f143"}i.icon.rss:before{content:"\f09e"}i.icon.rupee:before{content:"\f156"}i.icon.save:before{content:"\f0c7"}i.icon.screenshot:before{content:"\f05b"}i.icon.search:before{content:"\f002"}i.icon.setting:before{content:"\f013"}i.icon.settings:before{content:"\f085"}i.icon.share.sign:before{content:"\f14d"}i.icon.share:before{content:"\f045"}i.icon.shield:before{content:"\f132"}i.icon.shuffle:before{content:"\f074"}i.icon.sign.in:before{content:"\f090"}i.icon.sign.out:before{content:"\f08b"}i.icon.sign:before{content:"\f0c8"}i.icon.signal:before{content:"\f012"}i.icon.sitemap:before{content:"\f0e8"}i.icon.skype:before{content:"\f17e"}i.icon.smile:before{content:"\f118"}i.icon.sort.ascending:before{content:"\f0de"}i.icon.sort.descending:before{content:"\f0dd"}i.icon.sort.alphabet.descending:before{content:"\f15e"}i.icon.sort.alphabet:before{content:"\f15d"}i.icon.sort.attributes.descending:before{content:"\f161"}i.icon.sort.attributes:before{content:"\f160"}i.icon.sort.order.descending:before{content:"\f163"}i.icon.sort.order:before{content:"\f162"}i.icon.sort:before{content:"\f0dc"}i.icon.stackexchange:before{content:"\f16c"}i.icon.star.empty:before{content:"\f006"}i.icon.star.half.empty:before{content:"\f123"}i.icon.star.half.full:before,i.icon.star.half:before{content:"\f089"}i.icon.star:before{content:"\f005"}i.icon.step.backward:before{content:"\f048"}i.icon.step.forward:before{content:"\f051"}i.icon.stethoscope:before{content:"\f0f1"}i.icon.stop:before{content:"\f04d"}i.icon.strikethrough:before{content:"\f0cc"}i.icon.subscript:before{content:"\f12c"}i.icon.suitcase:before{content:"\f0f2"}i.icon.sun:before{content:"\f185"}i.icon.superscript:before{content:"\f12b"}i.icon.table:before{content:"\f0ce"}i.icon.tablet:before{content:"\f10a"}i.icon.tag:before{content:"\f02b"}i.icon.tags:before{content:"\f02c"}i.icon.tasks:before{content:"\f0ae"}i.icon.terminal:before{content:"\f120"}i.icon.text.height:before{content:"\f034"}i.icon.text.width:before{content:"\f035"}i.icon.thumbs.down.outline:before{content:"\f088"}i.icon.thumbs.down:before{content:"\f165"}i.icon.thumbs.up.outline:before{content:"\f087"}i.icon.thumbs.up:before{content:"\f164"}i.icon.ticket:before{content:"\f145"}i.icon.time:before{content:"\f017"}i.icon.tint:before{content:"\f043"}i.icon.trash:before{content:"\f014"}i.icon.trello:before{content:"\f181"}i.icon.trophy:before{content:"\f091"}i.icon.truck:before{content:"\f0d1"}i.icon.tumblr.sign:before{content:"\f174"}i.icon.tumblr:before{content:"\f173"}i.icon.twitter.sign:before{content:"\f081"}i.icon.twitter:before{content:"\f099"}i.icon.umbrella:before{content:"\f0e9"}i.icon.underline:before{content:"\f0cd"}i.icon.undo:before{content:"\f0e2"}i.icon.unhide:before{content:"\f06e"}i.icon.unlink:before{content:"\f127"}i.icon.unlock.alternate:before{content:"\f13e"}i.icon.unlock:before{content:"\f09c"}i.icon.unmute:before{content:"\f130"}i.icon.up:before{content:"\f062"}i.icon.upload.disk:before{content:"\f093"}i.icon.upload:before{content:"\f01b"}i.icon.url:before{content:"\f0c1"}i.icon.user:before{content:"\f007"}i.icon.users:before{content:"\f0c0"}i.icon.video:before{content:"\f008"}i.icon.vk:before{content:"\f189"}i.icon.volume.down:before{content:"\f027"}i.icon.volume.off:before{content:"\f026"}i.icon.volume.up:before{content:"\f028"}i.icon.warning:before{content:"\f071"}i.icon.weibo:before{content:"\f18a"}i.icon.windows:before{content:"\f17a"}i.icon.won:before{content:"\f159"}i.icon.wrench:before{content:"\f0ad"}i.icon.xing.sign:before{content:"\f169"}i.icon.xing:before{content:"\f168"}i.icon.yen:before{content:"\f157"}i.icon.youtube.play:before{content:"\f16a"}i.icon.youtube.sign:before{content:"\f166"}i.icon.youtube:before{content:"\f167"}i.icon.yuan:before{content:"\f158"}i.icon.zoom.in:before{content:"\f00e"}i.icon.zoom.out:before{content:"\f010"}i.icon.check:before{content:"\f00c"}i.icon.close:before{content:"\f00d"}i.icon.delete:before{content:"\f00d"}i.icon.like:before{content:"\f004"}i.icon.plus:before{content:"\f067"}i.icon.signup:before{content:"\f044"}i.icon.star{width:auto;margin:0}i.icon.left{width:auto;margin:0 .5em 0 0}i.icon.search,i.icon.right{width:auto;margin:0 0 0 .5em}i.icon.loading{-webkit-animation:icon-loading 2s linear infinite;-moz-animation:icon-loading 2s linear infinite;-ms-animation:icon-loading 2s linear infinite;animation:icon-loading 2s linear infinite}@keyframes icon-loading{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes icon-loading{from{-moz-transform:rotate(0deg);transform:rotate(0deg)}to{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes icon-loading{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes icon-loading{from{-ms-transform:rotate(0deg);transform:rotate(0deg)}to{-ms-transform:rotate(360deg);transform:rotate(360deg)}}i.icon.hover{opacity:1}i.icon.active{opacity:1}i.emphasized.icon{opacity:1}i.icon.disabled{opacity:.3}i.link.icon{cursor:pointer;opacity:.7;-webkit-transition:opacity .3s ease-out;-moz-transition:opacity .3s ease-out;transition:opacity .3s ease-out}i.link.icon:hover{opacity:1!important}i.circular.icon{border-radius:500em!important;padding:.5em .35em!important;-webkit-box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;line-height:1!important;width:2em!important;height:2em!important}i.circular.inverted.icon{border:0;-webkit-box-shadow:none;box-shadow:none}i.flipped.icon,i.horizontally.flipped.icon{-webkit-transform:scale(-1,1);-moz-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}i.vertically.flipped.icon{-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}i.rotated.icon,i.right.rotated.icon,i.clockwise.rotated.icon{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}i.left.rotated.icon,i.counterclockwise.rotated.icon{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}i.square.icon{width:2em;height:2em;padding:.5em .35em!important;-webkit-box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;vertical-align:baseline}i.square.inverted.icon{border:0;-webkit-box-shadow:none;box-shadow:none}i.inverted.icon{background-color:#222;color:#FFF;-moz-osx-font-smoothing:grayscale}i.blue.icon{color:#6ECFF5!important}i.black.icon{color:#5C6166!important}i.green.icon{color:#A1CF64!important}i.red.icon{color:#D95C5C!important}i.purple.icon{color:#564F8A!important}i.orange.icon{color:#F05940!important}i.teal.icon{color:#00B5AD!important}i.inverted.black.icon{background-color:#5C6166!important;color:#FFF!important}i.inverted.blue.icon{background-color:#6ECFF5!important;color:#FFF!important}i.inverted.green.icon{background-color:#A1CF64!important;color:#FFF!important}i.inverted.red.icon{background-color:#D95C5C!important;color:#FFF!important}i.inverted.purple.icon{background-color:#564F8A!important;color:#FFF!important}i.inverted.orange.icon{background-color:#F05940!important;color:#FFF!important}i.inverted.teal.icon{background-color:#00B5AD!important;color:#FFF!important}i.small.icon{font-size:.875em}i.icon{font-size:1em}i.large.icon{font-size:1.5em;vertical-align:middle}i.big.icon{font-size:2em;vertical-align:middle}i.huge.icon{font-size:4em;vertical-align:middle}i.massive.icon{font-size:8em;vertical-align:middle}.ui.image{position:relative;display:inline-block;vertical-align:middle;max-width:100%;background-color:rgba(0,0,0,.05)}img.ui.image{display:block;background:0 0}.ui.image img{display:block;max-width:100%;height:auto}.ui.disabled.image{cursor:default;opacity:.3}.ui.rounded.images .image,.ui.rounded.images img,.ui.rounded.image img,.ui.rounded.image{border-radius:.3125em}.ui.circular.images .image,.ui.circular.images img,.ui.circular.image img,.ui.circular.image{border-radius:500rem}.ui.fluid.images,.ui.fluid.image,.ui.fluid.images img,.ui.fluid.image img{display:block;width:100%}.ui.avatar.images .image,.ui.avatar.images img,.ui.avatar.image img,.ui.avatar.image{margin-right:.5em;display:inline-block;width:2em;height:2em;border-radius:500rem}.ui.floated.image,.ui.floated.images{float:left;margin-right:1em;margin-bottom:1em}.ui.right.floated.images,.ui.right.floated.image{float:right;margin-bottom:1em;margin-left:1em}.ui.tiny.images .image,.ui.tiny.images img,.ui.tiny.image{width:20px;font-size:.7rem}.ui.mini.images .image,.ui.mini.images img,.ui.mini.image{width:35px;font-size:.8rem}.ui.small.images .image,.ui.small.images img,.ui.small.image{width:80px;font-size:.9rem}.ui.medium.images .image,.ui.medium.images img,.ui.medium.image{width:300px;font-size:1rem}.ui.large.images .image,.ui.large.images img,.ui.large.image{width:450px;font-size:1.1rem}.ui.huge.images .image,.ui.huge.images img,.ui.huge.image{width:600px;font-size:1.2rem}.ui.images{font-size:0;margin:0 -.25rem 0rem}.ui.images .image,.ui.images img{display:inline-block;margin:0 .25em .5em}.ui.input{display:inline-block;position:relative;color:rgba(0,0,0,.7)}.ui.input input{width:100%;font-family:"Helvetica Neue",Helvetica,Arial;margin:0;padding:.65em 1em;font-size:1em;background-color:#FFF;border:1px solid rgba(0,0,0,.15);outline:0;color:rgba(0,0,0,.7);border-radius:.3125em;-webkit-transition:background-color .3s ease-out,-webkit-box-shadow .2s ease,border-color .2s ease;-moz-transition:background-color .3s ease-out,box-shadow .2s ease,border-color .2s ease;transition:background-color .3s ease-out,box-shadow .2s ease,border-color .2s ease;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.input::-webkit-input-placeholder{color:#BBB}.ui.input::-moz-placeholder{color:#BBB}.ui.input input:active,.ui.input.down input{border-color:rgba(0,0,0,.3);background-color:#FAFAFA}.ui.loading.input>.icon{background:url(../images/loader-mini.gif) no-repeat 50% 50%}.ui.loading.input>.icon:before,.ui.loading.input>.icon:after{display:none}.ui.input.focus input,.ui.input input:focus{border-color:rgba(0,0,0,.2);color:rgba(0,0,0,.85)}.ui.input.focus input input::-webkit-input-placeholder,.ui.input input:focus input::-webkit-input-placeholder{color:#AAA}.ui.input.focus input input::-moz-placeholder,.ui.input input:focus input::-moz-placeholder{color:#AAA}.ui.input.error input{background-color:snow;border-color:#E7BEBE;color:#D95C5C}.ui.input.error input ::-webkit-input-placeholder{color:rgba(255,80,80,.4)}.ui.input.error input ::-moz-placeholder{color:rgba(255,80,80,.4)}.ui.input.error input :focus::-webkit-input-placeholder{color:rgba(255,80,80,.7)}.ui.input.error input :focus::-moz-placeholder{color:rgba(255,80,80,.7)}.ui.transparent.input input{border:0;background-color:transparent}.ui.icon.input>.icon{cursor:default;position:absolute;opacity:.5;top:0;right:0;margin:0;width:2.6em;height:100%;padding-top:.82em;text-align:center;border-radius:0 .3125em .3125em 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:opacity .3s ease-out;-moz-transition:opacity .3s ease-out;transition:opacity .3s ease-out}.ui.icon.input>.link.icon{cursor:pointer}.ui.icon.input input{padding-right:3em!important}.ui.icon.input>.circular.icon{top:.35em;right:.5em}.ui.left.icon.input>.icon{right:auto;left:1px;border-radius:.3125em 0 0 .3125em}.ui.left.icon.input>.circular.icon{right:auto;left:.5em}.ui.left.icon.input>input{padding-left:3em!important;padding-right:1.2em!important}.ui.icon.input>input:focus~.icon{opacity:1}.ui.labeled.input .corner.label{font-size:.7em;border-radius:0 .3125em}.ui.labeled.input .left.corner.label{border-radius:.3125em 0}.ui.labeled.input input{padding-right:2.5em!important}.ui.labeled.icon.input:not(.left)>input{padding-right:3.25em!important}.ui.labeled.icon.input:not(.left)>.icon{margin-right:1.25em}.ui.action.input{display:table}.ui.action.input>input{display:table-cell;border-top-right-radius:0!important;border-bottom-right-radius:0!important;border-right:0}.ui.action.input>.button,.ui.action.input>.buttons{display:table-cell;border-top-left-radius:0;border-bottom-left-radius:0;white-space:nowrap}.ui.action.input>.button>.icon,.ui.action.input>.buttons>.button>.icon{display:inline;vertical-align:top}.ui.fluid.action.input{display:table;width:100%}.ui.fluid.action.input>.button{width:.01%}.ui.fluid.input{display:block}.ui.mini.input{font-size:.8125em}.ui.small.input{font-size:.875em}.ui.input{font-size:1em}.ui.large.input{font-size:1.125em}.ui.big.input{font-size:1.25em}.ui.huge.input{font-size:1.375em}.ui.massive.input{font-size:1.5em}.ui.label{display:inline-block;vertical-align:middle;margin:-.25em .25em 0;background-color:#E8E8E8;border-color:#E8E8E8;padding:.5em .8em;color:rgba(0,0,0,.65);text-transform:uppercase;font-weight:400;border-radius:.325em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:background .1s linear;-moz-transition:background .1s linear;transition:background .1s linear}.ui.label:first-child{margin-left:0}.ui.label:last-child{margin-right:0}a.ui.label{cursor:pointer}.ui.label a{cursor:pointer;color:inherit;opacity:.8;-webkit-transition:.2s opacity ease;-moz-transition:.2s opacity ease;transition:.2s opacity ease}.ui.label a:hover{opacity:1}.ui.label .detail{display:inline-block;margin-left:.5em;font-weight:700;opacity:.8}.ui.label .icon{width:auto}.ui.label .delete.icon{cursor:pointer;margin:0 0 0 .5em;opacity:.7;-webkit-transition:background .1s linear;-moz-transition:background .1s linear;transition:background .1s linear}.ui.label .delete.icon:hover{opacity:.99}.ui.segment>.attached.label:first-child+*{margin-top:2.5em}.ui.segment>.bottom.attached.label:first-child~:last-child{margin-top:0;margin-bottom:2.5em}.ui.image.label{width:auto!important;margin-top:0;margin-bottom:0;padding-top:.4em;padding-bottom:.4em;line-height:1.5em;vertical-align:baseline;text-transform:none;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset}.ui.image.label img{display:inline-block;height:2.25em;margin:-.4em .8em -.4em -.8em;vertical-align:top;border-radius:.325em 0 0 .325em}.ui.label.disabled{opacity:.5}a.ui.labels .label:hover,a.ui.label:hover{background-color:#E0E0E0;border-color:#E0E0E0;color:rgba(0,0,0,.7)}.ui.labels a.label:hover:before,a.ui.label:hover:before{background-color:#E0E0E0;color:rgba(0,0,0,.7)}.ui.labels.visible .label,.ui.label.visible{display:inline-block!important}.ui.labels.hidden .label,.ui.label.hidden{display:none!important}.ui.tag.labels .label,.ui.tag.label{margin-left:1em;position:relative;padding:.33em 1.3em .33em 1.4em;border-radius:0 3px 3px 0}.ui.tag.labels .label:before,.ui.tag.label:before{position:absolute;top:.3em;left:.3em;content:'';margin-left:-1em;background-image:none;width:1.5em;height:1.5em;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);-webkit-transition:background .1s linear;-moz-transition:background .1s linear;transition:background .1s linear}.ui.tag.labels .label:after,.ui.tag.label:after{position:absolute;content:'';top:50%;left:-.25em;margin-top:-.3em;background-color:#FFF;width:.55em;height:.55em;-webkit-box-shadow:0 -1px 1px 0 rgba(0,0,0,.3);box-shadow:0 -1px 1px 0 rgba(0,0,0,.3);border-radius:100px}.ui.ribbon.label{position:relative;margin:0 .2em;left:-2rem;padding-left:2rem;border-radius:0 4px 4px 0;border-color:rgba(0,0,0,.15)}.ui.ribbon.label:after{position:absolute;content:"";top:100%;left:0;border-top:0 solid transparent;border-right-width:1em;border-right-color:inherit;border-right-style:solid;border-bottom:1em solid transparent;border-left:0 solid transparent;width:0;height:0}.ui.top.attached.label,.ui.attached.label{width:100%;position:absolute;margin:0;top:0;left:0;padding:.75em 1em;border-radius:4px 4px 0 0}.ui.bottom.attached.label{top:auto;bottom:0;border-radius:0 0 4px 4px}.ui.top.left.attached.label{width:auto;margin-top:0!important;border-radius:4px 0}.ui.top.right.attached.label{width:auto;left:auto;right:0;border-radius:0 4px}.ui.bottom.left.attached.label{width:auto;top:auto;bottom:0;border-radius:4px 0 0 4px}.ui.bottom.right.attached.label{top:auto;bottom:0;left:auto;right:0;width:auto;border-radius:4px 0}.ui.corner.label{background-color:transparent;position:absolute;top:0;right:0;z-index:10;margin:0;width:3em;height:3em;padding:0;text-align:center;-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.ui.corner.label:after{position:absolute;content:"";right:0;top:0;z-index:-1;width:0;height:0;border-top:0 solid transparent;border-right:3em solid transparent;border-bottom:3em solid transparent;border-left:0 solid transparent;border-right-color:inherit;-webkit-transition:border-color .2s ease;-moz-transition:border-color .2s ease;transition:border-color .2s ease}.ui.corner.label .icon{font-size:.875em;margin:.5em 0 0 1.25em}.ui.corner.label .text{display:inline-block;font-weight:700;margin:.5em 0 0 1em;width:2.5em;font-size:.875em;text-align:center;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.ui.rounded.image>.ui.corner.label,.ui.input>.ui.corner.label,.ui.segment>.ui.corner.label{overflow:hidden}.ui.segment>.ui.corner.label{top:-1px;right:-1px}.ui.segment>.ui.left.corner.label{right:auto;left:-1px}.ui.input>.ui.corner.label{top:1px;right:1px}.ui.input>.ui.right.corner.label{right:auto;left:1px}.ui.left.corner.label,.ui.left.corner.label:after{right:auto;left:0}.ui.left.corner.label:after{border-top:3em solid transparent;border-right:3em solid transparent;border-bottom:0 solid transparent;border-left:0 solid transparent;border-top-color:inherit}.ui.left.corner.label .icon{margin:.5em 0 0 -1em}.ui.left.corner.label .text{margin:.5em 0 0 -1em;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.ui.corner.label:hover{background-color:transparent}.ui.label.fluid,.ui.fluid.labels>.label{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.inverted.labels .label,.ui.inverted.label{color:#FFF!important}.ui.black.labels .label,.ui.black.label{background-color:#5C6166!important;border-color:#5C6166!important;color:#FFF!important}.ui.labels .black.label:before,.ui.black.labels .label:before,.ui.black.label:before{background-color:#5C6166!important}a.ui.black.labels .label:hover,a.ui.black.label:hover{background-color:#333!important;border-color:#333!important}.ui.labels a.black.label:hover:before,.ui.black.labels a.label:hover:before,a.ui.black.label:hover:before{background-color:#333!important}.ui.black.corner.label,.ui.black.corner.label:hover{background-color:transparent!important}.ui.black.ribbon.label{border-color:#333!important}.ui.green.labels .label,.ui.green.label{background-color:#A1CF64!important;border-color:#A1CF64!important;color:#FFF!important}.ui.labels .green.label:before,.ui.green.labels .label:before,.ui.green.label:before{background-color:#A1CF64!important}a.ui.green.labels .label:hover,a.ui.green.label:hover{background-color:#89B84C!important;border-color:#89B84C!important}.ui.labels a.green.label:hover:before,.ui.green.labels a.label:hover:before,a.ui.green.label:hover:before{background-color:#89B84C!important}.ui.green.corner.label,.ui.green.corner.label:hover{background-color:transparent!important}.ui.green.ribbon.label{border-color:#89B84C!important}.ui.red.labels .label,.ui.red.label{background-color:#D95C5C!important;border-color:#D95C5C!important;color:#FFF!important}.ui.labels .red.label:before,.ui.red.labels .label:before,.ui.red.label:before{background-color:#D95C5C!important}.ui.red.corner.label,.ui.red.corner.label:hover{background-color:transparent!important}a.ui.red.labels .label:hover,a.ui.red.label:hover{background-color:#DE3859!important;border-color:#DE3859!important;color:#FFF!important}.ui.labels a.red.label:hover:before,.ui.red.labels a.label:hover:before,a.ui.red.label:hover:before{background-color:#DE3859!important}.ui.red.ribbon.label{border-color:#DE3859!important}.ui.blue.labels .label,.ui.blue.label{background-color:#6ECFF5!important;border-color:#6ECFF5!important;color:#FFF!important}.ui.labels .blue.label:before,.ui.blue.labels .label:before,.ui.blue.label:before{background-color:#6ECFF5!important}a.ui.blue.labels .label:hover,.ui.blue.labels a.label:hover,a.ui.blue.label:hover{background-color:#1AB8F3!important;border-color:#1AB8F3!important;color:#FFF!important}.ui.labels a.blue.label:hover:before,.ui.blue.labels a.label:hover:before,a.ui.blue.label:hover:before{background-color:#1AB8F3!important}.ui.blue.corner.label,.ui.blue.corner.label:hover{background-color:transparent!important}.ui.blue.ribbon.label{border-color:#1AB8F3!important}.ui.purple.labels .label,.ui.purple.label{background-color:#564F8A!important;border-color:#564F8A!important;color:#FFF!important}.ui.labels .purple.label:before,.ui.purple.labels .label:before,.ui.purple.label:before{background-color:#564F8A!important}a.ui.purple.labels .label:hover,.ui.purple.labels a.label:hover,a.ui.purple.label:hover{background-color:#3E3773!important;border-color:#3E3773!important;color:#FFF!important}.ui.labels a.purple.label:hover:before,.ui.purple.labels a.label:hover:before,a.ui.purple.label:hover:before{background-color:#3E3773!important}.ui.purple.corner.label,.ui.purple.corner.label:hover{background-color:transparent!important}.ui.purple.ribbon.label{border-color:#3E3773!important}.ui.orange.labels .label,.ui.orange.label{background-color:#F05940!important;border-color:#F05940!important;color:#FFF!important}.ui.labels .orange.label:before,.ui.orange.labels .label:before,.ui.orange.label:before{background-color:#F05940!important}a.ui.orange.labels .label:hover,.ui.orange.labels a.label:hover,a.ui.orange.label:hover{background-color:#FF4121!important;border-color:#FF4121!important;color:#FFF!important}.ui.labels a.orange.label:hover:before,.ui.orange.labels a.label:hover:before,a.ui.orange.label:hover:before{background-color:#FF4121!important}.ui.orange.corner.label,.ui.orange.corner.label:hover{background-color:transparent!important}.ui.orange.ribbon.label{border-color:#FF4121!important}.ui.teal.labels .label,.ui.teal.label{background-color:#00B5AD!important;border-color:#00B5AD!important;color:#FFF!important}.ui.labels .teal.label:before,.ui.teal.labels .label:before,.ui.teal.label:before{background-color:#00B5AD!important}a.ui.teal.labels .label:hover,.ui.teal.labels a.label:hover,a.ui.teal.label:hover{background-color:#009A93!important;border-color:#009A93!important;color:#FFF!important}.ui.labels a.teal.label:hover:before,.ui.teal.labels a.label:hover:before,a.ui.teal.label:hover:before{background-color:#009A93!important}.ui.teal.corner.label,.ui.teal.corner.label:hover{background-color:transparent!important}.ui.teal.ribbon.label{border-color:#009A93!important}.ui.horizontal.labels .label,.ui.horizontal.label{margin:-.125em .5em -.125em 0;padding:.35em 1em;min-width:6em;text-align:center}.ui.circular.labels .label,.ui.circular.label{min-height:1em;max-height:2em;padding:.5em!important;line-height:1em;text-align:center;border-radius:500rem}.ui.pointing.label{position:relative}.ui.attached.pointing.label{position:absolute}.ui.pointing.label:before{position:absolute;content:"";width:.6em;height:.6em;background-image:none;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);z-index:2;-webkit-transition:background .1s linear;-moz-transition:background .1s linear;transition:background .1s linear}.ui.pointing.label:before{background-color:#E8E8E8}.ui.pointing.label,.ui.pointing.above.label{margin-top:1em}.ui.pointing.label:before,.ui.pointing.above.label:before{margin-left:-.3em;top:-.3em;left:50%}.ui.pointing.below.label{margin-top:0;margin-bottom:1em}.ui.pointing.below.label:before{margin-left:-.3em;top:auto;right:auto;bottom:-.3em;left:50%}.ui.pointing.left.label{margin-top:0;margin-left:1em}.ui.pointing.left.label:before{margin-top:-.3em;bottom:auto;right:auto;top:50%;left:0}.ui.pointing.right.label{margin-top:0;margin-right:1em}.ui.pointing.right.label:before{margin-top:-.3em;right:-.3em;top:50%;bottom:auto;left:auto}.ui.floating.label{position:absolute;z-index:100;top:-1em;left:100%;margin:0 0 0 -1.5em!important}.ui.small.labels .label,.ui.small.label{font-size:.75rem}.ui.label{font-size:.8125rem}.ui.large.labels .label,.ui.large.label{font-size:.875rem}.ui.huge.labels .label,.ui.huge.label{font-size:1rem}.ui.loader{display:none;position:absolute;top:50%;left:50%;margin:0;z-index:1000;-webkit-transform:translateX(-50%) translateY(-50%);-moz-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.ui.dimmer .loader{display:block}.ui.text.loader{width:auto!important;height:auto!important;text-align:center;font-style:normal}.ui.mini.text.loader{min-width:16px;padding-top:2em;font-size:.875em}.ui.small.text.loader{min-width:24px;padding-top:2.5em;font-size:.875em}.ui.text.loader{min-width:32px;font-size:1em;padding-top:3em}.ui.large.text.loader{min-width:64px;padding-top:5em;font-size:1.2em}.ui.loader.active,.ui.loader.visible{display:block}.ui.loader.disabled,.ui.loader.hidden{display:none}.ui.dimmer .ui.text.loader,.ui.inverted.text.loader{color:rgba(255,255,255,.8)}.ui.inverted.dimmer .ui.text.loader{color:rgba(0,0,0,.8)}.ui.dimmer .mini.ui.loader,.ui.inverted .mini.ui.loader{background-image:url(../images/loader-mini-inverted.gif)}.ui.dimmer .small.ui.loader,.ui.inverted .small.ui.loader{background-image:url(../images/loader-small-inverted.gif)}.ui.dimmer .ui.loader,.ui.inverted.loader{background-image:url(../images/loader-medium-inverted.gif)}.ui.dimmer .large.ui.loader,.ui.inverted .large.ui.loader{background-image:url(../images/loader-large-inverted.gif)}.ui.inverted.dimmer .ui.mini.loader,.ui.mini.loader{width:16px;height:16px;background-image:url(../images/loader-mini.gif)}.ui.inverted.dimmer .ui.small.loader,.ui.small.loader{width:24px;height:24px;background-image:url(../images/loader-small.gif)}.ui.inverted.dimmer .ui.loader,.ui.loader{width:32px;height:32px;background:url(../images/loader-medium.gif) no-repeat;background-position:48% 0}.ui.inverted.dimmer .ui.loader.large,.ui.loader.large{width:64px;height:64px;background-image:url(../images/loader-large.gif)}.ui.inline.loader{position:static;vertical-align:middle;margin:0;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none}.ui.inline.loader.active,.ui.inline.loader.visible{display:inline-block}.ui.progress{border:1px solid rgba(0,0,0,.1);width:100%;height:35px;background-color:#FAFAFA;padding:5px;border-radius:.3125em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.progress .bar{display:inline-block;height:100%;background-color:#CCC;border-radius:3px;-webkit-transition:width 1s ease-in-out,background-color 1s ease-out;-moz-transition:width 1s ease-in-out,background-color 1s ease-out;transition:width 1s ease-in-out,background-color 1s ease-out}.ui.successful.progress .bar{background-color:#73E064!important}.ui.successful.progress .bar,.ui.successful.progress .bar::after{-webkit-animation:none!important;-moz-animation:none!important;animation:none!important}.ui.warning.progress .bar{background-color:#E96633!important}.ui.warning.progress .bar,.ui.warning.progress .bar::after{-webkit-animation:none!important;-moz-animation:none!important;animation:none!important}.ui.failed.progress .bar{background-color:#DF9BA4!important}.ui.failed.progress .bar,.ui.failed.progress .bar::after{-webkit-animation:none!important;-moz-animation:none!important;animation:none!important}.ui.active.progress .bar{position:relative}.ui.active.progress .bar::after{content:'';opacity:0;position:absolute;top:0;left:0;right:0;bottom:0;background:#FFF;border-radius:3px;-webkit-animation:progress-active 2s ease-out infinite;-moz-animation:progress-active 2s ease-out infinite;animation:progress-active 2s ease-out infinite}@-webkit-keyframes progress-active{0%{opacity:0;width:0}50%{opacity:.3}100%{opacity:0;width:95%}}@-moz-keyframes progress-active{0%{opacity:0;width:0}50%{opacity:.3}100%{opacity:0;width:100%}}@keyframes progress-active{0%{opacity:0;width:0}50%{opacity:.3}100%{opacity:0;width:100%}}.ui.disabled.progress{opacity:.35}.ui.disabled.progress .bar,.ui.disabled.progress .bar::after{-webkit-animation:none!important;-moz-animation:none!important;animation:none!important}.ui.progress.attached{position:relative;border:0}.ui.progress.attached,.ui.progress.attached .bar{display:block;height:3px;padding:0;overflow:hidden;border-radius:0 0 .3125em .3125em}.ui.progress.attached .bar{border-radius:0}.ui.progress.top.attached,.ui.progress.top.attached .bar{top:-2px;border-radius:.3125em .3125em 0 0}.ui.progress.top.attached .bar{border-radius:0}.ui.blue.progress .bar{background-color:#6ECFF5}.ui.black.progress .bar{background-color:#5C6166}.ui.green.progress .bar{background-color:#A1CF64}.ui.red.progress .bar{background-color:#EF4D6D}.ui.purple.progress .bar{background-color:#564F8A}.ui.teal.progress .bar{background-color:#00B5AD}.ui.progress.striped .bar{-webkit-background-size:30px 30px;background-size:30px 30px;background-image:-webkit-gradient(linear,left top,right bottom,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(135deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(135deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-webkit-linear-gradient(315deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(315deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(135deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.ui.progress.active.striped .bar:after{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}.ui.progress.active.striped .bar{-webkit-animation:progress-striped 3s linear infinite;-moz-animation:progress-striped 3s linear infinite;animation:progress-striped 3s linear infinite}@-webkit-keyframes progress-striped{0%{background-position:0 0}100%{background-position:60px 0}}@-moz-keyframes progress-striped{0%{background-position:0 0}100%{background-position:60px 0}}@keyframes progress-striped{0%{background-position:0 0}100%{background-position:60px 0}}.ui.small.progress .bar{height:14px}.ui.reveal{display:inline-block;position:relative!important;z-index:2!important;font-size:0!important}.ui.reveal>.content{font-size:1rem!important}.ui.reveal>.visible.content{-webkit-transition:all .8s cubic-bezier(0.175,.885,.32,1) .15s;-moz-transition:all .8s cubic-bezier(0.175,.885,.32,1) .15s;transition:all .8s cubic-bezier(0.175,.885,.32,1) .15s}.ui.reveal>.visible.content{position:absolute!important;top:0!important;left:0!important;z-index:4!important;-webkit-transition:all .8s cubic-bezier(0.175,.885,.32,1) .15s;-moz-transition:all .8s cubic-bezier(0.175,.885,.32,1) .15s;transition:all .8s cubic-bezier(0.175,.885,.32,1) .15s}.ui.reveal>.hidden.content{position:relative!important;z-index:3!important}.ui.reveal.button{overflow:hidden}.ui.slide.reveal{position:relative!important;display:block;overflow:hidden!important;white-space:nowrap}.ui.slide.reveal>.content{display:block;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;margin:0;-webkit-transition:top .8s cubic-bezier(0.175,.885,.32,1) .15s,left .8s cubic-bezier(0.175,.885,.32,1) .15s,right .8s cubic-bezier(0.175,.885,.32,1) .15s,bottom .8s cubic-bezier(0.175,.885,.32,1) .15s;-moz-transition:top .8s cubic-bezier(0.175,.885,.32,1) .15s,left .8s cubic-bezier(0.175,.885,.32,1) .15s,right .8s cubic-bezier(0.175,.885,.32,1) .15s,bottom .8s cubic-bezier(0.175,.885,.32,1) .15s;transition:top .8s cubic-bezier(0.175,.885,.32,1) .15s,left .8s cubic-bezier(0.175,.885,.32,1) .15s,right .8s cubic-bezier(0.175,.885,.32,1) .15s,bottom .8s cubic-bezier(0.175,.885,.32,1) .15s}.ui.slide.reveal>.visible.content{position:relative!important}.ui.slide.reveal>.hidden.content{position:absolute!important;left:100%!important;width:100%!important}.ui.slide.reveal:hover>.visible.content,.ui.slide.reveal:focus>.visible.content{left:-100%!important}.ui.slide.reveal:hover>.hidden.content,.ui.slide.reveal:focus>.hidden.content{left:0!important}.ui.right.slide.reveal>.visible.content{left:0}.ui.right.slide.reveal>.hidden.content{left:auto!important;right:100%!important}.ui.right.slide.reveal:hover>.visible.content,.ui.right.slide.reveal:focus>.visible.content{left:100%!important;right:auto!important}.ui.right.slide.reveal:hover>.hidden.content,.ui.right.slide.reveal:focus>.hidden.content{left:auto!important;right:0!important}.ui.up.slide.reveal>.visible.content{top:0!important;left:0!important;right:auto!important;bottom:auto!important}.ui.up.slide.reveal>.hidden.content{top:100%!important;left:0!important;right:auto!important;bottom:auto!important}.ui.slide.up.reveal:hover>.visible.content,.ui.slide.up.reveal:focus>.visible.content{top:-100%!important;left:0!important}.ui.slide.up.reveal:hover>.hidden.content,.ui.slide.up.reveal:focus>.hidden.content{top:0!important;left:0!important}.ui.down.slide.reveal>.visible.content{top:auto!important;right:auto!important;bottom:auto!important;bottom:0!important}.ui.down.slide.reveal>.hidden.content{top:auto!important;right:auto!important;bottom:100%!important;left:0!important}.ui.slide.down.reveal:hover>.visible.content,.ui.slide.down.reveal:focus>.visible.content{left:0!important;bottom:-100%!important}.ui.slide.down.reveal:hover>.hidden.content,.ui.slide.down.reveal:focus>.hidden.content{left:0!important;bottom:0!important}.ui.fade.reveal>.visible.content{opacity:1}.ui.fade.reveal:hover>.visible.content,.ui.fade.reveal:focus>.visible.content{opacity:0}.ui.move.reveal>.visible.content,.ui.move.left.reveal>.visible.content{left:auto!important;top:auto!important;bottom:auto!important;right:0!important}.ui.move.reveal:hover>.visible.content,.ui.move.left.reveal:hover>.visible.content,.ui.move.reveal:focus>.visible.content,.ui.move.left.reveal:focus>.visible.content{right:100%!important}.ui.move.right.reveal>.visible.content{right:auto!important;top:auto!important;bottom:auto!important;left:0!important}.ui.move.right.reveal:hover>.visible.content,.ui.move.right.reveal:focus>.visible.content{left:100%!important}.ui.move.up.reveal>.visible.content{right:auto!important;left:auto!important;top:auto!important;bottom:0!important}.ui.move.up.reveal:hover>.visible.content,.ui.move.up.reveal:focus>.visible.content{bottom:100%!important}.ui.move.down.reveal>.visible.content{right:auto!important;left:auto!important;top:0!important;bottom:auto!important}.ui.move.down.reveal:hover>.visible.content,.ui.move.down.reveal:focus>.visible.content{top:100%!important}.ui.rotate.reveal>.visible.content{-webkit-transition-duration:.8s;-moz-transition-duration:.8s;transition-duration:.8s;-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}.ui.rotate.reveal>.visible.content,.ui.rotate.right.reveal>.visible.content{-webkit-transform-origin:bottom right;-moz-transform-origin:bottom right;-ms-transform-origin:bottom right;transform-origin:bottom right}.ui.rotate.reveal:hover>.visible.content,.ui.rotate.right.reveal:hover>.visible.content,.ui.rotate.reveal:focus>.visible.content,.ui.rotate.right.reveal:focus>.visible.content{-webkit-transform:rotate(110deg);-moz-transform:rotate(110deg);-ms-transform:rotate(110deg);transform:rotate(110deg)}.ui.rotate.left.reveal>.visible.content{-webkit-transform-origin:bottom left;-moz-transform-origin:bottom left;-ms-transform-origin:bottom left;transform-origin:bottom left}.ui.rotate.left.reveal:hover>.visible.content,.ui.rotate.left.reveal:focus>.visible.content{-webkit-transform:rotate(-110deg);-moz-transform:rotate(-110deg);-ms-transform:rotate(-110deg);transform:rotate(-110deg)}.ui.disabled.reveal{opacity:1!important}.ui.disabled.reveal>.content{-webkit-transition:none!important;-moz-transition:none!important;transition:none!important}.ui.disabled.reveal:hover>.visible.content,.ui.disabled.reveal:focus>.visible.content{position:static!important;display:block!important;opacity:1!important;top:0!important;left:0!important;right:auto!important;bottom:auto!important;-webkit-transform:none!important;-moz-transform:none!important;-ms-transform:none!important;transform:none!important}.ui.disabled.reveal:hover>.hidden.content,.ui.disabled.reveal:focus>.hidden.content{display:none!important}.ui.masked.reveal{overflow:hidden}.ui.instant.reveal>.content{-webkit-transition-delay:0s!important;-moz-transition-delay:0s!important;transition-delay:0s!important}.ui.segment{position:relative;background-color:#FFF;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1);margin:1em 0;padding:1em;border-radius:5px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.segment:first-child{margin-top:0}.ui.segment:last-child{margin-bottom:0}.ui.segment:after{content:'';display:block;height:0;clear:both;visibility:hidden}.ui.vertical.segment{margin:0;padding-left:0;padding-right:0;background-color:transparent;border-radius:0;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 0 rgba(0,0,0,.1)}.ui.vertical.segment:first-child{padding-top:0}.ui.horizontal.segment{margin:0;padding-top:0;padding-bottom:0;background-color:transparent;border-radius:0;-webkit-box-shadow:1px 0 0 rgba(0,0,0,.1);box-shadow:1px 0 0 rgba(0,0,0,.1)}.ui.horizontal.segment:first-child{padding-left:0}.ui.pointing.menu~.ui.attached.segment{top:1px}.ui.page.grid.segment .ui.grid .ui.segment.column{padding-top:2rem;padding-bottom:2rem}.ui.grid.segment,.ui.grid .ui.segment.row,.ui.grid .ui.segment.column{border-radius:0;-webkit-box-shadow:none;box-shadow:none;border:0}.ui.segment>:first-child{margin-top:0}.ui.segment>:last-child{margin-bottom:0}.ui.piled.segment{margin:2em 0;-webkit-box-shadow:0 0 1px 1px rgba(0,0,0,.15);-ms-box-shadow:0 0 1px 1px rgba(0,0,0,.15);-o-box-shadow:0 0 1px 1px rgba(0,0,0,.15);box-shadow:0 0 1px 1px rgba(0,0,0,.15)}.ui.piled.segment:first-child{margin-top:0}.ui.piled.segment:last-child{margin-bottom:0}.ui.piled.segment:after,.ui.piled.segment:before{background-color:#FFF;visibility:visible;content:"";display:block;height:100%;left:-1px;position:absolute;width:100%;-webkit-box-shadow:0 0 1px 1px rgba(0,0,0,.1);box-shadow:0 0 1px 1px rgba(0,0,0,.1)}.ui.piled.segment:after{-webkit-transform:rotate(1.2deg);-moz-transform:rotate(1.2deg);-ms-transform:rotate(1.2deg);transform:rotate(1.2deg);top:0;z-index:-1}.ui.piled.segment:before{-webkit-transform:rotate(-1.2deg);-moz-transform:rotate(-1.2deg);-ms-transform:rotate(-1.2deg);transform:rotate(-1.2deg);top:0;z-index:-2}.ui.stacked.segment{padding-bottom:1.7em}.ui.stacked.segment:after,.ui.stacked.segment:before{content:'';position:absolute;bottom:-3px;left:0;border-top:1px solid rgba(0,0,0,.1);background-color:rgba(0,0,0,.02);width:100%;height:5px;visibility:visible}.ui.stacked.segment:before{bottom:0}.ui.stacked.inverted.segment:after,.ui.stacked.inverted.segment:before{background-color:rgba(255,255,255,.1);border-top:1px solid rgba(255,255,255,.35)}.ui.circular.segment{display:table-cell;padding:2em;text-align:center;vertical-align:middle;border-radius:500em}.ui.raised.segment{-webkit-box-shadow:0 1px 2px 1px rgba(0,0,0,.1);box-shadow:0 1px 2px 1px rgba(0,0,0,.1)}.ui.disabled.segment{opacity:.8;color:#DDD}.ui.basic.segment{position:relative;background-color:transparent;-webkit-box-shadow:none;box-shadow:none;border-radius:0}.ui.basic.segment:first-child{padding-top:0}.ui.basic.segment:last-child{padding-bottom:0}.ui.fitted.segment{padding:0}.ui.blue.segment{border-top:.2em solid #6ECFF5}.ui.green.segment{border-top:.2em solid #A1CF64}.ui.red.segment{border-top:.2em solid #D95C5C}.ui.orange.segment{border-top:.2em solid #F05940}.ui.purple.segment{border-top:.2em solid #564F8A}.ui.teal.segment{border-top:.2em solid #00B5AD}.ui.inverted.black.segment{background-color:#5C6166!important;color:#FFF!important}.ui.inverted.blue.segment{background-color:#6ECFF5!important;color:#FFF!important}.ui.inverted.green.segment{background-color:#A1CF64!important;color:#FFF!important}.ui.inverted.red.segment{background-color:#D95C5C!important;color:#FFF!important}.ui.inverted.orange.segment{background-color:#F05940!important;color:#FFF!important}.ui.inverted.purple.segment{background-color:#564F8A!important;color:#FFF!important}.ui.inverted.teal.segment{background-color:#00B5AD!important;color:#FFF!important}.ui.left.aligned.segment{text-align:left}.ui.right.aligned.segment{text-align:right}.ui.center.aligned.segment{text-align:center}.ui.justified.segment{text-align:justify;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.ui.floated.segment,.ui.left.floated.segment{float:left}.ui.right.floated.segment{float:right}.ui.inverted.segment{border:0;-webkit-box-shadow:none;box-shadow:none}.ui.inverted.segment .segment{color:rgba(0,0,0,.7)}.ui.inverted.segment .inverted.segment{color:#FFF}.ui.inverted.segment,.ui.primary.inverted.segment{background-color:#222;color:#FFF}.ui.primary.segment{background-color:#FFF;color:#555}.ui.secondary.segment{background-color:#FAF9FA;color:#777}.ui.tertiary.segment{background-color:#EBEBEB;color:#B0B0B0}.ui.secondary.inverted.segment{background-color:#555;background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(255,255,255,.3)),to(rgba(255,255,255,.3)));background-image:-webkit-linear-gradient(rgba(255,255,255,.3) 0,rgba(255,255,255,.3) 100%);background-image:-moz-linear-gradient(rgba(255,255,255,.3) 0,rgba(255,255,255,.3) 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,.3)),to(rgba(255,255,255,.3)));background-image:linear-gradient(rgba(255,255,255,.3) 0,rgba(255,255,255,.3) 100%);color:#FAFAFA}.ui.tertiary.inverted.segment{background-color:#555;background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(255,255,255,.6)),to(rgba(255,255,255,.6)));background-image:-webkit-linear-gradient(rgba(255,255,255,.6) 0,rgba(255,255,255,.6) 100%);background-image:-moz-linear-gradient(rgba(255,255,255,.6) 0,rgba(255,255,255,.6) 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,.6)),to(rgba(255,255,255,.6)));background-image:linear-gradient(rgba(255,255,255,.6) 0,rgba(255,255,255,.6) 100%);color:#EEE}.ui.segment.attached{top:-1px;bottom:-1px;border-radius:0;margin:0;-webkit-box-shadow:0 0 0 1px #DDD;box-shadow:0 0 0 1px #DDD}.ui.top.attached.segment{top:0;bottom:-1px;margin-top:1em;margin-bottom:0;border-radius:5px 5px 0 0}.ui.segment.top.attached:first-child{margin-top:0}.ui.segment.bottom.attached{top:-1px;bottom:0;margin-top:0;margin-bottom:1em;border-radius:0 0 5px 5px}.ui.segment.bottom.attached:last-child{margin-bottom:0}.ui.step,.ui.steps .step{display:inline-block;position:relative;padding:1em 2em 1em 3em;vertical-align:top;background-color:#FFF;color:#888;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.step:after,.ui.steps .step:after{position:absolute;z-index:2;content:'';top:.42em;right:-1em;border:medium none;background-color:#FFF;width:2.2em;height:2.2em;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-box-shadow:-1px -1px 0 0 rgba(0,0,0,.15) inset;box-shadow:-1px -1px 0 0 rgba(0,0,0,.15) inset}.ui.step,.ui.steps .step,.ui.steps .step:after{-webkit-transition:background-color .1s ease,opacity .1s ease,color .1s ease,-webkit-box-shadow .1s ease;-moz-transition:background-color .1s ease,opacity .1s ease,color .1s ease,box-shadow .1s ease;transition:background-color .1s ease,opacity .1s ease,color .1s ease,box-shadow .1s ease}.ui.vertical.steps{overflow:visible}.ui.vertical.steps .step{display:block;border-radius:0;padding:1em 2em}.ui.vertical.steps .step:first-child{padding:1em 2em;border-radius:0;border-top-left-radius:.3125rem;border-top-right-radius:.3125rem}.ui.vertical.steps .active.step:first-child{border-top-right-radius:0rem}.ui.vertical.steps .step:last-child{border-radius:0;border-bottom-left-radius:.3125rem;border-bottom-right-radius:.3125rem}.ui.vertical.steps .active.step:last-child{border-bottom-right-radius:0rem}.ui.vertical.steps .step:after{display:none}.ui.vertical.steps .active.step:after{display:block}.ui.vertical.steps .two.line.step{line-height:1.3}.ui.vertical.steps .two.line.active.step:after{position:absolute;z-index:2;content:'';top:0;right:-1.45em;background-color:transparent;border-bottom:2.35em solid transparent;border-left:1.55em solid #555;border-top:2.35em solid transparent;width:0;height:0;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none}.ui.steps{cursor:pointer;display:inline-block;font-size:0;overflow:hidden;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1);line-height:1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;border-radius:.3125rem}.ui.steps .step:first-child{padding-left:1.35em;border-radius:.3125em 0 0 .3125em}.ui.steps .step:last-child{border-radius:0 .3125em .3125em 0}.ui.steps .step:only-child{border-radius:.3125em}.ui.steps .step:last-child{margin-right:0}.ui.steps .step:last-child:after{display:none}.ui.step:hover,.ui.step.hover{background-color:#F7F7F7;color:rgba(0,0,0,.8)}.ui.steps .step.hover:after,.ui.steps .step:hover:after,.ui.step:hover,.ui.step.hover::after{background-color:#F7F7F7}.ui.steps .step.down,.ui.steps .step:active,.ui.step.down,.ui.step:active{background-color:#F0F0F0}.ui.steps .step.down:after,.ui.steps .step:active:after,.ui.steps.down::after,.ui.steps:active::after{background-color:#F0F0F0}.ui.steps .step.active,.ui.active.step{cursor:auto;background-color:#555;color:#FFF;font-weight:700}.ui.steps .step.active:after,.ui.active.steps:after{background-color:#555;-webkit-box-shadow:none;box-shadow:none}.ui.steps .disabled.step,.ui.disabled.step{cursor:auto;background-color:#FFF;color:#CBCBCB}.ui.steps .disabled.step:after,.ui.disabled.step:after{background-color:#FFF}.attached.ui.steps{margin:0;border-radius:.3125em .3125em 0 0}.attached.ui.steps .step:first-child{border-radius:.3125em 0 0}.attached.ui.steps .step:last-child{border-radius:0 .3125em 0 0}.bottom.attached.ui.steps{margin-top:-1px;border-radius:0 0 .3125em .3125em}.bottom.attached.ui.steps .step:first-child{border-radius:0 0 0 .3125em}.bottom.attached.ui.steps .step:last-child{border-radius:0 0 .3125em}.ui.one.steps,.ui.two.steps,.ui.three.steps,.ui.four.steps,.ui.five.steps,.ui.six.steps,.ui.seven.steps,.ui.eight.steps{display:block}.ui.one.steps>.step{width:100%}.ui.two.steps>.step{width:50%}.ui.three.steps>.step{width:33.333%}.ui.four.steps>.step{width:25%}.ui.five.steps>.step{width:20%}.ui.six.steps>.step{width:16.666%}.ui.seven.steps>.step{width:14.285%}.ui.eight.steps>.step{width:12.5%}.ui.small.step,.ui.small.steps .step{font-size:.8rem}.ui.step,.ui.steps .step{font-size:1rem}.ui.large.step,.ui.large.steps .step{font-size:1.25rem}.ui.accordion,.ui.accordion .accordion{width:600px;max-width:100%;font-size:1rem;border-radius:.3125em;background-color:#FFF;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1)}.ui.accordion .title,.ui.accordion .accordion .title{cursor:pointer;margin:0;padding:.75em 1em;color:rgba(0,0,0,.6);border-top:1px solid rgba(0,0,0,.05);-webkit-transition:background-color .2s ease-out;-moz-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.ui.accordion .title:first-child,.ui.accordion .accordion .title:first-child{border-top:0}.ui.accordion .content,.ui.accordion .accordion .content{display:none;margin:0;padding:1.3em 1em}.ui.accordion .title .dropdown.icon,.ui.accordion .accordion .title .dropdown.icon{display:inline-block;float:none;margin:0 .5em 0 0;-webkit-transition:-webkit-transform .2s ease,opacity .2s ease;-moz-transition:-moz-transform .2s ease,opacity .2s ease;transition:transform .2s ease,opacity .2s ease;-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}.ui.accordion .title .dropdown.icon:before,.ui.accordion .accordion .title .dropdown.icon:before{content:'\f0da'}.ui.basic.accordion.menu{background-color:#FFF;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1)}.ui.basic.accordion.menu .title,.ui.basic.accordion.menu .content{padding:0}.ui.basic.accordion{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.ui.basic.accordion .title,.ui.basic.accordion .accordion .title{background-color:transparent;border-top:0;padding-left:0;padding-right:0}.ui.basic.accordion .content,.ui.basic.accordion .accordion .content{padding:.5em 0}.ui.basic.accordion .active.title,.ui.basic.accordion .accordion .active.title{background-color:transparent}.ui.accordion .title:hover,.ui.accordion .active.title,.ui.accordion .accordion .title:hover,.ui.accordion .accordion .active.title{color:rgba(0,0,0,.8)}.ui.accordion .active.title,.ui.accordion .accordion .active.title{background-color:rgba(0,0,0,.1);color:rgba(0,0,0,.8)}.ui.accordion .active.title .dropdown.icon,.ui.accordion .accordion .active.title .dropdown.icon{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.ui.accordion .active.content,.ui.accordion .accordion .active.content{display:block}.ui.fluid.accordion,.ui.fluid.accordion .accordion{width:100%}.ui.chatroom{background-color:#F8F8F8;width:330px;height:370px;padding:0}.ui.chatroom .room{position:relative;background-color:#FFF;overflow:hidden;height:286px;border:1px solid rgba(0,0,0,.1);border-top:0;border-bottom:0}.ui.chatroom .room .loader{display:none;margin:-25px 0 0 -25px}.ui.chatroom .actions{overflow:hidden;background-color:#EEE;padding:4px;border:1px solid rgba(0,0,0,.1);border-radius:5px 5px 0 0}.ui.chatroom .actions .button{float:right;margin-left:3px}.ui.chatroom .actions .message{float:left;margin-left:6px;font-size:11px;color:#AAA;text-shadow:0 -1px 0 rgba(255,255,255,.8);line-height:28px}.ui.chatroom .actions .message .loader{display:inline-block;margin-right:8px}.ui.chatroom .log{float:left;overflow:auto;overflow-x:hidden;overflow-y:auto}.ui.chatroom .log .message{padding:3px 0;border-top:1px dotted #DADADA}.ui.chatroom .log .message:first-child{border-top:0}.ui.chatroom .status{padding:5px 0;color:#AAA;font-size:12px;font-style:italic;line-height:1.33;border-top:1px dotted #DADADA}.ui.chatroom .log .status:first-child{border-top:0}.ui.chatroom .log .flag{float:left}.ui.chatroom .log p{margin-left:0}.ui.chatroom .log .author{font-weight:700;-webkit-transition:color .3s ease-out;-moz-transition:color .3s ease-out;transition:color .3s ease-out}.ui.chatroom .log a.author:hover{opacity:.8}.ui.chatroom .log .message.admin p{font-weight:700;margin:1px 0 0 23px}.ui.chatroom .log .divider{margin:-1px 0;font-size:11px;padding:10px 0;border-top:1px solid #F8F8F8;border-bottom:1px solid #F8F8F8}.ui.chatroom .log .divider .rule{top:50%;width:15%}.ui.chatroom .log .divider .label{color:#777;margin:0}.ui.chatroom .room .list{position:relative;overflow:auto;overflow-x:hidden;overflow-y:auto;float:left;background-color:#EEE;border-left:1px solid #DDD}.ui.chatroom .room .list .user{display:table;padding:3px 7px;border-bottom:1px solid #DDD}.ui.chatroom .room .list .user:hover{background-color:#F8F8F8}.ui.chatroom .room .list .image{display:table-cell;vertical-align:middle;width:20px}.ui.chatroom .room .list .image img{width:20px;height:20px;vertical-align:middle}.ui.chatroom .room .list p{display:table-cell;vertical-align:middle;padding-left:7px;padding-right:14px;font-size:11px;line-height:1.2;font-weight:700}.ui.chatroom .room .list a:hover{opacity:.8}.ui.chatroom.loading .loader{display:block}.ui.chatroom .talk{border:1px solid rgba(0,0,0,.1);padding:5px 0 0;background-color:#EEE;border-radius:0 0 5px 5px}.ui.chatroom .talk .avatar,.ui.chatroom .talk input,.ui.chatroom .talk .button{float:left}.ui.chatroom .talk .avatar img{display:block;width:30px;height:30px;margin-right:4px;border-radius:500rem}.ui.chatroom .talk input{border:1px solid #CCC;margin:0;width:196px;height:14px;padding:8px 5px;font-size:12px;color:#555}.ui.chatroom .talk input.focus{border:1px solid #AAA}.ui.chatroom .send{width:80px;height:32px;margin-left:-1px;padding:4px 12px;font-size:12px;line-height:23px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;border-radius:0 5px 5px 0}.ui.chatroom .talk .log-in.button{display:block;float:none;margin-top:-6px;height:22px;border-radius:0 0 4px 4px}.ui.chatroom .talk .log-in.button i{vertical-align:text-top}.ui.chatroom .log .team.flag{width:18px}.ui.chatroom.loading .loader{display:block}.ui.chatroom{width:330px;height:370px}.ui.chatroom .room .container{width:3000px}.ui.chatroom .log{width:314px;height:278px;padding:4px 7px}.ui.chatroom .room .list{width:124px;height:278px;padding:4px 0}.ui.chatroom .room .list .user{width:110px}.ui.chatroom .talk{height:40px}.ui.checkbox{position:relative;display:inline-block;min-width:1em;height:1.25em;line-height:1em;outline:0;vertical-align:middle}.ui.checkbox input{position:absolute;top:0;left:0;opacity:0;outline:0}.ui.checkbox .box,.ui.checkbox label{cursor:pointer;padding-left:2em;outline:0}.ui.checkbox .box:before,.ui.checkbox label:before{position:absolute;top:0;line-height:1;width:1em;height:1em;left:0;content:'';border-radius:4px;background:#FFF;-webkit-transition:background-color .3s ease,-webkit-box-shadow .3s ease;-moz-transition:background-color .3s ease,box-shadow .3s ease;transition:background-color .3s ease,box-shadow .3s ease;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.2)}.ui.checkbox .box:after,.ui.checkbox label:after{-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0);opacity:0;content:'';position:absolute;background:transparent;border:.2em solid #333;border-top:0;border-right:0;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.ui.checkbox .box:after,.ui.checkbox label:after{top:.275em;left:.2em;width:.45em;height:.15em}.ui.checkbox label{color:rgba(0,0,0,.6);-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.ui.checkbox label:hover{color:rgba(0,0,0,.8)}.ui.checkbox input:focus~label{color:rgba(0,0,0,.8)}.ui.checkbox~label{cursor:pointer;opacity:.85;vertical-align:middle}.ui.checkbox~label:hover{opacity:1}.ui.checkbox .box:hover::before,.ui.checkbox label:hover::before{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.3);box-shadow:0 0 0 1px rgba(0,0,0,.3)}.ui.checkbox .box:active::before,.ui.checkbox label:active::before{background-color:#F5F5F5}.ui.checkbox input:focus~.box:before,.ui.checkbox input:focus~label:before{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.3);box-shadow:0 0 0 1px rgba(0,0,0,.3)}.ui.checkbox input:checked~.box:after,.ui.checkbox input:checked~label:after{-ms-filter:"alpha(Opacity=100)";filter:alpha(opacity=100);opacity:1}.ui.disabled.checkbox~.box:after,.ui.checkbox input[disabled]~.box:after,.ui.disabled.checkbox label,.ui.checkbox input[disabled]~label{opacity:.4;color:rgba(0,0,0,.3)}.ui.radio.checkbox .box:before,.ui.radio.checkbox label:before{min-width:1em;height:1em;border-radius:500px;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none}.ui.radio.checkbox .box:after,.ui.radio.checkbox label:after{border:0;top:.2em;left:.2em;width:.6em;height:.6em;background-color:#555;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;border-radius:500px}.ui.slider.checkbox{cursor:pointer;min-width:3em}.ui.slider.checkbox:after{position:absolute;top:.5em;left:0;content:'';width:3em;height:2px;background-color:rgba(0,0,0,.1)}.ui.slider.checkbox .box,.ui.slider.checkbox label{padding-left:4em}.ui.slider.checkbox .box:before,.ui.slider.checkbox label:before{cursor:pointer;display:block;position:absolute;top:-.25em;left:0;z-index:1;width:1.5em;height:1.5em;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;border-radius:50rem;-webkit-transition:left .3s ease 0s;-moz-transition:left .3s ease 0s;transition:left .3s ease 0s}.ui.slider.checkbox .box:after,.ui.slider.checkbox label:after{opacity:1;position:absolute;content:'';top:.15em;left:0;z-index:2;margin-left:.375em;border:0;width:.75em;height:.75em;border-radius:50rem;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;-webkit-transition:background .3s ease 0s,left .3s ease 0s;-moz-transition:background .3s ease 0s,left .3s ease 0s;transition:background .3s ease 0s,left .3s ease 0s}.ui.slider.checkbox input:checked~.box:before,.ui.slider.checkbox input:checked~label:before,.ui.slider.checkbox input:checked~.box:after,.ui.slider.checkbox input:checked~label:after{left:1.75em}.ui.slider.checkbox .box:after,.ui.slider.checkbox label:after{background-color:#D95C5C}.ui.slider.checkbox input:checked~.box:after,.ui.slider.checkbox input:checked~label:after{background-color:#89B84C}.ui.toggle.checkbox{cursor:pointer}.ui.toggle.checkbox .box,.ui.toggle.checkbox label{padding-left:4em}.ui.toggle.checkbox .box:before,.ui.toggle.checkbox label:before{cursor:pointer;display:block;position:absolute;content:'';top:-.25em;left:0;z-index:1;background-color:#FFF;width:3em;height:1.5em;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;border-radius:50rem}.ui.toggle.checkbox .box:after,.ui.toggle.checkbox label:after{opacity:1;background-color:transparent;-webkit-box-shadow:none;box-shadow:none;content:'';position:absolute;top:.15em;left:.5em;z-index:2;border:0;width:.75em;height:.75em;background-color:#D95C5C;border-radius:50rem;-webkit-transition:background .3s ease 0s,left .3s ease 0s;-moz-transition:background .3s ease 0s,left .3s ease 0s;transition:background .3s ease 0s,left .3s ease 0s}.ui.toggle.checkbox:active .box:before,.ui.toggle.checkbox:active label:before{background-color:#F5F5F5}.ui.toggle.checkbox input:checked~.box:after,.ui.toggle.checkbox input:checked~label:after{left:1.75em;background-color:#89B84C}.ui.checkbox{font-size:1em}.ui.large.checkbox{font-size:1.25em}.ui.huge.checkbox{font-size:1.5em}.ui.dimmable{position:relative}.ui.dimmer{display:none;position:absolute;top:0!important;left:0!important;width:0;height:0;text-align:center;vertical-align:middle;background-color:rgba(0,0,0,.85);opacity:0;line-height:1;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.5s;-moz-animation-duration:.5s;animation-duration:.5s;-webkit-transition:background-color .5s linear;-moz-transition:background-color .5s linear;transition:background-color .5s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;z-index:1000}.ui.dimmer>.content{width:100%;height:100%;display:table;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.dimmer>.content>div{display:table-cell;vertical-align:middle;color:#FFF}.ui.segment>.ui.dimmer{border-radius:5px}.ui.horizontal.segment>.ui.dimmer,.ui.vertical.segment>.ui.dimmer{border-radius:5px}.ui.dimmed.dimmable:not(body){overflow:hidden}.ui.dimmed.dimmable>.ui.animating.dimmer,.ui.dimmed.dimmable>.ui.visible.dimmer,.ui.active.dimmer{display:block;width:100%;height:100%;opacity:1}.ui.disabled.dimmer{width:0!important;height:0!important}.ui.page.dimmer{position:fixed;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-perspective:2000px;-moz-perspective:2000px;-ms-perspective:2000px;perspective:2000px;-webkit-transform-origin:center center;-moz-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center}.ui.scrolling.dimmable>.dimmer,.ui.scrolling.page.dimmer{position:absolute}.ui.dimmer>.top.aligned.content>*{vertical-align:top}.ui.dimmer>.bottom.aligned.content>*{vertical-align:bottom}.ui.inverted.dimmer{background-color:rgba(255,255,255,.85)}.ui.inverted.dimmer>.content>*{color:rgba(0,0,0,.8)}.ui.simple.dimmer{display:block;overflow:hidden;opacity:1;z-index:-100;background-color:rgba(0,0,0,0)}.ui.dimmed.dimmable>.ui.simple.dimmer{overflow:visible;opacity:1;width:100%;height:100%;background-color:rgba(0,0,0,.85);z-index:1}.ui.simple.inverted.dimmer{background-color:rgba(255,255,255,0)}.ui.dimmed.dimmable>.ui.simple.inverted.dimmer{background-color:rgba(255,255,255,.85)}.ui.dropdown{cursor:pointer;position:relative;display:inline-block;line-height:1;-webkit-transition:border-radius .1s ease,width .2s ease;-moz-transition:border-radius .1s ease,width .2s ease;transition:border-radius .1s ease,width .2s ease;-webkit-tap-highlight-color:rgba(0,0,0,0);-moz-tap-highlight-color:rgba(0,0,0,0);tap-highlight-color:rgba(0,0,0,0)}.ui.dropdown .menu{cursor:auto;position:absolute;display:none;top:100%;margin:0;background-color:#FFF;min-width:100%;white-space:nowrap;font-size:.875em;text-shadow:none;-webkit-box-shadow:0 0 1px 1px rgba(0,0,0,.1);box-shadow:0 0 1px 1px rgba(0,0,0,.1);border-radius:0 0 .325em .325em;-webkit-transition:opacity .2s ease;-moz-transition:opacity .2s ease;transition:opacity .2s ease;z-index:11}.ui.dropdown>.dropdown.icon{width:auto;margin:0 0 0 1em}.ui.dropdown>.dropdown.icon:before{content:"\f0d7"}.ui.dropdown .menu .item .dropdown.icon{width:auto;float:right;margin:0 0 0 .5em}.ui.dropdown .menu .item .dropdown.icon:before{content:"\f0da"}.ui.dropdown>.text{display:inline-block;-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.ui.dropdown .menu{left:0}.ui.dropdown .menu .menu{top:0!important;left:100%!important;margin:0!important;border-radius:0 .325em .325em 0!important}.ui.dropdown .menu .menu:after{display:none}.ui.dropdown .menu .item{cursor:pointer;border:0;border-top:1px solid rgba(0,0,0,.05);height:auto;font-size:.875em;display:block;color:rgba(0,0,0,.75);padding:.85em 1em!important;font-size:.875rem;text-transform:none;font-weight:400;text-align:left;-webkit-touch-callout:none}.ui.dropdown .menu .item:before{display:none}.ui.dropdown .menu .item .icon{margin-right:.75em}.ui.dropdown .menu .item:first-child{border-top:0}.ui.menu .right.menu .dropdown:last-child .menu,.ui.buttons>.ui.dropdown:last-child .menu{left:auto;right:0}.ui.vertical.menu .dropdown.item>.dropdown.icon:before{content:"\f0da"}.ui.dropdown.icon.button>.dropdown.icon{margin:0}.ui.visible.dropdown>.menu{display:block}.ui.dropdown .menu .item:hover{background-color:rgba(0,0,0,.02);z-index:12}.ui.dropdown .menu .active.item{background-color:rgba(0,0,0,.06)!important;border-left:0;border-color:transparent!important;-webkit-box-shadow:none;-moz-shadow:none;box-shadow:none;z-index:12}.ui.dropdown>.default.text,.ui.default.dropdown>.text{color:rgba(0,0,0,.5)}.ui.dropdown:hover>.default.text,.ui.default.dropdown:hover>.text{color:rgba(0,0,0,.8)}.ui.dropdown.error,.ui.dropdown.error>.text,.ui.dropdown.error>.default.text{color:#D95C5C!important}.ui.selection.dropdown.error{background-color:snow;-webkit-box-shadow:0 0 0 1px #e7bebe!important;box-shadow:0 0 0 1px #e7bebe!important}.ui.selection.dropdown.error:hover{-webkit-box-shadow:0 0 0 1px #e7bebe!important;box-shadow:0 0 0 1px #e7bebe!important}.ui.dropdown.error>.menu,.ui.dropdown.error>.menu .menu{-webkit-box-shadow:0 0 1px 1px #E7BEBE!important;box-shadow:0 0 1px 1px #E7BEBE!important}.ui.dropdown.error>.menu .item{color:#D95C5C!important}.ui.dropdown.error>.menu .item:hover{background-color:#FFF2F2!important}.ui.dropdown.error>.menu .active.item{background-color:#FDCFCF!important}.ui.simple.dropdown .menu:before,.ui.simple.dropdown .menu:after{display:none}.ui.simple.dropdown .menu{display:block;overflow:hidden;top:-9999px!important;position:absolute;opacity:0;width:0;height:0;-webkit-transition:opacity .2s ease-out;-moz-transition:opacity .2s ease-out;transition:opacity .2s ease-out}.ui.simple.active.dropdown,.ui.simple.dropdown:hover{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.ui.simple.active.dropdown>.menu,.ui.simple.dropdown:hover>.menu{overflow:visible;width:auto;height:auto;top:100%!important;opacity:1}.ui.simple.dropdown>.menu .item:active>.menu,.ui.simple.dropdown:hover>.menu .item:hover>.menu{overflow:visible;width:auto;height:auto;top:0!important;left:100%!important;opacity:1}.ui.simple.disabled.dropdown:hover .menu{display:none;height:0;width:0;overflow:hidden}.ui.selection.dropdown{cursor:pointer;display:inline-block;word-wrap:break-word;white-space:normal;background-color:#FFF;padding:.65em 1em;line-height:1.33;color:rgba(0,0,0,.8);-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1)!important;box-shadow:0 0 0 1px rgba(0,0,0,.1)!important;border-radius:.3125em!important}.ui.selection.dropdown select{display:none}.ui.selection.dropdown>.dropdown.icon{opacity:.7;margin:.2em 0 .2em 1.25em;-webkit-transition:opacity .2s ease-out;-moz-transition:opacity .2s ease-out;transition:opacity .2s ease-out}.ui.selection.dropdown,.ui.selection.dropdown .menu{-webkit-transition:-webkit-box-shadow .2s ease-out;-moz-transition:box-shadow .2s ease-out;transition:box-shadow .2s ease-out}.ui.selection.dropdown .menu{top:100%;max-height:312px;overflow-x:hidden;overflow-y:auto;-webkit-box-shadow:0 1px 0 1px #E0E0E0;box-shadow:0 1px 0 1px #E0E0E0;border-radius:0 0 .325em .325em}.ui.selection.dropdown .menu:after,.ui.selection.dropdown .menu:before{display:none}.ui.selection.dropdown .menu img{height:2.5em;display:inline-block;vertical-align:middle;margin-right:.5em}.ui.visible.selection.dropdown{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.ui.active.selection.dropdown{border-radius:.3125em .3125em 0 0!important}.ui.active.selection.dropdown>.dropdown.icon{opacity:1}.ui.fluid.dropdown{display:block}.ui.fluid.dropdown>.dropdown.icon{float:right}.ui.inline.dropdown{cursor:pointer;display:inline-block;color:inherit}.ui.inline.dropdown .dropdown.icon{margin:0 .5em 0 .25em}.ui.inline.dropdown .text{font-weight:700}.ui.inline.dropdown .menu{cursor:auto;margin-top:.25em;border-radius:.325em}.ui.floating.dropdown .menu{left:0;right:auto;margin-top:.5em!important;border-radius:.325em}.ui.pointing.dropdown .menu{top:100%;margin-top:.75em;border-radius:.325em}.ui.pointing.dropdown .menu:after{display:block;position:absolute;pointer-events:none;content:" ";visibility:visible;width:.5em;height:.5em;-webkit-box-shadow:-1px -1px 0 1px rgba(0,0,0,.05);box-shadow:-1px -1px 0 1px rgba(0,0,0,.05);background-image:none;background-color:#FFF;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);z-index:2}.ui.pointing.dropdown .menu .active.item:first-child{background:transparent -webkit-linear-gradient(transparent,rgba(0,0,0,.03));background:transparent -moz-linear-gradient(transparent,rgba(0,0,0,.03));background:transparent-webkit-gradient(linear,left top,left bottom,from(transparent),to(rgba(0,0,0,.03)));background:transparent linear-gradient(transparent,rgba(0,0,0,.03))}.ui.pointing.dropdown .menu:after{top:-.25em;left:50%;margin:0 0 0 -.25em}.ui.top.left.pointing.dropdown .menu{top:100%;bottom:auto;left:0;right:auto;margin:.75em 0 0}.ui.top.left.pointing.dropdown .menu:after{top:-.25em;left:1.25em;right:auto;margin:0;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.ui.top.right.pointing.dropdown .menu{top:100%;bottom:auto;right:0;left:auto;margin:.75em 0 0}.ui.top.right.pointing.dropdown .menu:after{top:-.25em;left:auto;right:1.25em;margin:0;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.ui.left.pointing.dropdown .menu{top:0;left:100%;right:auto;margin:0 0 0 .75em}.ui.left.pointing.dropdown .menu:after{top:1em;left:-.25em;margin:0;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.ui.right.pointing.dropdown .menu{top:0;left:auto;right:100%;margin:0 .75em 0 0}.ui.right.pointing.dropdown .menu:after{top:1em;left:auto;right:-.25em;margin:0;-webkit-transform:rotate(135deg);-moz-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg)}.ui.modal{display:none;position:fixed;z-index:1001;top:50%;left:50%;text-align:left;width:90%;margin-left:-45%;background-color:#FFF;border:1px solid #DDD;border-radius:5px;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.modal>.close{cursor:pointer;position:absolute;z-index:1;opacity:.8;font-size:1.25em;top:-1.75em;right:-1.75em;color:#FFF}.ui.modal>.close:hover{opacity:1}.ui.modal>.header{margin:0;padding:1.5rem 2rem;font-size:1.6em;font-weight:700;border-radius:.325em .325em 0 0}.ui.modal>.content{display:table;width:100%;position:relative;padding:2em;background-color:#F4F4F4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.modal>.content>.left:not(.ui){display:table-cell;padding-right:1.5%;min-width:25%}.ui.modal>.content>.right:not(.ui){display:table-cell;padding-left:1.5%;vertical-align:top}.ui.modal>.content>.left:not(.ui)>i.icon{font-size:8em;margin:0}.ui.modal>.content p{line-height:1.6}.ui.modal .actions{padding:1rem 2rem;text-align:right}.ui.modal .actions>.button{margin-left:.75em}@media only screen and (max-width:768px){.ui.modal .content>.left:not(.ui){display:block;padding:0 0 1em}.ui.modal .content>.right:not(.ui){display:block;padding:1em 0 0;-webkit-box-shadow:none;box-shadow:none}.ui.modal .content .image{width:auto!important;max-width:100%}.ui.modal .actions{padding-bottom:0}.ui.modal .actions>.buttons,.ui.modal .actions>.button{margin-bottom:1em}}@media only screen and (max-width:998px){.ui.modal{width:92%;margin-left:-46%}.ui.modal>.close{color:rgba(0,0,0,.8);top:1.5rem;right:1rem}}@media only screen and (min-width:998px){.ui.modal{width:74%;margin-left:-37%}}@media only screen and (min-width:1500px){.ui.modal{width:56%;margin-left:-28%}}@media only screen and (min-width:1750px){.ui.modal{width:42%;margin-left:-21%}}@media only screen and (min-width:2000px){.ui.modal{width:36%;margin-left:-18%}}.ui.basic.modal{background-color:transparent;border:0;color:#FFF}.ui.basic.modal>.close{top:1.5rem;right:1rem}.ui.basic.modal .content{background-color:transparent}.ui.modal.scrolling{position:absolute;margin-top:10px}.ui.active.modal{display:block}.ui.small.modal>.header{font-size:1.3em}@media only screen and (min-width:998px){.ui.small.modal{width:58%;margin-left:-29%}}@media only screen and (min-width:1500px){.ui.small.modal{width:40%;margin-left:-20%}}@media only screen and (min-width:1750px){.ui.small.modal{width:26%;margin-left:-13%}}@media only screen and (min-width:2000px){.ui.small.modal{width:20%;margin-left:-10%}}@media only screen and (min-width:998px){.ui.large.modal{width:74%;margin-left:-37%}}@media only screen and (min-width:1500px){.ui.large.modal{width:64%;margin-left:-32%}}@media only screen and (min-width:1750px){.ui.large.modal{width:54%;margin-left:-27%}}@media only screen and (min-width:2000px){.ui.large.modal{width:44%;margin-left:-22%}}.ui.nag{display:none;opacity:.95;position:relative;top:0;left:0;z-index:101;min-height:0;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;margin:0;line-height:3em;padding:0 1em;background-color:#555;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.2);box-shadow:0 1px 2px 0 rgba(0,0,0,.2);font-size:1em;text-align:center;color:rgba(255,255,255,.8);border-radius:0 0 5px 5px;-webkit-transition:.2s background;-moz-transition:.2s background;transition:.2s background}a.ui.nag{cursor:pointer}.ui.nag>.title{display:inline-block;margin:0 .5em;color:#FFF}.ui.nag>.close.icon{cursor:pointer;opacity:.4;position:absolute;top:50%;right:1em;margin-top:-.5em;color:#FFF;-webkit-transition:.1s opacity;-moz-transition:.1s opacity;transition:.1s opacity}.ui.nag:hover{opacity:1}.ui.nag .close:hover{opacity:1}.ui.overlay.nag{position:absolute;display:block}.ui.fixed.nag{position:fixed}.ui.bottom.nag{border-radius:5px 5px 0 0}.ui.fixed.bottom.nags,.ui.fixed.bottom.nag{top:auto;bottom:0}.ui.white.nags .nag,.ui.white.nag{background-color:#F1F1F1;text-shadow:0 1px 0 rgba(255,255,255,.8);color:#ACACAC}.ui.white.nags .nag .close,.ui.white.nags .nag .title,.ui.white.nag .close,.ui.white.nag .title{color:#333}.ui.nags .nag{border-radius:0}.ui.popup{display:none;position:absolute;top:0;right:0;z-index:900;border:1px solid rgba(0,0,0,.1);max-width:250px;background-color:#FFF;padding:.8em 1.2em;font-size:.875rem;font-weight:400;font-style:normal;color:rgba(0,0,0,.7);border-radius:.2em;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.1);box-shadow:0 1px 2px rgba(0,0,0,.1)}.ui.popup .header{padding:0 0 .5em;font-size:1.125em;line-height:1.2;font-weight:700}.ui.popup:before{position:absolute;content:"";width:.75em;height:.75rem;background-image:none;background-color:#FFF;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);z-index:2;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:1px 1px 1px rgba(0,0,0,.1);box-shadow:1px 1px 1px rgba(0,0,0,.1)}.ui.popup .ui.button{width:100%}.ui.popup{margin:0}.ui.popup.bottom{margin:.75em 0 0}.ui.popup.top{margin:0 0 .75em}.ui.popup.left.center{margin:0 .75em 0 0}.ui.popup.right.center{margin:0 0 0 .75em}.ui.popup.center{margin-left:-1.25em}.ui.bottom.center.popup:before{margin-left:-.4em;top:-.4em;left:50%;right:auto;bottom:auto;-webkit-box-shadow:-1px -1px 1px rgba(0,0,0,.2);box-shadow:-1px -1px 1px rgba(0,0,0,.2)}.ui.bottom.left.popup{margin-right:-2em}.ui.bottom.left.popup:before{top:-.4em;right:1em;bottom:auto;left:auto;margin-left:0;-webkit-box-shadow:-1px -1px 1px rgba(0,0,0,.2);box-shadow:-1px -1px 1px rgba(0,0,0,.2)}.ui.bottom.right.popup{margin-left:-2em}.ui.bottom.right.popup:before{top:-.4em;left:1em;right:auto;bottom:auto;margin-left:0;-webkit-box-shadow:-1px -1px 1px rgba(0,0,0,.2);box-shadow:-1px -1px 1px rgba(0,0,0,.2)}.ui.top.center.popup:before{top:auto;right:auto;bottom:-.4em;left:50%;margin-left:-.4em}.ui.top.left.popup{margin-right:-2em}.ui.top.left.popup:before{bottom:-.4em;right:1em;top:auto;left:auto;margin-left:0}.ui.top.right.popup{margin-left:-2em}.ui.top.right.popup:before{bottom:-.4em;left:1em;top:auto;right:auto;margin-left:0}.ui.left.center.popup:before{top:50%;right:-.35em;bottom:auto;left:auto;margin-top:-.4em;-webkit-box-shadow:1px -1px 1px rgba(0,0,0,.2);box-shadow:1px -1px 1px rgba(0,0,0,.2)}.ui.right.center.popup:before{top:50%;left:-.35em;bottom:auto;right:auto;margin-top:-.4em;-webkit-box-shadow:-1px 1px 1px rgba(0,0,0,.2);box-shadow:-1px 1px 1px rgba(0,0,0,.2)}.ui.loading.popup{display:block;visibility:hidden}.ui.animating.popup,.ui.visible.popup{display:block}.ui.small.popup{font-size:.75rem}.ui.large.popup{font-size:1rem}.ui.inverted.popup{background-color:#333;border:0;color:#FFF;-webkit-box-shadow:none;box-shadow:none}.ui.inverted.popup .header{background-color:rgba(0,0,0,.2);color:#FFF}.ui.inverted.popup:before{background-color:#333;-webkit-box-shadow:none;box-shadow:none}.ui.rating{display:inline-block;font-size:0;vertical-align:middle;margin:0 .5rem 0 0}.ui.rating:last-child{margin-right:0}.ui.rating:before{display:block;content:'';visibility:hidden;clear:both;height:0}.ui.rating .icon{cursor:pointer;margin:0;width:1em;height:auto;padding:0;color:rgba(0,0,0,.15);font-weight:400;font-style:normal}.ui.rating .icon:before{content:"\2605"}.ui.star.rating .icon{width:1.2em}.ui.star.rating .icon:before{content:'\f006';font-family:Icons}.ui.star.rating .active.icon:before{content:'\f005';font-family:Icons}.ui.heart.rating .icon{width:1.2em}.ui.heart.rating .icon:before{content:'\f08a';font-family:Icons}.ui.heart.rating .active.icon:before{content:'\f004';font-family:Icons}.ui.heart.rating .active.icon{color:#EF404A!important}.ui.heart.rating .hover.icon,.ui.heart.rating .active.hover.icon{color:#FF2733!important}.ui.disabled.rating .icon{cursor:default}.ui.rating .active.icon{color:#FFCB08!important}.ui.rating.hover .active.icon{opacity:.5}.ui.rating .icon.hover,.ui.rating .icon.hover.active{opacity:1;color:#FFB70A!important}.ui.small.rating .icon{font-size:.75rem}.ui.rating .icon{font-size:1rem}.ui.large.rating .icon{font-size:1.5rem;vertical-align:middle}.ui.huge.rating .icon{font-size:2rem;vertical-align:middle}.ui.search{position:relative;text-shadow:none;font-style:normal;font-weight:400}.ui.search input{border-radius:500rem}.ui.search>.button{position:relative;z-index:2;float:right;margin:0 0 0 -15px;padding:6px 15px 7px;border-radius:0 15px 15px 0;-webkit-box-shadow:none;box-shadow:none}.ui.search .results{display:none;position:absolute;z-index:999;top:100%;left:0;overflow:hidden;background-color:#FFF;margin-top:.5em;width:380px;font-size:.875em;line-height:1.2;color:#555;border-radius:3px;-webkit-box-shadow:0 0 1px 1px rgba(0,0,0,.1),0 -2px 0 0 rgba(0,0,0,.1) inset;box-shadow:0 0 1px 1px rgba(0,0,0,.1),0 -2px 0 0 rgba(0,0,0,.1) inset}.ui.search .result{cursor:pointer;overflow:hidden;padding:.5em 1em}.ui.search .result:first-child{border-top:0}.ui.search .result .image{background:#F0F0F0;margin-right:10px;float:left;overflow:hidden;border-radius:3px;width:38px;height:38px}.ui.search .result .image img{display:block;width:38px;height:38px}.ui.search .result .image~.info{float:none;margin-left:50px}.ui.search .result .info{float:left}.ui.search .result .title{font-weight:700;color:rgba(0,0,0,.8)}.ui.search .result .description{color:rgba(0,0,0,.6)}.ui.search .result .price{float:right;color:#5BBD72;font-weight:700}.ui.search .message{padding:1em}.ui.search .message .text .title{margin:0 0 .5rem;font-size:1.25rem;font-weight:700;color:rgba(0,0,0,.8)}.ui.search .message .text .description{margin:0;font-size:1rem;color:rgba(0,0,0,.5)}.ui.search .results .category{background-color:#FAFAFA;border-top:1px solid rgba(0,0,0,.1);-webkit-transition:background .2s ease-in;-moz-transition:background .2s ease-in;transition:background .2s ease-in}.ui.search .results .category:first-child{border-top:0}.ui.search .results .category>.name{float:left;padding:12px 0 0 8px;font-weight:700;color:#777;text-shadow:0 1px 0 rgba(255,255,255,.8)}.ui.search .results .category .result{background-color:#FFF;margin-left:80px;border-left:1px solid rgba(0,0,0,.1)}.ui.search .all{display:block;border-top:1px solid rgba(0,0,0,.1);background-color:#FAFAFA;height:2em;line-height:2em;color:rgba(0,0,0,.6);font-weight:700;text-align:center}.ui.search .result:hover,.ui.search .category .result:hover{background-color:#F8F8F8}.ui.search .all:hover{background-color:#F0F0F0}.ui.search.loading .input .icon{background:url(../images/loader-mini.gif) no-repeat 50% 50%}.ui.search.loading .input .icon:before,.ui.search.loading .input .icon:after{display:none}.ui.search .results .category.active{background-color:#F1F1F1}.ui.search .results .category.active>.name{color:#333}.ui.search .result.active,.ui.search .category .result.active{background-color:#FBFBFB}.ui.search .result.active .title{color:#000}.ui.search .result.active .description{color:#555}.ui.search .large.result .image,.ui.search .large.result .image img{width:50px;height:50px}.ui.search .large.results .indented.info{margin-left:65px}.ui.search .large.results .info .title{font-size:16px}.ui.search .large.results .info .description{font-size:11px}.ui.shape{display:inline-block;position:relative;-webkit-perspective:2000px;-moz-perspective:2000px;-ms-perspective:2000px;perspective:2000px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.shape .sides{-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d}.ui.shape .side{opacity:1;width:100%;margin:0!important;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.shape .side{display:none}.ui.cube.shape .side{min-width:15em;height:15em;padding:2em;background-color:#E6E6E6;color:rgba(0,0,0,.6);-webkit-box-shadow:0 0 2px rgba(0,0,0,.3);box-shadow:0 0 2px rgba(0,0,0,.3)}.ui.cube.shape .side>.content{width:100%;height:100%;display:table;text-align:center;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.cube.shape .side>.content>div{display:table-cell;vertical-align:middle;font-size:2em}.ui.text.shape.animating .sides{position:static}.ui.text.shape .side{white-space:nowrap}.ui.text.shape .side>*{white-space:normal}.ui.loading.shape{position:absolute;top:-9999px;left:-9999px}.ui.shape .animating.side{position:absolute;top:0;left:0;z-index:100}.ui.shape .hidden.side{opacity:.4}.ui.shape.animating{-webkit-transition:all .6s ease-in-out;-moz-transition:all .6s ease-in-out;transition:all .6s ease-in-out}.ui.shape.animating .sides{position:absolute}.ui.shape.animating .sides{-webkit-transition:all .6s ease-in-out;-moz-transition:all .6s ease-in-out;transition:all .6s ease-in-out}.ui.shape.animating .side{-webkit-transition:opacity .6s ease-in-out;-moz-transition:opacity .6s ease-in-out;transition:opacity .6s ease-in-out}.ui.shape .active.side{display:block}body{-webkit-transition:margin .3s ease,-webkit-transform .3s ease;-moz-transition:margin .3s ease,-moz-transform .3s ease;transition:margin .3s ease,transform .3s ease}.ui.sidebar{position:fixed;margin:0!important;height:100%!important;border-radius:0!important;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-ms-overflow-y:auto;overflow-y:auto;top:0;left:0;z-index:999;-webkit-transition:margin-left .3s ease,margin-top .3s ease;-moz-transition:margin-left .3s ease,margin-top .3s ease;transition:margin-left .3s ease,margin-top .3s ease}body.pushed.scrolling.ui.dimmable{position:static}.ui.right.very.thin.sidebar,.ui.right.thin.sidebar,.ui.right.sidebar,.ui.right.wide.sidebar,.ui.right.very.wide.sidebar{left:100%;margin:0!important}.ui.top.sidebar{width:100%!important}.ui.bottom.sidebar{width:100%!important;top:100%;margin:0!important}.ui.active.sidebar{margin-left:0!important}.ui.active.top.sidebar,.ui.active.bottom.sidebar{margin-top:0!important}.ui.styled.sidebar{padding:1em 1.5em;background-color:#FFF;-webkit-box-shadow:1px 0 0 rgba(0,0,0,.1);box-shadow:1px 0 0 rgba(0,0,0,.1)}.ui.styled.very.thin.sidebar{padding:.5em}.ui.styled.thin.sidebar{padding:1em}.ui.floating.sidebar{-webkit-box-shadow:2px 0 2px rgba(0,0,0,.2);box-shadow:2px 0 2px rgba(0,0,0,.2)}.ui.right.floating.sidebar{-webkit-box-shadow:-2px 0 2px rgba(0,0,0,.2);box-shadow:-2px 0 2px rgba(0,0,0,.2)}.ui.top.floating.sidebar{-webkit-box-shadow:0 4px 4px rgba(0,0,0,.2);box-shadow:0 4px 4px rgba(0,0,0,.2)}.ui.bottom.floating.sidebar{-webkit-box-shadow:0 -4px 4px rgba(0,0,0,.2);box-shadow:0 -4px 4px rgba(0,0,0,.2)}.ui.very.thin.sidebar{width:60px!important;margin-left:-60px!important}.ui.active.very.thin.sidebar{margin-left:0!important}.ui.active.right.very.thin.sidebar{margin-left:-60px!important}.ui.thin.sidebar{width:200px!important;margin-left:-200px!important}.ui.active.thin.sidebar{margin-left:0!important}.ui.active.right.thin.sidebar{margin-left:-200px!important}.ui.sidebar{width:275px!important;margin-left:-275px!important}.ui.active.sidebar{margin-left:0!important}.ui.active.right.sidebar{margin-left:-275px!important}.ui.wide.sidebar{width:350px!important;margin-left:-350px!important}.ui.active.wide.sidebar{margin-left:0!important}.ui.active.right.wide.sidebar{margin-left:-350px!important}.ui.very.wide.sidebar{width:475px!important;margin-left:-475px!important}.ui.active.very.wide.sidebar{margin-left:0!important}.ui.active.right.very.wide.sidebar{margin-left:-475px!important}.ui.top.sidebar{margin:-40px 0 0 0!important}.ui.top.sidebar,.ui.bottom.sidebar{height:40px!important}.ui.active.bottom.sidebar{margin-top:-40px!important}.ui.tab{display:none}.ui.tab.active,.ui.tab.open{display:block}.ui.tab.loading{position:relative;overflow:hidden;display:block;min-height:250px;text-indent:-10000px}.ui.tab.loading *{position:relative!important;left:-10000px!important}.ui.tab.loading:after{position:absolute;top:50px;left:50%;content:'Loading...';margin-left:-32px;text-indent:5px;color:rgba(0,0,0,.4);width:100%;height:100%;padding-top:75px;background:url(../images/loader-large.gif) no-repeat 0 0;visibility:visible}.ui.transition{-webkit-animation-iteration-count:1;-moz-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:1s;-moz-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:ease;-moz-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.ui.animating.transition{display:block;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0)}.ui.loading.transition{position:absolute;top:-999999px;left:-99999px}.ui.hidden.transition{display:none}.ui.visible.transition{display:block;visibility:visible}.ui.disabled.transition{-webkit-animation-play-state:paused;-moz-animation-play-state:paused;animation-play-state:paused}.ui.looping.transition{-webkit-animation-iteration-count:infinite;-moz-animation-iteration-count:infinite;animation-iteration-count:infinite}.ui.flash.transition{-webkit-animation-name:flash;-moz-animation-name:flash;animation-name:flash}.ui.shake.transition{-webkit-animation-name:shake;-moz-animation-name:shake;animation-name:shake}.ui.bounce.transition{-webkit-animation-name:bounce;-moz-animation-name:bounce;animation-name:bounce}.ui.tada.transition{-webkit-animation-name:tada;-moz-animation-name:tada;animation-name:tada}.ui.pulse.transition{-webkit-animation-name:pulse;-moz-animation-name:pulse;animation-name:pulse}.ui.flip.transition.in,.ui.flip.transition.out{-webkit-perspective:2000px;-moz-perspective:2000px;-ms-perspective:2000px;perspective:2000px}.ui.horizontal.flip.transition.in,.ui.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlip;-moz-animation-name:horizontalFlip;animation-name:horizontalFlip}.ui.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;-moz-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.ui.vertical.flip.transition.in,.ui.vertical.flip.transition.out{-webkit-animation-name:verticalFlip;-moz-animation-name:verticalFlip;animation-name:verticalFlip}.ui.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;-moz-animation-name:verticalFlipOut;animation-name:verticalFlipOut}.ui.fade.transition.in{-webkit-animation-name:fade;-moz-animation-name:fade;animation-name:fade}.ui.fade.transition.out{-webkit-animation-name:fadeOut;-moz-animation-name:fadeOut;animation-name:fadeOut}.ui.fade.up.transition.in{-webkit-animation-name:fadeUp;-moz-animation-name:fadeUp;animation-name:fadeUp}.ui.fade.up.transition.out{-webkit-animation-name:fadeUpOut;-moz-animation-name:fadeUpOut;animation-name:fadeUpOut}.ui.fade.down.transition.in{-webkit-animation-name:fadeDown;-moz-animation-name:fadeDown;animation-name:fadeDown}.ui.fade.down.transition.out{-webkit-animation-name:fadeDownOut;-moz-animation-name:fadeDownOut;animation-name:fadeDownOut}.ui.scale.transition.in{-webkit-animation-name:scale;-moz-animation-name:scale;animation-name:scale}.ui.scale.transition.out{-webkit-animation-name:scaleOut;-moz-animation-name:scaleOut;animation-name:scaleOut}.ui.slide.down.transition.in{-webkit-animation-name:slide;-moz-animation-name:slide;animation-name:slide;-moz-transform-origin:50% 0;transform-origin:50% 0;-ms-transform-origin:50% 0;-webkit-transform-origin:50% 0}.ui.slide.down.transition.out{-webkit-animation-name:slideOut;-moz-animation-name:slideOut;animation-name:slideOut;-webkit-transform-origin:50% 0;-moz-transform-origin:50% 0;-ms-transform-origin:50% 0;transform-origin:50% 0}.ui.slide.up.transition.in{-webkit-animation-name:slide;-moz-animation-name:slide;animation-name:slide;-webkit-transform-origin:50% 100%;-moz-transform-origin:50% 100%;-ms-transform-origin:50% 100%;transform-origin:50% 100%}.ui.slide.up.transition.out{-webkit-animation-name:slideOut;-moz-animation-name:slideOut;animation-name:slideOut;-webkit-transform-origin:50% 100%;-moz-transform-origin:50% 100%;-ms-transform-origin:50% 100%;transform-origin:50% 100%}@-webkit-keyframes slide{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}100%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-moz-keyframes slide{0%{opacity:0;-moz-transform:scaleY(0);transform:scaleY(0)}100%{opacity:1;-moz-transform:scaleY(1);transform:scaleY(1)}}@keyframes slide{0%{opacity:0;-webkit-transform:scaleY(0);-moz-transform:scaleY(0);-ms-transform:scaleY(0);transform:scaleY(0)}100%{opacity:1;-webkit-transform:scaleY(1);-moz-transform:scaleY(1);-ms-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideOut{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}100%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-moz-keyframes slideOut{0%{opacity:1;-moz-transform:scaleY(1);transform:scaleY(1)}100%{opacity:0;-moz-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOut{0%{opacity:1;-webkit-transform:scaleY(1);-moz-transform:scaleY(1);-ms-transform:scaleY(1);transform:scaleY(1)}100%{opacity:0;-webkit-transform:scaleY(0);-moz-transform:scaleY(0);-ms-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes flash{0%,50%,100%{opacity:1}25%,75%{opacity:0}}@-moz-keyframes flash{0%,50%,100%{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,100%{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-moz-keyframes shake{0%,100%{-moz-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-moz-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-moz-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,100%{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-moz-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);-moz-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,100%{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-moz-keyframes bounce{0%,20%,50%,80%,100%{-moz-transform:translateY(0);transform:translateY(0)}40%{-moz-transform:translateY(-30px);transform:translateY(-30px)}60%{-moz-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,100%{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);-moz-transform:translateY(-30px);-ms-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);-moz-transform:translateY(-15px);-ms-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(0.9) rotate(-3deg);transform:scale(0.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}100%{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-moz-keyframes tada{0%{-moz-transform:scale(1);transform:scale(1)}10%,20%{-moz-transform:scale(0.9) rotate(-3deg);transform:scale(0.9) rotate(-3deg)}30%,50%,70%,90%{-moz-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-moz-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}100%{-moz-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(0.9) rotate(-3deg);-moz-transform:scale(0.9) rotate(-3deg);-ms-transform:scale(0.9) rotate(-3deg);transform:scale(0.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);-moz-transform:scale(1.1) rotate(3deg);-ms-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);-moz-transform:scale(1.1) rotate(-3deg);-ms-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}100%{-webkit-transform:scale(1) rotate(0);-moz-transform:scale(1) rotate(0);-ms-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(0.9);transform:scale(0.9);opacity:.7}100%{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-moz-keyframes pulse{0%{-moz-transform:scale(1);transform:scale(1);opacity:1}50%{-moz-transform:scale(0.9);transform:scale(0.9);opacity:.7}100%{-moz-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(0.9);-moz-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9);opacity:.7}100%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes horizontalFlip{0%{-webkit-transform:rotateY(-90deg);transform:rotateY(-90deg);opacity:0}100%{-webkit-transform:rotateY(0deg);transform:rotateY(0deg);opacity:1}}@-moz-keyframes horizontalFlip{0%{-moz-transform:rotateY(-90deg);transform:rotateY(-90deg);opacity:0}100%{-moz-transform:rotateY(0deg);transform:rotateY(0deg);opacity:1}}@keyframes horizontalFlip{0%{-webkit-transform:rotateY(-90deg);-moz-transform:rotateY(-90deg);-ms-transform:rotateY(-90deg);transform:rotateY(-90deg);opacity:0}100%{-webkit-transform:rotateY(0deg);-moz-transform:rotateY(0deg);-ms-transform:rotateY(0deg);transform:rotateY(0deg);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:rotateY(0deg);transform:rotateY(0deg);opacity:1}100%{-webkit-transform:rotateY(90deg);transform:rotateY(90deg);opacity:0}}@-moz-keyframes horizontalFlipOut{0%{-moz-transform:rotateY(0deg);transform:rotateY(0deg);opacity:1}100%{-moz-transform:rotateY(90deg);transform:rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:rotateY(0deg);-moz-transform:rotateY(0deg);-ms-transform:rotateY(0deg);transform:rotateY(0deg);opacity:1}100%{-webkit-transform:rotateY(90deg);-moz-transform:rotateY(90deg);-ms-transform:rotateY(90deg);transform:rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlip{0%{-webkit-transform:rotateX(-90deg);transform:rotateX(-90deg);opacity:0}100%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@-moz-keyframes verticalFlip{0%{-moz-transform:rotateX(-90deg);transform:rotateX(-90deg);opacity:0}100%{-moz-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@keyframes verticalFlip{0%{-webkit-transform:rotateX(-90deg);-moz-transform:rotateX(-90deg);-ms-transform:rotateX(-90deg);transform:rotateX(-90deg);opacity:0}100%{-webkit-transform:rotateX(0deg);-moz-transform:rotateX(0deg);-ms-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}100%{-webkit-transform:rotateX(-90deg);transform:rotateX(-90deg);opacity:0}}@-moz-keyframes verticalFlipOut{0%{-moz-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}100%{-moz-transform:rotateX(-90deg);transform:rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:rotateX(0deg);-moz-transform:rotateX(0deg);-ms-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}100%{-webkit-transform:rotateX(-90deg);-moz-transform:rotateX(-90deg);-ms-transform:rotateX(-90deg);transform:rotateX(-90deg);opacity:0}}@-webkit-keyframes fade{0%{opacity:0}100%{opacity:1}}@-moz-keyframes fade{0%{opacity:0}100%{opacity:1}}@keyframes fade{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@-moz-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes fadeUp{0%{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-moz-keyframes fadeUp{0%{opacity:0;-moz-transform:translateY(20px);transform:translateY(20px)}100%{opacity:1;-moz-transform:translateY(0);transform:translateY(0)}}@keyframes fadeUp{0%{opacity:0;-webkit-transform:translateY(20px);-moz-transform:translateY(20px);-ms-transform:translateY(20px);transform:translateY(20px)}100%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeUpOut{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}}@-moz-keyframes fadeUpOut{0%{opacity:1;-moz-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-moz-transform:translateY(20px);transform:translateY(20px)}}@keyframes fadeUpOut{0%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(20px);-moz-transform:translateY(20px);-ms-transform:translateY(20px);transform:translateY(20px)}}@-webkit-keyframes fadeDown{0%{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-moz-keyframes fadeDown{0%{opacity:0;-moz-transform:translateY(-20px);transform:translateY(-20px)}100%{opacity:1;-moz-transform:translateY(0);transform:translateY(0)}}@keyframes fadeDown{0%{opacity:0;-webkit-transform:translateY(-20px);-moz-transform:translateY(-20px);-ms-transform:translateY(-20px);transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeDownOut{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}}@-moz-keyframes fadeDownOut{0%{opacity:1;-moz-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-moz-transform:translateY(-20px);transform:translateY(-20px)}}@keyframes fadeDownOut{0%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-20px);-moz-transform:translateY(-20px);-ms-transform:translateY(-20px);transform:translateY(-20px)}}@-webkit-keyframes scale{0%{opacity:0;-webkit-transform:scale(0.7);transform:scale(0.7)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-moz-keyframes scale{0%{opacity:0;-moz-transform:scale(0.7);transform:scale(0.7)}100%{opacity:1;-moz-transform:scale(1);transform:scale(1)}}@keyframes scale{0%{opacity:0;-webkit-transform:scale(0.7);-moz-transform:scale(0.7);-ms-transform:scale(0.7);transform:scale(0.7)}100%{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}100%{opacity:0;-webkit-transform:scale(0.7);transform:scale(0.7)}}@-moz-keyframes scaleOut{0%{opacity:1;-moz-transform:scale(1);transform:scale(1)}100%{opacity:0;-moz-transform:scale(0.7);transform:scale(0.7)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}100%{opacity:0;-webkit-transform:scale(0.7);-moz-transform:scale(0.7);-ms-transform:scale(0.7);transform:scale(0.7)}}.ui.video{position:relative;max-width:100%}.ui.video .placeholder{background-color:#333}.ui.video .play{cursor:pointer;position:absolute;top:0;left:0;z-index:10;width:100%;height:100%;-ms-filter:"alpha(Opacity=60)";filter:alpha(opacity=60);opacity:.6;-webkit-transition:opacity .3s;-moz-transition:opacity .3s;transition:opacity .3s}.ui.video .play.icon:before{position:absolute;top:50%;left:50%;z-index:11;font-size:6rem;margin:-3rem 0 0 -3rem;color:#FFF;text-shadow:0 3px 3px rgba(0,0,0,.4)}.ui.video .placeholder{display:block;width:100%;height:100%}.ui.video .embed{display:none}.ui.video .play:hover{opacity:1}.ui.video.active .play,.ui.video.active .placeholder{display:none}.ui.video.active .embed{display:block}.ui.comments a{cursor:pointer}.ui.comments .comment{position:relative;margin-top:.5em;padding-top:.5em}.ui.comments .comment:first-child{margin-top:0;padding-top:0}.ui.comments .comment .avatar{display:block;float:left;width:4em}.ui.comments .comment .avatar img{display:block;margin:0 auto;width:3em;height:3em;border-radius:500px}.ui.comments .comment>.content,.ui.comments .comment>.avatar{display:block}.ui.comments .comment .avatar~.content{padding:0 1em}.ui.comments .comment>.avatar~.content{padding-top:.25em;margin-left:3.5em}.ui.comments .comment .metadata{display:inline-block;margin-left:.3em;color:rgba(0,0,0,.4)}.ui.comments .comment .metadata>*{display:inline-block;margin:0 .3em 0 0}.ui.comments .comment .text{margin:.25em 0 .5em;word-wrap:break-word}.ui.comments .comment .actions{font-size:.9em}.ui.comments .comment .actions a{display:inline-block;margin:0 .3em 0 0;color:rgba(0,0,0,.3)}.ui.comments .comment .actions a.active,.ui.comments .comment .actions a:hover{color:rgba(0,0,0,.6)}.ui.comments .reply.form{margin-top:.75em;width:100%;max-width:30em}.ui.comments .comment .reply.form{margin-left:2em}.ui.comments>.reply.form{margin-top:1.5em;max-width:40em}.ui.comments .reply.form textarea{height:12em}.ui.comments .comment .comments{margin-top:.5em;padding-top:.5em;padding-bottom:1em}.ui.comments .comment .comments:before{position:absolute;top:0;left:0}.ui.comments>.comment .comments{margin-left:2em}.ui.comments>.comment>.comments>.comment>.comments{margin-left:1.75em}.ui.comments>.comment>.comments>.comment>.comments>.comment>.comments{margin-left:1.5em}.ui.comments>.comment>.comments>.comment>.comments>.comment>.comments>.comment .comments{margin-left:.5em}.ui.threaded.comments .comment .comments{margin-left:2em!important;padding-left:2em!important;-webkit-box-shadow:-1px 0 0 rgba(0,0,0,.05);box-shadow:-1px 0 0 rgba(0,0,0,.05)}.ui.minimal.comments .comment .actions{opacity:0;-webkit-transition:opacity .1s ease-out;-moz-transition:opacity .1s ease-out;transition:opacity .1s ease-out;-webkit-transition-delay:.1s;-moz-transition-delay:.1s;transition-delay:.1s}.ui.minimal.comments .comment>.content:hover>.actions{opacity:1}.ui.small.comments{font-size:.875em}.ui.feed a{cursor:pointer}.ui.feed,.ui.feed .event,.ui.feed .label,.ui.feed .content,.ui.feed .extra{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.feed .event{width:100%;display:table;padding:1em}.ui.feed .event:first-child{border-top:0}.ui.feed .event:last-child{margin-bottom:1em}.ui.feed .label{width:3em;display:table-cell;vertical-align:top;text-align:left}.ui.feed .label .icon{font-size:1.5em;padding:.5em;margin:0}.ui.feed .label img{width:3em;margin:0;border-radius:50em}.ui.feed .label+.content{padding:.75em 1em 0}.ui.feed .content{display:table-cell;vertical-align:top;text-align:left;word-wrap:break-word}.ui.feed .content .date{float:right;padding-left:1em;color:rgba(0,0,0,.4)}.ui.feed .content .summary{color:rgba(0,0,0,.75)}.ui.feed .content .summary img{display:inline-block;margin-right:.25em;width:4em;border-radius:500px}.ui.feed .content .extra{margin:1em 0 0;padding:.5em 0 0;color:rgba(0,0,0,.5)}.ui.feed .content .extra.images img{display:inline-block;margin-right:.25em;width:6em}.ui.feed .content .extra.text{padding:.5em 1em;border-left:.2em solid rgba(0,0,0,.1)}.ui.small.feed{font-size:.875em}.ui.small.feed .label img{width:2.5em}.ui.small.feed .label .icon{font-size:1.25em}.ui.feed .event{padding:.75em 0}.ui.small.feed .label+.content{padding:.5em .5em 0}.ui.small.feed .content .extra.images img{width:5em}.ui.small.feed .content .extra{margin:.5em 0 0}.ui.small.feed .content .extra.text{padding:.25em .5em}.ui.items{margin:1em 0 0}.ui.items:first-child{margin-top:0}.ui.items:last-child{margin-bottom:-1em}.ui.items:after{display:block;content:' ';height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.row>.item,.ui.items>.item{display:block;float:left;position:relative;top:0;width:316px;min-height:375px;margin:0 .5em 2.5em;padding:0;background-color:#FFF;line-height:1.2;font-size:1em;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1);border-bottom:.2em solid rgba(0,0,0,.2);border-radius:.33em;-webkit-transition:-webkit-box-shadow .2s ease;-moz-transition:box-shadow .2s ease;transition:box-shadow .2s ease;padding:.5em}.ui.items a.item,.ui.items .item a{cursor:pointer}.ui.items .item,.ui.items .item>.image,.ui.items .item>.image .overlay,.ui.items .item>.content,.ui.items .item>.content>.meta,.ui.items .item>.content>.extra{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.items .item>.image{display:block;position:relative;background-color:rgba(0,0,0,.05);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;border-radius:.2em}.ui.items .item>.image>img{display:block;width:100%}.ui.items .item>.content{padding:.75em .5em}.ui.items .item>.content>.name{display:block;font-size:1.25em;font-weight:700;margin-bottom:.2em;color:rgba(0,0,0,.7)}.ui.items .item>.content>.description{clear:both;margin:0;color:rgba(0,0,0,.45)}.ui.items .item>.content>.description p{margin:0 0 .2em}.ui.items .item>.content>.description p:last-child{margin-bottom:0}.ui.items .item .meta{float:right;color:rgba(0,0,0,.35)}.ui.items .item>.content>.meta+.name{float:left}.ui.items .item .star.label:hover::after{border-right-color:#F6EFC3}.ui.items .item .star.label:hover::after{border-top-color:#F6EFC3}.ui.items .item .star.label:hover .icon{color:#ac9400}.ui.items .item .star.label.active::after{border-right-color:#F6EFC3}.ui.items .item .star.label.active::after{border-top-color:#F6EFC3}.ui.items .item .star.label.active .icon{color:#ac9400}.ui.items .item .like.label:hover::after{border-right-color:#F5E1E2}.ui.items .item .like.label.active::after{border-top-color:#F5E1E2}.ui.items .item .like.label:hover .icon{color:#ef404a}.ui.items .item .like.label.active::after{border-right-color:#F5E1E2}.ui.items .item .like.label.active::after{border-top-color:#F5E1E2}.ui.items .item .like.label.active .icon{color:#ef404a}.ui.items .item .extra{position:absolute;width:100%;padding:0 .5em;bottom:-2em;left:0;height:1.5em;color:rgba(0,0,0,.25);-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.ui.items .item .extra>img{display:inline-block;border-radius:500px;margin-right:.25em;vertical-align:middle;width:2em}.ui.items .item .extra .left{float:left}.ui.items .item .extra .right{float:right}.ui.items .item:hover{cursor:pointer;z-index:5;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.2)}.ui.items .item:hover .extra{color:rgba(0,0,0,.5)}.ui.items .item:nth-of-type(6n+1):hover{border-bottom-color:#6ECFF5!important}.ui.items .item:nth-of-type(6n+2):hover{border-bottom-color:#5C6166!important}.ui.items .item:nth-of-type(6n+3):hover{border-bottom-color:#A1CF64!important}.ui.items .item:nth-of-type(6n+4):hover{border-bottom-color:#D95C5C!important}.ui.items .item:nth-of-type(6n+5):hover{border-bottom-color:#00B5AD!important}.ui.items .item:nth-of-type(6n+6):hover{border-bottom-color:#564F8A!important}.ui.connected.items{display:table;width:100%;margin-left:0!important;margin-right:0!important}.ui.connected.items>.row>.item,.ui.connected.items>.item{float:none;display:table-cell;vertical-align:top;height:auto;border-radius:0;margin:0;width:33.33%}.ui.connected.items>.row{display:table;margin:.5em 0}.ui.connected.items>.row:first-child{margin-top:0}.ui.connected.items>.item,.ui.connected.items>.row:last-child>.item{border-bottom:.2em solid rgba(0,0,0,.2)}.ui.connected.items>.row:last-child>.item:first-child,.ui.connected.items>.item:first-child{border-radius:0 0 0 .33em}.ui.connected.items>.row:last-child>.item:last-child,.ui.connected.items>.item:last-child{border-radius:0 0 .33em}.ui.connected.items .item:hover{border-bottom-width:.2em}.ui.one.connected.items>.row>.item,.ui.one.connected.items>.item{width:50%;padding-left:2%;padding-right:2%}.ui.two.connected.items>.row>.item,.ui.two.connected.items>.item{width:50%;padding-left:1%;padding-right:1%}.ui.three.connected.items>.row>.item,.ui.three.connected.items>.item{width:33.333%;padding-left:1%;padding-right:1%}.ui.four.connected.items>.row>.item,.ui.four.connected.items>.item{width:25%;padding-left:.5%;padding-right:.5%}.ui.five.connected.items>.row>.item,.ui.five.connected.items>.item{width:20%;padding-left:.5%;padding-right:.5%}.ui.six.connected.items>.row>.item,.ui.six.connected.items>.item{width:16.66%;padding-left:.5%;padding-right:.5%}.ui.seven.connected.items>.row>.item,.ui.seven.connected.items>.item{width:14.28%;padding-left:.5%;padding-right:.5%}.ui.eight.connected.items>.row>.item,.ui.eight.connected.items>.item{width:12.5%;padding-left:.25%;padding-right:.25%}.ui.nine.connected.items>.row>.item,.ui.nine.connected.items>.item{width:11.11%;padding-left:.25%;padding-right:.25%}.ui.ten.connected.items>.row>.item,.ui.ten.connected.items>.item{width:10%;padding-left:.2%;padding-right:.2%}.ui.eleven.connected.items>.row>.item,.ui.eleven.connected.items>.item{width:9.09%;padding-left:.2%;padding-right:.2%}.ui.twelve.connected.items>.row>.item,.ui.twelve.connected.items>.item{width:8.3333%;padding-left:.1%;padding-right:.1%}@media only screen and (max-width:768px){.ui.stackable.items{display:block!important}.ui.stackable.items>.item,.ui.stackable.items>.row>.item{display:block!important;height:auto!important;width:auto!important;padding:0!important}}.ui.horizontal.items>.item,.ui.items>.horizontal.item{display:table}.ui.horizontal.items>.item>.image,.ui.items>.horizontal.item>.image{display:table-cell;width:50%}.ui.horizontal.items>.item>.image+.content,.ui.items>.horizontal.item>.image+.content{width:50%;display:table-cell}.ui.horizontal.items>.item>.content,.ui.items>.horizontal.item>.content{padding:1% 1.7% 11% 3%;vertical-align:top}.ui.horizontal.items>.item>.meta,.ui.items>.horizontal.item>.meta{position:absolute;padding:0;bottom:7%;left:3%;width:94%}.ui.horizontal.items>.item>.image+.content+.meta,.ui.items>.horizontal.item>.image+.content+.meta{bottom:7%;left:53%;width:44%}.ui.horizontal.items>.item .avatar,.ui.items>.horizontal.item .avatar{width:11.5%}.ui.items>.item .avatar{max-width:25px}.ui.one.items{margin-left:-2%;margin-right:-2%}.ui.one.items>.item{width:100%;margin-left:2%;margin-right:2%}.ui.two.items{margin-left:-1%;margin-right:-1%}.ui.two.items>.item{width:48%;margin-left:1%;margin-right:1%}.ui.two.items>.item:nth-child(2n+1){clear:left}.ui.three.items{margin-left:-1%;margin-right:-1%}.ui.three.items>.item{width:31.333%;margin-left:1%;margin-right:1%}.ui.three.items>.item:nth-child(3n+1){clear:left}.ui.four.items{margin-left:-.5%;margin-right:-.5%}.ui.four.items>.item{width:24%;margin-left:.5%;margin-right:.5%}.ui.four.items>.item:nth-child(4n+1){clear:left}.ui.five.items{margin-left:-.5%;margin-right:-.5%}.ui.five.items>.item{width:19%;margin-left:.5%;margin-right:.5%}.ui.five.items>.item:nth-child(5n+1){clear:left}.ui.six.items{margin-left:-.5%;margin-right:-.5%}.ui.six.items>.item{width:15.66%;margin-left:.5%;margin-right:.5%}.ui.six.items>.item:nth-child(6n+1){clear:left}.ui.seven.items{margin-left:-.5%;margin-right:-.5%}.ui.seven.items>.item{width:13.28%;margin-left:.5%;margin-right:.5%;font-size:11px}.ui.seven.items>.item:nth-child(7n+1){clear:left}.ui.eight.items{margin-left:-.25%;margin-right:-.25%}.ui.eight.items>.item{width:12%;margin-left:.25%;margin-right:.25%;font-size:11px}.ui.eight.items>.item:nth-child(8n+1){clear:left}.ui.nine.items{margin-left:-.25%;margin-right:-.25%}.ui.nine.items>.item{width:10.61%;margin-left:.25%;margin-right:.25%;font-size:10px}.ui.nine.items>.item:nth-child(9n+1){clear:left}.ui.ten.items{margin-left:-.2%;margin-right:-.2%}.ui.ten.items>.item{width:9.6%;margin-left:.2%;margin-right:.2%;font-size:10px}.ui.ten.items>.item:nth-child(10n+1){clear:left}.ui.eleven.items{margin-left:-.2%;margin-right:-.2%}.ui.eleven.items>.item{width:8.69%;margin-left:.2%;margin-right:.2%;font-size:9px}.ui.eleven.items>.item:nth-child(11n+1){clear:left}.ui.twelve.items{margin-left:-.1%;margin-right:-.1%}.ui.twelve.items>.item{width:8.1333%;margin-left:.1%;margin-right:.1%;font-size:9px}.ui.twelve.items>.item:nth-child(12n+1){clear:left}ul.ui.list,ol.ui.list,.ui.list{list-style-type:none;margin:1em 0;padding:0}ul.ui.list ul,ol.ui.list ol,.ui.list .list{margin:0;padding:.5em 0 .5em 1em}ul.ui.list:first-child,ol.ui.list:first-child,.ui.list:first-child{margin-top:0}ul.ui.list:last-child,ol.ui.list:last-child,.ui.list:last-child{margin-bottom:0}ul.ui.list li,ol.ui.list li,.ui.list .item{display:list-item;list-style-type:none;list-style-position:inside;padding:.3em 0;line-height:1.2em}.ui.list .item:after{content:'';display:block;height:0;clear:both;visibility:hidden}.ui.list .list{clear:both}.ui.list .item>.icon{display:block;float:left;margin:0 1em 0 0;padding:.1em 0 0}.ui.list .item>.icon:only-child{display:inline-block}.ui.horizontal.list .item>.icon{margin:0;padding:0 .25em 0 0}.ui.horizontal.list .item>.icon,.ui.horizontal.list .item>.icon+.content{float:none;display:inline-block}.ui.list .item>img{display:block;float:left;margin-right:1em;vertical-align:middle}.ui.list .item>.content{display:inline-block;vertical-align:middle;line-height:1.2em}.ui.list .item>.icon+.content{display:table-cell;vertical-align:top}.ui.list a{cursor:pointer}.ui.list a .icon{color:rgba(0,0,0,.6);-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.ui.list .header{font-weight:700}.ui.list .description{color:rgba(0,0,0,.5)}.ui.list .item>.left.floated{margin-right:1em;float:left}.ui.list .item>.right.floated{margin-left:1em;float:right}.ui.horizontal.list{display:inline-block;font-size:0}.ui.horizontal.list>.item{display:inline-block;margin-left:1em;font-size:1rem}.ui.horizontal.list>.item:first-child{margin-left:0}.ui.horizontal.list .list{padding-left:0;padding-bottom:0}.ui.list a:hover .icon{color:rgba(0,0,0,.8)}.ui.inverted.list a .icon{color:rgba(255,255,255,.6)}.ui.inverted.list .description{color:rgba(255,255,255,.8)}.ui.inverted.link.list .item{color:rgba(255,255,255,.4)}.ui.link.list .item{color:rgba(0,0,0,.3)}.ui.link.list a.item,.ui.link.list .item a{color:rgba(0,0,0,.5)}.ui.link.list a.item:hover,.ui.link.list .item a:hover{color:rgba(0,0,0,.8)}.ui.link.list a.item:active,.ui.link.list .item a:active{color:rgba(0,0,0,.8)}.ui.link.list a.active.item,.ui.link.list .active.item a{color:rgba(0,0,0,.8)}.ui.inverted.link.list a.item,.ui.inverted.link.list .item a{color:rgba(255,255,255,.6)}.ui.inverted.link.list a.item:hover,.ui.inverted.link.list .item a:hover{color:rgba(255,255,255,.8)}.ui.inverted.link.list a.item:active,.ui.inverted.link.list .item a:active{color:rgba(255,255,255,.9)}.ui.inverted.link.list a.active.item,.ui.inverted.link.list .active.item a{color:rgba(255,255,255,.8)}.ui.selection.list .item{cursor:pointer;color:rgba(0,0,0,.4);padding:.5em;-webkit-transition:.2s color ease,.2s padding-left ease,.2s background-color ease;-moz-transition:.2s color ease,.2s padding-left ease,.2s background-color ease;transition:.2s color ease,.2s padding-left ease,.2s background-color ease}.ui.selection.list .item:hover{background-color:rgba(0,0,0,.02);color:rgba(0,0,0,.7)}.ui.selection.list .item:active{background-color:rgba(0,0,0,.05);color:rgba(0,0,0,.7)}.ui.selection.list .item.active{background-color:rgba(0,0,0,.04);color:rgba(0,0,0,.7)}.ui.animated.list .item{-webkit-transition:.2s color ease,.2s padding-left ease,.2s background-color ease;-moz-transition:.2s color ease,.2s padding-left ease,.2s background-color ease;transition:.2s color ease,.2s padding-left ease,.2s background-color ease}.ui.animated.list:not(.horizontal) .item:hover{padding-left:1em}.ui.animated.list:not(.horizontal) .item:hover .item:hover{padding-left:.5em}.ui.inverted.selection.list .item{color:rgba(255,255,255,.6)}.ui.inverted.selection.list .item:hover{background-color:rgba(255,255,255,.04);color:rgba(255,255,255,.8)}.ui.inverted.selection.list .item:active{background-color:rgba(255,255,255,.1);color:rgba(255,255,255,.7)}.ui.inverted.selection.list .item.active{background-color:rgba(255,255,255,.08);color:#FFF}ul.ui.list,.ui.bulleted.list{margin-left:1.5em}ul.ui.list li,.ui.bulleted.list .item{position:relative}ul.ui.list li:before,.ui.bulleted.list .item:before{position:absolute;left:-1.5em;content:'•'}ul.ui.list ul,.ui.bulleted.list .list{padding-left:1.5em}ul.ui.horizontal.bulleted.list,.ui.horizontal.bulleted.list{margin-left:0}ul.ui.horizontal.bulleted.list li,.ui.horizontal.bulleted.list .item{margin-left:1.5em}ul.ui.horizontal.bulleted.list li:before,.ui.horizontal.bulleted.list .item:before{left:-.9em}ul.ui.horizontal.bulleted.list li:first-child,.ui.horizontal.bulleted.list .item:first-child{margin-left:0}ul.ui.horizontal.bulleted.list li:first-child::before,.ui.horizontal.bulleted.list .item:first-child::before{display:none}ol.ui.list,.ui.ordered.list{counter-reset:ordered;margin-left:2em;list-style-type:none}ol.ui.list li,.ui.ordered.list .item{list-style-type:none;position:relative}ol.ui.list li:before,.ui.ordered.list .item:before{position:absolute;left:-2em;counter-increment:ordered;content:counters(ordered,".");text-align:right;vertical-align:top;opacity:.75}ol.ui.list ol,.ui.ordered.list .list{counter-reset:ordered;padding-left:2.5em}ol.ui.list ol li:before,.ui.ordered.list .list .item:before{left:-2.5em}ol.ui.horizontal.list,.ui.ordered.horizontal.list{margin-left:0}ol.ui.horizontal.list li:before,.ui.ordered.horizontal.list .item:before{position:static;left:0;margin:0 .5em 0 0}.ui.divided.list>.item,.ui.divided.list:not(.horizontal)>.list{border-top:1px solid rgba(0,0,0,.1);padding-left:.5em;padding-right:.5em}.ui.divided.list .item .menu .item{border-width:0}.ui.divided.list .item:first-child{border-top-width:0}.ui.divided.list:not(.horizontal) .list{margin-left:-.5em;margin-right:-.5em}.ui.divided.list:not(.horizontal) .list .item{padding-left:1em;padding-right:1em}.ui.divided.list:not(.horizontal) .list .item:first-child{border-top-width:1px}.ui.divided.bulleted.list{margin-left:0}.ui.divided.bulleted.list .item{padding-left:1.5em}.ui.divided.bulleted.list .item:before{left:.5em}.ui.divided.ordered.list{margin-left:0}.ui.divided.ordered.list>.item{padding-left:2em;padding-right:2em}.ui.divided.ordered.list>.item:before{left:.5em}.ui.divided.ordered.list .item .list{margin-left:-2em;margin-right:-2em}.ui.divided.horizontal.list{margin-left:0}.ui.divided.horizontal.list>.item{border-top:0;border-left:1px solid rgba(0,0,0,.1);margin:0;padding-left:.75em;padding-right:.75em;line-height:.6em}.ui.horizontal.divided.list>.item:first-child{border-left:0;padding-left:0}.ui.divided.inverted.list>.item,.ui.divided.inverted.list>.list{border-color:rgba(255,255,255,.2)}.ui.divided.inverted.horizontal.list .item{border-color:rgba(255,255,255,.2)}.ui.celled.list>.item,.ui.celled.list>.list{border-top:1px solid rgba(0,0,0,.1);padding-left:.5em;padding-right:.5em}.ui.celled.list>.item:last-child{border-bottom:1px solid rgba(0,0,0,.1)}.ui.celled.list .item .list{margin-left:-.5em;margin-right:-.5em}.ui.celled.list .item .list .item{border-width:0}.ui.celled.list .list .item:first-child{border-top-width:0}.ui.celled.bulleted.list{margin-left:0}.ui.celled.bulleted.list>.item{padding-left:1.5em}.ui.celled.bulleted.list>.item:before{left:.5em}.ui.celled.ordered.list{margin-left:0}.ui.celled.ordered.list .item{padding-left:2em;padding-right:2em}.ui.celled.ordered.list .item:before{left:.5em}.ui.celled.ordered.list .item .list{margin-left:-2em;margin-right:-2em}.ui.horizontal.celled.list{margin-left:0}.ui.horizontal.celled.list .item{border-top:0;border-left:1px solid rgba(0,0,0,.1);margin:0;padding-left:.75em;padding-right:.75em;line-height:.6em}.ui.horizontal.celled.list .item:last-child{border-bottom:0;border-right:1px solid rgba(0,0,0,.1)}.ui.celled.inverted.list>.item,.ui.celled.inverted.list>.list{border-color:rgba(255,255,255,.2)}.ui.celled.inverted.horizontal.list .item{border-color:rgba(255,255,255,.2)}.ui.relaxed.list:not(.horizontal) .item{padding-top:.5em;padding-bottom:.5em}.ui.relaxed.list .header{margin-bottom:.25em}.ui.horizontal.relaxed.list .item{padding-left:1.25em;padding-right:1.25em}.ui.very.relaxed.list:not(.horizontal) .item{padding-top:1em;padding-bottom:1em}.ui.very.relaxed.list .header{margin-bottom:.5em}.ui.horizontal.very.relaxed.list .item{padding-left:2em;padding-right:2em}.ui.mini.list .item{font-size:.7rem}.ui.tiny.list .item{font-size:.8125rem}.ui.small.list .item{font-size:.875rem}.ui.list .item{font-size:1em}.ui.large.list .item{font-size:1.125rem}.ui.big.list .item{font-size:1.25rem}.ui.huge.list .item{font-size:1.375rem}.ui.massive.list .item{font-size:1.5rem}.ui.statistic{text-align:center}.ui.statistic>.number{font-size:4em;font-weight:700;color:rgba(0,0,0,.7)}.ui.statistic>.description{opacity:.8}
\ No newline at end of file
diff --git a/css/semantic/build/packaged/fonts/basic.icons.eot b/css/semantic/build/packaged/fonts/basic.icons.eot
new file mode 100644
index 0000000..25066de
Binary files /dev/null and b/css/semantic/build/packaged/fonts/basic.icons.eot differ
diff --git a/css/semantic/build/packaged/fonts/basic.icons.svg b/css/semantic/build/packaged/fonts/basic.icons.svg
new file mode 100644
index 0000000..b9c54d0
--- /dev/null
+++ b/css/semantic/build/packaged/fonts/basic.icons.svg
@@ -0,0 +1,450 @@
+
+
+
+
+Created by FontForge 20100429 at Thu Sep 20 22:09:47 2012
+ By root
+Copyright (C) 2012 by original authors @ fontello.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/css/semantic/build/packaged/fonts/basic.icons.ttf b/css/semantic/build/packaged/fonts/basic.icons.ttf
new file mode 100644
index 0000000..318a264
Binary files /dev/null and b/css/semantic/build/packaged/fonts/basic.icons.ttf differ
diff --git a/css/semantic/build/packaged/fonts/basic.icons.woff b/css/semantic/build/packaged/fonts/basic.icons.woff
new file mode 100644
index 0000000..baba1b5
Binary files /dev/null and b/css/semantic/build/packaged/fonts/basic.icons.woff differ
diff --git a/css/semantic/build/packaged/fonts/icons.eot b/css/semantic/build/packaged/fonts/icons.eot
new file mode 100644
index 0000000..0662cb9
Binary files /dev/null and b/css/semantic/build/packaged/fonts/icons.eot differ
diff --git a/css/semantic/build/packaged/fonts/icons.otf b/css/semantic/build/packaged/fonts/icons.otf
new file mode 100644
index 0000000..7012545
Binary files /dev/null and b/css/semantic/build/packaged/fonts/icons.otf differ
diff --git a/css/semantic/build/packaged/fonts/icons.svg b/css/semantic/build/packaged/fonts/icons.svg
new file mode 100644
index 0000000..2edb4ec
--- /dev/null
+++ b/css/semantic/build/packaged/fonts/icons.svg
@@ -0,0 +1,399 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/build/packaged/fonts/icons.ttf b/css/semantic/build/packaged/fonts/icons.ttf
new file mode 100644
index 0000000..d365924
Binary files /dev/null and b/css/semantic/build/packaged/fonts/icons.ttf differ
diff --git a/css/semantic/build/packaged/fonts/icons.woff b/css/semantic/build/packaged/fonts/icons.woff
new file mode 100644
index 0000000..b9bd17e
Binary files /dev/null and b/css/semantic/build/packaged/fonts/icons.woff differ
diff --git a/css/semantic/build/packaged/images/loader-large-inverted.gif b/css/semantic/build/packaged/images/loader-large-inverted.gif
new file mode 100644
index 0000000..ee5283f
Binary files /dev/null and b/css/semantic/build/packaged/images/loader-large-inverted.gif differ
diff --git a/css/semantic/build/packaged/images/loader-large.gif b/css/semantic/build/packaged/images/loader-large.gif
new file mode 100644
index 0000000..519621c
Binary files /dev/null and b/css/semantic/build/packaged/images/loader-large.gif differ
diff --git a/css/semantic/build/packaged/images/loader-medium-inverted.gif b/css/semantic/build/packaged/images/loader-medium-inverted.gif
new file mode 100644
index 0000000..caa3110
Binary files /dev/null and b/css/semantic/build/packaged/images/loader-medium-inverted.gif differ
diff --git a/css/semantic/build/packaged/images/loader-medium.gif b/css/semantic/build/packaged/images/loader-medium.gif
new file mode 100644
index 0000000..386eb5a
Binary files /dev/null and b/css/semantic/build/packaged/images/loader-medium.gif differ
diff --git a/css/semantic/build/packaged/images/loader-mini-inverted.gif b/css/semantic/build/packaged/images/loader-mini-inverted.gif
new file mode 100644
index 0000000..c7c95b9
Binary files /dev/null and b/css/semantic/build/packaged/images/loader-mini-inverted.gif differ
diff --git a/css/semantic/build/packaged/images/loader-mini.gif b/css/semantic/build/packaged/images/loader-mini.gif
new file mode 100644
index 0000000..7f3e27c
Binary files /dev/null and b/css/semantic/build/packaged/images/loader-mini.gif differ
diff --git a/css/semantic/build/packaged/images/loader-small-inverted.gif b/css/semantic/build/packaged/images/loader-small-inverted.gif
new file mode 100644
index 0000000..bbb0a67
Binary files /dev/null and b/css/semantic/build/packaged/images/loader-small-inverted.gif differ
diff --git a/css/semantic/build/packaged/images/loader-small.gif b/css/semantic/build/packaged/images/loader-small.gif
new file mode 100644
index 0000000..8c9f60e
Binary files /dev/null and b/css/semantic/build/packaged/images/loader-small.gif differ
diff --git a/css/semantic/build/packaged/javascript/semantic.js b/css/semantic/build/packaged/javascript/semantic.js
new file mode 100644
index 0000000..c1c7851
--- /dev/null
+++ b/css/semantic/build/packaged/javascript/semantic.js
@@ -0,0 +1,12050 @@
+/*
+ * # Semantic - Accordion
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.accordion = function(parameters) {
+ var
+ $allModules = $(this),
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.accordion.settings, parameters)
+ : $.extend({}, $.fn.accordion.settings),
+
+ className = settings.className,
+ namespace = settings.namespace,
+ selector = settings.selector,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+ moduleSelector = $allModules.selector || '',
+
+ $module = $(this),
+ $title = $module.find(selector.title),
+ $content = $module.find(selector.content),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing accordion with bound events', $module);
+ // initializing
+ $title
+ .on('click' + eventNamespace, module.event.click)
+ ;
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.debug('Destroying previous accordion for', $module);
+ $module
+ .removeData(moduleNamespace)
+ ;
+ $title
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+ click: function() {
+ module.verbose('Title clicked', this);
+ var
+ $activeTitle = $(this),
+ index = $title.index($activeTitle)
+ ;
+ module.toggle(index);
+ },
+ resetDisplay: function() {
+ $(this).css('display', '');
+ if( $(this).attr('style') == '') {
+ $(this)
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ }
+ },
+ resetOpacity: function() {
+ $(this).css('opacity', '');
+ if( $(this).attr('style') == '') {
+ $(this)
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ }
+ }
+ },
+
+ toggle: function(index) {
+ module.debug('Toggling content content at index', index);
+ var
+ $activeTitle = $title.eq(index),
+ $activeContent = $activeTitle.next($content),
+ contentIsOpen = $activeContent.is(':visible')
+ ;
+ if(contentIsOpen) {
+ if(settings.collapsible) {
+ module.close(index);
+ }
+ else {
+ module.debug('Cannot close accordion content collapsing is disabled');
+ }
+ }
+ else {
+ module.open(index);
+ }
+ },
+
+ open: function(index) {
+ var
+ $activeTitle = $title.eq(index),
+ $activeContent = $activeTitle.next($content),
+ $previousTitle = $activeTitle.siblings(selector.title).filter('.' + className.active),
+ $previousContent = $previousTitle.next($title),
+ contentIsOpen = ($previousTitle.size() > 0)
+ ;
+ if( !$activeContent.is(':animated') ) {
+ module.debug('Opening accordion content', $activeTitle);
+ if(settings.exclusive && contentIsOpen) {
+ $previousTitle
+ .removeClass(className.active)
+ ;
+ $previousContent
+ .stop()
+ .children()
+ .stop()
+ .animate({
+ opacity: 0
+ }, settings.duration, module.event.resetOpacity)
+ .end()
+ .slideUp(settings.duration , settings.easing, function() {
+ $previousContent
+ .removeClass(className.active)
+ .children()
+ ;
+ $.proxy(module.event.resetDisplay, this)();
+ })
+ ;
+ }
+ $activeTitle
+ .addClass(className.active)
+ ;
+ $activeContent
+ .stop()
+ .children()
+ .stop()
+ .animate({
+ opacity: 1
+ }, settings.duration)
+ .end()
+ .slideDown(settings.duration, settings.easing, function() {
+ $activeContent
+ .addClass(className.active)
+ ;
+ $.proxy(module.event.resetDisplay, this)();
+ $.proxy(settings.onOpen, $activeContent)();
+ $.proxy(settings.onChange, $activeContent)();
+ })
+ ;
+ }
+ },
+
+ close: function(index) {
+ var
+ $activeTitle = $title.eq(index),
+ $activeContent = $activeTitle.next($content)
+ ;
+ module.debug('Closing accordion content', $activeContent);
+ $activeTitle
+ .removeClass(className.active)
+ ;
+ $activeContent
+ .removeClass(className.active)
+ .show()
+ .stop()
+ .children()
+ .stop()
+ .animate({
+ opacity: 0
+ }, settings.duration, module.event.resetOpacity)
+ .end()
+ .slideUp(settings.duration, settings.easing, function(){
+ $.proxy(module.event.resetDisplay, this)();
+ $.proxy(settings.onClose, $activeContent)();
+ $.proxy(settings.onChange, $activeContent)();
+ })
+ ;
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ module.debug('Changing internal', name, value);
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else {
+ module[name] = value;
+ }
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.accordion.settings = {
+ name : 'Accordion',
+ namespace : 'accordion',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ exclusive : true,
+ collapsible : true,
+
+ duration : 500,
+ easing : 'easeInOutQuint',
+
+ onOpen : function(){},
+ onClose : function(){},
+ onChange : function(){},
+
+ error: {
+ method : 'The method you called is not defined'
+ },
+
+ className : {
+ active : 'active'
+ },
+
+ selector : {
+ title : '.title',
+ content : '.content'
+ }
+
+
+};
+
+// Adds easing
+$.extend( $.easing, {
+ easeInOutQuint: function (x, t, b, c, d) {
+ if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
+ return c/2*((t-=2)*t*t*t*t + 2) + b;
+ }
+});
+
+})( jQuery, window , document );
+
+
+/*
+ * # Semantic - API
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+ $.api = $.fn.api = function(parameters) {
+
+ var
+ settings = $.extend(true, {}, $.api.settings, parameters),
+
+ // if this keyword isn't a jQuery object, create one
+ context = (typeof this != 'function')
+ ? this
+ : $('
'),
+ // context defines the element used for loading/error state
+ $context = (settings.stateContext)
+ ? $(settings.stateContext)
+ : $(context),
+ // module is the thing that initiates the api action, can be independent of context
+ $module = typeof this == 'object'
+ ? $(context)
+ : $context,
+
+ element = this,
+ time = new Date().getTime(),
+ performance = [],
+
+ moduleSelector = $module.selector || '',
+ moduleNamespace = settings.namespace + '-module',
+
+ className = settings.className,
+ metadata = settings.metadata,
+ error = settings.error,
+
+ instance = $module.data(moduleNamespace),
+
+ query = arguments[0],
+ methodInvoked = (instance !== undefined && typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ module,
+ returnedValue
+ ;
+
+ module = {
+ initialize: function() {
+ var
+ runSettings,
+
+ loadingTimer = new Date().getTime(),
+ loadingDelay,
+
+ promise,
+ url,
+
+ formData = {},
+ data,
+
+ ajaxSettings = {},
+ xhr
+ ;
+
+ // serialize parent form if requested!
+ if(settings.serializeForm && $(this).toJSON() !== undefined) {
+ formData = module.get.formData();
+ module.debug('Adding form data to API Request', formData);
+ $.extend(true, settings.data, formData);
+ }
+
+ // let beforeSend change settings object
+ runSettings = $.proxy(settings.beforeSend, $module)(settings);
+
+ // check for exit conditions
+ if(runSettings !== undefined && !runSettings) {
+ module.error(error.beforeSend);
+ module.reset();
+ return;
+ }
+
+ // get real url from template
+ url = module.get.url( module.get.templateURL() );
+
+ // exit conditions reached from missing url parameters
+ if( !url ) {
+ module.error(error.missingURL);
+ module.reset();
+ return;
+ }
+
+ // promise handles notification on api request, so loading min. delay can occur for all notifications
+ promise =
+ $.Deferred()
+ .always(function() {
+ if(settings.stateContext) {
+ $context
+ .removeClass(className.loading)
+ ;
+ }
+ $.proxy(settings.complete, $module)();
+ })
+ .done(function(response) {
+ module.debug('API request successful');
+ // take a stab at finding success state if json
+ if(settings.dataType == 'json') {
+ if (response.error !== undefined) {
+ $.proxy(settings.failure, $context)(response.error, settings, $module);
+ }
+ else if ($.isArray(response.errors)) {
+ $.proxy(settings.failure, $context)(response.errors[0], settings, $module);
+ }
+ else {
+ $.proxy(settings.success, $context)(response, settings, $module);
+ }
+ }
+ // otherwise
+ else {
+ $.proxy(settings.success, $context)(response, settings, $module);
+ }
+ })
+ .fail(function(xhr, status, httpMessage) {
+ var
+ errorMessage = (settings.error[status] !== undefined)
+ ? settings.error[status]
+ : httpMessage,
+ response
+ ;
+ // let em know unless request aborted
+ if(xhr !== undefined) {
+ // readyState 4 = done, anything less is not really sent
+ if(xhr.readyState !== undefined && xhr.readyState == 4) {
+
+ // if http status code returned and json returned error, look for it
+ if( xhr.status != 200 && httpMessage !== undefined && httpMessage !== '') {
+ module.error(error.statusMessage + httpMessage);
+ }
+ else {
+ if(status == 'error' && settings.dataType == 'json') {
+ try {
+ response = $.parseJSON(xhr.responseText);
+ if(response && response.error !== undefined) {
+ errorMessage = response.error;
+ }
+ }
+ catch(error) {
+ module.error(error.JSONParse);
+ }
+ }
+ }
+ $context
+ .removeClass(className.loading)
+ .addClass(className.error)
+ ;
+ // show error state only for duration specified in settings
+ if(settings.errorLength > 0) {
+ setTimeout(function(){
+ $context
+ .removeClass(className.error)
+ ;
+ }, settings.errorLength);
+ }
+ module.debug('API Request error:', errorMessage);
+ $.proxy(settings.failure, $context)(errorMessage, settings, this);
+ }
+ else {
+ module.debug('Request Aborted (Most likely caused by page change)');
+ }
+ }
+ })
+ ;
+
+ // look for params in data
+ $.extend(true, ajaxSettings, settings, {
+ success : function(){},
+ failure : function(){},
+ complete : function(){},
+ type : settings.method || settings.type,
+ data : data,
+ url : url,
+ beforeSend : settings.beforeXHR
+ });
+
+ if(settings.stateContext) {
+ $context
+ .addClass(className.loading)
+ ;
+ }
+
+ if(settings.progress) {
+ module.verbose('Adding progress events');
+ $.extend(true, ajaxSettings, {
+ xhr: function() {
+ var
+ xhr = new window.XMLHttpRequest()
+ ;
+ xhr.upload.addEventListener('progress', function(event) {
+ var
+ percentComplete
+ ;
+ if (event.lengthComputable) {
+ percentComplete = Math.round(event.loaded / event.total * 10000) / 100 + '%';
+ $.proxy(settings.progress, $context)(percentComplete, event);
+ }
+ }, false);
+ xhr.addEventListener('progress', function(event) {
+ var
+ percentComplete
+ ;
+ if (event.lengthComputable) {
+ percentComplete = Math.round(event.loaded / event.total * 10000) / 100 + '%';
+ $.proxy(settings.progress, $context)(percentComplete, event);
+ }
+ }, false);
+ return xhr;
+ }
+ });
+ }
+
+ module.verbose('Creating AJAX request with settings: ', ajaxSettings);
+ xhr =
+ $.ajax(ajaxSettings)
+ .always(function() {
+ // calculate if loading time was below minimum threshold
+ loadingDelay = ( settings.loadingLength - (new Date().getTime() - loadingTimer) );
+ settings.loadingDelay = loadingDelay < 0
+ ? 0
+ : loadingDelay
+ ;
+ })
+ .done(function(response) {
+ var
+ context = this
+ ;
+ setTimeout(function(){
+ promise.resolveWith(context, [response]);
+ }, settings.loadingDelay);
+ })
+ .fail(function(xhr, status, httpMessage) {
+ var
+ context = this
+ ;
+ // page triggers abort on navigation, dont show error
+ if(status != 'abort') {
+ setTimeout(function(){
+ promise.rejectWith(context, [xhr, status, httpMessage]);
+ }, settings.loadingDelay);
+ }
+ else {
+ $context
+ .removeClass(className.error)
+ .removeClass(className.loading)
+ ;
+ }
+ })
+ ;
+ if(settings.stateContext) {
+ $module
+ .data(metadata.promise, promise)
+ .data(metadata.xhr, xhr)
+ ;
+ }
+ },
+
+ get: {
+ formData: function() {
+ return $module
+ .closest('form')
+ .toJSON()
+ ;
+ },
+ templateURL: function() {
+ var
+ action = $module.data(settings.metadata.action) || settings.action || false,
+ url
+ ;
+ if(action) {
+ module.debug('Creating url for: ', action);
+ if(settings.api[action] !== undefined) {
+ url = settings.api[action];
+ }
+ else {
+ module.error(error.missingAction);
+ }
+ }
+ // override with url if specified
+ if(settings.url) {
+ url = settings.url;
+ module.debug('Getting url', url);
+ }
+ return url;
+ },
+ url: function(url, urlData) {
+ var
+ urlVariables
+ ;
+ if(url) {
+ urlVariables = url.match(settings.regExpTemplate);
+ urlData = urlData || settings.urlData;
+
+ if(urlVariables) {
+ module.debug('Looking for URL variables', urlVariables);
+ $.each(urlVariables, function(index, templateValue){
+ var
+ term = templateValue.substr( 2, templateValue.length - 3),
+ termValue = ($.isPlainObject(urlData) && urlData[term] !== undefined)
+ ? urlData[term]
+ : ($module.data(term) !== undefined)
+ ? $module.data(term)
+ : urlData[term]
+ ;
+ module.verbose('Looking for variable', term, $module, $module.data(term), urlData[term]);
+ // remove optional value
+ if(termValue === false) {
+ module.debug('Removing variable from URL', urlVariables);
+ url = url.replace('/' + templateValue, '');
+ }
+ // undefined condition
+ else if(termValue === undefined || !termValue) {
+ module.error(error.missingParameter + term);
+ url = false;
+ return false;
+ }
+ else {
+ url = url.replace(templateValue, termValue);
+ }
+ });
+ }
+ }
+ return url;
+ }
+ },
+
+ // reset api request
+ reset: function() {
+ $module
+ .data(metadata.promise, false)
+ .data(metadata.xhr, false)
+ ;
+ $context
+ .removeClass(className.error)
+ .removeClass(className.loading)
+ ;
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+ };
+
+ // handle DOM attachment to API functionality
+ $.fn.apiButton = function(parameters) {
+ $(this)
+ .each(function(){
+ var
+ // if only function passed it is success callback
+ $module = $(this),
+ selector = $(this).selector || '',
+
+ settings = ( $.isFunction(parameters) )
+ ? $.extend(true, {}, $.api.settings, $.fn.apiButton.settings, { stateContext: this, success: parameters })
+ : $.extend(true, {}, $.api.settings, $.fn.apiButton.settings, { stateContext: this}, parameters),
+ module
+ ;
+ module = {
+ initialize: function() {
+ if(settings.context && selector !== '') {
+ $(settings.context)
+ .on(selector, 'click.' + settings.namespace, module.click)
+ ;
+ }
+ else {
+ $module
+ .on('click.' + settings.namespace, module.click)
+ ;
+ }
+ },
+ click: function() {
+ if(!settings.filter || $(this).filter(settings.filter).size() === 0) {
+ $.proxy( $.api, this )(settings);
+ }
+ }
+ };
+ module.initialize();
+ })
+ ;
+ return this;
+ };
+
+ $.api.settings = {
+
+ name : 'API',
+ namespace : 'api',
+
+ debug : true,
+ verbose : true,
+ performance : true,
+
+ api : {},
+
+ beforeSend : function(settings) {
+ return settings;
+ },
+ beforeXHR : function(xhr) {},
+ success : function(response) {},
+ complete : function(response) {},
+ failure : function(errorCode) {},
+ progress : false,
+
+ error : {
+ missingAction : 'API action used but no url was defined',
+ missingURL : 'URL not specified for the API action',
+ missingParameter : 'Missing an essential URL parameter: ',
+
+ timeout : 'Your request timed out',
+ error : 'There was an error with your request',
+ parseError : 'There was an error parsing your request',
+ JSONParse : 'JSON could not be parsed during error handling',
+ statusMessage : 'Server gave an error: ',
+ beforeSend : 'The before send function has aborted the request',
+ exitConditions : 'API Request Aborted. Exit conditions met'
+ },
+
+ className: {
+ loading : 'loading',
+ error : 'error'
+ },
+
+ metadata: {
+ action : 'action',
+ promise : 'promise',
+ xhr : 'xhr'
+ },
+
+ regExpTemplate: /\{\$([A-z]+)\}/g,
+
+ action : false,
+ url : false,
+ urlData : false,
+ serializeForm : false,
+
+ stateContext : false,
+
+ method : 'get',
+ data : {},
+ dataType : 'json',
+ cache : true,
+
+ loadingLength : 200,
+ errorLength : 2000
+
+ };
+
+ $.fn.apiButton.settings = {
+ filter : '.disabled, .loading',
+ context : false,
+ stateContext : false
+ };
+
+})( jQuery, window , document );
+/*
+ * # Semantic - Colorize
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+ $.fn.colorize = function(parameters) {
+ var
+ settings = $.extend(true, {}, $.fn.colorize.settings, parameters),
+ // hoist arguments
+ moduleArguments = arguments || false
+ ;
+ $(this)
+ .each(function(instanceIndex) {
+
+ var
+ $module = $(this),
+
+ mainCanvas = $('
')[0],
+ imageCanvas = $('
')[0],
+ overlayCanvas = $('
')[0],
+
+ backgroundImage = new Image(),
+
+ // defs
+ mainContext,
+ imageContext,
+ overlayContext,
+
+ image,
+ imageName,
+
+ width,
+ height,
+
+ // shortucts
+ colors = settings.colors,
+ paths = settings.paths,
+ namespace = settings.namespace,
+ error = settings.error,
+
+ // boilerplate
+ instance = $module.data('module-' + namespace),
+ module
+ ;
+
+ module = {
+
+ checkPreconditions: function() {
+ module.debug('Checking pre-conditions');
+
+ if( !$.isPlainObject(colors) || $.isEmptyObject(colors) ) {
+ module.error(error.undefinedColors);
+ return false;
+ }
+ return true;
+ },
+
+ async: function(callback) {
+ if(settings.async) {
+ setTimeout(callback, 0);
+ }
+ else {
+ callback();
+ }
+ },
+
+ getMetadata: function() {
+ module.debug('Grabbing metadata');
+ image = $module.data('image') || settings.image || undefined;
+ imageName = $module.data('name') || settings.name || instanceIndex;
+ width = settings.width || $module.width();
+ height = settings.height || $module.height();
+ if(width === 0 || height === 0) {
+ module.error(error.undefinedSize);
+ }
+ },
+
+ initialize: function() {
+ module.debug('Initializing with colors', colors);
+ if( module.checkPreconditions() ) {
+
+ module.async(function() {
+ module.getMetadata();
+ module.canvas.create();
+
+ module.draw.image(function() {
+ module.draw.colors();
+ module.canvas.merge();
+ });
+ $module
+ .data('module-' + namespace, module)
+ ;
+ });
+ }
+ },
+
+ redraw: function() {
+ module.debug('Redrawing image');
+ module.async(function() {
+ module.canvas.clear();
+ module.draw.colors();
+ module.canvas.merge();
+ });
+ },
+
+ change: {
+ color: function(colorName, color) {
+ module.debug('Changing color', colorName);
+ if(colors[colorName] === undefined) {
+ module.error(error.missingColor);
+ return false;
+ }
+ colors[colorName] = color;
+ module.redraw();
+ }
+ },
+
+ canvas: {
+ create: function() {
+ module.debug('Creating canvases');
+
+ mainCanvas.width = width;
+ mainCanvas.height = height;
+ imageCanvas.width = width;
+ imageCanvas.height = height;
+ overlayCanvas.width = width;
+ overlayCanvas.height = height;
+
+ mainContext = mainCanvas.getContext('2d');
+ imageContext = imageCanvas.getContext('2d');
+ overlayContext = overlayCanvas.getContext('2d');
+
+ $module
+ .append( mainCanvas )
+ ;
+ mainContext = $module.children('canvas')[0].getContext('2d');
+ },
+ clear: function(context) {
+ module.debug('Clearing canvas');
+ overlayContext.fillStyle = '#FFFFFF';
+ overlayContext.fillRect(0, 0, width, height);
+ },
+ merge: function() {
+ if( !$.isFunction(mainContext.blendOnto) ) {
+ module.error(error.missingPlugin);
+ return;
+ }
+ mainContext.putImageData( imageContext.getImageData(0, 0, width, height), 0, 0);
+ overlayContext.blendOnto(mainContext, 'multiply');
+ }
+ },
+
+ draw: {
+
+ image: function(callback) {
+ module.debug('Drawing image');
+ callback = callback || function(){};
+ if(image) {
+ backgroundImage.src = image;
+ backgroundImage.onload = function() {
+ imageContext.drawImage(backgroundImage, 0, 0);
+ callback();
+ };
+ }
+ else {
+ module.error(error.noImage);
+ callback();
+ }
+ },
+
+ colors: function() {
+ module.debug('Drawing color overlays', colors);
+ $.each(colors, function(colorName, color) {
+ settings.onDraw(overlayContext, imageName, colorName, color);
+ });
+ }
+
+ },
+
+ debug: function(message, variableName) {
+ if(settings.debug) {
+ if(variableName !== undefined) {
+ console.info(settings.name + ': ' + message, variableName);
+ }
+ else {
+ console.info(settings.name + ': ' + message);
+ }
+ }
+ },
+ error: function(errorMessage) {
+ console.warn(settings.name + ': ' + errorMessage);
+ },
+ invoke: function(methodName, context, methodArguments) {
+ var
+ method
+ ;
+ methodArguments = methodArguments || Array.prototype.slice.call( arguments, 2 );
+
+ if(typeof methodName == 'string' && instance !== undefined) {
+ methodName = methodName.split('.');
+ $.each(methodName, function(index, name) {
+ if( $.isPlainObject( instance[name] ) ) {
+ instance = instance[name];
+ return true;
+ }
+ else if( $.isFunction( instance[name] ) ) {
+ method = instance[name];
+ return true;
+ }
+ module.error(settings.error.method);
+ return false;
+ });
+ }
+ return ( $.isFunction( method ) )
+ ? method.apply(context, methodArguments)
+ : false
+ ;
+ }
+
+ };
+ if(instance !== undefined && moduleArguments) {
+ // simpler than invoke realizing to invoke itself (and losing scope due prototype.call()
+ if(moduleArguments[0] == 'invoke') {
+ moduleArguments = Array.prototype.slice.call( moduleArguments, 1 );
+ }
+ return module.invoke(moduleArguments[0], this, Array.prototype.slice.call( moduleArguments, 1 ) );
+ }
+ // initializing
+ module.initialize();
+ })
+ ;
+ return this;
+ };
+
+ $.fn.colorize.settings = {
+ name : 'Image Colorizer',
+ debug : true,
+ namespace : 'colorize',
+
+ onDraw : function(overlayContext, imageName, colorName, color) {},
+
+ // whether to block execution while updating canvas
+ async : true,
+ // object containing names and default values of color regions
+ colors : {},
+
+ metadata: {
+ image : 'image',
+ name : 'name'
+ },
+
+ error: {
+ noImage : 'No tracing image specified',
+ undefinedColors : 'No default colors specified.',
+ missingColor : 'Attempted to change color that does not exist',
+ missingPlugin : 'Blend onto plug-in must be included',
+ undefinedHeight : 'The width or height of image canvas could not be automatically determined. Please specify a height.'
+ }
+
+ };
+
+})( jQuery, window , document );
+
+/*
+ * # Semantic - Form Validation
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.form = function(fields, parameters) {
+ var
+ $allModules = $(this),
+
+ settings = $.extend(true, {}, $.fn.form.settings, parameters),
+ validation = $.extend({}, $.fn.form.settings.defaults, fields),
+
+ namespace = settings.namespace,
+ metadata = settings.metadata,
+ selector = settings.selector,
+ className = settings.className,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ $module = $(this),
+ $field = $(this).find(selector.field),
+ $group = $(this).find(selector.group),
+ $message = $(this).find(selector.message),
+ $prompt = $(this).find(selector.prompt),
+ $submit = $(this).find(selector.submit),
+
+ formErrors = [],
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing form validation', $module, validation, settings);
+ module.bindEvents();
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module', instance);
+ module.removeEvents();
+ $module
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing selector cache');
+ $field = $module.find(selector.field);
+ },
+
+ submit: function() {
+ module.verbose('Submitting form', $module);
+ $module
+ .submit()
+ ;
+ },
+
+ bindEvents: function() {
+ if(settings.keyboardShortcuts) {
+ $field
+ .on('keydown' + eventNamespace, module.event.field.keydown)
+ ;
+ }
+ $module
+ .on('submit' + eventNamespace, module.validate.form)
+ ;
+ $field
+ .on('blur' + eventNamespace, module.event.field.blur)
+ ;
+ $submit
+ .on('click' + eventNamespace, module.submit)
+ ;
+ $field
+ .each(function() {
+ var
+ type = $(this).prop('type'),
+ inputEvent = module.get.changeEvent(type)
+ ;
+ $(this)
+ .on(inputEvent + eventNamespace, module.event.field.change)
+ ;
+ })
+ ;
+ },
+
+ removeEvents: function() {
+ $module
+ .off(eventNamespace)
+ ;
+ $field
+ .off(eventNamespace)
+ ;
+ $submit
+ .off(eventNamespace)
+ ;
+ $field
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+ field: {
+ keydown: function(event) {
+ var
+ $field = $(this),
+ key = event.which,
+ keyCode = {
+ enter : 13,
+ escape : 27
+ }
+ ;
+ if( key == keyCode.escape) {
+ module.verbose('Escape key pressed blurring field');
+ $field
+ .blur()
+ ;
+ }
+ if(!event.ctrlKey && key == keyCode.enter && $field.is(selector.input) ) {
+ module.debug('Enter key pressed, submitting form');
+ $submit
+ .addClass(className.down)
+ ;
+ $field
+ .one('keyup' + eventNamespace, module.event.field.keyup)
+ ;
+ event.preventDefault();
+ return false;
+ }
+ },
+ keyup: function() {
+ module.verbose('Doing keyboard shortcut form submit');
+ $submit.removeClass(className.down);
+ module.submit();
+ },
+ blur: function() {
+ var
+ $field = $(this),
+ $fieldGroup = $field.closest($group)
+ ;
+ if( $fieldGroup.hasClass(className.error) ) {
+ module.debug('Revalidating field', $field, module.get.validation($field));
+ module.validate.field( module.get.validation($field) );
+ }
+ else if(settings.on == 'blur' || settings.on == 'change') {
+ module.validate.field( module.get.validation($field) );
+ }
+ },
+ change: function() {
+ var
+ $field = $(this),
+ $fieldGroup = $field.closest($group)
+ ;
+ if(settings.on == 'change' || ( $fieldGroup.hasClass(className.error) && settings.revalidate) ) {
+ clearTimeout(module.timer);
+ module.timer = setTimeout(function() {
+ module.debug('Revalidating field', $field, module.get.validation($field));
+ module.validate.field( module.get.validation($field) );
+ }, settings.delay);
+ }
+ }
+ }
+
+ },
+
+ get: {
+ changeEvent: function(type) {
+ if(type == 'checkbox' || type == 'radio' || type == 'hidden') {
+ return 'change';
+ }
+ else {
+ return (document.createElement('input').oninput !== undefined)
+ ? 'input'
+ : (document.createElement('input').onpropertychange !== undefined)
+ ? 'propertychange'
+ : 'keyup'
+ ;
+ }
+ },
+ field: function(identifier) {
+ module.verbose('Finding field with identifier', identifier);
+ if( $field.filter('#' + identifier).size() > 0 ) {
+ return $field.filter('#' + identifier);
+ }
+ else if( $field.filter('[name="' + identifier +'"]').size() > 0 ) {
+ return $field.filter('[name="' + identifier +'"]');
+ }
+ else if( $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]').size() > 0 ) {
+ return $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]');
+ }
+ return $('
');
+ },
+ validation: function($field) {
+ var
+ rules
+ ;
+ $.each(validation, function(fieldName, field) {
+ if( module.get.field(field.identifier).get(0) == $field.get(0) ) {
+ rules = field;
+ }
+ });
+ return rules || false;
+ }
+ },
+
+ has: {
+
+ field: function(identifier) {
+ module.verbose('Checking for existence of a field with identifier', identifier);
+ if( $field.filter('#' + identifier).size() > 0 ) {
+ return true;
+ }
+ else if( $field.filter('[name="' + identifier +'"]').size() > 0 ) {
+ return true;
+ }
+ else if( $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]').size() > 0 ) {
+ return true;
+ }
+ return false;
+ }
+
+ },
+
+ add: {
+ prompt: function(identifier, errors) {
+ var
+ $field = module.get.field(identifier),
+ $fieldGroup = $field.closest($group),
+ $prompt = $fieldGroup.find(selector.prompt),
+ promptExists = ($prompt.size() !== 0)
+ ;
+ errors = (typeof errors == 'string')
+ ? [errors]
+ : errors
+ ;
+ module.verbose('Adding field error state', identifier);
+ $fieldGroup
+ .addClass(className.error)
+ ;
+ if(settings.inline) {
+ if(!promptExists) {
+ $prompt = settings.templates.prompt(errors);
+ $prompt
+ .appendTo($fieldGroup)
+ ;
+ }
+ $prompt
+ .html(errors[0])
+ ;
+ if(!promptExists) {
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ module.verbose('Displaying error with css transition', settings.transition);
+ $prompt.transition(settings.transition + ' in', settings.duration);
+ }
+ else {
+ module.verbose('Displaying error with fallback javascript animation');
+ $prompt
+ .fadeIn(settings.duration)
+ ;
+ }
+ }
+ else {
+ module.verbose('Inline errors are disabled, no inline error added', identifier);
+ }
+ }
+ },
+ errors: function(errors) {
+ module.debug('Adding form error messages', errors);
+ $message
+ .html( settings.templates.error(errors) )
+ ;
+ }
+ },
+
+ remove: {
+ prompt: function(field) {
+ var
+ $field = module.get.field(field.identifier),
+ $fieldGroup = $field.closest($group),
+ $prompt = $fieldGroup.find(selector.prompt)
+ ;
+ $fieldGroup
+ .removeClass(className.error)
+ ;
+ if(settings.inline && $prompt.is(':visible')) {
+ module.verbose('Removing prompt for field', field);
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $prompt.transition(settings.transition + ' out', settings.duration, function() {
+ $prompt.remove();
+ });
+ }
+ else {
+ $prompt
+ .fadeOut(settings.duration, function(){
+ $prompt.remove();
+ })
+ ;
+ }
+ }
+ }
+ },
+
+ validate: {
+
+ form: function(event) {
+ var
+ allValid = true
+ ;
+ // reset errors
+ formErrors = [];
+ $.each(validation, function(fieldName, field) {
+ if( !( module.validate.field(field) ) ) {
+ allValid = false;
+ }
+ });
+ if(allValid) {
+ module.debug('Form has no validation errors, submitting');
+ $module
+ .removeClass(className.error)
+ .addClass(className.success)
+ ;
+ return $.proxy(settings.onSuccess, this)(event);
+ }
+ else {
+ module.debug('Form has errors');
+ $module.addClass(className.error);
+ if(!settings.inline) {
+ module.add.errors(formErrors);
+ }
+ return $.proxy(settings.onFailure, this)(formErrors);
+ }
+ },
+
+ // takes a validation object and returns whether field passes validation
+ field: function(field) {
+ var
+ $field = module.get.field(field.identifier),
+ fieldValid = true,
+ fieldErrors = []
+ ;
+ if(field.rules !== undefined) {
+ $.each(field.rules, function(index, rule) {
+ if( module.has.field(field.identifier) && !( module.validate.rule(field, rule) ) ) {
+ module.debug('Field is invalid', field.identifier, rule.type);
+ fieldErrors.push(rule.prompt);
+ fieldValid = false;
+ }
+ });
+ }
+ if(fieldValid) {
+ module.remove.prompt(field, fieldErrors);
+ $.proxy(settings.onValid, $field)();
+ }
+ else {
+ formErrors = formErrors.concat(fieldErrors);
+ module.add.prompt(field.identifier, fieldErrors);
+ $.proxy(settings.onInvalid, $field)(fieldErrors);
+ return false;
+ }
+ return true;
+ },
+
+ // takes validation rule and returns whether field passes rule
+ rule: function(field, validation) {
+ var
+ $field = module.get.field(field.identifier),
+ type = validation.type,
+ value = $.trim($field.val() + ''),
+
+ bracketRegExp = /\[(.*)\]/i,
+ bracket = bracketRegExp.exec(type),
+ isValid = true,
+ ancillary,
+ functionType
+ ;
+ // if bracket notation is used, pass in extra parameters
+ if(bracket !== undefined && bracket !== null) {
+ ancillary = '' + bracket[1];
+ functionType = type.replace(bracket[0], '');
+ isValid = $.proxy(settings.rules[functionType], $module)(value, ancillary);
+ }
+ // normal notation
+ else {
+ isValid = $.proxy(settings.rules[type], $field)(value);
+ }
+ return isValid;
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.form.settings = {
+
+ name : 'Form',
+ namespace : 'form',
+
+ debug : true,
+ verbose : true,
+ performance : true,
+
+
+ keyboardShortcuts : true,
+ on : 'submit',
+ inline : false,
+
+ delay : 200,
+ revalidate : true,
+
+ transition : 'scale',
+ duration : 150,
+
+
+ onValid : function() {},
+ onInvalid : function() {},
+ onSuccess : function() { return true; },
+ onFailure : function() { return false; },
+
+ metadata : {
+ validate: 'validate'
+ },
+
+ selector : {
+ message : '.error.message',
+ field : 'input, textarea, select',
+ group : '.field',
+ input : 'input',
+ prompt : '.prompt',
+ submit : '.submit'
+ },
+
+ className : {
+ error : 'error',
+ success : 'success',
+ down : 'down',
+ label : 'ui label prompt'
+ },
+
+ // errors
+ error: {
+ method : 'The method you called is not defined.'
+ },
+
+
+ templates: {
+ error: function(errors) {
+ var
+ html = '
'
+ ;
+ $.each(errors, function(index, value) {
+ html += '' + value + ' ';
+ });
+ html += ' ';
+ return $(html);
+ },
+ prompt: function(errors) {
+ return $('
')
+ .addClass('ui red pointing prompt label')
+ .html(errors[0])
+ ;
+ }
+ },
+
+ rules: {
+ checked: function() {
+ return ($(this).filter(':checked').size() > 0);
+ },
+ empty: function(value) {
+ return !(value === undefined || '' === value);
+ },
+ email: function(value){
+ var
+ emailRegExp = new RegExp("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", "i")
+ ;
+ return emailRegExp.test(value);
+ },
+ length: function(value, requiredLength) {
+ return (value !== undefined)
+ ? (value.length >= requiredLength)
+ : false
+ ;
+ },
+ not: function(value, notValue) {
+ return (value != notValue);
+ },
+ contains: function(value, text) {
+ text = text.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
+ return (value.search(text) !== -1);
+ },
+ is: function(value, text) {
+ return (value == text);
+ },
+ maxLength: function(value, maxLength) {
+ return (value !== undefined)
+ ? (value.length <= maxLength)
+ : false
+ ;
+ },
+ match: function(value, fieldIdentifier) {
+ // use either id or name of field
+ var
+ $form = $(this),
+ matchingValue
+ ;
+ if($form.find('#' + fieldIdentifier).size() > 0) {
+ matchingValue = $form.find('#' + fieldIdentifier).val();
+ }
+ else if($form.find('[name=' + fieldIdentifier +']').size() > 0) {
+ matchingValue = $form.find('[name=' + fieldIdentifier + ']').val();
+ }
+ else if( $form.find('[data-validate="'+ fieldIdentifier +'"]').size() > 0 ) {
+ matchingValue = $form.find('[data-validate="'+ fieldIdentifier +'"]').val();
+ }
+ return (matchingValue !== undefined)
+ ? ( value.toString() == matchingValue.toString() )
+ : false
+ ;
+ },
+ url: function(value) {
+ var
+ urlRegExp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
+ ;
+ return urlRegExp.test(value);
+ }
+ }
+
+};
+
+})( jQuery, window , document );
+
+/*
+ * # Semantic - State
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.state = function(parameters) {
+ var
+ $allModules = $(this),
+ settings = $.extend(true, {}, $.fn.state.settings, parameters),
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ // shortcuts
+ error = settings.error,
+ metadata = settings.metadata,
+ className = settings.className,
+ namespace = settings.namespace,
+ states = settings.states,
+ text = settings.text,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = namespace + '-module',
+
+
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ $module = $(this),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+
+ module
+ ;
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing module');
+
+ // allow module to guess desired state based on element
+ if(settings.automatic) {
+ module.add.defaults();
+ }
+
+ // bind events with delegated events
+ if(settings.context && moduleSelector !== '') {
+ if( module.allows('hover') ) {
+ $(element, settings.context)
+ .on(moduleSelector, 'mouseenter' + eventNamespace, module.enable.hover)
+ .on(moduleSelector, 'mouseleave' + eventNamespace, module.disable.hover)
+ ;
+ }
+ if( module.allows('down') ) {
+ $(element, settings.context)
+ .on(moduleSelector, 'mousedown' + eventNamespace, module.enable.down)
+ .on(moduleSelector, 'mouseup' + eventNamespace, module.disable.down)
+ ;
+ }
+ if( module.allows('focus') ) {
+ $(element, settings.context)
+ .on(moduleSelector, 'focus' + eventNamespace, module.enable.focus)
+ .on(moduleSelector, 'blur' + eventNamespace, module.disable.focus)
+ ;
+ }
+ $(settings.context)
+ .on(moduleSelector, 'mouseenter' + eventNamespace, module.change.text)
+ .on(moduleSelector, 'mouseleave' + eventNamespace, module.reset.text)
+ .on(moduleSelector, 'click' + eventNamespace, module.toggle.state)
+ ;
+ }
+ else {
+ if( module.allows('hover') ) {
+ $module
+ .on('mouseenter' + eventNamespace, module.enable.hover)
+ .on('mouseleave' + eventNamespace, module.disable.hover)
+ ;
+ }
+ if( module.allows('down') ) {
+ $module
+ .on('mousedown' + eventNamespace, module.enable.down)
+ .on('mouseup' + eventNamespace, module.disable.down)
+ ;
+ }
+ if( module.allows('focus') ) {
+ $module
+ .on('focus' + eventNamespace, module.enable.focus)
+ .on('blur' + eventNamespace, module.disable.focus)
+ ;
+ }
+ $module
+ .on('mouseenter' + eventNamespace, module.change.text)
+ .on('mouseleave' + eventNamespace, module.reset.text)
+ .on('click' + eventNamespace, module.toggle.state)
+ ;
+ }
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module', instance);
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing selector cache');
+ $module = $(element);
+ },
+
+ add: {
+ defaults: function() {
+ var
+ userStates = parameters && $.isPlainObject(parameters.states)
+ ? parameters.states
+ : {}
+ ;
+ $.each(settings.defaults, function(type, typeStates) {
+ if( module.is[type] !== undefined && module.is[type]() ) {
+ module.verbose('Adding default states', type, element);
+ $.extend(settings.states, typeStates, userStates);
+ }
+ });
+ }
+ },
+
+ is: {
+
+ active: function() {
+ return $module.hasClass(className.active);
+ },
+ loading: function() {
+ return $module.hasClass(className.loading);
+ },
+ inactive: function() {
+ return !( $module.hasClass(className.active) );
+ },
+
+ enabled: function() {
+ return !( $module.is(settings.filter.active) );
+ },
+ disabled: function() {
+ return ( $module.is(settings.filter.active) );
+ },
+ textEnabled: function() {
+ return !( $module.is(settings.filter.text) );
+ },
+
+ // definitions for automatic type detection
+ button: function() {
+ return $module.is('.button:not(a, .submit)');
+ },
+ input: function() {
+ return $module.is('input');
+ }
+ },
+
+ allow: function(state) {
+ module.debug('Now allowing state', state);
+ states[state] = true;
+ },
+ disallow: function(state) {
+ module.debug('No longer allowing', state);
+ states[state] = false;
+ },
+
+ allows: function(state) {
+ return states[state] || false;
+ },
+
+ enable: {
+ state: function(state) {
+ if(module.allows(state)) {
+ $module.addClass( className[state] );
+ }
+ },
+ // convenience
+ focus: function() {
+ $module.addClass(className.focus);
+ },
+ hover: function() {
+ $module.addClass(className.hover);
+ },
+ down: function() {
+ $module.addClass(className.down);
+ },
+ },
+
+ disable: {
+ state: function(state) {
+ if(module.allows(state)) {
+ $module.removeClass( className[state] );
+ }
+ },
+ // convenience
+ focus: function() {
+ $module.removeClass(className.focus);
+ },
+ hover: function() {
+ $module.removeClass(className.hover);
+ },
+ down: function() {
+ $module.removeClass(className.down);
+ },
+ },
+
+ toggle: {
+ state: function() {
+ var
+ apiRequest = $module.data(metadata.promise)
+ ;
+ if( module.allows('active') && module.is.enabled() ) {
+ module.refresh();
+ if(apiRequest !== undefined) {
+ module.listenTo(apiRequest);
+ }
+ else {
+ module.change.state();
+ }
+ }
+ }
+ },
+
+ listenTo: function(apiRequest) {
+ module.debug('API request detected, waiting for state signal', apiRequest);
+ if(apiRequest) {
+ if(text.loading) {
+ module.update.text(text.loading);
+ }
+ $.when(apiRequest)
+ .then(function() {
+ if(apiRequest.state() == 'resolved') {
+ module.debug('API request succeeded');
+ settings.activateTest = function(){ return true; };
+ settings.deactivateTest = function(){ return true; };
+ }
+ else {
+ module.debug('API request failed');
+ settings.activateTest = function(){ return false; };
+ settings.deactivateTest = function(){ return false; };
+ }
+ module.change.state();
+ })
+ ;
+ }
+ // xhr exists but set to false, beforeSend killed the xhr
+ else {
+ settings.activateTest = function(){ return false; };
+ settings.deactivateTest = function(){ return false; };
+ }
+ },
+
+ // checks whether active/inactive state can be given
+ change: {
+
+ state: function() {
+ module.debug('Determining state change direction');
+ // inactive to active change
+ if( module.is.inactive() ) {
+ module.activate();
+ }
+ else {
+ module.deactivate();
+ }
+ if(settings.sync) {
+ module.sync();
+ }
+ $.proxy(settings.onChange, element)();
+ },
+
+ text: function() {
+ if( module.is.textEnabled() ) {
+ if( module.is.active() ) {
+ if(text.hover) {
+ module.verbose('Changing text to hover text', text.hover);
+ module.update.text(text.hover);
+ }
+ else if(text.disable) {
+ module.verbose('Changing text to disable text', text.disable);
+ module.update.text(text.disable);
+ }
+ }
+ else {
+ if(text.hover) {
+ module.verbose('Changing text to hover text', text.disable);
+ module.update.text(text.hover);
+ }
+ else if(text.enable){
+ module.verbose('Changing text to enable text', text.enable);
+ module.update.text(text.enable);
+ }
+ }
+ }
+ }
+
+ },
+
+ activate: function() {
+ if( $.proxy(settings.activateTest, element)() ) {
+ module.debug('Setting state to active');
+ $module
+ .addClass(className.active)
+ ;
+ module.update.text(text.active);
+ }
+ $.proxy(settings.onActivate, element)();
+ },
+
+ deactivate: function() {
+ if($.proxy(settings.deactivateTest, element)() ) {
+ module.debug('Setting state to inactive');
+ $module
+ .removeClass(className.active)
+ ;
+ module.update.text(text.inactive);
+ }
+ $.proxy(settings.onDeactivate, element)();
+ },
+
+ sync: function() {
+ module.verbose('Syncing other buttons to current state');
+ if( module.is.active() ) {
+ $allModules
+ .not($module)
+ .state('activate');
+ }
+ else {
+ $allModules
+ .not($module)
+ .state('deactivate')
+ ;
+ }
+ },
+
+ get: {
+ text: function() {
+ return (settings.selector.text)
+ ? $module.find(settings.selector.text).text()
+ : $module.html()
+ ;
+ },
+ textFor: function(state) {
+ return text[state] || false;
+ }
+ },
+
+ flash: {
+ text: function(text, duration) {
+ var
+ previousText = module.get.text()
+ ;
+ module.debug('Flashing text message', text, duration);
+ text = text || settings.text.flash;
+ duration = duration || settings.flashDuration;
+ module.update.text(text);
+ setTimeout(function(){
+ module.update.text(previousText);
+ }, duration);
+ }
+ },
+
+ reset: {
+ // on mouseout sets text to previous value
+ text: function() {
+ var
+ activeText = text.active || $module.data(metadata.storedText),
+ inactiveText = text.inactive || $module.data(metadata.storedText)
+ ;
+ if( module.is.textEnabled() ) {
+ if( module.is.active() && activeText) {
+ module.verbose('Resetting active text', activeText);
+ module.update.text(activeText);
+ }
+ else if(inactiveText) {
+ module.verbose('Resetting inactive text', activeText);
+ module.update.text(inactiveText);
+ }
+ }
+ }
+ },
+
+ update: {
+ text: function(text) {
+ var
+ currentText = module.get.text()
+ ;
+ if(text && text !== currentText) {
+ module.debug('Updating text', text);
+ if(settings.selector.text) {
+ $module
+ .data(metadata.storedText, text)
+ .find(settings.selector.text)
+ .text(text)
+ ;
+ }
+ else {
+ $module
+ .data(metadata.storedText, text)
+ .html(text)
+ ;
+ }
+ }
+ else {
+ module.debug('Text is already sane, ignoring update', text);
+ }
+ }
+ },
+
+ setting: function(name, value) {
+ module.debug('Changing setting', name, value);
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else {
+ settings[name] = value;
+ }
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ module.debug('Changing internal', name, value);
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else {
+ module[name] = value;
+ }
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.state.settings = {
+
+ // module info
+ name : 'State',
+
+ // debug output
+ debug : true,
+
+ // verbose debug output
+ verbose : true,
+
+ // namespace for events
+ namespace : 'state',
+
+ // debug data includes performance
+ performance: true,
+
+ // callback occurs on state change
+ onActivate : function() {},
+ onDeactivate : function() {},
+ onChange : function() {},
+
+ // state test functions
+ activateTest : function() { return true; },
+ deactivateTest : function() { return true; },
+
+ // whether to automatically map default states
+ automatic : true,
+
+ // activate / deactivate changes all elements instantiated at same time
+ sync : false,
+
+ // default flash text duration, used for temporarily changing text of an element
+ flashDuration : 3000,
+
+ // selector filter
+ filter : {
+ text : '.loading, .disabled',
+ active : '.disabled'
+ },
+
+ context : false,
+
+ // error
+ error: {
+ method : 'The method you called is not defined.'
+ },
+
+ // metadata
+ metadata: {
+ promise : 'promise',
+ storedText : 'stored-text'
+ },
+
+ // change class on state
+ className: {
+ focus : 'focus',
+ hover : 'hover',
+ down : 'down',
+ active : 'active',
+ loading : 'loading'
+ },
+
+ selector: {
+ // selector for text node
+ text: false
+ },
+
+ defaults : {
+ input: {
+ hover : true,
+ focus : true,
+ down : true,
+ loading : false,
+ active : false
+ },
+ button: {
+ hover : true,
+ focus : false,
+ down : true,
+ active : true,
+ loading : true
+ }
+ },
+
+ states : {
+ hover : true,
+ focus : true,
+ down : true,
+ loading : false,
+ active : false
+ },
+
+ text : {
+ flash : false,
+ hover : false,
+ active : false,
+ inactive : false,
+ enable : false,
+ disable : false
+ }
+
+};
+
+
+
+})( jQuery, window , document );
+
+/*
+ * # Semantic - Chatroom
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.chatroom = function(parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $(this)
+ .each(function() {
+ var
+ settings = $.extend(true, {}, $.fn.chatroom.settings, parameters),
+
+ className = settings.className,
+ namespace = settings.namespace,
+ selector = settings.selector,
+ error = settings.error,
+
+ $module = $(this),
+
+ $expandButton = $module.find(selector.expandButton),
+ $userListButton = $module.find(selector.userListButton),
+
+ $userList = $module.find(selector.userList),
+ $room = $module.find(selector.room),
+ $userCount = $module.find(selector.userCount),
+
+ $log = $module.find(selector.log),
+ $message = $module.find(selector.message),
+
+ $messageInput = $module.find(selector.messageInput),
+ $messageButton = $module.find(selector.messageButton),
+
+ instance = $module.data('module'),
+ element = this,
+
+ html = '',
+ users = {},
+
+ channel,
+ loggedInUser,
+
+ message,
+ count,
+
+ height,
+
+ pusher,
+ module
+ ;
+
+ module = {
+
+ width: {
+ log : $log.width(),
+ userList : $userList.outerWidth()
+ },
+
+ initialize: function() {
+
+ // check error conditions
+ if(Pusher === undefined) {
+ module.error(error.pusher);
+ }
+ if(settings.key === undefined || settings.channelName === undefined) {
+ module.error(error.key);
+ return false;
+ }
+ else if( !(settings.endpoint.message || settings.endpoint.authentication) ) {
+ module.error(error.endpoint);
+ return false;
+ }
+
+ // define pusher
+ pusher = new Pusher(settings.key);
+ Pusher.channel_auth_endpoint = settings.endpoint.authentication;
+
+ channel = pusher.subscribe(settings.channelName);
+
+ channel.bind('pusher:subscription_succeeded', module.user.list.create);
+ channel.bind('pusher:subscription_error', module.error);
+ channel.bind('pusher:member_added', module.user.joined);
+ channel.bind('pusher:member_removed', module.user.left);
+ channel.bind('update_messages', module.message.receive);
+
+ $.each(settings.customEvents, function(label, value) {
+ channel.bind(label, value);
+ });
+
+ // bind module events
+ $userListButton
+ .on('click.' + namespace, module.event.toggleUserList)
+ ;
+ $expandButton
+ .on('click.' + namespace, module.event.toggleExpand)
+ ;
+ $messageInput
+ .on('keydown.' + namespace, module.event.input.keydown)
+ .on('keyup.' + namespace, module.event.input.keyup)
+ ;
+ $messageButton
+ .on('mouseenter.' + namespace, module.event.hover)
+ .on('mouseleave.' + namespace, module.event.hover)
+ .on('click.' + namespace, module.event.submit)
+ ;
+ // scroll to bottom of chat log
+ $log
+ .animate({
+ scrollTop: $log.prop('scrollHeight')
+ }, 400)
+ ;
+ $module
+ .data('module', module)
+ .addClass(className.loading)
+ ;
+
+ },
+
+ // refresh module
+ refresh: function() {
+ // reset width calculations
+ $userListButton
+ .removeClass(className.active)
+ ;
+ module.width = {
+ log : $log.width(),
+ userList : $userList.outerWidth()
+ };
+ if( $userListButton.hasClass(className.active) ) {
+ module.user.list.hide();
+ }
+ $module.data('module', module);
+ },
+
+ user: {
+
+ updateCount: function() {
+ if(settings.userCount) {
+ users = $module.data('users');
+ count = 0;
+ $.each(users, function() {
+ count++;
+ });
+ $userCount
+ .html( settings.templates.userCount(count) )
+ ;
+ }
+ },
+
+ // add user to user list
+ joined: function(member) {
+ users = $module.data('users');
+ if(member.id != 'anonymous' && users[ member.id ] === undefined ) {
+ users[ member.id ] = member.info;
+ if(settings.randomColor && member.info.color === undefined) {
+ member.info.color = settings.templates.color(member.id);
+ }
+ html = settings.templates.userList(member.info);
+ if(member.info.isAdmin) {
+ $(html)
+ .prependTo($userList)
+ ;
+ }
+ else {
+ $(html)
+ .appendTo($userList)
+ ;
+ }
+ if(settings.partingMessages) {
+ $log
+ .append( settings.templates.joined(member.info) )
+ ;
+ module.message.scroll.test();
+ }
+ module.user.updateCount();
+ }
+ },
+
+ // remove user from user list
+ left: function(member) {
+ users = $module.data('users');
+ if(member !== undefined && member.id !== 'anonymous') {
+ delete users[ member.id ];
+ $module
+ .data('users', users)
+ ;
+ $userList
+ .find('[data-id='+ member.id + ']')
+ .remove()
+ ;
+ if(settings.partingMessages) {
+ $log
+ .append( settings.templates.left(member.info) )
+ ;
+ module.message.scroll.test();
+ }
+ module.user.updateCount();
+ }
+ },
+
+ list: {
+
+ // receives list of members and generates user list
+ create: function(members) {
+ users = {};
+ members.each(function(member) {
+ if(member.id !== 'anonymous' && member.id !== 'undefined') {
+ if(settings.randomColor && member.info.color === undefined) {
+ member.info.color = settings.templates.color(member.id);
+ }
+ // sort list with admin first
+ html = (member.info.isAdmin)
+ ? settings.templates.userList(member.info) + html
+ : html + settings.templates.userList(member.info)
+ ;
+ users[ member.id ] = member.info;
+ }
+ });
+ $module
+ .data('users', users)
+ .data('user', users[members.me.id] )
+ .removeClass(className.loading)
+ ;
+ $userList
+ .html(html)
+ ;
+ module.user.updateCount();
+ $.proxy(settings.onJoin, $userList.children())();
+ },
+
+ // shows user list
+ show: function() {
+ $log
+ .animate({
+ width: (module.width.log - module.width.userList)
+ }, {
+ duration : settings.speed,
+ easing : settings.easing,
+ complete : module.message.scroll.move
+ })
+ ;
+ },
+
+ // hides user list
+ hide: function() {
+ $log
+ .stop()
+ .animate({
+ width: (module.width.log)
+ }, {
+ duration : settings.speed,
+ easing : settings.easing,
+ complete : module.message.scroll.move
+ })
+ ;
+ }
+
+ }
+
+ },
+
+ message: {
+
+ // handles scrolling of chat log
+ scroll: {
+ test: function() {
+ height = $log.prop('scrollHeight') - $log.height();
+ if( Math.abs($log.scrollTop() - height) < settings.scrollArea) {
+ module.message.scroll.move();
+ }
+ },
+
+ move: function() {
+ height = $log.prop('scrollHeight') - $log.height();
+ $log
+ .scrollTop(height)
+ ;
+ }
+ },
+
+ // sends chat message
+ send: function(message) {
+ if( !module.utils.emptyString(message) ) {
+ $.api({
+ url : settings.endpoint.message,
+ method : 'POST',
+ data : {
+ 'message': {
+ content : message,
+ timestamp : new Date().getTime()
+ }
+ }
+ });
+ }
+ },
+
+ // receives chat response and processes
+ receive: function(response) {
+ message = response.data;
+ users = $module.data('users');
+ loggedInUser = $module.data('user');
+ if(users[ message.userID] !== undefined) {
+ // logged in user's messages already pushed instantly
+ if(loggedInUser === undefined || loggedInUser.id != message.userID) {
+ message.user = users[ message.userID ];
+ module.message.display(message);
+ }
+ }
+ },
+
+ // displays message in chat log
+ display: function(message) {
+ $log
+ .append( settings.templates.message(message) )
+ ;
+ module.message.scroll.test();
+ $.proxy(settings.onMessage, $log.children().last() )();
+ }
+
+ },
+
+ expand: function() {
+ $module
+ .addClass(className.expand)
+ ;
+ $.proxy(settings.onExpand, $module )();
+ module.refresh();
+ },
+
+ contract: function() {
+ $module
+ .removeClass(className.expand)
+ ;
+ $.proxy(settings.onContract, $module )();
+ module.refresh();
+ },
+
+ event: {
+
+ input: {
+
+ keydown: function(event) {
+ if(event.which == 13) {
+ $messageButton
+ .addClass(className.down)
+ ;
+ }
+ },
+
+ keyup: function(event) {
+ if(event.which == 13) {
+ $messageButton
+ .removeClass(className.down)
+ ;
+ module.event.submit();
+ }
+ }
+
+ },
+
+ // handles message form submit
+ submit: function() {
+ var
+ message = $messageInput.val(),
+ loggedInUser = $module.data('user')
+ ;
+ if(loggedInUser !== undefined && !module.utils.emptyString(message)) {
+ module.message.send(message);
+ // display immediately
+ module.message.display({
+ user: loggedInUser,
+ text: message
+ });
+ module.message.scroll.move();
+ $messageInput
+ .val('')
+ ;
+
+ }
+ },
+
+ // handles button click on expand button
+ toggleExpand: function() {
+ if( !$module.hasClass(className.expand) ) {
+ $expandButton
+ .addClass(className.active)
+ ;
+ module.expand();
+ }
+ else {
+ $expandButton
+ .removeClass(className.active)
+ ;
+ module.contract();
+ }
+ },
+
+ // handles button click on user list button
+ toggleUserList: function() {
+ if( !$log.is(':animated') ) {
+ if( !$userListButton.hasClass(className.active) ) {
+ $userListButton
+ .addClass(className.active)
+ ;
+ module.user.list.show();
+ }
+ else {
+ $userListButton
+ .removeClass('active')
+ ;
+ module.user.list.hide();
+ }
+ }
+
+ }
+ },
+
+ utils: {
+
+ emptyString: function(string) {
+ if(typeof string == 'string') {
+ return (string.search(/\S/) == -1);
+ }
+ return false;
+ }
+
+ },
+
+ setting: function(name, value) {
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else {
+ settings[name] = value;
+ }
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ maxDepth,
+ found
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && instance !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) {
+ instance = instance[value];
+ }
+ else if( instance[value] !== undefined ) {
+ found = instance[value];
+ }
+ else {
+ module.error(error.method, query);
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ return found.apply(context, passedArguments);
+ }
+ return found || false;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+ $.fn.chatroom.settings = {
+
+ name : 'Chat',
+ debug : false,
+ namespace : 'chat',
+
+ channel : 'present-chat',
+
+ onJoin : function(){},
+ onMessage : function(){},
+ onExpand : function(){},
+ onContract : function(){},
+
+ customEvents : {},
+
+ partingMessages : false,
+ userCount : true,
+ randomColor : true,
+
+ speed : 300,
+ easing : 'easeOutQuint',
+
+ // pixels from bottom of chat log that should trigger auto scroll to bottom
+ scrollArea : 9999,
+
+ endpoint : {
+ message : false,
+ authentication : false
+ },
+
+ error: {
+ method : 'The method you called is not defined',
+ endpoint : 'Please define a message and authentication endpoint.',
+ key : 'You must specify a pusher key and channel.',
+ pusher : 'You must include the Pusher library.'
+ },
+
+ className : {
+ expand : 'expand',
+ active : 'active',
+ hover : 'hover',
+ down : 'down',
+ loading : 'loading'
+ },
+
+ selector : {
+ userCount : '.actions .message',
+ userListButton : '.actions .list.button',
+ expandButton : '.actions .expand.button',
+ room : '.room',
+ userList : '.room .list',
+ log : '.room .log',
+ message : '.room .log .message',
+ author : '.room log .message .author',
+ messageInput : '.talk input',
+ messageButton : '.talk .send.button'
+ },
+
+ templates: {
+
+ userCount: function(number) {
+ return number + ' users in chat';
+ },
+
+ color: function(userID) {
+ var
+ colors = [
+ '#000000',
+ '#333333',
+ '#666666',
+ '#999999',
+ '#CC9999',
+ '#CC6666',
+ '#CC3333',
+ '#993333',
+ '#663333',
+ '#CC6633',
+ '#CC9966',
+ '#CC9933',
+ '#999966',
+ '#CCCC66',
+ '#99CC66',
+ '#669933',
+ '#669966',
+ '#33A3CC',
+ '#336633',
+ '#33CCCC',
+ '#339999',
+ '#336666',
+ '#336699',
+ '#6666CC',
+ '#9966CC',
+ '#333399',
+ '#663366',
+ '#996699',
+ '#993366',
+ '#CC6699'
+ ]
+ ;
+ return colors[ Math.floor( Math.random() * colors.length) ];
+ },
+
+ message: function(message) {
+ var
+ html = ''
+ ;
+ if(message.user.isAdmin) {
+ message.user.color = '#55356A';
+ html += '
';
+ html += '
';
+ }
+ /*
+ else if(message.user.isPro) {
+ html += '
';
+ html += '
';
+ }
+ */
+ else {
+ html += '
';
+ }
+ html += '
';
+ if(message.user.color !== undefined) {
+ html += '' + message.user.name + ' : ';
+ }
+ else {
+ html += '' + message.user.name + ' : ';
+ }
+ html += ''
+ + message.text
+ + '
'
+ + '
'
+ ;
+ return html;
+ },
+
+ joined: function(member) {
+ return (typeof member.name !== undefined)
+ ? '
' + member.name + ' has joined the chat.
'
+ : false
+ ;
+ },
+ left: function(member) {
+ return (typeof member.name !== undefined)
+ ? '
' + member.name + ' has left the chat.
'
+ : false
+ ;
+ },
+
+ userList: function(member) {
+ var
+ html = ''
+ ;
+ if(member.isAdmin) {
+ member.color = '#55356A';
+ }
+ html += ''
+ + '
';
+ return html;
+ }
+
+ }
+
+ };
+
+})( jQuery, window , document );
+
+/*
+ * # Semantic - Checkbox
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.checkbox = function(parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = $.extend(true, {}, $.fn.checkbox.settings, parameters),
+
+ className = settings.className,
+ namespace = settings.namespace,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $label = $(this).next(settings.selector.label).first(),
+ $input = $(this).find(settings.selector.input),
+
+ selector = $module.selector || '',
+ instance = $module.data(moduleNamespace),
+
+ element = this,
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing checkbox', settings);
+ if(settings.context && selector !== '') {
+ module.verbose('Adding delegated events');
+ $(element, settings.context)
+ .on(selector, 'click' + eventNamespace, module.toggle)
+ .on(selector + ' + ' + settings.selector.label, 'click' + eventNamespace, module.toggle)
+ ;
+ }
+ else {
+ $module
+ .on('click' + eventNamespace, module.toggle)
+ .data(moduleNamespace, module)
+ ;
+ $label
+ .on('click' + eventNamespace, module.toggle)
+ ;
+ }
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module');
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ is: {
+ radio: function() {
+ return $module.hasClass(className.radio);
+ },
+ enabled: function() {
+ return $input.prop('checked') !== undefined && $input.prop('checked');
+ },
+ disabled: function() {
+ return !module.is.enabled();
+ }
+ },
+
+ can: {
+ disable: function() {
+ return (typeof settings.required === 'boolean')
+ ? settings.required
+ : !module.is.radio()
+ ;
+ }
+ },
+
+ enable: function() {
+ module.debug('Enabling checkbox', $input);
+ $input
+ .prop('checked', true)
+ .trigger('change')
+ ;
+ $.proxy(settings.onChange, $input.get())();
+ $.proxy(settings.onEnable, $input.get())();
+ },
+
+ disable: function() {
+ module.debug('Disabling checkbox');
+ $input
+ .prop('checked', false)
+ .trigger('change')
+ ;
+ $.proxy(settings.onChange, $input.get())();
+ $.proxy(settings.onDisable, $input.get())();
+ },
+
+ toggle: function(event) {
+ module.verbose('Determining new checkbox state');
+ if( module.is.disabled() ) {
+ module.enable();
+ }
+ else if( module.is.enabled() && module.can.disable() ) {
+ module.disable();
+ }
+ },
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.checkbox.settings = {
+
+ name : 'Checkbox',
+ namespace : 'checkbox',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ // delegated event context
+ context : false,
+ required : 'auto',
+
+ onChange : function(){},
+ onEnable : function(){},
+ onDisable : function(){},
+
+ error : {
+ method : 'The method you called is not defined.'
+ },
+
+ selector : {
+ input : 'input[type=checkbox], input[type=radio]',
+ label : 'label'
+ },
+
+ className : {
+ radio : 'radio'
+ }
+
+};
+
+})( jQuery, window , document );
+
+/*
+ * # Semantic - Dimmer
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.dimmer = function(parameters) {
+ var
+ $allModules = $(this),
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.dimmer.settings, parameters)
+ : $.extend({}, $.fn.dimmer.settings),
+
+ selector = settings.selector,
+ namespace = settings.namespace,
+ className = settings.className,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+ moduleSelector = $allModules.selector || '',
+
+ clickEvent = ('ontouchstart' in document.documentElement)
+ ? 'touchstart'
+ : 'click',
+
+ $module = $(this),
+ $dimmer,
+ $dimmable,
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ preinitialize: function() {
+ if( module.is.dimmer() ) {
+ $dimmable = $module.parent();
+ $dimmer = $module;
+ }
+ else {
+ $dimmable = $module;
+ if( module.has.dimmer() ) {
+ $dimmer = $dimmable.children(selector.dimmer).first();
+ }
+ else {
+ $dimmer = module.create();
+ }
+ }
+ },
+
+ initialize: function() {
+ module.debug('Initializing dimmer', settings);
+ if(settings.on == 'hover') {
+ $dimmable
+ .on('mouseenter' + eventNamespace, module.show)
+ .on('mouseleave' + eventNamespace, module.hide)
+ ;
+ }
+ else if(settings.on == 'click') {
+ $dimmable
+ .on(clickEvent + eventNamespace, module.toggle)
+ ;
+ }
+
+ if( module.is.page() ) {
+ module.debug('Setting as a page dimmer', $dimmable);
+ module.set.pageDimmer();
+ }
+
+ if(settings.closable) {
+ module.verbose('Adding dimmer close event', $dimmer);
+ $dimmer
+ .on(clickEvent + eventNamespace, module.event.click)
+ ;
+ }
+ module.set.dimmable();
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module', $dimmer);
+ $module
+ .removeData(moduleNamespace)
+ ;
+ $dimmable
+ .off(eventNamespace)
+ ;
+ $dimmer
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+
+ click: function(event) {
+ module.verbose('Determining if event occured on dimmer', event);
+ if( $dimmer.find(event.target).size() === 0 || $(event.target).is(selector.content) ) {
+ module.hide();
+ event.stopImmediatePropagation();
+ }
+ }
+
+ },
+
+ addContent: function(element) {
+ var
+ $content = $(element)
+ ;
+ module.debug('Add content to dimmer', $content);
+ if($content.parent()[0] !== $dimmer[0]) {
+ $content.detach().appendTo($dimmer);
+ }
+ },
+
+ create: function() {
+ return $( settings.template.dimmer() ).appendTo($dimmable);
+ },
+
+ animate: {
+ show: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.set.dimmed();
+ if(settings.on != 'hover' && settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {
+ $dimmer
+ .transition({
+ animation : settings.transition + ' in',
+ queue : true,
+ duration : module.get.duration(),
+ complete : function() {
+ module.set.active();
+ callback();
+ }
+ })
+ ;
+ }
+ else {
+ module.verbose('Showing dimmer animation with javascript');
+ $dimmer
+ .stop()
+ .css({
+ opacity : 0,
+ width : '100%',
+ height : '100%'
+ })
+ .fadeTo(module.get.duration(), 1, function() {
+ $dimmer.removeAttr('style');
+ module.set.active();
+ callback();
+ })
+ ;
+ }
+ },
+ hide: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if(settings.on != 'hover' && settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {
+ module.verbose('Hiding dimmer with css');
+ $dimmer
+ .transition({
+ animation : settings.transition + ' out',
+ duration : module.get.duration(),
+ queue : true,
+ complete : function() {
+ module.remove.dimmed();
+ module.remove.active();
+ callback();
+ }
+ })
+ ;
+ }
+ else {
+ module.verbose('Hiding dimmer with javascript');
+ $dimmer
+ .stop()
+ .fadeOut(module.get.duration(), function() {
+ $dimmer.removeAttr('style');
+ module.remove.dimmed();
+ module.remove.active();
+ callback();
+ })
+ ;
+ }
+ }
+ },
+
+ get: {
+ dimmer: function() {
+ return $dimmer;
+ },
+ duration: function() {
+ if(typeof settings.duration == 'object') {
+ if( module.is.active() ) {
+ return settings.duration.hide;
+ }
+ else {
+ return settings.duration.show;
+ }
+ }
+ return settings.duration;
+ }
+ },
+
+ has: {
+ dimmer: function() {
+ return ( $module.children(selector.dimmer).size() > 0 );
+ }
+ },
+
+ is: {
+ active: function() {
+ return $dimmer.hasClass(className.active);
+ },
+ animating: function() {
+ return ( $dimmer.is(':animated') || $dimmer.hasClass(className.transition) );
+ },
+ dimmer: function() {
+ return $module.is(selector.dimmer);
+ },
+ dimmable: function() {
+ return $module.is(selector.dimmable);
+ },
+ dimmed: function() {
+ return $dimmable.hasClass(className.dimmed);
+ },
+ disabled: function() {
+ return $dimmable.hasClass(className.disabled);
+ },
+ enabled: function() {
+ return !module.is.disabled();
+ },
+ page: function () {
+ return $dimmable.is('body');
+ },
+ pageDimmer: function() {
+ return $dimmer.hasClass(className.pageDimmer);
+ }
+ },
+
+ can: {
+ show: function() {
+ return !$dimmer.hasClass(className.disabled);
+ }
+ },
+
+ set: {
+ active: function() {
+ module.set.dimmed();
+ $dimmer
+ .removeClass(className.transition)
+ .addClass(className.active)
+ ;
+ },
+ dimmable: function() {
+ $dimmable.addClass(className.dimmable);
+ },
+ dimmed: function() {
+ $dimmable.addClass(className.dimmed);
+ },
+ pageDimmer: function() {
+ $dimmer.addClass(className.pageDimmer);
+ },
+ disabled: function() {
+ $dimmer.addClass(className.disabled);
+ }
+ },
+
+ remove: {
+ active: function() {
+ $dimmer
+ .removeClass(className.transition)
+ .removeClass(className.active)
+ ;
+ },
+ dimmed: function() {
+ $dimmable.removeClass(className.dimmed);
+ },
+ disabled: function() {
+ $dimmer.removeClass(className.disabled);
+ }
+ },
+
+ show: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.debug('Showing dimmer', $dimmer, settings);
+ if( !module.is.active() && module.is.enabled() ) {
+ module.animate.show(callback);
+ $.proxy(settings.onShow, element)();
+ $.proxy(settings.onChange, element)();
+ }
+ else {
+ module.debug('Dimmer is already shown or disabled');
+ }
+ },
+
+ hide: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( module.is.active() || module.is.animating() ) {
+ module.debug('Hiding dimmer', $dimmer);
+ module.animate.hide(callback);
+ $.proxy(settings.onHide, element)();
+ $.proxy(settings.onChange, element)();
+ }
+ else {
+ module.debug('Dimmer is not visible');
+ }
+ },
+
+ toggle: function() {
+ module.verbose('Toggling dimmer visibility', $dimmer);
+ if( !module.is.dimmed() ) {
+ module.show();
+ }
+ else {
+ module.hide();
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ module.preinitialize();
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.dimmer.settings = {
+
+ name : 'Dimmer',
+ namespace : 'dimmer',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ transition : 'fade',
+ useCSS : true,
+ on : false,
+ closable : true,
+
+ duration : {
+ show : 500,
+ hide : 500
+ },
+
+ onChange : function(){},
+ onShow : function(){},
+ onHide : function(){},
+
+ error : {
+ method : 'The method you called is not defined.'
+ },
+
+ selector: {
+ dimmable : '.ui.dimmable',
+ dimmer : '.ui.dimmer',
+ content : '.ui.dimmer > .content, .ui.dimmer > .content > .center'
+ },
+
+ template: {
+ dimmer: function() {
+ return $('
').attr('class', 'ui dimmer');
+ }
+ },
+
+ className : {
+ active : 'active',
+ dimmable : 'ui dimmable',
+ dimmed : 'dimmed',
+ disabled : 'disabled',
+ pageDimmer : 'page',
+ hide : 'hide',
+ show : 'show',
+ transition : 'transition'
+ }
+
+};
+
+})( jQuery, window , document );
+/*
+ * # Semantic - Dropdown
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+;(function ( $, window, document, undefined ) {
+
+$.fn.dropdown = function(parameters) {
+ var
+ $allModules = $(this),
+ $document = $(document),
+
+ moduleSelector = $allModules.selector || '',
+
+ hasTouch = ('ontouchstart' in document.documentElement),
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.dropdown.settings, parameters)
+ : $.extend({}, $.fn.dropdown.settings),
+
+ className = settings.className,
+ metadata = settings.metadata,
+ namespace = settings.namespace,
+ selector = settings.selector,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $item = $module.find(selector.item),
+ $text = $module.find(selector.text),
+ $input = $module.find(selector.input),
+
+ $menu = $module.children(selector.menu),
+
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing dropdown', settings);
+
+ module.save.defaults();
+ module.set.selected();
+
+ if(hasTouch) {
+ module.bind.touchEvents();
+ }
+ module.bind.mouseEvents();
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of dropdown', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous dropdown for', $module);
+ $item
+ .off(eventNamespace)
+ ;
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ bind: {
+ touchEvents: function() {
+ module.debug('Touch device detected binding touch events');
+ $module
+ .on('touchstart' + eventNamespace, module.event.test.toggle)
+ ;
+ $item
+ .on('touchstart' + eventNamespace, module.event.item.mouseenter)
+ .on('touchstart' + eventNamespace, module.event.item.click)
+ ;
+ },
+ mouseEvents: function() {
+ module.verbose('Mouse detected binding mouse events');
+ if(settings.on == 'click') {
+ $module
+ .on('click' + eventNamespace, module.event.test.toggle)
+ ;
+ }
+ else if(settings.on == 'hover') {
+ $module
+ .on('mouseenter' + eventNamespace, module.delay.show)
+ .on('mouseleave' + eventNamespace, module.delay.hide)
+ ;
+ }
+ else {
+ $module
+ .on(settings.on + eventNamespace, module.toggle)
+ ;
+ }
+ $item
+ .on('mouseenter' + eventNamespace, module.event.item.mouseenter)
+ .on('mouseleave' + eventNamespace, module.event.item.mouseleave)
+ .on('click' + eventNamespace, module.event.item.click)
+ ;
+ },
+ intent: function() {
+ module.verbose('Binding hide intent event to document');
+ if(hasTouch) {
+ $document
+ .on('touchstart' + eventNamespace, module.event.test.touch)
+ .on('touchmove' + eventNamespace, module.event.test.touch)
+ ;
+ }
+ $document
+ .on('click' + eventNamespace, module.event.test.hide)
+ ;
+ }
+ },
+
+ unbind: {
+ intent: function() {
+ module.verbose('Removing hide intent event from document');
+ if(hasTouch) {
+ $document
+ .off('touchstart' + eventNamespace)
+ .off('touchmove' + eventNamespace)
+ ;
+ }
+ $document
+ .off('click' + eventNamespace)
+ ;
+ }
+ },
+
+ event: {
+ test: {
+ toggle: function(event) {
+ if( module.determine.intent(event, module.toggle) ) {
+ event.preventDefault();
+ }
+ },
+ touch: function(event) {
+ module.determine.intent(event, function() {
+ if(event.type == 'touchstart') {
+ module.timer = setTimeout(module.hide, settings.delay.touch);
+ }
+ else if(event.type == 'touchmove') {
+ clearTimeout(module.timer);
+ }
+ });
+ event.stopPropagation();
+ },
+ hide: function(event) {
+ module.determine.intent(event, module.hide);
+ }
+ },
+
+ item: {
+
+ mouseenter: function(event) {
+ var
+ $currentMenu = $(this).find(selector.submenu),
+ $otherMenus = $(this).siblings(selector.item).children(selector.menu)
+ ;
+ if($currentMenu.length > 0 || $otherMenus.length > 0) {
+ clearTimeout(module.itemTimer);
+ module.itemTimer = setTimeout(function() {
+ if($otherMenus.length > 0) {
+ module.animate.hide(false, $otherMenus.filter(':visible'));
+ }
+ if($currentMenu.length > 0) {
+ module.verbose('Showing sub-menu', $currentMenu);
+ module.animate.show(false, $currentMenu);
+ }
+ }, settings.delay.show * 2);
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ },
+
+ mouseleave: function(event) {
+ var
+ $currentMenu = $(this).find(selector.menu)
+ ;
+ if($currentMenu.size() > 0) {
+ clearTimeout(module.itemTimer);
+ module.itemTimer = setTimeout(function() {
+ module.verbose('Hiding sub-menu', $currentMenu);
+ module.animate.hide(false, $currentMenu);
+ }, settings.delay.hide);
+ }
+ },
+
+ click: function (event) {
+ var
+ $choice = $(this),
+ text = ( $choice.data(metadata.text) !== undefined )
+ ? $choice.data(metadata.text)
+ : $choice.text(),
+ value = ( $choice.data(metadata.value) !== undefined)
+ ? $choice.data(metadata.value)
+ : (typeof text === 'string')
+ ? text.toLowerCase()
+ : text,
+ callback = function() {
+ module.determine.selectAction(text, value);
+ $.proxy(settings.onChange, element)(value, text);
+ }
+ ;
+ if( $choice.find(selector.menu).size() === 0 ) {
+ if(event.type == 'touchstart') {
+ $choice.one('click', callback);
+ }
+ else {
+ callback();
+ }
+ }
+ }
+
+ },
+
+ resetStyle: function() {
+ $(this).removeAttr('style');
+ }
+
+ },
+
+ determine: {
+ selectAction: function(text, value) {
+ module.verbose('Determining action', settings.action);
+ if( $.isFunction( module.action[settings.action] ) ) {
+ module.verbose('Triggering preset action', settings.action, text, value);
+ module.action[ settings.action ](text, value);
+ }
+ else if( $.isFunction(settings.action) ) {
+ module.verbose('Triggering user action', settings.action, text, value);
+ settings.action(text, value);
+ }
+ else {
+ module.error(error.action, settings.action);
+ }
+ },
+ intent: function(event, callback) {
+ module.debug('Determining whether event occurred in dropdown', event.target);
+ callback = callback || function(){};
+ if( $(event.target).closest($menu).size() === 0 ) {
+ module.verbose('Triggering event', callback);
+ callback();
+ return true;
+ }
+ else {
+ module.verbose('Event occurred in dropdown, canceling callback');
+ return false;
+ }
+ }
+ },
+
+ action: {
+
+ nothing: function() {},
+
+ hide: function() {
+ module.hide();
+ },
+
+ activate: function(text, value) {
+ value = (value !== undefined)
+ ? value
+ : text
+ ;
+ module.set.selected(value);
+ module.set.value(value);
+ module.hide();
+ },
+
+ /* Deprecated */
+ auto: function(text, value) {
+ value = (value !== undefined)
+ ? value
+ : text
+ ;
+ module.set.selected(value);
+ module.set.value(value);
+ module.hide();
+ },
+
+ /* Deprecated */
+ changeText: function(text, value) {
+ value = (value !== undefined)
+ ? value
+ : text
+ ;
+ module.set.selected(value);
+ module.hide();
+ },
+
+ /* Deprecated */
+ updateForm: function(text, value) {
+ value = (value !== undefined)
+ ? value
+ : text
+ ;
+ module.set.selected(value);
+ module.set.value(value);
+ module.hide();
+ }
+
+ },
+
+ get: {
+ text: function() {
+ return $text.text();
+ },
+ value: function() {
+ return ($input.size() > 0)
+ ? $input.val()
+ : $module.data(metadata.value)
+ ;
+ },
+ item: function(value, strict) {
+ var
+ $selectedItem = false
+ ;
+ value = (value !== undefined)
+ ? value
+ : ( module.get.value() !== undefined)
+ ? module.get.value()
+ : module.get.text()
+ ;
+ if(strict === undefined && value === '') {
+ module.debug('Ambiguous dropdown value using strict type check', value);
+ strict = true;
+ }
+ else {
+ strict = strict || false;
+ }
+ if(value !== undefined) {
+ $item
+ .each(function() {
+ var
+ $choice = $(this),
+ optionText = ( $choice.data(metadata.text) !== undefined )
+ ? $choice.data(metadata.text)
+ : $choice.text(),
+ optionValue = ( $choice.data(metadata.value) !== undefined )
+ ? $choice.data(metadata.value)
+ : (typeof optionText === 'string')
+ ? optionText.toLowerCase()
+ : optionText
+ ;
+ if(strict) {
+ if( optionValue === value ) {
+ $selectedItem = $(this);
+ }
+ else if( !$selectedItem && optionText === value ) {
+ $selectedItem = $(this);
+ }
+ }
+ else {
+ if( optionValue == value ) {
+ $selectedItem = $(this);
+ }
+ else if( !$selectedItem && optionText == value ) {
+ $selectedItem = $(this);
+ }
+ }
+ })
+ ;
+ }
+ else {
+ value = module.get.text();
+ }
+ return $selectedItem || false;
+ }
+ },
+
+ restore: {
+ defaults: function() {
+ module.restore.defaultText();
+ module.restore.defaultValue();
+ },
+ defaultText: function() {
+ var
+ defaultText = $module.data(metadata.defaultText)
+ ;
+ module.debug('Restoring default text', defaultText);
+ module.set.text(defaultText);
+ },
+ defaultValue: function() {
+ var
+ defaultValue = $module.data(metadata.defaultValue)
+ ;
+ if(defaultValue !== undefined) {
+ module.debug('Restoring default value', defaultValue);
+ module.set.selected(defaultValue);
+ module.set.value(defaultValue);
+ }
+ }
+ },
+
+ save: {
+ defaults: function() {
+ module.save.defaultText();
+ module.save.defaultValue();
+ },
+ defaultValue: function() {
+ $module.data(metadata.defaultValue, module.get.value() );
+ },
+ defaultText: function() {
+ $module.data(metadata.defaultText, $text.text() );
+ }
+ },
+
+ set: {
+ text: function(text) {
+ module.debug('Changing text', text, $text);
+ $text.removeClass(className.placeholder);
+ $text.text(text);
+ },
+ value: function(value) {
+ module.debug('Adding selected value to hidden input', value, $input);
+ if($input.size() > 0) {
+ $input
+ .val(value)
+ .trigger('change')
+ ;
+ }
+ else {
+ $module.data(metadata.value, value);
+ }
+ },
+ active: function() {
+ $module.addClass(className.active);
+ },
+ visible: function() {
+ $module.addClass(className.visible);
+ },
+ selected: function(value) {
+ var
+ $selectedItem = module.get.item(value),
+ selectedText
+ ;
+ if($selectedItem) {
+ module.debug('Setting selected menu item to', $selectedItem);
+ selectedText = ($selectedItem.data(metadata.text) !== undefined)
+ ? $selectedItem.data(metadata.text)
+ : $selectedItem.text()
+ ;
+ $item
+ .removeClass(className.active)
+ ;
+ $selectedItem
+ .addClass(className.active)
+ ;
+ module.set.text(selectedText);
+ }
+ }
+ },
+
+ remove: {
+ active: function() {
+ $module.removeClass(className.active);
+ },
+ visible: function() {
+ $module.removeClass(className.visible);
+ }
+ },
+
+ is: {
+ selection: function() {
+ return $module.hasClass(className.selection);
+ },
+ animated: function($subMenu) {
+ return ($subMenu)
+ ? $subMenu.is(':animated') || $subMenu.transition('is animating')
+ : $menu.is(':animated') || $menu.transition('is animating')
+ ;
+ },
+ visible: function($subMenu) {
+ return ($subMenu)
+ ? $subMenu.is(':visible')
+ : $menu.is(':visible')
+ ;
+ },
+ hidden: function($subMenu) {
+ return ($subMenu)
+ ? $subMenu.is(':not(:visible)')
+ : $menu.is(':not(:visible)')
+ ;
+ }
+ },
+
+ can: {
+ click: function() {
+ return (hasTouch || settings.on == 'click');
+ },
+ show: function() {
+ return !$module.hasClass(className.disabled);
+ }
+ },
+
+ animate: {
+ show: function(callback, $subMenu) {
+ var
+ $currentMenu = $subMenu || $menu
+ ;
+ callback = callback || function(){};
+ if( module.is.hidden($currentMenu) ) {
+ module.verbose('Doing menu show animation', $currentMenu);
+ if(settings.transition == 'none') {
+ callback();
+ }
+ else if($.fn.transition !== undefined && $module.transition('is supported')) {
+ $currentMenu
+ .transition({
+ animation : settings.transition + ' in',
+ duration : settings.duration,
+ complete : callback,
+ queue : false
+ })
+ ;
+ }
+ else if(settings.transition == 'slide down') {
+ $currentMenu
+ .hide()
+ .clearQueue()
+ .children()
+ .clearQueue()
+ .css('opacity', 0)
+ .delay(50)
+ .animate({
+ opacity : 1
+ }, settings.duration, 'easeOutQuad', module.event.resetStyle)
+ .end()
+ .slideDown(100, 'easeOutQuad', function() {
+ $.proxy(module.event.resetStyle, this)();
+ callback();
+ })
+ ;
+ }
+ else if(settings.transition == 'fade') {
+ $currentMenu
+ .hide()
+ .clearQueue()
+ .fadeIn(settings.duration, function() {
+ $.proxy(module.event.resetStyle, this)();
+ callback();
+ })
+ ;
+ }
+ else {
+ module.error(error.transition, settings.transition);
+ }
+ }
+ },
+ hide: function(callback, $subMenu) {
+ var
+ $currentMenu = $subMenu || $menu
+ ;
+ callback = callback || function(){};
+ if(module.is.visible($currentMenu) ) {
+ module.verbose('Doing menu hide animation', $currentMenu);
+ if($.fn.transition !== undefined && $module.transition('is supported')) {
+ $currentMenu
+ .transition({
+ animation : settings.transition + ' out',
+ duration : settings.duration,
+ complete : callback,
+ queue : false
+ })
+ ;
+ }
+ else if(settings.transition == 'none') {
+ callback();
+ }
+ else if(settings.transition == 'slide down') {
+ $currentMenu
+ .show()
+ .clearQueue()
+ .children()
+ .clearQueue()
+ .css('opacity', 1)
+ .animate({
+ opacity : 0
+ }, 100, 'easeOutQuad', module.event.resetStyle)
+ .end()
+ .delay(50)
+ .slideUp(100, 'easeOutQuad', function() {
+ $.proxy(module.event.resetStyle, this)();
+ callback();
+ })
+ ;
+ }
+ else if(settings.transition == 'fade') {
+ $currentMenu
+ .show()
+ .clearQueue()
+ .fadeOut(150, function() {
+ $.proxy(module.event.resetStyle, this)();
+ callback();
+ })
+ ;
+ }
+ else {
+ module.error(error.transition);
+ }
+ }
+ }
+ },
+
+ show: function() {
+ module.debug('Checking if dropdown can show');
+ if( module.is.hidden() ) {
+ module.hideOthers();
+ module.set.active();
+ module.animate.show(function() {
+ if( module.can.click() ) {
+ module.bind.intent();
+ }
+ module.set.visible();
+ });
+ $.proxy(settings.onShow, element)();
+ }
+ },
+
+ hide: function() {
+ if( !module.is.animated() && module.is.visible() ) {
+ module.debug('Hiding dropdown');
+ if( module.can.click() ) {
+ module.unbind.intent();
+ }
+ module.remove.active();
+ module.animate.hide(module.remove.visible);
+ $.proxy(settings.onHide, element)();
+ }
+ },
+
+ delay: {
+ show: function() {
+ module.verbose('Delaying show event to ensure user intent');
+ clearTimeout(module.timer);
+ module.timer = setTimeout(module.show, settings.delay.show);
+ },
+ hide: function() {
+ module.verbose('Delaying hide event to ensure user intent');
+ clearTimeout(module.timer);
+ module.timer = setTimeout(module.hide, settings.delay.hide);
+ }
+ },
+
+ hideOthers: function() {
+ module.verbose('Finding other dropdowns to hide');
+ $allModules
+ .not($module)
+ .has(selector.menu + ':visible')
+ .dropdown('hide')
+ ;
+ },
+
+ toggle: function() {
+ module.verbose('Toggling menu visibility');
+ if( module.is.hidden() ) {
+ module.show();
+ }
+ else {
+ module.hide();
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ module.error(error.method, query);
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.dropdown.settings = {
+
+ name : 'Dropdown',
+ namespace : 'dropdown',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ on : 'click',
+ action : 'activate',
+
+ delay: {
+ show : 200,
+ hide : 300,
+ touch : 50
+ },
+
+ transition : 'slide down',
+ duration : 250,
+
+ onChange : function(value, text){},
+ onShow : function(){},
+ onHide : function(){},
+
+ error : {
+ action : 'You called a dropdown action that was not defined',
+ method : 'The method you called is not defined.',
+ transition : 'The requested transition was not found'
+ },
+
+ metadata: {
+ defaultText : 'defaultText',
+ defaultValue : 'defaultValue',
+ text : 'text',
+ value : 'value'
+ },
+
+ selector : {
+ menu : '.menu',
+ submenu : '> .menu',
+ item : '.menu > .item',
+ text : '> .text',
+ input : '> input[type="hidden"]'
+ },
+
+ className : {
+ active : 'active',
+ placeholder : 'default',
+ disabled : 'disabled',
+ visible : 'visible',
+ selection : 'selection'
+ }
+
+};
+
+// Adds easing
+$.extend( $.easing, {
+ easeOutQuad: function (x, t, b, c, d) {
+ return -c *(t/=d)*(t-2) + b;
+ },
+});
+
+
+})( jQuery, window , document );
+/*
+ * # Semantic - Modal
+ * http://github.com/semantic-org/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.modal = function(parameters) {
+ var
+ $allModules = $(this),
+ $window = $(window),
+ $document = $(document),
+ $body = $('body'),
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ requestAnimationFrame = window.requestAnimationFrame
+ || window.mozRequestAnimationFrame
+ || window.webkitRequestAnimationFrame
+ || window.msRequestAnimationFrame
+ || function(callback) { setTimeout(callback, 0); },
+
+ returnedValue
+ ;
+
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.modal.settings, parameters)
+ : $.extend({}, $.fn.modal.settings),
+
+ selector = settings.selector,
+ className = settings.className,
+ namespace = settings.namespace,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+ moduleSelector = $allModules.selector || '',
+
+ $module = $(this),
+ $context = $(settings.context),
+ $close = $module.find(selector.close),
+
+ $allModals,
+ $otherModals,
+ $focusedElement,
+ $dimmable,
+ $dimmer,
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing dimmer', $context);
+
+ if($.fn.dimmer === undefined) {
+ module.error(error.dimmer);
+ return;
+ }
+ $dimmable = $context
+ .dimmer({
+ closable : false,
+ useCSS : true,
+ duration : {
+ show : settings.duration * 0.9,
+ hide : settings.duration * 1.1
+ }
+ })
+ ;
+
+ if(settings.detachable) {
+ $dimmable.dimmer('add content', $module);
+ }
+
+ $dimmer = $dimmable
+ .dimmer('get dimmer')
+ ;
+
+ $otherModals = $module.siblings(selector.modal);
+ $allModals = $otherModals.add($module);
+
+ module.verbose('Attaching close events', $close);
+ $close
+ .on('click' + eventNamespace, module.event.close)
+ ;
+ $window
+ .on('resize' + eventNamespace, module.event.resize)
+ ;
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of modal');
+ instance = module;
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous modal');
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ $close
+ .off(eventNamespace)
+ ;
+ $context
+ .dimmer('destroy')
+ ;
+ },
+
+ refresh: function() {
+ module.remove.scrolling();
+ module.cacheSizes();
+ module.set.screenHeight();
+ module.set.type();
+ module.set.position();
+ },
+
+ attachEvents: function(selector, event) {
+ var
+ $toggle = $(selector)
+ ;
+ event = $.isFunction(module[event])
+ ? module[event]
+ : module.toggle
+ ;
+ if($toggle.size() > 0) {
+ module.debug('Attaching modal events to element', selector, event);
+ $toggle
+ .off(eventNamespace)
+ .on('click' + eventNamespace, event)
+ ;
+ }
+ else {
+ module.error(error.notFound);
+ }
+ },
+
+ event: {
+ close: function() {
+ module.verbose('Closing element pressed');
+ if( $(this).is(selector.approve) ) {
+ if($.proxy(settings.onApprove, element)() !== false) {
+ module.hide();
+ }
+ else {
+ module.verbose('Approve callback returned false cancelling hide');
+ }
+ }
+ else if( $(this).is(selector.deny) ) {
+ if($.proxy(settings.onDeny, element)() !== false) {
+ module.hide();
+ }
+ else {
+ module.verbose('Deny callback returned false cancelling hide');
+ }
+ }
+ else {
+ module.hide();
+ }
+ },
+ click: function(event) {
+ if( $(event.target).closest(selector.modal).size() === 0 ) {
+ module.debug('Dimmer clicked, hiding all modals');
+ if(settings.allowMultiple) {
+ module.hide();
+ }
+ else {
+ module.hideAll();
+ }
+ event.stopImmediatePropagation();
+ }
+ },
+ debounce: function(method, delay) {
+ clearTimeout(module.timer);
+ module.timer = setTimeout(method, delay);
+ },
+ keyboard: function(event) {
+ var
+ keyCode = event.which,
+ escapeKey = 27
+ ;
+ if(keyCode == escapeKey) {
+ if(settings.closable) {
+ module.debug('Escape key pressed hiding modal');
+ module.hide();
+ }
+ else {
+ module.debug('Escape key pressed, but closable is set to false');
+ }
+ event.preventDefault();
+ }
+ },
+ resize: function() {
+ if( $dimmable.dimmer('is active') ) {
+ requestAnimationFrame(module.refresh);
+ }
+ }
+ },
+
+ toggle: function() {
+ if( module.is.active() ) {
+ module.hide();
+ }
+ else {
+ module.show();
+ }
+ },
+
+ show: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.showDimmer();
+ module.showModal(callback);
+ },
+
+ showModal: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( !module.is.active() ) {
+ module.cacheSizes();
+ module.set.position();
+ module.set.screenHeight();
+ module.set.type();
+
+ if( $otherModals.filter(':visible').size() > 0 && !settings.allowMultiple) {
+ module.debug('Other modals visible, queueing show animation');
+ module.hideOthers(module.showModal);
+ }
+ else {
+ $.proxy(settings.onShow, element)();
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ module.debug('Showing modal with css animations');
+ $module
+ .transition(settings.transition + ' in', settings.duration, function() {
+ $.proxy(settings.onVisible, element)();
+ module.set.active();
+ callback();
+ })
+ ;
+ }
+ else {
+ module.debug('Showing modal with javascript');
+ $module
+ .fadeIn(settings.duration, settings.easing, function() {
+ $.proxy(settings.onVisible, element)();
+ module.set.active();
+ callback();
+ })
+ ;
+ }
+ }
+ }
+ else {
+ module.debug('Modal is already visible');
+ }
+ },
+
+ showDimmer: function() {
+ if( !$dimmable.dimmer('is active') ) {
+ module.debug('Showing dimmer');
+ $dimmable.dimmer('show');
+ }
+ else {
+ module.debug('Dimmer already visible');
+ }
+ },
+
+ hide: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if($allModals.filter(':visible').size() <= 1) {
+ module.hideDimmer();
+ }
+ module.hideModal(callback);
+ },
+
+ hideDimmer: function() {
+ if( !module.is.active() ) {
+ module.debug('Dimmer is not visible cannot hide');
+ return;
+ }
+ module.debug('Hiding dimmer');
+ if(settings.closable) {
+ $dimmer
+ .off('click' + eventNamespace)
+ ;
+ }
+ $dimmable.dimmer('hide', function() {
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $module
+ .transition('reset')
+ ;
+ module.remove.screenHeight();
+ }
+ module.remove.active();
+ });
+ },
+
+ hideModal: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( !module.is.active() ) {
+ module.debug('Cannot hide modal it is not active');
+ return;
+ }
+ module.debug('Hiding modal');
+ module.remove.keyboardShortcuts();
+ $.proxy(settings.onHide, element)();
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $module
+ .transition(settings.transition + ' out', settings.duration, function() {
+ $.proxy(settings.onHidden, element)();
+ module.remove.active();
+ module.restore.focus();
+ callback();
+ })
+ ;
+ }
+ else {
+ $module
+ .fadeOut(settings.duration, settings.easing, function() {
+ $.proxy(settings.onHidden, element)();
+ module.remove.active();
+ module.restore.focus();
+ callback();
+ })
+ ;
+ }
+ },
+
+ hideAll: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( $allModals.is(':visible') ) {
+ module.debug('Hiding all visible modals');
+ module.hideDimmer();
+ $allModals
+ .filter(':visible')
+ .modal('hide modal', callback)
+ ;
+ }
+ },
+
+ hideOthers: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( $otherModals.is(':visible') ) {
+ module.debug('Hiding other modals');
+ $otherModals
+ .filter(':visible')
+ .modal('hide modal', callback)
+ ;
+ }
+ },
+
+ add: {
+ keyboardShortcuts: function() {
+ module.verbose('Adding keyboard shortcuts');
+ $document
+ .on('keyup' + eventNamespace, module.event.keyboard)
+ ;
+ }
+ },
+
+ save: {
+ focus: function() {
+ $focusedElement = $(document.activeElement).blur();
+ }
+ },
+
+ restore: {
+ focus: function() {
+ if($focusedElement && $focusedElement.size() > 0) {
+ $focusedElement.focus();
+ }
+ }
+ },
+
+ remove: {
+ active: function() {
+ $module.removeClass(className.active);
+ },
+ screenHeight: function() {
+ if(module.cache.height > module.cache.pageHeight) {
+ module.debug('Removing page height');
+ $body
+ .css('height', '')
+ ;
+ }
+ },
+ keyboardShortcuts: function() {
+ module.verbose('Removing keyboard shortcuts');
+ $document
+ .off('keyup' + eventNamespace)
+ ;
+ },
+ scrolling: function() {
+ $dimmable.removeClass(className.scrolling);
+ $module.removeClass(className.scrolling);
+ }
+ },
+
+ cacheSizes: function() {
+ module.cache = {
+ pageHeight : $body.outerHeight(),
+ height : $module.outerHeight() + settings.offset,
+ contextHeight : (settings.context == 'body')
+ ? $(window).height()
+ : $dimmable.height()
+ };
+ module.debug('Caching modal and container sizes', module.cache);
+ },
+
+ can: {
+ fit: function() {
+ return (module.cache.height < module.cache.contextHeight);
+ }
+ },
+
+ is: {
+ active: function() {
+ return $module.hasClass(className.active);
+ },
+ modernBrowser: function() {
+ // appName for IE11 reports 'Netscape' can no longer use
+ return !(window.ActiveXObject || "ActiveXObject" in window);
+ }
+ },
+
+ set: {
+ screenHeight: function() {
+ if(module.cache.height > module.cache.pageHeight) {
+ module.debug('Modal is taller than page content, resizing page height');
+ $body
+ .css('height', module.cache.height + settings.padding)
+ ;
+ }
+ },
+ active: function() {
+ module.add.keyboardShortcuts();
+ module.save.focus();
+ $module
+ .addClass(className.active)
+ ;
+ if(settings.closable) {
+ $dimmer
+ .off('click' + eventNamespace)
+ .on('click' + eventNamespace, module.event.click)
+ ;
+ }
+ },
+ scrolling: function() {
+ $dimmable.addClass(className.scrolling);
+ $module.addClass(className.scrolling);
+ },
+ type: function() {
+ if(module.can.fit()) {
+ module.verbose('Modal fits on screen');
+ module.remove.scrolling();
+ }
+ else {
+ module.verbose('Modal cannot fit on screen setting to scrolling');
+ module.set.scrolling();
+ }
+ },
+ position: function() {
+ module.verbose('Centering modal on page', module.cache);
+ if(module.can.fit()) {
+ $module
+ .css({
+ top: '',
+ marginTop: -(module.cache.height / 2)
+ })
+ ;
+ }
+ else {
+ $module
+ .css({
+ marginTop : '1em',
+ top : $document.scrollTop()
+ })
+ ;
+ }
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.modal.settings = {
+
+ name : 'Modal',
+ namespace : 'modal',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ allowMultiple : true,
+ detachable : true,
+ closable : true,
+ context : 'body',
+
+ duration : 500,
+ easing : 'easeOutExpo',
+ offset : 0,
+ transition : 'scale',
+
+ padding : 30,
+
+ onShow : function(){},
+ onHide : function(){},
+
+ onVisible : function(){},
+ onHidden : function(){},
+
+ onApprove : function(){ return true; },
+ onDeny : function(){ return true; },
+
+ selector : {
+ close : '.close, .actions .button',
+ approve : '.actions .positive, .actions .approve, .actions .ok',
+ deny : '.actions .negative, .actions .deny, .actions .cancel',
+ modal : '.ui.modal'
+ },
+ error : {
+ dimmer : 'UI Dimmer, a required component is not included in this page',
+ method : 'The method you called is not defined.'
+ },
+ className : {
+ active : 'active',
+ scrolling : 'scrolling'
+ }
+};
+
+
+})( jQuery, window , document );
+/*
+ * # Semantic - Nag
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.nag = function(parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $(this)
+ .each(function() {
+ var
+ settings = $.extend(true, {}, $.fn.nag.settings, parameters),
+
+ className = settings.className,
+ selector = settings.selector,
+ error = settings.error,
+ namespace = settings.namespace,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = namespace + '-module',
+
+ $module = $(this),
+
+ $close = $module.find(selector.close),
+ $context = $(settings.context),
+
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+
+ moduleOffset,
+ moduleHeight,
+
+ contextWidth,
+ contextHeight,
+ contextOffset,
+
+ yOffset,
+ yPosition,
+
+ timer,
+ module,
+
+ requestAnimationFrame = window.requestAnimationFrame
+ || window.mozRequestAnimationFrame
+ || window.webkitRequestAnimationFrame
+ || window.msRequestAnimationFrame
+ || function(callback) { setTimeout(callback, 0); }
+ ;
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing element');
+ // calculate module offset once
+ moduleOffset = $module.offset();
+ moduleHeight = $module.outerHeight();
+ contextWidth = $context.outerWidth();
+ contextHeight = $context.outerHeight();
+ contextOffset = $context.offset();
+
+ $module
+ .data(moduleNamespace, module)
+ ;
+ $close
+ .on('click' + eventNamespace, module.dismiss)
+ ;
+ // lets avoid javascript if we dont need to reposition
+ if(settings.context == window && settings.position == 'fixed') {
+ $module
+ .addClass(className.fixed)
+ ;
+ }
+ if(settings.sticky) {
+ module.verbose('Adding scroll events');
+ // retrigger on scroll for absolute
+ if(settings.position == 'absolute') {
+ $context
+ .on('scroll' + eventNamespace, module.event.scroll)
+ .on('resize' + eventNamespace, module.event.scroll)
+ ;
+ }
+ // fixed is always relative to window
+ else {
+ $(window)
+ .on('scroll' + eventNamespace, module.event.scroll)
+ .on('resize' + eventNamespace, module.event.scroll)
+ ;
+ }
+ // fire once to position on init
+ $.proxy(module.event.scroll, this)();
+ }
+
+ if(settings.displayTime > 0) {
+ setTimeout(module.hide, settings.displayTime);
+ }
+ if(module.should.show()) {
+ if( !$module.is(':visible') ) {
+ module.show();
+ }
+ }
+ else {
+ module.hide();
+ }
+ },
+
+ destroy: function() {
+ module.verbose('Destroying instance');
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ if(settings.sticky) {
+ $context
+ .off(eventNamespace)
+ ;
+ }
+ },
+
+ refresh: function() {
+ module.debug('Refreshing cached calculations');
+ moduleOffset = $module.offset();
+ moduleHeight = $module.outerHeight();
+ contextWidth = $context.outerWidth();
+ contextHeight = $context.outerHeight();
+ contextOffset = $context.offset();
+ },
+
+ show: function() {
+ module.debug('Showing nag', settings.animation.show);
+ if(settings.animation.show == 'fade') {
+ $module
+ .fadeIn(settings.duration, settings.easing)
+ ;
+ }
+ else {
+ $module
+ .slideDown(settings.duration, settings.easing)
+ ;
+ }
+ },
+
+ hide: function() {
+ module.debug('Showing nag', settings.animation.hide);
+ if(settings.animation.show == 'fade') {
+ $module
+ .fadeIn(settings.duration, settings.easing)
+ ;
+ }
+ else {
+ $module
+ .slideUp(settings.duration, settings.easing)
+ ;
+ }
+ },
+
+ onHide: function() {
+ module.debug('Removing nag', settings.animation.hide);
+ $module.remove();
+ if (settings.onHide) {
+ settings.onHide();
+ }
+ },
+
+ stick: function() {
+ module.refresh();
+
+ if(settings.position == 'fixed') {
+ var
+ windowScroll = $(window).prop('pageYOffset') || $(window).scrollTop(),
+ fixedOffset = ( $module.hasClass(className.bottom) )
+ ? contextOffset.top + (contextHeight - moduleHeight) - windowScroll
+ : contextOffset.top - windowScroll
+ ;
+ $module
+ .css({
+ position : 'fixed',
+ top : fixedOffset,
+ left : contextOffset.left,
+ width : contextWidth - settings.scrollBarWidth
+ })
+ ;
+ }
+ else {
+ $module
+ .css({
+ top : yPosition
+ })
+ ;
+ }
+ },
+ unStick: function() {
+ $module
+ .css({
+ top : ''
+ })
+ ;
+ },
+ dismiss: function(event) {
+ if(settings.storageMethod) {
+ module.storage.set(settings.storedKey, settings.storedValue);
+ }
+ module.hide();
+ event.stopImmediatePropagation();
+ event.preventDefault();
+ },
+
+ should: {
+ show: function() {
+ if(settings.persist) {
+ module.debug('Persistent nag is set, can show nag');
+ return true;
+ }
+ if(module.storage.get(settings.storedKey) != settings.storedValue) {
+ module.debug('Stored value is not set, can show nag', module.storage.get(settings.storedKey));
+ return true;
+ }
+ module.debug('Stored value is set, cannot show nag', module.storage.get(settings.storedKey));
+ return false;
+ },
+ stick: function() {
+ yOffset = $context.prop('pageYOffset') || $context.scrollTop();
+ yPosition = ( $module.hasClass(className.bottom) )
+ ? (contextHeight - $module.outerHeight() ) + yOffset
+ : yOffset
+ ;
+ // absolute position calculated when y offset met
+ if(yPosition > moduleOffset.top) {
+ return true;
+ }
+ else if(settings.position == 'fixed') {
+ return true;
+ }
+ return false;
+ }
+ },
+
+ storage: {
+
+ set: function(key, value) {
+ module.debug('Setting stored value', key, value, settings.storageMethod);
+ if(settings.storageMethod == 'local' && window.store !== undefined) {
+ window.store.set(key, value);
+ }
+ // store by cookie
+ else if($.cookie !== undefined) {
+ $.cookie(key, value);
+ }
+ else {
+ module.error(error.noStorage);
+ }
+ },
+ get: function(key) {
+ module.debug('Getting stored value', key, settings.storageMethod);
+ if(settings.storageMethod == 'local' && window.store !== undefined) {
+ return window.store.get(key);
+ }
+ // get by cookie
+ else if($.cookie !== undefined) {
+ return $.cookie(key);
+ }
+ else {
+ module.error(error.noStorage);
+ }
+ }
+
+ },
+
+ event: {
+ scroll: function() {
+ if(timer !== undefined) {
+ clearTimeout(timer);
+ }
+ timer = setTimeout(function() {
+ if(module.should.stick() ) {
+ requestAnimationFrame(module.stick);
+ }
+ else {
+ module.unStick();
+ }
+ }, settings.lag);
+ }
+ },
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ module.debug('Changing internal', name, value);
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else {
+ module[name] = value;
+ }
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ })
+ ;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.nag.settings = {
+
+ name : 'Nag',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ namespace : 'Nag',
+
+ // allows cookie to be overriden
+ persist : false,
+
+ // set to zero to manually dismiss, otherwise hides on its own
+ displayTime : 0,
+
+ animation : {
+ show: 'slide',
+ hide: 'slide'
+ },
+
+ // method of stickyness
+ position : 'fixed',
+ scrollBarWidth : 18,
+
+ // type of storage to use
+ storageMethod : 'cookie',
+
+ // value to store in dismissed localstorage/cookie
+ storedKey : 'nag',
+ storedValue : 'dismiss',
+
+ // need to calculate stickyness on scroll
+ sticky : false,
+
+ // how often to check scroll event
+ lag : 0,
+
+ // context for scroll event
+ context : window,
+
+ error: {
+ noStorage : 'Neither $.cookie or store is defined. A storage solution is required for storing state',
+ method : 'The method you called is not defined.'
+ },
+
+ className : {
+ bottom : 'bottom',
+ fixed : 'fixed'
+ },
+
+ selector : {
+ close: '.icon.close'
+ },
+
+ speed : 500,
+ easing : 'easeOutQuad',
+
+ onHide: function() {}
+
+};
+
+})( jQuery, window , document );
+
+/*
+ * # Semantic - Popup
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.popup = function(parameters) {
+ var
+ $allModules = $(this),
+ $document = $(document),
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.popup.settings, parameters)
+ : $.extend({}, $.fn.popup.settings),
+
+ selector = settings.selector,
+ className = settings.className,
+ error = settings.error,
+ metadata = settings.metadata,
+ namespace = settings.namespace,
+
+ eventNamespace = '.' + settings.namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $context = $(settings.context),
+ $target = (settings.target)
+ ? $(settings.target)
+ : $module,
+
+ $window = $(window),
+
+ $offsetParent = (settings.inline)
+ ? $target.offsetParent()
+ : $window,
+ $popup = (settings.inline)
+ ? $target.next(settings.selector.popup)
+ : $window.children(settings.selector.popup).last(),
+
+ searchDepth = 0,
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ // binds events
+ initialize: function() {
+ module.debug('Initializing module', $module);
+ if(settings.on == 'click') {
+ $module
+ .on('click', module.toggle)
+ ;
+ }
+ else {
+ $module
+ .on(module.get.startEvent() + eventNamespace, module.event.start)
+ .on(module.get.endEvent() + eventNamespace, module.event.end)
+ ;
+ }
+ if(settings.target) {
+ module.debug('Target set to element', $target);
+ }
+ $window
+ .on('resize' + eventNamespace, module.event.resize)
+ ;
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ refresh: function() {
+ if(settings.inline) {
+ $popup = $target.next(selector.popup);
+ $offsetParent = $target.offsetParent();
+ }
+ else {
+ $popup = $window.children(selector.popup).last();
+ }
+ },
+
+ destroy: function() {
+ module.debug('Destroying previous module');
+ $window
+ .off(eventNamespace)
+ ;
+ $popup
+ .remove()
+ ;
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ event: {
+ start: function(event) {
+ module.timer = setTimeout(function() {
+ if( module.is.hidden() ) {
+ module.show();
+ }
+ }, settings.delay);
+ },
+ end: function() {
+ clearTimeout(module.timer);
+ if( module.is.visible() ) {
+ module.hide();
+ }
+ },
+ resize: function() {
+ if( module.is.visible() ) {
+ module.set.position();
+ }
+ }
+ },
+
+ // generates popup html from metadata
+ create: function() {
+ module.debug('Creating pop-up html');
+ var
+ html = $module.data(metadata.html) || settings.html,
+ variation = $module.data(metadata.variation) || settings.variation,
+ title = $module.data(metadata.title) || settings.title,
+ content = $module.data(metadata.content) || $module.attr('title') || settings.content
+ ;
+ if(html || content || title) {
+ if(!html) {
+ html = settings.template({
+ title : title,
+ content : content
+ });
+ }
+ $popup = $('
')
+ .addClass(className.popup)
+ .addClass(variation)
+ .html(html)
+ ;
+ if(settings.inline) {
+ module.verbose('Inserting popup element inline', $popup);
+ $popup
+ .data(moduleNamespace, instance)
+ .insertAfter($module)
+ ;
+ }
+ else {
+ module.verbose('Appending popup element to body', $popup);
+ $popup
+ .data(moduleNamespace, instance)
+ .appendTo( $context )
+ ;
+ }
+ $.proxy(settings.onCreate, $popup)();
+ }
+ else {
+ module.error(error.content);
+ }
+ },
+
+ // determines popup state
+ toggle: function() {
+ module.debug('Toggling pop-up');
+ if( module.is.hidden() ) {
+ module.debug('Popup is hidden, showing pop-up');
+ module.unbind.close();
+ module.hideAll();
+ module.show();
+ }
+ else {
+ module.debug('Popup is visible, hiding pop-up');
+ module.hide();
+ }
+ },
+
+ show: function(callback) {
+ callback = callback || function(){};
+ module.debug('Showing pop-up', settings.transition);
+ if(!settings.preserve) {
+ module.refresh();
+ }
+ if( !module.exists() ) {
+ module.create();
+ }
+ module.save.conditions();
+ module.set.position();
+ module.animate.show(callback);
+ },
+
+
+ hide: function(callback) {
+ callback = callback || function(){};
+ $module
+ .removeClass(className.visible)
+ ;
+ module.restore.conditions();
+ module.unbind.close();
+ if( module.is.visible() ) {
+ module.animate.hide(callback);
+ }
+ },
+
+ hideAll: function() {
+ $(selector.popup)
+ .filter(':visible')
+ .popup('hide')
+ ;
+ },
+
+ hideGracefully: function(event) {
+ // don't close on clicks inside popup
+ if(event && $(event.target).closest(selector.popup).size() === 0) {
+ module.debug('Click occurred outside popup hiding popup');
+ module.hide();
+ }
+ else {
+ module.debug('Click was inside popup, keeping popup open');
+ }
+ },
+
+ exists: function() {
+ if(settings.inline) {
+ return ( $popup.size() !== 0 );
+ }
+ else {
+ return ( $popup.parent($context).size() );
+ }
+ },
+
+ remove: function() {
+ module.debug('Removing popup');
+ $popup
+ .remove()
+ ;
+ },
+
+ save: {
+ conditions: function() {
+ module.cache = {
+ title: $module.attr('title')
+ };
+ if (module.cache.title) {
+ $module.removeAttr('title');
+ }
+ module.verbose('Saving original attributes', module.cache.title);
+ }
+ },
+ restore: {
+ conditions: function() {
+ if(module.cache && module.cache.title) {
+ $module.attr('title', module.cache.title);
+ module.verbose('Restoring original attributes', module.cache.title);
+ }
+ return true;
+ }
+ },
+ animate: {
+ show: function(callback) {
+ callback = callback || function(){};
+ $module
+ .addClass(className.visible)
+ ;
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $popup
+ .transition(settings.transition + ' in', settings.duration, function() {
+ module.bind.close();
+ $.proxy(callback, element)();
+ })
+ ;
+ }
+ else {
+ $popup
+ .stop()
+ .fadeIn(settings.duration, settings.easing, function() {
+ module.bind.close();
+ $.proxy(callback, element)();
+ })
+ ;
+ }
+ $.proxy(settings.onShow, element)();
+ },
+ hide: function(callback) {
+ callback = callback || function(){};
+ module.debug('Hiding pop-up');
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $popup
+ .transition(settings.transition + ' out', settings.duration, function() {
+ module.reset();
+ callback();
+ })
+ ;
+ }
+ else {
+ $popup
+ .stop()
+ .fadeOut(settings.duration, settings.easing, function() {
+ module.reset();
+ callback();
+ })
+ ;
+ }
+ $.proxy(settings.onHide, element)();
+ }
+ },
+
+ get: {
+ startEvent: function() {
+ if(settings.on == 'hover') {
+ return 'mouseenter';
+ }
+ else if(settings.on == 'focus') {
+ return 'focus';
+ }
+ },
+ endEvent: function() {
+ if(settings.on == 'hover') {
+ return 'mouseleave';
+ }
+ else if(settings.on == 'focus') {
+ return 'blur';
+ }
+ },
+ offstagePosition: function() {
+ var
+ boundary = {
+ top : $(window).scrollTop(),
+ bottom : $(window).scrollTop() + $(window).height(),
+ left : 0,
+ right : $(window).width()
+ },
+ popup = {
+ width : $popup.width(),
+ height : $popup.outerHeight(),
+ position : $popup.offset()
+ },
+ offstage = {},
+ offstagePositions = []
+ ;
+ if(popup.position) {
+ offstage = {
+ top : (popup.position.top < boundary.top),
+ bottom : (popup.position.top + popup.height > boundary.bottom),
+ right : (popup.position.left + popup.width > boundary.right),
+ left : (popup.position.left < boundary.left)
+ };
+ }
+ module.verbose('Checking if outside viewable area', popup.position);
+ // return only boundaries that have been surpassed
+ $.each(offstage, function(direction, isOffstage) {
+ if(isOffstage) {
+ offstagePositions.push(direction);
+ }
+ });
+ return (offstagePositions.length > 0)
+ ? offstagePositions.join(' ')
+ : false
+ ;
+ },
+ nextPosition: function(position) {
+ switch(position) {
+ case 'top left':
+ position = 'bottom left';
+ break;
+ case 'bottom left':
+ position = 'top right';
+ break;
+ case 'top right':
+ position = 'bottom right';
+ break;
+ case 'bottom right':
+ position = 'top center';
+ break;
+ case 'top center':
+ position = 'bottom center';
+ break;
+ case 'bottom center':
+ position = 'right center';
+ break;
+ case 'right center':
+ position = 'left center';
+ break;
+ case 'left center':
+ position = 'top center';
+ break;
+ }
+ return position;
+ }
+ },
+
+ set: {
+ position: function(position, arrowOffset) {
+ var
+ windowWidth = $(window).width(),
+ windowHeight = $(window).height(),
+
+ width = $target.outerWidth(),
+ height = $target.outerHeight(),
+
+ popupWidth = $popup.width(),
+ popupHeight = $popup.outerHeight(),
+
+ parentWidth = $offsetParent.outerWidth(),
+ parentHeight = $offsetParent.outerHeight(),
+
+ distanceAway = settings.distanceAway,
+
+ offset = (settings.inline)
+ ? $target.position()
+ : $target.offset(),
+
+ positioning,
+ offstagePosition
+ ;
+ position = position || $module.data(metadata.position) || settings.position;
+ arrowOffset = arrowOffset || $module.data(metadata.offset) || settings.offset;
+ // adjust for margin when inline
+ if(settings.inline) {
+ if(position == 'left center' || position == 'right center') {
+ arrowOffset += parseInt( window.getComputedStyle(element).getPropertyValue('margin-top'), 10);
+ distanceAway += -parseInt( window.getComputedStyle(element).getPropertyValue('margin-left'), 10);
+ }
+ else {
+ arrowOffset += parseInt( window.getComputedStyle(element).getPropertyValue('margin-left'), 10);
+ distanceAway += parseInt( window.getComputedStyle(element).getPropertyValue('margin-top'), 10);
+ }
+ }
+ module.debug('Calculating offset for position', position);
+ switch(position) {
+ case 'top left':
+ positioning = {
+ bottom : parentHeight - offset.top + distanceAway,
+ right : parentWidth - offset.left - arrowOffset,
+ top : 'auto',
+ left : 'auto'
+ };
+ break;
+ case 'top center':
+ positioning = {
+ bottom : parentHeight - offset.top + distanceAway,
+ left : offset.left + (width / 2) - (popupWidth / 2) + arrowOffset,
+ top : 'auto',
+ right : 'auto'
+ };
+ break;
+ case 'top right':
+ positioning = {
+ top : 'auto',
+ bottom : parentHeight - offset.top + distanceAway,
+ left : offset.left + width + arrowOffset,
+ right : 'auto'
+ };
+ break;
+ case 'left center':
+ positioning = {
+ top : offset.top + (height / 2) - (popupHeight / 2) + arrowOffset,
+ right : parentWidth - offset.left + distanceAway,
+ left : 'auto',
+ bottom : 'auto'
+ };
+ break;
+ case 'right center':
+ positioning = {
+ top : offset.top + (height / 2) - (popupHeight / 2) + arrowOffset,
+ left : offset.left + width + distanceAway,
+ bottom : 'auto',
+ right : 'auto'
+ };
+ break;
+ case 'bottom left':
+ positioning = {
+ top : offset.top + height + distanceAway,
+ right : parentWidth - offset.left - arrowOffset,
+ left : 'auto',
+ bottom : 'auto'
+ };
+ break;
+ case 'bottom center':
+ positioning = {
+ top : offset.top + height + distanceAway,
+ left : offset.left + (width / 2) - (popupWidth / 2) + arrowOffset,
+ bottom : 'auto',
+ right : 'auto'
+ };
+ break;
+ case 'bottom right':
+ positioning = {
+ top : offset.top + height + distanceAway,
+ left : offset.left + width + arrowOffset,
+ bottom : 'auto',
+ right : 'auto'
+ };
+ break;
+ }
+ // tentatively place on stage
+ $popup
+ .css(positioning)
+ .removeClass(className.position)
+ .addClass(position)
+ .addClass(className.loading)
+ ;
+ // check if is offstage
+ offstagePosition = module.get.offstagePosition();
+
+ // recursively find new positioning
+ if(offstagePosition) {
+ module.debug('Element is outside boundaries', offstagePosition);
+ if(searchDepth < settings.maxSearchDepth) {
+ position = module.get.nextPosition(position);
+ searchDepth++;
+ module.debug('Trying new position', position);
+ return module.set.position(position);
+ }
+ else {
+ module.error(error.recursion);
+ searchDepth = 0;
+ module.reset();
+ $popup.removeClass(className.loading);
+ return false;
+ }
+ }
+ else {
+ module.debug('Position is on stage', position);
+ searchDepth = 0;
+ $popup.removeClass(className.loading);
+ return true;
+ }
+ }
+
+ },
+
+ bind: {
+ close:function() {
+ if(settings.on == 'click' && settings.closable) {
+ module.verbose('Binding popup close event to document');
+ $document
+ .on('click' + eventNamespace, function(event) {
+ module.verbose('Pop-up clickaway intent detected');
+ $.proxy(module.hideGracefully, this)(event);
+ })
+ ;
+ }
+ }
+ },
+
+ unbind: {
+ close: function() {
+ if(settings.on == 'click' && settings.closable) {
+ module.verbose('Removing close event from document');
+ $document
+ .off('click' + eventNamespace)
+ ;
+ }
+ }
+ },
+
+ is: {
+ animating: function() {
+ return ( $popup.is(':animated') || $popup.hasClass(className.animating) );
+ },
+ visible: function() {
+ return $popup.is(':visible');
+ },
+ hidden: function() {
+ return !module.is.visible();
+ }
+ },
+
+ reset: function() {
+ $popup
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ if(!settings.preserve) {
+ module.remove();
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.popup.settings = {
+
+ name : 'Popup',
+ debug : false,
+ verbose : true,
+ performance : true,
+ namespace : 'popup',
+
+ onCreate : function(){},
+ onShow : function(){},
+ onHide : function(){},
+
+ variation : '',
+ content : false,
+ html : false,
+ title : false,
+
+ on : 'hover',
+ target : false,
+ closable : true,
+
+ context : 'body',
+ position : 'top center',
+ delay : 150,
+ inline : false,
+ preserve : false,
+
+ duration : 250,
+ easing : 'easeOutQuint',
+ transition : 'scale',
+
+ distanceAway : 0,
+ offset : 0,
+ maxSearchDepth : 10,
+
+ error: {
+ content : 'Your popup has no content specified',
+ method : 'The method you called is not defined.',
+ recursion : 'Popup attempted to reposition element to fit, but could not find an adequate position.'
+ },
+
+ metadata: {
+ content : 'content',
+ html : 'html',
+ offset : 'offset',
+ position : 'position',
+ title : 'title',
+ variation : 'variation'
+ },
+
+ className : {
+ animating : 'animating',
+ loading : 'loading',
+ popup : 'ui popup',
+ position : 'top left center bottom right',
+ visible : 'visible'
+ },
+
+ selector : {
+ popup : '.ui.popup'
+ },
+
+ template: function(text) {
+ var html = '';
+ if(typeof text !== undefined) {
+ if(typeof text.title !== undefined && text.title) {
+ html += '';
+ }
+ if(typeof text.content !== undefined && text.content) {
+ html += '
' + text.content + '
';
+ }
+ }
+ return html;
+ }
+
+};
+
+})( jQuery, window , document );
+
+/*
+ * # Semantic - Rating
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.rating = function(parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.rating.settings, parameters)
+ : $.extend({}, $.fn.rating.settings),
+
+ namespace = settings.namespace,
+ className = settings.className,
+ metadata = settings.metadata,
+ selector = settings.selector,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ element = this,
+ instance = $(this).data(moduleNamespace),
+
+ $module = $(this),
+ $icon = $module.find(selector.icon),
+
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing rating module', settings);
+
+ if(settings.interactive) {
+ module.enable();
+ }
+ else {
+ module.disable();
+ }
+
+ if(settings.initialRating) {
+ module.debug('Setting initial rating');
+ module.setRating(settings.initialRating);
+ }
+ if( $module.data(metadata.rating) ) {
+ module.debug('Rating found in metadata');
+ module.setRating( $module.data(metadata.rating) );
+ }
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Instantiating module', settings);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous instance', instance);
+ $module
+ .removeData(moduleNamespace)
+ ;
+ $icon
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+ mouseenter: function() {
+ var
+ $activeIcon = $(this)
+ ;
+ $activeIcon
+ .nextAll()
+ .removeClass(className.hover)
+ ;
+ $module
+ .addClass(className.hover)
+ ;
+ $activeIcon
+ .addClass(className.hover)
+ .prevAll()
+ .addClass(className.hover)
+ ;
+ },
+ mouseleave: function() {
+ $module
+ .removeClass(className.hover)
+ ;
+ $icon
+ .removeClass(className.hover)
+ ;
+ },
+ click: function() {
+ var
+ $activeIcon = $(this),
+ currentRating = module.getRating(),
+ rating = $icon.index($activeIcon) + 1
+ ;
+ if(settings.clearable && currentRating == rating) {
+ module.clearRating();
+ }
+ else {
+ module.setRating( rating );
+ }
+ }
+ },
+
+ clearRating: function() {
+ module.debug('Clearing current rating');
+ module.setRating(0);
+ },
+
+ getRating: function() {
+ var
+ currentRating = $icon.filter('.' + className.active).size()
+ ;
+ module.verbose('Current rating retrieved', currentRating);
+ return currentRating;
+ },
+
+ enable: function() {
+ module.debug('Setting rating to interactive mode');
+ $icon
+ .on('mouseenter' + eventNamespace, module.event.mouseenter)
+ .on('mouseleave' + eventNamespace, module.event.mouseleave)
+ .on('click' + eventNamespace, module.event.click)
+ ;
+ $module
+ .removeClass(className.disabled)
+ ;
+ },
+
+ disable: function() {
+ module.debug('Setting rating to read-only mode');
+ $icon
+ .off(eventNamespace)
+ ;
+ $module
+ .addClass(className.disabled)
+ ;
+ },
+
+ setRating: function(rating) {
+ var
+ ratingIndex = (rating - 1 >= 0)
+ ? (rating - 1)
+ : 0,
+ $activeIcon = $icon.eq(ratingIndex)
+ ;
+ $module
+ .removeClass(className.hover)
+ ;
+ $icon
+ .removeClass(className.hover)
+ .removeClass(className.active)
+ ;
+ if(rating > 0) {
+ module.verbose('Setting current rating to', rating);
+ $activeIcon
+ .addClass(className.active)
+ .prevAll()
+ .addClass(className.active)
+ ;
+ }
+ $.proxy(settings.onRate, element)(rating);
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.rating.settings = {
+
+ name : 'Rating',
+ namespace : 'rating',
+
+ verbose : true,
+ debug : false,
+ performance : true,
+
+ initialRating : 0,
+ interactive : true,
+ clearable : false,
+
+ onRate : function(rating){},
+
+ error : {
+ method : 'The method you called is not defined'
+ },
+
+ metadata: {
+ rating: 'rating'
+ },
+
+ className : {
+ active : 'active',
+ disabled : 'disabled',
+ hover : 'hover',
+ loading : 'loading'
+ },
+
+ selector : {
+ icon : '.icon'
+ }
+
+};
+
+})( jQuery, window , document );
+
+/*
+ * # Semantic - Search
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.search = function(source, parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $(this)
+ .each(function() {
+ var
+ settings = $.extend(true, {}, $.fn.search.settings, parameters),
+
+ className = settings.className,
+ selector = settings.selector,
+ error = settings.error,
+ namespace = settings.namespace,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = namespace + '-module',
+
+ $module = $(this),
+ $prompt = $module.find(selector.prompt),
+ $searchButton = $module.find(selector.searchButton),
+ $results = $module.find(selector.results),
+ $result = $module.find(selector.result),
+ $category = $module.find(selector.category),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+
+ module
+ ;
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing module');
+ var
+ prompt = $prompt[0],
+ inputEvent = (prompt.oninput !== undefined)
+ ? 'input'
+ : (prompt.onpropertychange !== undefined)
+ ? 'propertychange'
+ : 'keyup'
+ ;
+ // attach events
+ $prompt
+ .on('focus' + eventNamespace, module.event.focus)
+ .on('blur' + eventNamespace, module.event.blur)
+ .on('keydown' + eventNamespace, module.handleKeyboard)
+ ;
+ if(settings.automatic) {
+ $prompt
+ .on(inputEvent + eventNamespace, module.search.throttle)
+ ;
+ }
+ $searchButton
+ .on('click' + eventNamespace, module.search.query)
+ ;
+ $results
+ .on('click' + eventNamespace, selector.result, module.results.select)
+ ;
+ module.instantiate();
+ },
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+ destroy: function() {
+ module.verbose('Destroying instance');
+ $module
+ .removeData(moduleNamespace)
+ ;
+ },
+ event: {
+ focus: function() {
+ $module
+ .addClass(className.focus)
+ ;
+ module.results.show();
+ },
+ blur: function() {
+ module.search.cancel();
+ $module
+ .removeClass(className.focus)
+ ;
+ module.results.hide();
+ }
+ },
+ handleKeyboard: function(event) {
+ var
+ // force latest jq dom
+ $result = $module.find(selector.result),
+ $category = $module.find(selector.category),
+ keyCode = event.which,
+ keys = {
+ backspace : 8,
+ enter : 13,
+ escape : 27,
+ upArrow : 38,
+ downArrow : 40
+ },
+ activeClass = className.active,
+ currentIndex = $result.index( $result.filter('.' + activeClass) ),
+ resultSize = $result.size(),
+ newIndex
+ ;
+ // search shortcuts
+ if(keyCode == keys.escape) {
+ module.verbose('Escape key pressed, blurring search field');
+ $prompt
+ .trigger('blur')
+ ;
+ }
+ // result shortcuts
+ if($results.filter(':visible').size() > 0) {
+ if(keyCode == keys.enter) {
+ module.verbose('Enter key pressed, selecting active result');
+ if( $result.filter('.' + activeClass).exists() ) {
+ $.proxy(module.results.select, $result.filter('.' + activeClass) )();
+ event.preventDefault();
+ return false;
+ }
+ }
+ else if(keyCode == keys.upArrow) {
+ module.verbose('Up key pressed, changing active result');
+ newIndex = (currentIndex - 1 < 0)
+ ? currentIndex
+ : currentIndex - 1
+ ;
+ $category
+ .removeClass(activeClass)
+ ;
+ $result
+ .removeClass(activeClass)
+ .eq(newIndex)
+ .addClass(activeClass)
+ .closest($category)
+ .addClass(activeClass)
+ ;
+ event.preventDefault();
+ }
+ else if(keyCode == keys.downArrow) {
+ module.verbose('Down key pressed, changing active result');
+ newIndex = (currentIndex + 1 >= resultSize)
+ ? currentIndex
+ : currentIndex + 1
+ ;
+ $category
+ .removeClass(activeClass)
+ ;
+ $result
+ .removeClass(activeClass)
+ .eq(newIndex)
+ .addClass(activeClass)
+ .closest($category)
+ .addClass(activeClass)
+ ;
+ event.preventDefault();
+ }
+ }
+ else {
+ // query shortcuts
+ if(keyCode == keys.enter) {
+ module.verbose('Enter key pressed, executing query');
+ module.search.query();
+ $searchButton
+ .addClass(className.down)
+ ;
+ $prompt
+ .one('keyup', function(){
+ $searchButton
+ .removeClass(className.down)
+ ;
+ })
+ ;
+ }
+ }
+ },
+ search: {
+ cancel: function() {
+ var
+ xhr = $module.data('xhr') || false
+ ;
+ if( xhr && xhr.state() != 'resolved') {
+ module.debug('Cancelling last search');
+ xhr.abort();
+ }
+ },
+ throttle: function() {
+ var
+ searchTerm = $prompt.val(),
+ numCharacters = searchTerm.length
+ ;
+ clearTimeout(module.timer);
+ if(numCharacters >= settings.minCharacters) {
+ module.timer = setTimeout(module.search.query, settings.searchThrottle);
+ }
+ else {
+ module.results.hide();
+ }
+ },
+ query: function() {
+ var
+ searchTerm = $prompt.val(),
+ cachedHTML = module.search.cache.read(searchTerm)
+ ;
+ if(cachedHTML) {
+ module.debug("Reading result for '" + searchTerm + "' from cache");
+ module.results.add(cachedHTML);
+ }
+ else {
+ module.debug("Querying for '" + searchTerm + "'");
+ if(typeof source == 'object') {
+ module.search.local(searchTerm);
+ }
+ else {
+ module.search.remote(searchTerm);
+ }
+ $.proxy(settings.onSearchQuery, $module)(searchTerm);
+ }
+ },
+ local: function(searchTerm) {
+ var
+ results = [],
+ fullTextResults = [],
+ searchFields = $.isArray(settings.searchFields)
+ ? settings.searchFields
+ : [settings.searchFields],
+
+ searchRegExp = new RegExp('(?:\s|^)' + searchTerm, 'i'),
+ fullTextRegExp = new RegExp(searchTerm, 'i'),
+ searchHTML
+ ;
+ $module
+ .addClass(className.loading)
+ ;
+ // iterate through search fields in array order
+ $.each(searchFields, function(index, field) {
+ $.each(source, function(label, thing) {
+ if(typeof thing[field] == 'string' && ($.inArray(thing, results) == -1) && ($.inArray(thing, fullTextResults) == -1) ) {
+ if( searchRegExp.test( thing[field] ) ) {
+ results.push(thing);
+ }
+ else if( fullTextRegExp.test( thing[field] ) ) {
+ fullTextResults.push(thing);
+ }
+ }
+ });
+ });
+ searchHTML = module.results.generate({
+ results: $.merge(results, fullTextResults)
+ });
+ $module
+ .removeClass(className.loading)
+ ;
+ module.search.cache.write(searchTerm, searchHTML);
+ module.results.add(searchHTML);
+ },
+ remote: function(searchTerm) {
+ var
+ apiSettings = {
+ stateContext : $module,
+ url : source,
+ urlData: { query: searchTerm },
+ success : function(response) {
+ searchHTML = module.results.generate(response);
+ module.search.cache.write(searchTerm, searchHTML);
+ module.results.add(searchHTML);
+ },
+ failure : module.error
+ },
+ searchHTML
+ ;
+ module.search.cancel();
+ module.debug('Executing search');
+ $.extend(true, apiSettings, settings.apiSettings);
+ $.api(apiSettings);
+ },
+
+ cache: {
+ read: function(name) {
+ var
+ cache = $module.data('cache')
+ ;
+ return (settings.cache && (typeof cache == 'object') && (cache[name] !== undefined) )
+ ? cache[name]
+ : false
+ ;
+ },
+ write: function(name, value) {
+ var
+ cache = ($module.data('cache') !== undefined)
+ ? $module.data('cache')
+ : {}
+ ;
+ cache[name] = value;
+ $module
+ .data('cache', cache)
+ ;
+ }
+ }
+ },
+
+ results: {
+ generate: function(response) {
+ module.debug('Generating html from response', response);
+ var
+ template = settings.templates[settings.type],
+ html = ''
+ ;
+ if(($.isPlainObject(response.results) && !$.isEmptyObject(response.results)) || ($.isArray(response.results) && response.results.length > 0) ) {
+ if(settings.maxResults > 0) {
+ response.results = $.makeArray(response.results).slice(0, settings.maxResults);
+ }
+ if(response.results.length > 0) {
+ if($.isFunction(template)) {
+ html = template(response);
+ }
+ else {
+ module.error(error.noTemplate, false);
+ }
+ }
+ }
+ else {
+ html = module.message(error.noResults, 'empty');
+ }
+ $.proxy(settings.onResults, $module)(response);
+ return html;
+ },
+ add: function(html) {
+ if(settings.onResultsAdd == 'default' || $.proxy(settings.onResultsAdd, $results)(html) == 'default') {
+ $results
+ .html(html)
+ ;
+ }
+ module.results.show();
+ },
+ show: function() {
+ if( ($results.filter(':visible').size() === 0) && ($prompt.filter(':focus').size() > 0) && $results.html() !== '') {
+ $results
+ .stop()
+ .fadeIn(200)
+ ;
+ $.proxy(settings.onResultsOpen, $results)();
+ }
+ },
+ hide: function() {
+ if($results.filter(':visible').size() > 0) {
+ $results
+ .stop()
+ .fadeOut(200)
+ ;
+ $.proxy(settings.onResultsClose, $results)();
+ }
+ },
+ select: function(event) {
+ module.debug('Search result selected');
+ var
+ $result = $(this),
+ $title = $result.find('.title'),
+ title = $title.html()
+ ;
+ if(settings.onSelect == 'default' || $.proxy(settings.onSelect, this)(event) == 'default') {
+ var
+ $link = $result.find('a[href]').eq(0),
+ href = $link.attr('href') || false,
+ target = $link.attr('target') || false
+ ;
+ module.results.hide();
+ $prompt
+ .val(title)
+ ;
+ if(href) {
+ if(target == '_blank' || event.ctrlKey) {
+ window.open(href);
+ }
+ else {
+ window.location.href = (href);
+ }
+ }
+ }
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.search.settings = {
+
+ name : 'Search Module',
+ namespace : 'search',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ // onSelect default action is defined in module
+ onSelect : 'default',
+ onResultsAdd : 'default',
+
+ onSearchQuery : function(){},
+ onResults : function(response){},
+
+ onResultsOpen : function(){},
+ onResultsClose : function(){},
+
+ automatic : 'true',
+ type : 'simple',
+ minCharacters : 3,
+ searchThrottle : 300,
+ maxResults : 7,
+ cache : true,
+
+ searchFields : [
+ 'title',
+ 'description'
+ ],
+
+ // api config
+ apiSettings: {
+
+ },
+
+ className: {
+ active : 'active',
+ down : 'down',
+ focus : 'focus',
+ empty : 'empty',
+ loading : 'loading'
+ },
+
+ error : {
+ noResults : 'Your search returned no results',
+ logging : 'Error in debug logging, exiting.',
+ noTemplate : 'A valid template name was not specified.',
+ serverError : 'There was an issue with querying the server.',
+ method : 'The method you called is not defined.'
+ },
+
+ selector : {
+ prompt : '.prompt',
+ searchButton : '.search.button',
+ results : '.results',
+ category : '.category',
+ result : '.result'
+ },
+
+ templates: {
+ message: function(message, type) {
+ var
+ html = ''
+ ;
+ if(message !== undefined && type !== undefined) {
+ html += ''
+ + '
'
+ ;
+ // message type
+ if(type == 'empty') {
+ html += ''
+ + ''
+ + '
' + message + '
'
+ ;
+ }
+ else {
+ html += '
' + message + '
';
+ }
+ html += '
';
+ }
+ return html;
+ },
+ categories: function(response) {
+ var
+ html = ''
+ ;
+ if(response.results !== undefined) {
+ // each category
+ $.each(response.results, function(index, category) {
+ if(category.results !== undefined && category.results.length > 0) {
+ html += ''
+ + '
'
+ + '
' + category.name + '
'
+ ;
+ // each item inside category
+ $.each(category.results, function(index, result) {
+ html += '
';
+ html += '
';
+ if(result.image !== undefined) {
+ html+= ''
+ + '
'
+ + '
'
+ + '
'
+ ;
+ }
+ html += '
';
+ if(result.price !== undefined) {
+ html+= '
' + result.price + '
';
+ }
+ if(result.title !== undefined) {
+ html+= '
' + result.title + '
';
+ }
+ if(result.description !== undefined) {
+ html+= '
' + result.description + '
';
+ }
+ html += ''
+ + '
'
+ + '
'
+ ;
+ });
+ html += ''
+ + '
'
+ ;
+ }
+ });
+ if(response.resultPage) {
+ html += ''
+ + '
'
+ + response.resultPage.text
+ + ' ';
+ }
+ return html;
+ }
+ return false;
+ },
+ simple: function(response) {
+ var
+ html = ''
+ ;
+ if(response.results !== undefined) {
+
+ // each result
+ $.each(response.results, function(index, result) {
+ html += '
';
+ if(result.image !== undefined) {
+ html+= ''
+ + ''
+ + '
'
+ + '
'
+ ;
+ }
+ html += '';
+ if(result.price !== undefined) {
+ html+= '
' + result.price + '
';
+ }
+ if(result.title !== undefined) {
+ html+= '
' + result.title + '
';
+ }
+ if(result.description !== undefined) {
+ html+= '
' + result.description + '
';
+ }
+ html += ''
+ + '
'
+ + ' '
+ ;
+ });
+
+ if(response.resultPage) {
+ html += ''
+ + '
'
+ + response.resultPage.text
+ + ' ';
+ }
+ return html;
+ }
+ return false;
+ }
+ }
+};
+
+})( jQuery, window , document );
+/*
+ * # Semantic - Shape
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.shape = function(parameters) {
+ var
+ $allModules = $(this),
+ $body = $('body'),
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ moduleSelector = $allModules.selector || '',
+ settings = $.extend(true, {}, $.fn.shape.settings, parameters),
+
+ // internal aliases
+ namespace = settings.namespace,
+ selector = settings.selector,
+ error = settings.error,
+ className = settings.className,
+
+ // define namespaces for modules
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ // selector cache
+ $module = $(this),
+ $sides = $module.find(selector.sides),
+ $side = $module.find(selector.side),
+
+ // private variables
+ nextSelector = false,
+ $activeSide,
+ $nextSide,
+
+ // standard module
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing module for', element);
+ module.set.defaultSide();
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module for', element);
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing selector cache for', element);
+ $module = $(element);
+ $sides = $(this).find(selector.shape);
+ $side = $(this).find(selector.side);
+ },
+
+ repaint: function() {
+ module.verbose('Forcing repaint event');
+ var
+ shape = $sides.get(0) || document.createElement('div'),
+ fakeAssignment = shape.offsetWidth
+ ;
+ },
+
+ animate: function(propertyObject, callback) {
+ module.verbose('Animating box with properties', propertyObject);
+ callback = callback || function(event) {
+ module.verbose('Executing animation callback');
+ if(event !== undefined) {
+ event.stopPropagation();
+ }
+ module.reset();
+ module.set.active();
+ };
+ $.proxy(settings.beforeChange, $nextSide[0])();
+ if(module.get.transitionEvent()) {
+ module.verbose('Starting CSS animation');
+ $module
+ .addClass(className.animating)
+ ;
+ module.repaint();
+ $module
+ .addClass(className.animating)
+ ;
+ $activeSide
+ .addClass(className.hidden)
+ ;
+ $sides
+ .css(propertyObject)
+ .one(module.get.transitionEvent(), callback)
+ ;
+ module.set.duration(settings.duration);
+ }
+ else {
+ callback();
+ }
+ },
+
+ queue: function(method) {
+ module.debug('Queueing animation of', method);
+ $sides
+ .one(module.get.transitionEvent(), function() {
+ module.debug('Executing queued animation');
+ setTimeout(function(){
+ $module.shape(method);
+ }, 0);
+ })
+ ;
+ },
+
+ reset: function() {
+ module.verbose('Animating states reset');
+ $module
+ .removeClass(className.animating)
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ // removeAttr style does not consistently work in safari
+ $sides
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ $side
+ .attr('style', '')
+ .removeAttr('style')
+ .removeClass(className.hidden)
+ ;
+ $nextSide
+ .removeClass(className.animating)
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ },
+
+ is: {
+ animating: function() {
+ return $module.hasClass(className.animating);
+ }
+ },
+
+ set: {
+
+ defaultSide: function() {
+ $activeSide = $module.find('.' + settings.className.active);
+ $nextSide = ( $activeSide.next(selector.side).size() > 0 )
+ ? $activeSide.next(selector.side)
+ : $module.find(selector.side).first()
+ ;
+ nextSelector = false;
+ module.verbose('Active side set to', $activeSide);
+ module.verbose('Next side set to', $nextSide);
+ },
+
+ duration: function(duration) {
+ duration = duration || settings.duration;
+ duration = (typeof duration == 'number')
+ ? duration + 'ms'
+ : duration
+ ;
+ module.verbose('Setting animation duration', duration);
+ $sides.add($side)
+ .css({
+ '-webkit-transition-duration': duration,
+ '-moz-transition-duration': duration,
+ '-ms-transition-duration': duration,
+ '-o-transition-duration': duration,
+ 'transition-duration': duration
+ })
+ ;
+ },
+
+ stageSize: function() {
+ var
+ $clone = $module.clone().addClass(className.loading),
+ $activeSide = $clone.find('.' + settings.className.active),
+ $nextSide = (nextSelector)
+ ? $clone.find(nextSelector)
+ : ( $activeSide.next(selector.side).size() > 0 )
+ ? $activeSide.next(selector.side)
+ : $clone.find(selector.side).first(),
+ newSize = {}
+ ;
+ $activeSide.removeClass(className.active);
+ $nextSide.addClass(className.active);
+ $clone.prependTo($body);
+ newSize = {
+ width : $nextSide.outerWidth(),
+ height : $nextSide.outerHeight()
+ };
+ $clone.remove();
+ $module
+ .css(newSize)
+ ;
+ module.verbose('Resizing stage to fit new content', newSize);
+ },
+
+ nextSide: function(selector) {
+ nextSelector = selector;
+ $nextSide = $module.find(selector);
+ if($nextSide.size() === 0) {
+ module.error(error.side);
+ }
+ module.verbose('Next side manually set to', $nextSide);
+ },
+
+ active: function() {
+ module.verbose('Setting new side to active', $nextSide);
+ $side
+ .removeClass(className.active)
+ ;
+ $nextSide
+ .addClass(className.active)
+ ;
+ $.proxy(settings.onChange, $nextSide[0])();
+ module.set.defaultSide();
+ }
+ },
+
+ flip: {
+
+ up: function() {
+ module.debug('Flipping up', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.above();
+ module.animate( module.get.transform.up() );
+ }
+ else {
+ module.queue('flip up');
+ }
+ },
+
+ down: function() {
+ module.debug('Flipping down', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.below();
+ module.animate( module.get.transform.down() );
+ }
+ else {
+ module.queue('flip down');
+ }
+ },
+
+ left: function() {
+ module.debug('Flipping left', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.left();
+ module.animate(module.get.transform.left() );
+ }
+ else {
+ module.queue('flip left');
+ }
+ },
+
+ right: function() {
+ module.debug('Flipping right', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.right();
+ module.animate(module.get.transform.right() );
+ }
+ else {
+ module.queue('flip right');
+ }
+ },
+
+ over: function() {
+ module.debug('Flipping over', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.behind();
+ module.animate(module.get.transform.over() );
+ }
+ else {
+ module.queue('flip over');
+ }
+ },
+
+ back: function() {
+ module.debug('Flipping back', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.behind();
+ module.animate(module.get.transform.back() );
+ }
+ else {
+ module.queue('flip back');
+ }
+ }
+
+ },
+
+ get: {
+
+ transform: {
+ up: function() {
+ var
+ translate = {
+ y: -(($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
+ z: -($activeSide.outerHeight() / 2)
+ }
+ ;
+ return {
+ transform: 'translateY(' + translate.y + 'px) translateZ('+ translate.z + 'px) rotateX(-90deg)'
+ };
+ },
+
+ down: function() {
+ var
+ translate = {
+ y: -(($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
+ z: -($activeSide.outerHeight() / 2)
+ }
+ ;
+ return {
+ transform: 'translateY(' + translate.y + 'px) translateZ('+ translate.z + 'px) rotateX(90deg)'
+ };
+ },
+
+ left: function() {
+ var
+ translate = {
+ x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2),
+ z : -($activeSide.outerWidth() / 2)
+ }
+ ;
+ return {
+ transform: 'translateX(' + translate.x + 'px) translateZ(' + translate.z + 'px) rotateY(90deg)'
+ };
+ },
+
+ right: function() {
+ var
+ translate = {
+ x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2),
+ z : -($activeSide.outerWidth() / 2)
+ }
+ ;
+ return {
+ transform: 'translateX(' + translate.x + 'px) translateZ(' + translate.z + 'px) rotateY(-90deg)'
+ };
+ },
+
+ over: function() {
+ var
+ translate = {
+ x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2)
+ }
+ ;
+ return {
+ transform: 'translateX(' + translate.x + 'px) rotateY(180deg)'
+ };
+ },
+
+ back: function() {
+ var
+ translate = {
+ x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2)
+ }
+ ;
+ return {
+ transform: 'translateX(' + translate.x + 'px) rotateY(-180deg)'
+ };
+ }
+ },
+
+ transitionEvent: function() {
+ var
+ element = document.createElement('element'),
+ transitions = {
+ 'transition' :'transitionend',
+ 'OTransition' :'oTransitionEnd',
+ 'MozTransition' :'transitionend',
+ 'WebkitTransition' :'webkitTransitionEnd'
+ },
+ transition
+ ;
+ for(transition in transitions){
+ if( element.style[transition] !== undefined ){
+ return transitions[transition];
+ }
+ }
+ },
+
+ nextSide: function() {
+ return ( $activeSide.next(selector.side).size() > 0 )
+ ? $activeSide.next(selector.side)
+ : $module.find(selector.side).first()
+ ;
+ }
+
+ },
+
+ stage: {
+
+ above: function() {
+ var
+ box = {
+ origin : (($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
+ depth : {
+ active : ($nextSide.outerHeight() / 2),
+ next : ($activeSide.outerHeight() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as above', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'top' : box.origin + 'px',
+ 'transform' : 'rotateX(90deg) translateZ(' + box.depth.next + 'px)'
+ })
+ ;
+ },
+
+ below: function() {
+ var
+ box = {
+ origin : (($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
+ depth : {
+ active : ($nextSide.outerHeight() / 2),
+ next : ($activeSide.outerHeight() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as below', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'top' : box.origin + 'px',
+ 'transform' : 'rotateX(-90deg) translateZ(' + box.depth.next + 'px)'
+ })
+ ;
+ },
+
+ left: function() {
+ var
+ box = {
+ origin : ( ( $activeSide.outerWidth() - $nextSide.outerWidth() ) / 2),
+ depth : {
+ active : ($nextSide.outerWidth() / 2),
+ next : ($activeSide.outerWidth() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as left', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'left' : box.origin + 'px',
+ 'transform' : 'rotateY(-90deg) translateZ(' + box.depth.next + 'px)'
+ })
+ ;
+ },
+
+ right: function() {
+ var
+ box = {
+ origin : ( ( $activeSide.outerWidth() - $nextSide.outerWidth() ) / 2),
+ depth : {
+ active : ($nextSide.outerWidth() / 2),
+ next : ($activeSide.outerWidth() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as left', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'left' : box.origin + 'px',
+ 'transform' : 'rotateY(90deg) translateZ(' + box.depth.next + 'px)'
+ })
+ ;
+ },
+
+ behind: function() {
+ var
+ box = {
+ origin : ( ( $activeSide.outerWidth() - $nextSide.outerWidth() ) / 2),
+ depth : {
+ active : ($nextSide.outerWidth() / 2),
+ next : ($activeSide.outerWidth() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as behind', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'left' : box.origin + 'px',
+ 'transform' : 'rotateY(-180deg)'
+ })
+ ;
+ }
+ },
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.shape.settings = {
+
+ // module info
+ name : 'Shape',
+
+ // debug content outputted to console
+ debug : false,
+
+ // verbose debug output
+ verbose : true,
+
+ // performance data output
+ performance: true,
+
+ // event namespace
+ namespace : 'shape',
+
+ // callback occurs on side change
+ beforeChange : function() {},
+ onChange : function() {},
+
+ // animation duration
+ duration : 700,
+
+ // possible errors
+ error: {
+ side : 'You tried to switch to a side that does not exist.',
+ method : 'The method you called is not defined'
+ },
+
+ // classnames used
+ className : {
+ animating : 'animating',
+ hidden : 'hidden',
+ loading : 'loading',
+ active : 'active'
+ },
+
+ // selectors used
+ selector : {
+ sides : '.sides',
+ side : '.side'
+ }
+
+};
+
+
+})( jQuery, window , document );
+/*
+ * # Semantic - Sidebar
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.sidebar = function(parameters) {
+ var
+ $allModules = $(this),
+ $body = $('body'),
+ $head = $('head'),
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.sidebar.settings, parameters)
+ : $.extend({}, $.fn.sidebar.settings),
+
+ selector = settings.selector,
+ className = settings.className,
+ namespace = settings.namespace,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $style = $('style[title=' + namespace + ']'),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing sidebar', $module);
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module for', $module);
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing selector cache');
+ $style = $('style[title=' + namespace + ']');
+ },
+
+ attachEvents: function(selector, event) {
+ var
+ $toggle = $(selector)
+ ;
+ event = $.isFunction(module[event])
+ ? module[event]
+ : module.toggle
+ ;
+ if($toggle.size() > 0) {
+ module.debug('Attaching sidebar events to element', selector, event);
+ $toggle
+ .off(eventNamespace)
+ .on('click' + eventNamespace, event)
+ ;
+ }
+ else {
+ module.error(error.notFound);
+ }
+ },
+
+ show: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.debug('Showing sidebar', callback);
+ if(module.is.closed()) {
+ if(!settings.overlay) {
+ if(settings.exclusive) {
+ module.hideAll();
+ }
+ module.pushPage();
+ }
+ module.set.active();
+ callback();
+ $.proxy(settings.onChange, element)();
+ $.proxy(settings.onShow, element)();
+ }
+ else {
+ module.debug('Sidebar is already visible');
+ }
+ },
+
+ hide: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.debug('Hiding sidebar', callback);
+ if(module.is.open()) {
+ if(!settings.overlay) {
+ module.pullPage();
+ module.remove.pushed();
+ }
+ module.remove.active();
+ callback();
+ $.proxy(settings.onChange, element)();
+ $.proxy(settings.onHide, element)();
+ }
+ },
+
+ hideAll: function() {
+ $(selector.sidebar)
+ .filter(':visible')
+ .sidebar('hide')
+ ;
+ },
+
+ toggle: function() {
+ if(module.is.closed()) {
+ module.show();
+ }
+ else {
+ module.hide();
+ }
+ },
+
+ pushPage: function() {
+ var
+ direction = module.get.direction(),
+ distance = (module.is.vertical())
+ ? $module.outerHeight()
+ : $module.outerWidth()
+ ;
+ if(settings.useCSS) {
+ module.debug('Using CSS to animate body');
+ module.add.bodyCSS(direction, distance);
+ module.set.pushed();
+ }
+ else {
+ module.animatePage(direction, distance, module.set.pushed);
+ }
+ },
+
+ pullPage: function() {
+ var
+ direction = module.get.direction()
+ ;
+ if(settings.useCSS) {
+ module.debug('Resetting body position css');
+ module.remove.bodyCSS();
+ }
+ else {
+ module.debug('Resetting body position using javascript');
+ module.animatePage(direction, 0);
+ }
+ module.remove.pushed();
+ },
+
+ animatePage: function(direction, distance) {
+ var
+ animateSettings = {}
+ ;
+ animateSettings['padding-' + direction] = distance;
+ module.debug('Using javascript to animate body', animateSettings);
+ $body
+ .animate(animateSettings, settings.duration, module.set.pushed)
+ ;
+ },
+
+ add: {
+ bodyCSS: function(direction, distance) {
+ var
+ style
+ ;
+ if(direction !== className.bottom) {
+ style = ''
+ + ''
+ ;
+ }
+ $head.append(style);
+ module.debug('Adding body css to head', $style);
+ }
+ },
+
+
+ remove: {
+ bodyCSS: function() {
+ module.debug('Removing body css styles', $style);
+ module.refresh();
+ $style.remove();
+ },
+ active: function() {
+ $module.removeClass(className.active);
+ },
+ pushed: function() {
+ module.verbose('Removing body push state', module.get.direction());
+ $body
+ .removeClass(className[ module.get.direction() ])
+ .removeClass(className.pushed)
+ ;
+ }
+ },
+
+ set: {
+ active: function() {
+ $module.addClass(className.active);
+ },
+ pushed: function() {
+ module.verbose('Adding body push state', module.get.direction());
+ $body
+ .addClass(className[ module.get.direction() ])
+ .addClass(className.pushed)
+ ;
+ }
+ },
+
+ get: {
+ direction: function() {
+ if($module.hasClass(className.top)) {
+ return className.top;
+ }
+ else if($module.hasClass(className.right)) {
+ return className.right;
+ }
+ else if($module.hasClass(className.bottom)) {
+ return className.bottom;
+ }
+ else {
+ return className.left;
+ }
+ },
+ transitionEvent: function() {
+ var
+ element = document.createElement('element'),
+ transitions = {
+ 'transition' :'transitionend',
+ 'OTransition' :'oTransitionEnd',
+ 'MozTransition' :'transitionend',
+ 'WebkitTransition' :'webkitTransitionEnd'
+ },
+ transition
+ ;
+ for(transition in transitions){
+ if( element.style[transition] !== undefined ){
+ return transitions[transition];
+ }
+ }
+ }
+ },
+
+ is: {
+ open: function() {
+ return $module.is(':animated') || $module.hasClass(className.active);
+ },
+ closed: function() {
+ return !module.is.open();
+ },
+ vertical: function() {
+ return $module.hasClass(className.top);
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.sidebar.settings = {
+
+ name : 'Sidebar',
+ namespace : 'sidebar',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ useCSS : true,
+ exclusive : true,
+ overlay : false,
+ duration : 300,
+
+ onChange : function(){},
+ onShow : function(){},
+ onHide : function(){},
+
+ className: {
+ active : 'active',
+ pushed : 'pushed',
+ top : 'top',
+ left : 'left',
+ right : 'right',
+ bottom : 'bottom'
+ },
+
+ selector: {
+ sidebar: '.ui.sidebar'
+ },
+
+ error : {
+ method : 'The method you called is not defined.',
+ notFound : 'There were no elements that matched the specified selector'
+ }
+
+};
+
+})( jQuery, window , document );
+
+/*
+ * # Semantic - Tab
+ * http://github.com/jlukic/semantic-ui/
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+
+;(function ($, window, document, undefined) {
+
+ $.fn.tab = function(parameters) {
+
+ var
+ settings = $.extend(true, {}, $.fn.tab.settings, parameters),
+
+ $module = $(this),
+ $tabs = $(settings.context).find(settings.selector.tabs),
+
+ moduleSelector = $module.selector || '',
+
+ cache = {},
+ firstLoad = true,
+ recursionDepth = 0,
+
+ activeTabPath,
+ parameterArray,
+ historyEvent,
+
+ element = this,
+ time = new Date().getTime(),
+ performance = [],
+
+ className = settings.className,
+ metadata = settings.metadata,
+ error = settings.error,
+
+ eventNamespace = '.' + settings.namespace,
+ moduleNamespace = 'module-' + settings.namespace,
+
+ instance = $module.data(moduleNamespace),
+
+ query = arguments[0],
+ methodInvoked = (instance !== undefined && typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ module,
+ returnedValue
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing Tabs', $module);
+
+ // set up automatic routing
+ if(settings.auto) {
+ module.verbose('Setting up automatic tab retrieval from server');
+ settings.apiSettings = {
+ url: settings.path + '/{$tab}'
+ };
+ }
+
+ // attach history events
+ if(settings.history) {
+ module.debug('Initializing page state');
+ if( $.address === undefined ) {
+ module.error(error.state);
+ return false;
+ }
+ else {
+ if(settings.historyType == 'hash') {
+ module.debug('Using hash state change to manage state');
+ }
+ if(settings.historyType == 'html5') {
+ module.debug('Using HTML5 to manage state');
+ if(settings.path !== false) {
+ $.address
+ .history(true)
+ .state(settings.path)
+ ;
+ }
+ else {
+ module.error(error.path);
+ return false;
+ }
+ }
+ $.address
+ .unbind('change')
+ .bind('change', module.event.history.change)
+ ;
+ }
+ }
+
+ // attach events if navigation wasn't set to window
+ if( !$.isWindow( element ) ) {
+ module.debug('Attaching tab activation events to element', $module);
+ $module
+ .on('click' + eventNamespace, module.event.click)
+ ;
+ }
+ module.instantiate();
+ },
+
+ instantiate: function () {
+ module.verbose('Storing instance of module', module);
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.debug('Destroying tabs', $module);
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+ click: function(event) {
+ var
+ tabPath = $(this).data(metadata.tab)
+ ;
+ if(tabPath !== undefined) {
+ if(settings.history) {
+ module.verbose('Updating page state', event);
+ $.address.value(tabPath);
+ }
+ else {
+ module.verbose('Changing tab without state management', event);
+ module.changeTab(tabPath);
+ }
+ event.preventDefault();
+ }
+ else {
+ module.debug('No tab specified');
+ }
+ },
+ history: {
+ change: function(event) {
+ var
+ tabPath = event.pathNames.join('/') || module.get.initialPath(),
+ pageTitle = settings.templates.determineTitle(tabPath) || false
+ ;
+ module.debug('History change event', tabPath, event);
+ historyEvent = event;
+ if(tabPath !== undefined) {
+ module.changeTab(tabPath);
+ }
+ if(pageTitle) {
+ $.address.title(pageTitle);
+ }
+ }
+ }
+ },
+
+ refresh: function() {
+ if(activeTabPath) {
+ module.debug('Refreshing tab', activeTabPath);
+ module.changeTab(activeTabPath);
+ }
+ },
+
+ cache: {
+
+ read: function(cacheKey) {
+ return (cacheKey !== undefined)
+ ? cache[cacheKey]
+ : false
+ ;
+ },
+ add: function(cacheKey, content) {
+ cacheKey = cacheKey || activeTabPath;
+ module.debug('Adding cached content for', cacheKey);
+ cache[cacheKey] = content;
+ },
+ remove: function(cacheKey) {
+ cacheKey = cacheKey || activeTabPath;
+ module.debug('Removing cached content for', cacheKey);
+ delete cache[cacheKey];
+ }
+ },
+
+ set: {
+ state: function(url) {
+ $.address.value(url);
+ }
+ },
+
+ changeTab: function(tabPath) {
+ var
+ pushStateAvailable = (window.history && window.history.pushState),
+ shouldIgnoreLoad = (pushStateAvailable && settings.ignoreFirstLoad && firstLoad),
+ remoteContent = (settings.auto || $.isPlainObject(settings.apiSettings) ),
+ // only get default path if not remote content
+ pathArray = (remoteContent && !shouldIgnoreLoad)
+ ? module.utilities.pathToArray(tabPath)
+ : module.get.defaultPathArray(tabPath)
+ ;
+ tabPath = module.utilities.arrayToPath(pathArray);
+ module.deactivate.all();
+ $.each(pathArray, function(index, tab) {
+ var
+ currentPathArray = pathArray.slice(0, index + 1),
+ currentPath = module.utilities.arrayToPath(currentPathArray),
+
+ isTab = module.is.tab(currentPath),
+ isLastIndex = (index + 1 == pathArray.length),
+
+ $tab = module.get.tabElement(currentPath),
+ nextPathArray,
+ nextPath,
+ isLastTab
+ ;
+ module.verbose('Looking for tab', tab);
+ if(isTab) {
+ module.verbose('Tab was found', tab);
+
+ // scope up
+ activeTabPath = currentPath;
+ parameterArray = module.utilities.filterArray(pathArray, currentPathArray);
+
+ if(isLastIndex) {
+ isLastTab = true;
+ }
+ else {
+ nextPathArray = pathArray.slice(0, index + 2);
+ nextPath = module.utilities.arrayToPath(nextPathArray);
+ isLastTab = ( !module.is.tab(nextPath) );
+ if(isLastTab) {
+ module.verbose('Tab parameters found', nextPathArray);
+ }
+ }
+ if(isLastTab && remoteContent) {
+ if(!shouldIgnoreLoad) {
+ module.activate.navigation(currentPath);
+ module.content.fetch(currentPath, tabPath);
+ }
+ else {
+ module.debug('Ignoring remote content on first tab load', currentPath);
+ firstLoad = false;
+ module.cache.add(tabPath, $tab.html());
+ module.activate.all(currentPath);
+ $.proxy(settings.onTabInit, $tab)(currentPath, parameterArray, historyEvent);
+ $.proxy(settings.onTabLoad, $tab)(currentPath, parameterArray, historyEvent);
+ }
+ return false;
+ }
+ else {
+ module.debug('Opened local tab', currentPath);
+ module.activate.all(currentPath);
+ if( !module.cache.read(currentPath) ) {
+ module.cache.add(currentPath, true);
+ module.debug('First time tab loaded calling tab init');
+ $.proxy(settings.onTabInit, $tab)(currentPath, parameterArray, historyEvent);
+ }
+ $.proxy(settings.onTabLoad, $tab)(currentPath, parameterArray, historyEvent);
+ }
+ }
+ else {
+ module.error(error.missingTab, tab);
+ return false;
+ }
+ });
+ },
+
+ content: {
+
+ fetch: function(tabPath, fullTabPath) {
+ var
+ $tab = module.get.tabElement(tabPath),
+ apiSettings = {
+ dataType : 'html',
+ stateContext : $tab,
+ success : function(response) {
+ module.cache.add(fullTabPath, response);
+ module.content.update(tabPath, response);
+ if(tabPath == activeTabPath) {
+ module.debug('Content loaded', tabPath);
+ module.activate.tab(tabPath);
+ }
+ else {
+ module.debug('Content loaded in background', tabPath);
+ }
+ $.proxy(settings.onTabInit, $tab)(tabPath, parameterArray, historyEvent);
+ $.proxy(settings.onTabLoad, $tab)(tabPath, parameterArray, historyEvent);
+ },
+ urlData: { tab: fullTabPath }
+ },
+ request = $tab.data(metadata.promise) || false,
+ existingRequest = ( request && request.state() === 'pending' ),
+ requestSettings,
+ cachedContent
+ ;
+
+ fullTabPath = fullTabPath || tabPath;
+ cachedContent = module.cache.read(fullTabPath);
+
+ if(settings.cache && cachedContent) {
+ module.debug('Showing existing content', fullTabPath);
+ module.content.update(tabPath, cachedContent);
+ module.activate.tab(tabPath);
+ $.proxy(settings.onTabLoad, $tab)(tabPath, parameterArray, historyEvent);
+ }
+ else if(existingRequest) {
+ module.debug('Content is already loading', fullTabPath);
+ $tab
+ .addClass(className.loading)
+ ;
+ }
+ else if($.api !== undefined) {
+ console.log(settings.apiSettings);
+ requestSettings = $.extend(true, { headers: { 'X-Remote': true } }, settings.apiSettings, apiSettings);
+ module.debug('Retrieving remote content', fullTabPath, requestSettings);
+ $.api( requestSettings );
+ }
+ else {
+ module.error(error.api);
+ }
+ },
+
+ update: function(tabPath, html) {
+ module.debug('Updating html for', tabPath);
+ var
+ $tab = module.get.tabElement(tabPath)
+ ;
+ $tab
+ .html(html)
+ ;
+ }
+ },
+
+ activate: {
+ all: function(tabPath) {
+ module.activate.tab(tabPath);
+ module.activate.navigation(tabPath);
+ },
+ tab: function(tabPath) {
+ var
+ $tab = module.get.tabElement(tabPath)
+ ;
+ module.verbose('Showing tab content for', $tab);
+ $tab.addClass(className.active);
+ },
+ navigation: function(tabPath) {
+ var
+ $navigation = module.get.navElement(tabPath)
+ ;
+ module.verbose('Activating tab navigation for', $navigation, tabPath);
+ $navigation.addClass(className.active);
+ }
+ },
+
+ deactivate: {
+ all: function() {
+ module.deactivate.navigation();
+ module.deactivate.tabs();
+ },
+ navigation: function() {
+ $module
+ .removeClass(className.active)
+ ;
+ },
+ tabs: function() {
+ $tabs
+ .removeClass(className.active + ' ' + className.loading)
+ ;
+ }
+ },
+
+ is: {
+ tab: function(tabName) {
+ return (tabName !== undefined)
+ ? ( module.get.tabElement(tabName).size() > 0 )
+ : false
+ ;
+ }
+ },
+
+ get: {
+ initialPath: function() {
+ return $module.eq(0).data(metadata.tab) || $tabs.eq(0).data(metadata.tab);
+ },
+ path: function() {
+ return $.address.value();
+ },
+ // adds default tabs to tab path
+ defaultPathArray: function(tabPath) {
+ return module.utilities.pathToArray( module.get.defaultPath(tabPath) );
+ },
+ defaultPath: function(tabPath) {
+ var
+ $defaultNav = $module.filter('[data-' + metadata.tab + '^="' + tabPath + '/"]').eq(0),
+ defaultTab = $defaultNav.data(metadata.tab) || false
+ ;
+ if( defaultTab ) {
+ module.debug('Found default tab', defaultTab);
+ if(recursionDepth < settings.maxDepth) {
+ recursionDepth++;
+ return module.get.defaultPath(defaultTab);
+ }
+ module.error(error.recursion);
+ }
+ else {
+ module.debug('No default tabs found for', tabPath, $tabs);
+ }
+ recursionDepth = 0;
+ return tabPath;
+ },
+ navElement: function(tabPath) {
+ tabPath = tabPath || activeTabPath;
+ return $module.filter('[data-' + metadata.tab + '="' + tabPath + '"]');
+ },
+ tabElement: function(tabPath) {
+ var
+ $fullPathTab,
+ $simplePathTab,
+ tabPathArray,
+ lastTab
+ ;
+ tabPath = tabPath || activeTabPath;
+ tabPathArray = module.utilities.pathToArray(tabPath);
+ lastTab = module.utilities.last(tabPathArray);
+ $fullPathTab = $tabs.filter('[data-' + metadata.tab + '="' + lastTab + '"]');
+ $simplePathTab = $tabs.filter('[data-' + metadata.tab + '="' + tabPath + '"]');
+ return ($fullPathTab.size() > 0)
+ ? $fullPathTab
+ : $simplePathTab
+ ;
+ },
+ tab: function() {
+ return activeTabPath;
+ }
+ },
+
+ utilities: {
+ filterArray: function(keepArray, removeArray) {
+ return $.grep(keepArray, function(keepValue) {
+ return ( $.inArray(keepValue, removeArray) == -1);
+ });
+ },
+ last: function(array) {
+ return $.isArray(array)
+ ? array[ array.length - 1]
+ : false
+ ;
+ },
+ pathToArray: function(pathName) {
+ if(pathName === undefined) {
+ pathName = activeTabPath;
+ }
+ return typeof pathName == 'string'
+ ? pathName.split('/')
+ : [pathName]
+ ;
+ },
+ arrayToPath: function(pathArray) {
+ return $.isArray(pathArray)
+ ? pathArray.join('/')
+ : false
+ ;
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+
+ };
+
+ // shortcut for tabbed content with no defined navigation
+ $.tab = function(settings) {
+ $(window).tab(settings);
+ };
+
+ $.fn.tab.settings = {
+
+ name : 'Tab',
+ debug : false,
+ verbose : true,
+ performance : true,
+ namespace : 'tab',
+
+ // only called first time a tab's content is loaded (when remote source)
+ onTabInit : function(tabPath, parameterArray, historyEvent) {},
+ // called on every load
+ onTabLoad : function(tabPath, parameterArray, historyEvent) {},
+
+ templates : {
+ determineTitle: function(tabArray) {}
+ },
+
+ // uses pjax style endpoints fetching content from same url with remote-content headers
+ auto : false,
+ history : true,
+ historyType : 'hash',
+ path : false,
+
+ context : 'body',
+
+ // max depth a tab can be nested
+ maxDepth : 25,
+ // dont load content on first load
+ ignoreFirstLoad : false,
+ // load tab content new every tab click
+ alwaysRefresh : false,
+ // cache the content requests to pull locally
+ cache : true,
+ // settings for api call
+ apiSettings : false,
+
+ error: {
+ api : 'You attempted to load content without API module',
+ method : 'The method you called is not defined',
+ missingTab : 'Tab cannot be found',
+ noContent : 'The tab you specified is missing a content url.',
+ path : 'History enabled, but no path was specified',
+ recursion : 'Max recursive depth reached',
+ state : 'The state library has not been initialized'
+ },
+
+ metadata : {
+ tab : 'tab',
+ loaded : 'loaded',
+ promise: 'promise'
+ },
+
+ className : {
+ loading : 'loading',
+ active : 'active'
+ },
+
+ selector : {
+ tabs : '.ui.tab'
+ }
+
+ };
+
+})( jQuery, window , document );
+
+/*
+ * # Semantic - Transition
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.transition = function() {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ moduleArguments = arguments,
+ query = moduleArguments[0],
+ queryArguments = [].slice.call(arguments, 1),
+ methodInvoked = (typeof query === 'string'),
+
+ requestAnimationFrame = window.requestAnimationFrame
+ || window.mozRequestAnimationFrame
+ || window.webkitRequestAnimationFrame
+ || window.msRequestAnimationFrame
+ || function(callback) { setTimeout(callback, 0); },
+
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ $module = $(this),
+ element = this,
+
+ // set at run time
+ settings,
+ instance,
+
+ error,
+ className,
+ metadata,
+ animationEnd,
+ animationName,
+
+ namespace,
+ moduleNamespace,
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ // get settings
+ settings = module.get.settings.apply(element, moduleArguments);
+ module.verbose('Converted arguments into settings object', settings);
+
+ // set shortcuts
+ error = settings.error;
+ className = settings.className;
+ namespace = settings.namespace;
+ metadata = settings.metadata;
+ moduleNamespace = 'module-' + namespace;
+
+ animationEnd = module.get.animationEvent();
+ animationName = module.get.animationName();
+
+ instance = $module.data(moduleNamespace) || module;
+
+ if(methodInvoked) {
+ methodInvoked = module.invoke(query);
+ }
+ // no internal method was found matching query or query not made
+ if(methodInvoked === false) {
+ module.animate();
+ }
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module for', element);
+ $module
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing display type on next animation');
+ delete instance.displayType;
+ },
+
+ forceRepaint: function() {
+ module.verbose('Forcing element repaint');
+ var
+ $parentElement = $module.parent(),
+ $nextElement = $module.next()
+ ;
+ if($nextElement.size() === 0) {
+ $module.detach().appendTo($parentElement);
+ }
+ else {
+ $module.detach().insertBefore($nextElement);
+ }
+ },
+
+ repaint: function() {
+ module.verbose('Repainting element');
+ var
+ fakeAssignment = element.offsetWidth
+ ;
+ },
+
+ animate: function(overrideSettings) {
+ settings = overrideSettings || settings;
+ if(!module.is.supported()) {
+ module.error(error.support);
+ return false;
+ }
+ module.debug('Preparing animation', settings.animation);
+ if(module.is.animating() && settings.queue) {
+ if(!settings.allowRepeats && module.has.direction() && module.is.occuring() && instance.queuing !== true) {
+ module.error(error.repeated);
+ }
+ else {
+ module.queue(settings.animation);
+ }
+ return false;
+ }
+ if(module.can.animate) {
+ module.set.animating(settings.animation);
+ }
+ else {
+ module.error(error.noAnimation, settings.animation);
+ }
+ },
+
+ reset: function() {
+ module.debug('Resetting animation to beginning conditions');
+ $module.off(animationEnd);
+ module.restore.conditions();
+ module.hide();
+ module.remove.animating();
+ },
+
+ queue: function(animation) {
+ module.debug('Queueing animation of', animation);
+ instance.queuing = true;
+ $module
+ .one(animationEnd, function() {
+ instance.queuing = false;
+ module.repaint();
+ module.animate.apply(this, settings);
+ })
+ ;
+ },
+
+ complete: function () {
+ module.verbose('CSS animation complete', settings.animation);
+ if(!module.is.looping()) {
+ if( module.is.outward() ) {
+ module.verbose('Animation is outward, hiding element');
+ module.restore.conditions();
+ module.remove.display();
+ module.hide();
+ $.proxy(settings.onHide, this)();
+ }
+ else if( module.is.inward() ) {
+ module.verbose('Animation is outward, showing element');
+ module.restore.conditions();
+ module.show();
+ $.proxy(settings.onShow, this)();
+ }
+ else {
+ module.restore.conditions();
+ }
+ module.remove.duration();
+ module.remove.animating();
+ }
+ $.proxy(settings.complete, this)();
+ },
+
+ has: {
+ direction: function(animation) {
+ animation = animation || settings.animation;
+ if( animation.search(className.inward) !== -1 || animation.search(className.outward) !== -1) {
+ module.debug('Direction already set in animation');
+ return true;
+ }
+ return false;
+ }
+ },
+
+ set: {
+
+ animating: function(animation) {
+ animation = animation || settings.animation;
+ module.save.conditions();
+ if(module.can.transition() && !module.has.direction()) {
+ module.set.direction();
+ }
+ module.remove.hidden();
+ module.set.display();
+ $module
+ .addClass(className.animating)
+ .addClass(className.transition)
+ .addClass(animation)
+ .one(animationEnd, module.complete)
+ ;
+ module.set.duration(settings.duration);
+ module.debug('Starting tween', settings.animation, $module.attr('class'));
+ },
+
+ display: function() {
+ var
+ displayType = module.get.displayType()
+ ;
+ if(displayType !== 'block') {
+ module.verbose('Setting final visibility to', displayType);
+ $module
+ .css({
+ display: displayType
+ })
+ ;
+ }
+ },
+
+ direction: function() {
+ if($module.is(':visible')) {
+ module.debug('Automatically determining the direction of animation', 'Outward');
+ $module
+ .removeClass(className.inward)
+ .addClass(className.outward)
+ ;
+ }
+ else {
+ module.debug('Automatically determining the direction of animation', 'Inward');
+ $module
+ .removeClass(className.outward)
+ .addClass(className.inward)
+ ;
+ }
+ },
+
+ looping: function() {
+ module.debug('Transition set to loop');
+ $module
+ .addClass(className.looping)
+ ;
+ },
+
+ duration: function(duration) {
+ duration = duration || settings.duration;
+ duration = (typeof duration == 'number')
+ ? duration + 'ms'
+ : duration
+ ;
+ module.verbose('Setting animation duration', duration);
+ $module
+ .css({
+ '-webkit-animation-duration': duration,
+ '-moz-animation-duration': duration,
+ '-ms-animation-duration': duration,
+ '-o-animation-duration': duration,
+ 'animation-duration': duration
+ })
+ ;
+ },
+
+ hidden: function() {
+ $module
+ .addClass(className.transition)
+ .addClass(className.hidden)
+ ;
+ },
+
+ visible: function() {
+ $module
+ .addClass(className.transition)
+ .addClass(className.visible)
+ ;
+ }
+ },
+
+ save: {
+ displayType: function(displayType) {
+ instance.displayType = displayType;
+ },
+ transitionExists: function(animation, exists) {
+ $.fn.transition.exists[animation] = exists;
+ module.verbose('Saving existence of transition', animation, exists);
+ },
+ conditions: function() {
+ instance.cache = {
+ className : $module.attr('class'),
+ style : $module.attr('style')
+ };
+ module.verbose('Saving original attributes', instance.cache);
+ }
+ },
+
+ restore: {
+ conditions: function() {
+ if(instance.cache === undefined) {
+ return false;
+ }
+ if(instance.cache.className) {
+ $module.attr('class', instance.cache.className);
+ }
+ else {
+ $module.removeAttr('class');
+ }
+ if(instance.cache.style) {
+ $module.attr('style', instance.cache.style);
+ }
+ else {
+ if(module.get.displayType() === 'block') {
+ $module.removeAttr('style');
+ }
+ }
+ if(module.is.looping()) {
+ module.remove.looping();
+ }
+ module.verbose('Restoring original attributes', instance.cache);
+ }
+ },
+
+ remove: {
+
+ animating: function() {
+ $module.removeClass(className.animating);
+ },
+
+ display: function() {
+ if(instance.displayType !== undefined) {
+ $module.css('display', '');
+ }
+ },
+
+ duration: function() {
+ $module
+ .css({
+ '-webkit-animation-duration' : '',
+ '-moz-animation-duration' : '',
+ '-ms-animation-duration' : '',
+ '-o-animation-duration' : '',
+ 'animation-duration' : ''
+ })
+ ;
+ },
+
+ hidden: function() {
+ $module.removeClass(className.hidden);
+ },
+
+ visible: function() {
+ $module.removeClass(className.visible);
+ },
+
+ looping: function() {
+ module.debug('Transitions are no longer looping');
+ $module
+ .removeClass(className.looping)
+ ;
+ module.forceRepaint();
+ }
+
+ },
+
+ get: {
+
+ settings: function(animation, duration, complete) {
+ // single settings object
+ if(typeof animation == 'object') {
+ return $.extend(true, {}, $.fn.transition.settings, animation);
+ }
+ // all arguments provided
+ else if(typeof complete == 'function') {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation,
+ complete : complete,
+ duration : duration
+ });
+ }
+ // only duration provided
+ else if(typeof duration == 'string' || typeof duration == 'number') {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation,
+ duration : duration
+ });
+ }
+ // duration is actually settings object
+ else if(typeof duration == 'object') {
+ return $.extend({}, $.fn.transition.settings, duration, {
+ animation : animation
+ });
+ }
+ // duration is actually callback
+ else if(typeof duration == 'function') {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation,
+ complete : duration
+ });
+ }
+ // only animation provided
+ else {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation
+ });
+ }
+ return $.fn.transition.settings;
+ },
+
+ displayType: function() {
+ if(instance.displayType === undefined) {
+ // create fake element to determine display state
+ module.can.transition();
+ }
+ return instance.displayType;
+ },
+
+ transitionExists: function(animation) {
+ return $.fn.transition.exists[animation];
+ },
+
+ animationName: function() {
+ var
+ element = document.createElement('div'),
+ animations = {
+ 'animation' :'animationName',
+ 'OAnimation' :'oAnimationName',
+ 'MozAnimation' :'mozAnimationName',
+ 'WebkitAnimation' :'webkitAnimationName'
+ },
+ animation
+ ;
+ for(animation in animations){
+ if( element.style[animation] !== undefined ){
+ module.verbose('Determined animation vendor name property', animations[animation]);
+ return animations[animation];
+ }
+ }
+ return false;
+ },
+
+ animationEvent: function() {
+ var
+ element = document.createElement('div'),
+ animations = {
+ 'animation' :'animationend',
+ 'OAnimation' :'oAnimationEnd',
+ 'MozAnimation' :'animationend',
+ 'WebkitAnimation' :'webkitAnimationEnd'
+ },
+ animation
+ ;
+ for(animation in animations){
+ if( element.style[animation] !== undefined ){
+ module.verbose('Determined animation vendor end event', animations[animation]);
+ return animations[animation];
+ }
+ }
+ return false;
+ }
+
+ },
+
+ can: {
+ animate: function() {
+ if($module.css(settings.animation) !== 'none') {
+ module.debug('CSS definition found', $module.css(settings.animation));
+ return true;
+ }
+ else {
+ module.debug('Unable to find css definition', $module.attr('class'));
+ return false;
+ }
+ },
+ transition: function() {
+ var
+ elementClass = $module.attr('class'),
+ animation = settings.animation,
+ transitionExists = module.get.transitionExists(settings.animation),
+ $clone,
+ currentAnimation,
+ inAnimation,
+ displayType
+ ;
+ if( transitionExists === undefined || instance.displayType === undefined) {
+ module.verbose('Determining whether animation exists');
+ $clone = $('
').addClass( elementClass ).appendTo($('body'));
+ currentAnimation = $clone
+ .removeClass(className.inward)
+ .removeClass(className.outward)
+ .addClass(className.animating)
+ .addClass(className.transition)
+ .addClass(animation)
+ .css(animationName)
+ ;
+ inAnimation = $clone
+ .addClass(className.inward)
+ .css(animationName)
+ ;
+ displayType = $clone
+ .attr('class', elementClass)
+ .show()
+ .css('display')
+ ;
+ module.verbose('Determining final display state', displayType);
+ if(currentAnimation != inAnimation) {
+ module.debug('Transition exists for animation', animation);
+ transitionExists = true;
+ }
+ else {
+ module.debug('Static animation found', animation, displayType);
+ transitionExists = false;
+ }
+ $clone.remove();
+ module.save.displayType(displayType);
+ module.save.transitionExists(animation, transitionExists);
+ }
+ return transitionExists;
+ }
+ },
+
+ is: {
+ animating: function() {
+ return $module.hasClass(className.animating);
+ },
+ inward: function() {
+ return $module.hasClass(className.inward);
+ },
+ outward: function() {
+ return $module.hasClass(className.outward);
+ },
+ looping: function() {
+ return $module.hasClass(className.looping);
+ },
+ occuring: function(animation) {
+ animation = animation || settings.animation;
+ return ( $module.hasClass(animation) );
+ },
+ visible: function() {
+ return $module.is(':visible');
+ },
+ supported: function() {
+ return(animationName !== false && animationEnd !== false);
+ }
+ },
+
+ hide: function() {
+ module.verbose('Hiding element');
+ module.remove.visible();
+ module.set.hidden();
+ module.repaint();
+ },
+
+ show: function(display) {
+ module.verbose('Showing element', display);
+ module.remove.hidden();
+ module.set.visible();
+ module.repaint();
+ },
+
+ start: function() {
+ module.verbose('Starting animation');
+ $module.removeClass(className.disabled);
+ },
+
+ stop: function() {
+ module.debug('Stopping animation');
+ $module.addClass(className.disabled);
+ },
+
+ toggle: function() {
+ module.debug('Toggling play status');
+ $module.toggleClass(className.disabled);
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found || false;
+ }
+ };
+ module.initialize();
+ })
+ ;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.transition.exists = {};
+
+$.fn.transition.settings = {
+
+ // module info
+ name : 'Transition',
+
+ // debug content outputted to console
+ debug : false,
+
+ // verbose debug output
+ verbose : true,
+
+ // performance data output
+ performance : true,
+
+ // event namespace
+ namespace : 'transition',
+
+ // animation complete event
+ complete : function() {},
+ onShow : function() {},
+ onHide : function() {},
+
+ // whether animation can occur twice in a row
+ allowRepeats : false,
+
+ // animation duration
+ animation : 'fade',
+ duration : '700ms',
+
+ // new animations will occur after previous ones
+ queue : true,
+
+ className : {
+ animating : 'animating',
+ disabled : 'disabled',
+ hidden : 'hidden',
+ inward : 'in',
+ loading : 'loading',
+ looping : 'looping',
+ outward : 'out',
+ transition : 'ui transition',
+ visible : 'visible'
+ },
+
+ // possible errors
+ error: {
+ noAnimation : 'There is no css animation matching the one you specified.',
+ repeated : 'That animation is already occurring, cancelling repeated animation',
+ method : 'The method you called is not defined',
+ support : 'This browser does not support CSS animations'
+ }
+
+};
+
+
+})( jQuery, window , document );
+
+/* ******************************
+ Module - Video
+ Author: Jack Lukic
+
+ This is a video playlist and video embed plugin which helps
+ provide helpers for adding embed code for vimeo and youtube and
+ abstracting event handlers for each library
+
+****************************** */
+
+;(function ($, window, document, undefined) {
+
+$.fn.video = function(parameters) {
+
+ var
+ $allModules = $(this),
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.video.settings, parameters)
+ : $.extend({}, $.fn.video.settings),
+
+ selector = settings.selector,
+ className = settings.className,
+ error = settings.error,
+ metadata = settings.metadata,
+ namespace = settings.namespace,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $placeholder = $module.find(selector.placeholder),
+ $playButton = $module.find(selector.playButton),
+ $embed = $module.find(selector.embed),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing video');
+ $placeholder
+ .on('click' + eventNamespace, module.play)
+ ;
+ $playButton
+ .on('click' + eventNamespace, module.play)
+ ;
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous instance of video');
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ $placeholder
+ .off(eventNamespace)
+ ;
+ $playButton
+ .off(eventNamespace)
+ ;
+ },
+
+ // sets new video
+ change: function(source, id, url) {
+ module.debug('Changing video to ', source, id, url);
+ $module
+ .data(metadata.source, source)
+ .data(metadata.id, id)
+ .data(metadata.url, url)
+ ;
+ settings.onChange();
+ },
+
+ // clears video embed
+ reset: function() {
+ module.debug('Clearing video embed and showing placeholder');
+ $module
+ .removeClass(className.active)
+ ;
+ $embed
+ .html(' ')
+ ;
+ $placeholder
+ .show()
+ ;
+ settings.onReset();
+ },
+
+ // plays current video
+ play: function() {
+ module.debug('Playing video');
+ var
+ source = $module.data(metadata.source) || false,
+ url = $module.data(metadata.url) || false,
+ id = $module.data(metadata.id) || false
+ ;
+ $embed
+ .html( module.generate.html(source, id, url) )
+ ;
+ $module
+ .addClass(className.active)
+ ;
+ settings.onPlay();
+ },
+
+ generate: {
+ // generates iframe html
+ html: function(source, id, url) {
+ module.debug('Generating embed html');
+ var
+ width = (settings.width == 'auto')
+ ? $module.width()
+ : settings.width,
+ height = (settings.height == 'auto')
+ ? $module.height()
+ : settings.height,
+ html
+ ;
+ if(source && id) {
+ if(source == 'vimeo') {
+ html = ''
+ + '
'
+ ;
+ }
+ else if(source == 'youtube') {
+ html = ''
+ + '
VIDEO '
+ ;
+ }
+ }
+ else if(url) {
+ html = ''
+ + '
'
+ ;
+ }
+ else {
+ module.error(error.noVideo);
+ }
+ return html;
+ },
+
+ // generate url parameters
+ url: function(source) {
+ var
+ api = (settings.api)
+ ? 1
+ : 0,
+ autoplay = (settings.autoplay)
+ ? 1
+ : 0,
+ hd = (settings.hd)
+ ? 1
+ : 0,
+ showUI = (settings.showUI)
+ ? 1
+ : 0,
+ // opposite used for some params
+ hideUI = !(settings.showUI)
+ ? 1
+ : 0,
+ url = ''
+ ;
+ if(source == 'vimeo') {
+ url = ''
+ + 'api=' + api
+ + '&title=' + showUI
+ + '&byline=' + showUI
+ + '&portrait=' + showUI
+ + '&autoplay=' + autoplay
+ ;
+ if(settings.color) {
+ url += '&color=' + settings.color;
+ }
+ }
+ if(source == 'ustream') {
+ url = ''
+ + 'autoplay=' + autoplay
+ ;
+ if(settings.color) {
+ url += '&color=' + settings.color;
+ }
+ }
+ else if(source == 'youtube') {
+ url = ''
+ + 'enablejsapi=' + api
+ + '&autoplay=' + autoplay
+ + '&autohide=' + hideUI
+ + '&hq=' + hd
+ + '&modestbranding=1'
+ ;
+ if(settings.color) {
+ url += '&color=' + settings.color;
+ }
+ }
+ return url;
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.video.settings = {
+
+ name : 'Video',
+ namespace : 'video',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ metadata : {
+ source : 'source',
+ id : 'id',
+ url : 'url'
+ },
+
+ onPlay : function(){},
+ onReset : function(){},
+ onChange : function(){},
+
+ // callbacks not coded yet (needs to use jsapi)
+ onPause : function() {},
+ onStop : function() {},
+
+ width : 'auto',
+ height : 'auto',
+
+ autoplay : false,
+ color : '#442359',
+ hd : true,
+ showUI : false,
+ api : true,
+
+ error : {
+ noVideo : 'No video specified',
+ method : 'The method you called is not defined'
+ },
+
+ className : {
+ active : 'active'
+ },
+
+ selector : {
+ embed : '.embed',
+ placeholder : '.placeholder',
+ playButton : '.play'
+ }
+};
+
+
+})( jQuery, window , document );
diff --git a/css/semantic/build/packaged/javascript/semantic.min.js b/css/semantic/build/packaged/javascript/semantic.min.js
new file mode 100644
index 0000000..ddb938c
--- /dev/null
+++ b/css/semantic/build/packaged/javascript/semantic.min.js
@@ -0,0 +1,16 @@
+/** # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Release Date: 04/04/2014
+*/
+!function(a,b,c,d){a.fn.accordion=function(b){var c,e=a(this),f=(new Date).getTime(),g=[],h=arguments[0],i="string"==typeof h,j=[].slice.call(arguments,1);return e.each(function(){var k,l=a.isPlainObject(b)?a.extend(!0,{},a.fn.accordion.settings,b):a.extend({},a.fn.accordion.settings),m=l.className,n=l.namespace,o=l.selector,p=(l.error,"."+n),q="module-"+n,r=e.selector||"",s=a(this),t=s.find(o.title),u=s.find(o.content),v=this,w=s.data(q);k={initialize:function(){k.debug("Initializing accordion with bound events",s),t.on("click"+p,k.event.click),k.instantiate()},instantiate:function(){w=k,s.data(q,k)},destroy:function(){k.debug("Destroying previous accordion for",s),s.removeData(q),t.off(p)},event:{click:function(){k.verbose("Title clicked",this);var b=a(this),c=t.index(b);k.toggle(c)},resetDisplay:function(){a(this).css("display",""),""==a(this).attr("style")&&a(this).attr("style","").removeAttr("style")},resetOpacity:function(){a(this).css("opacity",""),""==a(this).attr("style")&&a(this).attr("style","").removeAttr("style")}},toggle:function(a){k.debug("Toggling content content at index",a);var b=t.eq(a),c=b.next(u),d=c.is(":visible");d?l.collapsible?k.close(a):k.debug("Cannot close accordion content collapsing is disabled"):k.open(a)},open:function(b){var c=t.eq(b),d=c.next(u),e=c.siblings(o.title).filter("."+m.active),f=e.next(t),g=e.size()>0;d.is(":animated")||(k.debug("Opening accordion content",c),l.exclusive&&g&&(e.removeClass(m.active),f.stop().children().stop().animate({opacity:0},l.duration,k.event.resetOpacity).end().slideUp(l.duration,l.easing,function(){f.removeClass(m.active).children(),a.proxy(k.event.resetDisplay,this)()})),c.addClass(m.active),d.stop().children().stop().animate({opacity:1},l.duration).end().slideDown(l.duration,l.easing,function(){d.addClass(m.active),a.proxy(k.event.resetDisplay,this)(),a.proxy(l.onOpen,d)(),a.proxy(l.onChange,d)()}))},close:function(b){var c=t.eq(b),d=c.next(u);k.debug("Closing accordion content",d),c.removeClass(m.active),d.removeClass(m.active).show().stop().children().stop().animate({opacity:0},l.duration,k.event.resetOpacity).end().slideUp(l.duration,l.easing,function(){a.proxy(k.event.resetDisplay,this)(),a.proxy(l.onClose,d)(),a.proxy(l.onChange,d)()})},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,l,b);else{if(c===d)return l[b];l[b]=c}},internal:function(b,c){return k.debug("Changing internal",b,c),c===d?k[b]:void(a.isPlainObject(b)?a.extend(!0,k,b):k[b]=c)},debug:function(){l.debug&&(l.performance?k.performance.log(arguments):(k.debug=Function.prototype.bind.call(console.info,console,l.name+":"),k.debug.apply(console,arguments)))},verbose:function(){l.verbose&&l.debug&&(l.performance?k.performance.log(arguments):(k.verbose=Function.prototype.bind.call(console.info,console,l.name+":"),k.verbose.apply(console,arguments)))},error:function(){k.error=Function.prototype.bind.call(console.error,console,l.name+":"),k.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;l.performance&&(b=(new Date).getTime(),d=f||b,c=b-d,f=b,g.push({Element:v,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(k.performance.timer),k.performance.timer=setTimeout(k.performance.display,100)},display:function(){var b=l.name+":",c=0;f=!1,clearTimeout(k.performance.timer),a.each(g,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",r&&(b+=" '"+r+"'"),(console.group!==d||console.table!==d)&&g.length>0&&(console.groupCollapsed(b),console.table?console.table(g):a.each(g,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),g=[]}},invoke:function(b,e,f){var g,h,i,k=w;return e=e||j,f=v||f,"string"==typeof b&&k!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(k[f])&&c!=g)k=k[f];else{if(k[f]!==d)return h=k[f],!1;if(!a.isPlainObject(k[e])||c==g)return k[e]!==d?(h=k[e],!1):!1;k=k[e]}})),a.isFunction(h)?i=h.apply(f,e):h!==d&&(i=h),a.isArray(c)?c.push(i):c!==d?c=[c,i]:i!==d&&(c=i),h}},i?(w===d&&k.initialize(),k.invoke(h)):(w!==d&&k.destroy(),k.initialize())}),c!==d?c:this},a.fn.accordion.settings={name:"Accordion",namespace:"accordion",debug:!1,verbose:!0,performance:!0,exclusive:!0,collapsible:!0,duration:500,easing:"easeInOutQuint",onOpen:function(){},onClose:function(){},onChange:function(){},error:{method:"The method you called is not defined"},className:{active:"active"},selector:{title:".title",content:".content"}},a.extend(a.easing,{easeInOutQuint:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b*b+c:d/2*((b-=2)*b*b*b*b+2)+c}})}(jQuery,window,document),function(a,b,c,d){a.api=a.fn.api=function(c){var e,f,g=a.extend(!0,{},a.api.settings,c),h="function"!=typeof this?this:a("
"),i=a(g.stateContext?g.stateContext:h),j="object"==typeof this?a(h):i,k=this,l=(new Date).getTime(),m=[],n=j.selector||"",o=g.namespace+"-module",p=g.className,q=g.metadata,r=g.error,s=j.data(o),t=arguments[0],u=s!==d&&"string"==typeof t,v=[].slice.call(arguments,1);return e={initialize:function(){var c,f,h,k,l,m,n=(new Date).getTime(),o={},s={};return g.serializeForm&&a(this).toJSON()!==d&&(o=e.get.formData(),e.debug("Adding form data to API Request",o),a.extend(!0,g.data,o)),c=a.proxy(g.beforeSend,j)(g),c===d||c?(k=e.get.url(e.get.templateURL()))?(h=a.Deferred().always(function(){g.stateContext&&i.removeClass(p.loading),a.proxy(g.complete,j)()}).done(function(b){e.debug("API request successful"),"json"==g.dataType?b.error!==d?a.proxy(g.failure,i)(b.error,g,j):a.isArray(b.errors)?a.proxy(g.failure,i)(b.errors[0],g,j):a.proxy(g.success,i)(b,g,j):a.proxy(g.success,i)(b,g,j)}).fail(function(b,c,f){var h,j=g.error[c]!==d?g.error[c]:f;if(b!==d)if(b.readyState!==d&&4==b.readyState){if(200!=b.status&&f!==d&&""!==f)e.error(k.statusMessage+f);else if("error"==c&&"json"==g.dataType)try{h=a.parseJSON(b.responseText),h&&h.error!==d&&(j=h.error)}catch(k){e.error(k.JSONParse)}i.removeClass(p.loading).addClass(p.error),g.errorLength>0&&setTimeout(function(){i.removeClass(p.error)},g.errorLength),e.debug("API Request error:",j),a.proxy(g.failure,i)(j,g,this)}else e.debug("Request Aborted (Most likely caused by page change)")}),a.extend(!0,s,g,{success:function(){},failure:function(){},complete:function(){},type:g.method||g.type,data:l,url:k,beforeSend:g.beforeXHR}),g.stateContext&&i.addClass(p.loading),g.progress&&(e.verbose("Adding progress events"),a.extend(!0,s,{xhr:function(){var c=new b.XMLHttpRequest;return c.upload.addEventListener("progress",function(b){var c;b.lengthComputable&&(c=Math.round(b.loaded/b.total*1e4)/100+"%",a.proxy(g.progress,i)(c,b))},!1),c.addEventListener("progress",function(b){var c;b.lengthComputable&&(c=Math.round(b.loaded/b.total*1e4)/100+"%",a.proxy(g.progress,i)(c,b))},!1),c}})),e.verbose("Creating AJAX request with settings: ",s),m=a.ajax(s).always(function(){f=g.loadingLength-((new Date).getTime()-n),g.loadingDelay=0>f?0:f}).done(function(a){var b=this;setTimeout(function(){h.resolveWith(b,[a])},g.loadingDelay)}).fail(function(a,b,c){var d=this;"abort"!=b?setTimeout(function(){h.rejectWith(d,[a,b,c])},g.loadingDelay):i.removeClass(p.error).removeClass(p.loading)}),void(g.stateContext&&j.data(q.promise,h).data(q.xhr,m))):(e.error(r.missingURL),void e.reset()):(e.error(r.beforeSend),void e.reset())},get:{formData:function(){return j.closest("form").toJSON()},templateURL:function(){var a,b=j.data(g.metadata.action)||g.action||!1;return b&&(e.debug("Creating url for: ",b),g.api[b]!==d?a=g.api[b]:e.error(r.missingAction)),g.url&&(a=g.url,e.debug("Getting url",a)),a},url:function(b,c){var f;return b&&(f=b.match(g.regExpTemplate),c=c||g.urlData,f&&(e.debug("Looking for URL variables",f),a.each(f,function(g,h){var i=h.substr(2,h.length-3),k=a.isPlainObject(c)&&c[i]!==d?c[i]:j.data(i)!==d?j.data(i):c[i];if(e.verbose("Looking for variable",i,j,j.data(i),c[i]),k===!1)e.debug("Removing variable from URL",f),b=b.replace("/"+h,"");else{if(k===d||!k)return e.error(r.missingParameter+i),b=!1,!1;b=b.replace(h,k)}}))),b}},reset:function(){j.data(q.promise,!1).data(q.xhr,!1),i.removeClass(p.error).removeClass(p.loading)},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,g,b);else{if(c===d)return g[b];g[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,e,b);else{if(c===d)return e[b];e[b]=c}},debug:function(){g.debug&&(g.performance?e.performance.log(arguments):(e.debug=Function.prototype.bind.call(console.info,console,g.name+":"),e.debug.apply(console,arguments)))},verbose:function(){g.verbose&&g.debug&&(g.performance?e.performance.log(arguments):(e.verbose=Function.prototype.bind.call(console.info,console,g.name+":"),e.verbose.apply(console,arguments)))},error:function(){e.error=Function.prototype.bind.call(console.error,console,g.name+":"),e.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;g.performance&&(b=(new Date).getTime(),d=l||b,c=b-d,l=b,m.push({Element:k,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(e.performance.timer),e.performance.timer=setTimeout(e.performance.display,100)},display:function(){var b=g.name+":",c=0;l=!1,clearTimeout(e.performance.timer),a.each(m,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",n&&(b+=" '"+n+"'"),(console.group!==d||console.table!==d)&&m.length>0&&(console.groupCollapsed(b),console.table?console.table(m):a.each(m,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),m=[]}},invoke:function(b,c,e){var g,h,i,j=s;return c=c||v,e=k||e,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(e,c):h!==d&&(i=h),a.isArray(f)?f.push(i):f!==d?f=[f,i]:i!==d&&(f=i),h}},u?(s===d&&e.initialize(),e.invoke(t)):(s!==d&&e.destroy(),e.initialize()),f!==d?f:this},a.fn.apiButton=function(b){return a(this).each(function(){var c,d=a(this),e=a(this).selector||"",f=a.isFunction(b)?a.extend(!0,{},a.api.settings,a.fn.apiButton.settings,{stateContext:this,success:b}):a.extend(!0,{},a.api.settings,a.fn.apiButton.settings,{stateContext:this},b);c={initialize:function(){f.context&&""!==e?a(f.context).on(e,"click."+f.namespace,c.click):d.on("click."+f.namespace,c.click)},click:function(){f.filter&&0!==a(this).filter(f.filter).size()||a.proxy(a.api,this)(f)}},c.initialize()}),this},a.api.settings={name:"API",namespace:"api",debug:!0,verbose:!0,performance:!0,api:{},beforeSend:function(a){return a},beforeXHR:function(){},success:function(){},complete:function(){},failure:function(){},progress:!1,error:{missingAction:"API action used but no url was defined",missingURL:"URL not specified for the API action",missingParameter:"Missing an essential URL parameter: ",timeout:"Your request timed out",error:"There was an error with your request",parseError:"There was an error parsing your request",JSONParse:"JSON could not be parsed during error handling",statusMessage:"Server gave an error: ",beforeSend:"The before send function has aborted the request",exitConditions:"API Request Aborted. Exit conditions met"},className:{loading:"loading",error:"error"},metadata:{action:"action",promise:"promise",xhr:"xhr"},regExpTemplate:/\{\$([A-z]+)\}/g,action:!1,url:!1,urlData:!1,serializeForm:!1,stateContext:!1,method:"get",data:{},dataType:"json",cache:!0,loadingLength:200,errorLength:2e3},a.fn.apiButton.settings={filter:".disabled, .loading",context:!1,stateContext:!1}}(jQuery,window,document),function(a,b,c,d){a.fn.colorize=function(b){var c=a.extend(!0,{},a.fn.colorize.settings,b),e=arguments||!1;return a(this).each(function(b){var f,g,h,i,j,k,l,m,n=a(this),o=a("
")[0],p=a("
")[0],q=a("
")[0],r=new Image,s=c.colors,t=(c.paths,c.namespace),u=c.error,v=n.data("module-"+t);return m={checkPreconditions:function(){return m.debug("Checking pre-conditions"),!a.isPlainObject(s)||a.isEmptyObject(s)?(m.error(u.undefinedColors),!1):!0},async:function(a){c.async?setTimeout(a,0):a()},getMetadata:function(){m.debug("Grabbing metadata"),i=n.data("image")||c.image||d,j=n.data("name")||c.name||b,k=c.width||n.width(),l=c.height||n.height(),(0===k||0===l)&&m.error(u.undefinedSize)},initialize:function(){m.debug("Initializing with colors",s),m.checkPreconditions()&&m.async(function(){m.getMetadata(),m.canvas.create(),m.draw.image(function(){m.draw.colors(),m.canvas.merge()}),n.data("module-"+t,m)})},redraw:function(){m.debug("Redrawing image"),m.async(function(){m.canvas.clear(),m.draw.colors(),m.canvas.merge()})},change:{color:function(a,b){return m.debug("Changing color",a),s[a]===d?(m.error(u.missingColor),!1):(s[a]=b,void m.redraw())}},canvas:{create:function(){m.debug("Creating canvases"),o.width=k,o.height=l,p.width=k,p.height=l,q.width=k,q.height=l,f=o.getContext("2d"),g=p.getContext("2d"),h=q.getContext("2d"),n.append(o),f=n.children("canvas")[0].getContext("2d")},clear:function(){m.debug("Clearing canvas"),h.fillStyle="#FFFFFF",h.fillRect(0,0,k,l)},merge:function(){return a.isFunction(f.blendOnto)?(f.putImageData(g.getImageData(0,0,k,l),0,0),void h.blendOnto(f,"multiply")):void m.error(u.missingPlugin)}},draw:{image:function(a){m.debug("Drawing image"),a=a||function(){},i?(r.src=i,r.onload=function(){g.drawImage(r,0,0),a()}):(m.error(u.noImage),a())},colors:function(){m.debug("Drawing color overlays",s),a.each(s,function(a,b){c.onDraw(h,j,a,b)})}},debug:function(a,b){c.debug&&(b!==d?console.info(c.name+": "+a,b):console.info(c.name+": "+a))},error:function(a){console.warn(c.name+": "+a)},invoke:function(b,e,f){var g;return f=f||Array.prototype.slice.call(arguments,2),"string"==typeof b&&v!==d&&(b=b.split("."),a.each(b,function(b,d){return a.isPlainObject(v[d])?(v=v[d],!0):a.isFunction(v[d])?(g=v[d],!0):(m.error(c.error.method),!1)})),a.isFunction(g)?g.apply(e,f):!1}},v!==d&&e?("invoke"==e[0]&&(e=Array.prototype.slice.call(e,1)),m.invoke(e[0],this,Array.prototype.slice.call(e,1))):void m.initialize()}),this},a.fn.colorize.settings={name:"Image Colorizer",debug:!0,namespace:"colorize",onDraw:function(){},async:!0,colors:{},metadata:{image:"image",name:"name"},error:{noImage:"No tracing image specified",undefinedColors:"No default colors specified.",missingColor:"Attempted to change color that does not exist",missingPlugin:"Blend onto plug-in must be included",undefinedHeight:"The width or height of image canvas could not be automatically determined. Please specify a height."}}}(jQuery,window,document),function(a,b,c,d){a.fn.form=function(b,e){var f,g=a(this),h=a.extend(!0,{},a.fn.form.settings,e),i=a.extend({},a.fn.form.settings.defaults,b),j=h.namespace,k=h.metadata,l=h.selector,m=h.className,n=(h.error,"."+j),o="module-"+j,p=g.selector||"",q=(new Date).getTime(),r=[],s=arguments[0],t="string"==typeof s,u=[].slice.call(arguments,1);return g.each(function(){var b,e=a(this),j=a(this).find(l.field),v=a(this).find(l.group),w=a(this).find(l.message),x=(a(this).find(l.prompt),a(this).find(l.submit)),y=[],z=this,A=e.data(o);b={initialize:function(){b.verbose("Initializing form validation",e,i,h),b.bindEvents(),b.instantiate()},instantiate:function(){b.verbose("Storing instance of module",b),A=b,e.data(o,b)},destroy:function(){b.verbose("Destroying previous module",A),b.removeEvents(),e.removeData(o)},refresh:function(){b.verbose("Refreshing selector cache"),j=e.find(l.field)},submit:function(){b.verbose("Submitting form",e),e.submit()},bindEvents:function(){h.keyboardShortcuts&&j.on("keydown"+n,b.event.field.keydown),e.on("submit"+n,b.validate.form),j.on("blur"+n,b.event.field.blur),x.on("click"+n,b.submit),j.each(function(){var c=a(this).prop("type"),d=b.get.changeEvent(c);a(this).on(d+n,b.event.field.change)})},removeEvents:function(){e.off(n),j.off(n),x.off(n),j.off(n)},event:{field:{keydown:function(c){var d=a(this),e=c.which,f={enter:13,escape:27};return e==f.escape&&(b.verbose("Escape key pressed blurring field"),d.blur()),!c.ctrlKey&&e==f.enter&&d.is(l.input)?(b.debug("Enter key pressed, submitting form"),x.addClass(m.down),d.one("keyup"+n,b.event.field.keyup),c.preventDefault(),!1):void 0},keyup:function(){b.verbose("Doing keyboard shortcut form submit"),x.removeClass(m.down),b.submit()},blur:function(){var c=a(this),d=c.closest(v);d.hasClass(m.error)?(b.debug("Revalidating field",c,b.get.validation(c)),b.validate.field(b.get.validation(c))):("blur"==h.on||"change"==h.on)&&b.validate.field(b.get.validation(c))},change:function(){var c=a(this),d=c.closest(v);("change"==h.on||d.hasClass(m.error)&&h.revalidate)&&(clearTimeout(b.timer),b.timer=setTimeout(function(){b.debug("Revalidating field",c,b.get.validation(c)),b.validate.field(b.get.validation(c))},h.delay))}}},get:{changeEvent:function(a){return"checkbox"==a||"radio"==a||"hidden"==a?"change":c.createElement("input").oninput!==d?"input":c.createElement("input").onpropertychange!==d?"propertychange":"keyup"},field:function(c){return b.verbose("Finding field with identifier",c),j.filter("#"+c).size()>0?j.filter("#"+c):j.filter('[name="'+c+'"]').size()>0?j.filter('[name="'+c+'"]'):j.filter("[data-"+k.validate+'="'+c+'"]').size()>0?j.filter("[data-"+k.validate+'="'+c+'"]'):a("
")},validation:function(c){var d;return a.each(i,function(a,e){b.get.field(e.identifier).get(0)==c.get(0)&&(d=e)}),d||!1}},has:{field:function(a){return b.verbose("Checking for existence of a field with identifier",a),j.filter("#"+a).size()>0?!0:j.filter('[name="'+a+'"]').size()>0?!0:j.filter("[data-"+k.validate+'="'+a+'"]').size()>0?!0:!1}},add:{prompt:function(c,f){var g=b.get.field(c),i=g.closest(v),j=i.find(l.prompt),k=0!==j.size();f="string"==typeof f?[f]:f,b.verbose("Adding field error state",c),i.addClass(m.error),h.inline&&(k||(j=h.templates.prompt(f),j.appendTo(i)),j.html(f[0]),k?b.verbose("Inline errors are disabled, no inline error added",c):h.transition&&a.fn.transition!==d&&e.transition("is supported")?(b.verbose("Displaying error with css transition",h.transition),j.transition(h.transition+" in",h.duration)):(b.verbose("Displaying error with fallback javascript animation"),j.fadeIn(h.duration)))},errors:function(a){b.debug("Adding form error messages",a),w.html(h.templates.error(a))}},remove:{prompt:function(c){var f=b.get.field(c.identifier),g=f.closest(v),i=g.find(l.prompt);g.removeClass(m.error),h.inline&&i.is(":visible")&&(b.verbose("Removing prompt for field",c),h.transition&&a.fn.transition!==d&&e.transition("is supported")?i.transition(h.transition+" out",h.duration,function(){i.remove()}):i.fadeOut(h.duration,function(){i.remove()}))}},validate:{form:function(c){var d=!0;return y=[],a.each(i,function(a,c){b.validate.field(c)||(d=!1)}),d?(b.debug("Form has no validation errors, submitting"),e.removeClass(m.error).addClass(m.success),a.proxy(h.onSuccess,this)(c)):(b.debug("Form has errors"),e.addClass(m.error),h.inline||b.add.errors(y),a.proxy(h.onFailure,this)(y))},field:function(c){var e=b.get.field(c.identifier),f=!0,g=[];return c.rules!==d&&a.each(c.rules,function(a,d){b.has.field(c.identifier)&&!b.validate.rule(c,d)&&(b.debug("Field is invalid",c.identifier,d.type),g.push(d.prompt),f=!1)}),f?(b.remove.prompt(c,g),a.proxy(h.onValid,e)(),!0):(y=y.concat(g),b.add.prompt(c.identifier,g),a.proxy(h.onInvalid,e)(g),!1)},rule:function(c,f){var g,i,j=b.get.field(c.identifier),k=f.type,l=a.trim(j.val()+""),m=/\[(.*)\]/i,n=m.exec(k),o=!0;return n!==d&&null!==n?(g=""+n[1],i=k.replace(n[0],""),o=a.proxy(h.rules[i],e)(l,g)):o=a.proxy(h.rules[k],j)(l),o}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,h,b);else{if(c===d)return h[b];h[b]=c}},internal:function(c,e){if(a.isPlainObject(c))a.extend(!0,b,c);else{if(e===d)return b[c];b[c]=e}},debug:function(){h.debug&&(h.performance?b.performance.log(arguments):(b.debug=Function.prototype.bind.call(console.info,console,h.name+":"),b.debug.apply(console,arguments)))},verbose:function(){h.verbose&&h.debug&&(h.performance?b.performance.log(arguments):(b.verbose=Function.prototype.bind.call(console.info,console,h.name+":"),b.verbose.apply(console,arguments)))},error:function(){b.error=Function.prototype.bind.call(console.error,console,h.name+":"),b.error.apply(console,arguments)},performance:{log:function(a){var c,d,e;h.performance&&(c=(new Date).getTime(),e=q||c,d=c-e,q=c,r.push({Element:z,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":d})),clearTimeout(b.performance.timer),b.performance.timer=setTimeout(b.performance.display,100)},display:function(){var c=h.name+":",e=0;q=!1,clearTimeout(b.performance.timer),a.each(r,function(a,b){e+=b["Execution Time"]}),c+=" "+e+"ms",p&&(c+=" '"+p+"'"),g.size()>1&&(c+=" ("+g.size()+")"),(console.group!==d||console.table!==d)&&r.length>0&&(console.groupCollapsed(c),console.table?console.table(r):a.each(r,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),r=[]}},invoke:function(b,c,e){var g,h,i,j=A;return c=c||u,e=z||e,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(e,c):h!==d&&(i=h),a.isArray(f)?f.push(i):f!==d?f=[f,i]:i!==d&&(f=i),h}},t?(A===d&&b.initialize(),b.invoke(s)):(A!==d&&b.destroy(),b.initialize())}),f!==d?f:this},a.fn.form.settings={name:"Form",namespace:"form",debug:!0,verbose:!0,performance:!0,keyboardShortcuts:!0,on:"submit",inline:!1,delay:200,revalidate:!0,transition:"scale",duration:150,onValid:function(){},onInvalid:function(){},onSuccess:function(){return!0},onFailure:function(){return!1},metadata:{validate:"validate"},selector:{message:".error.message",field:"input, textarea, select",group:".field",input:"input",prompt:".prompt",submit:".submit"},className:{error:"error",success:"success",down:"down",label:"ui label prompt"},error:{method:"The method you called is not defined."},templates:{error:function(b){var c='
';return a.each(b,function(a,b){c+=""+b+" "}),c+=" ",a(c)},prompt:function(b){return a("
").addClass("ui red pointing prompt label").html(b[0])}},rules:{checked:function(){return a(this).filter(":checked").size()>0},empty:function(a){return!(a===d||""===a)},email:function(a){var b=new RegExp("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?","i");return b.test(a)},length:function(a,b){return a!==d?a.length>=b:!1},not:function(a,b){return a!=b},contains:function(a,b){return b=b.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),-1!==a.search(b)},is:function(a,b){return a==b},maxLength:function(a,b){return a!==d?a.length<=b:!1},match:function(b,c){var e,f=a(this);return f.find("#"+c).size()>0?e=f.find("#"+c).val():f.find("[name="+c+"]").size()>0?e=f.find("[name="+c+"]").val():f.find('[data-validate="'+c+'"]').size()>0&&(e=f.find('[data-validate="'+c+'"]').val()),e!==d?b.toString()==e.toString():!1},url:function(a){var b=/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;return b.test(a)}}}}(jQuery,window,document),function(a,b,c,d){a.fn.state=function(b){var c,e=a(this),f=a.extend(!0,{},a.fn.state.settings,b),g=e.selector||"",h=(new Date).getTime(),i=[],j=arguments[0],k="string"==typeof j,l=[].slice.call(arguments,1),m=(f.error,f.metadata),n=f.className,o=f.namespace,p=f.states,q=f.text,r="."+o,s=o+"-module";return e.each(function(){var o,t=a(this),u=this,v=t.data(s);o={initialize:function(){o.verbose("Initializing module"),f.automatic&&o.add.defaults(),f.context&&""!==g?(o.allows("hover")&&a(u,f.context).on(g,"mouseenter"+r,o.enable.hover).on(g,"mouseleave"+r,o.disable.hover),o.allows("down")&&a(u,f.context).on(g,"mousedown"+r,o.enable.down).on(g,"mouseup"+r,o.disable.down),o.allows("focus")&&a(u,f.context).on(g,"focus"+r,o.enable.focus).on(g,"blur"+r,o.disable.focus),a(f.context).on(g,"mouseenter"+r,o.change.text).on(g,"mouseleave"+r,o.reset.text).on(g,"click"+r,o.toggle.state)):(o.allows("hover")&&t.on("mouseenter"+r,o.enable.hover).on("mouseleave"+r,o.disable.hover),o.allows("down")&&t.on("mousedown"+r,o.enable.down).on("mouseup"+r,o.disable.down),o.allows("focus")&&t.on("focus"+r,o.enable.focus).on("blur"+r,o.disable.focus),t.on("mouseenter"+r,o.change.text).on("mouseleave"+r,o.reset.text).on("click"+r,o.toggle.state)),o.instantiate()},instantiate:function(){o.verbose("Storing instance of module",o),v=o,t.data(s,o)},destroy:function(){o.verbose("Destroying previous module",v),t.off(r).removeData(s)},refresh:function(){o.verbose("Refreshing selector cache"),t=a(u)},add:{defaults:function(){var c=b&&a.isPlainObject(b.states)?b.states:{};a.each(f.defaults,function(b,e){o.is[b]!==d&&o.is[b]()&&(o.verbose("Adding default states",b,u),a.extend(f.states,e,c))})}},is:{active:function(){return t.hasClass(n.active)},loading:function(){return t.hasClass(n.loading)},inactive:function(){return!t.hasClass(n.active)},enabled:function(){return!t.is(f.filter.active)},disabled:function(){return t.is(f.filter.active)},textEnabled:function(){return!t.is(f.filter.text)},button:function(){return t.is(".button:not(a, .submit)")},input:function(){return t.is("input")}},allow:function(a){o.debug("Now allowing state",a),p[a]=!0},disallow:function(a){o.debug("No longer allowing",a),p[a]=!1},allows:function(a){return p[a]||!1},enable:{state:function(a){o.allows(a)&&t.addClass(n[a])},focus:function(){t.addClass(n.focus)},hover:function(){t.addClass(n.hover)},down:function(){t.addClass(n.down)}},disable:{state:function(a){o.allows(a)&&t.removeClass(n[a])},focus:function(){t.removeClass(n.focus)},hover:function(){t.removeClass(n.hover)},down:function(){t.removeClass(n.down)}},toggle:{state:function(){var a=t.data(m.promise);o.allows("active")&&o.is.enabled()&&(o.refresh(),a!==d?o.listenTo(a):o.change.state())}},listenTo:function(b){o.debug("API request detected, waiting for state signal",b),b?(q.loading&&o.update.text(q.loading),a.when(b).then(function(){"resolved"==b.state()?(o.debug("API request succeeded"),f.activateTest=function(){return!0},f.deactivateTest=function(){return!0}):(o.debug("API request failed"),f.activateTest=function(){return!1},f.deactivateTest=function(){return!1}),o.change.state()})):(f.activateTest=function(){return!1},f.deactivateTest=function(){return!1})},change:{state:function(){o.debug("Determining state change direction"),o.is.inactive()?o.activate():o.deactivate(),f.sync&&o.sync(),a.proxy(f.onChange,u)()},text:function(){o.is.textEnabled()&&(o.is.active()?q.hover?(o.verbose("Changing text to hover text",q.hover),o.update.text(q.hover)):q.disable&&(o.verbose("Changing text to disable text",q.disable),o.update.text(q.disable)):q.hover?(o.verbose("Changing text to hover text",q.disable),o.update.text(q.hover)):q.enable&&(o.verbose("Changing text to enable text",q.enable),o.update.text(q.enable)))}},activate:function(){a.proxy(f.activateTest,u)()&&(o.debug("Setting state to active"),t.addClass(n.active),o.update.text(q.active)),a.proxy(f.onActivate,u)()},deactivate:function(){a.proxy(f.deactivateTest,u)()&&(o.debug("Setting state to inactive"),t.removeClass(n.active),o.update.text(q.inactive)),a.proxy(f.onDeactivate,u)()},sync:function(){o.verbose("Syncing other buttons to current state"),e.not(t).state(o.is.active()?"activate":"deactivate")},get:{text:function(){return f.selector.text?t.find(f.selector.text).text():t.html()},textFor:function(a){return q[a]||!1}},flash:{text:function(a,b){var c=o.get.text();o.debug("Flashing text message",a,b),a=a||f.text.flash,b=b||f.flashDuration,o.update.text(a),setTimeout(function(){o.update.text(c)},b)}},reset:{text:function(){var a=q.active||t.data(m.storedText),b=q.inactive||t.data(m.storedText);o.is.textEnabled()&&(o.is.active()&&a?(o.verbose("Resetting active text",a),o.update.text(a)):b&&(o.verbose("Resetting inactive text",a),o.update.text(b)))}},update:{text:function(a){var b=o.get.text();a&&a!==b?(o.debug("Updating text",a),f.selector.text?t.data(m.storedText,a).find(f.selector.text).text(a):t.data(m.storedText,a).html(a)):o.debug("Text is already sane, ignoring update",a)}},setting:function(b,c){return o.debug("Changing setting",b,c),c===d?f[b]:void(a.isPlainObject(b)?a.extend(!0,f,b):f[b]=c)},internal:function(b,c){return o.debug("Changing internal",b,c),c===d?o[b]:void(a.isPlainObject(b)?a.extend(!0,o,b):o[b]=c)},debug:function(){f.debug&&(f.performance?o.performance.log(arguments):(o.debug=Function.prototype.bind.call(console.info,console,f.name+":"),o.debug.apply(console,arguments)))},verbose:function(){f.verbose&&f.debug&&(f.performance?o.performance.log(arguments):(o.verbose=Function.prototype.bind.call(console.info,console,f.name+":"),o.verbose.apply(console,arguments)))},error:function(){o.error=Function.prototype.bind.call(console.error,console,f.name+":"),o.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;f.performance&&(b=(new Date).getTime(),d=h||b,c=b-d,h=b,i.push({Element:u,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(o.performance.timer),o.performance.timer=setTimeout(o.performance.display,100)},display:function(){var b=f.name+":",c=0;h=!1,clearTimeout(o.performance.timer),a.each(i,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",g&&(b+=" '"+g+"'"),e.size()>1&&(b+=" ("+e.size()+")"),(console.group!==d||console.table!==d)&&i.length>0&&(console.groupCollapsed(b),console.table?console.table(i):a.each(i,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),i=[]}},invoke:function(b,e,f){var g,h,i,j=v;return e=e||l,f=u||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,e):h!==d&&(i=h),a.isArray(c)?c.push(i):c!==d?c=[c,i]:i!==d&&(c=i),h}},k?(v===d&&o.initialize(),o.invoke(j)):(v!==d&&o.destroy(),o.initialize())}),c!==d?c:this},a.fn.state.settings={name:"State",debug:!0,verbose:!0,namespace:"state",performance:!0,onActivate:function(){},onDeactivate:function(){},onChange:function(){},activateTest:function(){return!0},deactivateTest:function(){return!0},automatic:!0,sync:!1,flashDuration:3e3,filter:{text:".loading, .disabled",active:".disabled"},context:!1,error:{method:"The method you called is not defined."},metadata:{promise:"promise",storedText:"stored-text"},className:{focus:"focus",hover:"hover",down:"down",active:"active",loading:"loading"},selector:{text:!1},defaults:{input:{hover:!0,focus:!0,down:!0,loading:!1,active:!1},button:{hover:!0,focus:!1,down:!0,active:!0,loading:!0}},states:{hover:!0,focus:!0,down:!0,loading:!1,active:!1},text:{flash:!1,hover:!1,active:!1,inactive:!1,enable:!1,disable:!1}}}(jQuery,window,document),function(a,b,c,d){a.fn.chatroom=function(b){var c,e=a(this),f=e.selector||"",g=(new Date).getTime(),h=[],i=arguments[0],j="string"==typeof i,k=[].slice.call(arguments,1);return a(this).each(function(){var c,e,l,m,n,o,p,q=a.extend(!0,{},a.fn.chatroom.settings,b),r=q.className,s=q.namespace,t=q.selector,u=q.error,v=a(this),w=v.find(t.expandButton),x=v.find(t.userListButton),y=v.find(t.userList),z=(v.find(t.room),v.find(t.userCount)),A=v.find(t.log),B=(v.find(t.message),v.find(t.messageInput)),C=v.find(t.messageButton),D=v.data("module"),E=this,F="",G={};p={width:{log:A.width(),userList:y.outerWidth()},initialize:function(){return Pusher===d&&p.error(u.pusher),q.key===d||q.channelName===d?(p.error(u.key),!1):q.endpoint.message||q.endpoint.authentication?(o=new Pusher(q.key),Pusher.channel_auth_endpoint=q.endpoint.authentication,c=o.subscribe(q.channelName),c.bind("pusher:subscription_succeeded",p.user.list.create),c.bind("pusher:subscription_error",p.error),c.bind("pusher:member_added",p.user.joined),c.bind("pusher:member_removed",p.user.left),c.bind("update_messages",p.message.receive),a.each(q.customEvents,function(a,b){c.bind(a,b)
+}),x.on("click."+s,p.event.toggleUserList),w.on("click."+s,p.event.toggleExpand),B.on("keydown."+s,p.event.input.keydown).on("keyup."+s,p.event.input.keyup),C.on("mouseenter."+s,p.event.hover).on("mouseleave."+s,p.event.hover).on("click."+s,p.event.submit),A.animate({scrollTop:A.prop("scrollHeight")},400),void v.data("module",p).addClass(r.loading)):(p.error(u.endpoint),!1)},refresh:function(){x.removeClass(r.active),p.width={log:A.width(),userList:y.outerWidth()},x.hasClass(r.active)&&p.user.list.hide(),v.data("module",p)},user:{updateCount:function(){q.userCount&&(G=v.data("users"),m=0,a.each(G,function(){m++}),z.html(q.templates.userCount(m)))},joined:function(b){G=v.data("users"),"anonymous"!=b.id&&G[b.id]===d&&(G[b.id]=b.info,q.randomColor&&b.info.color===d&&(b.info.color=q.templates.color(b.id)),F=q.templates.userList(b.info),b.info.isAdmin?a(F).prependTo(y):a(F).appendTo(y),q.partingMessages&&(A.append(q.templates.joined(b.info)),p.message.scroll.test()),p.user.updateCount())},left:function(a){G=v.data("users"),a!==d&&"anonymous"!==a.id&&(delete G[a.id],v.data("users",G),y.find("[data-id="+a.id+"]").remove(),q.partingMessages&&(A.append(q.templates.left(a.info)),p.message.scroll.test()),p.user.updateCount())},list:{create:function(b){G={},b.each(function(a){"anonymous"!==a.id&&"undefined"!==a.id&&(q.randomColor&&a.info.color===d&&(a.info.color=q.templates.color(a.id)),F=a.info.isAdmin?q.templates.userList(a.info)+F:F+q.templates.userList(a.info),G[a.id]=a.info)}),v.data("users",G).data("user",G[b.me.id]).removeClass(r.loading),y.html(F),p.user.updateCount(),a.proxy(q.onJoin,y.children())()},show:function(){A.animate({width:p.width.log-p.width.userList},{duration:q.speed,easing:q.easing,complete:p.message.scroll.move})},hide:function(){A.stop().animate({width:p.width.log},{duration:q.speed,easing:q.easing,complete:p.message.scroll.move})}}},message:{scroll:{test:function(){n=A.prop("scrollHeight")-A.height(),Math.abs(A.scrollTop()-n)
0&&(console.groupCollapsed(b),console.table?console.table(h):a.each(h,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),h=[]}},invoke:function(b,c,e){var f,g;return c=c||k,e=E||e,"string"==typeof b&&D!==d&&(b=b.split(/[\. ]/),f=b.length-1,a.each(b,function(c,e){a.isPlainObject(D[e])&&c!=f?D=D[e]:D[e]!==d?g=D[e]:p.error(u.method,b)})),a.isFunction(g)?g.apply(e,c):g||!1}},j?(D===d&&p.initialize(),p.invoke(i)):(D!==d&&p.destroy(),p.initialize())}),c!==d?c:this},a.fn.chatroom.settings={name:"Chat",debug:!1,namespace:"chat",channel:"present-chat",onJoin:function(){},onMessage:function(){},onExpand:function(){},onContract:function(){},customEvents:{},partingMessages:!1,userCount:!0,randomColor:!0,speed:300,easing:"easeOutQuint",scrollArea:9999,endpoint:{message:!1,authentication:!1},error:{method:"The method you called is not defined",endpoint:"Please define a message and authentication endpoint.",key:"You must specify a pusher key and channel.",pusher:"You must include the Pusher library."},className:{expand:"expand",active:"active",hover:"hover",down:"down",loading:"loading"},selector:{userCount:".actions .message",userListButton:".actions .list.button",expandButton:".actions .expand.button",room:".room",userList:".room .list",log:".room .log",message:".room .log .message",author:".room log .message .author",messageInput:".talk input",messageButton:".talk .send.button"},templates:{userCount:function(a){return a+" users in chat"},color:function(){var a=["#000000","#333333","#666666","#999999","#CC9999","#CC6666","#CC3333","#993333","#663333","#CC6633","#CC9966","#CC9933","#999966","#CCCC66","#99CC66","#669933","#669966","#33A3CC","#336633","#33CCCC","#339999","#336666","#336699","#6666CC","#9966CC","#333399","#663366","#996699","#993366","#CC6699"];return a[Math.floor(Math.random()*a.length)]},message:function(a){var b="";return a.user.isAdmin?(a.user.color="#55356A",b+='',b+='
'):b+='
',b+="
",b+=a.user.color!==d?''+a.user.name+" : ":''+a.user.name+" : ",b+=""+a.text+"
"},joined:function(a){return typeof a.name!==d?'
'+a.name+" has joined the chat.
":!1},left:function(a){return typeof a.name!==d?'
'+a.name+" has left the chat.
":!1},userList:function(a){var b="";return a.isAdmin&&(a.color="#55356A"),b+='
"}}}}(jQuery,window,document),function(a,b,c,d){a.fn.checkbox=function(b){var c,e=a(this),f=e.selector||"",g=(new Date).getTime(),h=[],i=arguments[0],j="string"==typeof i,k=[].slice.call(arguments,1);return e.each(function(){var e,l=a.extend(!0,{},a.fn.checkbox.settings,b),m=l.className,n=l.namespace,o=(l.error,"."+n),p="module-"+n,q=a(this),r=a(this).next(l.selector.label).first(),s=a(this).find(l.selector.input),t=q.selector||"",u=q.data(p),v=this;e={initialize:function(){e.verbose("Initializing checkbox",l),l.context&&""!==t?(e.verbose("Adding delegated events"),a(v,l.context).on(t,"click"+o,e.toggle).on(t+" + "+l.selector.label,"click"+o,e.toggle)):(q.on("click"+o,e.toggle).data(p,e),r.on("click"+o,e.toggle)),e.instantiate()},instantiate:function(){e.verbose("Storing instance of module",e),u=e,q.data(p,e)},destroy:function(){e.verbose("Destroying previous module"),q.off(o).removeData(p)},is:{radio:function(){return q.hasClass(m.radio)},enabled:function(){return s.prop("checked")!==d&&s.prop("checked")},disabled:function(){return!e.is.enabled()}},can:{disable:function(){return"boolean"==typeof l.required?l.required:!e.is.radio()}},enable:function(){e.debug("Enabling checkbox",s),s.prop("checked",!0).trigger("change"),a.proxy(l.onChange,s.get())(),a.proxy(l.onEnable,s.get())()},disable:function(){e.debug("Disabling checkbox"),s.prop("checked",!1).trigger("change"),a.proxy(l.onChange,s.get())(),a.proxy(l.onDisable,s.get())()},toggle:function(){e.verbose("Determining new checkbox state"),e.is.disabled()?e.enable():e.is.enabled()&&e.can.disable()&&e.disable()},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,l,b);else{if(c===d)return l[b];l[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,e,b);else{if(c===d)return e[b];e[b]=c}},debug:function(){l.debug&&(l.performance?e.performance.log(arguments):(e.debug=Function.prototype.bind.call(console.info,console,l.name+":"),e.debug.apply(console,arguments)))},verbose:function(){l.verbose&&l.debug&&(l.performance?e.performance.log(arguments):(e.verbose=Function.prototype.bind.call(console.info,console,l.name+":"),e.verbose.apply(console,arguments)))},error:function(){e.error=Function.prototype.bind.call(console.error,console,l.name+":"),e.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;l.performance&&(b=(new Date).getTime(),d=g||b,c=b-d,g=b,h.push({Element:v,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(e.performance.timer),e.performance.timer=setTimeout(e.performance.display,100)},display:function(){var b=l.name+":",c=0;g=!1,clearTimeout(e.performance.timer),a.each(h,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",f&&(b+=" '"+f+"'"),(console.group!==d||console.table!==d)&&h.length>0&&(console.groupCollapsed(b),console.table?console.table(h):a.each(h,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),h=[]}},invoke:function(b,e,f){var g,h,i,j=u;return e=e||k,f=v||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,e):h!==d&&(i=h),a.isArray(c)?c.push(i):c!==d?c=[c,i]:i!==d&&(c=i),h}},j?(u===d&&e.initialize(),e.invoke(i)):(u!==d&&e.destroy(),e.initialize())}),c!==d?c:this},a.fn.checkbox.settings={name:"Checkbox",namespace:"checkbox",debug:!1,verbose:!0,performance:!0,context:!1,required:"auto",onChange:function(){},onEnable:function(){},onDisable:function(){},error:{method:"The method you called is not defined."},selector:{input:"input[type=checkbox], input[type=radio]",label:"label"},className:{radio:"radio"}}}(jQuery,window,document),function(a,b,c,d){a.fn.dimmer=function(b){var e,f=a(this),g=(new Date).getTime(),h=[],i=arguments[0],j="string"==typeof i,k=[].slice.call(arguments,1);return f.each(function(){var l,m,n,o=a.isPlainObject(b)?a.extend(!0,{},a.fn.dimmer.settings,b):a.extend({},a.fn.dimmer.settings),p=o.selector,q=o.namespace,r=o.className,s=(o.error,"."+q),t="module-"+q,u=f.selector||"",v="ontouchstart"in c.documentElement?"touchstart":"click",w=a(this),x=this,y=w.data(t);n={preinitialize:function(){n.is.dimmer()?(m=w.parent(),l=w):(m=w,l=n.has.dimmer()?m.children(p.dimmer).first():n.create())},initialize:function(){n.debug("Initializing dimmer",o),"hover"==o.on?m.on("mouseenter"+s,n.show).on("mouseleave"+s,n.hide):"click"==o.on&&m.on(v+s,n.toggle),n.is.page()&&(n.debug("Setting as a page dimmer",m),n.set.pageDimmer()),o.closable&&(n.verbose("Adding dimmer close event",l),l.on(v+s,n.event.click)),n.set.dimmable(),n.instantiate()},instantiate:function(){n.verbose("Storing instance of module",n),y=n,w.data(t,y)},destroy:function(){n.verbose("Destroying previous module",l),w.removeData(t),m.off(s),l.off(s)},event:{click:function(b){n.verbose("Determining if event occured on dimmer",b),(0===l.find(b.target).size()||a(b.target).is(p.content))&&(n.hide(),b.stopImmediatePropagation())}},addContent:function(b){var c=a(b);n.debug("Add content to dimmer",c),c.parent()[0]!==l[0]&&c.detach().appendTo(l)},create:function(){return a(o.template.dimmer()).appendTo(m)},animate:{show:function(b){b=a.isFunction(b)?b:function(){},n.set.dimmed(),"hover"!=o.on&&o.useCSS&&a.fn.transition!==d&&l.transition("is supported")?l.transition({animation:o.transition+" in",queue:!0,duration:n.get.duration(),complete:function(){n.set.active(),b()}}):(n.verbose("Showing dimmer animation with javascript"),l.stop().css({opacity:0,width:"100%",height:"100%"}).fadeTo(n.get.duration(),1,function(){l.removeAttr("style"),n.set.active(),b()}))},hide:function(b){b=a.isFunction(b)?b:function(){},"hover"!=o.on&&o.useCSS&&a.fn.transition!==d&&l.transition("is supported")?(n.verbose("Hiding dimmer with css"),l.transition({animation:o.transition+" out",duration:n.get.duration(),queue:!0,complete:function(){n.remove.dimmed(),n.remove.active(),b()}})):(n.verbose("Hiding dimmer with javascript"),l.stop().fadeOut(n.get.duration(),function(){l.removeAttr("style"),n.remove.dimmed(),n.remove.active(),b()}))}},get:{dimmer:function(){return l},duration:function(){return"object"==typeof o.duration?n.is.active()?o.duration.hide:o.duration.show:o.duration}},has:{dimmer:function(){return w.children(p.dimmer).size()>0}},is:{active:function(){return l.hasClass(r.active)},animating:function(){return l.is(":animated")||l.hasClass(r.transition)},dimmer:function(){return w.is(p.dimmer)},dimmable:function(){return w.is(p.dimmable)},dimmed:function(){return m.hasClass(r.dimmed)},disabled:function(){return m.hasClass(r.disabled)},enabled:function(){return!n.is.disabled()},page:function(){return m.is("body")},pageDimmer:function(){return l.hasClass(r.pageDimmer)}},can:{show:function(){return!l.hasClass(r.disabled)}},set:{active:function(){n.set.dimmed(),l.removeClass(r.transition).addClass(r.active)},dimmable:function(){m.addClass(r.dimmable)},dimmed:function(){m.addClass(r.dimmed)},pageDimmer:function(){l.addClass(r.pageDimmer)},disabled:function(){l.addClass(r.disabled)}},remove:{active:function(){l.removeClass(r.transition).removeClass(r.active)},dimmed:function(){m.removeClass(r.dimmed)},disabled:function(){l.removeClass(r.disabled)}},show:function(b){b=a.isFunction(b)?b:function(){},n.debug("Showing dimmer",l,o),!n.is.active()&&n.is.enabled()?(n.animate.show(b),a.proxy(o.onShow,x)(),a.proxy(o.onChange,x)()):n.debug("Dimmer is already shown or disabled")},hide:function(b){b=a.isFunction(b)?b:function(){},n.is.active()||n.is.animating()?(n.debug("Hiding dimmer",l),n.animate.hide(b),a.proxy(o.onHide,x)(),a.proxy(o.onChange,x)()):n.debug("Dimmer is not visible")},toggle:function(){n.verbose("Toggling dimmer visibility",l),n.is.dimmed()?n.hide():n.show()},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,o,b);else{if(c===d)return o[b];o[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,n,b);else{if(c===d)return n[b];n[b]=c}},debug:function(){o.debug&&(o.performance?n.performance.log(arguments):(n.debug=Function.prototype.bind.call(console.info,console,o.name+":"),n.debug.apply(console,arguments)))},verbose:function(){o.verbose&&o.debug&&(o.performance?n.performance.log(arguments):(n.verbose=Function.prototype.bind.call(console.info,console,o.name+":"),n.verbose.apply(console,arguments)))},error:function(){n.error=Function.prototype.bind.call(console.error,console,o.name+":"),n.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;o.performance&&(b=(new Date).getTime(),d=g||b,c=b-d,g=b,h.push({Element:x,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(n.performance.timer),n.performance.timer=setTimeout(n.performance.display,100)},display:function(){var b=o.name+":",c=0;g=!1,clearTimeout(n.performance.timer),a.each(h,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",u&&(b+=" '"+u+"'"),f.size()>1&&(b+=" ("+f.size()+")"),(console.group!==d||console.table!==d)&&h.length>0&&(console.groupCollapsed(b),console.table?console.table(h):a.each(h,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),h=[]}},invoke:function(b,c,f){var g,h,i,j=y;return c=c||k,f=x||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,c):h!==d&&(i=h),a.isArray(e)?e.push(i):e!==d?e=[e,i]:i!==d&&(e=i),h}},n.preinitialize(),j?(y===d&&n.initialize(),n.invoke(i)):(y!==d&&n.destroy(),n.initialize())}),e!==d?e:this},a.fn.dimmer.settings={name:"Dimmer",namespace:"dimmer",debug:!1,verbose:!0,performance:!0,transition:"fade",useCSS:!0,on:!1,closable:!0,duration:{show:500,hide:500},onChange:function(){},onShow:function(){},onHide:function(){},error:{method:"The method you called is not defined."},selector:{dimmable:".ui.dimmable",dimmer:".ui.dimmer",content:".ui.dimmer > .content, .ui.dimmer > .content > .center"},template:{dimmer:function(){return a("
").attr("class","ui dimmer")}},className:{active:"active",dimmable:"ui dimmable",dimmed:"dimmed",disabled:"disabled",pageDimmer:"page",hide:"hide",show:"show",transition:"transition"}}}(jQuery,window,document),function(a,b,c,d){a.fn.dropdown=function(b){var e,f=a(this),g=a(c),h=f.selector||"",i="ontouchstart"in c.documentElement,j=(new Date).getTime(),k=[],l=arguments[0],m="string"==typeof l,n=[].slice.call(arguments,1);return f.each(function(){var c,o=a.isPlainObject(b)?a.extend(!0,{},a.fn.dropdown.settings,b):a.extend({},a.fn.dropdown.settings),p=o.className,q=o.metadata,r=o.namespace,s=o.selector,t=o.error,u="."+r,v="module-"+r,w=a(this),x=w.find(s.item),y=w.find(s.text),z=w.find(s.input),A=w.children(s.menu),B=this,C=w.data(v);c={initialize:function(){c.debug("Initializing dropdown",o),c.save.defaults(),c.set.selected(),i&&c.bind.touchEvents(),c.bind.mouseEvents(),c.instantiate()},instantiate:function(){c.verbose("Storing instance of dropdown",c),C=c,w.data(v,c)},destroy:function(){c.verbose("Destroying previous dropdown for",w),x.off(u),w.off(u).removeData(v)},bind:{touchEvents:function(){c.debug("Touch device detected binding touch events"),w.on("touchstart"+u,c.event.test.toggle),x.on("touchstart"+u,c.event.item.mouseenter).on("touchstart"+u,c.event.item.click)},mouseEvents:function(){c.verbose("Mouse detected binding mouse events"),"click"==o.on?w.on("click"+u,c.event.test.toggle):"hover"==o.on?w.on("mouseenter"+u,c.delay.show).on("mouseleave"+u,c.delay.hide):w.on(o.on+u,c.toggle),x.on("mouseenter"+u,c.event.item.mouseenter).on("mouseleave"+u,c.event.item.mouseleave).on("click"+u,c.event.item.click)},intent:function(){c.verbose("Binding hide intent event to document"),i&&g.on("touchstart"+u,c.event.test.touch).on("touchmove"+u,c.event.test.touch),g.on("click"+u,c.event.test.hide)}},unbind:{intent:function(){c.verbose("Removing hide intent event from document"),i&&g.off("touchstart"+u).off("touchmove"+u),g.off("click"+u)}},event:{test:{toggle:function(a){c.determine.intent(a,c.toggle)&&a.preventDefault()},touch:function(a){c.determine.intent(a,function(){"touchstart"==a.type?c.timer=setTimeout(c.hide,o.delay.touch):"touchmove"==a.type&&clearTimeout(c.timer)}),a.stopPropagation()},hide:function(a){c.determine.intent(a,c.hide)}},item:{mouseenter:function(b){var d=a(this).find(s.submenu),e=a(this).siblings(s.item).children(s.menu);(d.length>0||e.length>0)&&(clearTimeout(c.itemTimer),c.itemTimer=setTimeout(function(){e.length>0&&c.animate.hide(!1,e.filter(":visible")),d.length>0&&(c.verbose("Showing sub-menu",d),c.animate.show(!1,d))},2*o.delay.show),b.preventDefault(),b.stopPropagation())},mouseleave:function(){var b=a(this).find(s.menu);b.size()>0&&(clearTimeout(c.itemTimer),c.itemTimer=setTimeout(function(){c.verbose("Hiding sub-menu",b),c.animate.hide(!1,b)},o.delay.hide))},click:function(b){var e=a(this),f=e.data(q.text)!==d?e.data(q.text):e.text(),g=e.data(q.value)!==d?e.data(q.value):"string"==typeof f?f.toLowerCase():f,h=function(){c.determine.selectAction(f,g),a.proxy(o.onChange,B)(g,f)};0===e.find(s.menu).size()&&("touchstart"==b.type?e.one("click",h):h())}},resetStyle:function(){a(this).removeAttr("style")}},determine:{selectAction:function(b,d){c.verbose("Determining action",o.action),a.isFunction(c.action[o.action])?(c.verbose("Triggering preset action",o.action,b,d),c.action[o.action](b,d)):a.isFunction(o.action)?(c.verbose("Triggering user action",o.action,b,d),o.action(b,d)):c.error(t.action,o.action)},intent:function(b,d){return c.debug("Determining whether event occurred in dropdown",b.target),d=d||function(){},0===a(b.target).closest(A).size()?(c.verbose("Triggering event",d),d(),!0):(c.verbose("Event occurred in dropdown, canceling callback"),!1)}},action:{nothing:function(){},hide:function(){c.hide()},activate:function(a,b){b=b!==d?b:a,c.set.selected(b),c.set.value(b),c.hide()},auto:function(a,b){b=b!==d?b:a,c.set.selected(b),c.set.value(b),c.hide()},changeText:function(a,b){b=b!==d?b:a,c.set.selected(b),c.hide()},updateForm:function(a,b){b=b!==d?b:a,c.set.selected(b),c.set.value(b),c.hide()}},get:{text:function(){return y.text()},value:function(){return z.size()>0?z.val():w.data(q.value)},item:function(b,e){var f=!1;return b=b!==d?b:c.get.value()!==d?c.get.value():c.get.text(),e===d&&""===b?(c.debug("Ambiguous dropdown value using strict type check",b),e=!0):e=e||!1,b!==d?x.each(function(){var c=a(this),g=c.data(q.text)!==d?c.data(q.text):c.text(),h=c.data(q.value)!==d?c.data(q.value):"string"==typeof g?g.toLowerCase():g;e?h===b?f=a(this):f||g!==b||(f=a(this)):h==b?f=a(this):f||g!=b||(f=a(this))}):b=c.get.text(),f||!1}},restore:{defaults:function(){c.restore.defaultText(),c.restore.defaultValue()},defaultText:function(){var a=w.data(q.defaultText);c.debug("Restoring default text",a),c.set.text(a)},defaultValue:function(){var a=w.data(q.defaultValue);a!==d&&(c.debug("Restoring default value",a),c.set.selected(a),c.set.value(a))}},save:{defaults:function(){c.save.defaultText(),c.save.defaultValue()},defaultValue:function(){w.data(q.defaultValue,c.get.value())},defaultText:function(){w.data(q.defaultText,y.text())}},set:{text:function(a){c.debug("Changing text",a,y),y.removeClass(p.placeholder),y.text(a)},value:function(a){c.debug("Adding selected value to hidden input",a,z),z.size()>0?z.val(a).trigger("change"):w.data(q.value,a)},active:function(){w.addClass(p.active)},visible:function(){w.addClass(p.visible)},selected:function(a){var b,e=c.get.item(a);e&&(c.debug("Setting selected menu item to",e),b=e.data(q.text)!==d?e.data(q.text):e.text(),x.removeClass(p.active),e.addClass(p.active),c.set.text(b))}},remove:{active:function(){w.removeClass(p.active)},visible:function(){w.removeClass(p.visible)}},is:{selection:function(){return w.hasClass(p.selection)},animated:function(a){return a?a.is(":animated")||a.transition("is animating"):A.is(":animated")||A.transition("is animating")},visible:function(a){return a?a.is(":visible"):A.is(":visible")},hidden:function(a){return a?a.is(":not(:visible)"):A.is(":not(:visible)")}},can:{click:function(){return i||"click"==o.on},show:function(){return!w.hasClass(p.disabled)}},animate:{show:function(b,e){var f=e||A;b=b||function(){},c.is.hidden(f)&&(c.verbose("Doing menu show animation",f),"none"==o.transition?b():a.fn.transition!==d&&w.transition("is supported")?f.transition({animation:o.transition+" in",duration:o.duration,complete:b,queue:!1}):"slide down"==o.transition?f.hide().clearQueue().children().clearQueue().css("opacity",0).delay(50).animate({opacity:1},o.duration,"easeOutQuad",c.event.resetStyle).end().slideDown(100,"easeOutQuad",function(){a.proxy(c.event.resetStyle,this)(),b()}):"fade"==o.transition?f.hide().clearQueue().fadeIn(o.duration,function(){a.proxy(c.event.resetStyle,this)(),b()}):c.error(t.transition,o.transition))},hide:function(b,e){var f=e||A;b=b||function(){},c.is.visible(f)&&(c.verbose("Doing menu hide animation",f),a.fn.transition!==d&&w.transition("is supported")?f.transition({animation:o.transition+" out",duration:o.duration,complete:b,queue:!1}):"none"==o.transition?b():"slide down"==o.transition?f.show().clearQueue().children().clearQueue().css("opacity",1).animate({opacity:0},100,"easeOutQuad",c.event.resetStyle).end().delay(50).slideUp(100,"easeOutQuad",function(){a.proxy(c.event.resetStyle,this)(),b()}):"fade"==o.transition?f.show().clearQueue().fadeOut(150,function(){a.proxy(c.event.resetStyle,this)(),b()}):c.error(t.transition))}},show:function(){c.debug("Checking if dropdown can show"),c.is.hidden()&&(c.hideOthers(),c.set.active(),c.animate.show(function(){c.can.click()&&c.bind.intent(),c.set.visible()}),a.proxy(o.onShow,B)())},hide:function(){!c.is.animated()&&c.is.visible()&&(c.debug("Hiding dropdown"),c.can.click()&&c.unbind.intent(),c.remove.active(),c.animate.hide(c.remove.visible),a.proxy(o.onHide,B)())},delay:{show:function(){c.verbose("Delaying show event to ensure user intent"),clearTimeout(c.timer),c.timer=setTimeout(c.show,o.delay.show)},hide:function(){c.verbose("Delaying hide event to ensure user intent"),clearTimeout(c.timer),c.timer=setTimeout(c.hide,o.delay.hide)}},hideOthers:function(){c.verbose("Finding other dropdowns to hide"),f.not(w).has(s.menu+":visible").dropdown("hide")},toggle:function(){c.verbose("Toggling menu visibility"),c.is.hidden()?c.show():c.hide()},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,o,b);else{if(c===d)return o[b];o[b]=c}},internal:function(b,e){if(a.isPlainObject(b))a.extend(!0,c,b);else{if(e===d)return c[b];c[b]=e}},debug:function(){o.debug&&(o.performance?c.performance.log(arguments):(c.debug=Function.prototype.bind.call(console.info,console,o.name+":"),c.debug.apply(console,arguments)))},verbose:function(){o.verbose&&o.debug&&(o.performance?c.performance.log(arguments):(c.verbose=Function.prototype.bind.call(console.info,console,o.name+":"),c.verbose.apply(console,arguments)))},error:function(){c.error=Function.prototype.bind.call(console.error,console,o.name+":"),c.error.apply(console,arguments)},performance:{log:function(a){var b,d,e;o.performance&&(b=(new Date).getTime(),e=j||b,d=b-e,j=b,k.push({Element:B,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":d})),clearTimeout(c.performance.timer),c.performance.timer=setTimeout(c.performance.display,100)},display:function(){var b=o.name+":",e=0;j=!1,clearTimeout(c.performance.timer),a.each(k,function(a,b){e+=b["Execution Time"]}),b+=" "+e+"ms",h&&(b+=" '"+h+"'"),(console.group!==d||console.table!==d)&&k.length>0&&(console.groupCollapsed(b),console.table?console.table(k):a.each(k,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),k=[]}},invoke:function(b,f,g){var h,i,j,k=C;return f=f||n,g=B||g,"string"==typeof b&&k!==d&&(b=b.split(/[\. ]/),h=b.length-1,a.each(b,function(e,f){var g=e!=h?f+b[e+1].charAt(0).toUpperCase()+b[e+1].slice(1):b;if(a.isPlainObject(k[g])&&e!=h)k=k[g];else{if(k[g]!==d)return i=k[g],!1;if(!a.isPlainObject(k[f])||e==h)return k[f]!==d?(i=k[f],!1):(c.error(t.method,b),!1);k=k[f]}})),a.isFunction(i)?j=i.apply(g,f):i!==d&&(j=i),a.isArray(e)?e.push(j):e!==d?e=[e,j]:j!==d&&(e=j),i}},m?(C===d&&c.initialize(),c.invoke(l)):(C!==d&&c.destroy(),c.initialize())}),e!==d?e:this},a.fn.dropdown.settings={name:"Dropdown",namespace:"dropdown",debug:!1,verbose:!0,performance:!0,on:"click",action:"activate",delay:{show:200,hide:300,touch:50},transition:"slide down",duration:250,onChange:function(){},onShow:function(){},onHide:function(){},error:{action:"You called a dropdown action that was not defined",method:"The method you called is not defined.",transition:"The requested transition was not found"},metadata:{defaultText:"defaultText",defaultValue:"defaultValue",text:"text",value:"value"},selector:{menu:".menu",submenu:"> .menu",item:".menu > .item",text:"> .text",input:'> input[type="hidden"]'},className:{active:"active",placeholder:"default",disabled:"disabled",visible:"visible",selection:"selection"}},a.extend(a.easing,{easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c}})}(jQuery,window,document),function(a,b,c,d){a.fn.modal=function(e){var f,g=a(this),h=a(b),i=a(c),j=a("body"),k=(new Date).getTime(),l=[],m=arguments[0],n="string"==typeof m,o=[].slice.call(arguments,1),p=b.requestAnimationFrame||b.mozRequestAnimationFrame||b.webkitRequestAnimationFrame||b.msRequestAnimationFrame||function(a){setTimeout(a,0)};return g.each(function(){var q,r,s,t,u,v,w=a.isPlainObject(e)?a.extend(!0,{},a.fn.modal.settings,e):a.extend({},a.fn.modal.settings),x=w.selector,y=w.className,z=w.namespace,A=w.error,B="."+z,C="module-"+z,D=g.selector||"",E=a(this),F=a(w.context),G=E.find(x.close),H=this,I=E.data(C);v={initialize:function(){return v.verbose("Initializing dimmer",F),a.fn.dimmer===d?void v.error(A.dimmer):(t=F.dimmer({closable:!1,useCSS:!0,duration:{show:.9*w.duration,hide:1.1*w.duration}}),w.detachable&&t.dimmer("add content",E),u=t.dimmer("get dimmer"),r=E.siblings(x.modal),q=r.add(E),v.verbose("Attaching close events",G),G.on("click"+B,v.event.close),h.on("resize"+B,v.event.resize),void v.instantiate())},instantiate:function(){v.verbose("Storing instance of modal"),I=v,E.data(C,I)},destroy:function(){v.verbose("Destroying previous modal"),E.removeData(C).off(B),G.off(B),F.dimmer("destroy")},refresh:function(){v.remove.scrolling(),v.cacheSizes(),v.set.screenHeight(),v.set.type(),v.set.position()},attachEvents:function(b,c){var d=a(b);c=a.isFunction(v[c])?v[c]:v.toggle,d.size()>0?(v.debug("Attaching modal events to element",b,c),d.off(B).on("click"+B,c)):v.error(A.notFound)},event:{close:function(){v.verbose("Closing element pressed"),a(this).is(x.approve)?a.proxy(w.onApprove,H)()!==!1?v.hide():v.verbose("Approve callback returned false cancelling hide"):a(this).is(x.deny)?a.proxy(w.onDeny,H)()!==!1?v.hide():v.verbose("Deny callback returned false cancelling hide"):v.hide()},click:function(b){0===a(b.target).closest(x.modal).size()&&(v.debug("Dimmer clicked, hiding all modals"),w.allowMultiple?v.hide():v.hideAll(),b.stopImmediatePropagation())},debounce:function(a,b){clearTimeout(v.timer),v.timer=setTimeout(a,b)},keyboard:function(a){var b=a.which,c=27;b==c&&(w.closable?(v.debug("Escape key pressed hiding modal"),v.hide()):v.debug("Escape key pressed, but closable is set to false"),a.preventDefault())},resize:function(){t.dimmer("is active")&&p(v.refresh)}},toggle:function(){v.is.active()?v.hide():v.show()},show:function(b){b=a.isFunction(b)?b:function(){},v.showDimmer(),v.showModal(b)},showModal:function(b){b=a.isFunction(b)?b:function(){},v.is.active()?v.debug("Modal is already visible"):(v.cacheSizes(),v.set.position(),v.set.screenHeight(),v.set.type(),r.filter(":visible").size()>0&&!w.allowMultiple?(v.debug("Other modals visible, queueing show animation"),v.hideOthers(v.showModal)):(a.proxy(w.onShow,H)(),w.transition&&a.fn.transition!==d&&E.transition("is supported")?(v.debug("Showing modal with css animations"),E.transition(w.transition+" in",w.duration,function(){a.proxy(w.onVisible,H)(),v.set.active(),b()})):(v.debug("Showing modal with javascript"),E.fadeIn(w.duration,w.easing,function(){a.proxy(w.onVisible,H)(),v.set.active(),b()}))))},showDimmer:function(){t.dimmer("is active")?v.debug("Dimmer already visible"):(v.debug("Showing dimmer"),t.dimmer("show"))},hide:function(b){b=a.isFunction(b)?b:function(){},q.filter(":visible").size()<=1&&v.hideDimmer(),v.hideModal(b)},hideDimmer:function(){return v.is.active()?(v.debug("Hiding dimmer"),w.closable&&u.off("click"+B),void t.dimmer("hide",function(){w.transition&&a.fn.transition!==d&&E.transition("is supported")&&(E.transition("reset"),v.remove.screenHeight()),v.remove.active()
+})):void v.debug("Dimmer is not visible cannot hide")},hideModal:function(b){return b=a.isFunction(b)?b:function(){},v.is.active()?(v.debug("Hiding modal"),v.remove.keyboardShortcuts(),a.proxy(w.onHide,H)(),void(w.transition&&a.fn.transition!==d&&E.transition("is supported")?E.transition(w.transition+" out",w.duration,function(){a.proxy(w.onHidden,H)(),v.remove.active(),v.restore.focus(),b()}):E.fadeOut(w.duration,w.easing,function(){a.proxy(w.onHidden,H)(),v.remove.active(),v.restore.focus(),b()}))):void v.debug("Cannot hide modal it is not active")},hideAll:function(b){b=a.isFunction(b)?b:function(){},q.is(":visible")&&(v.debug("Hiding all visible modals"),v.hideDimmer(),q.filter(":visible").modal("hide modal",b))},hideOthers:function(b){b=a.isFunction(b)?b:function(){},r.is(":visible")&&(v.debug("Hiding other modals"),r.filter(":visible").modal("hide modal",b))},add:{keyboardShortcuts:function(){v.verbose("Adding keyboard shortcuts"),i.on("keyup"+B,v.event.keyboard)}},save:{focus:function(){s=a(c.activeElement).blur()}},restore:{focus:function(){s&&s.size()>0&&s.focus()}},remove:{active:function(){E.removeClass(y.active)},screenHeight:function(){v.cache.height>v.cache.pageHeight&&(v.debug("Removing page height"),j.css("height",""))},keyboardShortcuts:function(){v.verbose("Removing keyboard shortcuts"),i.off("keyup"+B)},scrolling:function(){t.removeClass(y.scrolling),E.removeClass(y.scrolling)}},cacheSizes:function(){v.cache={pageHeight:j.outerHeight(),height:E.outerHeight()+w.offset,contextHeight:"body"==w.context?a(b).height():t.height()},v.debug("Caching modal and container sizes",v.cache)},can:{fit:function(){return v.cache.height
v.cache.pageHeight&&(v.debug("Modal is taller than page content, resizing page height"),j.css("height",v.cache.height+w.padding))},active:function(){v.add.keyboardShortcuts(),v.save.focus(),E.addClass(y.active),w.closable&&u.off("click"+B).on("click"+B,v.event.click)},scrolling:function(){t.addClass(y.scrolling),E.addClass(y.scrolling)},type:function(){v.can.fit()?(v.verbose("Modal fits on screen"),v.remove.scrolling()):(v.verbose("Modal cannot fit on screen setting to scrolling"),v.set.scrolling())},position:function(){v.verbose("Centering modal on page",v.cache),E.css(v.can.fit()?{top:"",marginTop:-(v.cache.height/2)}:{marginTop:"1em",top:i.scrollTop()})}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,w,b);else{if(c===d)return w[b];w[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,v,b);else{if(c===d)return v[b];v[b]=c}},debug:function(){w.debug&&(w.performance?v.performance.log(arguments):(v.debug=Function.prototype.bind.call(console.info,console,w.name+":"),v.debug.apply(console,arguments)))},verbose:function(){w.verbose&&w.debug&&(w.performance?v.performance.log(arguments):(v.verbose=Function.prototype.bind.call(console.info,console,w.name+":"),v.verbose.apply(console,arguments)))},error:function(){v.error=Function.prototype.bind.call(console.error,console,w.name+":"),v.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;w.performance&&(b=(new Date).getTime(),d=k||b,c=b-d,k=b,l.push({Element:H,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(v.performance.timer),v.performance.timer=setTimeout(v.performance.display,100)},display:function(){var b=w.name+":",c=0;k=!1,clearTimeout(v.performance.timer),a.each(l,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",D&&(b+=" '"+D+"'"),(console.group!==d||console.table!==d)&&l.length>0&&(console.groupCollapsed(b),console.table?console.table(l):a.each(l,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),l=[]}},invoke:function(b,c,e){var g,h,i,j=I;return c=c||o,e=H||e,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(e,c):h!==d&&(i=h),a.isArray(f)?f.push(i):f!==d?f=[f,i]:i!==d&&(f=i),h}},n?(I===d&&v.initialize(),v.invoke(m)):(I!==d&&v.destroy(),v.initialize())}),f!==d?f:this},a.fn.modal.settings={name:"Modal",namespace:"modal",debug:!1,verbose:!0,performance:!0,allowMultiple:!0,detachable:!0,closable:!0,context:"body",duration:500,easing:"easeOutExpo",offset:0,transition:"scale",padding:30,onShow:function(){},onHide:function(){},onVisible:function(){},onHidden:function(){},onApprove:function(){return!0},onDeny:function(){return!0},selector:{close:".close, .actions .button",approve:".actions .positive, .actions .approve, .actions .ok",deny:".actions .negative, .actions .deny, .actions .cancel",modal:".ui.modal"},error:{dimmer:"UI Dimmer, a required component is not included in this page",method:"The method you called is not defined."},className:{active:"active",scrolling:"scrolling"}}}(jQuery,window,document),function(a,b,c,d){a.fn.nag=function(c){var e,f=a(this),g=f.selector||"",h=(new Date).getTime(),i=[],j=arguments[0],k="string"==typeof j,l=[].slice.call(arguments,1);return a(this).each(function(){var m,n,o,p,q,r,s,t,u,v=a.extend(!0,{},a.fn.nag.settings,c),w=v.className,x=v.selector,y=v.error,z=v.namespace,A="."+z,B=z+"-module",C=a(this),D=C.find(x.close),E=a(v.context),F=this,G=C.data(B),H=b.requestAnimationFrame||b.mozRequestAnimationFrame||b.webkitRequestAnimationFrame||b.msRequestAnimationFrame||function(a){setTimeout(a,0)};u={initialize:function(){u.verbose("Initializing element"),m=C.offset(),n=C.outerHeight(),o=E.outerWidth(),p=E.outerHeight(),q=E.offset(),C.data(B,u),D.on("click"+A,u.dismiss),v.context==b&&"fixed"==v.position&&C.addClass(w.fixed),v.sticky&&(u.verbose("Adding scroll events"),"absolute"==v.position?E.on("scroll"+A,u.event.scroll).on("resize"+A,u.event.scroll):a(b).on("scroll"+A,u.event.scroll).on("resize"+A,u.event.scroll),a.proxy(u.event.scroll,this)()),v.displayTime>0&&setTimeout(u.hide,v.displayTime),u.should.show()?C.is(":visible")||u.show():u.hide()},destroy:function(){u.verbose("Destroying instance"),C.removeData(B).off(A),v.sticky&&E.off(A)},refresh:function(){u.debug("Refreshing cached calculations"),m=C.offset(),n=C.outerHeight(),o=E.outerWidth(),p=E.outerHeight(),q=E.offset()},show:function(){u.debug("Showing nag",v.animation.show),"fade"==v.animation.show?C.fadeIn(v.duration,v.easing):C.slideDown(v.duration,v.easing)},hide:function(){u.debug("Showing nag",v.animation.hide),"fade"==v.animation.show?C.fadeIn(v.duration,v.easing):C.slideUp(v.duration,v.easing)},onHide:function(){u.debug("Removing nag",v.animation.hide),C.remove(),v.onHide&&v.onHide()},stick:function(){if(u.refresh(),"fixed"==v.position){var c=a(b).prop("pageYOffset")||a(b).scrollTop(),d=C.hasClass(w.bottom)?q.top+(p-n)-c:q.top-c;C.css({position:"fixed",top:d,left:q.left,width:o-v.scrollBarWidth})}else C.css({top:s})},unStick:function(){C.css({top:""})},dismiss:function(a){v.storageMethod&&u.storage.set(v.storedKey,v.storedValue),u.hide(),a.stopImmediatePropagation(),a.preventDefault()},should:{show:function(){return v.persist?(u.debug("Persistent nag is set, can show nag"),!0):u.storage.get(v.storedKey)!=v.storedValue?(u.debug("Stored value is not set, can show nag",u.storage.get(v.storedKey)),!0):(u.debug("Stored value is set, cannot show nag",u.storage.get(v.storedKey)),!1)},stick:function(){return r=E.prop("pageYOffset")||E.scrollTop(),s=C.hasClass(w.bottom)?p-C.outerHeight()+r:r,s>m.top?!0:"fixed"==v.position?!0:!1}},storage:{set:function(c,e){u.debug("Setting stored value",c,e,v.storageMethod),"local"==v.storageMethod&&b.store!==d?b.store.set(c,e):a.cookie!==d?a.cookie(c,e):u.error(y.noStorage)},get:function(c){return u.debug("Getting stored value",c,v.storageMethod),"local"==v.storageMethod&&b.store!==d?b.store.get(c):a.cookie!==d?a.cookie(c):void u.error(y.noStorage)}},event:{scroll:function(){t!==d&&clearTimeout(t),t=setTimeout(function(){u.should.stick()?H(u.stick):u.unStick()},v.lag)}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,v,b);else{if(c===d)return v[b];v[b]=c}},internal:function(b,c){return u.debug("Changing internal",b,c),c===d?u[b]:void(a.isPlainObject(b)?a.extend(!0,u,b):u[b]=c)},debug:function(){v.debug&&(v.performance?u.performance.log(arguments):(u.debug=Function.prototype.bind.call(console.info,console,v.name+":"),u.debug.apply(console,arguments)))},verbose:function(){v.verbose&&v.debug&&(v.performance?u.performance.log(arguments):(u.verbose=Function.prototype.bind.call(console.info,console,v.name+":"),u.verbose.apply(console,arguments)))},error:function(){u.error=Function.prototype.bind.call(console.error,console,v.name+":"),u.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;v.performance&&(b=(new Date).getTime(),d=h||b,c=b-d,h=b,i.push({Element:F,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(u.performance.timer),u.performance.timer=setTimeout(u.performance.display,100)},display:function(){var b=v.name+":",c=0;h=!1,clearTimeout(u.performance.timer),a.each(i,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",g&&(b+=" '"+g+"'"),f.size()>1&&(b+=" ("+f.size()+")"),(console.group!==d||console.table!==d)&&i.length>0&&(console.groupCollapsed(b),console.table?console.table(i):a.each(i,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),i=[]}},invoke:function(b,c,f){var g,h,i,j=G;return c=c||l,f=F||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,c):h!==d&&(i=h),a.isArray(e)?e.push(i):e!==d?e=[e,i]:i!==d&&(e=i),h}},k?(G===d&&u.initialize(),u.invoke(j)):(G!==d&&u.destroy(),u.initialize())}),e!==d?e:this},a.fn.nag.settings={name:"Nag",debug:!1,verbose:!0,performance:!0,namespace:"Nag",persist:!1,displayTime:0,animation:{show:"slide",hide:"slide"},position:"fixed",scrollBarWidth:18,storageMethod:"cookie",storedKey:"nag",storedValue:"dismiss",sticky:!1,lag:0,context:b,error:{noStorage:"Neither $.cookie or store is defined. A storage solution is required for storing state",method:"The method you called is not defined."},className:{bottom:"bottom",fixed:"fixed"},selector:{close:".icon.close"},speed:500,easing:"easeOutQuad",onHide:function(){}}}(jQuery,window,document),function(a,b,c,d){a.fn.popup=function(e){var f,g=a(this),h=a(c),i=g.selector||"",j=(new Date).getTime(),k=[],l=arguments[0],m="string"==typeof l,n=[].slice.call(arguments,1);return g.each(function(){var c,g=a.isPlainObject(e)?a.extend(!0,{},a.fn.popup.settings,e):a.extend({},a.fn.popup.settings),o=g.selector,p=g.className,q=g.error,r=g.metadata,s=g.namespace,t="."+g.namespace,u="module-"+s,v=a(this),w=a(g.context),x=g.target?a(g.target):v,y=a(b),z=g.inline?x.offsetParent():y,A=g.inline?x.next(g.selector.popup):y.children(g.selector.popup).last(),B=0,C=this,D=v.data(u);c={initialize:function(){c.debug("Initializing module",v),"click"==g.on?v.on("click",c.toggle):v.on(c.get.startEvent()+t,c.event.start).on(c.get.endEvent()+t,c.event.end),g.target&&c.debug("Target set to element",x),y.on("resize"+t,c.event.resize),c.instantiate()},instantiate:function(){c.verbose("Storing instance of module",c),D=c,v.data(u,D)},refresh:function(){g.inline?(A=x.next(o.popup),z=x.offsetParent()):A=y.children(o.popup).last()},destroy:function(){c.debug("Destroying previous module"),y.off(t),A.remove(),v.off(t).removeData(u)},event:{start:function(){c.timer=setTimeout(function(){c.is.hidden()&&c.show()},g.delay)},end:function(){clearTimeout(c.timer),c.is.visible()&&c.hide()},resize:function(){c.is.visible()&&c.set.position()}},create:function(){c.debug("Creating pop-up html");var b=v.data(r.html)||g.html,d=v.data(r.variation)||g.variation,e=v.data(r.title)||g.title,f=v.data(r.content)||v.attr("title")||g.content;b||f||e?(b||(b=g.template({title:e,content:f})),A=a("
").addClass(p.popup).addClass(d).html(b),g.inline?(c.verbose("Inserting popup element inline",A),A.data(u,D).insertAfter(v)):(c.verbose("Appending popup element to body",A),A.data(u,D).appendTo(w)),a.proxy(g.onCreate,A)()):c.error(q.content)},toggle:function(){c.debug("Toggling pop-up"),c.is.hidden()?(c.debug("Popup is hidden, showing pop-up"),c.unbind.close(),c.hideAll(),c.show()):(c.debug("Popup is visible, hiding pop-up"),c.hide())},show:function(a){a=a||function(){},c.debug("Showing pop-up",g.transition),g.preserve||c.refresh(),c.exists()||c.create(),c.save.conditions(),c.set.position(),c.animate.show(a)},hide:function(a){a=a||function(){},v.removeClass(p.visible),c.restore.conditions(),c.unbind.close(),c.is.visible()&&c.animate.hide(a)},hideAll:function(){a(o.popup).filter(":visible").popup("hide")},hideGracefully:function(b){b&&0===a(b.target).closest(o.popup).size()?(c.debug("Click occurred outside popup hiding popup"),c.hide()):c.debug("Click was inside popup, keeping popup open")},exists:function(){return g.inline?0!==A.size():A.parent(w).size()},remove:function(){c.debug("Removing popup"),A.remove()},save:{conditions:function(){c.cache={title:v.attr("title")},c.cache.title&&v.removeAttr("title"),c.verbose("Saving original attributes",c.cache.title)}},restore:{conditions:function(){return c.cache&&c.cache.title&&(v.attr("title",c.cache.title),c.verbose("Restoring original attributes",c.cache.title)),!0}},animate:{show:function(b){b=b||function(){},v.addClass(p.visible),g.transition&&a.fn.transition!==d&&v.transition("is supported")?A.transition(g.transition+" in",g.duration,function(){c.bind.close(),a.proxy(b,C)()}):A.stop().fadeIn(g.duration,g.easing,function(){c.bind.close(),a.proxy(b,C)()}),a.proxy(g.onShow,C)()},hide:function(b){b=b||function(){},c.debug("Hiding pop-up"),g.transition&&a.fn.transition!==d&&v.transition("is supported")?A.transition(g.transition+" out",g.duration,function(){c.reset(),b()}):A.stop().fadeOut(g.duration,g.easing,function(){c.reset(),b()}),a.proxy(g.onHide,C)()}},get:{startEvent:function(){return"hover"==g.on?"mouseenter":"focus"==g.on?"focus":void 0},endEvent:function(){return"hover"==g.on?"mouseleave":"focus"==g.on?"blur":void 0},offstagePosition:function(){var d={top:a(b).scrollTop(),bottom:a(b).scrollTop()+a(b).height(),left:0,right:a(b).width()},e={width:A.width(),height:A.outerHeight(),position:A.offset()},f={},g=[];return e.position&&(f={top:e.position.topd.bottom,right:e.position.left+e.width>d.right,left:e.position.left0?g.join(" "):!1},nextPosition:function(a){switch(a){case"top left":a="bottom left";break;case"bottom left":a="top right";break;case"top right":a="bottom right";break;case"bottom right":a="top center";break;case"top center":a="bottom center";break;case"bottom center":a="right center";break;case"right center":a="left center";break;case"left center":a="top center"}return a}},set:{position:function(d,e){var f,h,i=(a(b).width(),a(b).height(),x.outerWidth()),j=x.outerHeight(),k=A.width(),l=A.outerHeight(),m=z.outerWidth(),n=z.outerHeight(),o=g.distanceAway,s=g.inline?x.position():x.offset();switch(d=d||v.data(r.position)||g.position,e=e||v.data(r.offset)||g.offset,g.inline&&("left center"==d||"right center"==d?(e+=parseInt(b.getComputedStyle(C).getPropertyValue("margin-top"),10),o+=-parseInt(b.getComputedStyle(C).getPropertyValue("margin-left"),10)):(e+=parseInt(b.getComputedStyle(C).getPropertyValue("margin-left"),10),o+=parseInt(b.getComputedStyle(C).getPropertyValue("margin-top"),10))),c.debug("Calculating offset for position",d),d){case"top left":f={bottom:n-s.top+o,right:m-s.left-e,top:"auto",left:"auto"};break;case"top center":f={bottom:n-s.top+o,left:s.left+i/2-k/2+e,top:"auto",right:"auto"};break;case"top right":f={top:"auto",bottom:n-s.top+o,left:s.left+i+e,right:"auto"};break;case"left center":f={top:s.top+j/2-l/2+e,right:m-s.left+o,left:"auto",bottom:"auto"};break;case"right center":f={top:s.top+j/2-l/2+e,left:s.left+i+o,bottom:"auto",right:"auto"};break;case"bottom left":f={top:s.top+j+o,right:m-s.left-e,left:"auto",bottom:"auto"};break;case"bottom center":f={top:s.top+j+o,left:s.left+i/2-k/2+e,bottom:"auto",right:"auto"};break;case"bottom right":f={top:s.top+j+o,left:s.left+i+e,bottom:"auto",right:"auto"}}return A.css(f).removeClass(p.position).addClass(d).addClass(p.loading),h=c.get.offstagePosition(),h?(c.debug("Element is outside boundaries",h),B0&&(console.groupCollapsed(b),console.table?console.table(k):a.each(k,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),k=[]}},invoke:function(b,c,e){var g,h,i,j=D;return c=c||n,e=C||e,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(e,c):h!==d&&(i=h),a.isArray(f)?f.push(i):f!==d?f=[f,i]:i!==d&&(f=i),h}},m?(D===d&&c.initialize(),c.invoke(l)):(D!==d&&c.destroy(),c.initialize())}),f!==d?f:this},a.fn.popup.settings={name:"Popup",debug:!1,verbose:!0,performance:!0,namespace:"popup",onCreate:function(){},onShow:function(){},onHide:function(){},variation:"",content:!1,html:!1,title:!1,on:"hover",target:!1,closable:!0,context:"body",position:"top center",delay:150,inline:!1,preserve:!1,duration:250,easing:"easeOutQuint",transition:"scale",distanceAway:0,offset:0,maxSearchDepth:10,error:{content:"Your popup has no content specified",method:"The method you called is not defined.",recursion:"Popup attempted to reposition element to fit, but could not find an adequate position."},metadata:{content:"content",html:"html",offset:"offset",position:"position",title:"title",variation:"variation"},className:{animating:"animating",loading:"loading",popup:"ui popup",position:"top left center bottom right",visible:"visible"},selector:{popup:".ui.popup"},template:function(a){var b="";return typeof a!==d&&(typeof a.title!==d&&a.title&&(b+=''),typeof a.content!==d&&a.content&&(b+=''+a.content+"
")),b}}}(jQuery,window,document),function(a,b,c,d){a.fn.rating=function(b){var c,e=a(this),f=e.selector||"",g=(new Date).getTime(),h=[],i=arguments[0],j="string"==typeof i,k=[].slice.call(arguments,1);return e.each(function(){var l,m=a.isPlainObject(b)?a.extend(!0,{},a.fn.rating.settings,b):a.extend({},a.fn.rating.settings),n=m.namespace,o=m.className,p=m.metadata,q=m.selector,r=(m.error,"."+n),s="module-"+n,t=this,u=a(this).data(s),v=a(this),w=v.find(q.icon);l={initialize:function(){l.verbose("Initializing rating module",m),m.interactive?l.enable():l.disable(),m.initialRating&&(l.debug("Setting initial rating"),l.setRating(m.initialRating)),v.data(p.rating)&&(l.debug("Rating found in metadata"),l.setRating(v.data(p.rating))),l.instantiate()},instantiate:function(){l.verbose("Instantiating module",m),u=l,v.data(s,l)},destroy:function(){l.verbose("Destroying previous instance",u),v.removeData(s),w.off(r)},event:{mouseenter:function(){var b=a(this);b.nextAll().removeClass(o.hover),v.addClass(o.hover),b.addClass(o.hover).prevAll().addClass(o.hover)},mouseleave:function(){v.removeClass(o.hover),w.removeClass(o.hover)},click:function(){var b=a(this),c=l.getRating(),d=w.index(b)+1;m.clearable&&c==d?l.clearRating():l.setRating(d)}},clearRating:function(){l.debug("Clearing current rating"),l.setRating(0)},getRating:function(){var a=w.filter("."+o.active).size();return l.verbose("Current rating retrieved",a),a},enable:function(){l.debug("Setting rating to interactive mode"),w.on("mouseenter"+r,l.event.mouseenter).on("mouseleave"+r,l.event.mouseleave).on("click"+r,l.event.click),v.removeClass(o.disabled)},disable:function(){l.debug("Setting rating to read-only mode"),w.off(r),v.addClass(o.disabled)},setRating:function(b){var c=b-1>=0?b-1:0,d=w.eq(c);v.removeClass(o.hover),w.removeClass(o.hover).removeClass(o.active),b>0&&(l.verbose("Setting current rating to",b),d.addClass(o.active).prevAll().addClass(o.active)),a.proxy(m.onRate,t)(b)},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,m,b);else{if(c===d)return m[b];m[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,l,b);else{if(c===d)return l[b];l[b]=c}},debug:function(){m.debug&&(m.performance?l.performance.log(arguments):(l.debug=Function.prototype.bind.call(console.info,console,m.name+":"),l.debug.apply(console,arguments)))},verbose:function(){m.verbose&&m.debug&&(m.performance?l.performance.log(arguments):(l.verbose=Function.prototype.bind.call(console.info,console,m.name+":"),l.verbose.apply(console,arguments)))},error:function(){l.error=Function.prototype.bind.call(console.error,console,m.name+":"),l.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;m.performance&&(b=(new Date).getTime(),d=g||b,c=b-d,g=b,h.push({Element:t,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(l.performance.timer),l.performance.timer=setTimeout(l.performance.display,100)},display:function(){var b=m.name+":",c=0;g=!1,clearTimeout(l.performance.timer),a.each(h,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",f&&(b+=" '"+f+"'"),e.size()>1&&(b+=" ("+e.size()+")"),(console.group!==d||console.table!==d)&&h.length>0&&(console.groupCollapsed(b),console.table?console.table(h):a.each(h,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),h=[]}},invoke:function(b,e,f){var g,h,i,j=u;return e=e||k,f=t||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,e):h!==d&&(i=h),a.isArray(c)?c.push(i):c!==d?c=[c,i]:i!==d&&(c=i),h}},j?(u===d&&l.initialize(),l.invoke(i)):(u!==d&&l.destroy(),l.initialize())}),c!==d?c:this},a.fn.rating.settings={name:"Rating",namespace:"rating",verbose:!0,debug:!1,performance:!0,initialRating:0,interactive:!0,clearable:!1,onRate:function(){},error:{method:"The method you called is not defined"},metadata:{rating:"rating"},className:{active:"active",disabled:"disabled",hover:"hover",loading:"loading"},selector:{icon:".icon"}}}(jQuery,window,document),function(a,b,c,d){a.fn.search=function(c,e){var f,g=a(this),h=g.selector||"",i=(new Date).getTime(),j=[],k=arguments[0],l="string"==typeof k,m=[].slice.call(arguments,1);return a(this).each(function(){var n,o=a.extend(!0,{},a.fn.search.settings,e),p=o.className,q=o.selector,r=o.error,s=o.namespace,t="."+s,u=s+"-module",v=a(this),w=v.find(q.prompt),x=v.find(q.searchButton),y=v.find(q.results),z=(v.find(q.result),v.find(q.category),this),A=v.data(u);n={initialize:function(){n.verbose("Initializing module");var a=w[0],b=a.oninput!==d?"input":a.onpropertychange!==d?"propertychange":"keyup";w.on("focus"+t,n.event.focus).on("blur"+t,n.event.blur).on("keydown"+t,n.handleKeyboard),o.automatic&&w.on(b+t,n.search.throttle),x.on("click"+t,n.search.query),y.on("click"+t,q.result,n.results.select),n.instantiate()},instantiate:function(){n.verbose("Storing instance of module",n),A=n,v.data(u,n)},destroy:function(){n.verbose("Destroying instance"),v.removeData(u)},event:{focus:function(){v.addClass(p.focus),n.results.show()},blur:function(){n.search.cancel(),v.removeClass(p.focus),n.results.hide()}},handleKeyboard:function(b){var c,d=v.find(q.result),e=v.find(q.category),f=b.which,g={backspace:8,enter:13,escape:27,upArrow:38,downArrow:40},h=p.active,i=d.index(d.filter("."+h)),j=d.size();if(f==g.escape&&(n.verbose("Escape key pressed, blurring search field"),w.trigger("blur")),y.filter(":visible").size()>0)if(f==g.enter){if(n.verbose("Enter key pressed, selecting active result"),d.filter("."+h).exists())return a.proxy(n.results.select,d.filter("."+h))(),b.preventDefault(),!1}else f==g.upArrow?(n.verbose("Up key pressed, changing active result"),c=0>i-1?i:i-1,e.removeClass(h),d.removeClass(h).eq(c).addClass(h).closest(e).addClass(h),b.preventDefault()):f==g.downArrow&&(n.verbose("Down key pressed, changing active result"),c=i+1>=j?i:i+1,e.removeClass(h),d.removeClass(h).eq(c).addClass(h).closest(e).addClass(h),b.preventDefault());else f==g.enter&&(n.verbose("Enter key pressed, executing query"),n.search.query(),x.addClass(p.down),w.one("keyup",function(){x.removeClass(p.down)}))},search:{cancel:function(){var a=v.data("xhr")||!1;a&&"resolved"!=a.state()&&(n.debug("Cancelling last search"),a.abort())},throttle:function(){var a=w.val(),b=a.length;clearTimeout(n.timer),b>=o.minCharacters?n.timer=setTimeout(n.search.query,o.searchThrottle):n.results.hide()},query:function(){var b=w.val(),d=n.search.cache.read(b);d?(n.debug("Reading result for '"+b+"' from cache"),n.results.add(d)):(n.debug("Querying for '"+b+"'"),"object"==typeof c?n.search.local(b):n.search.remote(b),a.proxy(o.onSearchQuery,v)(b))},local:function(b){var d,e=[],f=[],g=a.isArray(o.searchFields)?o.searchFields:[o.searchFields],h=new RegExp("(?:s|^)"+b,"i"),i=new RegExp(b,"i");v.addClass(p.loading),a.each(g,function(b,d){a.each(c,function(b,c){"string"==typeof c[d]&&-1==a.inArray(c,e)&&-1==a.inArray(c,f)&&(h.test(c[d])?e.push(c):i.test(c[d])&&f.push(c))})}),d=n.results.generate({results:a.merge(e,f)}),v.removeClass(p.loading),n.search.cache.write(b,d),n.results.add(d)},remote:function(b){var d,e={stateContext:v,url:c,urlData:{query:b},success:function(a){d=n.results.generate(a),n.search.cache.write(b,d),n.results.add(d)},failure:n.error};n.search.cancel(),n.debug("Executing search"),a.extend(!0,e,o.apiSettings),a.api(e)},cache:{read:function(a){var b=v.data("cache");return o.cache&&"object"==typeof b&&b[a]!==d?b[a]:!1},write:function(a,b){var c=v.data("cache")!==d?v.data("cache"):{};c[a]=b,v.data("cache",c)}}},results:{generate:function(b){n.debug("Generating html from response",b);var c=o.templates[o.type],d="";return a.isPlainObject(b.results)&&!a.isEmptyObject(b.results)||a.isArray(b.results)&&b.results.length>0?(o.maxResults>0&&(b.results=a.makeArray(b.results).slice(0,o.maxResults)),b.results.length>0&&(a.isFunction(c)?d=c(b):n.error(r.noTemplate,!1))):d=n.message(r.noResults,"empty"),a.proxy(o.onResults,v)(b),d},add:function(b){("default"==o.onResultsAdd||"default"==a.proxy(o.onResultsAdd,y)(b))&&y.html(b),n.results.show()},show:function(){0===y.filter(":visible").size()&&w.filter(":focus").size()>0&&""!==y.html()&&(y.stop().fadeIn(200),a.proxy(o.onResultsOpen,y)())},hide:function(){y.filter(":visible").size()>0&&(y.stop().fadeOut(200),a.proxy(o.onResultsClose,y)())},select:function(c){n.debug("Search result selected");var d=a(this),e=d.find(".title"),f=e.html();if("default"==o.onSelect||"default"==a.proxy(o.onSelect,this)(c)){var g=d.find("a[href]").eq(0),h=g.attr("href")||!1,i=g.attr("target")||!1;n.results.hide(),w.val(f),h&&("_blank"==i||c.ctrlKey?b.open(h):b.location.href=h)}}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,o,b);else{if(c===d)return o[b];o[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,n,b);else{if(c===d)return n[b];n[b]=c}},debug:function(){o.debug&&(o.performance?n.performance.log(arguments):(n.debug=Function.prototype.bind.call(console.info,console,o.name+":"),n.debug.apply(console,arguments)))},verbose:function(){o.verbose&&o.debug&&(o.performance?n.performance.log(arguments):(n.verbose=Function.prototype.bind.call(console.info,console,o.name+":"),n.verbose.apply(console,arguments)))},error:function(){n.error=Function.prototype.bind.call(console.error,console,o.name+":"),n.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;o.performance&&(b=(new Date).getTime(),d=i||b,c=b-d,i=b,j.push({Element:z,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(n.performance.timer),n.performance.timer=setTimeout(n.performance.display,100)},display:function(){var b=o.name+":",c=0;i=!1,clearTimeout(n.performance.timer),a.each(j,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",h&&(b+=" '"+h+"'"),g.size()>1&&(b+=" ("+g.size()+")"),(console.group!==d||console.table!==d)&&j.length>0&&(console.groupCollapsed(b),console.table?console.table(j):a.each(j,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),j=[]}},invoke:function(b,c,e){var g,h,i,j=A;return c=c||m,e=z||e,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(e,c):h!==d&&(i=h),a.isArray(f)?f.push(i):f!==d?f=[f,i]:i!==d&&(f=i),h}},l?(A===d&&n.initialize(),n.invoke(k)):(A!==d&&n.destroy(),n.initialize())}),f!==d?f:this},a.fn.search.settings={name:"Search Module",namespace:"search",debug:!1,verbose:!0,performance:!0,onSelect:"default",onResultsAdd:"default",onSearchQuery:function(){},onResults:function(){},onResultsOpen:function(){},onResultsClose:function(){},automatic:"true",type:"simple",minCharacters:3,searchThrottle:300,maxResults:7,cache:!0,searchFields:["title","description"],apiSettings:{},className:{active:"active",down:"down",focus:"focus",empty:"empty",loading:"loading"},error:{noResults:"Your search returned no results",logging:"Error in debug logging, exiting.",noTemplate:"A valid template name was not specified.",serverError:"There was an issue with querying the server.",method:"The method you called is not defined."},selector:{prompt:".prompt",searchButton:".search.button",results:".results",category:".category",result:".result"},templates:{message:function(a,b){var c="";
+return a!==d&&b!==d&&(c+='',c+="empty"==b?'
'+a+'
':'
'+a+"
",c+="
"),c},categories:function(b){var c="";return b.results!==d?(a.each(b.results,function(b,e){e.results!==d&&e.results.length>0&&(c+=''+e.name+"
",a.each(e.results,function(a,b){c+='
',c+='
',b.image!==d&&(c+='
'),c+='
',b.price!==d&&(c+='
'+b.price+"
"),b.title!==d&&(c+='
'+b.title+"
"),b.description!==d&&(c+='
'+b.description+"
"),c+="
"}),c+="
")}),b.resultPage&&(c+=''+b.resultPage.text+" "),c):!1},simple:function(b){var c="";return b.results!==d?(a.each(b.results,function(a,b){c+='',b.image!==d&&(c+=''),c+='',b.price!==d&&(c+='
'+b.price+"
"),b.title!==d&&(c+='
'+b.title+"
"),b.description!==d&&(c+='
'+b.description+"
"),c+="
"}),b.resultPage&&(c+=''+b.resultPage.text+" "),c):!1}}}}(jQuery,window,document),function(a,b,c,d){a.fn.shape=function(b){var e,f=a(this),g=a("body"),h=(new Date).getTime(),i=[],j=arguments[0],k="string"==typeof j,l=[].slice.call(arguments,1);return f.each(function(){var m,n,o,p=f.selector||"",q=a.extend(!0,{},a.fn.shape.settings,b),r=q.namespace,s=q.selector,t=q.error,u=q.className,v="."+r,w="module-"+r,x=a(this),y=x.find(s.sides),z=x.find(s.side),A=!1,B=this,C=x.data(w);o={initialize:function(){o.verbose("Initializing module for",B),o.set.defaultSide(),o.instantiate()},instantiate:function(){o.verbose("Storing instance of module",o),C=o,x.data(w,C)},destroy:function(){o.verbose("Destroying previous module for",B),x.removeData(w).off(v)},refresh:function(){o.verbose("Refreshing selector cache for",B),x=a(B),y=a(this).find(s.shape),z=a(this).find(s.side)},repaint:function(){o.verbose("Forcing repaint event");{var a=y.get(0)||c.createElement("div");a.offsetWidth}},animate:function(b,c){o.verbose("Animating box with properties",b),c=c||function(a){o.verbose("Executing animation callback"),a!==d&&a.stopPropagation(),o.reset(),o.set.active()},a.proxy(q.beforeChange,n[0])(),o.get.transitionEvent()?(o.verbose("Starting CSS animation"),x.addClass(u.animating),o.repaint(),x.addClass(u.animating),m.addClass(u.hidden),y.css(b).one(o.get.transitionEvent(),c),o.set.duration(q.duration)):c()},queue:function(a){o.debug("Queueing animation of",a),y.one(o.get.transitionEvent(),function(){o.debug("Executing queued animation"),setTimeout(function(){x.shape(a)},0)})},reset:function(){o.verbose("Animating states reset"),x.removeClass(u.animating).attr("style","").removeAttr("style"),y.attr("style","").removeAttr("style"),z.attr("style","").removeAttr("style").removeClass(u.hidden),n.removeClass(u.animating).attr("style","").removeAttr("style")},is:{animating:function(){return x.hasClass(u.animating)}},set:{defaultSide:function(){m=x.find("."+q.className.active),n=m.next(s.side).size()>0?m.next(s.side):x.find(s.side).first(),A=!1,o.verbose("Active side set to",m),o.verbose("Next side set to",n)},duration:function(a){a=a||q.duration,a="number"==typeof a?a+"ms":a,o.verbose("Setting animation duration",a),y.add(z).css({"-webkit-transition-duration":a,"-moz-transition-duration":a,"-ms-transition-duration":a,"-o-transition-duration":a,"transition-duration":a})},stageSize:function(){var a=x.clone().addClass(u.loading),b=a.find("."+q.className.active),c=A?a.find(A):b.next(s.side).size()>0?b.next(s.side):a.find(s.side).first(),d={};b.removeClass(u.active),c.addClass(u.active),a.prependTo(g),d={width:c.outerWidth(),height:c.outerHeight()},a.remove(),x.css(d),o.verbose("Resizing stage to fit new content",d)},nextSide:function(a){A=a,n=x.find(a),0===n.size()&&o.error(t.side),o.verbose("Next side manually set to",n)},active:function(){o.verbose("Setting new side to active",n),z.removeClass(u.active),n.addClass(u.active),a.proxy(q.onChange,n[0])(),o.set.defaultSide()}},flip:{up:function(){o.debug("Flipping up",n),o.is.animating()?o.queue("flip up"):(o.set.stageSize(),o.stage.above(),o.animate(o.get.transform.up()))},down:function(){o.debug("Flipping down",n),o.is.animating()?o.queue("flip down"):(o.set.stageSize(),o.stage.below(),o.animate(o.get.transform.down()))},left:function(){o.debug("Flipping left",n),o.is.animating()?o.queue("flip left"):(o.set.stageSize(),o.stage.left(),o.animate(o.get.transform.left()))},right:function(){o.debug("Flipping right",n),o.is.animating()?o.queue("flip right"):(o.set.stageSize(),o.stage.right(),o.animate(o.get.transform.right()))},over:function(){o.debug("Flipping over",n),o.is.animating()?o.queue("flip over"):(o.set.stageSize(),o.stage.behind(),o.animate(o.get.transform.over()))},back:function(){o.debug("Flipping back",n),o.is.animating()?o.queue("flip back"):(o.set.stageSize(),o.stage.behind(),o.animate(o.get.transform.back()))}},get:{transform:{up:function(){var a={y:-((m.outerHeight()-n.outerHeight())/2),z:-(m.outerHeight()/2)};return{transform:"translateY("+a.y+"px) translateZ("+a.z+"px) rotateX(-90deg)"}},down:function(){var a={y:-((m.outerHeight()-n.outerHeight())/2),z:-(m.outerHeight()/2)};return{transform:"translateY("+a.y+"px) translateZ("+a.z+"px) rotateX(90deg)"}},left:function(){var a={x:-((m.outerWidth()-n.outerWidth())/2),z:-(m.outerWidth()/2)};return{transform:"translateX("+a.x+"px) translateZ("+a.z+"px) rotateY(90deg)"}},right:function(){var a={x:-((m.outerWidth()-n.outerWidth())/2),z:-(m.outerWidth()/2)};return{transform:"translateX("+a.x+"px) translateZ("+a.z+"px) rotateY(-90deg)"}},over:function(){var a={x:-((m.outerWidth()-n.outerWidth())/2)};return{transform:"translateX("+a.x+"px) rotateY(180deg)"}},back:function(){var a={x:-((m.outerWidth()-n.outerWidth())/2)};return{transform:"translateX("+a.x+"px) rotateY(-180deg)"}}},transitionEvent:function(){var a,b=c.createElement("element"),e={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(a in e)if(b.style[a]!==d)return e[a]},nextSide:function(){return m.next(s.side).size()>0?m.next(s.side):x.find(s.side).first()}},stage:{above:function(){var a={origin:(m.outerHeight()-n.outerHeight())/2,depth:{active:n.outerHeight()/2,next:m.outerHeight()/2}};o.verbose("Setting the initial animation position as above",n,a),m.css({transform:"rotateY(0deg) translateZ("+a.depth.active+"px)"}),n.addClass(u.animating).css({display:"block",top:a.origin+"px",transform:"rotateX(90deg) translateZ("+a.depth.next+"px)"})},below:function(){var a={origin:(m.outerHeight()-n.outerHeight())/2,depth:{active:n.outerHeight()/2,next:m.outerHeight()/2}};o.verbose("Setting the initial animation position as below",n,a),m.css({transform:"rotateY(0deg) translateZ("+a.depth.active+"px)"}),n.addClass(u.animating).css({display:"block",top:a.origin+"px",transform:"rotateX(-90deg) translateZ("+a.depth.next+"px)"})},left:function(){var a={origin:(m.outerWidth()-n.outerWidth())/2,depth:{active:n.outerWidth()/2,next:m.outerWidth()/2}};o.verbose("Setting the initial animation position as left",n,a),m.css({transform:"rotateY(0deg) translateZ("+a.depth.active+"px)"}),n.addClass(u.animating).css({display:"block",left:a.origin+"px",transform:"rotateY(-90deg) translateZ("+a.depth.next+"px)"})},right:function(){var a={origin:(m.outerWidth()-n.outerWidth())/2,depth:{active:n.outerWidth()/2,next:m.outerWidth()/2}};o.verbose("Setting the initial animation position as left",n,a),m.css({transform:"rotateY(0deg) translateZ("+a.depth.active+"px)"}),n.addClass(u.animating).css({display:"block",left:a.origin+"px",transform:"rotateY(90deg) translateZ("+a.depth.next+"px)"})},behind:function(){var a={origin:(m.outerWidth()-n.outerWidth())/2,depth:{active:n.outerWidth()/2,next:m.outerWidth()/2}};o.verbose("Setting the initial animation position as behind",n,a),m.css({transform:"rotateY(0deg)"}),n.addClass(u.animating).css({display:"block",left:a.origin+"px",transform:"rotateY(-180deg)"})}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,q,b);else{if(c===d)return q[b];q[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,o,b);else{if(c===d)return o[b];o[b]=c}},debug:function(){q.debug&&(q.performance?o.performance.log(arguments):(o.debug=Function.prototype.bind.call(console.info,console,q.name+":"),o.debug.apply(console,arguments)))},verbose:function(){q.verbose&&q.debug&&(q.performance?o.performance.log(arguments):(o.verbose=Function.prototype.bind.call(console.info,console,q.name+":"),o.verbose.apply(console,arguments)))},error:function(){o.error=Function.prototype.bind.call(console.error,console,q.name+":"),o.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;q.performance&&(b=(new Date).getTime(),d=h||b,c=b-d,h=b,i.push({Element:B,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(o.performance.timer),o.performance.timer=setTimeout(o.performance.display,100)},display:function(){var b=q.name+":",c=0;h=!1,clearTimeout(o.performance.timer),a.each(i,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",p&&(b+=" '"+p+"'"),f.size()>1&&(b+=" ("+f.size()+")"),(console.group!==d||console.table!==d)&&i.length>0&&(console.groupCollapsed(b),console.table?console.table(i):a.each(i,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),i=[]}},invoke:function(b,c,f){var g,h,i,j=C;return c=c||l,f=B||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,c):h!==d&&(i=h),a.isArray(e)?e.push(i):e!==d?e=[e,i]:i!==d&&(e=i),h}},k?(C===d&&o.initialize(),o.invoke(j)):(C!==d&&o.destroy(),o.initialize())}),e!==d?e:this},a.fn.shape.settings={name:"Shape",debug:!1,verbose:!0,performance:!0,namespace:"shape",beforeChange:function(){},onChange:function(){},duration:700,error:{side:"You tried to switch to a side that does not exist.",method:"The method you called is not defined"},className:{animating:"animating",hidden:"hidden",loading:"loading",active:"active"},selector:{sides:".sides",side:".side"}}}(jQuery,window,document),function(a,b,c,d){a.fn.sidebar=function(b){var e,f=a(this),g=a("body"),h=a("head"),i=f.selector||"",j=(new Date).getTime(),k=[],l=arguments[0],m="string"==typeof l,n=[].slice.call(arguments,1);return f.each(function(){var o,p=a.isPlainObject(b)?a.extend(!0,{},a.fn.sidebar.settings,b):a.extend({},a.fn.sidebar.settings),q=p.selector,r=p.className,s=p.namespace,t=p.error,u="."+s,v="module-"+s,w=a(this),x=a("style[title="+s+"]"),y=this,z=w.data(v);o={initialize:function(){o.debug("Initializing sidebar",w),o.instantiate()},instantiate:function(){o.verbose("Storing instance of module",o),z=o,w.data(v,o)},destroy:function(){o.verbose("Destroying previous module for",w),w.off(u).removeData(v)},refresh:function(){o.verbose("Refreshing selector cache"),x=a("style[title="+s+"]")},attachEvents:function(b,c){var d=a(b);c=a.isFunction(o[c])?o[c]:o.toggle,d.size()>0?(o.debug("Attaching sidebar events to element",b,c),d.off(u).on("click"+u,c)):o.error(t.notFound)},show:function(b){b=a.isFunction(b)?b:function(){},o.debug("Showing sidebar",b),o.is.closed()?(p.overlay||(p.exclusive&&o.hideAll(),o.pushPage()),o.set.active(),b(),a.proxy(p.onChange,y)(),a.proxy(p.onShow,y)()):o.debug("Sidebar is already visible")},hide:function(b){b=a.isFunction(b)?b:function(){},o.debug("Hiding sidebar",b),o.is.open()&&(p.overlay||(o.pullPage(),o.remove.pushed()),o.remove.active(),b(),a.proxy(p.onChange,y)(),a.proxy(p.onHide,y)())},hideAll:function(){a(q.sidebar).filter(":visible").sidebar("hide")},toggle:function(){o.is.closed()?o.show():o.hide()},pushPage:function(){var a=o.get.direction(),b=o.is.vertical()?w.outerHeight():w.outerWidth();p.useCSS?(o.debug("Using CSS to animate body"),o.add.bodyCSS(a,b),o.set.pushed()):o.animatePage(a,b,o.set.pushed)},pullPage:function(){var a=o.get.direction();p.useCSS?(o.debug("Resetting body position css"),o.remove.bodyCSS()):(o.debug("Resetting body position using javascript"),o.animatePage(a,0)),o.remove.pushed()},animatePage:function(a,b){var c={};c["padding-"+a]=b,o.debug("Using javascript to animate body",c),g.animate(c,p.duration,o.set.pushed)},add:{bodyCSS:function(a,b){var c;a!==r.bottom&&(c='"),h.append(c),o.debug("Adding body css to head",x)}},remove:{bodyCSS:function(){o.debug("Removing body css styles",x),o.refresh(),x.remove()},active:function(){w.removeClass(r.active)},pushed:function(){o.verbose("Removing body push state",o.get.direction()),g.removeClass(r[o.get.direction()]).removeClass(r.pushed)}},set:{active:function(){w.addClass(r.active)},pushed:function(){o.verbose("Adding body push state",o.get.direction()),g.addClass(r[o.get.direction()]).addClass(r.pushed)}},get:{direction:function(){return w.hasClass(r.top)?r.top:w.hasClass(r.right)?r.right:w.hasClass(r.bottom)?r.bottom:r.left},transitionEvent:function(){var a,b=c.createElement("element"),e={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(a in e)if(b.style[a]!==d)return e[a]}},is:{open:function(){return w.is(":animated")||w.hasClass(r.active)},closed:function(){return!o.is.open()},vertical:function(){return w.hasClass(r.top)}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,p,b);else{if(c===d)return p[b];p[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,o,b);else{if(c===d)return o[b];o[b]=c}},debug:function(){p.debug&&(p.performance?o.performance.log(arguments):(o.debug=Function.prototype.bind.call(console.info,console,p.name+":"),o.debug.apply(console,arguments)))},verbose:function(){p.verbose&&p.debug&&(p.performance?o.performance.log(arguments):(o.verbose=Function.prototype.bind.call(console.info,console,p.name+":"),o.verbose.apply(console,arguments)))},error:function(){o.error=Function.prototype.bind.call(console.error,console,p.name+":"),o.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;p.performance&&(b=(new Date).getTime(),d=j||b,c=b-d,j=b,k.push({Element:y,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(o.performance.timer),o.performance.timer=setTimeout(o.performance.display,100)},display:function(){var b=p.name+":",c=0;j=!1,clearTimeout(o.performance.timer),a.each(k,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",i&&(b+=" '"+i+"'"),f.size()>1&&(b+=" ("+f.size()+")"),(console.group!==d||console.table!==d)&&k.length>0&&(console.groupCollapsed(b),console.table?console.table(k):a.each(k,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),k=[]}},invoke:function(b,c,f){var g,h,i,j=z;return c=c||n,f=y||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,c):h!==d&&(i=h),a.isArray(e)?e.push(i):e!==d?e=[e,i]:i!==d&&(e=i),h}},m?(z===d&&o.initialize(),o.invoke(l)):(z!==d&&o.destroy(),o.initialize())}),e!==d?e:this},a.fn.sidebar.settings={name:"Sidebar",namespace:"sidebar",debug:!1,verbose:!0,performance:!0,useCSS:!0,exclusive:!0,overlay:!1,duration:300,onChange:function(){},onShow:function(){},onHide:function(){},className:{active:"active",pushed:"pushed",top:"top",left:"left",right:"right",bottom:"bottom"},selector:{sidebar:".ui.sidebar"},error:{method:"The method you called is not defined.",notFound:"There were no elements that matched the specified selector"}}}(jQuery,window,document),function(a,b,c,d){a.fn.tab=function(c){var e,f,g,h,i,j=a.extend(!0,{},a.fn.tab.settings,c),k=a(this),l=a(j.context).find(j.selector.tabs),m=k.selector||"",n={},o=!0,p=0,q=this,r=(new Date).getTime(),s=[],t=j.className,u=j.metadata,v=j.error,w="."+j.namespace,x="module-"+j.namespace,y=k.data(x),z=arguments[0],A=y!==d&&"string"==typeof z,B=[].slice.call(arguments,1);return h={initialize:function(){if(h.debug("Initializing Tabs",k),j.auto&&(h.verbose("Setting up automatic tab retrieval from server"),j.apiSettings={url:j.path+"/{$tab}"}),j.history){if(h.debug("Initializing page state"),a.address===d)return h.error(v.state),!1;if("hash"==j.historyType&&h.debug("Using hash state change to manage state"),"html5"==j.historyType){if(h.debug("Using HTML5 to manage state"),j.path===!1)return h.error(v.path),!1;a.address.history(!0).state(j.path)}a.address.unbind("change").bind("change",h.event.history.change)}a.isWindow(q)||(h.debug("Attaching tab activation events to element",k),k.on("click"+w,h.event.click)),h.instantiate()},instantiate:function(){h.verbose("Storing instance of module",h),k.data(x,h)},destroy:function(){h.debug("Destroying tabs",k),k.removeData(x).off(w)},event:{click:function(b){var c=a(this).data(u.tab);c!==d?(j.history?(h.verbose("Updating page state",b),a.address.value(c)):(h.verbose("Changing tab without state management",b),h.changeTab(c)),b.preventDefault()):h.debug("No tab specified")},history:{change:function(b){var c=b.pathNames.join("/")||h.get.initialPath(),e=j.templates.determineTitle(c)||!1;h.debug("History change event",c,b),g=b,c!==d&&h.changeTab(c),e&&a.address.title(e)}}},refresh:function(){e&&(h.debug("Refreshing tab",e),h.changeTab(e))},cache:{read:function(a){return a!==d?n[a]:!1},add:function(a,b){a=a||e,h.debug("Adding cached content for",a),n[a]=b},remove:function(a){a=a||e,h.debug("Removing cached content for",a),delete n[a]}},set:{state:function(b){a.address.value(b)}},changeTab:function(c){var d=b.history&&b.history.pushState,i=d&&j.ignoreFirstLoad&&o,k=j.auto||a.isPlainObject(j.apiSettings),l=k&&!i?h.utilities.pathToArray(c):h.get.defaultPathArray(c);c=h.utilities.arrayToPath(l),h.deactivate.all(),a.each(l,function(b,d){var m,n,p,q=l.slice(0,b+1),r=h.utilities.arrayToPath(q),s=h.is.tab(r),t=b+1==l.length,u=h.get.tabElement(r);return h.verbose("Looking for tab",d),s?(h.verbose("Tab was found",d),e=r,f=h.utilities.filterArray(l,q),t?p=!0:(m=l.slice(0,b+2),n=h.utilities.arrayToPath(m),p=!h.is.tab(n),p&&h.verbose("Tab parameters found",m)),p&&k?(i?(h.debug("Ignoring remote content on first tab load",r),o=!1,h.cache.add(c,u.html()),h.activate.all(r),a.proxy(j.onTabInit,u)(r,f,g),a.proxy(j.onTabLoad,u)(r,f,g)):(h.activate.navigation(r),h.content.fetch(r,c)),!1):(h.debug("Opened local tab",r),h.activate.all(r),h.cache.read(r)||(h.cache.add(r,!0),h.debug("First time tab loaded calling tab init"),a.proxy(j.onTabInit,u)(r,f,g)),a.proxy(j.onTabLoad,u)(r,f,g),void 0)):(h.error(v.missingTab,d),!1)})},content:{fetch:function(b,c){var i,k,l=h.get.tabElement(b),m={dataType:"html",stateContext:l,success:function(d){h.cache.add(c,d),h.content.update(b,d),b==e?(h.debug("Content loaded",b),h.activate.tab(b)):h.debug("Content loaded in background",b),a.proxy(j.onTabInit,l)(b,f,g),a.proxy(j.onTabLoad,l)(b,f,g)},urlData:{tab:c}},n=l.data(u.promise)||!1,o=n&&"pending"===n.state();c=c||b,k=h.cache.read(c),j.cache&&k?(h.debug("Showing existing content",c),h.content.update(b,k),h.activate.tab(b),a.proxy(j.onTabLoad,l)(b,f,g)):o?(h.debug("Content is already loading",c),l.addClass(t.loading)):a.api!==d?(console.log(j.apiSettings),i=a.extend(!0,{headers:{"X-Remote":!0}},j.apiSettings,m),h.debug("Retrieving remote content",c,i),a.api(i)):h.error(v.api)},update:function(a,b){h.debug("Updating html for",a);var c=h.get.tabElement(a);c.html(b)}},activate:{all:function(a){h.activate.tab(a),h.activate.navigation(a)},tab:function(a){var b=h.get.tabElement(a);h.verbose("Showing tab content for",b),b.addClass(t.active)},navigation:function(a){var b=h.get.navElement(a);h.verbose("Activating tab navigation for",b,a),b.addClass(t.active)}},deactivate:{all:function(){h.deactivate.navigation(),h.deactivate.tabs()},navigation:function(){k.removeClass(t.active)},tabs:function(){l.removeClass(t.active+" "+t.loading)}},is:{tab:function(a){return a!==d?h.get.tabElement(a).size()>0:!1}},get:{initialPath:function(){return k.eq(0).data(u.tab)||l.eq(0).data(u.tab)},path:function(){return a.address.value()},defaultPathArray:function(a){return h.utilities.pathToArray(h.get.defaultPath(a))},defaultPath:function(a){var b=k.filter("[data-"+u.tab+'^="'+a+'/"]').eq(0),c=b.data(u.tab)||!1;if(c){if(h.debug("Found default tab",c),p0?b:c},tab:function(){return e}},utilities:{filterArray:function(b,c){return a.grep(b,function(b){return-1==a.inArray(b,c)})},last:function(b){return a.isArray(b)?b[b.length-1]:!1},pathToArray:function(a){return a===d&&(a=e),"string"==typeof a?a.split("/"):[a]},arrayToPath:function(b){return a.isArray(b)?b.join("/"):!1}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,j,b);else{if(c===d)return j[b];j[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,h,b);else{if(c===d)return h[b];h[b]=c}},debug:function(){j.debug&&(j.performance?h.performance.log(arguments):(h.debug=Function.prototype.bind.call(console.info,console,j.name+":"),h.debug.apply(console,arguments)))},verbose:function(){j.verbose&&j.debug&&(j.performance?h.performance.log(arguments):(h.verbose=Function.prototype.bind.call(console.info,console,j.name+":"),h.verbose.apply(console,arguments)))},error:function(){h.error=Function.prototype.bind.call(console.error,console,j.name+":"),h.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;j.performance&&(b=(new Date).getTime(),d=r||b,c=b-d,r=b,s.push({Element:q,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(h.performance.timer),h.performance.timer=setTimeout(h.performance.display,100)},display:function(){var b=j.name+":",c=0;r=!1,clearTimeout(h.performance.timer),a.each(s,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",m&&(b+=" '"+m+"'"),(console.group!==d||console.table!==d)&&s.length>0&&(console.groupCollapsed(b),console.table?console.table(s):a.each(s,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),s=[]}},invoke:function(b,c,e){var f,g,h,j=y;return c=c||B,e=q||e,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),f=b.length-1,a.each(b,function(c,e){var h=c!=f?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[h])&&c!=f)j=j[h];else{if(j[h]!==d)return g=j[h],!1;if(!a.isPlainObject(j[e])||c==f)return j[e]!==d?(g=j[e],!1):!1;j=j[e]}})),a.isFunction(g)?h=g.apply(e,c):g!==d&&(h=g),a.isArray(i)?i.push(h):i!==d?i=[i,h]:h!==d&&(i=h),g}},A?(y===d&&h.initialize(),h.invoke(z)):(y!==d&&h.destroy(),h.initialize()),i!==d?i:this},a.tab=function(c){a(b).tab(c)},a.fn.tab.settings={name:"Tab",debug:!1,verbose:!0,performance:!0,namespace:"tab",onTabInit:function(){},onTabLoad:function(){},templates:{determineTitle:function(){}},auto:!1,history:!0,historyType:"hash",path:!1,context:"body",maxDepth:25,ignoreFirstLoad:!1,alwaysRefresh:!1,cache:!0,apiSettings:!1,error:{api:"You attempted to load content without API module",method:"The method you called is not defined",missingTab:"Tab cannot be found",noContent:"The tab you specified is missing a content url.",path:"History enabled, but no path was specified",recursion:"Max recursive depth reached",state:"The state library has not been initialized"},metadata:{tab:"tab",loaded:"loaded",promise:"promise"},className:{loading:"loading",active:"active"},selector:{tabs:".ui.tab"}}}(jQuery,window,document),function(a,b,c,d){a.fn.transition=function(){{var e,f=a(this),g=f.selector||"",h=(new Date).getTime(),i=[],j=arguments,k=j[0],l=[].slice.call(arguments,1),m="string"==typeof k;b.requestAnimationFrame||b.mozRequestAnimationFrame||b.webkitRequestAnimationFrame||b.msRequestAnimationFrame||function(a){setTimeout(a,0)}}return f.each(function(){var b,n,o,p,q,r,s,t,u,v,w=a(this),x=this;v={initialize:function(){b=v.get.settings.apply(x,j),v.verbose("Converted arguments into settings object",b),o=b.error,p=b.className,t=b.namespace,q=b.metadata,u="module-"+t,r=v.get.animationEvent(),s=v.get.animationName(),n=w.data(u)||v,m&&(m=v.invoke(k)),m===!1&&v.animate(),v.instantiate()},instantiate:function(){v.verbose("Storing instance of module",v),w.data(u,n)},destroy:function(){v.verbose("Destroying previous module for",x),w.removeData(u)},refresh:function(){v.verbose("Refreshing display type on next animation"),delete n.displayType},forceRepaint:function(){v.verbose("Forcing element repaint");var a=w.parent(),b=w.next();0===b.size()?w.detach().appendTo(a):w.detach().insertBefore(b)},repaint:function(){v.verbose("Repainting element");x.offsetWidth},animate:function(a){return b=a||b,v.is.supported()?(v.debug("Preparing animation",b.animation),v.is.animating()&&b.queue?(!b.allowRepeats&&v.has.direction()&&v.is.occuring()&&n.queuing!==!0?v.error(o.repeated):v.queue(b.animation),!1):void(v.can.animate?v.set.animating(b.animation):v.error(o.noAnimation,b.animation))):(v.error(o.support),!1)},reset:function(){v.debug("Resetting animation to beginning conditions"),w.off(r),v.restore.conditions(),v.hide(),v.remove.animating()},queue:function(a){v.debug("Queueing animation of",a),n.queuing=!0,w.one(r,function(){n.queuing=!1,v.repaint(),v.animate.apply(this,b)})},complete:function(){v.verbose("CSS animation complete",b.animation),v.is.looping()||(v.is.outward()?(v.verbose("Animation is outward, hiding element"),v.restore.conditions(),v.remove.display(),v.hide(),a.proxy(b.onHide,this)()):v.is.inward()?(v.verbose("Animation is outward, showing element"),v.restore.conditions(),v.show(),a.proxy(b.onShow,this)()):v.restore.conditions(),v.remove.duration(),v.remove.animating()),a.proxy(b.complete,this)()},has:{direction:function(a){return a=a||b.animation,-1!==a.search(p.inward)||-1!==a.search(p.outward)?(v.debug("Direction already set in animation"),!0):!1}},set:{animating:function(a){a=a||b.animation,v.save.conditions(),v.can.transition()&&!v.has.direction()&&v.set.direction(),v.remove.hidden(),v.set.display(),w.addClass(p.animating).addClass(p.transition).addClass(a).one(r,v.complete),v.set.duration(b.duration),v.debug("Starting tween",b.animation,w.attr("class"))},display:function(){var a=v.get.displayType();"block"!==a&&(v.verbose("Setting final visibility to",a),w.css({display:a}))},direction:function(){w.is(":visible")?(v.debug("Automatically determining the direction of animation","Outward"),w.removeClass(p.inward).addClass(p.outward)):(v.debug("Automatically determining the direction of animation","Inward"),w.removeClass(p.outward).addClass(p.inward))},looping:function(){v.debug("Transition set to loop"),w.addClass(p.looping)},duration:function(a){a=a||b.duration,a="number"==typeof a?a+"ms":a,v.verbose("Setting animation duration",a),w.css({"-webkit-animation-duration":a,"-moz-animation-duration":a,"-ms-animation-duration":a,"-o-animation-duration":a,"animation-duration":a})},hidden:function(){w.addClass(p.transition).addClass(p.hidden)},visible:function(){w.addClass(p.transition).addClass(p.visible)}},save:{displayType:function(a){n.displayType=a},transitionExists:function(b,c){a.fn.transition.exists[b]=c,v.verbose("Saving existence of transition",b,c)},conditions:function(){n.cache={className:w.attr("class"),style:w.attr("style")},v.verbose("Saving original attributes",n.cache)}},restore:{conditions:function(){return n.cache===d?!1:(n.cache.className?w.attr("class",n.cache.className):w.removeAttr("class"),n.cache.style?w.attr("style",n.cache.style):"block"===v.get.displayType()&&w.removeAttr("style"),v.is.looping()&&v.remove.looping(),void v.verbose("Restoring original attributes",n.cache))}},remove:{animating:function(){w.removeClass(p.animating)},display:function(){n.displayType!==d&&w.css("display","")},duration:function(){w.css({"-webkit-animation-duration":"","-moz-animation-duration":"","-ms-animation-duration":"","-o-animation-duration":"","animation-duration":""})},hidden:function(){w.removeClass(p.hidden)},visible:function(){w.removeClass(p.visible)},looping:function(){v.debug("Transitions are no longer looping"),w.removeClass(p.looping),v.forceRepaint()}},get:{settings:function(b,c,d){return"object"==typeof b?a.extend(!0,{},a.fn.transition.settings,b):"function"==typeof d?a.extend({},a.fn.transition.settings,{animation:b,complete:d,duration:c}):"string"==typeof c||"number"==typeof c?a.extend({},a.fn.transition.settings,{animation:b,duration:c}):"object"==typeof c?a.extend({},a.fn.transition.settings,c,{animation:b}):"function"==typeof c?a.extend({},a.fn.transition.settings,{animation:b,complete:c}):a.extend({},a.fn.transition.settings,{animation:b})},displayType:function(){return n.displayType===d&&v.can.transition(),n.displayType},transitionExists:function(b){return a.fn.transition.exists[b]},animationName:function(){var a,b=c.createElement("div"),e={animation:"animationName",OAnimation:"oAnimationName",MozAnimation:"mozAnimationName",WebkitAnimation:"webkitAnimationName"};for(a in e)if(b.style[a]!==d)return v.verbose("Determined animation vendor name property",e[a]),e[a];return!1},animationEvent:function(){var a,b=c.createElement("div"),e={animation:"animationend",OAnimation:"oAnimationEnd",MozAnimation:"animationend",WebkitAnimation:"webkitAnimationEnd"};for(a in e)if(b.style[a]!==d)return v.verbose("Determined animation vendor end event",e[a]),e[a];return!1}},can:{animate:function(){return"none"!==w.css(b.animation)?(v.debug("CSS definition found",w.css(b.animation)),!0):(v.debug("Unable to find css definition",w.attr("class")),!1)},transition:function(){var c,e,f,g,h=w.attr("class"),i=b.animation,j=v.get.transitionExists(b.animation);return(j===d||n.displayType===d)&&(v.verbose("Determining whether animation exists"),c=a("").addClass(h).appendTo(a("body")),e=c.removeClass(p.inward).removeClass(p.outward).addClass(p.animating).addClass(p.transition).addClass(i).css(s),f=c.addClass(p.inward).css(s),g=c.attr("class",h).show().css("display"),v.verbose("Determining final display state",g),e!=f?(v.debug("Transition exists for animation",i),j=!0):(v.debug("Static animation found",i,g),j=!1),c.remove(),v.save.displayType(g),v.save.transitionExists(i,j)),j}},is:{animating:function(){return w.hasClass(p.animating)},inward:function(){return w.hasClass(p.inward)},outward:function(){return w.hasClass(p.outward)},looping:function(){return w.hasClass(p.looping)},occuring:function(a){return a=a||b.animation,w.hasClass(a)},visible:function(){return w.is(":visible")},supported:function(){return s!==!1&&r!==!1}},hide:function(){v.verbose("Hiding element"),v.remove.visible(),v.set.hidden(),v.repaint()},show:function(a){v.verbose("Showing element",a),v.remove.hidden(),v.set.visible(),v.repaint()},start:function(){v.verbose("Starting animation"),w.removeClass(p.disabled)},stop:function(){v.debug("Stopping animation"),w.addClass(p.disabled)},toggle:function(){v.debug("Toggling play status"),w.toggleClass(p.disabled)},setting:function(c,e){if(a.isPlainObject(c))a.extend(!0,b,c);else{if(e===d)return b[c];b[c]=e}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,v,b);else{if(c===d)return v[b];
+v[b]=c}},debug:function(){b.debug&&(b.performance?v.performance.log(arguments):(v.debug=Function.prototype.bind.call(console.info,console,b.name+":"),v.debug.apply(console,arguments)))},verbose:function(){b.verbose&&b.debug&&(b.performance?v.performance.log(arguments):(v.verbose=Function.prototype.bind.call(console.info,console,b.name+":"),v.verbose.apply(console,arguments)))},error:function(){v.error=Function.prototype.bind.call(console.error,console,b.name+":"),v.error.apply(console,arguments)},performance:{log:function(a){var c,d,e;b.performance&&(c=(new Date).getTime(),e=h||c,d=c-e,h=c,i.push({Element:x,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":d})),clearTimeout(v.performance.timer),v.performance.timer=setTimeout(v.performance.display,100)},display:function(){var c=b.name+":",e=0;h=!1,clearTimeout(v.performance.timer),a.each(i,function(a,b){e+=b["Execution Time"]}),c+=" "+e+"ms",g&&(c+=" '"+g+"'"),f.size()>1&&(c+=" ("+f.size()+")"),(console.group!==d||console.table!==d)&&i.length>0&&(console.groupCollapsed(c),console.table?console.table(i):a.each(i,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),i=[]}},invoke:function(b,c,f){var g,h,i,j=n;return c=c||l,f=x||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,c):h!==d&&(i=h),a.isArray(e)?e.push(i):e!==d?e=[e,i]:i!==d&&(e=i),h||!1}},v.initialize()}),e!==d?e:this},a.fn.transition.exists={},a.fn.transition.settings={name:"Transition",debug:!1,verbose:!0,performance:!0,namespace:"transition",complete:function(){},onShow:function(){},onHide:function(){},allowRepeats:!1,animation:"fade",duration:"700ms",queue:!0,className:{animating:"animating",disabled:"disabled",hidden:"hidden",inward:"in",loading:"loading",looping:"looping",outward:"out",transition:"ui transition",visible:"visible"},error:{noAnimation:"There is no css animation matching the one you specified.",repeated:"That animation is already occurring, cancelling repeated animation",method:"The method you called is not defined",support:"This browser does not support CSS animations"}}}(jQuery,window,document),function(a,b,c,d){a.fn.video=function(b){var c,e=a(this),f=e.selector||"",g=(new Date).getTime(),h=[],i=arguments[0],j="string"==typeof i,k=[].slice.call(arguments,1);return e.each(function(){var l,m=a.isPlainObject(b)?a.extend(!0,{},a.fn.video.settings,b):a.extend({},a.fn.video.settings),n=m.selector,o=m.className,p=m.error,q=m.metadata,r=m.namespace,s="."+r,t="module-"+r,u=a(this),v=u.find(n.placeholder),w=u.find(n.playButton),x=u.find(n.embed),y=this,z=u.data(t);l={initialize:function(){l.debug("Initializing video"),v.on("click"+s,l.play),w.on("click"+s,l.play),l.instantiate()},instantiate:function(){l.verbose("Storing instance of module",l),z=l,u.data(t,l)},destroy:function(){l.verbose("Destroying previous instance of video"),u.removeData(t).off(s),v.off(s),w.off(s)},change:function(a,b,c){l.debug("Changing video to ",a,b,c),u.data(q.source,a).data(q.id,b).data(q.url,c),m.onChange()},reset:function(){l.debug("Clearing video embed and showing placeholder"),u.removeClass(o.active),x.html(" "),v.show(),m.onReset()},play:function(){l.debug("Playing video");var a=u.data(q.source)||!1,b=u.data(q.url)||!1,c=u.data(q.id)||!1;x.html(l.generate.html(a,c,b)),u.addClass(o.active),m.onPlay()},generate:{html:function(a,b,c){l.debug("Generating embed html");var d,e="auto"==m.width?u.width():m.width,f="auto"==m.height?u.height():m.height;return a&&b?"vimeo"==a?d='
':"youtube"==a&&(d='
VIDEO '):c?d='
':l.error(p.noVideo),d},url:function(a){var b=m.api?1:0,c=m.autoplay?1:0,d=m.hd?1:0,e=m.showUI?1:0,f=m.showUI?0:1,g="";return"vimeo"==a&&(g="api="+b+"&title="+e+"&byline="+e+"&portrait="+e+"&autoplay="+c,m.color&&(g+="&color="+m.color)),"ustream"==a?(g="autoplay="+c,m.color&&(g+="&color="+m.color)):"youtube"==a&&(g="enablejsapi="+b+"&autoplay="+c+"&autohide="+f+"&hq="+d+"&modestbranding=1",m.color&&(g+="&color="+m.color)),g}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,m,b);else{if(c===d)return m[b];m[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,l,b);else{if(c===d)return l[b];l[b]=c}},debug:function(){m.debug&&(m.performance?l.performance.log(arguments):(l.debug=Function.prototype.bind.call(console.info,console,m.name+":"),l.debug.apply(console,arguments)))},verbose:function(){m.verbose&&m.debug&&(m.performance?l.performance.log(arguments):(l.verbose=Function.prototype.bind.call(console.info,console,m.name+":"),l.verbose.apply(console,arguments)))},error:function(){l.error=Function.prototype.bind.call(console.error,console,m.name+":"),l.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;m.performance&&(b=(new Date).getTime(),d=g||b,c=b-d,g=b,h.push({Element:y,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(l.performance.timer),l.performance.timer=setTimeout(l.performance.display,100)},display:function(){var b=m.name+":",c=0;g=!1,clearTimeout(l.performance.timer),a.each(h,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",f&&(b+=" '"+f+"'"),e.size()>1&&(b+=" ("+e.size()+")"),(console.group!==d||console.table!==d)&&h.length>0&&(console.groupCollapsed(b),console.table?console.table(h):a.each(h,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),h=[]}},invoke:function(b,e,f){var g,h,i,j=z;return e=e||k,f=y||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,e):h!==d&&(i=h),a.isArray(c)?c.push(i):c!==d?c=[c,i]:i!==d&&(c=i),h}},j?(z===d&&l.initialize(),l.invoke(i)):(z!==d&&l.destroy(),l.initialize())}),c!==d?c:this},a.fn.video.settings={name:"Video",namespace:"video",debug:!1,verbose:!0,performance:!0,metadata:{source:"source",id:"id",url:"url"},onPlay:function(){},onReset:function(){},onChange:function(){},onPause:function(){},onStop:function(){},width:"auto",height:"auto",autoplay:!1,color:"#442359",hd:!0,showUI:!1,api:!0,error:{noVideo:"No video specified",method:"The method you called is not defined"},className:{active:"active"},selector:{embed:".embed",placeholder:".placeholder",playButton:".play"}}}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/collections/breadcrumb.css b/css/semantic/build/uncompressed/collections/breadcrumb.css
new file mode 100644
index 0000000..4577dd5
--- /dev/null
+++ b/css/semantic/build/uncompressed/collections/breadcrumb.css
@@ -0,0 +1,81 @@
+/*
+ * # Semantic - Breadcrumb
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Breadcrumb
+*******************************/
+
+.ui.breadcrumb {
+ margin: 1em 0em;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.ui.breadcrumb:first-child {
+ margin-top: 0em;
+}
+
+.ui.breadcrumb:last-child {
+ margin-bottom: 0em;
+}
+
+/*******************************
+ Content
+*******************************/
+
+.ui.breadcrumb .divider {
+ display: inline-block;
+ opacity: 0.5;
+ margin: 0em 0.15em 0em;
+ font-size: 1em;
+ color: rgba(0, 0, 0, 0.3);
+}
+
+.ui.breadcrumb a.section {
+ cursor: pointer;
+}
+
+.ui.breadcrumb .section {
+ display: inline-block;
+ margin: 0em;
+ padding: 0em;
+}
+
+/* Loose Coupling */
+
+.ui.breadcrumb.segment {
+ display: inline-block;
+ padding: 0.5em 1em;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.breadcrumb .active.section {
+ font-weight: bold;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.small.breadcrumb {
+ font-size: 0.75em;
+}
+
+.ui.large.breadcrumb {
+ font-size: 1.1em;
+}
+
+.ui.huge.breadcrumb {
+ font-size: 1.3em;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/collections/form.css b/css/semantic/build/uncompressed/collections/form.css
new file mode 100644
index 0000000..da03b23
--- /dev/null
+++ b/css/semantic/build/uncompressed/collections/form.css
@@ -0,0 +1,627 @@
+/*
+ * # Semantic - Form
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------------
+ Form
+---------------------*/
+
+.ui.form {
+ position: relative;
+ max-width: 100%;
+}
+
+.ui.form :first-child {
+ margin-top: 0em;
+}
+
+.ui.form :last-child {
+ margin-bottom: 0em;
+}
+
+/*--------------------
+ Content
+---------------------*/
+
+.ui.form > p {
+ margin: 1em 0;
+}
+
+/*--------------------
+ Field
+---------------------*/
+
+.ui.form .field {
+ clear: both;
+ margin: 0em 0em 1em;
+}
+
+/*--------------------
+ Labels
+---------------------*/
+
+.ui.form .field > label {
+ margin: 0em 0em 0.3em;
+ display: block;
+ color: #555555;
+ font-size: 0.875em;
+}
+
+/*--------------------
+ Standard Inputs
+---------------------*/
+
+.ui.form textarea,
+.ui.form input[type="text"],
+.ui.form input[type="email"],
+.ui.form input[type="date"],
+.ui.form input[type="password"],
+.ui.form input[type="number"],
+.ui.form input[type="url"],
+.ui.form input[type="tel"],
+.ui.form .ui.input {
+ width: 100%;
+}
+
+.ui.form textarea,
+.ui.form input[type="text"],
+.ui.form input[type="email"],
+.ui.form input[type="date"],
+.ui.form input[type="password"],
+.ui.form input[type="number"],
+.ui.form input[type="url"],
+.ui.form input[type="tel"] {
+ margin: 0em;
+ padding: 0.65em 1em;
+ font-size: 1em;
+ background-color: #FFFFFF;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ outline: none;
+ color: rgba(0, 0, 0, 0.7);
+ border-radius: 0.3125em;
+ -webkit-transition: background-color 0.3s ease-out, -webkit-box-shadow 0.2s ease, border-color 0.2s ease;
+ -moz-transition: background-color 0.3s ease-out, box-shadow 0.2s ease, border-color 0.2s ease;
+ transition: background-color 0.3s ease-out, box-shadow 0.2s ease, border-color 0.2s ease;
+ -webkit-box-shadow: 0em 0em 0em 0em rgba(0, 0, 0, 0.3) inset;
+ box-shadow: 0em 0em 0em 0em rgba(0, 0, 0, 0.3) inset;
+ -webkit-appearance: none;
+ -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.textarea,
+.ui.form textarea {
+ line-height: 1.33;
+ min-height: 8em;
+ height: 12em;
+ max-height: 24em;
+ resize: vertical;
+}
+
+.ui.form textarea,
+.ui.form input[type="checkbox"] {
+ vertical-align: top;
+}
+
+/*--------------------
+ Dividers
+---------------------*/
+
+.ui.form .divider {
+ clear: both;
+ margin: 1em 0em;
+}
+
+/*--------------------
+ Types of Messages
+---------------------*/
+
+.ui.form .info.message,
+.ui.form .warning.message,
+.ui.form .error.message {
+ display: none;
+}
+
+/* Assumptions */
+
+.ui.form .message:first-child {
+ margin-top: 0px;
+}
+
+/*--------------------
+ Validation Prompt
+---------------------*/
+
+.ui.form .field .prompt.label {
+ white-space: nowrap;
+}
+
+.ui.form .inline.field .prompt {
+ margin-top: 0em;
+ margin-left: 1em;
+}
+
+.ui.form .inline.field .prompt:before {
+ margin-top: -0.3em;
+ bottom: auto;
+ right: auto;
+ top: 50%;
+ left: 0em;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------------
+ Focus
+---------------------*/
+
+.ui.form input[type="text"]:focus,
+.ui.form input[type="email"]:focus,
+.ui.form input[type="date"]:focus,
+.ui.form input[type="password"]:focus,
+.ui.form input[type="number"]:focus,
+.ui.form input[type="url"]:focus,
+.ui.form input[type="tel"]:focus,
+.ui.form textarea:focus {
+ color: rgba(0, 0, 0, 0.85);
+ border-color: rgba(0, 0, 0, 0.2);
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+ -webkit-appearance: none;
+ -webkit-box-shadow: 0.3em 0em 0em 0em rgba(0, 0, 0, 0.2) inset;
+ box-shadow: 0.3em 0em 0em 0em rgba(0, 0, 0, 0.2) inset;
+}
+
+/*--------------------
+ Error
+---------------------*/
+
+/* On Form */
+
+.ui.form.warning .warning.message {
+ display: block;
+}
+
+/*--------------------
+ Warning
+---------------------*/
+
+/* On Form */
+
+.ui.form.error .error.message {
+ display: block;
+}
+
+/* On Field(s) */
+
+.ui.form .fields.error .field label,
+.ui.form .field.error label,
+.ui.form .fields.error .field .input,
+.ui.form .field.error .input {
+ color: #D95C5C;
+}
+
+.ui.form .fields.error .field .corner.label,
+.ui.form .field.error .corner.label {
+ border-color: #D95C5C;
+ color: #FFFFFF;
+}
+
+.ui.form .fields.error .field textarea,
+.ui.form .fields.error .field input[type="text"],
+.ui.form .fields.error .field input[type="email"],
+.ui.form .fields.error .field input[type="date"],
+.ui.form .fields.error .field input[type="password"],
+.ui.form .fields.error .field input[type="number"],
+.ui.form .fields.error .field input[type="url"],
+.ui.form .fields.error .field input[type="tel"],
+.ui.form .field.error textarea,
+.ui.form .field.error input[type="text"],
+.ui.form .field.error input[type="email"],
+.ui.form .field.error input[type="date"],
+.ui.form .field.error input[type="password"],
+.ui.form .field.error input[type="number"],
+.ui.form .field.error input[type="url"],
+.ui.form .field.error input[type="tel"] {
+ background-color: #FFFAFA;
+ border-color: #E7BEBE;
+ border-left: none;
+ color: #D95C5C;
+ padding-left: 1.2em;
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+ -webkit-box-shadow: 0.3em 0em 0em 0em #D95C5C inset;
+ box-shadow: 0.3em 0em 0em 0em #D95C5C inset;
+}
+
+.ui.form .field.error textarea:focus,
+.ui.form .field.error input[type="text"]:focus,
+.ui.form .field.error input[type="email"]:focus,
+.ui.form .field.error input[type="date"]:focus,
+.ui.form .field.error input[type="password"]:focus,
+.ui.form .field.error input[type="number"]:focus,
+.ui.form .field.error input[type="url"]:focus,
+.ui.form .field.error input[type="tel"]:focus {
+ border-color: #ff5050;
+ color: #ff5050;
+ -webkit-appearance: none;
+ -webkit-box-shadow: 0.3em 0em 0em 0em #FF5050 inset;
+ box-shadow: 0.3em 0em 0em 0em #FF5050 inset;
+}
+
+/*----------------------------
+ Dropdown Selection Warning
+-----------------------------*/
+
+.ui.form .fields.error .field .ui.dropdown,
+.ui.form .fields.error .field .ui.dropdown .item,
+.ui.form .field.error .ui.dropdown,
+.ui.form .field.error .ui.dropdown .item {
+ background-color: #FFFAFA;
+ color: #D95C5C;
+}
+
+.ui.form .fields.error .field .ui.dropdown,
+.ui.form .field.error .ui.dropdown {
+ -webkit-box-shadow: 0px 0px 0px 1px #E7BEBE !important;
+ box-shadow: 0px 0px 0px 1px #E7BEBE !important;
+}
+
+.ui.form .fields.error .field .ui.dropdown:hover,
+.ui.form .field.error .ui.dropdown:hover {
+ -webkit-box-shadow: 0px 0px 0px 1px #E7BEBE !important;
+ box-shadow: 0px 0px 0px 1px #E7BEBE !important;
+}
+
+.ui.form .fields.error .field .ui.dropdown:hover .menu,
+.ui.form .field.error .ui.dropdown:hover .menu {
+ -webkit-box-shadow: 0px 1px 0px 1px #E7BEBE;
+ box-shadow: 0px 1px 0px 1px #E7BEBE;
+}
+
+.ui.form .fields.error .field .ui.dropdown .menu .item:hover,
+.ui.form .field.error .ui.dropdown .menu .item:hover {
+ background-color: #FFF2F2;
+}
+
+.ui.form .fields.error .field .ui.dropdown .menu .active.item,
+.ui.form .field.error .ui.dropdown .menu .active.item {
+ background-color: #FDCFCF !important;
+}
+
+/*--------------------
+ Empty (Placeholder)
+---------------------*/
+
+/* browsers require these rules separate */
+
+.ui.form ::-webkit-input-placeholder {
+ color: #AAAAAA;
+}
+
+.ui.form ::-moz-placeholder {
+ color: #AAAAAA;
+}
+
+.ui.form :focus::-webkit-input-placeholder {
+ color: #999999;
+}
+
+.ui.form :focus::-moz-placeholder {
+ color: #999999;
+}
+
+/* Error Placeholder */
+
+.ui.form .error ::-webkit-input-placeholder {
+ color: rgba(255, 80, 80, 0.4);
+}
+
+.ui.form .error ::-moz-placeholder {
+ color: rgba(255, 80, 80, 0.4);
+}
+
+.ui.form .error :focus::-webkit-input-placeholder {
+ color: rgba(255, 80, 80, 0.7);
+}
+
+.ui.form .error :focus::-moz-placeholder {
+ color: rgba(255, 80, 80, 0.7);
+}
+
+/*--------------------
+ Disabled
+---------------------*/
+
+.ui.form .field :disabled,
+.ui.form .field.disabled {
+ opacity: 0.5;
+}
+
+.ui.form .field.disabled label {
+ opacity: 0.5;
+}
+
+.ui.form .field.disabled :disabled {
+ opacity: 1;
+}
+
+/*--------------------
+ Loading State
+---------------------*/
+
+/* On Form */
+
+.ui.form.loading {
+ position: relative;
+}
+
+.ui.form.loading:after {
+ position: absolute;
+ top: 0%;
+ left: 0%;
+ content: '';
+ width: 100%;
+ height: 100%;
+ background: rgba(255, 255, 255, 0.8) url(../images/loader-large.gif) no-repeat 50% 50%;
+ visibility: visible;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------------
+ Fluid Width
+---------------------*/
+
+.ui.form.fluid {
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*--------------------------
+ Input w/ attached Button
+---------------------------*/
+
+.ui.form input.attached {
+ width: auto;
+}
+
+/*--------------------
+ Date Input
+---------------------*/
+
+.ui.form .date.field > label {
+ position: relative;
+}
+
+.ui.form .date.field > label:after {
+ position: absolute;
+ top: 2em;
+ right: 0.5em;
+ font-family: 'Icons';
+ content: '\f133';
+ font-size: 1.2em;
+ font-weight: normal;
+ color: #CCCCCC;
+}
+
+/*--------------------
+ Inverted Colors
+---------------------*/
+
+.ui.inverted.form label {
+ color: #FFFFFF;
+}
+
+.ui.inverted.form .field.error textarea,
+.ui.inverted.form .field.error input[type="text"],
+.ui.inverted.form .field.error input[type="email"],
+.ui.inverted.form .field.error input[type="date"],
+.ui.inverted.form .field.error input[type="password"],
+.ui.inverted.form .field.error input[type="number"],
+.ui.inverted.form .field.error input[type="url"],
+.ui.inverted.form .field.error input[type="tel"] {
+ background-color: #FFCCCC;
+}
+
+.ui.inverted.form .ui.checkbox label {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.form .ui.checkbox label:hover,
+.ui.inverted.form .ui.checkbox .box:hover {
+ color: #FFFFFF;
+}
+
+/*--------------------
+ Field Groups
+---------------------*/
+
+/* Grouped Vertically */
+
+.ui.form .grouped.fields {
+ margin: 0em 0em 1em;
+}
+
+.ui.form .grouped.fields .field {
+ display: block;
+ float: none;
+ margin: 0.5em 0em;
+ padding: 0em;
+}
+
+/*--------------------
+ Fields
+---------------------*/
+
+/* Split fields */
+
+.ui.form .fields {
+ clear: both;
+}
+
+.ui.form .fields:after {
+ content: ' ';
+ display: block;
+ clear: both;
+ visibility: hidden;
+ line-height: 0;
+ height: 0;
+}
+
+.ui.form .fields > .field {
+ clear: none;
+ float: left;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.form .fields > .field:first-child {
+ border-left: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* Other Combinations */
+
+.ui.form .two.fields > .fields,
+.ui.form .two.fields > .field {
+ width: 50%;
+ padding-left: 1%;
+ padding-right: 1%;
+}
+
+.ui.form .three.fields > .fields,
+.ui.form .three.fields > .field {
+ width: 33.333%;
+ padding-left: 1%;
+ padding-right: 1%;
+}
+
+.ui.form .four.fields > .fields,
+.ui.form .four.fields > .field {
+ width: 25%;
+ padding-left: 1%;
+ padding-right: 1%;
+}
+
+.ui.form .five.fields > .fields,
+.ui.form .five.fields > .field {
+ width: 20%;
+ padding-left: 1%;
+ padding-right: 1%;
+}
+
+/* Swap to full width on mobile */
+
+@media only screen and (max-width: 767px) {
+ .ui.form .two.fields > .fields,
+ .ui.form .two.fields > .field,
+ .ui.form .three.fields > .fields,
+ .ui.form .three.fields > .field,
+ .ui.form .four.fields > .fields,
+ .ui.form .four.fields > .field,
+ .ui.form .five.fields > .fields,
+ .ui.form .five.fields > .field {
+ width: 100%;
+ padding-left: 0%;
+ padding-right: 0%;
+ }
+}
+
+.ui.form .fields .field:first-child {
+ padding-left: 0%;
+}
+
+.ui.form .fields .field:last-child {
+ padding-right: 0%;
+}
+
+/*--------------------
+ Inline Fields
+---------------------*/
+
+.ui.form .inline.fields .field {
+ min-height: 1.3em;
+ margin-right: 0.5em;
+}
+
+.ui.form .inline.fields .field > label,
+.ui.form .inline.fields .field > p,
+.ui.form .inline.fields .field > input,
+.ui.form .inline.field > label,
+.ui.form .inline.field > p,
+.ui.form .inline.field > input {
+ display: inline-block;
+ width: auto;
+ margin-top: 0em;
+ margin-bottom: 0em;
+ vertical-align: middle;
+ font-size: 1em;
+}
+
+.ui.form .inline.fields .field > input,
+.ui.form .inline.field > input {
+ font-size: 0.875em;
+}
+
+.ui.form .inline.fields .field > :first-child,
+.ui.form .inline.field > :first-child {
+ margin: 0em 0.5em 0em 0em;
+}
+
+.ui.form .inline.fields .field > :only-child,
+.ui.form .inline.field > :only-child {
+ margin: 0em;
+}
+
+/*--------------------
+ Sizes
+---------------------*/
+
+/* Standard */
+
+.ui.small.form {
+ font-size: 0.875em;
+}
+
+.ui.small.form textarea,
+.ui.small.form input[type="text"],
+.ui.small.form input[type="email"],
+.ui.small.form input[type="date"],
+.ui.small.form input[type="password"],
+.ui.small.form input[type="number"],
+.ui.small.form input[type="url"],
+.ui.small.form input[type="tel"],
+.ui.small.form label {
+ font-size: 1em;
+}
+
+/* Large */
+
+.ui.large.form {
+ font-size: 1.125em;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/collections/grid.css b/css/semantic/build/uncompressed/collections/grid.css
new file mode 100644
index 0000000..6435230
--- /dev/null
+++ b/css/semantic/build/uncompressed/collections/grid.css
@@ -0,0 +1,902 @@
+/*
+ * # Semantic - Grid
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Grid
+*******************************/
+
+.ui.grid {
+ display: block;
+ text-align: left;
+ font-size: 0em;
+ margin: 0% -1.5%;
+ padding: 0%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+body > .ui.grid {
+ margin-left: 0% !important;
+ margin-right: 0% !important;
+}
+
+.ui.grid:after,
+.ui.row:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+/*-------------------
+ Columns
+--------------------*/
+
+/* Standard 16 column */
+
+.ui.grid > .column,
+.ui.grid > .row > .column {
+ display: inline-block;
+ text-align: left;
+ font-size: 1rem;
+ width: 6.25%;
+ padding-left: 1.5%;
+ padding-right: 1.5%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ vertical-align: top;
+}
+
+/* Vertical padding when no rows */
+
+.ui.grid > .column {
+ margin-top: 1rem;
+ margin-bottom: 1rem;
+}
+
+/*-------------------
+ Rows
+--------------------*/
+
+.ui.grid > .row {
+ display: block;
+ width: 100% !important;
+ margin-top: 1.5%;
+ padding: 1rem 0% 0%;
+ font-size: 0rem;
+}
+
+.ui.grid > .row:first-child {
+ padding-top: 0rem;
+ margin-top: 0rem;
+}
+
+/*-------------------
+ Content
+--------------------*/
+
+.ui.grid > .row > img,
+.ui.grid > .row > .column > img {
+ max-width: 100%;
+}
+
+.ui.grid .column > .ui.segment:only-child {
+ margin: 0em;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-----------------------
+ Page Grid (Responsive)
+-------------------------*/
+
+.ui.page.grid {
+ min-width: 320px;
+ margin-left: 0%;
+ margin-right: 0%;
+}
+
+@media only screen and (max-width: 991px) {
+ .ui.page.grid {
+ padding: 0% 4%;
+ }
+}
+
+@media only screen and (min-width: 992px) {
+ .ui.page.grid {
+ padding: 0% 8%;
+ }
+}
+
+@media only screen and (min-width: 1500px) {
+ .ui.page.grid {
+ padding: 0% 13%;
+ }
+}
+
+@media only screen and (min-width: 1750px) {
+ .ui.page.grid {
+ padding: 0% 18%;
+ }
+}
+
+@media only screen and (min-width: 2000px) {
+ .ui.page.grid {
+ padding: 0% 23%;
+ }
+}
+
+/*-------------------
+ Column Width
+--------------------*/
+
+/* Sizing Combinations */
+
+.ui.grid > .row > .one.wide.column,
+.ui.grid > .column.row > .one.wide.column,
+.ui.grid > .one.wide.column,
+.ui.column.grid > .one.wide.column {
+ width: 6.25%;
+}
+
+.ui.grid > .row > .two.wide.column,
+.ui.grid > .column.row > .two.wide.column,
+.ui.grid > .two.wide.column,
+.ui.column.grid > .two.wide.column {
+ width: 12.5%;
+}
+
+.ui.grid > .row > .three.wide.column,
+.ui.grid > .column.row > .three.wide.column,
+.ui.grid > .three.wide.column,
+.ui.column.grid > .three.wide.column {
+ width: 18.75%;
+}
+
+.ui.grid > .row > .four.wide.column,
+.ui.grid > .column.row > .four.wide.column,
+.ui.grid > .four.wide.column,
+.ui.column.grid > .four.wide.column {
+ width: 25%;
+}
+
+.ui.grid > .row > .five.wide.column,
+.ui.grid > .column.row > .five.wide.column,
+.ui.grid > .five.wide.column,
+.ui.column.grid > .five.wide.column {
+ width: 31.25%;
+}
+
+.ui.grid > .row > .six.wide.column,
+.ui.grid > .column.row > .six.wide.column,
+.ui.grid > .six.wide.column,
+.ui.column.grid > .six.wide.column {
+ width: 37.5%;
+}
+
+.ui.grid > .row > .seven.wide.column,
+.ui.grid > .column.row > .seven.wide.column,
+.ui.grid > .seven.wide.column,
+.ui.column.grid > .seven.wide.column {
+ width: 43.75%;
+}
+
+.ui.grid > .row > .eight.wide.column,
+.ui.grid > .column.row > .eight.wide.column,
+.ui.grid > .eight.wide.column,
+.ui.column.grid > .eight.wide.column {
+ width: 50%;
+}
+
+.ui.grid > .row > .nine.wide.column,
+.ui.grid > .column.row > .nine.wide.column,
+.ui.grid > .nine.wide.column,
+.ui.column.grid > .nine.wide.column {
+ width: 56.25%;
+}
+
+.ui.grid > .row > .ten.wide.column,
+.ui.grid > .column.row > .ten.wide.column,
+.ui.grid > .ten.wide.column,
+.ui.column.grid > .ten.wide.column {
+ width: 62.5%;
+}
+
+.ui.grid > .row > .eleven.wide.column,
+.ui.grid > .column.row > .eleven.wide.column,
+.ui.grid > .eleven.wide.column,
+.ui.column.grid > .eleven.wide.column {
+ width: 68.75%;
+}
+
+.ui.grid > .row > .twelve.wide.column,
+.ui.grid > .column.row > .twelve.wide.column,
+.ui.grid > .twelve.wide.column,
+.ui.column.grid > .twelve.wide.column {
+ width: 75%;
+}
+
+.ui.grid > .row > .thirteen.wide.column,
+.ui.grid > .column.row > .thirteen.wide.column,
+.ui.grid > .thirteen.wide.column,
+.ui.column.grid > .thirteen.wide.column {
+ width: 81.25%;
+}
+
+.ui.grid > .row > .fourteen.wide.column,
+.ui.grid > .column.row > .fourteen.wide.column,
+.ui.grid > .fourteen.wide.column,
+.ui.column.grid > .fourteen.wide.column {
+ width: 87.5%;
+}
+
+.ui.grid > .row > .fifteen.wide.column,
+.ui.grid > .column.row > .fifteen.wide.column,
+.ui.grid > .fifteen.wide.column,
+.ui.column.grid > .fifteen.wide.column {
+ width: 93.75%;
+}
+
+.ui.grid > .row > .sixteen.wide.column,
+.ui.grid > .column.row > .sixteen.wide.column,
+.ui.grid > .sixteen.wide.column,
+.ui.column.grid > .sixteen.wide.column {
+ width: 100%;
+}
+
+/*-------------------
+ Column Count
+--------------------*/
+
+/* Assume full width with one column */
+
+.ui.one.column.grid > .row > .column,
+.ui.one.column.grid > .column,
+.ui.grid > .one.column.row > .column {
+ width: 100%;
+}
+
+.ui.two.column.grid > .row > .column,
+.ui.two.column.grid > .column,
+.ui.grid > .two.column.row > .column {
+ width: 50%;
+}
+
+.ui.three.column.grid > .row > .column,
+.ui.three.column.grid > .column,
+.ui.grid > .three.column.row > .column {
+ width: 33.3333%;
+}
+
+.ui.four.column.grid > .row > .column,
+.ui.four.column.grid > .column,
+.ui.grid > .four.column.row > .column {
+ width: 25%;
+}
+
+.ui.five.column.grid > .row > .column,
+.ui.five.column.grid > .column,
+.ui.grid > .five.column.row > .column {
+ width: 20%;
+}
+
+.ui.six.column.grid > .row > .column,
+.ui.six.column.grid > .column,
+.ui.grid > .six.column.row > .column {
+ width: 16.66667%;
+}
+
+.ui.seven.column.grid > .row > .column,
+.ui.seven.column.grid > .column,
+.ui.grid > .seven.column.row > .column {
+ width: 14.2857%;
+}
+
+.ui.eight.column.grid > .row > .column,
+.ui.eight.column.grid > .column,
+.ui.grid > .eight.column.row > .column {
+ width: 12.5%;
+}
+
+.ui.nine.column.grid > .row > .column,
+.ui.nine.column.grid > .column,
+.ui.grid > .nine.column.row > .column {
+ width: 11.1111%;
+}
+
+.ui.ten.column.grid > .row > .column,
+.ui.ten.column.grid > .column,
+.ui.grid > .ten.column.row > .column {
+ width: 10%;
+}
+
+.ui.eleven.column.grid > .row > .column,
+.ui.eleven.column.grid > .column,
+.ui.grid > .eleven.column.row > .column {
+ width: 9.0909%;
+}
+
+.ui.twelve.column.grid > .row > .column,
+.ui.twelve.column.grid > .column,
+.ui.grid > .twelve.column.row > .column {
+ width: 8.3333%;
+}
+
+.ui.thirteen.column.grid > .row > .column,
+.ui.thirteen.column.grid > .column,
+.ui.grid > .thirteen.column.row > .column {
+ width: 7.6923%;
+}
+
+.ui.fourteen.column.grid > .row > .column,
+.ui.fourteen.column.grid > .column,
+.ui.grid > .fourteen.column.row > .column {
+ width: 7.1428%;
+}
+
+.ui.fifteen.column.grid > .row > .column,
+.ui.fifteen.column.grid > .column,
+.ui.grid > .fifteen.column.row > .column {
+ width: 6.6666%;
+}
+
+.ui.sixteen.column.grid > .row > .column,
+.ui.sixteen.column.grid > .column,
+.ui.grid > .sixteen.column.row > .column {
+ width: 6.25%;
+}
+
+/* Assume full width with one column */
+
+.ui.grid > .column:only-child,
+.ui.grid > .row > .column:only-child {
+ width: 100%;
+}
+
+/*----------------------
+ Relaxed
+-----------------------*/
+
+.ui.relaxed.grid {
+ margin: 0% -2.5%;
+}
+
+.ui.relaxed.grid > .column,
+.ui.relaxed.grid > .row > .column {
+ padding-left: 2.5%;
+ padding-right: 2.5%;
+}
+
+/*----------------------
+ "Floated"
+-----------------------*/
+
+.ui.grid .left.floated.column {
+ float: left;
+}
+
+.ui.grid .right.floated.column {
+ float: right;
+}
+
+/*----------------------
+ Divided
+-----------------------*/
+
+.ui.divided.grid,
+.ui.divided.grid > .row {
+ display: table;
+ width: 100%;
+ margin-left: 0% !important;
+ margin-right: 0% !important;
+}
+
+.ui.divided.grid > .column:not(.row),
+.ui.divided.grid > .row > .column {
+ display: table-cell;
+ -webkit-box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.1), -2px 0px 0px 0px rgba(255, 255, 255, 0.8);
+ box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.1), -2px 0px 0px 0px rgba(255, 255, 255, 0.8);
+}
+
+.ui.divided.grid > .column.row {
+ display: table;
+}
+
+.ui.divided.grid > .column:first-child,
+.ui.divided.grid > .row > .column:first-child {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* Vertically Divided */
+
+.ui.vertically.divided.grid > .row {
+ -webkit-box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1), 0px -2px 0px 0px rgba(255, 255, 255, 0.8) !important;
+ box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1), 0px -2px 0px 0px rgba(255, 255, 255, 0.8) !important;
+}
+
+.ui.vertically.divided.grid > .row > .column,
+.ui.vertically.divided.grid > .column:not(.row),
+.ui.vertically.divided.grid > .row:first-child {
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+/*----------------------
+ Celled
+-----------------------*/
+
+.ui.celled.grid {
+ display: table;
+ width: 100%;
+ margin-left: 0% !important;
+ margin-right: 0% !important;
+ -webkit-box-shadow: 0px 0px 0px 1px #DFDFDF;
+ box-shadow: 0px 0px 0px 1px #DFDFDF;
+}
+
+.ui.celled.grid > .row,
+.ui.celled.grid > .column.row,
+.ui.celled.grid > .column.row:first-child {
+ display: table;
+ width: 100%;
+ margin-top: 0em;
+ padding-top: 0em;
+ -webkit-box-shadow: 0px -1px 0px 0px #dfdfdf;
+ box-shadow: 0px -1px 0px 0px #dfdfdf;
+}
+
+.ui.celled.grid > .column:not(.row),
+.ui.celled.grid > .row > .column {
+ display: table-cell;
+ padding: 0.75em;
+ -webkit-box-shadow: -1px 0px 0px 0px #dfdfdf;
+ box-shadow: -1px 0px 0px 0px #dfdfdf;
+}
+
+.ui.celled.grid > .column:first-child,
+.ui.celled.grid > .row > .column:first-child {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.celled.page.grid {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*----------------------
+ Horizontally Centered
+-----------------------*/
+
+/* Vertical Centered */
+
+.ui.left.aligned.grid,
+.ui.left.aligned.grid > .row > .column,
+.ui.left.aligned.grid > .column,
+.ui.grid .left.aligned.column,
+.ui.grid > .left.aligned.row > .column {
+ text-align: left;
+}
+
+.ui.center.aligned.grid,
+.ui.center.aligned.grid > .row > .column,
+.ui.center.aligned.grid > .column,
+.ui.grid .center.aligned.column,
+.ui.grid > .center.aligned.row > .column {
+ text-align: center;
+}
+
+.ui.right.aligned.grid,
+.ui.right.aligned.grid > .row > .column,
+.ui.right.aligned.grid > .column,
+.ui.grid .right.aligned.column,
+.ui.grid > .right.aligned.row > .column {
+ text-align: right;
+}
+
+.ui.justified.grid,
+.ui.justified.grid > .row > .column,
+.ui.justified.grid > .column,
+.ui.grid .justified.column,
+.ui.grid > .justified.row > .column {
+ text-align: justify;
+ -webkit-hyphens: auto;
+ -moz-hyphens: auto;
+ -ms-hyphens: auto;
+ hyphens: auto;
+}
+
+/*----------------------
+ Vertically Centered
+-----------------------*/
+
+/* Vertical Centered */
+
+.ui.top.aligned.grid,
+.ui.top.aligned.grid > .row > .column,
+.ui.top.aligned.grid > .column,
+.ui.grid .top.aligned.column,
+.ui.grid > .top.aligned.row > .column {
+ vertical-align: top;
+}
+
+.ui.middle.aligned.grid,
+.ui.middle.aligned.grid > .row > .column,
+.ui.middle.aligned.grid > .column,
+.ui.grid .middle.aligned.column,
+.ui.grid > .middle.aligned.row > .column {
+ vertical-align: middle;
+}
+
+.ui.bottom.aligned.grid,
+.ui.bottom.aligned.grid > .row > .column,
+.ui.bottom.aligned.grid > .column,
+.ui.grid .bottom.aligned.column,
+.ui.grid > .bottom.aligned.row > .column {
+ vertical-align: bottom;
+}
+
+/*----------------------
+ Equal Height Columns
+-----------------------*/
+
+.ui.grid > .equal.height.row {
+ display: table;
+ width: 100%;
+}
+
+.ui.grid > .equal.height.row > .column {
+ display: table-cell;
+}
+
+/*----------------------
+ Only (Device)
+-----------------------*/
+
+/* Mobile Only */
+
+@media only screen and (max-width: 767px) {
+ .ui.mobile.only.grid,
+ .ui.grid > .mobile.only.row {
+ display: block !important;
+ }
+
+ .ui.grid > .row > .mobile.only.column {
+ display: inline-block !important;
+ }
+
+ .ui.divided.mobile.only.grid,
+ .ui.celled.mobile.only.grid,
+ .ui.divided.mobile.only.grid .row,
+ .ui.celled.mobile.only.grid .row,
+ .ui.divided.grid .mobile.only.row,
+ .ui.celled.grid .mobile.only.row,
+ .ui.grid .mobile.only.equal.height.row,
+ .ui.mobile.only.grid .equal.height.row {
+ display: table !important;
+ }
+
+ .ui.divided.grid > .row > .mobile.only.column,
+ .ui.celled.grid > .row > .mobile.only.column,
+ .ui.divided.mobile.only.grid > .row > .column,
+ .ui.celled.mobile.only.grid > .row > .column,
+ .ui.divided.mobile.only.grid > .column,
+ .ui.celled.mobile.only.grid > .column {
+ display: table-cell !important;
+ }
+}
+
+@media only screen and (min-width: 768px) {
+ .ui.mobile.only.grid,
+ .ui.grid > .mobile.only.row,
+ .ui.grid > .mobile.only.column,
+ .ui.grid > .row > .mobile.only.column {
+ display: none;
+ }
+}
+
+/* Tablet Only */
+
+@media only screen and (min-width: 768px) and (max-width: 991px) {
+ .ui.tablet.only.grid,
+ .ui.grid > .tablet.only.row {
+ display: block !important;
+ }
+
+ .ui.grid > .row > .tablet.only.column {
+ display: inline-block !important;
+ }
+
+ .ui.divided.tablet.only.grid,
+ .ui.celled.tablet.only.grid,
+ .ui.divided.tablet.only.grid .row,
+ .ui.celled.tablet.only.grid .row,
+ .ui.divided.grid .tablet.only.row,
+ .ui.celled.grid .tablet.only.row,
+ .ui.grid .tablet.only.equal.height.row,
+ .ui.tablet.only.grid .equal.height.row {
+ display: table !important;
+ }
+
+ .ui.divided.grid > .row > .tablet.only.column,
+ .ui.celled.grid > .row > .tablet.only.column,
+ .ui.divided.tablet.only.grid > .row > .column,
+ .ui.celled.tablet.only.grid > .row > .column,
+ .ui.divided.tablet.only.grid > .column,
+ .ui.celled.tablet.only.grid > .column {
+ display: table-cell !important;
+ }
+}
+
+@media only screen and (max-width: 767px), (min-width: 992px) {
+ .ui.tablet.only.grid,
+ .ui.grid > .tablet.only.row,
+ .ui.grid > .tablet.only.column,
+ .ui.grid > .row > .tablet.only.column {
+ display: none;
+ }
+}
+
+/* Computer Only */
+
+@media only screen and (min-width: 992px) {
+ .ui.computer.only.grid,
+ .ui.grid > .computer.only.row {
+ display: block !important;
+ }
+
+ .ui.grid > .row > .computer.only.column {
+ display: inline-block !important;
+ }
+
+ .ui.divided.computer.only.grid,
+ .ui.celled.computer.only.grid,
+ .ui.divided.computer.only.grid .row,
+ .ui.celled.computer.only.grid .row,
+ .ui.divided.grid .computer.only.row,
+ .ui.celled.grid .computer.only.row,
+ .ui.grid .computer.only.equal.height.row,
+ .ui.computer.only.grid .equal.height.row {
+ display: table !important;
+ }
+
+ .ui.divided.grid > .row > .computer.only.column,
+ .ui.celled.grid > .row > .computer.only.column,
+ .ui.divided.computer.only.grid > .row > .column,
+ .ui.celled.computer.only.grid > .row > .column,
+ .ui.divided.computer.only.grid > .column,
+ .ui.celled.computer.only.grid > .column {
+ display: table-cell !important;
+ }
+}
+
+@media only screen and (max-width: 991px) {
+ .ui.computer.only.grid,
+ .ui.grid > .computer.only.row,
+ .ui.grid > .computer.only.column,
+ .ui.grid > .row > .computer.only.column {
+ display: none;
+ }
+}
+
+/*-------------------
+ Doubling
+--------------------*/
+
+/* Mobily Only */
+
+@media only screen and (max-width: 767px) {
+ .ui.two.column.doubling.grid > .row > .column,
+ .ui.two.column.doubling.grid > .column,
+ .ui.grid > .two.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.three.column.doubling.grid > .row > .column,
+ .ui.three.column.doubling.grid > .column,
+ .ui.grid > .three.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.four.column.doubling.grid > .row > .column,
+ .ui.four.column.doubling.grid > .column,
+ .ui.grid > .four.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.five.column.doubling.grid > .row > .column,
+ .ui.five.column.doubling.grid > .column,
+ .ui.grid > .five.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.six.column.doubling.grid > .row > .column,
+ .ui.six.column.doubling.grid > .column,
+ .ui.grid > .six.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.seven.column.doubling.grid > .row > .column,
+ .ui.seven.column.doubling.grid > .column,
+ .ui.grid > .seven.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.eight.column.doubling.grid > .row > .column,
+ .ui.eight.column.doubling.grid > .column,
+ .ui.grid > .eight.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.nine.column.doubling.grid > .row > .column,
+ .ui.nine.column.doubling.grid > .column,
+ .ui.grid > .nine.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.ten.column.doubling.grid > .row > .column,
+ .ui.ten.column.doubling.grid > .column,
+ .ui.grid > .ten.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.twelve.column.doubling.grid > .row > .column,
+ .ui.twelve.column.doubling.grid > .column,
+ .ui.grid > .twelve.column.doubling.row > .column {
+ width: 33.3333333333333%;
+ }
+
+ .ui.fourteen.column.doubling.grid > .row > .column,
+ .ui.fourteen.column.doubling.grid > .column,
+ .ui.grid > .fourteen.column.doubling.row > .column {
+ width: 33.3333333333333%;
+ }
+
+ .ui.sixteen.column.doubling.grid > .row > .column,
+ .ui.sixteen.column.doubling.grid > .column,
+ .ui.grid > .sixteen.column.doubling.row > .column {
+ width: 25%;
+ }
+}
+
+/* Tablet Only */
+
+@media only screen and (min-width: 768px) and (max-width: 991px) {
+ .ui.two.column.doubling.grid > .row > .column,
+ .ui.two.column.doubling.grid > .column,
+ .ui.grid > .two.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.three.column.doubling.grid > .row > .column,
+ .ui.three.column.doubling.grid > .column,
+ .ui.grid > .three.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.four.column.doubling.grid > .row > .column,
+ .ui.four.column.doubling.grid > .column,
+ .ui.grid > .four.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.five.column.doubling.grid > .row > .column,
+ .ui.five.column.doubling.grid > .column,
+ .ui.grid > .five.column.doubling.row > .column {
+ width: 33.3333333%;
+ }
+
+ .ui.six.column.doubling.grid > .row > .column,
+ .ui.six.column.doubling.grid > .column,
+ .ui.grid > .six.column.doubling.row > .column {
+ width: 33.3333333%;
+ }
+
+ .ui.eight.column.doubling.grid > .row > .column,
+ .ui.eight.column.doubling.grid > .column,
+ .ui.grid > .eight.column.doubling.row > .column {
+ width: 33.3333333%;
+ }
+
+ .ui.eight.column.doubling.grid > .row > .column,
+ .ui.eight.column.doubling.grid > .column,
+ .ui.grid > .eight.column.doubling.row > .column {
+ width: 25%;
+ }
+
+ .ui.nine.column.doubling.grid > .row > .column,
+ .ui.nine.column.doubling.grid > .column,
+ .ui.grid > .nine.column.doubling.row > .column {
+ width: 25%;
+ }
+
+ .ui.ten.column.doubling.grid > .row > .column,
+ .ui.ten.column.doubling.grid > .column,
+ .ui.grid > .ten.column.doubling.row > .column {
+ width: 20%;
+ }
+
+ .ui.twelve.column.doubling.grid > .row > .column,
+ .ui.twelve.column.doubling.grid > .column,
+ .ui.grid > .twelve.column.doubling.row > .column {
+ width: 16.6666666%;
+ }
+
+ .ui.fourteen.column.doubling.grid > .row > .column,
+ .ui.fourteen.column.doubling.grid > .column,
+ .ui.grid > .fourteen.column.doubling.row > .column {
+ width: 14.28571428571429%;
+ }
+
+ .ui.sixteen.column.doubling.grid > .row > .column,
+ .ui.sixteen.column.doubling.grid > .column,
+ .ui.grid > .sixteen.column.doubling.row > .column {
+ width: 12.5%;
+ }
+}
+
+/*-------------------
+ Stackable
+--------------------*/
+
+@media only screen and (max-width: 767px) {
+ .ui.stackable.grid {
+ display: block !important;
+ padding: 0em;
+ margin: 0em;
+ }
+
+ .ui.stackable.grid > .row > .column,
+ .ui.stackable.grid > .column {
+ display: block !important;
+ width: auto !important;
+ margin: 1em 0em 0em !important;
+ padding: 1em 0em 0em !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+ }
+
+ .ui.stackable.divided.grid .column,
+ .ui.stackable.celled.grid .column {
+ border-top: 1px dotted rgba(0, 0, 0, 0.1);
+ }
+
+ .ui.stackable.grid > .row:first-child > .column:first-child,
+ .ui.stackable.grid > .column:first-child {
+ margin-top: 0em !important;
+ padding-top: 0em !important;
+ }
+
+ .ui.stackable.divided.grid > .row:first-child > .column:first-child,
+ .ui.stackable.celled.grid > .row:first-child > .column:first-child,
+ .ui.stackable.divided.grid > .column:first-child,
+ .ui.stackable.celled.grid > .column:first-child {
+ border-top: none !important;
+ }
+
+ .ui.stackable.page.grid > .row > .column,
+ .ui.stackable.page.grid > .column {
+ padding-left: 1em !important;
+ padding-right: 1em !important;
+ }
+
+ /* Remove pointers from vertical menus */
+
+ .ui.stackable.grid .vertical.pointing.menu .item:after {
+ display: none;
+ }
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/collections/menu.css b/css/semantic/build/uncompressed/collections/menu.css
new file mode 100644
index 0000000..9c9b8bb
--- /dev/null
+++ b/css/semantic/build/uncompressed/collections/menu.css
@@ -0,0 +1,1742 @@
+/*
+ * # Semantic - Menu
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------
+ Menu
+---------------*/
+
+.ui.menu {
+ margin: 1rem 0rem;
+ background-color: #FFFFFF;
+ font-size: 0px;
+ font-weight: normal;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ border-radius: 0.1875rem;
+}
+
+.ui.menu:first-child {
+ margin-top: 0rem;
+}
+
+.ui.menu:last-child {
+ margin-bottom: 0rem;
+}
+
+.ui.menu:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+.ui.menu > .item:first-child {
+ border-radius: 0.1875em 0px 0px 0.1875em;
+}
+
+.ui.menu > .item:last-child {
+ border-radius: 0px 0.1875em 0.1875em 0px;
+}
+
+.ui.menu .item {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ vertical-align: middle;
+ line-height: 1;
+ text-decoration: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-transition: opacity 0.2s ease, background 0.2s ease, -webkit-box-shadow 0.2s ease;
+ -moz-transition: opacity 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
+ transition: opacity 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
+}
+
+/*--------------
+ Colors
+---------------*/
+
+/* Text Color */
+
+.ui.menu .item,
+.ui.menu .item > a:not(.button) {
+ color: rgba(0, 0, 0, 0.75);
+}
+
+.ui.menu .item .item,
+.ui.menu .item .item > a:not(.button) {
+ color: rgba(30, 30, 30, 0.7);
+}
+
+.ui.menu .item .item .item,
+.ui.menu .item .item .item > a:not(.button) {
+ color: rgba(30, 30, 30, 0.6);
+}
+
+.ui.menu .dropdown .menu .item,
+.ui.menu .dropdown .menu .item a:not(.button) {
+ color: rgba(0, 0, 0, 0.75);
+}
+
+/* Hover */
+
+.ui.menu .item .menu a.item:hover,
+.ui.menu .item .menu .link.item:hover {
+ color: rgba(0, 0, 0, 0.85);
+}
+
+.ui.menu .dropdown .menu .item a:not(.button):hover {
+ color: rgba(0, 0, 0, 0.85);
+}
+
+/* Active */
+
+.ui.menu .active.item,
+.ui.menu .active.item a:not(.button) {
+ color: rgba(0, 0, 0, 0.85);
+ border-radius: 0px;
+}
+
+/*--------------
+ Items
+---------------*/
+
+.ui.menu .item {
+ position: relative;
+ display: inline-block;
+ padding: 0.83em 0.95em;
+ border-top: 0em solid rgba(0, 0, 0, 0);
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -moz-user-select: -moz-none;
+ -khtml-user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.ui.menu .menu {
+ margin: 0em;
+}
+
+.ui.menu .item.left,
+.ui.menu .menu.left {
+ float: left;
+}
+
+.ui.menu .item.right,
+.ui.menu .menu.right {
+ float: right;
+}
+
+/*--------------
+ Borders
+---------------*/
+
+.ui.menu .item:before {
+ position: absolute;
+ content: '';
+ top: 0%;
+ left: 0px;
+ width: 1px;
+ height: 100%;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.05)), color-stop(50%, rgba(0, 0, 0, 0.1)), to(rgba(0, 0, 0, 0.05)));
+ background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.1) 50%, rgba(0, 0, 0, 0.05) 100%);
+ background-image: -moz-linear-gradient(rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.1) 50%, rgba(0, 0, 0, 0.05) 100%);
+ background-image: linear-gradient(rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.1) 50%, rgba(0, 0, 0, 0.05) 100%);
+}
+
+.ui.menu > .menu:not(.right):first-child > .item:first-child:before,
+.ui.menu .item:first-child:before {
+ display: none;
+}
+
+.ui.menu .menu.right .item:before,
+.ui.menu .item.right:before {
+ right: auto;
+ left: 0px;
+}
+
+/*--------------
+ Text Content
+---------------*/
+
+.ui.menu .text.item > *,
+.ui.menu .item > p:only-child {
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+ line-height: 1.3;
+ color: rgba(0, 0, 0, 0.6);
+}
+
+.ui.menu .item > p:first-child {
+ margin-top: 0px;
+}
+
+.ui.menu .item > p:last-child {
+ margin-bottom: 0px;
+}
+
+/*--------------
+ Button
+---------------*/
+
+.ui.menu:not(.vertical) .item > .button {
+ position: relative;
+ top: -0.05em;
+ margin: -0.55em 0;
+ padding-bottom: 0.55em;
+ padding-top: 0.55em;
+ font-size: 0.875em;
+}
+
+/*--------------
+ Inputs
+---------------*/
+
+.ui.menu:not(.vertical) .item > .input {
+ margin-top: -0.85em;
+ margin-bottom: -0.85em;
+ padding-top: 0.3em;
+ padding-bottom: 0.3em;
+ width: 100%;
+ vertical-align: top;
+}
+
+.ui.menu .item > .input input {
+ padding-top: 0.35em;
+ padding-bottom: 0.35em;
+}
+
+.ui.vertical.menu .item > .input input {
+ margin: 0em;
+ padding-top: 0.63em;
+ padding-bottom: 0.63em;
+}
+
+/* Action Input */
+
+.ui.menu:not(.vertical) .item > .button.labeled > .icon {
+ padding-top: 0.6em;
+}
+
+.ui.menu:not(.vertical) .item .action.input > .button {
+ font-size: 0.8em;
+ padding: 0.55em 0.8em;
+}
+
+/* Resizes */
+
+.ui.small.menu:not(.vertical) .item > .input input {
+ padding-top: 0.4em;
+ padding-bottom: 0.4em;
+}
+
+.ui.large.menu:not(.vertical) .item > .input input {
+ top: -0.125em;
+ padding-bottom: 0.6em;
+ padding-top: 0.6em;
+}
+
+.ui.large.menu:not(.vertical) .item .action.input > .button {
+ font-size: 0.8em;
+ padding: 0.9em;
+}
+
+.ui.large.menu:not(.vertical) .item .action.input > .button > .icon {
+ padding-top: 0.8em;
+}
+
+/*--------------
+ Header
+---------------*/
+
+.ui.menu .header.item {
+ background-color: rgba(0, 0, 0, 0.04);
+ margin: 0em;
+}
+
+.ui.vertical.menu .header.item {
+ font-weight: bold;
+}
+
+/*--------------
+ Dropdowns
+---------------*/
+
+.ui.menu .dropdown .menu .item .icon {
+ float: none;
+ margin: 0em 0.75em 0em 0em;
+}
+
+.ui.menu .dropdown.item .menu {
+ left: 1px;
+ margin: 0px;
+ min-width: -webkit-calc(99%);
+ min-width: -moz-calc(99%);
+ min-width: calc(99%);
+ -webkit-box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.secondary.menu .dropdown.item .menu {
+ left: 0px;
+ min-width: 100%;
+}
+
+.ui.menu .pointing.dropdown.item .menu {
+ margin-top: 0.75em;
+}
+
+.ui.menu .simple.dropdown.item .menu {
+ margin: 0px !important;
+}
+
+.ui.menu .dropdown.item .menu .item {
+ width: 100%;
+ color: rgba(0, 0, 0, 0.75);
+}
+
+.ui.menu .dropdown.item .menu .active.item {
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.ui.menu .ui.dropdown .menu .item:before {
+ display: none;
+}
+
+/*--------------
+ Labels
+---------------*/
+
+.ui.menu .item > .label {
+ background-color: rgba(0, 0, 0, 0.35);
+ color: #FFFFFF;
+ margin: -0.15em 0em -0.15em 0.5em;
+ padding: 0.3em 0.8em;
+ vertical-align: baseline;
+}
+
+.ui.menu .item > .floating.label {
+ padding: 0.3em 0.8em;
+}
+
+/*--------------
+ Images
+---------------*/
+
+.ui.menu .item > img:only-child {
+ display: block;
+ max-width: 100%;
+ margin: 0em auto;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.link.menu .item:hover,
+.ui.menu .link.item:hover,
+.ui.menu a.item:hover,
+.ui.menu .ui.dropdown .menu .item:hover {
+ cursor: pointer;
+ background-color: rgba(0, 0, 0, 0.02);
+}
+
+.ui.menu .ui.dropdown.item.active {
+ background-color: rgba(0, 0, 0, 0.02);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border-bottom-right-radius: 0em;
+ border-bottom-left-radius: 0em;
+}
+
+/*--------------
+ Down
+---------------*/
+
+.ui.link.menu .item:active,
+.ui.menu .link.item:active,
+.ui.menu a.item:active,
+.ui.menu .ui.dropdown .menu .item:active {
+ background-color: rgba(0, 0, 0, 0.05);
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.menu .active.item {
+ background-color: rgba(0, 0, 0, 0.01);
+ color: rgba(0, 0, 0, 0.95);
+ -webkit-box-shadow: 0em 0.2em 0em inset;
+ box-shadow: 0em 0.2em 0em inset;
+}
+
+.ui.vertical.menu .active.item {
+ border-radius: 0em;
+ -webkit-box-shadow: 0.2em 0em 0em inset;
+ box-shadow: 0.2em 0em 0em inset;
+}
+
+.ui.vertical.menu > .active.item:first-child {
+ border-radius: 0em 0.1875em 0em 0em;
+}
+
+.ui.vertical.menu > .active.item:last-child {
+ border-radius: 0em 0em 0.1875em 0em;
+}
+
+.ui.vertical.menu > .active.item:only-child {
+ border-radius: 0em 0.1875em 0.1875em 0em;
+}
+
+.ui.vertical.menu .active.item .menu .active.item {
+ border-left: none;
+}
+
+.ui.vertical.menu .active.item .menu .active.item {
+ padding-left: 1.5rem;
+}
+
+.ui.vertical.menu .item .menu .active.item {
+ background-color: rgba(0, 0, 0, 0.03);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*--------------
+ Disabled
+---------------*/
+
+.ui.menu .item.disabled,
+.ui.menu .item.disabled:hover {
+ cursor: default;
+ color: rgba(0, 0, 0, 0.2);
+ background-color: transparent !important;
+}
+
+/*--------------------
+ Loading
+---------------------*/
+
+/* On Form */
+
+.ui.menu.loading {
+ position: relative;
+}
+
+.ui.menu.loading:after {
+ position: absolute;
+ top: 0%;
+ left: 0%;
+ content: '';
+ width: 100%;
+ height: 100%;
+ background: rgba(255, 255, 255, 0.8) url(../images/loader-large.gif) no-repeat 50% 50%;
+ visibility: visible;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Vertical
+---------------*/
+
+.ui.vertical.menu .item {
+ display: block;
+ height: auto !important;
+ border-top: none;
+ border-left: 0em solid rgba(0, 0, 0, 0);
+ border-right: none;
+}
+
+.ui.vertical.menu > .item:first-child {
+ border-radius: 0.1875em 0.1875em 0px 0px;
+}
+
+.ui.vertical.menu > .item:last-child {
+ border-radius: 0px 0px 0.1875em 0.1875em;
+}
+
+.ui.vertical.menu .item > .label {
+ float: right;
+ text-align: center;
+}
+
+.ui.vertical.menu .item > i.icon {
+ float: right;
+ width: 1.22em;
+ margin: 0em 0em 0em 0.5em;
+}
+
+.ui.vertical.menu .item > .label + i.icon {
+ float: none;
+ margin: 0em 0.25em 0em 0em;
+}
+
+/*--- Border ---*/
+
+.ui.vertical.menu .item:before {
+ position: absolute;
+ content: '';
+ top: 0%;
+ left: 0px;
+ width: 100%;
+ height: 1px;
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.03) 0%, rgba(0, 0, 0, 0.1) 1.5em, rgba(0, 0, 0, 0.03) 100%);
+ background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.03) 0%, rgba(0, 0, 0, 0.1) 1.5em, rgba(0, 0, 0, 0.03) 100%);
+ background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.03)), color-stop(1.5em, rgba(0, 0, 0, 0.1)), to(rgba(0, 0, 0, 0.03)));
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.03) 0%, rgba(0, 0, 0, 0.1) 1.5em, rgba(0, 0, 0, 0.03) 100%);
+}
+
+.ui.vertical.menu .item:first-child:before {
+ background-image: none !important;
+}
+
+/*--- Dropdown ---*/
+
+.ui.vertical.menu .dropdown.item > i {
+ float: right;
+ content: "\f0da";
+}
+
+.ui.vertical.menu .dropdown.item .menu {
+ top: 0% !important;
+ left: 100%;
+ margin: 0px 0px 0px 1px;
+ -webkit-box-shadow: 0 0px 1px 1px #DDDDDD;
+ box-shadow: 0 0px 1px 1px #DDDDDD;
+}
+
+.ui.vertical.menu .dropdown.item.active {
+ border-top-right-radius: 0em;
+ border-bottom-right-radius: 0em;
+}
+
+.ui.vertical.menu .dropdown.item .menu .item {
+ font-size: 1rem;
+}
+
+.ui.vertical.menu .dropdown.item .menu .item i.icon {
+ margin-right: 0em;
+}
+
+.ui.vertical.menu .dropdown.item.active {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*--- Sub Menu ---*/
+
+.ui.vertical.menu .item > .menu {
+ margin: 0.5em -0.95em 0em;
+}
+
+.ui.vertical.menu .item > .menu > .item {
+ padding: 0.5rem 1.5rem;
+ font-size: 0.875em;
+}
+
+.ui.vertical.menu .item > .menu > .item:before {
+ display: none;
+}
+
+/*--------------
+ Tiered
+---------------*/
+
+.ui.tiered.menu > .sub.menu > .item {
+ color: rgba(0, 0, 0, 0.4);
+}
+
+.ui.tiered.menu > .menu > .item:hover {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.tiered.menu .item.active {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.tiered.menu > .menu .item.active:after {
+ position: absolute;
+ content: '';
+ margin-top: -1px;
+ top: 100%;
+ left: 0px;
+ width: 100%;
+ height: 2px;
+ background-color: #FBFBFB;
+}
+
+.ui.tiered.menu .sub.menu {
+ background-color: rgba(0, 0, 0, 0.01);
+ border-radius: 0em;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ color: #FFFFFF;
+}
+
+.ui.tiered.menu .sub.menu .item {
+ font-size: 0.875rem;
+}
+
+.ui.tiered.menu .sub.menu .item:before {
+ background-image: none;
+}
+
+.ui.tiered.menu .sub.menu .active.item {
+ padding-top: 0.83em;
+ background-color: transparent;
+ border-radius: 0 0 0 0;
+ border-top: medium none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ color: rgba(0, 0, 0, 0.7) !important;
+}
+
+.ui.tiered.menu .sub.menu .active.item:after {
+ display: none;
+}
+
+/* Inverted */
+
+.ui.inverted.tiered.menu > .menu > .item {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+.ui.inverted.tiered.menu .sub.menu {
+ background-color: rgba(0, 0, 0, 0.2);
+}
+
+.ui.inverted.tiered.menu .sub.menu .item {
+ color: rgba(255, 255, 255, 0.6);
+}
+
+.ui.inverted.tiered.menu > .menu > .item:hover {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.inverted.tiered.menu .active.item:after {
+ display: none;
+}
+
+.ui.inverted.tiered.menu > .sub.menu > .active.item,
+.ui.inverted.tiered.menu > .menu > .active.item {
+ color: #ffffff !important;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* Tiered pointing */
+
+.ui.pointing.tiered.menu > .menu > .item:after {
+ display: none;
+}
+
+.ui.pointing.tiered.menu > .sub.menu > .item:after {
+ display: block;
+}
+
+/*--------------
+ Tabular
+---------------*/
+
+.ui.tabular.menu {
+ background-color: transparent;
+ border-bottom: 1px solid #DCDDDE;
+ border-radius: 0em;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.ui.tabular.menu .item {
+ background-color: transparent;
+ border-left: 1px solid transparent;
+ border-right: 1px solid transparent;
+ border-top: 1px solid transparent;
+ padding-left: 1.4em;
+ padding-right: 1.4em;
+ color: rgba(0, 0, 0, 0.6);
+}
+
+.ui.tabular.menu .item:before {
+ display: none;
+}
+
+/* Hover */
+
+.ui.tabular.menu .item:hover {
+ background-color: transparent;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/* Active */
+
+.ui.tabular.menu .active.item {
+ position: relative;
+ background-color: #FFFFFF;
+ color: rgba(0, 0, 0, 0.8);
+ border-color: #DCDDDE;
+ font-weight: bold;
+ margin-bottom: -1px;
+ border-bottom: 1px solid #FFFFFF;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border-radius: 5px 5px 0 0;
+}
+
+/* Coupling with segment for attachment */
+
+.ui.attached.tabular.menu {
+ position: relative;
+ z-index: 2;
+}
+
+.ui.tabular.menu ~ .bottom.attached.segment {
+ margin: 1px 0px 0px 1px;
+}
+
+/*--------------
+ Pagination
+---------------*/
+
+.ui.pagination.menu {
+ margin: 0em;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.ui.pagination.menu .item {
+ min-width: 3em;
+ text-align: center;
+}
+
+.ui.pagination.menu .icon.item i.icon {
+ vertical-align: top;
+}
+
+.ui.pagination.menu.floated {
+ display: block;
+}
+
+/* active */
+
+.ui.pagination.menu .active.item {
+ border-top: none;
+ padding-top: 0.83em;
+ background-color: rgba(0, 0, 0, 0.05);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*--------------
+ Secondary
+---------------*/
+
+.ui.secondary.menu {
+ background-color: transparent;
+ border-radius: 0px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.secondary.menu > .menu > .item,
+.ui.secondary.menu > .item {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border: none;
+ height: auto !important;
+ margin: 0em 0.25em;
+ padding: 0.5em 1em;
+ border-radius: 0.3125em;
+}
+
+.ui.secondary.menu > .menu > .item:before,
+.ui.secondary.menu > .item:before {
+ display: none !important;
+}
+
+.ui.secondary.menu .item > .input input {
+ background-color: transparent;
+ border: none;
+}
+
+.ui.secondary.menu .link.item,
+.ui.secondary.menu a.item {
+ opacity: 0.8;
+ -webkit-transition: none;
+ -moz-transition: none;
+ transition: none;
+}
+
+.ui.secondary.menu .header.item {
+ border-right: 0.1em solid rgba(0, 0, 0, 0.1);
+ background-color: transparent;
+ border-radius: 0em;
+}
+
+/* hover */
+
+.ui.secondary.menu .link.item:hover,
+.ui.secondary.menu a.item:hover {
+ opacity: 1;
+}
+
+/* active */
+
+.ui.secondary.menu > .menu > .active.item,
+.ui.secondary.menu > .active.item {
+ background-color: rgba(0, 0, 0, 0.08);
+ opacity: 1;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.secondary.vertical.menu > .active.item {
+ border-radius: 0.3125em;
+}
+
+/* inverted */
+
+.ui.secondary.inverted.menu .link.item,
+.ui.secondary.inverted.menu a.item {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+.ui.secondary.inverted.menu .link.item:hover,
+.ui.secondary.inverted.menu a.item:hover {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.secondary.inverted.menu .active.item {
+ background-color: rgba(255, 255, 255, 0.1);
+}
+
+/* disable variations */
+
+.ui.secondary.item.menu > .item {
+ margin: 0em;
+}
+
+.ui.secondary.attached.menu {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*---------------------
+ Secondary Pointing
+-----------------------*/
+
+.ui.secondary.pointing.menu {
+ border-bottom: 3px solid rgba(0, 0, 0, 0.1);
+}
+
+.ui.secondary.pointing.menu > .menu > .item,
+.ui.secondary.pointing.menu > .item {
+ margin: 0em 0em -3px;
+ padding: 0.6em 0.95em;
+ border-bottom: 3px solid rgba(0, 0, 0, 0);
+ border-radius: 0em;
+ -webkit-transition: color 0.2s;
+ -moz-transition: color 0.2s;
+ transition: color 0.2s;
+}
+
+/* Item Types */
+
+.ui.secondary.pointing.menu .header.item {
+ margin-bottom: -3px;
+ background-color: transparent !important;
+ border-right-width: 0px !important;
+ font-weight: bold !important;
+ color: rgba(0, 0, 0, 0.8) !important;
+}
+
+.ui.secondary.pointing.menu .text.item {
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.ui.secondary.pointing.menu > .menu > .item:after,
+.ui.secondary.pointing.menu > .item:after {
+ display: none;
+}
+
+/* Hover */
+
+.ui.secondary.pointing.menu > .menu > .link.item:hover,
+.ui.secondary.pointing.menu > .link.item:hover,
+.ui.secondary.pointing.menu > .menu > a.item:hover,
+.ui.secondary.pointing.menu > a.item:hover {
+ background-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+/* Down */
+
+.ui.secondary.pointing.menu > .menu > .link.item:active,
+.ui.secondary.pointing.menu > .link.item:active,
+.ui.secondary.pointing.menu > .menu > a.item:active,
+.ui.secondary.pointing.menu > a.item:active {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.2);
+}
+
+/* Active */
+
+.ui.secondary.pointing.menu > .menu > .item.active,
+.ui.secondary.pointing.menu > .item.active {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.4);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*---------------------
+ Secondary Vertical
+-----------------------*/
+
+.ui.secondary.vertical.pointing.menu {
+ border: none;
+ border-right: 3px solid rgba(0, 0, 0, 0.1);
+}
+
+.ui.secondary.vertical.menu > .item {
+ border: none;
+ margin: 0em 0em 0.3em;
+ padding: 0.6em 0.8em;
+ border-radius: 0.1875em;
+}
+
+.ui.secondary.vertical.menu > .header.item {
+ border-radius: 0em;
+}
+
+.ui.secondary.vertical.pointing.menu > .item {
+ margin: 0em -3px 0em 0em;
+ border-bottom: none;
+ border-right: 3px solid transparent;
+ border-radius: 0em;
+}
+
+/* Hover */
+
+.ui.secondary.vertical.pointing.menu > .item:hover {
+ background-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+/* Down */
+
+.ui.secondary.vertical.pointing.menu > .item:active {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.2);
+}
+
+/* Active */
+
+.ui.secondary.vertical.pointing.menu > .item.active {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.4);
+ color: rgba(0, 0, 0, 0.85);
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.secondary.inverted.menu {
+ background-color: transparent;
+}
+
+.ui.secondary.inverted.pointing.menu {
+ border-bottom: 3px solid rgba(255, 255, 255, 0.1);
+}
+
+.ui.secondary.inverted.pointing.menu > .item {
+ color: rgba(255, 255, 255, 0.7);
+}
+
+.ui.secondary.inverted.pointing.menu > .header.item {
+ color: #FFFFFF !important;
+}
+
+/* Hover */
+
+.ui.secondary.inverted.pointing.menu > .menu > .item:hover,
+.ui.secondary.inverted.pointing.menu > .item:hover {
+ color: rgba(255, 255, 255, 0.85);
+}
+
+/* Down */
+
+.ui.secondary.inverted.pointing.menu > .menu > .item:active,
+.ui.secondary.inverted.pointing.menu > .item:active {
+ border-color: rgba(255, 255, 255, 0.4);
+}
+
+/* Active */
+
+.ui.secondary.inverted.pointing.menu > .menu > .item.active,
+.ui.secondary.inverted.pointing.menu > .item.active {
+ border-color: rgba(255, 255, 255, 0.8);
+ color: #ffffff;
+}
+
+/*---------------------
+ Inverted Vertical
+----------------------*/
+
+.ui.secondary.inverted.vertical.pointing.menu {
+ border-right: 3px solid rgba(255, 255, 255, 0.1);
+ border-bottom: none;
+}
+
+/*--------------
+ Text Menu
+---------------*/
+
+.ui.text.menu {
+ background-color: transparent;
+ margin: 1rem -1rem;
+ border-radius: 0px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.text.menu > .item {
+ opacity: 0.8;
+ margin: 0em 1em;
+ padding: 0em;
+ height: auto !important;
+ border-radius: 0px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ -webkit-transition: opacity 0.2s ease;
+ -moz-transition: opacity 0.2s ease;
+ transition: opacity 0.2s ease;
+}
+
+.ui.text.menu > .item:before {
+ display: none !important;
+}
+
+.ui.text.menu .header.item {
+ background-color: transparent;
+ opacity: 1;
+ color: rgba(50, 50, 50, 0.8);
+ font-size: 0.875rem;
+ padding: 0em;
+ text-transform: uppercase;
+ font-weight: bold;
+}
+
+/*--- fluid text ---*/
+
+.ui.text.item.menu .item {
+ margin: 0em;
+}
+
+/*--- vertical text ---*/
+
+.ui.vertical.text.menu {
+ margin: 1rem 0em;
+}
+
+.ui.vertical.text.menu:first-child {
+ margin-top: 0rem;
+}
+
+.ui.vertical.text.menu:last-child {
+ margin-bottom: 0rem;
+}
+
+.ui.vertical.text.menu .item {
+ float: left;
+ clear: left;
+ margin: 0.5em 0em;
+}
+
+.ui.vertical.text.menu .item > i.icon {
+ float: none;
+ margin: 0em 0.83em 0em 0em;
+}
+
+.ui.vertical.text.menu .header.item {
+ margin: 0.8em 0em;
+}
+
+/*--- hover ---*/
+
+.ui.text.menu .item:hover {
+ opacity: 1;
+ background-color: transparent;
+}
+
+/*--- active ---*/
+
+.ui.text.menu .active.item {
+ background-color: transparent;
+ padding: 0em;
+ border: none;
+ opacity: 1;
+ font-weight: bold;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* disable variations */
+
+.ui.text.pointing.menu .active.item:after {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.text.attached.menu {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.text.menu,
+.ui.inverted.text.menu .item,
+.ui.inverted.text.menu .item:hover,
+.ui.inverted.text.menu .item.active {
+ background-color: transparent;
+}
+
+/*--------------
+ Icon Only
+---------------*/
+
+.ui.icon.menu,
+.ui.vertical.icon.menu {
+ width: auto;
+ display: inline-block;
+ height: auto;
+}
+
+.ui.icon.menu > .item {
+ height: auto;
+ text-align: center;
+ color: rgba(60, 60, 60, 0.7);
+}
+
+.ui.icon.menu > .item > .icon {
+ display: block;
+ float: none !important;
+ opacity: 1;
+ margin: 0em auto !important;
+}
+
+.ui.icon.menu .icon:before {
+ opacity: 1;
+}
+
+/* Item Icon Only */
+
+.ui.menu .icon.item .icon {
+ margin: 0em;
+}
+
+.ui.vertical.icon.menu {
+ float: none;
+}
+
+/*--- inverted ---*/
+
+.ui.inverted.icon.menu .item {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.icon.menu .icon {
+ color: #ffffff;
+}
+
+/*--------------
+ Labeled Icon
+---------------*/
+
+.ui.labeled.icon.menu {
+ text-align: center;
+}
+
+.ui.labeled.icon.menu > .item > .icon {
+ display: block;
+ font-size: 1.5em !important;
+ margin: 0em auto 0.3em !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Colors
+---------------*/
+
+/*--- Light Colors ---*/
+
+.ui.menu .green.active.item,
+.ui.green.menu .active.item {
+ border-color: #A1CF64 !important;
+ color: #A1CF64 !important;
+}
+
+.ui.menu .red.active.item,
+.ui.red.menu .active.item {
+ border-color: #D95C5C !important;
+ color: #D95C5C !important;
+}
+
+.ui.menu .blue.active.item,
+.ui.blue.menu .active.item {
+ border-color: #6ECFF5 !important;
+ color: #6ECFF5 !important;
+}
+
+.ui.menu .purple.active.item,
+.ui.purple.menu .active.item {
+ border-color: #564F8A !important;
+ color: #564F8A !important;
+}
+
+.ui.menu .orange.active.item,
+.ui.orange.menu .active.item {
+ border-color: #F05940 !important;
+ color: #F05940 !important;
+}
+
+.ui.menu .teal.active.item,
+.ui.teal.menu .active.item {
+ border-color: #00B5AD !important;
+ color: #00B5AD !important;
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.inverted.menu {
+ background-color: #333333;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.menu .header.item {
+ margin: 0em;
+ background-color: rgba(0, 0, 0, 0.3);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.menu .item,
+.ui.inverted.menu .item > a {
+ color: #FFFFFF;
+}
+
+.ui.inverted.menu .item .item,
+.ui.inverted.menu .item .item > a {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.menu .dropdown .menu .item,
+.ui.inverted.menu .dropdown .menu .item a {
+ color: rgba(0, 0, 0, 0.75) !important;
+}
+
+.ui.inverted.menu .item.disabled,
+.ui.inverted.menu .item.disabled:hover {
+ color: rgba(255, 255, 255, 0.2);
+}
+
+/*--- Border ---*/
+
+.ui.inverted.menu .item:before {
+ background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+ background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.03)), color-stop(50%, rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0.03)));
+ background-image: linear-gradient(rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+}
+
+.ui.vertical.inverted.menu .item:before {
+ background-image: -webkit-linear-gradient(left, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+ background-image: -moz-linear-gradient(left, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+ background-image: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0.03)), color-stop(50%, rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0.03)));
+ background-image: linear-gradient(to right, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+}
+
+/*--- Hover ---*/
+
+.ui.link.inverted.menu .item:hover,
+.ui.inverted.menu .link.item:hover,
+.ui.inverted.menu a.item:hover,
+.ui.inverted.menu .dropdown.item:hover {
+ background-color: rgba(255, 255, 255, 0.1);
+}
+
+.ui.inverted.menu a.item:hover,
+.ui.inverted.menu .item > a:hover,
+.ui.inverted.menu .item .menu a.item:hover,
+.ui.inverted.menu .item .menu .link.item:hover {
+ color: #ffffff;
+}
+
+/*--- Down ---*/
+
+.ui.inverted.menu a.item:active,
+.ui.inverted.menu .dropdown.item:active,
+.ui.inverted.menu .link.item:active,
+.ui.inverted.menu a.item:active {
+ background-color: rgba(255, 255, 255, 0.15);
+}
+
+/*--- Active ---*/
+
+.ui.inverted.menu .active.item {
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+ background-color: rgba(255, 255, 255, 0.2);
+}
+
+.ui.inverted.menu .active.item,
+.ui.inverted.menu .active.item a {
+ color: #ffffff !important;
+}
+
+.ui.inverted.vertical.menu .item .menu .active.item {
+ background-color: rgba(255, 255, 255, 0.2);
+ color: #ffffff;
+}
+
+/*--- Pointers ---*/
+
+.ui.inverted.pointing.menu .active.item:after {
+ background-color: #5B5B5B;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.pointing.menu .active.item:hover:after {
+ background-color: #4A4A4A;
+}
+
+/*--------------
+ Selection
+---------------*/
+
+.ui.selection.menu > .item {
+ color: rgba(0, 0, 0, 0.4);
+}
+
+.ui.selection.menu > .item:hover {
+ color: rgba(0, 0, 0, 0.6);
+}
+
+.ui.selection.menu > .item.active {
+ color: rgba(0, 0, 0, 0.85);
+}
+
+.ui.inverted.selection.menu > .item {
+ color: rgba(255, 255, 255, 0.4);
+}
+
+.ui.inverted.selection.menu > .item:hover {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.inverted.selection.menu > .item.active {
+ color: #FFFFFF;
+}
+
+/*--------------
+ Floated
+---------------*/
+
+.ui.floated.menu {
+ float: left;
+ margin: 0rem 0.5rem 0rem 0rem;
+}
+
+.ui.right.floated.menu {
+ float: right;
+ margin: 0rem 0rem 0rem 0.5rem;
+}
+
+/*--------------
+ Inverted Colors
+---------------*/
+
+/*--- Light Colors ---*/
+
+.ui.grey.menu {
+ background-color: #F0F0F0;
+}
+
+/*--- Inverted Colors ---*/
+
+.ui.inverted.green.menu {
+ background-color: #A1CF64;
+}
+
+.ui.inverted.green.pointing.menu .active.item:after {
+ background-color: #A1CF64;
+}
+
+.ui.inverted.red.menu {
+ background-color: #D95C5C;
+}
+
+.ui.inverted.red.pointing.menu .active.item:after {
+ background-color: #F16883;
+}
+
+.ui.inverted.blue.menu {
+ background-color: #6ECFF5;
+}
+
+.ui.inverted.blue.pointing.menu .active.item:after {
+ background-color: #6ECFF5;
+}
+
+.ui.inverted.purple.menu {
+ background-color: #564F8A;
+}
+
+.ui.inverted.purple.pointing.menu .active.item:after {
+ background-color: #564F8A;
+}
+
+.ui.inverted.orange.menu {
+ background-color: #F05940;
+}
+
+.ui.inverted.orange.pointing.menu .active.item:after {
+ background-color: #F05940;
+}
+
+.ui.inverted.teal.menu {
+ background-color: #00B5AD;
+}
+
+.ui.inverted.teal.pointing.menu .active.item:after {
+ background-color: #00B5AD;
+}
+
+/*--------------
+ Fitted
+---------------*/
+
+.ui.fitted.menu .item,
+.ui.fitted.menu .item .menu .item,
+.ui.menu .fitted.item {
+ padding: 0em;
+}
+
+.ui.horizontally.fitted.menu .item,
+.ui.horizontally.fitted.menu .item .menu .item,
+.ui.menu .horizontally.fitted.item {
+ padding-top: 0.83em;
+ padding-bottom: 0.83em;
+}
+
+.ui.vertically.fitted.menu .item,
+.ui.vertically.fitted.menu .item .menu .item,
+.ui.menu .vertically.fitted.item {
+ padding-left: 0.95em;
+ padding-right: 0.95em;
+}
+
+/*--------------
+ Borderless
+---------------*/
+
+.ui.borderless.menu .item:before,
+.ui.borderless.menu .item .menu .item:before,
+.ui.menu .borderless.item:before {
+ background-image: none;
+}
+
+/*-------------------
+ Compact
+--------------------*/
+
+.ui.compact.menu {
+ display: inline-block;
+ margin: 0em;
+ vertical-align: middle;
+}
+
+.ui.compact.vertical.menu {
+ width: auto !important;
+}
+
+.ui.compact.vertical.menu .item:last-child::before {
+ display: block;
+}
+
+/*-------------------
+ Fluid
+--------------------*/
+
+.ui.menu.fluid,
+.ui.vertical.menu.fluid {
+ display: block;
+ width: 100% !important;
+}
+
+/*-------------------
+ Evenly Sized
+--------------------*/
+
+.ui.item.menu,
+.ui.item.menu .item {
+ width: 100%;
+ padding-left: 0px !important;
+ padding-right: 0px !important;
+ text-align: center;
+}
+
+.ui.menu.two.item .item {
+ width: 50%;
+}
+
+.ui.menu.three.item .item {
+ width: 33.333%;
+}
+
+.ui.menu.four.item .item {
+ width: 25%;
+}
+
+.ui.menu.five.item .item {
+ width: 20%;
+}
+
+.ui.menu.six.item .item {
+ width: 16.666%;
+}
+
+.ui.menu.seven.item .item {
+ width: 14.285%;
+}
+
+.ui.menu.eight.item .item {
+ width: 12.500%;
+}
+
+.ui.menu.nine.item .item {
+ width: 11.11%;
+}
+
+.ui.menu.ten.item .item {
+ width: 10.0%;
+}
+
+.ui.menu.eleven.item .item {
+ width: 9.09%;
+}
+
+.ui.menu.twelve.item .item {
+ width: 8.333%;
+}
+
+/*--------------
+ Fixed
+---------------*/
+
+.ui.menu.fixed {
+ position: fixed;
+ z-index: 999;
+ margin: 0em;
+ border: none;
+ width: 100%;
+}
+
+.ui.menu.fixed,
+.ui.menu.fixed .item:first-child,
+.ui.menu.fixed .item:last-child {
+ border-radius: 0px !important;
+}
+
+.ui.menu.fixed.top {
+ top: 0px;
+ left: 0px;
+ right: auto;
+ bottom: auto;
+}
+
+.ui.menu.fixed.right {
+ top: 0px;
+ right: 0px;
+ left: auto;
+ bottom: auto;
+ width: auto;
+ height: 100%;
+}
+
+.ui.menu.fixed.bottom {
+ bottom: 0px;
+ left: 0px;
+ top: auto;
+ right: auto;
+}
+
+.ui.menu.fixed.left {
+ top: 0px;
+ left: 0px;
+ right: auto;
+ bottom: auto;
+ width: auto;
+ height: 100%;
+}
+
+/* Coupling with Grid */
+
+.ui.fixed.menu + .ui.grid {
+ padding-top: 2.75rem;
+}
+
+/*-------------------
+ Pointing
+--------------------*/
+
+.ui.pointing.menu .active.item:after {
+ position: absolute;
+ bottom: -0.3em;
+ left: 50%;
+ content: "";
+ margin-left: -0.3em;
+ width: 0.6em;
+ height: 0.6em;
+ border: none;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
+ background-image: none;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ z-index: 2;
+ -webkit-transition: background 0.2s ease;
+ -moz-transition: background 0.2s ease;
+ transition: background 0.2s ease;
+}
+
+/* Don't double up pointers */
+
+.ui.pointing.menu .active.item .menu .active.item:after {
+ display: none;
+}
+
+.ui.vertical.pointing.menu .active.item:after {
+ position: absolute;
+ top: 50%;
+ margin-top: -0.3em;
+ right: -0.4em;
+ bottom: auto;
+ left: auto;
+ border: none;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* Colors */
+
+.ui.pointing.menu .active.item:after {
+ background-color: #FCFCFC;
+}
+
+.ui.pointing.menu .active.item:hover:after {
+ background-color: #FAFAFA;
+}
+
+.ui.vertical.pointing.menu .menu .active.item:after {
+ background-color: #F4F4F4;
+}
+
+.ui.pointing.menu a.active.item:active:after {
+ background-color: #F0F0F0;
+}
+
+/*--------------
+ Attached
+---------------*/
+
+.ui.menu.attached {
+ margin: 0rem;
+ border-radius: 0px;
+ /* avoid rgba multiplying */
+ -webkit-box-shadow: 0px 0px 0px 1px #DDDDDD;
+ box-shadow: 0px 0px 0px 1px #DDDDDD;
+}
+
+.ui.top.attached.menu {
+ border-radius: 0.1875em 0.1875em 0px 0px;
+}
+
+.ui.menu.bottom.attached {
+ border-radius: 0px 0px 0.1875em 0.1875em;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.small.menu .item {
+ font-size: 0.875rem;
+}
+
+.ui.small.vertical.menu {
+ width: 13rem;
+}
+
+.ui.menu .item {
+ font-size: 1rem;
+}
+
+.ui.vertical.menu {
+ width: 15rem;
+}
+
+.ui.large.menu .item {
+ font-size: 1.125rem;
+}
+
+.ui.large.menu .item .item {
+ font-size: 0.875rem;
+}
+
+.ui.large.menu .dropdown .item {
+ font-size: 1rem;
+}
+
+.ui.large.vertical.menu {
+ width: 18rem;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/collections/message.css b/css/semantic/build/uncompressed/collections/message.css
new file mode 100644
index 0000000..8e5f176
--- /dev/null
+++ b/css/semantic/build/uncompressed/collections/message.css
@@ -0,0 +1,309 @@
+/*
+ * # Semantic - Message
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Message
+*******************************/
+
+.ui.message {
+ position: relative;
+ min-height: 18px;
+ margin: 1em 0em;
+ height: auto;
+ background-color: #EFEFEF;
+ padding: 1em;
+ line-height: 1.33;
+ color: rgba(0, 0, 0, 0.6);
+ -webkit-transition: opacity 0.1s ease, color 0.1s ease, background 0.1s ease, -webkit-box-shadow 0.1s ease;
+ -moz-transition: opacity 0.1s ease, color 0.1s ease, background 0.1s ease, box-shadow 0.1s ease;
+ transition: opacity 0.1s ease, color 0.1s ease, background 0.1s ease, box-shadow 0.1s ease;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ border-radius: 0.325em 0.325em 0.325em 0.325em;
+}
+
+.ui.message:first-child {
+ margin-top: 0em;
+}
+
+.ui.message:last-child {
+ margin-bottom: 0em;
+}
+
+/*--------------
+ Content
+---------------*/
+
+/* block with headers */
+
+.ui.message .header {
+ margin: 0em;
+ font-size: 1.33em;
+ font-weight: bold;
+}
+
+/* block with paragraphs */
+
+.ui.message p {
+ opacity: 0.85;
+ margin: 1em 0em;
+}
+
+.ui.message p:first-child {
+ margin-top: 0em;
+}
+
+.ui.message p:last-child {
+ margin-bottom: 0em;
+}
+
+.ui.message .header + p {
+ margin-top: 0.3em;
+}
+
+.ui.message > :first-child {
+ margin-top: 0em;
+}
+
+.ui.message > :last-child {
+ margin-bottom: 0em;
+}
+
+/* block with child list */
+
+.ui.message ul.list {
+ opacity: 0.85;
+ list-style-position: inside;
+ margin: 0.2em 0em;
+ padding: 0em;
+}
+
+.ui.message ul.list li {
+ position: relative;
+ list-style-type: none;
+ margin: 0em 0em 0.3em 1em;
+ padding: 0em;
+}
+
+.ui.message ul.list li:before {
+ position: absolute;
+ content: '\2022';
+ top: -0.05em;
+ left: -0.8em;
+ height: 100%;
+ vertical-align: baseline;
+ opacity: 0.5;
+}
+
+.ui.message ul.list li:first-child {
+ margin-top: 0em;
+}
+
+/* dismissable block */
+
+.ui.message > .close.icon {
+ cursor: pointer;
+ position: absolute;
+ top: 1em;
+ right: 0.5em;
+ opacity: 0.7;
+ -webkit-transition: opacity 0.1s linear;
+ -moz-transition: opacity 0.1s linear;
+ transition: opacity 0.1s linear;
+}
+
+.ui.message > .close.icon:hover {
+ opacity: 1;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.message.visible,
+.ui.header.visible {
+ display: block !important;
+}
+
+.ui.message.hidden,
+.ui.header.hidden {
+ display: none;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Compact
+---------------*/
+
+.ui.compact.message {
+ display: inline-block;
+}
+
+/*--------------
+ Attached
+---------------*/
+
+.ui.attached.message {
+ margin-left: -1px;
+ margin-right: -1px;
+ margin-bottom: -1px;
+ border-radius: 0.325em 0.325em 0em 0em;
+ -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.attached + .ui.attached.message:not(.top):not(.bottom) {
+ margin-top: -1px;
+ border-radius: 0em;
+}
+
+.ui.bottom.attached.message {
+ margin-top: -1px;
+ border-radius: 0em 0em 0.325em 0.325em;
+}
+
+.ui.bottom.attached.message:not(:last-child) {
+ margin-bottom: 1em;
+}
+
+.ui.attached.icon.message {
+ display: block;
+ width: auto;
+}
+
+/*--------------
+ Icon
+---------------*/
+
+.ui.icon.message {
+ display: table;
+ width: 100%;
+}
+
+.ui.icon.message > .icon:not(.close) {
+ display: table-cell;
+ vertical-align: middle;
+ font-size: 3.8em;
+ opacity: 0.5;
+}
+
+.ui.icon.message > .icon + .content {
+ padding-left: 1em;
+}
+
+.ui.icon.message > .content {
+ display: table-cell;
+ vertical-align: middle;
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.inverted.message {
+ background-color: rgba(255, 255, 255, 0.05);
+ color: rgba(255, 255, 255, 0.95);
+}
+
+/*--------------
+ Floating
+---------------*/
+
+.ui.floating.message {
+ -webkit-box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.1), 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset;
+ box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.1), 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset;
+}
+
+/*--------------
+ Colors
+---------------*/
+
+.ui.black.message {
+ background-color: #333333;
+ color: rgba(255, 255, 255, 0.95);
+}
+
+/*--------------
+ Types
+---------------*/
+
+.ui.blue.message,
+.ui.info.message {
+ background-color: #E6F4F9;
+ color: #4D8796;
+}
+
+/* Green Text Block */
+
+.ui.green.message {
+ background-color: #DEFCD5;
+ color: #52A954;
+}
+
+/* Yellow Text Block */
+
+.ui.yellow.message,
+.ui.warning.message {
+ background-color: #F6F3D5;
+ color: #96904D;
+}
+
+/* Red Text Block */
+
+.ui.red.message {
+ background-color: #F1D7D7;
+ color: #A95252;
+}
+
+/* Success Text Block */
+
+.ui.success.message,
+.ui.positive.message {
+ background-color: #DEFCD5;
+ color: #52A954;
+}
+
+/* Error Text Block */
+
+.ui.error.message,
+.ui.negative.message {
+ background-color: #F1D7D7;
+ color: #A95252;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.small.message {
+ font-size: 0.875em;
+}
+
+.ui.message {
+ font-size: 1em;
+}
+
+.ui.large.message {
+ font-size: 1.125em;
+}
+
+.ui.huge.message {
+ font-size: 1.5em;
+}
+
+.ui.massive.message {
+ font-size: 2em;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/collections/table.css b/css/semantic/build/uncompressed/collections/table.css
new file mode 100644
index 0000000..c540981
--- /dev/null
+++ b/css/semantic/build/uncompressed/collections/table.css
@@ -0,0 +1,645 @@
+/*
+ * # Semantic - Table
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Table
+*******************************/
+
+/* Prototype */
+
+.ui.table {
+ width: 100%;
+ border-collapse: collapse;
+}
+
+/* Table Content */
+
+.ui.table th,
+.ui.table tr,
+.ui.table td {
+ border-collapse: collapse;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-transition: all 0.1s ease-out;
+ -moz-transition: all 0.1s ease-out;
+ transition: all 0.1s ease-out;
+}
+
+/* Headers */
+
+.ui.table thead {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.03);
+}
+
+.ui.table tfoot th {
+ background-color: rgba(0, 0, 0, 0.03);
+}
+
+.ui.table th {
+ cursor: auto;
+ background-color: rgba(0, 0, 0, 0.05);
+ text-align: left;
+ color: rgba(0, 0, 0, 0.8);
+ padding: 0.5em 0.7em;
+ vertical-align: middle;
+}
+
+.ui.table thead th:first-child {
+ border-radius: 5px 0px 0px 0px;
+}
+
+.ui.table thead th:last-child {
+ border-radius: 0px 5px 0px 0px;
+}
+
+.ui.table tfoot th:first-child {
+ border-radius: 0px 0px 0px 5px;
+}
+
+.ui.table tfoot th:last-child {
+ border-radius: 0px 0px 5px 0px;
+}
+
+.ui.table tfoot th:only-child {
+ border-radius: 0px 0px 5px 5px;
+}
+
+/* Table Cells */
+
+.ui.table td {
+ padding: 0.40em 0.7em;
+ vertical-align: middle;
+}
+
+/* Footer */
+
+.ui.table tfoot {
+ border-top: 1px solid rgba(0, 0, 0, 0.03);
+}
+
+.ui.table tfoot th {
+ font-weight: normal;
+ font-style: italic;
+}
+
+/* Table Striping */
+
+.ui.table tbody tr:nth-child(2n) {
+ background-color: rgba(0, 0, 50, 0.02);
+}
+
+/* Icons */
+
+.ui.table > .icon {
+ vertical-align: baseline;
+}
+
+.ui.table > .icon:only-child {
+ margin: 0em;
+}
+
+/* Table Segment */
+
+.ui.table.segment:after {
+ display: none;
+}
+
+.ui.table.segment.stacked:after {
+ display: block;
+}
+
+/* Responsive */
+
+@media only screen and (max-width: 768px) {
+ .ui.table {
+ display: block;
+ padding: 0em;
+ }
+
+ .ui.table thead,
+ .ui.table tfoot {
+ display: none;
+ }
+
+ .ui.table tbody {
+ display: block;
+ }
+
+ .ui.table tr {
+ display: block;
+ }
+
+ .ui.table tr > td {
+ width: 100% !important;
+ display: block;
+ border: none !important;
+ padding: 0.25em 0.75em;
+ -webkit-box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05) !important;
+ box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05) !important;
+ }
+
+ .ui.table td:first-child {
+ font-weight: bold;
+ padding-top: 1em;
+ }
+
+ .ui.table td:last-child {
+ -webkit-box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1) inset !important;
+ box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1) inset !important;
+ padding-bottom: 1em;
+ }
+
+ /* Clear BG Colors */
+
+ .ui.table tr > td.warning,
+ .ui.table tr > td.error,
+ .ui.table tr > td.active,
+ .ui.table tr > td.positive,
+ .ui.table tr > td.negative {
+ background-color: transparent !important;
+ }
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+/* Sortable */
+
+.ui.sortable.table th.disabled:hover {
+ cursor: auto;
+ text-align: left;
+ font-weight: bold;
+ color: #333333;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.sortable.table thead th:hover {
+ background-color: rgba(0, 0, 0, 0.13);
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/* Inverted Sortable */
+
+.ui.inverted.sortable.table thead th:hover {
+ background-color: rgba(255, 255, 255, 0.13);
+ color: #ffffff;
+}
+
+/*--------------
+ Positive
+---------------*/
+
+.ui.table tr.positive,
+.ui.table td.positive {
+ -webkit-box-shadow: 2px 0px 0px #119000 inset;
+ box-shadow: 2px 0px 0px #119000 inset;
+}
+
+.ui.table tr.positive td,
+.ui.table td.positive {
+ background-color: #F2F8F0 !important;
+ color: #119000 !important;
+}
+
+.ui.celled.table tr.positive:hover td,
+.ui.celled.table tr:hover td.positive,
+.ui.table tr.positive:hover td,
+.ui.table td:hover.positive,
+.ui.table th:hover.positive {
+ background-color: #ECF5E9 !important;
+ color: #119000 !important;
+}
+
+/*--------------
+ Negative
+---------------*/
+
+.ui.table tr.negative,
+.ui.table td.negative {
+ -webkit-box-shadow: 2px 0px 0px #CD2929 inset;
+ box-shadow: 2px 0px 0px #CD2929 inset;
+}
+
+.ui.table tr.negative td,
+.ui.table td.negative {
+ background-color: #F9F4F4;
+ color: #CD2929 !important;
+}
+
+.ui.celled.table tr.negative:hover td,
+.ui.celled.table tr:hover td.negative,
+.ui.table tr.negative:hover td,
+.ui.table td:hover.negative,
+.ui.table th:hover.negative {
+ background-color: #F2E8E8;
+ color: #CD2929;
+}
+
+/*--------------
+ Error
+---------------*/
+
+.ui.table tr.error,
+.ui.table td.error {
+ -webkit-box-shadow: 2px 0px 0px #CD2929 inset;
+ box-shadow: 2px 0px 0px #CD2929 inset;
+}
+
+.ui.table tr.error td,
+.ui.table td.error,
+.ui.table th.error {
+ background-color: #F9F4F4;
+ color: #CD2929;
+}
+
+.ui.celled.table tr.error:hover td,
+.ui.celled.table tr:hover td.error,
+.ui.table tr.error:hover td,
+.ui.table td:hover.error,
+.ui.table th:hover.error {
+ background-color: #F2E8E8;
+ color: #CD2929;
+}
+
+/*--------------
+ Warning
+---------------*/
+
+.ui.table tr.warning,
+.ui.table td.warning {
+ -webkit-box-shadow: 2px 0px 0px #7D6C00 inset;
+ box-shadow: 2px 0px 0px #7D6C00 inset;
+}
+
+.ui.table tr.warning td,
+.ui.table td.warning,
+.ui.table th.warning {
+ background-color: #FBF6E9;
+ color: #7D6C00;
+}
+
+.ui.celled.table tr.warning:hover td,
+.ui.celled.table tr:hover td.warning,
+.ui.table tr.warning:hover td,
+.ui.table td:hover.warning,
+.ui.table th:hover.warning {
+ background-color: #F3EDDC;
+ color: #7D6C00;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.table tr.active,
+.ui.table td.active {
+ -webkit-box-shadow: 2px 0px 0px rgba(50, 50, 50, 0.9) inset;
+ box-shadow: 2px 0px 0px rgba(50, 50, 50, 0.9) inset;
+}
+
+.ui.table tr.active td,
+.ui.table tr td.active {
+ background-color: #E0E0E0;
+ color: rgba(50, 50, 50, 0.9);
+ /* border-color: rgba(0, 0, 0, 0.15) !important; */
+}
+
+/*--------------
+ Disabled
+---------------*/
+
+.ui.table tr.disabled td,
+.ui.table tr td.disabled,
+.ui.table tr.disabled:hover td,
+.ui.table tr:hover td.disabled {
+ color: rgba(150, 150, 150, 0.3);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Column Count
+---------------*/
+
+.ui.two.column.table td {
+ width: 50%;
+}
+
+.ui.three.column.table td {
+ width: 33.3333%;
+}
+
+.ui.four.column.table td {
+ width: 25%;
+}
+
+.ui.five.column.table td {
+ width: 20%;
+}
+
+.ui.six.column.table td {
+ width: 16.66667%;
+}
+
+.ui.seven.column.table td {
+ width: 14.2857%;
+}
+
+.ui.eight.column.table td {
+ width: 12.5%;
+}
+
+.ui.nine.column.table td {
+ width: 11.1111%;
+}
+
+.ui.ten.column.table td {
+ width: 10%;
+}
+
+.ui.eleven.column.table td {
+ width: 9.0909%;
+}
+
+.ui.twelve.column.table td {
+ width: 8.3333%;
+}
+
+.ui.thirteen.column.table td {
+ width: 7.6923%;
+}
+
+.ui.fourteen.column.table td {
+ width: 7.1428%;
+}
+
+.ui.fifteen.column.table td {
+ width: 6.6666%;
+}
+
+.ui.sixteen.column.table td {
+ width: 6.25%;
+}
+
+/* Column Width */
+
+.ui.table th.one.wide,
+.ui.table td.one.wide {
+ width: 6.25%;
+}
+
+.ui.table th.two.wide,
+.ui.table td.two.wide {
+ width: 12.5%;
+}
+
+.ui.table th.three.wide,
+.ui.table td.three.wide {
+ width: 18.75%;
+}
+
+.ui.table th.four.wide,
+.ui.table td.four.wide {
+ width: 25%;
+}
+
+.ui.table th.five.wide,
+.ui.table td.five.wide {
+ width: 31.25%;
+}
+
+.ui.table th.six.wide,
+.ui.table td.six.wide {
+ width: 37.5%;
+}
+
+.ui.table th.seven.wide,
+.ui.table td.seven.wide {
+ width: 43.75%;
+}
+
+.ui.table th.eight.wide,
+.ui.table td.eight.wide {
+ width: 50%;
+}
+
+.ui.table th.nine.wide,
+.ui.table td.nine.wide {
+ width: 56.25%;
+}
+
+.ui.table th.ten.wide,
+.ui.table td.ten.wide {
+ width: 62.5%;
+}
+
+.ui.table th.eleven.wide,
+.ui.table td.eleven.wide {
+ width: 68.75%;
+}
+
+.ui.table th.twelve.wide,
+.ui.table td.twelve.wide {
+ width: 75%;
+}
+
+.ui.table th.thirteen.wide,
+.ui.table td.thirteen.wide {
+ width: 81.25%;
+}
+
+.ui.table th.fourteen.wide,
+.ui.table td.fourteen.wide {
+ width: 87.5%;
+}
+
+.ui.table th.fifteen.wide,
+.ui.table td.fifteen.wide {
+ width: 93.75%;
+}
+
+.ui.table th.sixteen.wide,
+.ui.table td.sixteen.wide {
+ width: 100%;
+}
+
+/*--------------
+ Celled
+---------------*/
+
+.ui.celled.table {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.celled.table tbody tr,
+.ui.celled.table tfoot tr {
+ border: none;
+}
+
+.ui.celled.table th,
+.ui.celled.table td {
+ border: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* Coupling with segment */
+
+.ui.celled.table.segment th:first-child,
+.ui.celled.table.segment td:first-child {
+ border-left: none;
+}
+
+.ui.celled.table.segment th:last-child,
+.ui.celled.table.segment td:last-child {
+ border-right: none;
+}
+
+/*--------------
+ Sortable
+---------------*/
+
+.ui.sortable.table thead th {
+ cursor: pointer;
+ white-space: nowrap;
+}
+
+.ui.sortable.table thead th.sorted,
+.ui.sortable.table thead th.sorted:hover {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.ui.sortable.table thead th:after {
+ display: inline-block;
+ content: '';
+ width: 1em;
+ opacity: 0.8;
+ margin: 0em 0em 0em 0.5em;
+ font-family: 'Icons';
+ font-style: normal;
+ font-weight: normal;
+ text-decoration: inherit;
+}
+
+.ui.sortable.table thead th.ascending:after {
+ content: '\25b4';
+}
+
+.ui.sortable.table thead th.descending:after {
+ content: '\25be';
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+/* Text Color */
+
+.ui.inverted.table td {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.inverted.table th {
+ background-color: rgba(0, 0, 0, 0.15);
+ color: rgba(255, 255, 255, 0.9);
+}
+
+/* Stripes */
+
+.ui.inverted.table tbody tr:nth-child(2n) {
+ background-color: rgba(255, 255, 255, 0.06);
+}
+
+/*--------------
+ Definition
+---------------*/
+
+.ui.definition.table td:first-child {
+ font-weight: bold;
+}
+
+/*--------------
+ Collapsing
+---------------*/
+
+.ui.collapsing.table {
+ width: auto;
+}
+
+/*--------------
+ Basic
+---------------*/
+
+.ui.basic.table th {
+ background-color: transparent;
+ padding: 0.5em;
+}
+
+.ui.basic.table tbody tr {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.03);
+}
+
+.ui.basic.table td {
+ padding: 0.8em 0.5em;
+}
+
+.ui.basic.table tbody tr:nth-child(2n) {
+ background-color: transparent !important;
+}
+
+/*--------------
+ Padded
+---------------*/
+
+.ui.padded.table th,
+.ui.padded.table td {
+ padding: 0.8em 1em;
+}
+
+.ui.compact.table th {
+ padding: 0.3em 0.5em;
+}
+
+.ui.compact.table td {
+ padding: 0.2em 0.5em;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+/* Small */
+
+.ui.small.table {
+ font-size: 0.875em;
+}
+
+/* Standard */
+
+.ui.table {
+ font-size: 1em;
+}
+
+/* Large */
+
+.ui.large.table {
+ font-size: 1.1em;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/elements/basic.icon.css b/css/semantic/build/uncompressed/elements/basic.icon.css
new file mode 100644
index 0000000..75b89a1
--- /dev/null
+++ b/css/semantic/build/uncompressed/elements/basic.icon.css
@@ -0,0 +1,1125 @@
+/*
+ * # Semantic - basic.Icon (Basic)
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Basic Icon
+*******************************/
+
+@font-face {
+ font-family: 'Basic Icons';
+ src: url(../fonts/basic.icons.eot);
+ src: url(../fonts/basic.icons.eot?#iefix) format('embedded-opentype'), url(../fonts/basic.icons.svg#basic.icons) format('svg'), url(../fonts/basic.icons.woff) format('woff'), url(../fonts/basic.icons.ttf) format('truetype');
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-decoration: inherit;
+ text-transform: none;
+}
+
+i.basic.icon {
+ display: inline-block;
+ opacity: 0.75;
+ margin: 0em 0.25em 0em 0em;
+ width: 1.23em;
+ height: 1em;
+ font-family: 'Basic Icons';
+ font-style: normal;
+ line-height: 1;
+ font-weight: normal;
+ text-decoration: inherit;
+ text-align: center;
+ speak: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-font-smoothing: antialiased;
+ -moz-font-smoothing: antialiased;
+ font-smoothing: antialiased;
+}
+
+/* basic.icons available */
+
+i.basic.icon.circle.attention:before {
+ content: '\2757';
+}
+
+/* '❗' */
+
+i.basic.icon.circle.help:before {
+ content: '\e704';
+}
+
+/* '' */
+
+i.basic.icon.circle.info:before {
+ content: '\e705';
+}
+
+/* '' */
+
+i.basic.icon.add:before {
+ content: '\2795';
+}
+
+/* '➕' */
+
+i.basic.icon.chart:before {
+ content: '📈';
+}
+
+/* '\1f4c8' */
+
+i.basic.icon.chart.bar:before {
+ content: '📊';
+}
+
+/* '\1f4ca' */
+
+i.basic.icon.chart.pie:before {
+ content: '\e7a2';
+}
+
+/* '' */
+
+i.basic.icon.resize.full:before {
+ content: '\e744';
+}
+
+/* '' */
+
+i.basic.icon.resize.horizontal:before {
+ content: '\2b0d';
+}
+
+/* '⬍' */
+
+i.basic.icon.resize.small:before {
+ content: '\e746';
+}
+
+/* '' */
+
+i.basic.icon.resize.vertical:before {
+ content: '\2b0c';
+}
+
+/* '⬌' */
+
+i.basic.icon.down:before {
+ content: '\2193';
+}
+
+/* '↓' */
+
+i.basic.icon.down.triangle:before {
+ content: '\25be';
+}
+
+/* '▾' */
+
+i.basic.icon.down.arrow:before {
+ content: '\e75c';
+}
+
+/* '' */
+
+i.basic.icon.left:before {
+ content: '\2190';
+}
+
+/* '←' */
+
+i.basic.icon.left.triangle:before {
+ content: '\25c2';
+}
+
+/* '◂' */
+
+i.basic.icon.left.arrow:before {
+ content: '\e75d';
+}
+
+/* '' */
+
+i.basic.icon.right:before {
+ content: '\2192';
+}
+
+/* '→' */
+
+i.basic.icon.right.triangle:before {
+ content: '\25b8';
+}
+
+/* '▸' */
+
+i.basic.icon.right.arrow:before {
+ content: '\e75e';
+}
+
+/* '' */
+
+i.basic.icon.up:before {
+ content: '\2191';
+}
+
+/* '↑' */
+
+i.basic.icon.up.triangle:before {
+ content: '\25b4';
+}
+
+/* '▴' */
+
+i.basic.icon.up.arrow:before {
+ content: '\e75f';
+}
+
+/* '' */
+
+i.basic.icon.folder:before {
+ content: '\e810';
+}
+
+/* '' */
+
+i.basic.icon.open.folder:before {
+ content: '📂';
+}
+
+/* '\1f4c2' */
+
+i.basic.icon.globe:before {
+ content: '𝌍';
+}
+
+/* '\1d30d' */
+
+i.basic.icon.desk.globe:before {
+ content: '🌐';
+}
+
+/* '\1f310' */
+
+i.basic.icon.star:before {
+ content: '\e801';
+}
+
+/* '' */
+
+i.basic.icon.star.empty:before {
+ content: '\e800';
+}
+
+/* '' */
+
+i.basic.icon.star.half:before {
+ content: '\e701';
+}
+
+/* '' */
+
+i.basic.icon.lock:before {
+ content: '🔒';
+}
+
+/* '\1f512' */
+
+i.basic.icon.unlock:before {
+ content: '🔓';
+}
+
+/* '\1f513' */
+
+i.basic.icon.layout.grid:before {
+ content: '\e80c';
+}
+
+/* '' */
+
+i.basic.icon.layout.block:before {
+ content: '\e708';
+}
+
+/* '' */
+
+i.basic.icon.layout.list:before {
+ content: '\e80b';
+}
+
+/* '' */
+
+i.basic.icon.heart.empty:before {
+ content: '\2661';
+}
+
+/* '♡' */
+
+i.basic.icon.heart:before {
+ content: '\2665';
+}
+
+/* '♥' */
+
+i.basic.icon.asterisk:before {
+ content: '\2731';
+}
+
+/* '✱' */
+
+i.basic.icon.attachment:before {
+ content: '📎';
+}
+
+/* '\1f4ce' */
+
+i.basic.icon.attention:before {
+ content: '\26a0';
+}
+
+/* '⚠' */
+
+i.basic.icon.trophy:before {
+ content: '🏉';
+}
+
+/* '\1f3c9' */
+
+i.basic.icon.barcode:before {
+ content: '\e792';
+}
+
+/* '' */
+
+i.basic.icon.cart:before {
+ content: '\e813';
+}
+
+/* '' */
+
+i.basic.icon.block:before {
+ content: '🚫';
+}
+
+/* '\1f6ab' */
+
+i.basic.icon.book:before {
+ content: '📖';
+}
+
+i.basic.icon.bookmark:before {
+ content: '🔖';
+}
+
+/* '\1f516' */
+
+i.basic.icon.calendar:before {
+ content: '📅';
+}
+
+/* '\1f4c5' */
+
+i.basic.icon.cancel:before {
+ content: '\2716';
+}
+
+/* '✖' */
+
+i.basic.icon.close:before {
+ content: '\e80d';
+}
+
+/* '' */
+
+i.basic.icon.color:before {
+ content: '\e794';
+}
+
+/* '' */
+
+i.basic.icon.chat:before {
+ content: '\e720';
+}
+
+/* '' */
+
+i.basic.icon.check:before {
+ content: '\2611';
+}
+
+/* '☑' */
+
+i.basic.icon.time:before {
+ content: '🕔';
+}
+
+/* '\1f554' */
+
+i.basic.icon.cloud:before {
+ content: '\2601';
+}
+
+/* '☁' */
+
+i.basic.icon.code:before {
+ content: '\e714';
+}
+
+/* '' */
+
+i.basic.icon.email:before {
+ content: '\40';
+}
+
+/* '@' */
+
+i.basic.icon.settings:before {
+ content: '\26ef';
+}
+
+/* '⛯' */
+
+i.basic.icon.setting:before {
+ content: '\2699';
+}
+
+/* '⚙' */
+
+i.basic.icon.comment:before {
+ content: '\e802';
+}
+
+/* '' */
+
+i.basic.icon.clockwise.counter:before {
+ content: '\27f2';
+}
+
+/* '⟲' */
+
+i.basic.icon.clockwise:before {
+ content: '\27f3';
+}
+
+/* '⟳' */
+
+i.basic.icon.cube:before {
+ content: '\e807';
+}
+
+/* '' */
+
+i.basic.icon.direction:before {
+ content: '\27a2';
+}
+
+/* '➢' */
+
+i.basic.icon.doc:before {
+ content: '📄';
+}
+
+/* '\1f4c4' */
+
+i.basic.icon.docs:before {
+ content: '\e736';
+}
+
+/* '' */
+
+i.basic.icon.dollar:before {
+ content: '💵';
+}
+
+/* '\1f4b5' */
+
+i.basic.icon.paint:before {
+ content: '\e7b5';
+}
+
+/* '' */
+
+i.basic.icon.edit:before {
+ content: '\270d';
+}
+
+/* '✍' */
+
+i.basic.icon.eject:before {
+ content: '\2ecf';
+}
+
+/* '⻏' */
+
+i.basic.icon.export:before {
+ content: '\e715';
+}
+
+/* '' */
+
+i.basic.icon.hide:before {
+ content: '\e70b';
+}
+
+/* '' */
+
+i.basic.icon.unhide:before {
+ content: '\e80f';
+}
+
+/* '' */
+
+i.basic.icon.facebook:before {
+ content: '\f301';
+}
+
+/* '' */
+
+i.basic.icon.fast-forward:before {
+ content: '\e804';
+}
+
+/* '' */
+
+i.basic.icon.fire:before {
+ content: '🔥';
+}
+
+/* '\1f525' */
+
+i.basic.icon.flag:before {
+ content: '\2691';
+}
+
+/* '⚑' */
+
+i.basic.icon.lightning:before {
+ content: '\26a1';
+}
+
+/* '⚡' */
+
+i.basic.icon.lab:before {
+ content: '\68';
+}
+
+/* 'h' */
+
+i.basic.icon.flight:before {
+ content: '\2708';
+}
+
+/* '✈' */
+
+i.basic.icon.forward:before {
+ content: '\27a6';
+}
+
+/* '➦' */
+
+i.basic.icon.gift:before {
+ content: '🎁';
+}
+
+/* '\1f381' */
+
+i.basic.icon.github:before {
+ content: '\f308';
+}
+
+/* '' */
+
+i.basic.icon.globe:before {
+ content: '\e817';
+}
+
+/* '' */
+
+i.basic.icon.headphones:before {
+ content: '🎧';
+}
+
+/* '\1f3a7' */
+
+i.basic.icon.question:before {
+ content: '\2753';
+}
+
+/* '❓' */
+
+i.basic.icon.home:before {
+ content: '\2302';
+}
+
+/* '⌂' */
+
+i.basic.icon.i:before {
+ content: '\2139';
+}
+
+/* 'ℹ' */
+
+i.basic.icon.idea:before {
+ content: '💡';
+}
+
+/* '\1f4a1' */
+
+i.basic.icon.open:before {
+ content: '🔗';
+}
+
+/* '\1f517' */
+
+i.basic.icon.content:before {
+ content: '\e782';
+}
+
+/* '' */
+
+i.basic.icon.location:before {
+ content: '\e724';
+}
+
+/* '' */
+
+i.basic.icon.mail:before {
+ content: '\2709';
+}
+
+/* '✉' */
+
+i.basic.icon.mic:before {
+ content: '🎤';
+}
+
+/* '\1f3a4' */
+
+i.basic.icon.minus:before {
+ content: '\2d';
+}
+
+/* '-' */
+
+i.basic.icon.money:before {
+ content: '💰';
+}
+
+/* '\1f4b0' */
+
+i.basic.icon.off:before {
+ content: '\e78e';
+}
+
+/* '' */
+
+i.basic.icon.pause:before {
+ content: '\e808';
+}
+
+/* '' */
+
+i.basic.icon.photos:before {
+ content: '\e812';
+}
+
+/* '' */
+
+i.basic.icon.photo:before {
+ content: '🌄';
+}
+
+/* '\1f304' */
+
+i.basic.icon.pin:before {
+ content: '📌';
+}
+
+/* '\1f4cc' */
+
+i.basic.icon.play:before {
+ content: '\e809';
+}
+
+/* '' */
+
+i.basic.icon.plus:before {
+ content: '\2b';
+}
+
+/* '+' */
+
+i.basic.icon.print:before {
+ content: '\e716';
+}
+
+/* '' */
+
+i.basic.icon.rss:before {
+ content: '\e73a';
+}
+
+/* '' */
+
+i.basic.icon.search:before {
+ content: '🔍';
+}
+
+/* '\1f50d' */
+
+i.basic.icon.shuffle:before {
+ content: '\e803';
+}
+
+/* '' */
+
+i.basic.icon.tag:before {
+ content: '\e80a';
+}
+
+/* '' */
+
+i.basic.icon.tags:before {
+ content: '\e70d';
+}
+
+/* '' */
+
+i.basic.icon.terminal:before {
+ content: '\e7ac';
+}
+
+/* '' */
+
+i.basic.icon.thumbs.down:before {
+ content: '👎';
+}
+
+/* '\1f44e' */
+
+i.basic.icon.thumbs.up:before {
+ content: '👍';
+}
+
+/* '\1f44d' */
+
+i.basic.icon.to-end:before {
+ content: '\e806';
+}
+
+/* '' */
+
+i.basic.icon.to-start:before {
+ content: '\e805';
+}
+
+/* '' */
+
+i.basic.icon.top.list:before {
+ content: '🏆';
+}
+
+/* '\1f3c6' */
+
+i.basic.icon.trash:before {
+ content: '\e729';
+}
+
+/* '' */
+
+i.basic.icon.twitter:before {
+ content: '\f303';
+}
+
+/* '' */
+
+i.basic.icon.upload:before {
+ content: '\e711';
+}
+
+/* '' */
+
+i.basic.icon.user.add:before {
+ content: '\e700';
+}
+
+/* '' */
+
+i.basic.icon.user:before {
+ content: '👤';
+}
+
+/* '\1f464' */
+
+i.basic.icon.community:before {
+ content: '\e814';
+}
+
+/* '' */
+
+i.basic.icon.users:before {
+ content: '👥';
+}
+
+/* '\1f465' */
+
+i.basic.icon.id:before {
+ content: '\e722';
+}
+
+/* '' */
+
+i.basic.icon.url:before {
+ content: '🔗';
+}
+
+/* '\1f517' */
+
+i.basic.icon.zoom.in:before {
+ content: '\e750';
+}
+
+/* '' */
+
+i.basic.icon.zoom.out:before {
+ content: '\e751';
+}
+
+/* '' */
+
+/*--------------
+ Spacing Fix
+---------------*/
+
+/* dropdown arrows are to the right */
+
+i.dropdown.basic.icon {
+ margin: 0em 0em 0em 0.5em;
+}
+
+/* stars are usually consecutive */
+
+i.basic.icon.star {
+ width: auto;
+ margin: 0em;
+}
+
+/* left side basic.icons */
+
+i.basic.icon.left,
+i.basic.icon.left,
+i.basic.icon.left {
+ width: auto;
+ margin: 0em 0.5em 0em 0em;
+}
+
+/* right side basic.icons */
+
+i.basic.icon.search,
+i.basic.icon.up,
+i.basic.icon.down,
+i.basic.icon.right {
+ width: auto;
+ margin: 0em 0em 0em 0.5em;
+}
+
+/*--------------
+ Aliases
+---------------*/
+
+/* aliases for convenience */
+
+i.basic.icon.delete:before {
+ content: '\e80d';
+}
+
+/* '' */
+
+i.basic.icon.dropdown:before {
+ content: '\25be';
+}
+
+/* '▾' */
+
+i.basic.icon.help:before {
+ content: '\e704';
+}
+
+/* '' */
+
+i.basic.icon.info:before {
+ content: '\e705';
+}
+
+/* '' */
+
+i.basic.icon.error:before {
+ content: '\e80d';
+}
+
+/* '' */
+
+i.basic.icon.dislike:before {
+ content: '\2661';
+}
+
+/* '♡' */
+
+i.basic.icon.like:before {
+ content: '\2665';
+}
+
+/* '♥' */
+
+i.basic.icon.eye:before {
+ content: '\e80f';
+}
+
+/* '' */
+
+i.basic.icon.eye.hidden:before {
+ content: '\e70b';
+}
+
+/* '' */
+
+i.basic.icon.date:before {
+ content: '📅';
+}
+
+/* '\1f4c5' */
+
+/*******************************
+ States
+*******************************/
+
+i.basic.icon.hover {
+ opacity: 1;
+}
+
+i.basic.icon.active {
+ opacity: 1;
+}
+
+i.emphasized.basic.icon {
+ opacity: 1;
+}
+
+i.basic.icon.disabled {
+ opacity: 0.3;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Link
+--------------------*/
+
+i.link.basic.icon {
+ cursor: pointer;
+ opacity: 0.7;
+ -webkit-transition: opacity 0.3s ease-out;
+ -moz-transition: opacity 0.3s ease-out;
+ transition: opacity 0.3s ease-out;
+}
+
+.link.basic.icon:hover {
+ opacity: 1 !important;
+}
+
+/*-------------------
+ Circular
+--------------------*/
+
+i.circular.basic.icon {
+ border-radius: 500px !important;
+ padding: 0.5em 0em !important;
+ -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ line-height: 1 !important;
+ width: 2em !important;
+ height: 2em !important;
+}
+
+i.circular.inverted.basic.icon {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Flipped
+--------------------*/
+
+i.vertically.flipped.basic.icon {
+ -webkit-transform: scale(1, -1);
+ -moz-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+
+i.horizontally.flipped.basic.icon {
+ -webkit-transform: scale(-1, 1);
+ -moz-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+
+/*-------------------
+ Rotated
+--------------------*/
+
+i.left.rotated.basic.icon {
+ -webkit-transform: rotate(-90deg);
+ -moz-transform: rotate(-90deg);
+ -ms-transform: rotate(-90deg);
+ transform: rotate(-90deg);
+}
+
+i.right.rotated.basic.icon {
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+
+/*-------------------
+ Square
+--------------------*/
+
+i.square.basic.icon {
+ width: 2em;
+ height: 2em;
+ padding: 0.5em 0.35em !important;
+ -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ vertical-align: baseline;
+}
+
+i.square.basic.icon:before {
+ vertical-align: middle;
+}
+
+i.square.inverted.basic.icon {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+i.inverted.basic.icon {
+ background-color: #222222;
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+i.blue.basic.icon {
+ color: #6ECFF5 !important;
+}
+
+i.black.basic.icon {
+ color: #5C6166 !important;
+}
+
+i.green.basic.icon {
+ color: #A1CF64 !important;
+}
+
+i.red.basic.icon {
+ color: #D95C5C !important;
+}
+
+i.purple.basic.icon {
+ color: #564F8A !important;
+}
+
+i.teal.basic.icon {
+ color: #00B5AD !important;
+}
+
+/*-------------------
+ Inverted Colors
+--------------------*/
+
+i.inverted.black.basic.icon {
+ background-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.blue.basic.icon {
+ background-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.green.basic.icon {
+ background-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.red.basic.icon {
+ background-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.purple.basic.icon {
+ background-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.teal.basic.icon {
+ background-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+i.small.basic.icon {
+ font-size: 0.875em;
+}
+
+i.basic.icon {
+ font-size: 1em;
+}
+
+i.large.basic.icon {
+ font-size: 1.5em;
+ margin-right: 0.2em;
+ vertical-align: middle;
+}
+
+i.big.basic.icon {
+ font-size: 2em;
+ margin-right: 0.5em;
+ vertical-align: middle;
+}
+
+i.huge.basic.icon {
+ font-size: 4em;
+ margin-right: 0.75em;
+ vertical-align: middle;
+}
+
+i.massive.basic.icon {
+ font-size: 8em;
+ margin-right: 1em;
+ vertical-align: middle;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/elements/button.css b/css/semantic/build/uncompressed/elements/button.css
new file mode 100644
index 0000000..a2ca43e
--- /dev/null
+++ b/css/semantic/build/uncompressed/elements/button.css
@@ -0,0 +1,1424 @@
+/*
+ * # Semantic - Button
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Button
+*******************************/
+
+/* Prototype */
+
+.ui.button {
+ cursor: pointer;
+ display: inline-block;
+ vertical-align: middle;
+ min-height: 1em;
+ outline: none;
+ border: none;
+ background-color: #FAFAFA;
+ color: #808080;
+ margin: 0em;
+ padding: 0.8em 1.5em;
+ font-size: 1rem;
+ text-transform: uppercase;
+ line-height: 1;
+ font-weight: bold;
+ font-style: normal;
+ text-align: center;
+ text-decoration: none;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.05)));
+ background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
+ background-image: -moz-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
+ background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
+ border-radius: 0.25em;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.08) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.08) inset;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -webkit-transition: opacity 0.25s ease, background-color 0.25s ease, color 0.25s ease, background 0.25s ease, -webkit-box-shadow 0.25s ease;
+ -moz-transition: opacity 0.25s ease, background-color 0.25s ease, color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
+ transition: opacity 0.25s ease, background-color 0.25s ease, color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Active
+---------------*/
+
+.ui.buttons .active.button,
+.ui.active.button {
+ background-color: #EAEAEA;
+ background-image: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.button:hover {
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.08)));
+ background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.08));
+ background-image: -moz-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.08));
+ background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.08));
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.button.active:hover {
+ background-image: none;
+}
+
+.ui.button:hover .icon,
+.ui.button.hover .icon {
+ opacity: 0.85;
+}
+
+/*--------------
+ Down
+---------------*/
+
+.ui.button:active,
+.ui.active.button:active {
+ background-color: #F1F1F1;
+ color: rgba(0, 0, 0, 0.7);
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important;
+}
+
+/*--------------
+ Loading
+---------------*/
+
+.ui.loading.button {
+ position: relative;
+ cursor: default;
+ background-color: #FFFFFF !important;
+ color: transparent !important;
+ -webkit-transition: all 0s linear;
+ -moz-transition: all 0s linear;
+ transition: all 0s linear;
+}
+
+.ui.loading.button:after {
+ position: absolute;
+ top: 0em;
+ left: 0em;
+ width: 100%;
+ height: 100%;
+ content: '';
+ background: transparent url(../images/loader-mini.gif) no-repeat 50% 50%;
+}
+
+.ui.labeled.icon.loading.button .icon {
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Disabled
+--------------------*/
+
+.ui.disabled.button,
+.ui.disabled.button:hover,
+.ui.disabled.button.active {
+ background-color: #DDDDDD !important;
+ cursor: default;
+ color: rgba(0, 0, 0, 0.5) !important;
+ opacity: 0.3 !important;
+ background-image: none !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Animated
+--------------------*/
+
+.ui.animated.button {
+ position: relative;
+ overflow: hidden;
+}
+
+.ui.animated.button .visible.content {
+ position: relative;
+}
+
+.ui.animated.button .hidden.content {
+ position: absolute;
+ width: 100%;
+}
+
+/* Horizontal */
+
+.ui.animated.button .visible.content,
+.ui.animated.button .hidden.content {
+ -webkit-transition: right 0.3s ease 0s;
+ -moz-transition: right 0.3s ease 0s;
+ transition: right 0.3s ease 0s;
+}
+
+.ui.animated.button .visible.content {
+ left: auto;
+ right: 0%;
+}
+
+.ui.animated.button .hidden.content {
+ top: 50%;
+ left: auto;
+ right: -100%;
+ margin-top: -0.55em;
+}
+
+.ui.animated.button:hover .visible.content {
+ left: auto;
+ right: 200%;
+}
+
+.ui.animated.button:hover .hidden.content {
+ left: auto;
+ right: 0%;
+}
+
+/* Vertical */
+
+.ui.vertical.animated.button .visible.content,
+.ui.vertical.animated.button .hidden.content {
+ -webkit-transition: top 0.3s ease 0s, -webkit-transform 0.3s ease 0s;
+ -moz-transition: top 0.3s ease 0s, -moz-transform 0.3s ease 0s;
+ transition: top 0.3s ease 0s, transform 0.3s ease 0s;
+}
+
+.ui.vertical.animated.button .visible.content {
+ -webkit-transform: translateY(0%);
+ -moz-transform: translateY(0%);
+ -ms-transform: translateY(0%);
+ transform: translateY(0%);
+ right: auto;
+}
+
+.ui.vertical.animated.button .hidden.content {
+ top: -100%;
+ left: 0%;
+ right: auto;
+}
+
+.ui.vertical.animated.button:hover .visible.content {
+ -webkit-transform: translateY(200%);
+ -moz-transform: translateY(200%);
+ -ms-transform: translateY(200%);
+ transform: translateY(200%);
+ right: auto;
+}
+
+.ui.vertical.animated.button:hover .hidden.content {
+ top: 50%;
+ right: auto;
+}
+
+/* Fade */
+
+.ui.fade.animated.button .visible.content,
+.ui.fade.animated.button .hidden.content {
+ -webkit-transition: opacity 0.3s ease 0s, -webkit-transform 0.3s ease 0s;
+ -moz-transition: opacity 0.3s ease 0s, -moz-transform 0.3s ease 0s;
+ transition: opacity 0.3s ease 0s, transform 0.3s ease 0s;
+}
+
+.ui.fade.animated.button .visible.content {
+ left: auto;
+ right: auto;
+ opacity: 1;
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+}
+
+.ui.fade.animated.button .hidden.content {
+ opacity: 0;
+ left: 0%;
+ right: auto;
+ -webkit-transform: scale(1.2);
+ -moz-transform: scale(1.2);
+ -ms-transform: scale(1.2);
+ transform: scale(1.2);
+}
+
+.ui.fade.animated.button:hover .visible.content {
+ left: auto;
+ right: auto;
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ -moz-transform: scale(0.7);
+ -ms-transform: scale(0.7);
+ transform: scale(0.7);
+}
+
+.ui.fade.animated.button:hover .hidden.content {
+ left: 0%;
+ right: auto;
+ opacity: 1;
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+}
+
+/*-------------------
+ Primary
+--------------------*/
+
+.ui.primary.buttons .button,
+.ui.primary.button {
+ background-color: #D95C5C;
+ color: #FFFFFF;
+}
+
+.ui.primary.buttons .button:hover,
+.ui.primary.button:hover,
+.ui.primary.buttons .active.button,
+.ui.primary.button.active {
+ background-color: #E75859;
+ color: #FFFFFF;
+}
+
+.ui.primary.buttons .button:active,
+.ui.primary.button:active {
+ background-color: #D24B4C;
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Secondary
+--------------------*/
+
+.ui.secondary.buttons .button,
+.ui.secondary.button {
+ background-color: #00B5AD;
+ color: #FFFFFF;
+}
+
+.ui.secondary.buttons .button:hover,
+.ui.secondary.button:hover,
+.ui.secondary.buttons .active.button,
+.ui.secondary.button.active {
+ background-color: #009A93;
+ color: #FFFFFF;
+}
+
+.ui.secondary.buttons .button:active,
+.ui.secondary.button:active {
+ background-color: #00847E;
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Social
+--------------------*/
+
+/* Facebook */
+
+.ui.facebook.button {
+ background-color: #3B579D;
+ color: #FFFFFF;
+}
+
+.ui.facebook.button:hover {
+ background-color: #3A59A9;
+ color: #FFFFFF;
+}
+
+.ui.facebook.button:active {
+ background-color: #334F95;
+ color: #FFFFFF;
+}
+
+/* Twitter */
+
+.ui.twitter.button {
+ background-color: #4092CC;
+ color: #FFFFFF;
+}
+
+.ui.twitter.button:hover {
+ background-color: #399ADE;
+ color: #FFFFFF;
+}
+
+.ui.twitter.button:active {
+ background-color: #3283BC;
+ color: #FFFFFF;
+}
+
+/* Google Plus */
+
+.ui.google.plus.button {
+ background-color: #D34836;
+ color: #FFFFFF;
+}
+
+.ui.google.plus.button:hover {
+ background-color: #E3432E;
+ color: #FFFFFF;
+}
+
+.ui.google.plus.button:active {
+ background-color: #CA3A27;
+ color: #FFFFFF;
+}
+
+/* Linked In */
+
+.ui.linkedin.button {
+ background-color: #1F88BE;
+ color: #FFFFFF;
+}
+
+.ui.linkedin.button:hover {
+ background-color: #1394D6;
+ color: #FFFFFF;
+}
+
+.ui.linkedin.button:active {
+ background-color: #1179AE;
+ color: #FFFFFF;
+}
+
+/* YouTube */
+
+.ui.youtube.button {
+ background-color: #CC181E;
+ color: #FFFFFF;
+}
+
+.ui.youtube.button:hover {
+ background-color: #DF0209;
+ color: #FFFFFF;
+}
+
+.ui.youtube.button:active {
+ background-color: #A50006;
+ color: #FFFFFF;
+}
+
+/* Instagram */
+
+.ui.instagram.button {
+ background-color: #49769C;
+ color: #FFFFFF;
+}
+
+.ui.instagram.button:hover {
+ background-color: #4781B1;
+ color: #FFFFFF;
+}
+
+.ui.instagram.button:active {
+ background-color: #38658A;
+ color: #FFFFFF;
+}
+
+/* Pinterest */
+
+.ui.pinterest.button {
+ background-color: #00ACED;
+ color: #FFFFFF;
+}
+
+.ui.pinterest.button:hover {
+ background-color: #00B9FF;
+ color: #FFFFFF;
+}
+
+.ui.pinterest.button:active {
+ background-color: #009EDA;
+ color: #FFFFFF;
+}
+
+/* vk.com */
+
+.ui.vk.button {
+ background-color: #4D7198;
+ color: #FFFFFF;
+}
+
+.ui.vk.button:hover {
+ background-color: #537AA5;
+ color: #FFFFFF;
+}
+
+.ui.vk.button:active {
+ background-color: #405E7E;
+ color: #FFFFFF;
+}
+
+/*--------------
+ Icon
+---------------*/
+
+.ui.button > .icon {
+ margin-right: 0.6em;
+ line-height: 1;
+ -webkit-transition: opacity 0.1s ease;
+ -moz-transition: opacity 0.1s ease;
+ transition: opacity 0.1s ease;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Floated
+--------------------*/
+
+.ui.left.floated.buttons,
+.ui.left.floated.button {
+ float: left;
+ margin-right: 0.25em;
+}
+
+.ui.right.floated.buttons,
+.ui.right.floated.button {
+ float: right;
+ margin-left: 0.25em;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+.ui.buttons .button,
+.ui.button {
+ font-size: 1rem;
+}
+
+.ui.mini.buttons .button,
+.ui.mini.buttons .or,
+.ui.mini.button {
+ font-size: 0.8rem;
+}
+
+.ui.mini.buttons .button,
+.ui.mini.button {
+ padding: 0.6em 0.8em;
+}
+
+.ui.mini.icon.buttons .button,
+.ui.mini.buttons .icon.button {
+ padding: 0.6em 0.6em;
+}
+
+.ui.tiny.buttons .button,
+.ui.tiny.buttons .or,
+.ui.tiny.button {
+ font-size: 0.875em;
+}
+
+.ui.tiny.buttons .button,
+.ui.tiny.buttons .button,
+.ui.tiny.button {
+ padding: 0.6em 0.8em;
+}
+
+.ui.tiny.icon.buttons .button,
+.ui.tiny.buttons .icon.button {
+ padding: 0.6em 0.6em;
+}
+
+.ui.small.buttons .button,
+.ui.small.buttons .or,
+.ui.small.button {
+ font-size: 0.875rem;
+}
+
+.ui.large.buttons .button,
+.ui.large.buttons .or,
+.ui.large.button {
+ font-size: 1.125rem;
+}
+
+.ui.big.buttons .button,
+.ui.big.buttons .or,
+.ui.big.button {
+ font-size: 1.25rem;
+}
+
+.ui.huge.buttons .button,
+.ui.huge.buttons .or,
+.ui.huge.button {
+ font-size: 1.375rem;
+}
+
+.ui.massive.buttons .button,
+.ui.massive.buttons .or,
+.ui.massive.button {
+ font-size: 1.5rem;
+ font-weight: bold;
+}
+
+/* Or resize */
+
+.ui.tiny.buttons .or:before,
+.ui.mini.buttons .or:before {
+ width: 1.45em;
+ height: 1.55em;
+ line-height: 1.4;
+ margin-left: -0.725em;
+ margin-top: -0.25em;
+}
+
+.ui.tiny.buttons .or:after,
+.ui.mini.buttons .or:after {
+ height: 1.45em;
+}
+
+/* loading */
+
+.ui.huge.loading.button:after {
+ background-image: url(../images/loader-small.gif);
+}
+
+.ui.massive.buttons .loading.button:after,
+.ui.gigantic.buttons .loading.button:after,
+.ui.massive.loading.button:after,
+.ui.gigantic.loading.button:after {
+ background-image: url(../images/loader-medium.gif);
+}
+
+.ui.huge.loading.button:after,
+.ui.huge.loading.button.active:after {
+ background-image: url(../images/loader-small.gif);
+}
+
+.ui.massive.buttons .loading.button:after,
+.ui.gigantic.buttons .loading.button:after,
+.ui.massive.loading.button:after,
+.ui.gigantic.loading.button:after,
+.ui.massive.buttons .loading.button.active:after,
+.ui.gigantic.buttons .loading.button.active:after,
+.ui.massive.loading.button.active:after,
+.ui.gigantic.loading.button.active:after {
+ background-image: url(../images/loader-medium.gif);
+}
+
+/*--------------
+ Icon Only
+---------------*/
+
+.ui.icon.buttons .button,
+.ui.icon.button {
+ padding: 0.8em;
+}
+
+.ui.icon.buttons .button > .icon,
+.ui.icon.button > .icon {
+ opacity: 0.9;
+ margin: 0em;
+ vertical-align: top;
+}
+
+/*-------------------
+ Basic
+--------------------*/
+
+.ui.basic.buttons .button,
+.ui.basic.button {
+ background-color: transparent !important;
+ background-image: none;
+ color: #808080 !important;
+ font-weight: normal;
+ text-transform: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.basic.buttons {
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ border-radius: 0.25em;
+}
+
+.ui.basic.buttons .button:hover,
+.ui.basic.button:hover {
+ background-image: none;
+ color: #7F7F7F !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.18) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.18) inset;
+}
+
+.ui.basic.buttons .button:active,
+.ui.basic.button:active {
+ background-color: rgba(0, 0, 0, 0.02) !important;
+ color: #7F7F7F !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.basic.buttons .button.active,
+.ui.basic.button.active {
+ background-color: rgba(0, 0, 0, 0.05);
+ color: #7F7F7F;
+ -webkit-box-shadow: 0px 0px 0px 1px #BDBDBD inset;
+ box-shadow: 0px 0px 0px 1px #BDBDBD inset;
+}
+
+.ui.basic.buttons .button.active:hover,
+.ui.basic.button.active:hover {
+ background-color: rgba(0, 0, 0, 0.1);
+}
+
+/* Inverted */
+
+.ui.basic.inverted.buttons .button,
+.ui.basic.inverted.button {
+ color: #FAFAFA !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.3) inset;
+ box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.3) inset;
+}
+
+.ui.basic.inverted.buttons .button:hover,
+.ui.basic.inverted.button:hover {
+ background-image: none;
+ color: #FFFFFF !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.5) inset;
+ box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.5) inset;
+}
+
+.ui.basic.inverted.buttons .button:active,
+.ui.basic.inverted.button:active {
+ background-color: rgba(255, 255, 255, 0.05) !important;
+ color: #FFFFFF !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.8) inset !important;
+ box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.8) inset !important;
+}
+
+.ui.basic.inverted.buttons .button.active,
+.ui.basic.inverted.button.active {
+ background-color: rgba(255, 255, 255, 0.5);
+ color: #FFFFFF;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.basic.inverted.buttons .button.active:hover,
+.ui.basic.inverted.button.active:hover {
+ background-color: rgba(0, 0, 0, 0.1);
+}
+
+/* Basic Group */
+
+.ui.basic.buttons .button {
+ border-left: 1px solid rgba(0, 0, 0, 0.1);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.basic.buttons .button:hover,
+.ui.basic.buttons .button:active {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.basic.buttons .button.active,
+.ui.basic.buttons .button.active:hover {
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2) inset;
+}
+
+/*--------------
+ Labeled Icon
+---------------*/
+
+.ui.labeled.icon.buttons .button,
+.ui.labeled.icon.button {
+ position: relative;
+ padding-left: 4em !important;
+ padding-right: 1.4em !important;
+}
+
+.ui.labeled.icon.buttons > .button > .icon,
+.ui.labeled.icon.button > .icon {
+ position: absolute;
+ top: 0em;
+ left: 0em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 2.75em;
+ height: 100%;
+ padding-top: 0.8em;
+ background-color: rgba(0, 0, 0, 0.05);
+ text-align: center;
+ border-radius: 0.25em 0px 0px 0.25em;
+ line-height: 1;
+ -webkit-box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset;
+ box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset;
+}
+
+.ui.labeled.icon.buttons .button > .icon {
+ border-radius: 0em;
+}
+
+.ui.labeled.icon.buttons .button:first-child > .icon {
+ border-top-left-radius: 0.25em;
+ border-bottom-left-radius: 0.25em;
+}
+
+.ui.labeled.icon.buttons .button:last-child > .icon {
+ border-top-right-radius: 0.25em;
+ border-bottom-right-radius: 0.25em;
+}
+
+.ui.vertical.labeled.icon.buttons .button:first-child > .icon {
+ border-radius: 0em;
+ border-top-left-radius: 0.25em;
+}
+
+.ui.vertical.labeled.icon.buttons .button:last-child > .icon {
+ border-radius: 0em;
+ border-bottom-left-radius: 0.25em;
+}
+
+.ui.right.labeled.icon.button {
+ padding-left: 1.4em !important;
+ padding-right: 4em !important;
+}
+
+.ui.left.fluid.labeled.icon.button,
+.ui.right.fluid.labeled.icon.button {
+ padding-left: 1.4em !important;
+ padding-right: 1.4em !important;
+}
+
+.ui.right.labeled.icon.button .icon {
+ left: auto;
+ right: 0em;
+ border-radius: 0em 0.25em 0.25em 0em;
+ -webkit-box-shadow: 1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset;
+ box-shadow: 1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset;
+}
+
+/*--------------
+ Toggle
+---------------*/
+
+/* Toggle (Modifies active state to give affordances) */
+
+.ui.toggle.buttons .active.button,
+.ui.buttons .button.toggle.active,
+.ui.button.toggle.active {
+ background-color: #5BBD72 !important;
+ color: #FFFFFF !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.ui.button.toggle.active:hover {
+ background-color: #58CB73 !important;
+ color: #FFFFFF !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+/*--------------
+ Circular
+---------------*/
+
+.ui.circular.button {
+ border-radius: 10em;
+}
+
+/*--------------
+ Attached
+---------------*/
+
+.ui.attached.button {
+ display: block;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important;
+}
+
+.ui.attached.top.button {
+ border-radius: 0.25em 0.25em 0em 0em;
+}
+
+.ui.attached.bottom.button {
+ border-radius: 0em 0em 0.25em 0.25em;
+}
+
+.ui.attached.left.button {
+ display: inline-block;
+ border-left: none;
+ padding-right: 0.75em;
+ text-align: right;
+ border-radius: 0.25em 0em 0em 0.25em;
+}
+
+.ui.attached.right.button {
+ display: inline-block;
+ padding-left: 0.75em;
+ text-align: left;
+ border-radius: 0em 0.25em 0.25em 0em;
+}
+
+/*-------------------
+ Or Buttons
+--------------------*/
+
+.ui.buttons .or {
+ position: relative;
+ float: left;
+ width: 0.3em;
+ height: 1.1em;
+ z-index: 3;
+}
+
+.ui.buttons .or:before {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ content: 'or';
+ background-color: #FFFFFF;
+ margin-top: -0.1em;
+ margin-left: -0.9em;
+ width: 1.8em;
+ height: 1.8em;
+ line-height: 1.55;
+ color: #AAAAAA;
+ font-style: normal;
+ font-weight: normal;
+ text-align: center;
+ border-radius: 500px;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.buttons .or[data-text]:before {
+ content: attr(data-text);
+}
+
+.ui.buttons .or:after {
+ position: absolute;
+ top: 0em;
+ left: 0em;
+ content: ' ';
+ width: 0.3em;
+ height: 1.7em;
+ background-color: transparent;
+ border-top: 0.5em solid #FFFFFF;
+ border-bottom: 0.5em solid #FFFFFF;
+}
+
+/* Fluid Or */
+
+.ui.fluid.buttons .or {
+ width: 0em !important;
+}
+
+.ui.fluid.buttons .or:after {
+ display: none;
+}
+
+/*-------------------
+ Attached
+--------------------*/
+
+/* Plural Attached */
+
+.attached.ui.buttons {
+ margin: 0px;
+ border-radius: 4px 4px 0px 0px;
+}
+
+.attached.ui.buttons .button:first-child {
+ border-radius: 4px 0px 0px 0px;
+}
+
+.attached.ui.buttons .button:last-child {
+ border-radius: 0px 4px 0px 0px;
+}
+
+/* Bottom Side */
+
+.bottom.attached.ui.buttons {
+ margin-top: -1px;
+ border-radius: 0px 0px 4px 4px;
+}
+
+.bottom.attached.ui.buttons .button:first-child {
+ border-radius: 0px 0px 0px 4px;
+}
+
+.bottom.attached.ui.buttons .button:last-child {
+ border-radius: 0px 0px 4px 0px;
+}
+
+/* Left Side */
+
+.left.attached.ui.buttons {
+ margin-left: -1px;
+ border-radius: 0px 4px 4px 0px;
+}
+
+.left.attached.ui.buttons .button:first-child {
+ margin-left: -1px;
+ border-radius: 0px 4px 0px 0px;
+}
+
+.left.attached.ui.buttons .button:last-child {
+ margin-left: -1px;
+ border-radius: 0px 0px 4px 0px;
+}
+
+/* Right Side */
+
+.right.attached.ui.buttons,
+.right.attached.ui.buttons .button {
+ margin-right: -1px;
+ border-radius: 4px 0px 0px 4px;
+}
+
+.right.attached.ui.buttons .button:first-child {
+ margin-left: -1px;
+ border-radius: 4px 0px 0px 0px;
+}
+
+.right.attached.ui.buttons .button:last-child {
+ margin-left: -1px;
+ border-radius: 0px 0px 0px 4px;
+}
+
+/* Fluid */
+
+.ui.fluid.buttons,
+.ui.button.fluid,
+.ui.fluid.buttons > .button {
+ display: block;
+ width: 100%;
+}
+
+.ui.\32.buttons > .button,
+.ui.two.buttons > .button {
+ width: 50%;
+}
+
+.ui.\33.buttons > .button,
+.ui.three.buttons > .button {
+ width: 33.333%;
+}
+
+.ui.\34.buttons > .button,
+.ui.four.buttons > .button {
+ width: 25%;
+}
+
+.ui.\35.buttons > .button,
+.ui.five.buttons > .button {
+ width: 20%;
+}
+
+.ui.\36.buttons > .button,
+.ui.six.buttons > .button {
+ width: 16.666%;
+}
+
+.ui.\37.buttons > .button,
+.ui.seven.buttons > .button {
+ width: 14.285%;
+}
+
+.ui.\38.buttons > .button,
+.ui.eight.buttons > .button {
+ width: 12.500%;
+}
+
+.ui.\39.buttons > .button,
+.ui.nine.buttons > .button {
+ width: 11.11%;
+}
+
+.ui.\31\30.buttons > .button,
+.ui.ten.buttons > .button {
+ width: 10%;
+}
+
+.ui.\31\31.buttons > .button,
+.ui.eleven.buttons > .button {
+ width: 9.09%;
+}
+
+.ui.\31\32.buttons > .button,
+.ui.twelve.buttons > .button {
+ width: 8.3333%;
+}
+
+/* Fluid Vertical Buttons */
+
+.ui.fluid.vertical.buttons,
+.ui.fluid.vertical.buttons > .button {
+ display: block;
+ width: auto;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.\32.vertical.buttons > .button,
+.ui.two.vertical.buttons > .button {
+ height: 50%;
+}
+
+.ui.\33.vertical.buttons > .button,
+.ui.three.vertical.buttons > .button {
+ height: 33.333%;
+}
+
+.ui.\34.vertical.buttons > .button,
+.ui.four.vertical.buttons > .button {
+ height: 25%;
+}
+
+.ui.\35.vertical.buttons > .button,
+.ui.five.vertical.buttons > .button {
+ height: 20%;
+}
+
+.ui.\36.vertical.buttons > .button,
+.ui.six.vertical.buttons > .button {
+ height: 16.666%;
+}
+
+.ui.\37.vertical.buttons > .button,
+.ui.seven.vertical.buttons > .button {
+ height: 14.285%;
+}
+
+.ui.\38.vertical.buttons > .button,
+.ui.eight.vertical.buttons > .button {
+ height: 12.500%;
+}
+
+.ui.\39.vertical.buttons > .button,
+.ui.nine.vertical.buttons > .button {
+ height: 11.11%;
+}
+
+.ui.\31\30.vertical.buttons > .button,
+.ui.ten.vertical.buttons > .button {
+ height: 10%;
+}
+
+.ui.\31\31.vertical.buttons > .button,
+.ui.eleven.vertical.buttons > .button {
+ height: 9.09%;
+}
+
+.ui.\31\32.vertical.buttons > .button,
+.ui.twelve.vertical.buttons > .button {
+ height: 8.3333%;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+/*--- Black ---*/
+
+.ui.black.buttons .button,
+.ui.black.button {
+ background-color: #5C6166;
+ color: #FFFFFF;
+}
+
+.ui.black.buttons .button:hover,
+.ui.black.button:hover {
+ background-color: #4C4C4C;
+ color: #FFFFFF;
+}
+
+.ui.black.buttons .button:active,
+.ui.black.button:active {
+ background-color: #333333;
+ color: #FFFFFF;
+}
+
+/*--- Green ---*/
+
+.ui.green.buttons .button,
+.ui.green.button {
+ background-color: #5BBD72;
+ color: #FFFFFF;
+}
+
+.ui.green.buttons .button:hover,
+.ui.green.button:hover,
+.ui.green.buttons .active.button,
+.ui.green.button.active {
+ background-color: #58cb73;
+ color: #FFFFFF;
+}
+
+.ui.green.buttons .button:active,
+.ui.green.button:active {
+ background-color: #4CB164;
+ color: #FFFFFF;
+}
+
+/*--- Red ---*/
+
+.ui.red.buttons .button,
+.ui.red.button {
+ background-color: #D95C5C;
+ color: #FFFFFF;
+}
+
+.ui.red.buttons .button:hover,
+.ui.red.button:hover,
+.ui.red.buttons .active.button,
+.ui.red.button.active {
+ background-color: #E75859;
+ color: #FFFFFF;
+}
+
+.ui.red.buttons .button:active,
+.ui.red.button:active {
+ background-color: #D24B4C;
+ color: #FFFFFF;
+}
+
+/*--- Orange ---*/
+
+.ui.orange.buttons .button,
+.ui.orange.button {
+ background-color: #E96633;
+ color: #FFFFFF;
+}
+
+.ui.orange.buttons .button:hover,
+.ui.orange.button:hover,
+.ui.orange.buttons .active.button,
+.ui.orange.button.active {
+ background-color: #FF7038;
+ color: #FFFFFF;
+}
+
+.ui.orange.buttons .button:active,
+.ui.orange.button:active {
+ background-color: #DA683B;
+ color: #FFFFFF;
+}
+
+/*--- Blue ---*/
+
+.ui.blue.buttons .button,
+.ui.blue.button {
+ background-color: #6ECFF5;
+ color: #FFFFFF;
+}
+
+.ui.blue.buttons .button:hover,
+.ui.blue.button:hover,
+.ui.blue.buttons .active.button,
+.ui.blue.button.active {
+ background-color: #1AB8F3;
+ color: #FFFFFF;
+}
+
+.ui.blue.buttons .button:active,
+.ui.blue.button:active {
+ background-color: #0AA5DF;
+ color: #FFFFFF;
+}
+
+/*--- Purple ---*/
+
+.ui.purple.buttons .button,
+.ui.purple.button {
+ background-color: #564F8A;
+ color: #FFFFFF;
+}
+
+.ui.purple.buttons .button:hover,
+.ui.purple.button:hover,
+.ui.purple.buttons .active.button,
+.ui.purple.button.active {
+ background-color: #3E3773;
+ color: #FFFFFF;
+}
+
+.ui.purple.buttons .button:active,
+.ui.purple.button:active {
+ background-color: #2E2860;
+ color: #FFFFFF;
+}
+
+/*--- Teal ---*/
+
+.ui.teal.buttons .button,
+.ui.teal.button {
+ background-color: #00B5AD;
+ color: #FFFFFF;
+}
+
+.ui.teal.buttons .button:hover,
+.ui.teal.button:hover,
+.ui.teal.buttons .active.button,
+.ui.teal.button.active {
+ background-color: #009A93;
+ color: #FFFFFF;
+}
+
+.ui.teal.buttons .button:active,
+.ui.teal.button:active {
+ background-color: #00847E;
+ color: #FFFFFF;
+}
+
+/*---------------
+ Positive
+----------------*/
+
+.ui.positive.buttons .button,
+.ui.positive.button {
+ background-color: #5BBD72 !important;
+ color: #FFFFFF;
+}
+
+.ui.positive.buttons .button:hover,
+.ui.positive.button:hover,
+.ui.positive.buttons .active.button,
+.ui.positive.button.active {
+ background-color: #58CB73 !important;
+ color: #FFFFFF;
+}
+
+.ui.positive.buttons .button:active,
+.ui.positive.button:active {
+ background-color: #4CB164 !important;
+ color: #FFFFFF;
+}
+
+/*---------------
+ Negative
+----------------*/
+
+.ui.negative.buttons .button,
+.ui.negative.button {
+ background-color: #D95C5C !important;
+ color: #FFFFFF;
+}
+
+.ui.negative.buttons .button:hover,
+.ui.negative.button:hover,
+.ui.negative.buttons .active.button,
+.ui.negative.button.active {
+ background-color: #E75859 !important;
+ color: #FFFFFF;
+}
+
+.ui.negative.buttons .button:active,
+.ui.negative.button:active {
+ background-color: #D24B4C !important;
+ color: #FFFFFF;
+}
+
+/*******************************
+ Groups
+*******************************/
+
+.ui.buttons {
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.ui.buttons:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+.ui.buttons .button:first-child {
+ border-left: none;
+}
+
+.ui.buttons .button {
+ float: left;
+ border-radius: 0em;
+}
+
+.ui.buttons .button:first-child {
+ margin-left: 0em;
+ border-top-left-radius: 0.25em;
+ border-bottom-left-radius: 0.25em;
+}
+
+.ui.buttons .button:last-child {
+ border-top-right-radius: 0.25em;
+ border-bottom-right-radius: 0.25em;
+}
+
+/* Vertical Style */
+
+.ui.vertical.buttons {
+ display: inline-block;
+}
+
+.ui.vertical.buttons .button {
+ display: block;
+ float: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.vertical.buttons .button:first-child,
+.ui.vertical.buttons .mini.button:first-child,
+.ui.vertical.buttons .tiny.button:first-child,
+.ui.vertical.buttons .small.button:first-child,
+.ui.vertical.buttons .massive.button:first-child,
+.ui.vertical.buttons .huge.button:first-child {
+ margin-top: 0px;
+ border-radius: 0.25em 0.25em 0px 0px;
+}
+
+.ui.vertical.buttons .button:last-child,
+.ui.vertical.buttons .mini.button:last-child,
+.ui.vertical.buttons .tiny.button:last-child,
+.ui.vertical.buttons .small.button:last-child,
+.ui.vertical.buttons .massive.button:last-child,
+.ui.vertical.buttons .huge.button:last-child,
+.ui.vertical.buttons .gigantic.button:last-child {
+ border-radius: 0px 0px 0.25em 0.25em;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/elements/divider.css b/css/semantic/build/uncompressed/elements/divider.css
new file mode 100644
index 0000000..2539452
--- /dev/null
+++ b/css/semantic/build/uncompressed/elements/divider.css
@@ -0,0 +1,180 @@
+/*
+ * # Semantic - Divider
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Divider
+*******************************/
+
+.ui.divider {
+ margin: 1rem 0rem;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ border-bottom: 1px solid rgba(255, 255, 255, 0.8);
+ line-height: 1;
+ height: 0em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+
+.ui.vertical.divider,
+.ui.horizontal.divider {
+ position: absolute;
+ border: none;
+ height: 0em;
+ margin: 0em;
+ background-color: transparent;
+ font-size: 0.875rem;
+ font-weight: bold;
+ text-align: center;
+ text-transform: uppercase;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--------------
+ Vertical
+---------------*/
+
+.ui.vertical.divider {
+ position: absolute;
+ z-index: 2;
+ top: 50%;
+ left: 50%;
+ margin: 0% 0% 0% -3%;
+ width: 6%;
+ height: 50%;
+ line-height: 0;
+ padding: 0em;
+}
+
+.ui.vertical.divider:before,
+.ui.vertical.divider:after {
+ position: absolute;
+ left: 50%;
+ content: " ";
+ z-index: 3;
+ border-left: 1px solid rgba(0, 0, 0, 0.1);
+ border-right: 1px solid rgba(255, 255, 255, 0.8);
+ width: 0%;
+ height: 80%;
+}
+
+.ui.vertical.divider:before {
+ top: -100%;
+}
+
+.ui.vertical.divider:after {
+ top: auto;
+ bottom: 0px;
+}
+
+/*--------------
+ Horizontal
+---------------*/
+
+.ui.horizontal.divider {
+ position: relative;
+ top: 0%;
+ left: 0%;
+ margin: 1rem 1.5rem;
+ height: auto;
+ padding: 0em;
+ line-height: 1;
+}
+
+.ui.horizontal.divider:before,
+.ui.horizontal.divider:after {
+ position: absolute;
+ content: " ";
+ z-index: 3;
+ width: 50%;
+ top: 50%;
+ height: 0%;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ border-bottom: 1px solid rgba(255, 255, 255, 0.8);
+}
+
+.ui.horizontal.divider:before {
+ left: 0%;
+ margin-left: -1.5rem;
+}
+
+.ui.horizontal.divider:after {
+ left: auto;
+ right: 0%;
+ margin-right: -1.5rem;
+}
+
+/*--------------
+ Icon
+---------------*/
+
+.ui.divider > .icon {
+ margin: 0em;
+ font-size: 1rem;
+ vertical-align: middle;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.divider.inverted {
+ color: #ffffff;
+}
+
+.ui.vertical.inverted.divider,
+.ui.horizontal.inverted.divider {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.divider.inverted,
+.ui.divider.inverted:after,
+.ui.divider.inverted:before {
+ border-top-color: rgba(0, 0, 0, 0.15);
+ border-bottom-color: rgba(255, 255, 255, 0.15);
+ border-left-color: rgba(0, 0, 0, 0.15);
+ border-right-color: rgba(255, 255, 255, 0.15);
+}
+
+/*--------------
+ Fitted
+---------------*/
+
+.ui.fitted.divider {
+ margin: 0em;
+}
+
+/*--------------
+ Clearing
+---------------*/
+
+.ui.clearing.divider {
+ clear: both;
+}
+
+/*--------------
+ Section
+---------------*/
+
+.ui.section.divider {
+ margin-top: 2rem;
+ margin-bottom: 2rem;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/elements/header.css b/css/semantic/build/uncompressed/elements/header.css
new file mode 100644
index 0000000..b786b50
--- /dev/null
+++ b/css/semantic/build/uncompressed/elements/header.css
@@ -0,0 +1,376 @@
+/*
+ * # Semantic - Header
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Header
+*******************************/
+
+/* Standard */
+
+.ui.header {
+ border: none;
+ margin: 1em 0em 1rem;
+ padding: 0em;
+ font-size: 1.33em;
+ font-weight: bold;
+ line-height: 1.33;
+}
+
+.ui.header .sub.header {
+ font-size: 1rem;
+ font-weight: normal;
+ margin: 0em;
+ padding: 0em;
+ line-height: 1.2;
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.header .icon {
+ display: table-cell;
+ vertical-align: middle;
+ padding-right: 0.5em;
+}
+
+.ui.header .icon:only-child {
+ display: inline-block;
+ vertical-align: baseline;
+}
+
+.ui.header .content {
+ display: inline-block;
+ vertical-align: top;
+}
+
+.ui.header .icon + .content {
+ padding-left: 0.5em;
+ display: table-cell;
+}
+
+/* Positioning */
+
+.ui.header:first-child {
+ margin-top: 0em;
+}
+
+.ui.header:last-child {
+ margin-bottom: 0em;
+}
+
+.ui.header + p {
+ margin-top: 0em;
+}
+
+/*--------------
+ Page Heading
+---------------*/
+
+h1.ui.header {
+ min-height: 1rem;
+ line-height: 1.33;
+ font-size: 2rem;
+}
+
+h2.ui.header {
+ line-height: 1.33;
+ font-size: 1.75rem;
+}
+
+h3.ui.header {
+ line-height: 1.33;
+ font-size: 1.33rem;
+}
+
+h4.ui.header {
+ line-height: 1.33;
+ font-size: 1.1rem;
+}
+
+h5.ui.header {
+ line-height: 1.2;
+ font-size: 1rem;
+}
+
+/*--------------
+ Content Heading
+---------------*/
+
+.ui.huge.header {
+ min-height: 1em;
+ font-size: 2em;
+}
+
+.ui.large.header {
+ font-size: 1.75em;
+}
+
+.ui.medium.header {
+ font-size: 1.33em;
+}
+
+.ui.small.header {
+ font-size: 1.1em;
+}
+
+.ui.tiny.header {
+ font-size: 1em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Icon
+--------------------*/
+
+.ui.icon.header {
+ display: inline-block;
+ text-align: center;
+}
+
+.ui.icon.header .icon {
+ float: none;
+ display: block;
+ font-size: 3em;
+ margin: 0em auto 0.2em;
+ padding: 0em;
+}
+
+.ui.icon.header .content {
+ display: block;
+}
+
+.ui.icon.header .circular.icon,
+.ui.icon.header .square.icon {
+ font-size: 2em;
+}
+
+.ui.block.icon.header .icon {
+ margin-bottom: 0em;
+}
+
+.ui.icon.header.aligned {
+ margin-left: auto;
+ margin-right: auto;
+ display: block;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.disabled.header {
+ opacity: 0.5;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Colors
+--------------------*/
+
+.ui.blue.header {
+ color: #6ECFF5 !important;
+}
+
+.ui.black.header {
+ color: #5C6166 !important;
+}
+
+.ui.green.header {
+ color: #A1CF64 !important;
+}
+
+.ui.red.header {
+ color: #D95C5C !important;
+}
+
+.ui.purple.header {
+ color: #564F8A !important;
+}
+
+.ui.teal.header {
+ color: #00B5AD !important;
+}
+
+.ui.blue.dividing.header {
+ border-bottom: 3px solid #6ECFF5;
+}
+
+.ui.black.dividing.header {
+ border-bottom: 3px solid #5C6166;
+}
+
+.ui.green.dividing.header {
+ border-bottom: 3px solid #A1CF64;
+}
+
+.ui.red.dividing.header {
+ border-bottom: 3px solid #D95C5C;
+}
+
+.ui.purple.dividing.header {
+ border-bottom: 3px solid #564F8A;
+}
+
+.ui.teal.dividing.header {
+ border-bottom: 3px solid #00B5AD;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.inverted.header {
+ color: #FFFFFF;
+}
+
+.ui.inverted.header .sub.header {
+ color: rgba(255, 255, 255, 0.85);
+}
+
+/*-------------------
+ Inverted Colors
+--------------------*/
+
+.ui.inverted.black.header {
+ background-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.blue.header {
+ background-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.green.header {
+ background-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.red.header {
+ background-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.purple.header {
+ background-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.teal.header {
+ background-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.block.header {
+ border-bottom: none;
+}
+
+/*-------------------
+ Aligned
+--------------------*/
+
+.ui.left.aligned.header {
+ text-align: left;
+}
+
+.ui.right.aligned.header {
+ text-align: right;
+}
+
+.ui.center.aligned.header {
+ text-align: center;
+}
+
+.ui.justified.header {
+ text-align: justify;
+}
+
+.ui.justified.header:after {
+ display: inline-block;
+ content: '';
+ width: 100%;
+}
+
+/*-------------------
+ Floated
+--------------------*/
+
+.ui.floated.header,
+.ui.left.floated.header {
+ float: left;
+ margin-top: 0em;
+ margin-right: 0.5em;
+}
+
+.ui.right.floated.header {
+ float: right;
+ margin-top: 0em;
+ margin-left: 0.5em;
+}
+
+/*-------------------
+ Fittted
+--------------------*/
+
+.ui.fitted.header {
+ padding: 0em;
+}
+
+/*-------------------
+ Dividing
+--------------------*/
+
+.ui.dividing.header {
+ padding-bottom: 0.2rem;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+.ui.dividing.header .sub.header {
+ padding-bottom: 0.5em;
+}
+
+.ui.dividing.header .icon {
+ margin-bottom: 0.2em;
+}
+
+/*-------------------
+ Block
+--------------------*/
+
+.ui.block.header {
+ background-color: rgba(0, 0, 0, 0.05);
+ padding: 0.5em 1em;
+}
+
+/*-------------------
+ Attached
+--------------------*/
+
+.ui.attached.header {
+ background-color: #E0E0E0;
+ padding: 0.5em 1rem;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.top.attached.header {
+ margin-bottom: 0em;
+ border-radius: 0.3125em 0.3125em 0em 0em;
+}
+
+.ui.bottom.attached.header {
+ margin-top: 0em;
+ border-radius: 0em 0em 0.3125em 0.3125em;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/elements/icon.css b/css/semantic/build/uncompressed/elements/icon.css
new file mode 100644
index 0000000..06c0e5d
--- /dev/null
+++ b/css/semantic/build/uncompressed/elements/icon.css
@@ -0,0 +1,1853 @@
+/*
+ * # Semantic - Icon
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*!
+ * Font Awesome 3.2.1
+ * the iconic font designed for Bootstrap
+ * ------------------------------------------------------------------------------
+ * The full suite of pictographic icons, examples, and documentation can be
+ * found at http://fon.io. Stay up to date on Twitter at
+ * http://twitter.com/fon.
+ *
+ * License
+ * ------------------------------------------------------------------------------
+ * - The Font Awesome font is licensed under SIL OFL 1.1 -
+ * http://scripts.sil.org/OFL
+
+/*******************************
+ Icon
+*******************************/
+
+@font-face {
+ font-family: 'Icons';
+ src: url(../fonts/icons.eot);
+ src: url(../fonts/icons.eot?#iefix) format('embedded-opentype'), url(../fonts/icons.svg#icons) format('svg'), url(../fonts/icons.woff) format('woff'), url(../fonts/icons.ttf) format('truetype');
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-decoration: inherit;
+ text-transform: none;
+}
+
+i.icon {
+ display: inline-block;
+ opacity: 0.75;
+ margin: 0em 0.25em 0em 0em;
+ width: 1.23em;
+ height: 1em;
+ font-family: 'Icons';
+ font-style: normal;
+ line-height: 1;
+ font-weight: normal;
+ text-decoration: inherit;
+ text-align: center;
+ speak: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+i.icon.left:before {
+ content: "\f060";
+}
+
+i.icon.right:before {
+ content: "\f061";
+}
+
+i.icon.add.sign.box:before {
+ content: "\f0fe";
+}
+
+i.icon.add.sign:before {
+ content: "\f055";
+}
+
+i.icon.add:before {
+ content: "\f067";
+}
+
+i.icon.adjust:before {
+ content: "\f042";
+}
+
+i.icon.adn:before {
+ content: "\f170";
+}
+
+i.icon.align.center:before {
+ content: "\f037";
+}
+
+i.icon.align.justify:before {
+ content: "\f039";
+}
+
+i.icon.align.left:before {
+ content: "\f036";
+}
+
+i.icon.align.right:before {
+ content: "\f038";
+}
+
+i.icon.ambulance:before {
+ content: "\f0f9";
+}
+
+i.icon.anchor:before {
+ content: "\f13d";
+}
+
+i.icon.android:before {
+ content: "\f17b";
+}
+
+i.icon.angle.down:before {
+ content: "\f107";
+}
+
+i.icon.angle.left:before {
+ content: "\f104";
+}
+
+i.icon.angle.right:before {
+ content: "\f105";
+}
+
+i.icon.angle.up:before {
+ content: "\f106";
+}
+
+i.icon.apple:before {
+ content: "\f179";
+}
+
+i.icon.archive:before {
+ content: "\f187";
+}
+
+i.icon.arrow.down:before {
+ content: "\f078";
+}
+
+i.icon.arrow.left:before {
+ content: "\f053";
+}
+
+i.icon.arrow.right:before {
+ content: "\f054";
+}
+
+i.icon.arrow.sign.down:before {
+ content: "\f13a";
+}
+
+i.icon.arrow.sign.left:before {
+ content: "\f137";
+}
+
+i.icon.arrow.sign.right:before {
+ content: "\f138";
+}
+
+i.icon.arrow.sign.up:before {
+ content: "\f139";
+}
+
+i.icon.arrow.up:before {
+ content: "\f077";
+}
+
+i.icon.asterisk:before {
+ content: "\f069";
+}
+
+i.icon.attachment:before {
+ content: "\f0c6";
+}
+
+i.icon.attention:before {
+ content: "\f06a";
+}
+
+i.icon.backward:before {
+ content: "\f04a";
+}
+
+i.icon.ban.circle:before {
+ content: "\f05e";
+}
+
+i.icon.bar.chart:before {
+ content: "\f080";
+}
+
+i.icon.barcode:before {
+ content: "\f02a";
+}
+
+i.icon.beer:before {
+ content: "\f0fc";
+}
+
+i.icon.bell.outline:before {
+ content: "\f0a2";
+}
+
+i.icon.bell:before {
+ content: "\f0f3";
+}
+
+i.icon.bitbucket.sign:before {
+ content: "\f172";
+}
+
+i.icon.bitbucket:before {
+ content: "\f171";
+}
+
+i.icon.bitcoin:before {
+ content: "\f15a";
+}
+
+i.icon.bold:before {
+ content: "\f032";
+}
+
+i.icon.bolt:before {
+ content: "\f0e7";
+}
+
+i.icon.book:before {
+ content: "\f02d";
+}
+
+i.icon.bookmark.empty:before {
+ content: "\f097";
+}
+
+i.icon.bookmark:before {
+ content: "\f02e";
+}
+
+i.icon.box.arrow.down:before {
+ content: "\f150";
+}
+
+/*rtl:ignore*/
+
+i.icon.box.arrow.right:before {
+ content: "\f152";
+}
+
+i.icon.box.arrow.up:before {
+ content: "\f151";
+}
+
+i.icon.briefcase:before {
+ content: "\f0b1";
+}
+
+i.icon.browser:before {
+ content: "\f022";
+}
+
+i.icon.bug:before {
+ content: "\f188";
+}
+
+i.icon.building:before {
+ content: "\f0f7";
+}
+
+i.icon.bullhorn:before {
+ content: "\f0a1";
+}
+
+i.icon.bullseye:before {
+ content: "\f140";
+}
+
+i.icon.calendar.empty:before {
+ content: "\f133";
+}
+
+i.icon.calendar:before {
+ content: "\f073";
+}
+
+i.icon.camera.retro:before {
+ content: "\f083";
+}
+
+i.icon.camera:before {
+ content: "\f030";
+}
+
+i.icon.triangle.down:before {
+ content: "\f0d7";
+}
+
+i.icon.triangle.left:before {
+ content: "\f0d9";
+}
+
+i.icon.triangle.right:before {
+ content: "\f0da";
+}
+
+i.icon.triangle.up:before {
+ content: "\f0d8";
+}
+
+i.icon.cart:before {
+ content: "\f07a";
+}
+
+i.icon.certificate:before {
+ content: "\f0a3";
+}
+
+i.icon.chat.outline:before {
+ content: "\f0e6";
+}
+
+i.icon.chat:before {
+ content: "\f086";
+}
+
+i.icon.checkbox.empty:before {
+ content: "\f096";
+}
+
+i.icon.checkbox.minus:before {
+ content: "\f147";
+}
+
+i.icon.checked.checkbox:before {
+ content: "\f046";
+}
+
+i.icon.checkmark.sign:before {
+ content: "\f14a";
+}
+
+i.icon.checkmark:before {
+ content: "\f00c";
+}
+
+i.icon.circle.blank:before {
+ content: "\f10c";
+}
+
+i.icon.circle.down:before {
+ content: "\f0ab";
+}
+
+i.icon.circle.left:before {
+ content: "\f0a8";
+}
+
+i.icon.circle.right:before {
+ content: "\f0a9";
+}
+
+i.icon.circle.up:before {
+ content: "\f0aa";
+}
+
+i.icon.circle:before {
+ content: "\f111";
+}
+
+i.icon.cloud.download:before {
+ content: "\f0ed";
+}
+
+i.icon.cloud.upload:before {
+ content: "\f0ee";
+}
+
+i.icon.cloud:before {
+ content: "\f0c2";
+}
+
+i.icon.code.fork:before {
+ content: "\f126";
+}
+
+i.icon.code:before {
+ content: "\f121";
+}
+
+i.icon.coffee:before {
+ content: "\f0f4";
+}
+
+i.icon.collapse:before {
+ content: "\f117";
+}
+
+i.icon.comment.outline:before {
+ content: "\f0e5";
+}
+
+i.icon.comment:before {
+ content: "\f075";
+}
+
+i.icon.copy:before {
+ content: "\f0c5";
+}
+
+i.icon.crop:before {
+ content: "\f125";
+}
+
+i.icon.css3:before {
+ content: "\f13c";
+}
+
+i.icon.cut:before {
+ content: "\f0c4";
+}
+
+i.icon.dashboard:before {
+ content: "\f0e4";
+}
+
+i.icon.desktop:before {
+ content: "\f108";
+}
+
+i.icon.doctor:before {
+ content: "\f0f0";
+}
+
+i.icon.dollar:before {
+ content: "\f155";
+}
+
+i.icon.double.angle.down:before {
+ content: "\f103";
+}
+
+i.icon.double.angle.left:before {
+ content: "\f100";
+}
+
+i.icon.double.angle.right:before {
+ content: "\f101";
+}
+
+i.icon.double.angle.up:before {
+ content: "\f102";
+}
+
+i.icon.down:before {
+ content: "\f063";
+}
+
+i.icon.download.disk:before {
+ content: "\f019";
+}
+
+i.icon.download:before {
+ content: "\f01a";
+}
+
+i.icon.dribbble:before {
+ content: "\f17d";
+}
+
+i.icon.dropbox:before {
+ content: "\f16b";
+}
+
+i.icon.edit.sign:before {
+ content: "\f14b";
+}
+
+i.icon.edit:before {
+ content: "\f044";
+}
+
+i.icon.eject:before {
+ content: "\f052";
+}
+
+i.icon.ellipsis.horizontal:before {
+ content: "\f141";
+}
+
+i.icon.ellipsis.vertical:before {
+ content: "\f142";
+}
+
+i.icon.eraser:before {
+ content: "\f12d";
+}
+
+i.icon.euro:before {
+ content: "\f153";
+}
+
+i.icon.exchange:before {
+ content: "\f0ec";
+}
+
+i.icon.exclamation:before {
+ content: "\f12a";
+}
+
+i.icon.expand:before {
+ content: "\f116";
+}
+
+i.icon.external.url.sign:before {
+ content: "\f14c";
+}
+
+i.icon.external.url:before {
+ content: "\f08e";
+}
+
+i.icon.facebook.sign:before {
+ content: "\f082";
+}
+
+i.icon.facebook:before {
+ content: "\f09a";
+}
+
+i.icon.facetime.video:before {
+ content: "\f03d";
+}
+
+i.icon.fast.backward:before {
+ content: "\f049";
+}
+
+i.icon.fast.forward:before {
+ content: "\f050";
+}
+
+i.icon.female:before {
+ content: "\f182";
+}
+
+i.icon.fighter.jet:before {
+ content: "\f0fb";
+}
+
+i.icon.file.outline:before {
+ content: "\f016";
+}
+
+i.icon.file.text.outline:before {
+ content: "\f0f6";
+}
+
+i.icon.file.text:before {
+ content: "\f15c";
+}
+
+i.icon.file:before {
+ content: "\f15b";
+}
+
+i.icon.filter:before {
+ content: "\f0b0";
+}
+
+i.icon.fire.extinguisher:before {
+ content: "\f134";
+}
+
+i.icon.fire:before {
+ content: "\f06d";
+}
+
+i.icon.flag.checkered:before {
+ content: "\f11e";
+}
+
+i.icon.flag.empty:before {
+ content: "\f11d";
+}
+
+i.icon.flag:before {
+ content: "\f024";
+}
+
+i.icon.flickr:before {
+ content: "\f16e";
+}
+
+i.icon.folder.open.outline:before {
+ content: "\f115";
+}
+
+i.icon.folder.open:before {
+ content: "\f07c";
+}
+
+i.icon.folder.outline:before {
+ content: "\f114";
+}
+
+i.icon.folder:before {
+ content: "\f07b";
+}
+
+i.icon.font:before {
+ content: "\f031";
+}
+
+i.icon.food:before {
+ content: "\f0f5";
+}
+
+i.icon.forward.mail:before {
+ content: "\f064";
+}
+
+i.icon.forward:before {
+ content: "\f04e";
+}
+
+i.icon.foursquare:before {
+ content: "\f180";
+}
+
+i.icon.frown:before {
+ content: "\f119";
+}
+
+i.icon.fullscreen:before {
+ content: "\f0b2";
+}
+
+i.icon.gamepad:before {
+ content: "\f11b";
+}
+
+i.icon.gift:before {
+ content: "\f06b";
+}
+
+i.icon.github.alternate:before {
+ content: "\f09b";
+}
+
+i.icon.github.sign:before {
+ content: "\f092";
+}
+
+i.icon.github:before {
+ content: "\f113";
+}
+
+i.icon.gittip:before {
+ content: "\f184";
+}
+
+i.icon.glass:before {
+ content: "\f000";
+}
+
+i.icon.globe:before {
+ content: "\f0ac";
+}
+
+i.icon.google.plus.sign:before {
+ content: "\f0d4";
+}
+
+i.icon.google.plus:before {
+ content: "\f0d5";
+}
+
+i.icon.h.sign:before {
+ content: "\f0fd";
+}
+
+i.icon.hand.down:before {
+ content: "\f0a7";
+}
+
+i.icon.hand.left:before {
+ content: "\f0a5";
+}
+
+i.icon.hand.right:before {
+ content: "\f0a4";
+}
+
+i.icon.hand.up:before {
+ content: "\f0a6";
+}
+
+i.icon.hdd:before {
+ content: "\f0a0";
+}
+
+i.icon.headphones:before {
+ content: "\f025";
+}
+
+i.icon.heart.empty:before {
+ content: "\f08a";
+}
+
+i.icon.heart:before {
+ content: "\f004";
+}
+
+i.icon.help:before {
+ content: "\f059";
+}
+
+i.icon.hide:before {
+ content: "\f070";
+}
+
+i.icon.home:before {
+ content: "\f015";
+}
+
+i.icon.hospital:before {
+ content: "\f0f8";
+}
+
+i.icon.html5:before {
+ content: "\f13b";
+}
+
+i.icon.inbox:before {
+ content: "\f01c";
+}
+
+i.icon.indent.left:before {
+ content: "\f03b";
+}
+
+i.icon.indent.right:before {
+ content: "\f03c";
+}
+
+i.icon.info.letter:before {
+ content: "\f129";
+}
+
+i.icon.info:before {
+ content: "\f05a";
+}
+
+i.icon.instagram:before {
+ content: "\f16d";
+}
+
+i.icon.italic:before {
+ content: "\f033";
+}
+
+i.icon.key:before {
+ content: "\f084";
+}
+
+i.icon.keyboard:before {
+ content: "\f11c";
+}
+
+i.icon.lab:before {
+ content: "\f0c3";
+}
+
+i.icon.laptop:before {
+ content: "\f109";
+}
+
+i.icon.layout.block:before {
+ content: "\f009";
+}
+
+i.icon.layout.column:before {
+ content: "\f0db";
+}
+
+i.icon.layout.grid:before {
+ content: "\f00a";
+}
+
+i.icon.layout.list:before {
+ content: "\f00b";
+}
+
+i.icon.leaf:before {
+ content: "\f06c";
+}
+
+i.icon.legal:before {
+ content: "\f0e3";
+}
+
+i.icon.lemon:before {
+ content: "\f094";
+}
+
+i.icon.level.down:before {
+ content: "\f149";
+}
+
+i.icon.level.up:before {
+ content: "\f148";
+}
+
+i.icon.lightbulb:before {
+ content: "\f0eb";
+}
+
+i.icon.linkedin.sign:before {
+ content: "\f08c";
+}
+
+i.icon.linkedin:before {
+ content: "\f0e1";
+}
+
+i.icon.linux:before {
+ content: "\f17c";
+}
+
+i.icon.list.ordered:before {
+ content: "\f0cb";
+}
+
+i.icon.list.unordered:before {
+ content: "\f0ca";
+}
+
+i.icon.list:before {
+ content: "\f03a";
+}
+
+i.icon.loading:before {
+ content: "\f110";
+}
+
+i.icon.location:before {
+ content: "\f124";
+}
+
+i.icon.lock:before {
+ content: "\f023";
+}
+
+i.icon.long.arrow.down:before {
+ content: "\f175";
+}
+
+i.icon.long.arrow.left:before {
+ content: "\f177";
+}
+
+i.icon.long.arrow.right:before {
+ content: "\f178";
+}
+
+i.icon.long.arrow.up:before {
+ content: "\f176";
+}
+
+i.icon.magic:before {
+ content: "\f0d0";
+}
+
+i.icon.magnet:before {
+ content: "\f076";
+}
+
+i.icon.mail.outline:before {
+ content: "\f003";
+}
+
+i.icon.mail.reply:before {
+ content: "\f112";
+}
+
+i.icon.mail:before {
+ content: "\f0e0";
+}
+
+i.icon.male:before {
+ content: "\f183";
+}
+
+i.icon.map.marker:before {
+ content: "\f041";
+}
+
+i.icon.map:before {
+ content: "\f14e";
+}
+
+i.icon.maxcdn:before {
+ content: "\f136";
+}
+
+i.icon.medkit:before {
+ content: "\f0fa";
+}
+
+i.icon.meh:before {
+ content: "\f11a";
+}
+
+i.icon.minus.sign.alternate:before {
+ content: "\f146";
+}
+
+i.icon.minus.sign:before {
+ content: "\f056";
+}
+
+i.icon.minus:before {
+ content: "\f068";
+}
+
+i.icon.mobile:before {
+ content: "\f10b";
+}
+
+i.icon.money:before {
+ content: "\f0d6";
+}
+
+i.icon.moon:before {
+ content: "\f186";
+}
+
+i.icon.move:before {
+ content: "\f047";
+}
+
+i.icon.music:before {
+ content: "\f001";
+}
+
+i.icon.mute:before {
+ content: "\f131";
+}
+
+i.icon.off:before {
+ content: "\f011";
+}
+
+i.icon.ok.circle:before {
+ content: "\f05d";
+}
+
+i.icon.ok.sign:before {
+ content: "\f058";
+}
+
+i.icon.paste:before {
+ content: "\f0ea";
+}
+
+i.icon.pause:before {
+ content: "\f04c";
+}
+
+i.icon.payment:before {
+ content: "\f09d";
+}
+
+i.icon.pencil:before {
+ content: "\f040";
+}
+
+i.icon.phone.sign:before {
+ content: "\f098";
+}
+
+i.icon.phone:before {
+ content: "\f095";
+}
+
+i.icon.photo:before {
+ content: "\f03e";
+}
+
+i.icon.pin:before {
+ content: "\f08d";
+}
+
+i.icon.pinterest.sign:before {
+ content: "\f0d3";
+}
+
+i.icon.pinterest:before {
+ content: "\f0d2";
+}
+
+i.icon.plane:before {
+ content: "\f072";
+}
+
+i.icon.play.circle:before {
+ content: "\f01d";
+}
+
+i.icon.play.sign:before {
+ content: "\f144";
+}
+
+i.icon.play:before {
+ content: "\f04b";
+}
+
+i.icon.pound:before {
+ content: "\f154";
+}
+
+i.icon.print:before {
+ content: "\f02f";
+}
+
+i.icon.puzzle.piece:before {
+ content: "\f12e";
+}
+
+i.icon.qr.code:before {
+ content: "\f029";
+}
+
+i.icon.question:before {
+ content: "\f128";
+}
+
+i.icon.quote.left:before {
+ content: "\f10d";
+}
+
+i.icon.quote.right:before {
+ content: "\f10e";
+}
+
+i.icon.refresh:before {
+ content: "\f021";
+}
+
+i.icon.remove.circle:before {
+ content: "\f05c";
+}
+
+i.icon.remove.sign:before {
+ content: "\f057";
+}
+
+i.icon.remove:before {
+ content: "\f00d";
+}
+
+i.icon.renren:before {
+ content: "\f18b";
+}
+
+i.icon.reorder:before {
+ content: "\f0c9";
+}
+
+i.icon.repeat:before {
+ content: "\f01e";
+}
+
+i.icon.reply.all.mail:before {
+ content: "\f122";
+}
+
+i.icon.resize.full:before {
+ content: "\f065";
+}
+
+i.icon.resize.horizontal:before {
+ content: "\f07e";
+}
+
+i.icon.resize.small:before {
+ content: "\f066";
+}
+
+i.icon.resize.vertical:before {
+ content: "\f07d";
+}
+
+i.icon.retweet:before {
+ content: "\f079";
+}
+
+i.icon.road:before {
+ content: "\f018";
+}
+
+i.icon.rocket:before {
+ content: "\f135";
+}
+
+i.icon.rss.sign:before {
+ content: "\f143";
+}
+
+i.icon.rss:before {
+ content: "\f09e";
+}
+
+i.icon.rupee:before {
+ content: "\f156";
+}
+
+i.icon.save:before {
+ content: "\f0c7";
+}
+
+i.icon.screenshot:before {
+ content: "\f05b";
+}
+
+i.icon.search:before {
+ content: "\f002";
+}
+
+i.icon.setting:before {
+ content: "\f013";
+}
+
+i.icon.settings:before {
+ content: "\f085";
+}
+
+i.icon.share.sign:before {
+ content: "\f14d";
+}
+
+i.icon.share:before {
+ content: "\f045";
+}
+
+i.icon.shield:before {
+ content: "\f132";
+}
+
+i.icon.shuffle:before {
+ content: "\f074";
+}
+
+i.icon.sign.in:before {
+ content: "\f090";
+}
+
+i.icon.sign.out:before {
+ content: "\f08b";
+}
+
+i.icon.sign:before {
+ content: "\f0c8";
+}
+
+i.icon.signal:before {
+ content: "\f012";
+}
+
+i.icon.sitemap:before {
+ content: "\f0e8";
+}
+
+i.icon.skype:before {
+ content: "\f17e";
+}
+
+i.icon.smile:before {
+ content: "\f118";
+}
+
+i.icon.sort.ascending:before {
+ content: "\f0de";
+}
+
+i.icon.sort.descending:before {
+ content: "\f0dd";
+}
+
+i.icon.sort.alphabet.descending:before {
+ content: "\f15e";
+}
+
+i.icon.sort.alphabet:before {
+ content: "\f15d";
+}
+
+i.icon.sort.attributes.descending:before {
+ content: "\f161";
+}
+
+i.icon.sort.attributes:before {
+ content: "\f160";
+}
+
+i.icon.sort.order.descending:before {
+ content: "\f163";
+}
+
+i.icon.sort.order:before {
+ content: "\f162";
+}
+
+i.icon.sort:before {
+ content: "\f0dc";
+}
+
+i.icon.stackexchange:before {
+ content: "\f16c";
+}
+
+i.icon.star.empty:before {
+ content: "\f006";
+}
+
+i.icon.star.half.empty:before {
+ content: "\f123";
+}
+
+i.icon.star.half.full:before,
+i.icon.star.half:before {
+ content: "\f089";
+}
+
+i.icon.star:before {
+ content: "\f005";
+}
+
+i.icon.step.backward:before {
+ content: "\f048";
+}
+
+i.icon.step.forward:before {
+ content: "\f051";
+}
+
+i.icon.stethoscope:before {
+ content: "\f0f1";
+}
+
+i.icon.stop:before {
+ content: "\f04d";
+}
+
+i.icon.strikethrough:before {
+ content: "\f0cc";
+}
+
+i.icon.subscript:before {
+ content: "\f12c";
+}
+
+i.icon.suitcase:before {
+ content: "\f0f2";
+}
+
+i.icon.sun:before {
+ content: "\f185";
+}
+
+i.icon.superscript:before {
+ content: "\f12b";
+}
+
+i.icon.table:before {
+ content: "\f0ce";
+}
+
+i.icon.tablet:before {
+ content: "\f10a";
+}
+
+i.icon.tag:before {
+ content: "\f02b";
+}
+
+i.icon.tags:before {
+ content: "\f02c";
+}
+
+i.icon.tasks:before {
+ content: "\f0ae";
+}
+
+i.icon.terminal:before {
+ content: "\f120";
+}
+
+i.icon.text.height:before {
+ content: "\f034";
+}
+
+i.icon.text.width:before {
+ content: "\f035";
+}
+
+i.icon.thumbs.down.outline:before {
+ content: "\f088";
+}
+
+i.icon.thumbs.down:before {
+ content: "\f165";
+}
+
+i.icon.thumbs.up.outline:before {
+ content: "\f087";
+}
+
+i.icon.thumbs.up:before {
+ content: "\f164";
+}
+
+i.icon.ticket:before {
+ content: "\f145";
+}
+
+i.icon.time:before {
+ content: "\f017";
+}
+
+i.icon.tint:before {
+ content: "\f043";
+}
+
+i.icon.trash:before {
+ content: "\f014";
+}
+
+i.icon.trello:before {
+ content: "\f181";
+}
+
+i.icon.trophy:before {
+ content: "\f091";
+}
+
+i.icon.truck:before {
+ content: "\f0d1";
+}
+
+i.icon.tumblr.sign:before {
+ content: "\f174";
+}
+
+i.icon.tumblr:before {
+ content: "\f173";
+}
+
+i.icon.twitter.sign:before {
+ content: "\f081";
+}
+
+i.icon.twitter:before {
+ content: "\f099";
+}
+
+i.icon.umbrella:before {
+ content: "\f0e9";
+}
+
+i.icon.underline:before {
+ content: "\f0cd";
+}
+
+i.icon.undo:before {
+ content: "\f0e2";
+}
+
+i.icon.unhide:before {
+ content: "\f06e";
+}
+
+i.icon.unlink:before {
+ content: "\f127";
+}
+
+i.icon.unlock.alternate:before {
+ content: "\f13e";
+}
+
+i.icon.unlock:before {
+ content: "\f09c";
+}
+
+i.icon.unmute:before {
+ content: "\f130";
+}
+
+i.icon.up:before {
+ content: "\f062";
+}
+
+i.icon.upload.disk:before {
+ content: "\f093";
+}
+
+i.icon.upload:before {
+ content: "\f01b";
+}
+
+i.icon.url:before {
+ content: "\f0c1";
+}
+
+i.icon.user:before {
+ content: "\f007";
+}
+
+i.icon.users:before {
+ content: "\f0c0";
+}
+
+i.icon.video:before {
+ content: "\f008";
+}
+
+i.icon.vk:before {
+ content: "\f189";
+}
+
+i.icon.volume.down:before {
+ content: "\f027";
+}
+
+i.icon.volume.off:before {
+ content: "\f026";
+}
+
+i.icon.volume.up:before {
+ content: "\f028";
+}
+
+i.icon.warning:before {
+ content: "\f071";
+}
+
+i.icon.weibo:before {
+ content: "\f18a";
+}
+
+i.icon.windows:before {
+ content: "\f17a";
+}
+
+i.icon.won:before {
+ content: "\f159";
+}
+
+i.icon.wrench:before {
+ content: "\f0ad";
+}
+
+i.icon.xing.sign:before {
+ content: "\f169";
+}
+
+i.icon.xing:before {
+ content: "\f168";
+}
+
+i.icon.yen:before {
+ content: "\f157";
+}
+
+i.icon.youtube.play:before {
+ content: "\f16a";
+}
+
+i.icon.youtube.sign:before {
+ content: "\f166";
+}
+
+i.icon.youtube:before {
+ content: "\f167";
+}
+
+i.icon.yuan:before {
+ content: "\f158";
+}
+
+i.icon.zoom.in:before {
+ content: "\f00e";
+}
+
+i.icon.zoom.out:before {
+ content: "\f010";
+}
+
+/*--------------
+ Aliases
+---------------*/
+
+i.icon.check:before {
+ content: "\f00c";
+}
+
+i.icon.close:before {
+ content: "\f00d";
+}
+
+i.icon.delete:before {
+ content: "\f00d";
+}
+
+i.icon.like:before {
+ content: "\f004";
+}
+
+i.icon.plus:before {
+ content: "\f067";
+}
+
+i.icon.signup:before {
+ content: "\f044";
+}
+
+/*--------------
+ Spacing Fix
+---------------*/
+
+/* stars are usually consecutive */
+
+i.icon.star {
+ width: auto;
+ margin: 0em;
+}
+
+/* left side icons */
+
+i.icon.left {
+ width: auto;
+ margin: 0em 0.5em 0em 0em;
+}
+
+/* right side icons */
+
+i.icon.search,
+i.icon.right {
+ width: auto;
+ margin: 0em 0em 0em 0.5em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Loading
+---------------*/
+
+i.icon.loading {
+ -webkit-animation: icon-loading 2s linear infinite;
+ -moz-animation: icon-loading 2s linear infinite;
+ -ms-animation: icon-loading 2s linear infinite;
+ animation: icon-loading 2s linear infinite;
+}
+
+@keyframes icon-loading {
+ from {
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ to {
+ -webkit-transform: rotate(360deg);
+ -moz-transform: rotate(360deg);
+ -ms-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-moz-keyframes icon-loading {
+ from {
+ -moz-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ to {
+ -moz-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-webkit-keyframes icon-loading {
+ from {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ to {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-ms-keyframes icon-loading {
+ from {
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ to {
+ -ms-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+/*******************************
+ States
+*******************************/
+
+i.icon.hover {
+ opacity: 1;
+}
+
+i.icon.active {
+ opacity: 1;
+}
+
+i.emphasized.icon {
+ opacity: 1;
+}
+
+i.icon.disabled {
+ opacity: 0.3;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Link
+--------------------*/
+
+i.link.icon {
+ cursor: pointer;
+ opacity: 0.7;
+ -webkit-transition: opacity 0.3s ease-out;
+ -moz-transition: opacity 0.3s ease-out;
+ transition: opacity 0.3s ease-out;
+}
+
+i.link.icon:hover {
+ opacity: 1 !important;
+}
+
+/*-------------------
+ Circular
+--------------------*/
+
+i.circular.icon {
+ border-radius: 500em !important;
+ padding: 0.5em 0.35em !important;
+ -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ line-height: 1 !important;
+ width: 2em !important;
+ height: 2em !important;
+}
+
+i.circular.inverted.icon {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Flipped
+--------------------*/
+
+i.flipped.icon,
+i.horizontally.flipped.icon {
+ -webkit-transform: scale(-1, 1);
+ -moz-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+
+i.vertically.flipped.icon {
+ -webkit-transform: scale(1, -1);
+ -moz-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+
+/*-------------------
+ Rotated
+--------------------*/
+
+i.rotated.icon,
+i.right.rotated.icon,
+i.clockwise.rotated.icon {
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+
+i.left.rotated.icon,
+i.counterclockwise.rotated.icon {
+ -webkit-transform: rotate(-90deg);
+ -moz-transform: rotate(-90deg);
+ -ms-transform: rotate(-90deg);
+ transform: rotate(-90deg);
+}
+
+/*-------------------
+ Square
+--------------------*/
+
+i.square.icon {
+ width: 2em;
+ height: 2em;
+ padding: 0.5em 0.35em !important;
+ -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ vertical-align: baseline;
+}
+
+i.square.inverted.icon {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+i.inverted.icon {
+ background-color: #222222;
+ color: #FFFFFF;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+i.blue.icon {
+ color: #6ECFF5 !important;
+}
+
+i.black.icon {
+ color: #5C6166 !important;
+}
+
+i.green.icon {
+ color: #A1CF64 !important;
+}
+
+i.red.icon {
+ color: #D95C5C !important;
+}
+
+i.purple.icon {
+ color: #564F8A !important;
+}
+
+i.orange.icon {
+ color: #F05940 !important;
+}
+
+i.teal.icon {
+ color: #00B5AD !important;
+}
+
+/*-------------------
+ Inverted Colors
+--------------------*/
+
+i.inverted.black.icon {
+ background-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.blue.icon {
+ background-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.green.icon {
+ background-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.red.icon {
+ background-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.purple.icon {
+ background-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.orange.icon {
+ background-color: #F05940 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.teal.icon {
+ background-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+i.small.icon {
+ font-size: 0.875em;
+}
+
+i.icon {
+ font-size: 1em;
+}
+
+i.large.icon {
+ font-size: 1.5em;
+ vertical-align: middle;
+}
+
+i.big.icon {
+ font-size: 2em;
+ vertical-align: middle;
+}
+
+i.huge.icon {
+ font-size: 4em;
+ vertical-align: middle;
+}
+
+i.massive.icon {
+ font-size: 8em;
+ vertical-align: middle;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/elements/image.css b/css/semantic/build/uncompressed/elements/image.css
new file mode 100644
index 0000000..4a3c1d3
--- /dev/null
+++ b/css/semantic/build/uncompressed/elements/image.css
@@ -0,0 +1,174 @@
+/*
+ * # Semantic - Image
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Image
+*******************************/
+
+.ui.image {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+ max-width: 100%;
+ background-color: rgba(0, 0, 0, 0.05);
+}
+
+img.ui.image {
+ display: block;
+ background: none;
+}
+
+.ui.image img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.disabled.image {
+ cursor: default;
+ opacity: 0.3;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Rounded
+---------------*/
+
+.ui.rounded.images .image,
+.ui.rounded.images img,
+.ui.rounded.image img,
+.ui.rounded.image {
+ border-radius: 0.3125em;
+}
+
+/*--------------
+ Circular
+---------------*/
+
+.ui.circular.images .image,
+.ui.circular.images img,
+.ui.circular.image img,
+.ui.circular.image {
+ border-radius: 500rem;
+}
+
+/*--------------
+ Fluid
+---------------*/
+
+.ui.fluid.images,
+.ui.fluid.image,
+.ui.fluid.images img,
+.ui.fluid.image img {
+ display: block;
+ width: 100%;
+}
+
+/*--------------
+ Avatar
+---------------*/
+
+.ui.avatar.images .image,
+.ui.avatar.images img,
+.ui.avatar.image img,
+.ui.avatar.image {
+ margin-right: 0.5em;
+ display: inline-block;
+ width: 2em;
+ height: 2em;
+ border-radius: 500rem;
+}
+
+/*-------------------
+ Floated
+--------------------*/
+
+.ui.floated.image,
+.ui.floated.images {
+ float: left;
+ margin-right: 1em;
+ margin-bottom: 1em;
+}
+
+.ui.right.floated.images,
+.ui.right.floated.image {
+ float: right;
+ margin-bottom: 1em;
+ margin-left: 1em;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.tiny.images .image,
+.ui.tiny.images img,
+.ui.tiny.image {
+ width: 20px;
+ font-size: 0.7rem;
+}
+
+.ui.mini.images .image,
+.ui.mini.images img,
+.ui.mini.image {
+ width: 35px;
+ font-size: 0.8rem;
+}
+
+.ui.small.images .image,
+.ui.small.images img,
+.ui.small.image {
+ width: 80px;
+ font-size: 0.9rem;
+}
+
+.ui.medium.images .image,
+.ui.medium.images img,
+.ui.medium.image {
+ width: 300px;
+ font-size: 1rem;
+}
+
+.ui.large.images .image,
+.ui.large.images img,
+.ui.large.image {
+ width: 450px;
+ font-size: 1.1rem;
+}
+
+.ui.huge.images .image,
+.ui.huge.images img,
+.ui.huge.image {
+ width: 600px;
+ font-size: 1.2rem;
+}
+
+/*******************************
+ Groups
+*******************************/
+
+.ui.images {
+ font-size: 0em;
+ margin: 0em -0.25rem 0rem;
+}
+
+.ui.images .image,
+.ui.images img {
+ display: inline-block;
+ margin: 0em 0.25em 0.5em;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/elements/input.css b/css/semantic/build/uncompressed/elements/input.css
new file mode 100644
index 0000000..4b62a9a
--- /dev/null
+++ b/css/semantic/build/uncompressed/elements/input.css
@@ -0,0 +1,314 @@
+/*
+ * # Semantic - Input
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------------
+ Inputs
+---------------------*/
+
+.ui.input {
+ display: inline-block;
+ position: relative;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.input input {
+ width: 100%;
+ font-family: "Helvetica Neue", "Helvetica", Arial;
+ margin: 0em;
+ padding: 0.65em 1em;
+ font-size: 1em;
+ background-color: #FFFFFF;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ outline: none;
+ color: rgba(0, 0, 0, 0.7);
+ border-radius: 0.3125em;
+ -webkit-transition: background-color 0.3s ease-out, -webkit-box-shadow 0.2s ease, border-color 0.2s ease;
+ -moz-transition: background-color 0.3s ease-out, box-shadow 0.2s ease, border-color 0.2s ease;
+ transition: background-color 0.3s ease-out, box-shadow 0.2s ease, border-color 0.2s ease;
+ -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*--------------------
+ Placeholder
+---------------------*/
+
+/* browsers require these rules separate */
+
+.ui.input::-webkit-input-placeholder {
+ color: #BBBBBB;
+}
+
+.ui.input::-moz-placeholder {
+ color: #BBBBBB;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------------
+ Active
+---------------------*/
+
+.ui.input input:active,
+.ui.input.down input {
+ border-color: rgba(0, 0, 0, 0.3);
+ background-color: #FAFAFA;
+}
+
+/*--------------------
+ Loading
+---------------------*/
+
+.ui.loading.input > .icon {
+ background: url(../images/loader-mini.gif) no-repeat 50% 50%;
+}
+
+.ui.loading.input > .icon:before,
+.ui.loading.input > .icon:after {
+ display: none;
+}
+
+/*--------------------
+ Focus
+---------------------*/
+
+.ui.input.focus input,
+.ui.input input:focus {
+ border-color: rgba(0, 0, 0, 0.2);
+ color: rgba(0, 0, 0, 0.85);
+}
+
+.ui.input.focus input input::-webkit-input-placeholder,
+.ui.input input:focus input::-webkit-input-placeholder {
+ color: #AAAAAA;
+}
+
+.ui.input.focus input input::-moz-placeholder,
+.ui.input input:focus input::-moz-placeholder {
+ color: #AAAAAA;
+}
+
+/*--------------------
+ Error
+---------------------*/
+
+.ui.input.error input {
+ background-color: #FFFAFA;
+ border-color: #E7BEBE;
+ color: #D95C5C;
+}
+
+/* Error Placeholder */
+
+.ui.input.error input ::-webkit-input-placeholder {
+ color: rgba(255, 80, 80, 0.4);
+}
+
+.ui.input.error input ::-moz-placeholder {
+ color: rgba(255, 80, 80, 0.4);
+}
+
+.ui.input.error input :focus::-webkit-input-placeholder {
+ color: rgba(255, 80, 80, 0.7);
+}
+
+.ui.input.error input :focus::-moz-placeholder {
+ color: rgba(255, 80, 80, 0.7);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------------
+ Transparent
+---------------------*/
+
+.ui.transparent.input input {
+ border: none;
+ background-color: transparent;
+}
+
+/*--------------------
+ Icon
+---------------------*/
+
+.ui.icon.input > .icon {
+ cursor: default;
+ position: absolute;
+ opacity: 0.5;
+ top: 0px;
+ right: 0px;
+ margin: 0em;
+ width: 2.6em;
+ height: 100%;
+ padding-top: 0.82em;
+ text-align: center;
+ border-radius: 0em 0.3125em 0.3125em 0em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-transition: opacity 0.3s ease-out;
+ -moz-transition: opacity 0.3s ease-out;
+ transition: opacity 0.3s ease-out;
+}
+
+.ui.icon.input > .link.icon {
+ cursor: pointer;
+}
+
+.ui.icon.input input {
+ padding-right: 3em !important;
+}
+
+.ui.icon.input > .circular.icon {
+ top: 0.35em;
+ right: 0.5em;
+}
+
+/* Left Side */
+
+.ui.left.icon.input > .icon {
+ right: auto;
+ left: 1px;
+ border-radius: 0.3125em 0em 0em 0.3125em;
+}
+
+.ui.left.icon.input > .circular.icon {
+ right: auto;
+ left: 0.5em;
+}
+
+.ui.left.icon.input > input {
+ padding-left: 3em !important;
+ padding-right: 1.2em !important;
+}
+
+/* Focus */
+
+.ui.icon.input > input:focus ~ .icon {
+ opacity: 1;
+}
+
+/*--------------------
+ Labeled
+---------------------*/
+
+.ui.labeled.input .corner.label {
+ font-size: 0.7em;
+ border-radius: 0 0.3125em;
+}
+
+.ui.labeled.input .left.corner.label {
+ border-radius: 0.3125em 0;
+}
+
+.ui.labeled.input input {
+ padding-right: 2.5em !important;
+}
+
+/* Spacing with corner label */
+
+.ui.labeled.icon.input:not(.left) > input {
+ padding-right: 3.25em !important;
+}
+
+.ui.labeled.icon.input:not(.left) > .icon {
+ margin-right: 1.25em;
+}
+
+/*--------------------
+ Action
+---------------------*/
+
+.ui.action.input {
+ display: table;
+}
+
+.ui.action.input > input {
+ display: table-cell;
+ border-top-right-radius: 0px !important;
+ border-bottom-right-radius: 0px !important;
+ border-right: none;
+}
+
+.ui.action.input > .button,
+.ui.action.input > .buttons {
+ display: table-cell;
+ border-top-left-radius: 0px;
+ border-bottom-left-radius: 0px;
+ white-space: nowrap;
+}
+
+.ui.action.input > .button > .icon,
+.ui.action.input > .buttons > .button > .icon {
+ display: inline;
+ vertical-align: top;
+}
+
+.ui.fluid.action.input {
+ display: table;
+ width: 100%;
+}
+
+.ui.fluid.action.input > .button {
+ width: 0.01%;
+}
+
+/*--------------------
+ Fluid
+---------------------*/
+
+.ui.fluid.input {
+ display: block;
+}
+
+/*--------------------
+ Size
+---------------------*/
+
+.ui.mini.input {
+ font-size: 0.8125em;
+}
+
+.ui.small.input {
+ font-size: 0.875em;
+}
+
+.ui.input {
+ font-size: 1em;
+}
+
+.ui.large.input {
+ font-size: 1.125em;
+}
+
+.ui.big.input {
+ font-size: 1.25em;
+}
+
+.ui.huge.input {
+ font-size: 1.375em;
+}
+
+.ui.massive.input {
+ font-size: 1.5em;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/elements/label.css b/css/semantic/build/uncompressed/elements/label.css
new file mode 100644
index 0000000..8b0777e
--- /dev/null
+++ b/css/semantic/build/uncompressed/elements/label.css
@@ -0,0 +1,907 @@
+/*
+ * # Semantic - Label
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Label
+*******************************/
+
+.ui.label {
+ display: inline-block;
+ vertical-align: middle;
+ margin: -0.25em 0.25em 0em;
+ background-color: #E8E8E8;
+ border-color: #E8E8E8;
+ padding: 0.5em 0.8em;
+ color: rgba(0, 0, 0, 0.65);
+ text-transform: uppercase;
+ font-weight: normal;
+ border-radius: 0.325em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-transition: background 0.1s linear;
+ -moz-transition: background 0.1s linear;
+ transition: background 0.1s linear;
+}
+
+.ui.label:first-child {
+ margin-left: 0em;
+}
+
+.ui.label:last-child {
+ margin-right: 0em;
+}
+
+/* Link */
+
+a.ui.label {
+ cursor: pointer;
+}
+
+/* Inside Link */
+
+.ui.label a {
+ cursor: pointer;
+ color: inherit;
+ opacity: 0.8;
+ -webkit-transition: 0.2s opacity ease;
+ -moz-transition: 0.2s opacity ease;
+ transition: 0.2s opacity ease;
+}
+
+.ui.label a:hover {
+ opacity: 1;
+}
+
+/* Detail */
+
+.ui.label .detail {
+ display: inline-block;
+ margin-left: 0.5em;
+ font-weight: bold;
+ opacity: 0.8;
+}
+
+/* Icon */
+
+.ui.label .icon {
+ width: auto;
+}
+
+/* Removable label */
+
+.ui.label .delete.icon {
+ cursor: pointer;
+ margin: 0em 0em 0em 0.5em;
+ opacity: 0.7;
+ -webkit-transition: background 0.1s linear;
+ -moz-transition: background 0.1s linear;
+ transition: background 0.1s linear;
+}
+
+.ui.label .delete.icon:hover {
+ opacity: 0.99;
+}
+
+/*-------------------
+ Coupling
+--------------------*/
+
+/* Padding on next content after a label */
+
+.ui.segment > .attached.label:first-child + * {
+ margin-top: 2.5em;
+}
+
+.ui.segment > .bottom.attached.label:first-child ~ :last-child {
+ margin-top: 0em;
+ margin-bottom: 2.5em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+.ui.image.label {
+ width: auto !important;
+ margin-top: 0em;
+ margin-bottom: 0em;
+ padding-top: 0.4em;
+ padding-bottom: 0.4em;
+ line-height: 1.5em;
+ vertical-align: baseline;
+ text-transform: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.image.label img {
+ display: inline-block;
+ height: 2.25em;
+ margin: -0.4em 0.8em -0.4em -0.8em;
+ vertical-align: top;
+ border-radius: 0.325em 0em 0em 0.325em;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*-------------------
+ Disabled
+--------------------*/
+
+.ui.label.disabled {
+ opacity: 0.5;
+}
+
+/*-------------------
+ Hover
+--------------------*/
+
+a.ui.labels .label:hover,
+a.ui.label:hover {
+ background-color: #E0E0E0;
+ border-color: #E0E0E0;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.labels a.label:hover:before,
+a.ui.label:hover:before {
+ background-color: #E0E0E0;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+/*-------------------
+ Visible
+--------------------*/
+
+.ui.labels.visible .label,
+.ui.label.visible {
+ display: inline-block !important;
+}
+
+/*-------------------
+ Hidden
+--------------------*/
+
+.ui.labels.hidden .label,
+.ui.label.hidden {
+ display: none !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Tag
+--------------------*/
+
+.ui.tag.labels .label,
+.ui.tag.label {
+ margin-left: 1em;
+ position: relative;
+ padding: 0.33em 1.3em 0.33em 1.4em;
+ border-radius: 0px 3px 3px 0px;
+}
+
+.ui.tag.labels .label:before,
+.ui.tag.label:before {
+ position: absolute;
+ top: 0.3em;
+ left: 0.3em;
+ content: '';
+ margin-left: -1em;
+ background-image: none;
+ width: 1.5em;
+ height: 1.5em;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ -webkit-transition: background 0.1s linear;
+ -moz-transition: background 0.1s linear;
+ transition: background 0.1s linear;
+}
+
+.ui.tag.labels .label:after,
+.ui.tag.label:after {
+ position: absolute;
+ content: '';
+ top: 50%;
+ left: -0.25em;
+ margin-top: -0.3em;
+ background-color: #FFFFFF;
+ width: 0.55em;
+ height: 0.55em;
+ -webkit-box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.3);
+ box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.3);
+ border-radius: 100px 100px 100px 100px;
+}
+
+/*-------------------
+ Ribbon
+--------------------*/
+
+.ui.ribbon.label {
+ position: relative;
+ margin: 0em 0.2em;
+ left: -2rem;
+ padding-left: 2rem;
+ border-radius: 0px 4px 4px 0px;
+ border-color: rgba(0, 0, 0, 0.15);
+}
+
+.ui.ribbon.label:after {
+ position: absolute;
+ content: "";
+ top: 100%;
+ left: 0%;
+ border-top: 0em solid transparent;
+ border-right-width: 1em;
+ border-right-color: inherit;
+ border-right-style: solid;
+ border-bottom: 1em solid transparent;
+ border-left: 0em solid transparent;
+ width: 0em;
+ height: 0em;
+}
+
+/*-------------------
+ Attached
+--------------------*/
+
+.ui.top.attached.label,
+.ui.attached.label {
+ width: 100%;
+ position: absolute;
+ margin: 0em;
+ top: 0em;
+ left: 0em;
+ padding: 0.75em 1em;
+ border-radius: 4px 4px 0em 0em;
+}
+
+.ui.bottom.attached.label {
+ top: auto;
+ bottom: 0em;
+ border-radius: 0em 0em 4px 4px;
+}
+
+.ui.top.left.attached.label {
+ width: auto;
+ margin-top: 0em !important;
+ border-radius: 4px 0em 4px 0em;
+}
+
+.ui.top.right.attached.label {
+ width: auto;
+ left: auto;
+ right: 0em;
+ border-radius: 0em 4px 0em 4px;
+}
+
+.ui.bottom.left.attached.label {
+ width: auto;
+ top: auto;
+ bottom: 0em;
+ border-radius: 4px 0em 0em 4px;
+}
+
+.ui.bottom.right.attached.label {
+ top: auto;
+ bottom: 0em;
+ left: auto;
+ right: 0em;
+ width: auto;
+ border-radius: 4px 0em 4px 0em;
+}
+
+/*-------------------
+ Corner Label
+--------------------*/
+
+.ui.corner.label {
+ background-color: transparent;
+ position: absolute;
+ top: 0em;
+ right: 0em;
+ z-index: 10;
+ margin: 0em;
+ width: 3em;
+ height: 3em;
+ padding: 0em;
+ text-align: center;
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+.ui.corner.label:after {
+ position: absolute;
+ content: "";
+ right: 0em;
+ top: 0em;
+ z-index: -1;
+ width: 0em;
+ height: 0em;
+ border-top: 0em solid transparent;
+ border-right: 3em solid transparent;
+ border-bottom: 3em solid transparent;
+ border-left: 0em solid transparent;
+ border-right-color: inherit;
+ -webkit-transition: border-color 0.2s ease;
+ -moz-transition: border-color 0.2s ease;
+ transition: border-color 0.2s ease;
+}
+
+.ui.corner.label .icon {
+ font-size: 0.875em;
+ margin: 0.5em 0em 0em 1.25em;
+}
+
+.ui.corner.label .text {
+ display: inline-block;
+ font-weight: bold;
+ margin: 0.5em 0em 0em 1em;
+ width: 2.5em;
+ font-size: 0.875em;
+ text-align: center;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+}
+
+/* Coupling */
+
+.ui.rounded.image > .ui.corner.label,
+.ui.input > .ui.corner.label,
+.ui.segment > .ui.corner.label {
+ overflow: hidden;
+}
+
+.ui.segment > .ui.corner.label {
+ top: -1px;
+ right: -1px;
+}
+
+.ui.segment > .ui.left.corner.label {
+ right: auto;
+ left: -1px;
+}
+
+.ui.input > .ui.corner.label {
+ top: 1px;
+ right: 1px;
+}
+
+.ui.input > .ui.right.corner.label {
+ right: auto;
+ left: 1px;
+}
+
+/* Left Corner */
+
+.ui.left.corner.label,
+.ui.left.corner.label:after {
+ right: auto;
+ left: 0em;
+}
+
+.ui.left.corner.label:after {
+ border-top: 3em solid transparent;
+ border-right: 3em solid transparent;
+ border-bottom: 0em solid transparent;
+ border-left: 0em solid transparent;
+ border-top-color: inherit;
+}
+
+.ui.left.corner.label .icon {
+ margin: 0.5em 0em 0em -1em;
+}
+
+.ui.left.corner.label .text {
+ margin: 0.5em 0em 0em -1em;
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+}
+
+/* Hover */
+
+.ui.corner.label:hover {
+ background-color: transparent;
+}
+
+/*-------------------
+ Fluid
+--------------------*/
+
+.ui.label.fluid,
+.ui.fluid.labels > .label {
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.inverted.labels .label,
+.ui.inverted.label {
+ color: #FFFFFF !important;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+/*--- Black ---*/
+
+.ui.black.labels .label,
+.ui.black.label {
+ background-color: #5C6166 !important;
+ border-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .black.label:before,
+.ui.black.labels .label:before,
+.ui.black.label:before {
+ background-color: #5C6166 !important;
+}
+
+/* Hover */
+
+a.ui.black.labels .label:hover,
+a.ui.black.label:hover {
+ background-color: #333333 !important;
+ border-color: #333333 !important;
+}
+
+.ui.labels a.black.label:hover:before,
+.ui.black.labels a.label:hover:before,
+a.ui.black.label:hover:before {
+ background-color: #333333 !important;
+}
+
+/* Corner */
+
+.ui.black.corner.label,
+.ui.black.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.black.ribbon.label {
+ border-color: #333333 !important;
+}
+
+/*--- Green ---*/
+
+.ui.green.labels .label,
+.ui.green.label {
+ background-color: #A1CF64 !important;
+ border-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .green.label:before,
+.ui.green.labels .label:before,
+.ui.green.label:before {
+ background-color: #A1CF64 !important;
+}
+
+/* Hover */
+
+a.ui.green.labels .label:hover,
+a.ui.green.label:hover {
+ background-color: #89B84C !important;
+ border-color: #89B84C !important;
+}
+
+.ui.labels a.green.label:hover:before,
+.ui.green.labels a.label:hover:before,
+a.ui.green.label:hover:before {
+ background-color: #89B84C !important;
+}
+
+/* Corner */
+
+.ui.green.corner.label,
+.ui.green.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.green.ribbon.label {
+ border-color: #89B84C !important;
+}
+
+/*--- Red ---*/
+
+.ui.red.labels .label,
+.ui.red.label {
+ background-color: #D95C5C !important;
+ border-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .red.label:before,
+.ui.red.labels .label:before,
+.ui.red.label:before {
+ background-color: #D95C5C !important;
+}
+
+/* Corner */
+
+.ui.red.corner.label,
+.ui.red.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Hover */
+
+a.ui.red.labels .label:hover,
+a.ui.red.label:hover {
+ background-color: #DE3859 !important;
+ border-color: #DE3859 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.red.label:hover:before,
+.ui.red.labels a.label:hover:before,
+a.ui.red.label:hover:before {
+ background-color: #DE3859 !important;
+}
+
+/* Ribbon */
+
+.ui.red.ribbon.label {
+ border-color: #DE3859 !important;
+}
+
+/*--- Blue ---*/
+
+.ui.blue.labels .label,
+.ui.blue.label {
+ background-color: #6ECFF5 !important;
+ border-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .blue.label:before,
+.ui.blue.labels .label:before,
+.ui.blue.label:before {
+ background-color: #6ECFF5 !important;
+}
+
+/* Hover */
+
+a.ui.blue.labels .label:hover,
+.ui.blue.labels a.label:hover,
+a.ui.blue.label:hover {
+ background-color: #1AB8F3 !important;
+ border-color: #1AB8F3 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.blue.label:hover:before,
+.ui.blue.labels a.label:hover:before,
+a.ui.blue.label:hover:before {
+ background-color: #1AB8F3 !important;
+}
+
+/* Corner */
+
+.ui.blue.corner.label,
+.ui.blue.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.blue.ribbon.label {
+ border-color: #1AB8F3 !important;
+}
+
+/*--- Purple ---*/
+
+.ui.purple.labels .label,
+.ui.purple.label {
+ background-color: #564F8A !important;
+ border-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .purple.label:before,
+.ui.purple.labels .label:before,
+.ui.purple.label:before {
+ background-color: #564F8A !important;
+}
+
+/* Hover */
+
+a.ui.purple.labels .label:hover,
+.ui.purple.labels a.label:hover,
+a.ui.purple.label:hover {
+ background-color: #3E3773 !important;
+ border-color: #3E3773 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.purple.label:hover:before,
+.ui.purple.labels a.label:hover:before,
+a.ui.purple.label:hover:before {
+ background-color: #3E3773 !important;
+}
+
+/* Corner */
+
+.ui.purple.corner.label,
+.ui.purple.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.purple.ribbon.label {
+ border-color: #3E3773 !important;
+}
+
+/*--- Orange ---*/
+
+.ui.orange.labels .label,
+.ui.orange.label {
+ background-color: #F05940 !important;
+ border-color: #F05940 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .orange.label:before,
+.ui.orange.labels .label:before,
+.ui.orange.label:before {
+ background-color: #F05940 !important;
+}
+
+/* Hover */
+
+a.ui.orange.labels .label:hover,
+.ui.orange.labels a.label:hover,
+a.ui.orange.label:hover {
+ background-color: #FF4121 !important;
+ border-color: #FF4121 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.orange.label:hover:before,
+.ui.orange.labels a.label:hover:before,
+a.ui.orange.label:hover:before {
+ background-color: #FF4121 !important;
+}
+
+/* Corner */
+
+.ui.orange.corner.label,
+.ui.orange.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.orange.ribbon.label {
+ border-color: #FF4121 !important;
+}
+
+/*--- Teal ---*/
+
+.ui.teal.labels .label,
+.ui.teal.label {
+ background-color: #00B5AD !important;
+ border-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .teal.label:before,
+.ui.teal.labels .label:before,
+.ui.teal.label:before {
+ background-color: #00B5AD !important;
+}
+
+/* Hover */
+
+a.ui.teal.labels .label:hover,
+.ui.teal.labels a.label:hover,
+a.ui.teal.label:hover {
+ background-color: #009A93 !important;
+ border-color: #009A93 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.teal.label:hover:before,
+.ui.teal.labels a.label:hover:before,
+a.ui.teal.label:hover:before {
+ background-color: #009A93 !important;
+}
+
+/* Corner */
+
+.ui.teal.corner.label,
+.ui.teal.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.teal.ribbon.label {
+ border-color: #009A93 !important;
+}
+
+/*-------------------
+ Horizontal
+--------------------*/
+
+.ui.horizontal.labels .label,
+.ui.horizontal.label {
+ margin: -0.125em 0.5em -0.125em 0em;
+ padding: 0.35em 1em;
+ min-width: 6em;
+ text-align: center;
+}
+
+/*-------------------
+ Circular
+--------------------*/
+
+.ui.circular.labels .label,
+.ui.circular.label {
+ min-height: 1em;
+ max-height: 2em;
+ padding: 0.5em !important;
+ line-height: 1em;
+ text-align: center;
+ border-radius: 500rem;
+}
+
+/*-------------------
+ Pointing
+--------------------*/
+
+.ui.pointing.label {
+ position: relative;
+}
+
+.ui.attached.pointing.label {
+ position: absolute;
+}
+
+.ui.pointing.label:before {
+ position: absolute;
+ content: "";
+ width: 0.6em;
+ height: 0.6em;
+ background-image: none;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ z-index: 2;
+ -webkit-transition: background 0.1s linear;
+ -moz-transition: background 0.1s linear;
+ transition: background 0.1s linear;
+}
+
+/*--- Above ---*/
+
+.ui.pointing.label:before {
+ background-color: #E8E8E8;
+}
+
+.ui.pointing.label,
+.ui.pointing.above.label {
+ margin-top: 1em;
+}
+
+.ui.pointing.label:before,
+.ui.pointing.above.label:before {
+ margin-left: -0.3em;
+ top: -0.3em;
+ left: 50%;
+}
+
+/*--- Below ---*/
+
+.ui.pointing.below.label {
+ margin-top: 0em;
+ margin-bottom: 1em;
+}
+
+.ui.pointing.below.label:before {
+ margin-left: -0.3em;
+ top: auto;
+ right: auto;
+ bottom: -0.3em;
+ left: 50%;
+}
+
+/*--- Left ---*/
+
+.ui.pointing.left.label {
+ margin-top: 0em;
+ margin-left: 1em;
+}
+
+.ui.pointing.left.label:before {
+ margin-top: -0.3em;
+ bottom: auto;
+ right: auto;
+ top: 50%;
+ left: 0em;
+}
+
+/*--- Right ---*/
+
+.ui.pointing.right.label {
+ margin-top: 0em;
+ margin-right: 1em;
+}
+
+.ui.pointing.right.label:before {
+ margin-top: -0.3em;
+ right: -0.3em;
+ top: 50%;
+ bottom: auto;
+ left: auto;
+}
+
+/*------------------
+ Floating Label
+-------------------*/
+
+.ui.floating.label {
+ position: absolute;
+ z-index: 100;
+ top: -1em;
+ left: 100%;
+ margin: 0em 0em 0em -1.5em !important;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+.ui.small.labels .label,
+.ui.small.label {
+ font-size: 0.75rem;
+}
+
+.ui.label {
+ font-size: 0.8125rem;
+}
+
+.ui.large.labels .label,
+.ui.large.label {
+ font-size: 0.875rem;
+}
+
+.ui.huge.labels .label,
+.ui.huge.label {
+ font-size: 1rem;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/elements/loader.css b/css/semantic/build/uncompressed/elements/loader.css
new file mode 100644
index 0000000..2ccd812
--- /dev/null
+++ b/css/semantic/build/uncompressed/elements/loader.css
@@ -0,0 +1,189 @@
+/*
+ * # Semantic - Loader
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Loader
+*******************************/
+
+/* Standard Size */
+
+.ui.loader {
+ display: none;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ margin: 0px;
+ z-index: 1000;
+ -webkit-transform: translateX(-50%) translateY(-50%);
+ -moz-transform: translateX(-50%) translateY(-50%);
+ -ms-transform: translateX(-50%) translateY(-50%);
+ transform: translateX(-50%) translateY(-50%);
+}
+
+.ui.dimmer .loader {
+ display: block;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Text
+--------------------*/
+
+.ui.text.loader {
+ width: auto !important;
+ height: auto !important;
+ text-align: center;
+ font-style: normal;
+}
+
+.ui.mini.text.loader {
+ min-width: 16px;
+ padding-top: 2em;
+ font-size: 0.875em;
+}
+
+.ui.small.text.loader {
+ min-width: 24px;
+ padding-top: 2.5em;
+ font-size: 0.875em;
+}
+
+.ui.text.loader {
+ min-width: 32px;
+ font-size: 1em;
+ padding-top: 3em;
+}
+
+.ui.large.text.loader {
+ min-width: 64px;
+ padding-top: 5em;
+ font-size: 1.2em;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.loader.active,
+.ui.loader.visible {
+ display: block;
+}
+
+.ui.loader.disabled,
+.ui.loader.hidden {
+ display: none;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.dimmer .ui.text.loader,
+.ui.inverted.text.loader {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.dimmer .ui.text.loader {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/* Tiny Size */
+
+.ui.dimmer .mini.ui.loader,
+.ui.inverted .mini.ui.loader {
+ background-image: url(../images/loader-mini-inverted.gif);
+}
+
+/* Small Size */
+
+.ui.dimmer .small.ui.loader,
+.ui.inverted .small.ui.loader {
+ background-image: url(../images/loader-small-inverted.gif);
+}
+
+/* Standard Size */
+
+.ui.dimmer .ui.loader,
+.ui.inverted.loader {
+ background-image: url(../images/loader-medium-inverted.gif);
+}
+
+/* Large Size */
+
+.ui.dimmer .large.ui.loader,
+.ui.inverted .large.ui.loader {
+ background-image: url(../images/loader-large-inverted.gif);
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+/* Tiny Size */
+
+.ui.inverted.dimmer .ui.mini.loader,
+.ui.mini.loader {
+ width: 16px;
+ height: 16px;
+ background-image: url(../images/loader-mini.gif);
+}
+
+/* Small Size */
+
+.ui.inverted.dimmer .ui.small.loader,
+.ui.small.loader {
+ width: 24px;
+ height: 24px;
+ background-image: url(../images/loader-small.gif);
+}
+
+.ui.inverted.dimmer .ui.loader,
+.ui.loader {
+ width: 32px;
+ height: 32px;
+ background: url(../images/loader-medium.gif) no-repeat;
+ background-position: 48% 0px;
+}
+
+/* Large Size */
+
+.ui.inverted.dimmer .ui.loader.large,
+.ui.loader.large {
+ width: 64px;
+ height: 64px;
+ background-image: url(../images/loader-large.gif);
+}
+
+/*-------------------
+ Inline
+--------------------*/
+
+.ui.inline.loader {
+ position: static;
+ vertical-align: middle;
+ margin: 0em;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+}
+
+.ui.inline.loader.active,
+.ui.inline.loader.visible {
+ display: inline-block;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/elements/progress.css b/css/semantic/build/uncompressed/elements/progress.css
new file mode 100644
index 0000000..f58ed72
--- /dev/null
+++ b/css/semantic/build/uncompressed/elements/progress.css
@@ -0,0 +1,302 @@
+/*
+ * # Semantic - Progress Bar
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Progress Bar
+*******************************/
+
+.ui.progress {
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ width: 100%;
+ height: 35px;
+ background-color: #FAFAFA;
+ padding: 5px;
+ border-radius: 0.3125em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.progress .bar {
+ display: inline-block;
+ height: 100%;
+ background-color: #CCCCCC;
+ border-radius: 3px;
+ -webkit-transition: width 1s ease-in-out, background-color 1s ease-out;
+ -moz-transition: width 1s ease-in-out, background-color 1s ease-out;
+ transition: width 1s ease-in-out, background-color 1s ease-out;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Successful
+---------------*/
+
+.ui.successful.progress .bar {
+ background-color: #73E064 !important;
+}
+
+.ui.successful.progress .bar,
+.ui.successful.progress .bar::after {
+ -webkit-animation: none !important;
+ -moz-animation: none !important;
+ animation: none !important;
+}
+
+.ui.warning.progress .bar {
+ background-color: #E96633 !important;
+}
+
+.ui.warning.progress .bar,
+.ui.warning.progress .bar::after {
+ -webkit-animation: none !important;
+ -moz-animation: none !important;
+ animation: none !important;
+}
+
+/*--------------
+ Failed
+---------------*/
+
+.ui.failed.progress .bar {
+ background-color: #DF9BA4 !important;
+}
+
+.ui.failed.progress .bar,
+.ui.failed.progress .bar::after {
+ -webkit-animation: none !important;
+ -moz-animation: none !important;
+ animation: none !important;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.active.progress .bar {
+ position: relative;
+}
+
+.ui.active.progress .bar::after {
+ content: '';
+ opacity: 0;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ right: 0px;
+ bottom: 0px;
+ background: #FFFFFF;
+ border-radius: 3px;
+ -webkit-animation: progress-active 2s ease-out infinite;
+ -moz-animation: progress-active 2s ease-out infinite;
+ animation: progress-active 2s ease-out infinite;
+}
+
+@-webkit-keyframes progress-active {
+ 0% {
+ opacity: 0;
+ width: 0;
+ }
+
+ 50% {
+ opacity: 0.3;
+ }
+
+ 100% {
+ opacity: 0;
+ width: 95%;
+ }
+}
+
+@-moz-keyframes progress-active {
+ 0% {
+ opacity: 0;
+ width: 0;
+ }
+
+ 50% {
+ opacity: 0.3;
+ }
+
+ 100% {
+ opacity: 0;
+ width: 100%;
+ }
+}
+
+@keyframes progress-active {
+ 0% {
+ opacity: 0;
+ width: 0;
+ }
+
+ 50% {
+ opacity: 0.3;
+ }
+
+ 100% {
+ opacity: 0;
+ width: 100%;
+ }
+}
+
+/*--------------
+ Disabled
+---------------*/
+
+.ui.disabled.progress {
+ opacity: 0.35;
+}
+
+.ui.disabled.progress .bar,
+.ui.disabled.progress .bar::after {
+ -webkit-animation: none !important;
+ -moz-animation: none !important;
+ animation: none !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Attached
+---------------*/
+
+/* bottom attached */
+
+.ui.progress.attached {
+ position: relative;
+ border: none;
+}
+
+.ui.progress.attached,
+.ui.progress.attached .bar {
+ display: block;
+ height: 3px;
+ padding: 0px;
+ overflow: hidden;
+ border-radius: 0em 0em 0.3125em 0.3125em;
+}
+
+.ui.progress.attached .bar {
+ border-radius: 0em;
+}
+
+/* top attached */
+
+.ui.progress.top.attached,
+.ui.progress.top.attached .bar {
+ top: -2px;
+ border-radius: 0.3125em 0.3125em 0em 0em;
+}
+
+.ui.progress.top.attached .bar {
+ border-radius: 0em;
+}
+
+/*--------------
+ Colors
+---------------*/
+
+.ui.blue.progress .bar {
+ background-color: #6ECFF5;
+}
+
+.ui.black.progress .bar {
+ background-color: #5C6166;
+}
+
+.ui.green.progress .bar {
+ background-color: #A1CF64;
+}
+
+.ui.red.progress .bar {
+ background-color: #EF4D6D;
+}
+
+.ui.purple.progress .bar {
+ background-color: #564F8A;
+}
+
+.ui.teal.progress .bar {
+ background-color: #00B5AD;
+}
+
+/*--------------
+ Striped
+---------------*/
+
+.ui.progress.striped .bar {
+ -webkit-background-size: 30px 30px;
+ background-size: 30px 30px;
+ background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+ background-image: -webkit-linear-gradient(135deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -moz-linear-gradient(135deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -webkit-linear-gradient(315deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -moz-linear-gradient(315deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+
+.ui.progress.active.striped .bar:after {
+ -webkit-animation: none;
+ -moz-animation: none;
+ -ms-animation: none;
+ animation: none;
+}
+
+.ui.progress.active.striped .bar {
+ -webkit-animation: progress-striped 3s linear infinite;
+ -moz-animation: progress-striped 3s linear infinite;
+ animation: progress-striped 3s linear infinite;
+}
+
+@-webkit-keyframes progress-striped {
+ 0% {
+ background-position: 0px 0;
+ }
+
+ 100% {
+ background-position: 60px 0;
+ }
+}
+
+@-moz-keyframes progress-striped {
+ 0% {
+ background-position: 0px 0;
+ }
+
+ 100% {
+ background-position: 60px 0;
+ }
+}
+
+@keyframes progress-striped {
+ 0% {
+ background-position: 0px 0;
+ }
+
+ 100% {
+ background-position: 60px 0;
+ }
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.small.progress .bar {
+ height: 14px;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/elements/reveal.css b/css/semantic/build/uncompressed/elements/reveal.css
new file mode 100644
index 0000000..d9c4921
--- /dev/null
+++ b/css/semantic/build/uncompressed/elements/reveal.css
@@ -0,0 +1,346 @@
+/*
+ * # Semantic - Reveal
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Reveal
+*******************************/
+
+.ui.reveal {
+ display: inline-block;
+ position: relative !important;
+ z-index: 2 !important;
+ font-size: 0em !important;
+}
+
+.ui.reveal > .content {
+ font-size: 1rem !important;
+}
+
+.ui.reveal > .visible.content {
+ -webkit-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ -moz-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+}
+
+.ui.reveal > .visible.content {
+ position: absolute !important;
+ top: 0em !important;
+ left: 0em !important;
+ z-index: 4 !important;
+ -webkit-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ -moz-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+}
+
+.ui.reveal > .hidden.content {
+ position: relative !important;
+ z-index: 3 !important;
+}
+
+/*------------------
+ Loose Coupling
+-------------------*/
+
+.ui.reveal.button {
+ overflow: hidden;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Slide
+---------------*/
+
+.ui.slide.reveal {
+ position: relative !important;
+ display: block;
+ overflow: hidden !important;
+ white-space: nowrap;
+}
+
+.ui.slide.reveal > .content {
+ display: block;
+ float: left;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 0em;
+ -webkit-transition: top 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, left 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, right 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, bottom 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ -moz-transition: top 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, left 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, right 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, bottom 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ transition: top 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, left 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, right 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, bottom 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+}
+
+.ui.slide.reveal > .visible.content {
+ position: relative !important;
+}
+
+.ui.slide.reveal > .hidden.content {
+ position: absolute !important;
+ left: 100% !important;
+ width: 100% !important;
+}
+
+.ui.slide.reveal:hover > .visible.content,
+.ui.slide.reveal:focus > .visible.content {
+ left: -100% !important;
+}
+
+.ui.slide.reveal:hover > .hidden.content,
+.ui.slide.reveal:focus > .hidden.content {
+ left: 0% !important;
+}
+
+.ui.right.slide.reveal > .visible.content {
+ left: 0%;
+}
+
+.ui.right.slide.reveal > .hidden.content {
+ left: auto !important;
+ right: 100% !important;
+}
+
+.ui.right.slide.reveal:hover > .visible.content,
+.ui.right.slide.reveal:focus > .visible.content {
+ left: 100% !important;
+ right: auto !important;
+}
+
+.ui.right.slide.reveal:hover > .hidden.content,
+.ui.right.slide.reveal:focus > .hidden.content {
+ left: auto !important;
+ right: 0% !important;
+}
+
+.ui.up.slide.reveal > .visible.content {
+ top: 0% !important;
+ left: 0% !important;
+ right: auto !important;
+ bottom: auto !important;
+}
+
+.ui.up.slide.reveal > .hidden.content {
+ top: 100% !important;
+ left: 0% !important;
+ right: auto !important;
+ bottom: auto !important;
+}
+
+.ui.slide.up.reveal:hover > .visible.content,
+.ui.slide.up.reveal:focus > .visible.content {
+ top: -100% !important;
+ left: 0% !important;
+}
+
+.ui.slide.up.reveal:hover > .hidden.content,
+.ui.slide.up.reveal:focus > .hidden.content {
+ top: 0% !important;
+ left: 0% !important;
+}
+
+.ui.down.slide.reveal > .visible.content {
+ top: auto !important;
+ right: auto !important;
+ bottom: auto !important;
+ bottom: 0% !important;
+}
+
+.ui.down.slide.reveal > .hidden.content {
+ top: auto !important;
+ right: auto !important;
+ bottom: 100% !important;
+ left: 0% !important;
+}
+
+.ui.slide.down.reveal:hover > .visible.content,
+.ui.slide.down.reveal:focus > .visible.content {
+ left: 0% !important;
+ bottom: -100% !important;
+}
+
+.ui.slide.down.reveal:hover > .hidden.content,
+.ui.slide.down.reveal:focus > .hidden.content {
+ left: 0% !important;
+ bottom: 0% !important;
+}
+
+/*--------------
+ Fade
+---------------*/
+
+.ui.fade.reveal > .visible.content {
+ opacity: 1;
+}
+
+.ui.fade.reveal:hover > .visible.content,
+.ui.fade.reveal:focus > .visible.content {
+ opacity: 0;
+}
+
+/*--------------
+ Move
+---------------*/
+
+.ui.move.reveal > .visible.content,
+.ui.move.left.reveal > .visible.content {
+ left: auto !important;
+ top: auto !important;
+ bottom: auto !important;
+ right: 0% !important;
+}
+
+.ui.move.reveal:hover > .visible.content,
+.ui.move.left.reveal:hover > .visible.content,
+.ui.move.reveal:focus > .visible.content,
+.ui.move.left.reveal:focus > .visible.content {
+ right: 100% !important;
+}
+
+.ui.move.right.reveal > .visible.content {
+ right: auto !important;
+ top: auto !important;
+ bottom: auto !important;
+ left: 0% !important;
+}
+
+.ui.move.right.reveal:hover > .visible.content,
+.ui.move.right.reveal:focus > .visible.content {
+ left: 100% !important;
+}
+
+.ui.move.up.reveal > .visible.content {
+ right: auto !important;
+ left: auto !important;
+ top: auto !important;
+ bottom: 0% !important;
+}
+
+.ui.move.up.reveal:hover > .visible.content,
+.ui.move.up.reveal:focus > .visible.content {
+ bottom: 100% !important;
+}
+
+.ui.move.down.reveal > .visible.content {
+ right: auto !important;
+ left: auto !important;
+ top: 0% !important;
+ bottom: auto !important;
+}
+
+.ui.move.down.reveal:hover > .visible.content,
+.ui.move.down.reveal:focus > .visible.content {
+ top: 100% !important;
+}
+
+/*--------------
+ Rotate
+---------------*/
+
+.ui.rotate.reveal > .visible.content {
+ -webkit-transition-duration: 0.8s;
+ -moz-transition-duration: 0.8s;
+ transition-duration: 0.8s;
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+}
+
+.ui.rotate.reveal > .visible.content,
+.ui.rotate.right.reveal > .visible.content {
+ -webkit-transform-origin: bottom right;
+ -moz-transform-origin: bottom right;
+ -ms-transform-origin: bottom right;
+ transform-origin: bottom right;
+}
+
+.ui.rotate.reveal:hover > .visible.content,
+.ui.rotate.right.reveal:hover > .visible.content,
+.ui.rotate.reveal:focus > .visible.content,
+.ui.rotate.right.reveal:focus > .visible.content {
+ -webkit-transform: rotate(110deg);
+ -moz-transform: rotate(110deg);
+ -ms-transform: rotate(110deg);
+ transform: rotate(110deg);
+}
+
+.ui.rotate.left.reveal > .visible.content {
+ -webkit-transform-origin: bottom left;
+ -moz-transform-origin: bottom left;
+ -ms-transform-origin: bottom left;
+ transform-origin: bottom left;
+}
+
+.ui.rotate.left.reveal:hover > .visible.content,
+.ui.rotate.left.reveal:focus > .visible.content {
+ -webkit-transform: rotate(-110deg);
+ -moz-transform: rotate(-110deg);
+ -ms-transform: rotate(-110deg);
+ transform: rotate(-110deg);
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.disabled.reveal {
+ opacity: 1 !important;
+}
+
+.ui.disabled.reveal > .content {
+ -webkit-transition: none !important;
+ -moz-transition: none !important;
+ transition: none !important;
+}
+
+.ui.disabled.reveal:hover > .visible.content,
+.ui.disabled.reveal:focus > .visible.content {
+ position: static !important;
+ display: block !important;
+ opacity: 1 !important;
+ top: 0 !important;
+ left: 0 !important;
+ right: auto !important;
+ bottom: auto !important;
+ -webkit-transform: none !important;
+ -moz-transform: none !important;
+ -ms-transform: none !important;
+ transform: none !important;
+}
+
+.ui.disabled.reveal:hover > .hidden.content,
+.ui.disabled.reveal:focus > .hidden.content {
+ display: none !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Masked
+---------------*/
+
+.ui.masked.reveal {
+ overflow: hidden;
+}
+
+/*--------------
+ Instant
+---------------*/
+
+.ui.instant.reveal > .content {
+ -webkit-transition-delay: 0s !important;
+ -moz-transition-delay: 0s !important;
+ transition-delay: 0s !important;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/elements/segment.css b/css/semantic/build/uncompressed/elements/segment.css
new file mode 100644
index 0000000..9154bc4
--- /dev/null
+++ b/css/semantic/build/uncompressed/elements/segment.css
@@ -0,0 +1,459 @@
+/*
+ * # Semantic - Segment
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Segment
+*******************************/
+
+.ui.segment {
+ position: relative;
+ background-color: #FFFFFF;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ margin: 1em 0em;
+ padding: 1em;
+ border-radius: 5px 5px 5px 5px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.segment:first-child {
+ margin-top: 0em;
+}
+
+.ui.segment:last-child {
+ margin-bottom: 0em;
+}
+
+.ui.segment:after {
+ content: '';
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+.ui.vertical.segment {
+ margin: 0em;
+ padding-left: 0em;
+ padding-right: 0em;
+ background-color: transparent;
+ border-radius: 0px;
+ -webkit-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.1);
+}
+
+.ui.vertical.segment:first-child {
+ padding-top: 0em;
+}
+
+.ui.horizontal.segment {
+ margin: 0em;
+ padding-top: 0em;
+ padding-bottom: 0em;
+ background-color: transparent;
+ border-radius: 0px;
+ -webkit-box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1);
+ box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1);
+}
+
+.ui.horizontal.segment:first-child {
+ padding-left: 0em;
+}
+
+/*-------------------
+ Loose Coupling
+--------------------*/
+
+.ui.pointing.menu ~ .ui.attached.segment {
+ top: 1px;
+}
+
+.ui.page.grid.segment .ui.grid .ui.segment.column {
+ padding-top: 2rem;
+ padding-bottom: 2rem;
+}
+
+.ui.grid.segment,
+.ui.grid .ui.segment.row,
+.ui.grid .ui.segment.column {
+ border-radius: 0em;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border: none;
+}
+
+/* No padding on edge content */
+
+.ui.segment > :first-child {
+ margin-top: 0em;
+}
+
+.ui.segment > :last-child {
+ margin-bottom: 0em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Piled
+--------------------*/
+
+.ui.piled.segment {
+ margin: 2em 0em;
+ -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15);
+ -ms-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15);
+ -o-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15);
+ box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15);
+}
+
+.ui.piled.segment:first-child {
+ margin-top: 0em;
+}
+
+.ui.piled.segment:last-child {
+ margin-bottom: 0em;
+}
+
+.ui.piled.segment:after,
+.ui.piled.segment:before {
+ background-color: #FFFFFF;
+ visibility: visible;
+ content: "";
+ display: block;
+ height: 100%;
+ left: -1px;
+ position: absolute;
+ width: 100%;
+ -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.piled.segment:after {
+ -webkit-transform: rotate(1.2deg);
+ -moz-transform: rotate(1.2deg);
+ -ms-transform: rotate(1.2deg);
+ transform: rotate(1.2deg);
+ top: 0;
+ z-index: -1;
+}
+
+.ui.piled.segment:before {
+ -webkit-transform: rotate(-1.2deg);
+ -moz-transform: rotate(-1.2deg);
+ -ms-transform: rotate(-1.2deg);
+ transform: rotate(-1.2deg);
+ top: 0;
+ z-index: -2;
+}
+
+/*-------------------
+ Stacked
+--------------------*/
+
+.ui.stacked.segment {
+ padding-bottom: 1.7em;
+}
+
+.ui.stacked.segment:after,
+.ui.stacked.segment:before {
+ content: '';
+ position: absolute;
+ bottom: -3px;
+ left: 0%;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ background-color: rgba(0, 0, 0, 0.02);
+ width: 100%;
+ height: 5px;
+ visibility: visible;
+}
+
+.ui.stacked.segment:before {
+ bottom: 0px;
+}
+
+/* Inverted */
+
+.ui.stacked.inverted.segment:after,
+.ui.stacked.inverted.segment:before {
+ background-color: rgba(255, 255, 255, 0.1);
+ border-top: 1px solid rgba(255, 255, 255, 0.35);
+}
+
+/*-------------------
+ Circular
+--------------------*/
+
+.ui.circular.segment {
+ display: table-cell;
+ padding: 2em;
+ text-align: center;
+ vertical-align: middle;
+ border-radius: 500em;
+}
+
+/*-------------------
+ Raised
+--------------------*/
+
+.ui.raised.segment {
+ -webkit-box-shadow: 0px 1px 2px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 1px 2px 1px rgba(0, 0, 0, 0.1);
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.disabled.segment {
+ opacity: 0.8;
+ color: #DDDDDD;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Basic
+--------------------*/
+
+.ui.basic.segment {
+ position: relative;
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border-radius: 0px;
+}
+
+.ui.basic.segment:first-child {
+ padding-top: 0em;
+}
+
+.ui.basic.segment:last-child {
+ padding-bottom: 0em;
+}
+
+/*-------------------
+ Fittted
+--------------------*/
+
+.ui.fitted.segment {
+ padding: 0em;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+.ui.blue.segment {
+ border-top: 0.2em solid #6ECFF5;
+}
+
+.ui.green.segment {
+ border-top: 0.2em solid #A1CF64;
+}
+
+.ui.red.segment {
+ border-top: 0.2em solid #D95C5C;
+}
+
+.ui.orange.segment {
+ border-top: 0.2em solid #F05940;
+}
+
+.ui.purple.segment {
+ border-top: 0.2em solid #564F8A;
+}
+
+.ui.teal.segment {
+ border-top: 0.2em solid #00B5AD;
+}
+
+/*-------------------
+ Inverted Colors
+--------------------*/
+
+.ui.inverted.black.segment {
+ background-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.blue.segment {
+ background-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.green.segment {
+ background-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.red.segment {
+ background-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.orange.segment {
+ background-color: #F05940 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.purple.segment {
+ background-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.teal.segment {
+ background-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+/*-------------------
+ Aligned
+--------------------*/
+
+.ui.left.aligned.segment {
+ text-align: left;
+}
+
+.ui.right.aligned.segment {
+ text-align: right;
+}
+
+.ui.center.aligned.segment {
+ text-align: center;
+}
+
+.ui.justified.segment {
+ text-align: justify;
+ -webkit-hyphens: auto;
+ -moz-hyphens: auto;
+ -ms-hyphens: auto;
+ hyphens: auto;
+}
+
+/*-------------------
+ Floated
+--------------------*/
+
+.ui.floated.segment,
+.ui.left.floated.segment {
+ float: left;
+}
+
+.ui.right.floated.segment {
+ float: right;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.inverted.segment {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.segment .segment {
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.inverted.segment .inverted.segment {
+ color: #FFFFFF;
+}
+
+.ui.inverted.segment,
+.ui.primary.inverted.segment {
+ background-color: #222222;
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Ordinality
+--------------------*/
+
+.ui.primary.segment {
+ background-color: #FFFFFF;
+ color: #555555;
+}
+
+.ui.secondary.segment {
+ background-color: #FAF9FA;
+ color: #777777;
+}
+
+.ui.tertiary.segment {
+ background-color: #EBEBEB;
+ color: #B0B0B0;
+}
+
+.ui.secondary.inverted.segment {
+ background-color: #555555;
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(rgba(255, 255, 255, 0.3)), to(rgba(255, 255, 255, 0.3)));
+ background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.3) 100%);
+ background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.3) 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.3)), to(rgba(255, 255, 255, 0.3)));
+ background-image: linear-gradient(rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.3) 100%);
+ color: #FAFAFA;
+}
+
+.ui.tertiary.inverted.segment {
+ background-color: #555555;
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(rgba(255, 255, 255, 0.6)), to(rgba(255, 255, 255, 0.6)));
+ background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.6) 100%);
+ background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.6) 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.6)), to(rgba(255, 255, 255, 0.6)));
+ background-image: linear-gradient(rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.6) 100%);
+ color: #EEEEEE;
+}
+
+/*-------------------
+ Attached
+--------------------*/
+
+.ui.segment.attached {
+ top: -1px;
+ bottom: -1px;
+ border-radius: 0px;
+ margin: 0em;
+ -webkit-box-shadow: 0px 0px 0px 1px #DDDDDD;
+ box-shadow: 0px 0px 0px 1px #DDDDDD;
+}
+
+.ui.top.attached.segment {
+ top: 0px;
+ bottom: -1px;
+ margin-top: 1em;
+ margin-bottom: 0em;
+ border-radius: 5px 5px 0px 0px;
+}
+
+.ui.segment.top.attached:first-child {
+ margin-top: 0em;
+}
+
+.ui.segment.bottom.attached {
+ top: -1px;
+ bottom: 0px;
+ margin-top: 0em;
+ margin-bottom: 1em;
+ border-radius: 0px 0px 5px 5px;
+}
+
+.ui.segment.bottom.attached:last-child {
+ margin-bottom: 0em;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/elements/step.css b/css/semantic/build/uncompressed/elements/step.css
new file mode 100644
index 0000000..f96d37e
--- /dev/null
+++ b/css/semantic/build/uncompressed/elements/step.css
@@ -0,0 +1,332 @@
+/*
+ * # Semantic - Steps
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Step
+*******************************/
+
+.ui.step,
+.ui.steps .step {
+ display: inline-block;
+ position: relative;
+ padding: 1em 2em 1em 3em;
+ vertical-align: top;
+ background-color: #FFFFFF;
+ color: #888888;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.step:after,
+.ui.steps .step:after {
+ position: absolute;
+ z-index: 2;
+ content: '';
+ top: 0.42em;
+ right: -1em;
+ border: medium none;
+ background-color: #FFFFFF;
+ width: 2.2em;
+ height: 2.2em;
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+ -webkit-box-shadow: -1px -1px 0 0 rgba(0, 0, 0, 0.15) inset;
+ box-shadow: -1px -1px 0 0 rgba(0, 0, 0, 0.15) inset;
+}
+
+.ui.step,
+.ui.steps .step,
+.ui.steps .step:after {
+ -webkit-transition: background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, -webkit-box-shadow 0.1s ease;
+ -moz-transition: background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, box-shadow 0.1s ease;
+ transition: background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, box-shadow 0.1s ease;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/* Vertical */
+
+.ui.vertical.steps {
+ overflow: visible;
+}
+
+.ui.vertical.steps .step {
+ display: block;
+ border-radius: 0em;
+ padding: 1em 2em;
+}
+
+.ui.vertical.steps .step:first-child {
+ padding: 1em 2em;
+ border-radius: 0em;
+ border-top-left-radius: 0.3125rem;
+ border-top-right-radius: 0.3125rem;
+}
+
+.ui.vertical.steps .active.step:first-child {
+ border-top-right-radius: 0rem;
+}
+
+.ui.vertical.steps .step:last-child {
+ border-radius: 0em;
+ border-bottom-left-radius: 0.3125rem;
+ border-bottom-right-radius: 0.3125rem;
+}
+
+.ui.vertical.steps .active.step:last-child {
+ border-bottom-right-radius: 0rem;
+}
+
+/* Arrow */
+
+.ui.vertical.steps .step:after {
+ display: none;
+}
+
+/* Active Arrow */
+
+.ui.vertical.steps .active.step:after {
+ display: block;
+}
+
+/* Two Line */
+
+.ui.vertical.steps .two.line.step {
+ line-height: 1.3;
+}
+
+.ui.vertical.steps .two.line.active.step:after {
+ position: absolute;
+ z-index: 2;
+ content: '';
+ top: 0em;
+ right: -1.45em;
+ background-color: transparent;
+ border-bottom: 2.35em solid transparent;
+ border-left: 1.55em solid #555555;
+ border-top: 2.35em solid transparent;
+ width: 0em;
+ height: 0em;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+}
+
+/*******************************
+ Group
+*******************************/
+
+.ui.steps {
+ cursor: pointer;
+ display: inline-block;
+ font-size: 0em;
+ overflow: hidden;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ line-height: 1;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ border-radius: 0.3125rem;
+}
+
+.ui.steps .step:first-child {
+ padding-left: 1.35em;
+ border-radius: 0.3125em 0em 0em 0.3125em;
+}
+
+.ui.steps .step:last-child {
+ border-radius: 0em 0.3125em 0.3125em 0em;
+}
+
+.ui.steps .step:only-child {
+ border-radius: 0.3125em;
+}
+
+.ui.steps .step:last-child {
+ margin-right: 0em;
+}
+
+.ui.steps .step:last-child:after {
+ display: none;
+}
+
+/*******************************
+ States
+*******************************/
+
+/* Hover */
+
+.ui.step:hover,
+.ui.step.hover {
+ background-color: #F7F7F7;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.steps .step.hover:after,
+.ui.steps .step:hover:after,
+.ui.step:hover,
+.ui.step.hover::after {
+ background-color: #F7F7F7;
+}
+
+/* Hover */
+
+.ui.steps .step.down,
+.ui.steps .step:active,
+.ui.step.down,
+.ui.step:active {
+ background-color: #F0F0F0;
+}
+
+.ui.steps .step.down:after,
+.ui.steps .step:active:after,
+.ui.steps.down::after,
+.ui.steps:active::after {
+ background-color: #F0F0F0;
+}
+
+/* Active */
+
+.ui.steps .step.active,
+.ui.active.step {
+ cursor: auto;
+ background-color: #555555;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+
+.ui.steps .step.active:after,
+.ui.active.steps:after {
+ background-color: #555555;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* Disabled */
+
+.ui.steps .disabled.step,
+.ui.disabled.step {
+ cursor: auto;
+ background-color: #FFFFFF;
+ color: #CBCBCB;
+}
+
+.ui.steps .disabled.step:after,
+.ui.disabled.step:after {
+ background-color: #FFFFFF;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/* Attached */
+
+.attached.ui.steps {
+ margin: 0em;
+ border-radius: 0.3125em 0.3125em 0em 0em;
+}
+
+.attached.ui.steps .step:first-child {
+ border-radius: 0.3125em 0em 0em 0em;
+}
+
+.attached.ui.steps .step:last-child {
+ border-radius: 0em 0.3125em 0em 0em;
+}
+
+/* Bottom Side */
+
+.bottom.attached.ui.steps {
+ margin-top: -1px;
+ border-radius: 0em 0em 0.3125em 0.3125em;
+}
+
+.bottom.attached.ui.steps .step:first-child {
+ border-radius: 0em 0em 0em 0.3125em;
+}
+
+.bottom.attached.ui.steps .step:last-child {
+ border-radius: 0em 0em 0.3125em 0em;
+}
+
+/* Evenly divided */
+
+.ui.one.steps,
+.ui.two.steps,
+.ui.three.steps,
+.ui.four.steps,
+.ui.five.steps,
+.ui.six.steps,
+.ui.seven.steps,
+.ui.eight.steps {
+ display: block;
+}
+
+.ui.one.steps > .step {
+ width: 100%;
+}
+
+.ui.two.steps > .step {
+ width: 50%;
+}
+
+.ui.three.steps > .step {
+ width: 33.333%;
+}
+
+.ui.four.steps > .step {
+ width: 25%;
+}
+
+.ui.five.steps > .step {
+ width: 20%;
+}
+
+.ui.six.steps > .step {
+ width: 16.666%;
+}
+
+.ui.seven.steps > .step {
+ width: 14.285%;
+}
+
+.ui.eight.steps > .step {
+ width: 12.500%;
+}
+
+/*******************************
+ Sizes
+*******************************/
+
+.ui.small.step,
+.ui.small.steps .step {
+ font-size: 0.8rem;
+}
+
+.ui.step,
+.ui.steps .step {
+ font-size: 1rem;
+}
+
+.ui.large.step,
+.ui.large.steps .step {
+ font-size: 1.25rem;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/fonts/basic.icons.eot b/css/semantic/build/uncompressed/fonts/basic.icons.eot
new file mode 100644
index 0000000..25066de
Binary files /dev/null and b/css/semantic/build/uncompressed/fonts/basic.icons.eot differ
diff --git a/css/semantic/build/uncompressed/fonts/basic.icons.svg b/css/semantic/build/uncompressed/fonts/basic.icons.svg
new file mode 100644
index 0000000..b9c54d0
--- /dev/null
+++ b/css/semantic/build/uncompressed/fonts/basic.icons.svg
@@ -0,0 +1,450 @@
+
+
+
+
+Created by FontForge 20100429 at Thu Sep 20 22:09:47 2012
+ By root
+Copyright (C) 2012 by original authors @ fontello.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/css/semantic/build/uncompressed/fonts/basic.icons.ttf b/css/semantic/build/uncompressed/fonts/basic.icons.ttf
new file mode 100644
index 0000000..318a264
Binary files /dev/null and b/css/semantic/build/uncompressed/fonts/basic.icons.ttf differ
diff --git a/css/semantic/build/uncompressed/fonts/basic.icons.woff b/css/semantic/build/uncompressed/fonts/basic.icons.woff
new file mode 100644
index 0000000..baba1b5
Binary files /dev/null and b/css/semantic/build/uncompressed/fonts/basic.icons.woff differ
diff --git a/css/semantic/build/uncompressed/fonts/icons.eot b/css/semantic/build/uncompressed/fonts/icons.eot
new file mode 100644
index 0000000..0662cb9
Binary files /dev/null and b/css/semantic/build/uncompressed/fonts/icons.eot differ
diff --git a/css/semantic/build/uncompressed/fonts/icons.otf b/css/semantic/build/uncompressed/fonts/icons.otf
new file mode 100644
index 0000000..7012545
Binary files /dev/null and b/css/semantic/build/uncompressed/fonts/icons.otf differ
diff --git a/css/semantic/build/uncompressed/fonts/icons.svg b/css/semantic/build/uncompressed/fonts/icons.svg
new file mode 100644
index 0000000..2edb4ec
--- /dev/null
+++ b/css/semantic/build/uncompressed/fonts/icons.svg
@@ -0,0 +1,399 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/fonts/icons.ttf b/css/semantic/build/uncompressed/fonts/icons.ttf
new file mode 100644
index 0000000..d365924
Binary files /dev/null and b/css/semantic/build/uncompressed/fonts/icons.ttf differ
diff --git a/css/semantic/build/uncompressed/fonts/icons.woff b/css/semantic/build/uncompressed/fonts/icons.woff
new file mode 100644
index 0000000..b9bd17e
Binary files /dev/null and b/css/semantic/build/uncompressed/fonts/icons.woff differ
diff --git a/css/semantic/build/uncompressed/images/loader-large-inverted.gif b/css/semantic/build/uncompressed/images/loader-large-inverted.gif
new file mode 100644
index 0000000..ee5283f
Binary files /dev/null and b/css/semantic/build/uncompressed/images/loader-large-inverted.gif differ
diff --git a/css/semantic/build/uncompressed/images/loader-large.gif b/css/semantic/build/uncompressed/images/loader-large.gif
new file mode 100644
index 0000000..519621c
Binary files /dev/null and b/css/semantic/build/uncompressed/images/loader-large.gif differ
diff --git a/css/semantic/build/uncompressed/images/loader-medium-inverted.gif b/css/semantic/build/uncompressed/images/loader-medium-inverted.gif
new file mode 100644
index 0000000..caa3110
Binary files /dev/null and b/css/semantic/build/uncompressed/images/loader-medium-inverted.gif differ
diff --git a/css/semantic/build/uncompressed/images/loader-medium.gif b/css/semantic/build/uncompressed/images/loader-medium.gif
new file mode 100644
index 0000000..386eb5a
Binary files /dev/null and b/css/semantic/build/uncompressed/images/loader-medium.gif differ
diff --git a/css/semantic/build/uncompressed/images/loader-mini-inverted.gif b/css/semantic/build/uncompressed/images/loader-mini-inverted.gif
new file mode 100644
index 0000000..c7c95b9
Binary files /dev/null and b/css/semantic/build/uncompressed/images/loader-mini-inverted.gif differ
diff --git a/css/semantic/build/uncompressed/images/loader-mini.gif b/css/semantic/build/uncompressed/images/loader-mini.gif
new file mode 100644
index 0000000..7f3e27c
Binary files /dev/null and b/css/semantic/build/uncompressed/images/loader-mini.gif differ
diff --git a/css/semantic/build/uncompressed/images/loader-small-inverted.gif b/css/semantic/build/uncompressed/images/loader-small-inverted.gif
new file mode 100644
index 0000000..bbb0a67
Binary files /dev/null and b/css/semantic/build/uncompressed/images/loader-small-inverted.gif differ
diff --git a/css/semantic/build/uncompressed/images/loader-small.gif b/css/semantic/build/uncompressed/images/loader-small.gif
new file mode 100644
index 0000000..8c9f60e
Binary files /dev/null and b/css/semantic/build/uncompressed/images/loader-small.gif differ
diff --git a/css/semantic/build/uncompressed/modules/accordion.css b/css/semantic/build/uncompressed/modules/accordion.css
new file mode 100644
index 0000000..b17aadb
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/accordion.css
@@ -0,0 +1,171 @@
+/*
+ * # Semantic - Accordion
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Accordion
+*******************************/
+
+.ui.accordion,
+.ui.accordion .accordion {
+ width: 600px;
+ max-width: 100%;
+ font-size: 1rem;
+ border-radius: 0.3125em;
+ background-color: #FFFFFF;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.accordion .title,
+.ui.accordion .accordion .title {
+ cursor: pointer;
+ margin: 0em;
+ padding: 0.75em 1em;
+ color: rgba(0, 0, 0, 0.6);
+ border-top: 1px solid rgba(0, 0, 0, 0.05);
+ -webkit-transition: background-color 0.2s ease-out;
+ -moz-transition: background-color 0.2s ease-out;
+ transition: background-color 0.2s ease-out;
+}
+
+.ui.accordion .title:first-child,
+.ui.accordion .accordion .title:first-child {
+ border-top: none;
+}
+
+/* Content */
+
+.ui.accordion .content,
+.ui.accordion .accordion .content {
+ display: none;
+ margin: 0em;
+ padding: 1.3em 1em;
+}
+
+/* Arrow */
+
+.ui.accordion .title .dropdown.icon,
+.ui.accordion .accordion .title .dropdown.icon {
+ display: inline-block;
+ float: none;
+ margin: 0em 0.5em 0em 0em;
+ -webkit-transition: -webkit-transform 0.2s ease, opacity 0.2s ease;
+ -moz-transition: -moz-transform 0.2s ease, opacity 0.2s ease;
+ transition: transform 0.2s ease,
+ opacity 0.2s ease;
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+}
+
+.ui.accordion .title .dropdown.icon:before,
+.ui.accordion .accordion .title .dropdown.icon:before {
+ content: '\f0da' /*rtl:'\f0d9'*/;
+}
+
+/*--------------
+ Loose Coupling
+---------------*/
+
+.ui.basic.accordion.menu {
+ background-color: #FFFFFF;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.basic.accordion.menu .title,
+.ui.basic.accordion.menu .content {
+ padding: 0em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Basic
+---------------*/
+
+.ui.basic.accordion {
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.basic.accordion .title,
+.ui.basic.accordion .accordion .title {
+ background-color: transparent;
+ border-top: none;
+ padding-left: 0em;
+ padding-right: 0em;
+}
+
+.ui.basic.accordion .content,
+.ui.basic.accordion .accordion .content {
+ padding: 0.5em 0em;
+}
+
+.ui.basic.accordion .active.title,
+.ui.basic.accordion .accordion .active.title {
+ background-color: transparent;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.accordion .title:hover,
+.ui.accordion .active.title,
+.ui.accordion .accordion .title:hover,
+.ui.accordion .accordion .active.title {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.accordion .active.title,
+.ui.accordion .accordion .active.title {
+ background-color: rgba(0, 0, 0, 0.1);
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.accordion .active.title .dropdown.icon,
+.ui.accordion .accordion .active.title .dropdown.icon {
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+
+.ui.accordion .active.content,
+.ui.accordion .accordion .active.content {
+ display: block;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Fluid
+---------------*/
+
+.ui.fluid.accordion,
+.ui.fluid.accordion .accordion {
+ width: 100%;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/modules/accordion.js b/css/semantic/build/uncompressed/modules/accordion.js
new file mode 100644
index 0000000..69ff0d5
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/accordion.js
@@ -0,0 +1,428 @@
+/*
+ * # Semantic - Accordion
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.accordion = function(parameters) {
+ var
+ $allModules = $(this),
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.accordion.settings, parameters)
+ : $.extend({}, $.fn.accordion.settings),
+
+ className = settings.className,
+ namespace = settings.namespace,
+ selector = settings.selector,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+ moduleSelector = $allModules.selector || '',
+
+ $module = $(this),
+ $title = $module.find(selector.title),
+ $content = $module.find(selector.content),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing accordion with bound events', $module);
+ // initializing
+ $title
+ .on('click' + eventNamespace, module.event.click)
+ ;
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.debug('Destroying previous accordion for', $module);
+ $module
+ .removeData(moduleNamespace)
+ ;
+ $title
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+ click: function() {
+ module.verbose('Title clicked', this);
+ var
+ $activeTitle = $(this),
+ index = $title.index($activeTitle)
+ ;
+ module.toggle(index);
+ },
+ resetDisplay: function() {
+ $(this).css('display', '');
+ if( $(this).attr('style') == '') {
+ $(this)
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ }
+ },
+ resetOpacity: function() {
+ $(this).css('opacity', '');
+ if( $(this).attr('style') == '') {
+ $(this)
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ }
+ }
+ },
+
+ toggle: function(index) {
+ module.debug('Toggling content content at index', index);
+ var
+ $activeTitle = $title.eq(index),
+ $activeContent = $activeTitle.next($content),
+ contentIsOpen = $activeContent.is(':visible')
+ ;
+ if(contentIsOpen) {
+ if(settings.collapsible) {
+ module.close(index);
+ }
+ else {
+ module.debug('Cannot close accordion content collapsing is disabled');
+ }
+ }
+ else {
+ module.open(index);
+ }
+ },
+
+ open: function(index) {
+ var
+ $activeTitle = $title.eq(index),
+ $activeContent = $activeTitle.next($content),
+ $previousTitle = $activeTitle.siblings(selector.title).filter('.' + className.active),
+ $previousContent = $previousTitle.next($title),
+ contentIsOpen = ($previousTitle.size() > 0)
+ ;
+ if( !$activeContent.is(':animated') ) {
+ module.debug('Opening accordion content', $activeTitle);
+ if(settings.exclusive && contentIsOpen) {
+ $previousTitle
+ .removeClass(className.active)
+ ;
+ $previousContent
+ .stop()
+ .children()
+ .stop()
+ .animate({
+ opacity: 0
+ }, settings.duration, module.event.resetOpacity)
+ .end()
+ .slideUp(settings.duration , settings.easing, function() {
+ $previousContent
+ .removeClass(className.active)
+ .children()
+ ;
+ $.proxy(module.event.resetDisplay, this)();
+ })
+ ;
+ }
+ $activeTitle
+ .addClass(className.active)
+ ;
+ $activeContent
+ .stop()
+ .children()
+ .stop()
+ .animate({
+ opacity: 1
+ }, settings.duration)
+ .end()
+ .slideDown(settings.duration, settings.easing, function() {
+ $activeContent
+ .addClass(className.active)
+ ;
+ $.proxy(module.event.resetDisplay, this)();
+ $.proxy(settings.onOpen, $activeContent)();
+ $.proxy(settings.onChange, $activeContent)();
+ })
+ ;
+ }
+ },
+
+ close: function(index) {
+ var
+ $activeTitle = $title.eq(index),
+ $activeContent = $activeTitle.next($content)
+ ;
+ module.debug('Closing accordion content', $activeContent);
+ $activeTitle
+ .removeClass(className.active)
+ ;
+ $activeContent
+ .removeClass(className.active)
+ .show()
+ .stop()
+ .children()
+ .stop()
+ .animate({
+ opacity: 0
+ }, settings.duration, module.event.resetOpacity)
+ .end()
+ .slideUp(settings.duration, settings.easing, function(){
+ $.proxy(module.event.resetDisplay, this)();
+ $.proxy(settings.onClose, $activeContent)();
+ $.proxy(settings.onChange, $activeContent)();
+ })
+ ;
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ module.debug('Changing internal', name, value);
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else {
+ module[name] = value;
+ }
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.accordion.settings = {
+ name : 'Accordion',
+ namespace : 'accordion',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ exclusive : true,
+ collapsible : true,
+
+ duration : 500,
+ easing : 'easeInOutQuint',
+
+ onOpen : function(){},
+ onClose : function(){},
+ onChange : function(){},
+
+ error: {
+ method : 'The method you called is not defined'
+ },
+
+ className : {
+ active : 'active'
+ },
+
+ selector : {
+ title : '.title',
+ content : '.content'
+ }
+
+
+};
+
+// Adds easing
+$.extend( $.easing, {
+ easeInOutQuint: function (x, t, b, c, d) {
+ if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
+ return c/2*((t-=2)*t*t*t*t + 2) + b;
+ }
+});
+
+})( jQuery, window , document );
+
diff --git a/css/semantic/build/uncompressed/modules/behavior/api.js b/css/semantic/build/uncompressed/modules/behavior/api.js
new file mode 100644
index 0000000..0b2c87c
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/behavior/api.js
@@ -0,0 +1,634 @@
+/*
+ * # Semantic - API
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+ $.api = $.fn.api = function(parameters) {
+
+ var
+ settings = $.extend(true, {}, $.api.settings, parameters),
+
+ // if this keyword isn't a jQuery object, create one
+ context = (typeof this != 'function')
+ ? this
+ : $('
'),
+ // context defines the element used for loading/error state
+ $context = (settings.stateContext)
+ ? $(settings.stateContext)
+ : $(context),
+ // module is the thing that initiates the api action, can be independent of context
+ $module = typeof this == 'object'
+ ? $(context)
+ : $context,
+
+ element = this,
+ time = new Date().getTime(),
+ performance = [],
+
+ moduleSelector = $module.selector || '',
+ moduleNamespace = settings.namespace + '-module',
+
+ className = settings.className,
+ metadata = settings.metadata,
+ error = settings.error,
+
+ instance = $module.data(moduleNamespace),
+
+ query = arguments[0],
+ methodInvoked = (instance !== undefined && typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ module,
+ returnedValue
+ ;
+
+ module = {
+ initialize: function() {
+ var
+ runSettings,
+
+ loadingTimer = new Date().getTime(),
+ loadingDelay,
+
+ promise,
+ url,
+
+ formData = {},
+ data,
+
+ ajaxSettings = {},
+ xhr
+ ;
+
+ // serialize parent form if requested!
+ if(settings.serializeForm && $(this).toJSON() !== undefined) {
+ formData = module.get.formData();
+ module.debug('Adding form data to API Request', formData);
+ $.extend(true, settings.data, formData);
+ }
+
+ // let beforeSend change settings object
+ runSettings = $.proxy(settings.beforeSend, $module)(settings);
+
+ // check for exit conditions
+ if(runSettings !== undefined && !runSettings) {
+ module.error(error.beforeSend);
+ module.reset();
+ return;
+ }
+
+ // get real url from template
+ url = module.get.url( module.get.templateURL() );
+
+ // exit conditions reached from missing url parameters
+ if( !url ) {
+ module.error(error.missingURL);
+ module.reset();
+ return;
+ }
+
+ // promise handles notification on api request, so loading min. delay can occur for all notifications
+ promise =
+ $.Deferred()
+ .always(function() {
+ if(settings.stateContext) {
+ $context
+ .removeClass(className.loading)
+ ;
+ }
+ $.proxy(settings.complete, $module)();
+ })
+ .done(function(response) {
+ module.debug('API request successful');
+ // take a stab at finding success state if json
+ if(settings.dataType == 'json') {
+ if (response.error !== undefined) {
+ $.proxy(settings.failure, $context)(response.error, settings, $module);
+ }
+ else if ($.isArray(response.errors)) {
+ $.proxy(settings.failure, $context)(response.errors[0], settings, $module);
+ }
+ else {
+ $.proxy(settings.success, $context)(response, settings, $module);
+ }
+ }
+ // otherwise
+ else {
+ $.proxy(settings.success, $context)(response, settings, $module);
+ }
+ })
+ .fail(function(xhr, status, httpMessage) {
+ var
+ errorMessage = (settings.error[status] !== undefined)
+ ? settings.error[status]
+ : httpMessage,
+ response
+ ;
+ // let em know unless request aborted
+ if(xhr !== undefined) {
+ // readyState 4 = done, anything less is not really sent
+ if(xhr.readyState !== undefined && xhr.readyState == 4) {
+
+ // if http status code returned and json returned error, look for it
+ if( xhr.status != 200 && httpMessage !== undefined && httpMessage !== '') {
+ module.error(error.statusMessage + httpMessage);
+ }
+ else {
+ if(status == 'error' && settings.dataType == 'json') {
+ try {
+ response = $.parseJSON(xhr.responseText);
+ if(response && response.error !== undefined) {
+ errorMessage = response.error;
+ }
+ }
+ catch(error) {
+ module.error(error.JSONParse);
+ }
+ }
+ }
+ $context
+ .removeClass(className.loading)
+ .addClass(className.error)
+ ;
+ // show error state only for duration specified in settings
+ if(settings.errorLength > 0) {
+ setTimeout(function(){
+ $context
+ .removeClass(className.error)
+ ;
+ }, settings.errorLength);
+ }
+ module.debug('API Request error:', errorMessage);
+ $.proxy(settings.failure, $context)(errorMessage, settings, this);
+ }
+ else {
+ module.debug('Request Aborted (Most likely caused by page change)');
+ }
+ }
+ })
+ ;
+
+ // look for params in data
+ $.extend(true, ajaxSettings, settings, {
+ success : function(){},
+ failure : function(){},
+ complete : function(){},
+ type : settings.method || settings.type,
+ data : data,
+ url : url,
+ beforeSend : settings.beforeXHR
+ });
+
+ if(settings.stateContext) {
+ $context
+ .addClass(className.loading)
+ ;
+ }
+
+ if(settings.progress) {
+ module.verbose('Adding progress events');
+ $.extend(true, ajaxSettings, {
+ xhr: function() {
+ var
+ xhr = new window.XMLHttpRequest()
+ ;
+ xhr.upload.addEventListener('progress', function(event) {
+ var
+ percentComplete
+ ;
+ if (event.lengthComputable) {
+ percentComplete = Math.round(event.loaded / event.total * 10000) / 100 + '%';
+ $.proxy(settings.progress, $context)(percentComplete, event);
+ }
+ }, false);
+ xhr.addEventListener('progress', function(event) {
+ var
+ percentComplete
+ ;
+ if (event.lengthComputable) {
+ percentComplete = Math.round(event.loaded / event.total * 10000) / 100 + '%';
+ $.proxy(settings.progress, $context)(percentComplete, event);
+ }
+ }, false);
+ return xhr;
+ }
+ });
+ }
+
+ module.verbose('Creating AJAX request with settings: ', ajaxSettings);
+ xhr =
+ $.ajax(ajaxSettings)
+ .always(function() {
+ // calculate if loading time was below minimum threshold
+ loadingDelay = ( settings.loadingLength - (new Date().getTime() - loadingTimer) );
+ settings.loadingDelay = loadingDelay < 0
+ ? 0
+ : loadingDelay
+ ;
+ })
+ .done(function(response) {
+ var
+ context = this
+ ;
+ setTimeout(function(){
+ promise.resolveWith(context, [response]);
+ }, settings.loadingDelay);
+ })
+ .fail(function(xhr, status, httpMessage) {
+ var
+ context = this
+ ;
+ // page triggers abort on navigation, dont show error
+ if(status != 'abort') {
+ setTimeout(function(){
+ promise.rejectWith(context, [xhr, status, httpMessage]);
+ }, settings.loadingDelay);
+ }
+ else {
+ $context
+ .removeClass(className.error)
+ .removeClass(className.loading)
+ ;
+ }
+ })
+ ;
+ if(settings.stateContext) {
+ $module
+ .data(metadata.promise, promise)
+ .data(metadata.xhr, xhr)
+ ;
+ }
+ },
+
+ get: {
+ formData: function() {
+ return $module
+ .closest('form')
+ .toJSON()
+ ;
+ },
+ templateURL: function() {
+ var
+ action = $module.data(settings.metadata.action) || settings.action || false,
+ url
+ ;
+ if(action) {
+ module.debug('Creating url for: ', action);
+ if(settings.api[action] !== undefined) {
+ url = settings.api[action];
+ }
+ else {
+ module.error(error.missingAction);
+ }
+ }
+ // override with url if specified
+ if(settings.url) {
+ url = settings.url;
+ module.debug('Getting url', url);
+ }
+ return url;
+ },
+ url: function(url, urlData) {
+ var
+ urlVariables
+ ;
+ if(url) {
+ urlVariables = url.match(settings.regExpTemplate);
+ urlData = urlData || settings.urlData;
+
+ if(urlVariables) {
+ module.debug('Looking for URL variables', urlVariables);
+ $.each(urlVariables, function(index, templateValue){
+ var
+ term = templateValue.substr( 2, templateValue.length - 3),
+ termValue = ($.isPlainObject(urlData) && urlData[term] !== undefined)
+ ? urlData[term]
+ : ($module.data(term) !== undefined)
+ ? $module.data(term)
+ : urlData[term]
+ ;
+ module.verbose('Looking for variable', term, $module, $module.data(term), urlData[term]);
+ // remove optional value
+ if(termValue === false) {
+ module.debug('Removing variable from URL', urlVariables);
+ url = url.replace('/' + templateValue, '');
+ }
+ // undefined condition
+ else if(termValue === undefined || !termValue) {
+ module.error(error.missingParameter + term);
+ url = false;
+ return false;
+ }
+ else {
+ url = url.replace(templateValue, termValue);
+ }
+ });
+ }
+ }
+ return url;
+ }
+ },
+
+ // reset api request
+ reset: function() {
+ $module
+ .data(metadata.promise, false)
+ .data(metadata.xhr, false)
+ ;
+ $context
+ .removeClass(className.error)
+ .removeClass(className.loading)
+ ;
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+ };
+
+ // handle DOM attachment to API functionality
+ $.fn.apiButton = function(parameters) {
+ $(this)
+ .each(function(){
+ var
+ // if only function passed it is success callback
+ $module = $(this),
+ selector = $(this).selector || '',
+
+ settings = ( $.isFunction(parameters) )
+ ? $.extend(true, {}, $.api.settings, $.fn.apiButton.settings, { stateContext: this, success: parameters })
+ : $.extend(true, {}, $.api.settings, $.fn.apiButton.settings, { stateContext: this}, parameters),
+ module
+ ;
+ module = {
+ initialize: function() {
+ if(settings.context && selector !== '') {
+ $(settings.context)
+ .on(selector, 'click.' + settings.namespace, module.click)
+ ;
+ }
+ else {
+ $module
+ .on('click.' + settings.namespace, module.click)
+ ;
+ }
+ },
+ click: function() {
+ if(!settings.filter || $(this).filter(settings.filter).size() === 0) {
+ $.proxy( $.api, this )(settings);
+ }
+ }
+ };
+ module.initialize();
+ })
+ ;
+ return this;
+ };
+
+ $.api.settings = {
+
+ name : 'API',
+ namespace : 'api',
+
+ debug : true,
+ verbose : true,
+ performance : true,
+
+ api : {},
+
+ beforeSend : function(settings) {
+ return settings;
+ },
+ beforeXHR : function(xhr) {},
+ success : function(response) {},
+ complete : function(response) {},
+ failure : function(errorCode) {},
+ progress : false,
+
+ error : {
+ missingAction : 'API action used but no url was defined',
+ missingURL : 'URL not specified for the API action',
+ missingParameter : 'Missing an essential URL parameter: ',
+
+ timeout : 'Your request timed out',
+ error : 'There was an error with your request',
+ parseError : 'There was an error parsing your request',
+ JSONParse : 'JSON could not be parsed during error handling',
+ statusMessage : 'Server gave an error: ',
+ beforeSend : 'The before send function has aborted the request',
+ exitConditions : 'API Request Aborted. Exit conditions met'
+ },
+
+ className: {
+ loading : 'loading',
+ error : 'error'
+ },
+
+ metadata: {
+ action : 'action',
+ promise : 'promise',
+ xhr : 'xhr'
+ },
+
+ regExpTemplate: /\{\$([A-z]+)\}/g,
+
+ action : false,
+ url : false,
+ urlData : false,
+ serializeForm : false,
+
+ stateContext : false,
+
+ method : 'get',
+ data : {},
+ dataType : 'json',
+ cache : true,
+
+ loadingLength : 200,
+ errorLength : 2000
+
+ };
+
+ $.fn.apiButton.settings = {
+ filter : '.disabled, .loading',
+ context : false,
+ stateContext : false
+ };
+
+})( jQuery, window , document );
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/modules/behavior/colorize.js b/css/semantic/build/uncompressed/modules/behavior/colorize.js
new file mode 100644
index 0000000..7903f9a
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/behavior/colorize.js
@@ -0,0 +1,270 @@
+/*
+ * # Semantic - Colorize
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+ $.fn.colorize = function(parameters) {
+ var
+ settings = $.extend(true, {}, $.fn.colorize.settings, parameters),
+ // hoist arguments
+ moduleArguments = arguments || false
+ ;
+ $(this)
+ .each(function(instanceIndex) {
+
+ var
+ $module = $(this),
+
+ mainCanvas = $('
')[0],
+ imageCanvas = $('
')[0],
+ overlayCanvas = $('
')[0],
+
+ backgroundImage = new Image(),
+
+ // defs
+ mainContext,
+ imageContext,
+ overlayContext,
+
+ image,
+ imageName,
+
+ width,
+ height,
+
+ // shortucts
+ colors = settings.colors,
+ paths = settings.paths,
+ namespace = settings.namespace,
+ error = settings.error,
+
+ // boilerplate
+ instance = $module.data('module-' + namespace),
+ module
+ ;
+
+ module = {
+
+ checkPreconditions: function() {
+ module.debug('Checking pre-conditions');
+
+ if( !$.isPlainObject(colors) || $.isEmptyObject(colors) ) {
+ module.error(error.undefinedColors);
+ return false;
+ }
+ return true;
+ },
+
+ async: function(callback) {
+ if(settings.async) {
+ setTimeout(callback, 0);
+ }
+ else {
+ callback();
+ }
+ },
+
+ getMetadata: function() {
+ module.debug('Grabbing metadata');
+ image = $module.data('image') || settings.image || undefined;
+ imageName = $module.data('name') || settings.name || instanceIndex;
+ width = settings.width || $module.width();
+ height = settings.height || $module.height();
+ if(width === 0 || height === 0) {
+ module.error(error.undefinedSize);
+ }
+ },
+
+ initialize: function() {
+ module.debug('Initializing with colors', colors);
+ if( module.checkPreconditions() ) {
+
+ module.async(function() {
+ module.getMetadata();
+ module.canvas.create();
+
+ module.draw.image(function() {
+ module.draw.colors();
+ module.canvas.merge();
+ });
+ $module
+ .data('module-' + namespace, module)
+ ;
+ });
+ }
+ },
+
+ redraw: function() {
+ module.debug('Redrawing image');
+ module.async(function() {
+ module.canvas.clear();
+ module.draw.colors();
+ module.canvas.merge();
+ });
+ },
+
+ change: {
+ color: function(colorName, color) {
+ module.debug('Changing color', colorName);
+ if(colors[colorName] === undefined) {
+ module.error(error.missingColor);
+ return false;
+ }
+ colors[colorName] = color;
+ module.redraw();
+ }
+ },
+
+ canvas: {
+ create: function() {
+ module.debug('Creating canvases');
+
+ mainCanvas.width = width;
+ mainCanvas.height = height;
+ imageCanvas.width = width;
+ imageCanvas.height = height;
+ overlayCanvas.width = width;
+ overlayCanvas.height = height;
+
+ mainContext = mainCanvas.getContext('2d');
+ imageContext = imageCanvas.getContext('2d');
+ overlayContext = overlayCanvas.getContext('2d');
+
+ $module
+ .append( mainCanvas )
+ ;
+ mainContext = $module.children('canvas')[0].getContext('2d');
+ },
+ clear: function(context) {
+ module.debug('Clearing canvas');
+ overlayContext.fillStyle = '#FFFFFF';
+ overlayContext.fillRect(0, 0, width, height);
+ },
+ merge: function() {
+ if( !$.isFunction(mainContext.blendOnto) ) {
+ module.error(error.missingPlugin);
+ return;
+ }
+ mainContext.putImageData( imageContext.getImageData(0, 0, width, height), 0, 0);
+ overlayContext.blendOnto(mainContext, 'multiply');
+ }
+ },
+
+ draw: {
+
+ image: function(callback) {
+ module.debug('Drawing image');
+ callback = callback || function(){};
+ if(image) {
+ backgroundImage.src = image;
+ backgroundImage.onload = function() {
+ imageContext.drawImage(backgroundImage, 0, 0);
+ callback();
+ };
+ }
+ else {
+ module.error(error.noImage);
+ callback();
+ }
+ },
+
+ colors: function() {
+ module.debug('Drawing color overlays', colors);
+ $.each(colors, function(colorName, color) {
+ settings.onDraw(overlayContext, imageName, colorName, color);
+ });
+ }
+
+ },
+
+ debug: function(message, variableName) {
+ if(settings.debug) {
+ if(variableName !== undefined) {
+ console.info(settings.name + ': ' + message, variableName);
+ }
+ else {
+ console.info(settings.name + ': ' + message);
+ }
+ }
+ },
+ error: function(errorMessage) {
+ console.warn(settings.name + ': ' + errorMessage);
+ },
+ invoke: function(methodName, context, methodArguments) {
+ var
+ method
+ ;
+ methodArguments = methodArguments || Array.prototype.slice.call( arguments, 2 );
+
+ if(typeof methodName == 'string' && instance !== undefined) {
+ methodName = methodName.split('.');
+ $.each(methodName, function(index, name) {
+ if( $.isPlainObject( instance[name] ) ) {
+ instance = instance[name];
+ return true;
+ }
+ else if( $.isFunction( instance[name] ) ) {
+ method = instance[name];
+ return true;
+ }
+ module.error(settings.error.method);
+ return false;
+ });
+ }
+ return ( $.isFunction( method ) )
+ ? method.apply(context, methodArguments)
+ : false
+ ;
+ }
+
+ };
+ if(instance !== undefined && moduleArguments) {
+ // simpler than invoke realizing to invoke itself (and losing scope due prototype.call()
+ if(moduleArguments[0] == 'invoke') {
+ moduleArguments = Array.prototype.slice.call( moduleArguments, 1 );
+ }
+ return module.invoke(moduleArguments[0], this, Array.prototype.slice.call( moduleArguments, 1 ) );
+ }
+ // initializing
+ module.initialize();
+ })
+ ;
+ return this;
+ };
+
+ $.fn.colorize.settings = {
+ name : 'Image Colorizer',
+ debug : true,
+ namespace : 'colorize',
+
+ onDraw : function(overlayContext, imageName, colorName, color) {},
+
+ // whether to block execution while updating canvas
+ async : true,
+ // object containing names and default values of color regions
+ colors : {},
+
+ metadata: {
+ image : 'image',
+ name : 'name'
+ },
+
+ error: {
+ noImage : 'No tracing image specified',
+ undefinedColors : 'No default colors specified.',
+ missingColor : 'Attempted to change color that does not exist',
+ missingPlugin : 'Blend onto plug-in must be included',
+ undefinedHeight : 'The width or height of image canvas could not be automatically determined. Please specify a height.'
+ }
+
+ };
+
+})( jQuery, window , document );
diff --git a/css/semantic/build/uncompressed/modules/behavior/form.js b/css/semantic/build/uncompressed/modules/behavior/form.js
new file mode 100644
index 0000000..4b9c518
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/behavior/form.js
@@ -0,0 +1,738 @@
+/*
+ * # Semantic - Form Validation
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.form = function(fields, parameters) {
+ var
+ $allModules = $(this),
+
+ settings = $.extend(true, {}, $.fn.form.settings, parameters),
+ validation = $.extend({}, $.fn.form.settings.defaults, fields),
+
+ namespace = settings.namespace,
+ metadata = settings.metadata,
+ selector = settings.selector,
+ className = settings.className,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ $module = $(this),
+ $field = $(this).find(selector.field),
+ $group = $(this).find(selector.group),
+ $message = $(this).find(selector.message),
+ $prompt = $(this).find(selector.prompt),
+ $submit = $(this).find(selector.submit),
+
+ formErrors = [],
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing form validation', $module, validation, settings);
+ module.bindEvents();
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module', instance);
+ module.removeEvents();
+ $module
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing selector cache');
+ $field = $module.find(selector.field);
+ },
+
+ submit: function() {
+ module.verbose('Submitting form', $module);
+ $module
+ .submit()
+ ;
+ },
+
+ bindEvents: function() {
+ if(settings.keyboardShortcuts) {
+ $field
+ .on('keydown' + eventNamespace, module.event.field.keydown)
+ ;
+ }
+ $module
+ .on('submit' + eventNamespace, module.validate.form)
+ ;
+ $field
+ .on('blur' + eventNamespace, module.event.field.blur)
+ ;
+ $submit
+ .on('click' + eventNamespace, module.submit)
+ ;
+ $field
+ .each(function() {
+ var
+ type = $(this).prop('type'),
+ inputEvent = module.get.changeEvent(type)
+ ;
+ $(this)
+ .on(inputEvent + eventNamespace, module.event.field.change)
+ ;
+ })
+ ;
+ },
+
+ removeEvents: function() {
+ $module
+ .off(eventNamespace)
+ ;
+ $field
+ .off(eventNamespace)
+ ;
+ $submit
+ .off(eventNamespace)
+ ;
+ $field
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+ field: {
+ keydown: function(event) {
+ var
+ $field = $(this),
+ key = event.which,
+ keyCode = {
+ enter : 13,
+ escape : 27
+ }
+ ;
+ if( key == keyCode.escape) {
+ module.verbose('Escape key pressed blurring field');
+ $field
+ .blur()
+ ;
+ }
+ if(!event.ctrlKey && key == keyCode.enter && $field.is(selector.input) ) {
+ module.debug('Enter key pressed, submitting form');
+ $submit
+ .addClass(className.down)
+ ;
+ $field
+ .one('keyup' + eventNamespace, module.event.field.keyup)
+ ;
+ event.preventDefault();
+ return false;
+ }
+ },
+ keyup: function() {
+ module.verbose('Doing keyboard shortcut form submit');
+ $submit.removeClass(className.down);
+ module.submit();
+ },
+ blur: function() {
+ var
+ $field = $(this),
+ $fieldGroup = $field.closest($group)
+ ;
+ if( $fieldGroup.hasClass(className.error) ) {
+ module.debug('Revalidating field', $field, module.get.validation($field));
+ module.validate.field( module.get.validation($field) );
+ }
+ else if(settings.on == 'blur' || settings.on == 'change') {
+ module.validate.field( module.get.validation($field) );
+ }
+ },
+ change: function() {
+ var
+ $field = $(this),
+ $fieldGroup = $field.closest($group)
+ ;
+ if(settings.on == 'change' || ( $fieldGroup.hasClass(className.error) && settings.revalidate) ) {
+ clearTimeout(module.timer);
+ module.timer = setTimeout(function() {
+ module.debug('Revalidating field', $field, module.get.validation($field));
+ module.validate.field( module.get.validation($field) );
+ }, settings.delay);
+ }
+ }
+ }
+
+ },
+
+ get: {
+ changeEvent: function(type) {
+ if(type == 'checkbox' || type == 'radio' || type == 'hidden') {
+ return 'change';
+ }
+ else {
+ return (document.createElement('input').oninput !== undefined)
+ ? 'input'
+ : (document.createElement('input').onpropertychange !== undefined)
+ ? 'propertychange'
+ : 'keyup'
+ ;
+ }
+ },
+ field: function(identifier) {
+ module.verbose('Finding field with identifier', identifier);
+ if( $field.filter('#' + identifier).size() > 0 ) {
+ return $field.filter('#' + identifier);
+ }
+ else if( $field.filter('[name="' + identifier +'"]').size() > 0 ) {
+ return $field.filter('[name="' + identifier +'"]');
+ }
+ else if( $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]').size() > 0 ) {
+ return $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]');
+ }
+ return $('
');
+ },
+ validation: function($field) {
+ var
+ rules
+ ;
+ $.each(validation, function(fieldName, field) {
+ if( module.get.field(field.identifier).get(0) == $field.get(0) ) {
+ rules = field;
+ }
+ });
+ return rules || false;
+ }
+ },
+
+ has: {
+
+ field: function(identifier) {
+ module.verbose('Checking for existence of a field with identifier', identifier);
+ if( $field.filter('#' + identifier).size() > 0 ) {
+ return true;
+ }
+ else if( $field.filter('[name="' + identifier +'"]').size() > 0 ) {
+ return true;
+ }
+ else if( $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]').size() > 0 ) {
+ return true;
+ }
+ return false;
+ }
+
+ },
+
+ add: {
+ prompt: function(identifier, errors) {
+ var
+ $field = module.get.field(identifier),
+ $fieldGroup = $field.closest($group),
+ $prompt = $fieldGroup.find(selector.prompt),
+ promptExists = ($prompt.size() !== 0)
+ ;
+ errors = (typeof errors == 'string')
+ ? [errors]
+ : errors
+ ;
+ module.verbose('Adding field error state', identifier);
+ $fieldGroup
+ .addClass(className.error)
+ ;
+ if(settings.inline) {
+ if(!promptExists) {
+ $prompt = settings.templates.prompt(errors);
+ $prompt
+ .appendTo($fieldGroup)
+ ;
+ }
+ $prompt
+ .html(errors[0])
+ ;
+ if(!promptExists) {
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ module.verbose('Displaying error with css transition', settings.transition);
+ $prompt.transition(settings.transition + ' in', settings.duration);
+ }
+ else {
+ module.verbose('Displaying error with fallback javascript animation');
+ $prompt
+ .fadeIn(settings.duration)
+ ;
+ }
+ }
+ else {
+ module.verbose('Inline errors are disabled, no inline error added', identifier);
+ }
+ }
+ },
+ errors: function(errors) {
+ module.debug('Adding form error messages', errors);
+ $message
+ .html( settings.templates.error(errors) )
+ ;
+ }
+ },
+
+ remove: {
+ prompt: function(field) {
+ var
+ $field = module.get.field(field.identifier),
+ $fieldGroup = $field.closest($group),
+ $prompt = $fieldGroup.find(selector.prompt)
+ ;
+ $fieldGroup
+ .removeClass(className.error)
+ ;
+ if(settings.inline && $prompt.is(':visible')) {
+ module.verbose('Removing prompt for field', field);
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $prompt.transition(settings.transition + ' out', settings.duration, function() {
+ $prompt.remove();
+ });
+ }
+ else {
+ $prompt
+ .fadeOut(settings.duration, function(){
+ $prompt.remove();
+ })
+ ;
+ }
+ }
+ }
+ },
+
+ validate: {
+
+ form: function(event) {
+ var
+ allValid = true
+ ;
+ // reset errors
+ formErrors = [];
+ $.each(validation, function(fieldName, field) {
+ if( !( module.validate.field(field) ) ) {
+ allValid = false;
+ }
+ });
+ if(allValid) {
+ module.debug('Form has no validation errors, submitting');
+ $module
+ .removeClass(className.error)
+ .addClass(className.success)
+ ;
+ return $.proxy(settings.onSuccess, this)(event);
+ }
+ else {
+ module.debug('Form has errors');
+ $module.addClass(className.error);
+ if(!settings.inline) {
+ module.add.errors(formErrors);
+ }
+ return $.proxy(settings.onFailure, this)(formErrors);
+ }
+ },
+
+ // takes a validation object and returns whether field passes validation
+ field: function(field) {
+ var
+ $field = module.get.field(field.identifier),
+ fieldValid = true,
+ fieldErrors = []
+ ;
+ if(field.rules !== undefined) {
+ $.each(field.rules, function(index, rule) {
+ if( module.has.field(field.identifier) && !( module.validate.rule(field, rule) ) ) {
+ module.debug('Field is invalid', field.identifier, rule.type);
+ fieldErrors.push(rule.prompt);
+ fieldValid = false;
+ }
+ });
+ }
+ if(fieldValid) {
+ module.remove.prompt(field, fieldErrors);
+ $.proxy(settings.onValid, $field)();
+ }
+ else {
+ formErrors = formErrors.concat(fieldErrors);
+ module.add.prompt(field.identifier, fieldErrors);
+ $.proxy(settings.onInvalid, $field)(fieldErrors);
+ return false;
+ }
+ return true;
+ },
+
+ // takes validation rule and returns whether field passes rule
+ rule: function(field, validation) {
+ var
+ $field = module.get.field(field.identifier),
+ type = validation.type,
+ value = $.trim($field.val() + ''),
+
+ bracketRegExp = /\[(.*)\]/i,
+ bracket = bracketRegExp.exec(type),
+ isValid = true,
+ ancillary,
+ functionType
+ ;
+ // if bracket notation is used, pass in extra parameters
+ if(bracket !== undefined && bracket !== null) {
+ ancillary = '' + bracket[1];
+ functionType = type.replace(bracket[0], '');
+ isValid = $.proxy(settings.rules[functionType], $module)(value, ancillary);
+ }
+ // normal notation
+ else {
+ isValid = $.proxy(settings.rules[type], $field)(value);
+ }
+ return isValid;
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.form.settings = {
+
+ name : 'Form',
+ namespace : 'form',
+
+ debug : true,
+ verbose : true,
+ performance : true,
+
+
+ keyboardShortcuts : true,
+ on : 'submit',
+ inline : false,
+
+ delay : 200,
+ revalidate : true,
+
+ transition : 'scale',
+ duration : 150,
+
+
+ onValid : function() {},
+ onInvalid : function() {},
+ onSuccess : function() { return true; },
+ onFailure : function() { return false; },
+
+ metadata : {
+ validate: 'validate'
+ },
+
+ selector : {
+ message : '.error.message',
+ field : 'input, textarea, select',
+ group : '.field',
+ input : 'input',
+ prompt : '.prompt',
+ submit : '.submit'
+ },
+
+ className : {
+ error : 'error',
+ success : 'success',
+ down : 'down',
+ label : 'ui label prompt'
+ },
+
+ // errors
+ error: {
+ method : 'The method you called is not defined.'
+ },
+
+
+ templates: {
+ error: function(errors) {
+ var
+ html = '
'
+ ;
+ $.each(errors, function(index, value) {
+ html += '' + value + ' ';
+ });
+ html += ' ';
+ return $(html);
+ },
+ prompt: function(errors) {
+ return $('
')
+ .addClass('ui red pointing prompt label')
+ .html(errors[0])
+ ;
+ }
+ },
+
+ rules: {
+ checked: function() {
+ return ($(this).filter(':checked').size() > 0);
+ },
+ empty: function(value) {
+ return !(value === undefined || '' === value);
+ },
+ email: function(value){
+ var
+ emailRegExp = new RegExp("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", "i")
+ ;
+ return emailRegExp.test(value);
+ },
+ length: function(value, requiredLength) {
+ return (value !== undefined)
+ ? (value.length >= requiredLength)
+ : false
+ ;
+ },
+ not: function(value, notValue) {
+ return (value != notValue);
+ },
+ contains: function(value, text) {
+ text = text.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
+ return (value.search(text) !== -1);
+ },
+ is: function(value, text) {
+ return (value == text);
+ },
+ maxLength: function(value, maxLength) {
+ return (value !== undefined)
+ ? (value.length <= maxLength)
+ : false
+ ;
+ },
+ match: function(value, fieldIdentifier) {
+ // use either id or name of field
+ var
+ $form = $(this),
+ matchingValue
+ ;
+ if($form.find('#' + fieldIdentifier).size() > 0) {
+ matchingValue = $form.find('#' + fieldIdentifier).val();
+ }
+ else if($form.find('[name=' + fieldIdentifier +']').size() > 0) {
+ matchingValue = $form.find('[name=' + fieldIdentifier + ']').val();
+ }
+ else if( $form.find('[data-validate="'+ fieldIdentifier +'"]').size() > 0 ) {
+ matchingValue = $form.find('[data-validate="'+ fieldIdentifier +'"]').val();
+ }
+ return (matchingValue !== undefined)
+ ? ( value.toString() == matchingValue.toString() )
+ : false
+ ;
+ },
+ url: function(value) {
+ var
+ urlRegExp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
+ ;
+ return urlRegExp.test(value);
+ }
+ }
+
+};
+
+})( jQuery, window , document );
diff --git a/css/semantic/build/uncompressed/modules/behavior/state.js b/css/semantic/build/uncompressed/modules/behavior/state.js
new file mode 100644
index 0000000..e571c8e
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/behavior/state.js
@@ -0,0 +1,725 @@
+/*
+ * # Semantic - State
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.state = function(parameters) {
+ var
+ $allModules = $(this),
+ settings = $.extend(true, {}, $.fn.state.settings, parameters),
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ // shortcuts
+ error = settings.error,
+ metadata = settings.metadata,
+ className = settings.className,
+ namespace = settings.namespace,
+ states = settings.states,
+ text = settings.text,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = namespace + '-module',
+
+
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ $module = $(this),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+
+ module
+ ;
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing module');
+
+ // allow module to guess desired state based on element
+ if(settings.automatic) {
+ module.add.defaults();
+ }
+
+ // bind events with delegated events
+ if(settings.context && moduleSelector !== '') {
+ if( module.allows('hover') ) {
+ $(element, settings.context)
+ .on(moduleSelector, 'mouseenter' + eventNamespace, module.enable.hover)
+ .on(moduleSelector, 'mouseleave' + eventNamespace, module.disable.hover)
+ ;
+ }
+ if( module.allows('down') ) {
+ $(element, settings.context)
+ .on(moduleSelector, 'mousedown' + eventNamespace, module.enable.down)
+ .on(moduleSelector, 'mouseup' + eventNamespace, module.disable.down)
+ ;
+ }
+ if( module.allows('focus') ) {
+ $(element, settings.context)
+ .on(moduleSelector, 'focus' + eventNamespace, module.enable.focus)
+ .on(moduleSelector, 'blur' + eventNamespace, module.disable.focus)
+ ;
+ }
+ $(settings.context)
+ .on(moduleSelector, 'mouseenter' + eventNamespace, module.change.text)
+ .on(moduleSelector, 'mouseleave' + eventNamespace, module.reset.text)
+ .on(moduleSelector, 'click' + eventNamespace, module.toggle.state)
+ ;
+ }
+ else {
+ if( module.allows('hover') ) {
+ $module
+ .on('mouseenter' + eventNamespace, module.enable.hover)
+ .on('mouseleave' + eventNamespace, module.disable.hover)
+ ;
+ }
+ if( module.allows('down') ) {
+ $module
+ .on('mousedown' + eventNamespace, module.enable.down)
+ .on('mouseup' + eventNamespace, module.disable.down)
+ ;
+ }
+ if( module.allows('focus') ) {
+ $module
+ .on('focus' + eventNamespace, module.enable.focus)
+ .on('blur' + eventNamespace, module.disable.focus)
+ ;
+ }
+ $module
+ .on('mouseenter' + eventNamespace, module.change.text)
+ .on('mouseleave' + eventNamespace, module.reset.text)
+ .on('click' + eventNamespace, module.toggle.state)
+ ;
+ }
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module', instance);
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing selector cache');
+ $module = $(element);
+ },
+
+ add: {
+ defaults: function() {
+ var
+ userStates = parameters && $.isPlainObject(parameters.states)
+ ? parameters.states
+ : {}
+ ;
+ $.each(settings.defaults, function(type, typeStates) {
+ if( module.is[type] !== undefined && module.is[type]() ) {
+ module.verbose('Adding default states', type, element);
+ $.extend(settings.states, typeStates, userStates);
+ }
+ });
+ }
+ },
+
+ is: {
+
+ active: function() {
+ return $module.hasClass(className.active);
+ },
+ loading: function() {
+ return $module.hasClass(className.loading);
+ },
+ inactive: function() {
+ return !( $module.hasClass(className.active) );
+ },
+
+ enabled: function() {
+ return !( $module.is(settings.filter.active) );
+ },
+ disabled: function() {
+ return ( $module.is(settings.filter.active) );
+ },
+ textEnabled: function() {
+ return !( $module.is(settings.filter.text) );
+ },
+
+ // definitions for automatic type detection
+ button: function() {
+ return $module.is('.button:not(a, .submit)');
+ },
+ input: function() {
+ return $module.is('input');
+ }
+ },
+
+ allow: function(state) {
+ module.debug('Now allowing state', state);
+ states[state] = true;
+ },
+ disallow: function(state) {
+ module.debug('No longer allowing', state);
+ states[state] = false;
+ },
+
+ allows: function(state) {
+ return states[state] || false;
+ },
+
+ enable: {
+ state: function(state) {
+ if(module.allows(state)) {
+ $module.addClass( className[state] );
+ }
+ },
+ // convenience
+ focus: function() {
+ $module.addClass(className.focus);
+ },
+ hover: function() {
+ $module.addClass(className.hover);
+ },
+ down: function() {
+ $module.addClass(className.down);
+ },
+ },
+
+ disable: {
+ state: function(state) {
+ if(module.allows(state)) {
+ $module.removeClass( className[state] );
+ }
+ },
+ // convenience
+ focus: function() {
+ $module.removeClass(className.focus);
+ },
+ hover: function() {
+ $module.removeClass(className.hover);
+ },
+ down: function() {
+ $module.removeClass(className.down);
+ },
+ },
+
+ toggle: {
+ state: function() {
+ var
+ apiRequest = $module.data(metadata.promise)
+ ;
+ if( module.allows('active') && module.is.enabled() ) {
+ module.refresh();
+ if(apiRequest !== undefined) {
+ module.listenTo(apiRequest);
+ }
+ else {
+ module.change.state();
+ }
+ }
+ }
+ },
+
+ listenTo: function(apiRequest) {
+ module.debug('API request detected, waiting for state signal', apiRequest);
+ if(apiRequest) {
+ if(text.loading) {
+ module.update.text(text.loading);
+ }
+ $.when(apiRequest)
+ .then(function() {
+ if(apiRequest.state() == 'resolved') {
+ module.debug('API request succeeded');
+ settings.activateTest = function(){ return true; };
+ settings.deactivateTest = function(){ return true; };
+ }
+ else {
+ module.debug('API request failed');
+ settings.activateTest = function(){ return false; };
+ settings.deactivateTest = function(){ return false; };
+ }
+ module.change.state();
+ })
+ ;
+ }
+ // xhr exists but set to false, beforeSend killed the xhr
+ else {
+ settings.activateTest = function(){ return false; };
+ settings.deactivateTest = function(){ return false; };
+ }
+ },
+
+ // checks whether active/inactive state can be given
+ change: {
+
+ state: function() {
+ module.debug('Determining state change direction');
+ // inactive to active change
+ if( module.is.inactive() ) {
+ module.activate();
+ }
+ else {
+ module.deactivate();
+ }
+ if(settings.sync) {
+ module.sync();
+ }
+ $.proxy(settings.onChange, element)();
+ },
+
+ text: function() {
+ if( module.is.textEnabled() ) {
+ if( module.is.active() ) {
+ if(text.hover) {
+ module.verbose('Changing text to hover text', text.hover);
+ module.update.text(text.hover);
+ }
+ else if(text.disable) {
+ module.verbose('Changing text to disable text', text.disable);
+ module.update.text(text.disable);
+ }
+ }
+ else {
+ if(text.hover) {
+ module.verbose('Changing text to hover text', text.disable);
+ module.update.text(text.hover);
+ }
+ else if(text.enable){
+ module.verbose('Changing text to enable text', text.enable);
+ module.update.text(text.enable);
+ }
+ }
+ }
+ }
+
+ },
+
+ activate: function() {
+ if( $.proxy(settings.activateTest, element)() ) {
+ module.debug('Setting state to active');
+ $module
+ .addClass(className.active)
+ ;
+ module.update.text(text.active);
+ }
+ $.proxy(settings.onActivate, element)();
+ },
+
+ deactivate: function() {
+ if($.proxy(settings.deactivateTest, element)() ) {
+ module.debug('Setting state to inactive');
+ $module
+ .removeClass(className.active)
+ ;
+ module.update.text(text.inactive);
+ }
+ $.proxy(settings.onDeactivate, element)();
+ },
+
+ sync: function() {
+ module.verbose('Syncing other buttons to current state');
+ if( module.is.active() ) {
+ $allModules
+ .not($module)
+ .state('activate');
+ }
+ else {
+ $allModules
+ .not($module)
+ .state('deactivate')
+ ;
+ }
+ },
+
+ get: {
+ text: function() {
+ return (settings.selector.text)
+ ? $module.find(settings.selector.text).text()
+ : $module.html()
+ ;
+ },
+ textFor: function(state) {
+ return text[state] || false;
+ }
+ },
+
+ flash: {
+ text: function(text, duration) {
+ var
+ previousText = module.get.text()
+ ;
+ module.debug('Flashing text message', text, duration);
+ text = text || settings.text.flash;
+ duration = duration || settings.flashDuration;
+ module.update.text(text);
+ setTimeout(function(){
+ module.update.text(previousText);
+ }, duration);
+ }
+ },
+
+ reset: {
+ // on mouseout sets text to previous value
+ text: function() {
+ var
+ activeText = text.active || $module.data(metadata.storedText),
+ inactiveText = text.inactive || $module.data(metadata.storedText)
+ ;
+ if( module.is.textEnabled() ) {
+ if( module.is.active() && activeText) {
+ module.verbose('Resetting active text', activeText);
+ module.update.text(activeText);
+ }
+ else if(inactiveText) {
+ module.verbose('Resetting inactive text', activeText);
+ module.update.text(inactiveText);
+ }
+ }
+ }
+ },
+
+ update: {
+ text: function(text) {
+ var
+ currentText = module.get.text()
+ ;
+ if(text && text !== currentText) {
+ module.debug('Updating text', text);
+ if(settings.selector.text) {
+ $module
+ .data(metadata.storedText, text)
+ .find(settings.selector.text)
+ .text(text)
+ ;
+ }
+ else {
+ $module
+ .data(metadata.storedText, text)
+ .html(text)
+ ;
+ }
+ }
+ else {
+ module.debug('Text is already sane, ignoring update', text);
+ }
+ }
+ },
+
+ setting: function(name, value) {
+ module.debug('Changing setting', name, value);
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else {
+ settings[name] = value;
+ }
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ module.debug('Changing internal', name, value);
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else {
+ module[name] = value;
+ }
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.state.settings = {
+
+ // module info
+ name : 'State',
+
+ // debug output
+ debug : true,
+
+ // verbose debug output
+ verbose : true,
+
+ // namespace for events
+ namespace : 'state',
+
+ // debug data includes performance
+ performance: true,
+
+ // callback occurs on state change
+ onActivate : function() {},
+ onDeactivate : function() {},
+ onChange : function() {},
+
+ // state test functions
+ activateTest : function() { return true; },
+ deactivateTest : function() { return true; },
+
+ // whether to automatically map default states
+ automatic : true,
+
+ // activate / deactivate changes all elements instantiated at same time
+ sync : false,
+
+ // default flash text duration, used for temporarily changing text of an element
+ flashDuration : 3000,
+
+ // selector filter
+ filter : {
+ text : '.loading, .disabled',
+ active : '.disabled'
+ },
+
+ context : false,
+
+ // error
+ error: {
+ method : 'The method you called is not defined.'
+ },
+
+ // metadata
+ metadata: {
+ promise : 'promise',
+ storedText : 'stored-text'
+ },
+
+ // change class on state
+ className: {
+ focus : 'focus',
+ hover : 'hover',
+ down : 'down',
+ active : 'active',
+ loading : 'loading'
+ },
+
+ selector: {
+ // selector for text node
+ text: false
+ },
+
+ defaults : {
+ input: {
+ hover : true,
+ focus : true,
+ down : true,
+ loading : false,
+ active : false
+ },
+ button: {
+ hover : true,
+ focus : false,
+ down : true,
+ active : true,
+ loading : true
+ }
+ },
+
+ states : {
+ hover : true,
+ focus : true,
+ down : true,
+ loading : false,
+ active : false
+ },
+
+ text : {
+ flash : false,
+ hover : false,
+ active : false,
+ inactive : false,
+ enable : false,
+ disable : false
+ }
+
+};
+
+
+
+})( jQuery, window , document );
diff --git a/css/semantic/build/uncompressed/modules/chatroom.css b/css/semantic/build/uncompressed/modules/chatroom.css
new file mode 100644
index 0000000..55e524e
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/chatroom.css
@@ -0,0 +1,300 @@
+/*
+ * # Semantic - Chat Room
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Chat Room
+*******************************/
+
+.ui.chatroom {
+ background-color: #F8F8F8;
+ width: 330px;
+ height: 370px;
+ padding: 0px;
+}
+
+.ui.chatroom .room {
+ position: relative;
+ background-color: #FFFFFF;
+ overflow: hidden;
+ height: 286px;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ border-top: none;
+ border-bottom: none;
+}
+
+.ui.chatroom .room .loader {
+ display: none;
+ margin: -25px 0px 0px -25px;
+}
+
+/* Chat Room Actions */
+
+.ui.chatroom .actions {
+ overflow: hidden;
+ background-color: #EEEEEE;
+ padding: 4px;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ border-radius: 5px 5px 0px 0px;
+}
+
+.ui.chatroom .actions .button {
+ float: right;
+ margin-left: 3px;
+}
+
+/* Online User Count */
+
+.ui.chatroom .actions .message {
+ float: left;
+ margin-left: 6px;
+ font-size: 11px;
+ color: #AAAAAA;
+ text-shadow: 0px -1px 0px rgba(255, 255, 255, 0.8);
+ line-height: 28px;
+}
+
+.ui.chatroom .actions .message .loader {
+ display: inline-block;
+ margin-right: 8px;
+}
+
+/* Chat Room Text Log */
+
+.ui.chatroom .log {
+ float: left;
+ overflow: auto;
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+
+.ui.chatroom .log .message {
+ padding: 3px 0px;
+ border-top: 1px dotted #DADADA;
+}
+
+.ui.chatroom .log .message:first-child {
+ border-top: none;
+}
+
+/* status event */
+
+.ui.chatroom .status {
+ padding: 5px 0px;
+ color: #AAAAAA;
+ font-size: 12px;
+ font-style: italic;
+ line-height: 1.33;
+ border-top: 1px dotted #DADADA;
+}
+
+.ui.chatroom .log .status:first-child {
+ border-top: none;
+}
+
+.ui.chatroom .log .flag {
+ float: left;
+}
+
+.ui.chatroom .log p {
+ margin-left: 0px;
+}
+
+.ui.chatroom .log .author {
+ font-weight: bold;
+ -webkit-transition: color 0.3s ease-out;
+ -moz-transition: color 0.3s ease-out;
+ transition: color 0.3s ease-out;
+}
+
+.ui.chatroom .log a.author:hover {
+ opacity: 0.8;
+}
+
+.ui.chatroom .log .message.admin p {
+ font-weight: bold;
+ margin: 1px 0px 0px 23px;
+}
+
+.ui.chatroom .log .divider {
+ margin: -1px 0px;
+ font-size: 11px;
+ padding: 10px 0px;
+ border-top: 1px solid #F8F8F8;
+ border-bottom: 1px solid #F8F8F8;
+}
+
+.ui.chatroom .log .divider .rule {
+ top: 50%;
+ width: 15%;
+}
+
+.ui.chatroom .log .divider .label {
+ color: #777777;
+ margin: 0px;
+}
+
+/* Chat Room User List */
+
+.ui.chatroom .room .list {
+ position: relative;
+ overflow: auto;
+ overflow-x: hidden;
+ overflow-y: auto;
+ float: left;
+ background-color: #EEEEEE;
+ border-left: 1px solid #DDDDDD;
+}
+
+.ui.chatroom .room .list .user {
+ display: table;
+ padding: 3px 7px;
+ border-bottom: 1px solid #DDDDDD;
+}
+
+.ui.chatroom .room .list .user:hover {
+ background-color: #F8F8F8;
+}
+
+.ui.chatroom .room .list .image {
+ display: table-cell;
+ vertical-align: middle;
+ width: 20px;
+}
+
+.ui.chatroom .room .list .image img {
+ width: 20px;
+ height: 20px;
+ vertical-align: middle;
+}
+
+.ui.chatroom .room .list p {
+ display: table-cell;
+ vertical-align: middle;
+ padding-left: 7px;
+ padding-right: 14px;
+ font-size: 11px;
+ line-height: 1.2;
+ font-weight: bold;
+}
+
+.ui.chatroom .room .list a:hover {
+ opacity: 0.8;
+}
+
+/* User List Loading */
+
+.ui.chatroom.loading .loader {
+ display: block;
+}
+
+/* Chat Room Talk Input */
+
+.ui.chatroom .talk {
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ padding: 5px 0px 0px;
+ background-color: #EEEEEE;
+ border-radius: 0px 0px 5px 5px;
+}
+
+.ui.chatroom .talk .avatar,
+.ui.chatroom .talk input,
+.ui.chatroom .talk .button {
+ float: left;
+}
+
+.ui.chatroom .talk .avatar img {
+ display: block;
+ width: 30px;
+ height: 30px;
+ margin-right: 4px;
+ border-radius: 500rem;
+}
+
+.ui.chatroom .talk input {
+ border: 1px solid #CCCCCC;
+ margin: 0px;
+ width: 196px;
+ height: 14px;
+ padding: 8px 5px;
+ font-size: 12px;
+ color: #555555;
+}
+
+.ui.chatroom .talk input.focus {
+ border: 1px solid #AAAAAA;
+}
+
+.ui.chatroom .send {
+ width: 80px;
+ height: 32px;
+ margin-left: -1px;
+ padding: 4px 12px;
+ font-size: 12px;
+ line-height: 23px;
+ -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset;
+ border-radius: 0 5px 5px 0;
+}
+
+.ui.chatroom .talk .log-in.button {
+ display: block;
+ float: none;
+ margin-top: -6px;
+ height: 22px;
+ border-radius: 0px 0px 4px 4px;
+}
+
+.ui.chatroom .talk .log-in.button i {
+ vertical-align: text-top;
+}
+
+/* Quirky Flags */
+
+.ui.chatroom .log .team.flag {
+ width: 18px;
+}
+
+/* Chat room Loaded */
+
+.ui.chatroom.loading .loader {
+ display: block;
+}
+
+/* Standard Size */
+
+.ui.chatroom {
+ width: 330px;
+ height: 370px;
+}
+
+.ui.chatroom .room .container {
+ width: 3000px;
+}
+
+.ui.chatroom .log {
+ width: 314px;
+ height: 278px;
+ padding: 4px 7px;
+}
+
+.ui.chatroom .room .list {
+ width: 124px;
+ height: 278px;
+ padding: 4px 0px;
+}
+
+.ui.chatroom .room .list .user {
+ width: 110px;
+}
+
+.ui.chatroom .talk {
+ height: 40px;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/modules/chatroom.js b/css/semantic/build/uncompressed/modules/chatroom.js
new file mode 100644
index 0000000..a20a66a
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/chatroom.js
@@ -0,0 +1,772 @@
+/*
+ * # Semantic - Chatroom
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.chatroom = function(parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $(this)
+ .each(function() {
+ var
+ settings = $.extend(true, {}, $.fn.chatroom.settings, parameters),
+
+ className = settings.className,
+ namespace = settings.namespace,
+ selector = settings.selector,
+ error = settings.error,
+
+ $module = $(this),
+
+ $expandButton = $module.find(selector.expandButton),
+ $userListButton = $module.find(selector.userListButton),
+
+ $userList = $module.find(selector.userList),
+ $room = $module.find(selector.room),
+ $userCount = $module.find(selector.userCount),
+
+ $log = $module.find(selector.log),
+ $message = $module.find(selector.message),
+
+ $messageInput = $module.find(selector.messageInput),
+ $messageButton = $module.find(selector.messageButton),
+
+ instance = $module.data('module'),
+ element = this,
+
+ html = '',
+ users = {},
+
+ channel,
+ loggedInUser,
+
+ message,
+ count,
+
+ height,
+
+ pusher,
+ module
+ ;
+
+ module = {
+
+ width: {
+ log : $log.width(),
+ userList : $userList.outerWidth()
+ },
+
+ initialize: function() {
+
+ // check error conditions
+ if(Pusher === undefined) {
+ module.error(error.pusher);
+ }
+ if(settings.key === undefined || settings.channelName === undefined) {
+ module.error(error.key);
+ return false;
+ }
+ else if( !(settings.endpoint.message || settings.endpoint.authentication) ) {
+ module.error(error.endpoint);
+ return false;
+ }
+
+ // define pusher
+ pusher = new Pusher(settings.key);
+ Pusher.channel_auth_endpoint = settings.endpoint.authentication;
+
+ channel = pusher.subscribe(settings.channelName);
+
+ channel.bind('pusher:subscription_succeeded', module.user.list.create);
+ channel.bind('pusher:subscription_error', module.error);
+ channel.bind('pusher:member_added', module.user.joined);
+ channel.bind('pusher:member_removed', module.user.left);
+ channel.bind('update_messages', module.message.receive);
+
+ $.each(settings.customEvents, function(label, value) {
+ channel.bind(label, value);
+ });
+
+ // bind module events
+ $userListButton
+ .on('click.' + namespace, module.event.toggleUserList)
+ ;
+ $expandButton
+ .on('click.' + namespace, module.event.toggleExpand)
+ ;
+ $messageInput
+ .on('keydown.' + namespace, module.event.input.keydown)
+ .on('keyup.' + namespace, module.event.input.keyup)
+ ;
+ $messageButton
+ .on('mouseenter.' + namespace, module.event.hover)
+ .on('mouseleave.' + namespace, module.event.hover)
+ .on('click.' + namespace, module.event.submit)
+ ;
+ // scroll to bottom of chat log
+ $log
+ .animate({
+ scrollTop: $log.prop('scrollHeight')
+ }, 400)
+ ;
+ $module
+ .data('module', module)
+ .addClass(className.loading)
+ ;
+
+ },
+
+ // refresh module
+ refresh: function() {
+ // reset width calculations
+ $userListButton
+ .removeClass(className.active)
+ ;
+ module.width = {
+ log : $log.width(),
+ userList : $userList.outerWidth()
+ };
+ if( $userListButton.hasClass(className.active) ) {
+ module.user.list.hide();
+ }
+ $module.data('module', module);
+ },
+
+ user: {
+
+ updateCount: function() {
+ if(settings.userCount) {
+ users = $module.data('users');
+ count = 0;
+ $.each(users, function() {
+ count++;
+ });
+ $userCount
+ .html( settings.templates.userCount(count) )
+ ;
+ }
+ },
+
+ // add user to user list
+ joined: function(member) {
+ users = $module.data('users');
+ if(member.id != 'anonymous' && users[ member.id ] === undefined ) {
+ users[ member.id ] = member.info;
+ if(settings.randomColor && member.info.color === undefined) {
+ member.info.color = settings.templates.color(member.id);
+ }
+ html = settings.templates.userList(member.info);
+ if(member.info.isAdmin) {
+ $(html)
+ .prependTo($userList)
+ ;
+ }
+ else {
+ $(html)
+ .appendTo($userList)
+ ;
+ }
+ if(settings.partingMessages) {
+ $log
+ .append( settings.templates.joined(member.info) )
+ ;
+ module.message.scroll.test();
+ }
+ module.user.updateCount();
+ }
+ },
+
+ // remove user from user list
+ left: function(member) {
+ users = $module.data('users');
+ if(member !== undefined && member.id !== 'anonymous') {
+ delete users[ member.id ];
+ $module
+ .data('users', users)
+ ;
+ $userList
+ .find('[data-id='+ member.id + ']')
+ .remove()
+ ;
+ if(settings.partingMessages) {
+ $log
+ .append( settings.templates.left(member.info) )
+ ;
+ module.message.scroll.test();
+ }
+ module.user.updateCount();
+ }
+ },
+
+ list: {
+
+ // receives list of members and generates user list
+ create: function(members) {
+ users = {};
+ members.each(function(member) {
+ if(member.id !== 'anonymous' && member.id !== 'undefined') {
+ if(settings.randomColor && member.info.color === undefined) {
+ member.info.color = settings.templates.color(member.id);
+ }
+ // sort list with admin first
+ html = (member.info.isAdmin)
+ ? settings.templates.userList(member.info) + html
+ : html + settings.templates.userList(member.info)
+ ;
+ users[ member.id ] = member.info;
+ }
+ });
+ $module
+ .data('users', users)
+ .data('user', users[members.me.id] )
+ .removeClass(className.loading)
+ ;
+ $userList
+ .html(html)
+ ;
+ module.user.updateCount();
+ $.proxy(settings.onJoin, $userList.children())();
+ },
+
+ // shows user list
+ show: function() {
+ $log
+ .animate({
+ width: (module.width.log - module.width.userList)
+ }, {
+ duration : settings.speed,
+ easing : settings.easing,
+ complete : module.message.scroll.move
+ })
+ ;
+ },
+
+ // hides user list
+ hide: function() {
+ $log
+ .stop()
+ .animate({
+ width: (module.width.log)
+ }, {
+ duration : settings.speed,
+ easing : settings.easing,
+ complete : module.message.scroll.move
+ })
+ ;
+ }
+
+ }
+
+ },
+
+ message: {
+
+ // handles scrolling of chat log
+ scroll: {
+ test: function() {
+ height = $log.prop('scrollHeight') - $log.height();
+ if( Math.abs($log.scrollTop() - height) < settings.scrollArea) {
+ module.message.scroll.move();
+ }
+ },
+
+ move: function() {
+ height = $log.prop('scrollHeight') - $log.height();
+ $log
+ .scrollTop(height)
+ ;
+ }
+ },
+
+ // sends chat message
+ send: function(message) {
+ if( !module.utils.emptyString(message) ) {
+ $.api({
+ url : settings.endpoint.message,
+ method : 'POST',
+ data : {
+ 'message': {
+ content : message,
+ timestamp : new Date().getTime()
+ }
+ }
+ });
+ }
+ },
+
+ // receives chat response and processes
+ receive: function(response) {
+ message = response.data;
+ users = $module.data('users');
+ loggedInUser = $module.data('user');
+ if(users[ message.userID] !== undefined) {
+ // logged in user's messages already pushed instantly
+ if(loggedInUser === undefined || loggedInUser.id != message.userID) {
+ message.user = users[ message.userID ];
+ module.message.display(message);
+ }
+ }
+ },
+
+ // displays message in chat log
+ display: function(message) {
+ $log
+ .append( settings.templates.message(message) )
+ ;
+ module.message.scroll.test();
+ $.proxy(settings.onMessage, $log.children().last() )();
+ }
+
+ },
+
+ expand: function() {
+ $module
+ .addClass(className.expand)
+ ;
+ $.proxy(settings.onExpand, $module )();
+ module.refresh();
+ },
+
+ contract: function() {
+ $module
+ .removeClass(className.expand)
+ ;
+ $.proxy(settings.onContract, $module )();
+ module.refresh();
+ },
+
+ event: {
+
+ input: {
+
+ keydown: function(event) {
+ if(event.which == 13) {
+ $messageButton
+ .addClass(className.down)
+ ;
+ }
+ },
+
+ keyup: function(event) {
+ if(event.which == 13) {
+ $messageButton
+ .removeClass(className.down)
+ ;
+ module.event.submit();
+ }
+ }
+
+ },
+
+ // handles message form submit
+ submit: function() {
+ var
+ message = $messageInput.val(),
+ loggedInUser = $module.data('user')
+ ;
+ if(loggedInUser !== undefined && !module.utils.emptyString(message)) {
+ module.message.send(message);
+ // display immediately
+ module.message.display({
+ user: loggedInUser,
+ text: message
+ });
+ module.message.scroll.move();
+ $messageInput
+ .val('')
+ ;
+
+ }
+ },
+
+ // handles button click on expand button
+ toggleExpand: function() {
+ if( !$module.hasClass(className.expand) ) {
+ $expandButton
+ .addClass(className.active)
+ ;
+ module.expand();
+ }
+ else {
+ $expandButton
+ .removeClass(className.active)
+ ;
+ module.contract();
+ }
+ },
+
+ // handles button click on user list button
+ toggleUserList: function() {
+ if( !$log.is(':animated') ) {
+ if( !$userListButton.hasClass(className.active) ) {
+ $userListButton
+ .addClass(className.active)
+ ;
+ module.user.list.show();
+ }
+ else {
+ $userListButton
+ .removeClass('active')
+ ;
+ module.user.list.hide();
+ }
+ }
+
+ }
+ },
+
+ utils: {
+
+ emptyString: function(string) {
+ if(typeof string == 'string') {
+ return (string.search(/\S/) == -1);
+ }
+ return false;
+ }
+
+ },
+
+ setting: function(name, value) {
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else {
+ settings[name] = value;
+ }
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ maxDepth,
+ found
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && instance !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) {
+ instance = instance[value];
+ }
+ else if( instance[value] !== undefined ) {
+ found = instance[value];
+ }
+ else {
+ module.error(error.method, query);
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ return found.apply(context, passedArguments);
+ }
+ return found || false;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+ $.fn.chatroom.settings = {
+
+ name : 'Chat',
+ debug : false,
+ namespace : 'chat',
+
+ channel : 'present-chat',
+
+ onJoin : function(){},
+ onMessage : function(){},
+ onExpand : function(){},
+ onContract : function(){},
+
+ customEvents : {},
+
+ partingMessages : false,
+ userCount : true,
+ randomColor : true,
+
+ speed : 300,
+ easing : 'easeOutQuint',
+
+ // pixels from bottom of chat log that should trigger auto scroll to bottom
+ scrollArea : 9999,
+
+ endpoint : {
+ message : false,
+ authentication : false
+ },
+
+ error: {
+ method : 'The method you called is not defined',
+ endpoint : 'Please define a message and authentication endpoint.',
+ key : 'You must specify a pusher key and channel.',
+ pusher : 'You must include the Pusher library.'
+ },
+
+ className : {
+ expand : 'expand',
+ active : 'active',
+ hover : 'hover',
+ down : 'down',
+ loading : 'loading'
+ },
+
+ selector : {
+ userCount : '.actions .message',
+ userListButton : '.actions .list.button',
+ expandButton : '.actions .expand.button',
+ room : '.room',
+ userList : '.room .list',
+ log : '.room .log',
+ message : '.room .log .message',
+ author : '.room log .message .author',
+ messageInput : '.talk input',
+ messageButton : '.talk .send.button'
+ },
+
+ templates: {
+
+ userCount: function(number) {
+ return number + ' users in chat';
+ },
+
+ color: function(userID) {
+ var
+ colors = [
+ '#000000',
+ '#333333',
+ '#666666',
+ '#999999',
+ '#CC9999',
+ '#CC6666',
+ '#CC3333',
+ '#993333',
+ '#663333',
+ '#CC6633',
+ '#CC9966',
+ '#CC9933',
+ '#999966',
+ '#CCCC66',
+ '#99CC66',
+ '#669933',
+ '#669966',
+ '#33A3CC',
+ '#336633',
+ '#33CCCC',
+ '#339999',
+ '#336666',
+ '#336699',
+ '#6666CC',
+ '#9966CC',
+ '#333399',
+ '#663366',
+ '#996699',
+ '#993366',
+ '#CC6699'
+ ]
+ ;
+ return colors[ Math.floor( Math.random() * colors.length) ];
+ },
+
+ message: function(message) {
+ var
+ html = ''
+ ;
+ if(message.user.isAdmin) {
+ message.user.color = '#55356A';
+ html += '
';
+ html += '
';
+ }
+ /*
+ else if(message.user.isPro) {
+ html += '
';
+ html += '
';
+ }
+ */
+ else {
+ html += '
';
+ }
+ html += '
';
+ if(message.user.color !== undefined) {
+ html += '' + message.user.name + ' : ';
+ }
+ else {
+ html += '' + message.user.name + ' : ';
+ }
+ html += ''
+ + message.text
+ + '
'
+ + '
'
+ ;
+ return html;
+ },
+
+ joined: function(member) {
+ return (typeof member.name !== undefined)
+ ? '
' + member.name + ' has joined the chat.
'
+ : false
+ ;
+ },
+ left: function(member) {
+ return (typeof member.name !== undefined)
+ ? '
' + member.name + ' has left the chat.
'
+ : false
+ ;
+ },
+
+ userList: function(member) {
+ var
+ html = ''
+ ;
+ if(member.isAdmin) {
+ member.color = '#55356A';
+ }
+ html += ''
+ + '
';
+ return html;
+ }
+
+ }
+
+ };
+
+})( jQuery, window , document );
diff --git a/css/semantic/build/uncompressed/modules/checkbox.css b/css/semantic/build/uncompressed/modules/checkbox.css
new file mode 100644
index 0000000..d689332
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/checkbox.css
@@ -0,0 +1,394 @@
+/*
+ * # Semantic - Checkbox
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Checkbox
+*******************************/
+
+/*--------------
+ Standard
+---------------*/
+
+/*--- Content ---*/
+
+.ui.checkbox {
+ position: relative;
+ display: inline-block;
+ min-width: 1em;
+ height: 1.25em;
+ line-height: 1em;
+ outline: none;
+ vertical-align: middle;
+}
+
+.ui.checkbox input {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ opacity: 0;
+ outline: none;
+}
+
+/*--- Box ---*/
+
+.ui.checkbox .box,
+.ui.checkbox label {
+ cursor: pointer;
+ padding-left: 2em;
+ outline: none;
+}
+
+.ui.checkbox .box:before,
+.ui.checkbox label:before {
+ position: absolute;
+ top: 0em;
+ line-height: 1;
+ width: 1em;
+ height: 1em;
+ left: 0em;
+ content: '';
+ border-radius: 4px;
+ background: #FFFFFF;
+ -webkit-transition: background-color 0.3s ease, -webkit-box-shadow 0.3s ease;
+ -moz-transition: background-color 0.3s ease, box-shadow 0.3s ease;
+ transition: background-color 0.3s ease, box-shadow 0.3s ease;
+ -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.2);
+ box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.2);
+}
+
+/*--- Checkbox ---*/
+
+.ui.checkbox .box:after,
+.ui.checkbox label:after {
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
+ filter: alpha(opacity=0);
+ opacity: 0;
+ content: '';
+ position: absolute;
+ background: transparent;
+ border: 0.2em solid #333333;
+ border-top: none;
+ border-right: none;
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+}
+
+.ui.checkbox .box:after,
+.ui.checkbox label:after {
+ top: 0.275em;
+ left: 0.2em;
+ width: 0.45em;
+ height: 0.15em;
+}
+
+/*--- Inside Label ---*/
+
+.ui.checkbox label {
+ color: rgba(0, 0, 0, 0.6);
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+.ui.checkbox label:hover {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.checkbox input:focus ~ label {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--- Outside Label ---*/
+
+.ui.checkbox ~ label {
+ cursor: pointer;
+ opacity: 0.85;
+ vertical-align: middle;
+}
+
+.ui.checkbox ~ label:hover {
+ opacity: 1;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--- Hover ---*/
+
+.ui.checkbox .box:hover::before,
+.ui.checkbox label:hover::before {
+ -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
+ box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
+}
+
+/*--- Down ---*/
+
+.ui.checkbox .box:active::before,
+.ui.checkbox label:active::before {
+ background-color: #F5F5F5;
+}
+
+/*--- Focus ---*/
+
+.ui.checkbox input:focus ~ .box:before,
+.ui.checkbox input:focus ~ label:before {
+ -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
+ box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
+}
+
+/*--- Active ---*/
+
+.ui.checkbox input:checked ~ .box:after,
+.ui.checkbox input:checked ~ label:after {
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
+ filter: alpha(opacity=100);
+ opacity: 1;
+}
+
+/*--- Disabled ---*/
+
+.ui.disabled.checkbox ~ .box:after,
+.ui.checkbox input[disabled] ~ .box:after,
+.ui.disabled.checkbox label,
+.ui.checkbox input[disabled] ~ label {
+ opacity: 0.4;
+ color: rgba(0, 0, 0, 0.3);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Radio
+---------------*/
+
+.ui.radio.checkbox .box:before,
+.ui.radio.checkbox label:before {
+ min-width: 1em;
+ height: 1em;
+ border-radius: 500px;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+}
+
+.ui.radio.checkbox .box:after,
+.ui.radio.checkbox label:after {
+ border: none;
+ top: 0.2em;
+ left: 0.2em;
+ width: 0.6em;
+ height: 0.6em;
+ background-color: #555555;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+ border-radius: 500px;
+}
+
+/*--------------
+ Slider
+---------------*/
+
+.ui.slider.checkbox {
+ cursor: pointer;
+ min-width: 3em;
+}
+
+/* Line */
+
+.ui.slider.checkbox:after {
+ position: absolute;
+ top: 0.5em;
+ left: 0em;
+ content: '';
+ width: 3em;
+ height: 2px;
+ background-color: rgba(0, 0, 0, 0.1);
+}
+
+/* Button */
+
+.ui.slider.checkbox .box,
+.ui.slider.checkbox label {
+ padding-left: 4em;
+}
+
+.ui.slider.checkbox .box:before,
+.ui.slider.checkbox label:before {
+ cursor: pointer;
+ display: block;
+ position: absolute;
+ top: -0.25em;
+ left: 0em;
+ z-index: 1;
+ width: 1.5em;
+ height: 1.5em;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ border-radius: 50rem;
+ -webkit-transition: left 0.3s ease 0s;
+ -moz-transition: left 0.3s ease 0s;
+ transition: left 0.3s ease 0s;
+}
+
+/* Button Activation Light */
+
+.ui.slider.checkbox .box:after,
+.ui.slider.checkbox label:after {
+ opacity: 1;
+ position: absolute;
+ content: '';
+ top: 0.15em;
+ left: 0em;
+ z-index: 2;
+ margin-left: 0.375em;
+ border: none;
+ width: 0.75em;
+ height: 0.75em;
+ border-radius: 50rem;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+ -webkit-transition: background 0.3s ease 0s,
+ left 0.3s ease 0s;
+ -moz-transition: background 0.3s ease 0s,
+ left 0.3s ease 0s;
+ transition: background 0.3s ease 0s,
+ left 0.3s ease 0s;
+}
+
+/* Selected Slider Toggle */
+
+.ui.slider.checkbox input:checked ~ .box:before,
+.ui.slider.checkbox input:checked ~ label:before,
+.ui.slider.checkbox input:checked ~ .box:after,
+.ui.slider.checkbox input:checked ~ label:after {
+ left: 1.75em;
+}
+
+/* Off Color */
+
+.ui.slider.checkbox .box:after,
+.ui.slider.checkbox label:after {
+ background-color: #D95C5C;
+}
+
+/* On Color */
+
+.ui.slider.checkbox input:checked ~ .box:after,
+.ui.slider.checkbox input:checked ~ label:after {
+ background-color: #89B84C;
+}
+
+/*--------------
+ Toggle
+---------------*/
+
+.ui.toggle.checkbox {
+ cursor: pointer;
+}
+
+.ui.toggle.checkbox .box,
+.ui.toggle.checkbox label {
+ padding-left: 4em;
+}
+
+/* Switch */
+
+.ui.toggle.checkbox .box:before,
+.ui.toggle.checkbox label:before {
+ cursor: pointer;
+ display: block;
+ position: absolute;
+ content: '';
+ top: -0.25em;
+ left: 0em;
+ z-index: 1;
+ background-color: #FFFFFF;
+ width: 3em;
+ height: 1.5em;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ border-radius: 50rem;
+}
+
+/* Activation Light */
+
+.ui.toggle.checkbox .box:after,
+.ui.toggle.checkbox label:after {
+ opacity: 1;
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ content: '';
+ position: absolute;
+ top: 0.15em;
+ left: 0.5em;
+ z-index: 2;
+ border: none;
+ width: 0.75em;
+ height: 0.75em;
+ background-color: #D95C5C;
+ border-radius: 50rem;
+ -webkit-transition: background 0.3s ease 0s,
+ left 0.3s ease 0s;
+ -moz-transition: background 0.3s ease 0s,
+ left 0.3s ease 0s;
+ transition: background 0.3s ease 0s,
+ left 0.3s ease 0s;
+}
+
+/* Active */
+
+.ui.toggle.checkbox:active .box:before,
+.ui.toggle.checkbox:active label:before {
+ background-color: #F5F5F5;
+}
+
+/* Active */
+
+.ui.toggle.checkbox input:checked ~ .box:after,
+.ui.toggle.checkbox input:checked ~ label:after {
+ left: 1.75em;
+ background-color: #89B84C;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.checkbox {
+ font-size: 1em;
+}
+
+.ui.large.checkbox {
+ font-size: 1.25em;
+}
+
+.ui.huge.checkbox {
+ font-size: 1.5em;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/modules/checkbox.js b/css/semantic/build/uncompressed/modules/checkbox.js
new file mode 100644
index 0000000..0ec3923
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/checkbox.js
@@ -0,0 +1,347 @@
+/*
+ * # Semantic - Checkbox
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.checkbox = function(parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = $.extend(true, {}, $.fn.checkbox.settings, parameters),
+
+ className = settings.className,
+ namespace = settings.namespace,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $label = $(this).next(settings.selector.label).first(),
+ $input = $(this).find(settings.selector.input),
+
+ selector = $module.selector || '',
+ instance = $module.data(moduleNamespace),
+
+ element = this,
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing checkbox', settings);
+ if(settings.context && selector !== '') {
+ module.verbose('Adding delegated events');
+ $(element, settings.context)
+ .on(selector, 'click' + eventNamespace, module.toggle)
+ .on(selector + ' + ' + settings.selector.label, 'click' + eventNamespace, module.toggle)
+ ;
+ }
+ else {
+ $module
+ .on('click' + eventNamespace, module.toggle)
+ .data(moduleNamespace, module)
+ ;
+ $label
+ .on('click' + eventNamespace, module.toggle)
+ ;
+ }
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module');
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ is: {
+ radio: function() {
+ return $module.hasClass(className.radio);
+ },
+ enabled: function() {
+ return $input.prop('checked') !== undefined && $input.prop('checked');
+ },
+ disabled: function() {
+ return !module.is.enabled();
+ }
+ },
+
+ can: {
+ disable: function() {
+ return (typeof settings.required === 'boolean')
+ ? settings.required
+ : !module.is.radio()
+ ;
+ }
+ },
+
+ enable: function() {
+ module.debug('Enabling checkbox', $input);
+ $input
+ .prop('checked', true)
+ .trigger('change')
+ ;
+ $.proxy(settings.onChange, $input.get())();
+ $.proxy(settings.onEnable, $input.get())();
+ },
+
+ disable: function() {
+ module.debug('Disabling checkbox');
+ $input
+ .prop('checked', false)
+ .trigger('change')
+ ;
+ $.proxy(settings.onChange, $input.get())();
+ $.proxy(settings.onDisable, $input.get())();
+ },
+
+ toggle: function(event) {
+ module.verbose('Determining new checkbox state');
+ if( module.is.disabled() ) {
+ module.enable();
+ }
+ else if( module.is.enabled() && module.can.disable() ) {
+ module.disable();
+ }
+ },
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.checkbox.settings = {
+
+ name : 'Checkbox',
+ namespace : 'checkbox',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ // delegated event context
+ context : false,
+ required : 'auto',
+
+ onChange : function(){},
+ onEnable : function(){},
+ onDisable : function(){},
+
+ error : {
+ method : 'The method you called is not defined.'
+ },
+
+ selector : {
+ input : 'input[type=checkbox], input[type=radio]',
+ label : 'label'
+ },
+
+ className : {
+ radio : 'radio'
+ }
+
+};
+
+})( jQuery, window , document );
diff --git a/css/semantic/build/uncompressed/modules/dimmer.css b/css/semantic/build/uncompressed/modules/dimmer.css
new file mode 100644
index 0000000..0418abb
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/dimmer.css
@@ -0,0 +1,184 @@
+/*
+ * # Semantic - Dimmer
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Dimmer
+*******************************/
+
+.ui.dimmable {
+ position: relative;
+}
+
+.ui.dimmer {
+ display: none;
+ position: absolute;
+ top: 0em !important;
+ left: 0em !important;
+ width: 0%;
+ height: 0%;
+ text-align: center;
+ vertical-align: middle;
+ background-color: rgba(0, 0, 0, 0.85);
+ opacity: 0;
+ line-height: 1;
+ -webkit-animation-fill-mode: both;
+ -moz-animation-fill-mode: both;
+ animation-fill-mode: both;
+ -webkit-animation-duration: 0.5s;
+ -moz-animation-duration: 0.5s;
+ animation-duration: 0.5s;
+ -webkit-transition: background-color 0.5s linear;
+ -moz-transition: background-color 0.5s linear;
+ transition: background-color 0.5s linear;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ z-index: 1000;
+}
+
+/* Dimmer Content */
+
+.ui.dimmer > .content {
+ width: 100%;
+ height: 100%;
+ display: table;
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+}
+
+.ui.dimmer > .content > div {
+ display: table-cell;
+ vertical-align: middle;
+ color: #FFFFFF;
+}
+
+/* Loose Coupling */
+
+.ui.segment > .ui.dimmer {
+ border-radius: 5px;
+}
+
+.ui.horizontal.segment > .ui.dimmer,
+.ui.vertical.segment > .ui.dimmer {
+ border-radius: 5px;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.dimmed.dimmable:not(body) {
+ overflow: hidden;
+}
+
+.ui.dimmed.dimmable > .ui.animating.dimmer,
+.ui.dimmed.dimmable > .ui.visible.dimmer,
+.ui.active.dimmer {
+ display: block;
+ width: 100%;
+ height: 100%;
+ opacity: 1;
+}
+
+.ui.disabled.dimmer {
+ width: 0em !important;
+ height: 0em !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Page
+---------------*/
+
+.ui.page.dimmer {
+ position: fixed;
+ -webkit-transform-style: preserve-3d;
+ -moz-transform-style: preserve-3d;
+ -ms-transform-style: preserve-3d;
+ transform-style: preserve-3d;
+ -webkit-perspective: 2000px;
+ -moz-perspective: 2000px;
+ -ms-perspective: 2000px;
+ perspective: 2000px;
+ -webkit-transform-origin: center center;
+ -moz-transform-origin: center center;
+ -ms-transform-origin: center center;
+ transform-origin: center center;
+}
+
+.ui.scrolling.dimmable > .dimmer,
+.ui.scrolling.page.dimmer {
+ position: absolute;
+}
+
+/*--------------
+ Aligned
+---------------*/
+
+.ui.dimmer > .top.aligned.content > * {
+ vertical-align: top;
+}
+
+.ui.dimmer > .bottom.aligned.content > * {
+ vertical-align: bottom;
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.inverted.dimmer {
+ background-color: rgba(255, 255, 255, 0.85);
+}
+
+.ui.inverted.dimmer > .content > * {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--------------
+ Simple
+---------------*/
+
+/* Displays without javascript */
+
+.ui.simple.dimmer {
+ display: block;
+ overflow: hidden;
+ opacity: 1;
+ z-index: -100;
+ background-color: rgba(0, 0, 0, 0);
+}
+
+.ui.dimmed.dimmable > .ui.simple.dimmer {
+ overflow: visible;
+ opacity: 1;
+ width: 100%;
+ height: 100%;
+ background-color: rgba(0, 0, 0, 0.85);
+ z-index: 1;
+}
+
+.ui.simple.inverted.dimmer {
+ background-color: rgba(255, 255, 255, 0);
+}
+
+.ui.dimmed.dimmable > .ui.simple.inverted.dimmer {
+ background-color: rgba(255, 255, 255, 0.85);
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/modules/dimmer.js b/css/semantic/build/uncompressed/modules/dimmer.js
new file mode 100644
index 0000000..e2f97ce
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/dimmer.js
@@ -0,0 +1,593 @@
+/*
+ * # Semantic - Dimmer
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.dimmer = function(parameters) {
+ var
+ $allModules = $(this),
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.dimmer.settings, parameters)
+ : $.extend({}, $.fn.dimmer.settings),
+
+ selector = settings.selector,
+ namespace = settings.namespace,
+ className = settings.className,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+ moduleSelector = $allModules.selector || '',
+
+ clickEvent = ('ontouchstart' in document.documentElement)
+ ? 'touchstart'
+ : 'click',
+
+ $module = $(this),
+ $dimmer,
+ $dimmable,
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ preinitialize: function() {
+ if( module.is.dimmer() ) {
+ $dimmable = $module.parent();
+ $dimmer = $module;
+ }
+ else {
+ $dimmable = $module;
+ if( module.has.dimmer() ) {
+ $dimmer = $dimmable.children(selector.dimmer).first();
+ }
+ else {
+ $dimmer = module.create();
+ }
+ }
+ },
+
+ initialize: function() {
+ module.debug('Initializing dimmer', settings);
+ if(settings.on == 'hover') {
+ $dimmable
+ .on('mouseenter' + eventNamespace, module.show)
+ .on('mouseleave' + eventNamespace, module.hide)
+ ;
+ }
+ else if(settings.on == 'click') {
+ $dimmable
+ .on(clickEvent + eventNamespace, module.toggle)
+ ;
+ }
+
+ if( module.is.page() ) {
+ module.debug('Setting as a page dimmer', $dimmable);
+ module.set.pageDimmer();
+ }
+
+ if(settings.closable) {
+ module.verbose('Adding dimmer close event', $dimmer);
+ $dimmer
+ .on(clickEvent + eventNamespace, module.event.click)
+ ;
+ }
+ module.set.dimmable();
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module', $dimmer);
+ $module
+ .removeData(moduleNamespace)
+ ;
+ $dimmable
+ .off(eventNamespace)
+ ;
+ $dimmer
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+
+ click: function(event) {
+ module.verbose('Determining if event occured on dimmer', event);
+ if( $dimmer.find(event.target).size() === 0 || $(event.target).is(selector.content) ) {
+ module.hide();
+ event.stopImmediatePropagation();
+ }
+ }
+
+ },
+
+ addContent: function(element) {
+ var
+ $content = $(element)
+ ;
+ module.debug('Add content to dimmer', $content);
+ if($content.parent()[0] !== $dimmer[0]) {
+ $content.detach().appendTo($dimmer);
+ }
+ },
+
+ create: function() {
+ return $( settings.template.dimmer() ).appendTo($dimmable);
+ },
+
+ animate: {
+ show: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.set.dimmed();
+ if(settings.on != 'hover' && settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {
+ $dimmer
+ .transition({
+ animation : settings.transition + ' in',
+ queue : true,
+ duration : module.get.duration(),
+ complete : function() {
+ module.set.active();
+ callback();
+ }
+ })
+ ;
+ }
+ else {
+ module.verbose('Showing dimmer animation with javascript');
+ $dimmer
+ .stop()
+ .css({
+ opacity : 0,
+ width : '100%',
+ height : '100%'
+ })
+ .fadeTo(module.get.duration(), 1, function() {
+ $dimmer.removeAttr('style');
+ module.set.active();
+ callback();
+ })
+ ;
+ }
+ },
+ hide: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if(settings.on != 'hover' && settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {
+ module.verbose('Hiding dimmer with css');
+ $dimmer
+ .transition({
+ animation : settings.transition + ' out',
+ duration : module.get.duration(),
+ queue : true,
+ complete : function() {
+ module.remove.dimmed();
+ module.remove.active();
+ callback();
+ }
+ })
+ ;
+ }
+ else {
+ module.verbose('Hiding dimmer with javascript');
+ $dimmer
+ .stop()
+ .fadeOut(module.get.duration(), function() {
+ $dimmer.removeAttr('style');
+ module.remove.dimmed();
+ module.remove.active();
+ callback();
+ })
+ ;
+ }
+ }
+ },
+
+ get: {
+ dimmer: function() {
+ return $dimmer;
+ },
+ duration: function() {
+ if(typeof settings.duration == 'object') {
+ if( module.is.active() ) {
+ return settings.duration.hide;
+ }
+ else {
+ return settings.duration.show;
+ }
+ }
+ return settings.duration;
+ }
+ },
+
+ has: {
+ dimmer: function() {
+ return ( $module.children(selector.dimmer).size() > 0 );
+ }
+ },
+
+ is: {
+ active: function() {
+ return $dimmer.hasClass(className.active);
+ },
+ animating: function() {
+ return ( $dimmer.is(':animated') || $dimmer.hasClass(className.transition) );
+ },
+ dimmer: function() {
+ return $module.is(selector.dimmer);
+ },
+ dimmable: function() {
+ return $module.is(selector.dimmable);
+ },
+ dimmed: function() {
+ return $dimmable.hasClass(className.dimmed);
+ },
+ disabled: function() {
+ return $dimmable.hasClass(className.disabled);
+ },
+ enabled: function() {
+ return !module.is.disabled();
+ },
+ page: function () {
+ return $dimmable.is('body');
+ },
+ pageDimmer: function() {
+ return $dimmer.hasClass(className.pageDimmer);
+ }
+ },
+
+ can: {
+ show: function() {
+ return !$dimmer.hasClass(className.disabled);
+ }
+ },
+
+ set: {
+ active: function() {
+ module.set.dimmed();
+ $dimmer
+ .removeClass(className.transition)
+ .addClass(className.active)
+ ;
+ },
+ dimmable: function() {
+ $dimmable.addClass(className.dimmable);
+ },
+ dimmed: function() {
+ $dimmable.addClass(className.dimmed);
+ },
+ pageDimmer: function() {
+ $dimmer.addClass(className.pageDimmer);
+ },
+ disabled: function() {
+ $dimmer.addClass(className.disabled);
+ }
+ },
+
+ remove: {
+ active: function() {
+ $dimmer
+ .removeClass(className.transition)
+ .removeClass(className.active)
+ ;
+ },
+ dimmed: function() {
+ $dimmable.removeClass(className.dimmed);
+ },
+ disabled: function() {
+ $dimmer.removeClass(className.disabled);
+ }
+ },
+
+ show: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.debug('Showing dimmer', $dimmer, settings);
+ if( !module.is.active() && module.is.enabled() ) {
+ module.animate.show(callback);
+ $.proxy(settings.onShow, element)();
+ $.proxy(settings.onChange, element)();
+ }
+ else {
+ module.debug('Dimmer is already shown or disabled');
+ }
+ },
+
+ hide: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( module.is.active() || module.is.animating() ) {
+ module.debug('Hiding dimmer', $dimmer);
+ module.animate.hide(callback);
+ $.proxy(settings.onHide, element)();
+ $.proxy(settings.onChange, element)();
+ }
+ else {
+ module.debug('Dimmer is not visible');
+ }
+ },
+
+ toggle: function() {
+ module.verbose('Toggling dimmer visibility', $dimmer);
+ if( !module.is.dimmed() ) {
+ module.show();
+ }
+ else {
+ module.hide();
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ module.preinitialize();
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.dimmer.settings = {
+
+ name : 'Dimmer',
+ namespace : 'dimmer',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ transition : 'fade',
+ useCSS : true,
+ on : false,
+ closable : true,
+
+ duration : {
+ show : 500,
+ hide : 500
+ },
+
+ onChange : function(){},
+ onShow : function(){},
+ onHide : function(){},
+
+ error : {
+ method : 'The method you called is not defined.'
+ },
+
+ selector: {
+ dimmable : '.ui.dimmable',
+ dimmer : '.ui.dimmer',
+ content : '.ui.dimmer > .content, .ui.dimmer > .content > .center'
+ },
+
+ template: {
+ dimmer: function() {
+ return $('
').attr('class', 'ui dimmer');
+ }
+ },
+
+ className : {
+ active : 'active',
+ dimmable : 'ui dimmable',
+ dimmed : 'dimmed',
+ disabled : 'disabled',
+ pageDimmer : 'page',
+ hide : 'hide',
+ show : 'show',
+ transition : 'transition'
+ }
+
+};
+
+})( jQuery, window , document );
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/modules/dropdown.css b/css/semantic/build/uncompressed/modules/dropdown.css
new file mode 100644
index 0000000..7f97343
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/dropdown.css
@@ -0,0 +1,554 @@
+/*
+ * # Semantic - Dropdown
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Dropdown
+*******************************/
+
+.ui.dropdown {
+ cursor: pointer;
+ position: relative;
+ display: inline-block;
+ line-height: 1;
+ -webkit-transition: border-radius 0.1s ease, width 0.2s ease;
+ -moz-transition: border-radius 0.1s ease, width 0.2s ease;
+ transition: border-radius 0.1s ease, width 0.2s ease;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -moz-tap-highlight-color: rgba(0, 0, 0, 0);
+ tap-highlight-color: rgba(0, 0, 0, 0);
+}
+
+/*******************************
+ Content
+*******************************/
+
+/*--------------
+ Menu
+---------------*/
+
+.ui.dropdown .menu {
+ cursor: auto;
+ position: absolute;
+ display: none;
+ top: 100%;
+ margin: 0em;
+ background-color: #FFFFFF;
+ min-width: 100%;
+ white-space: nowrap;
+ font-size: 0.875em;
+ text-shadow: none;
+ -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1);
+ border-radius: 0px 0px 0.325em 0.325em;
+ -webkit-transition: opacity 0.2s ease;
+ -moz-transition: opacity 0.2s ease;
+ transition: opacity 0.2s ease;
+ z-index: 11;
+}
+
+/*--------------
+ Icon
+---------------*/
+
+.ui.dropdown > .dropdown.icon {
+ width: auto;
+ margin: 0em 0em 0em 1em;
+}
+
+.ui.dropdown > .dropdown.icon:before {
+ content: "\f0d7";
+}
+
+.ui.dropdown .menu .item .dropdown.icon {
+ width: auto;
+ float: right;
+ margin: 0em 0em 0em 0.5em;
+}
+
+.ui.dropdown .menu .item .dropdown.icon:before {
+ content: "\f0da" /*rtl:"\f0d9"*/;
+}
+
+/*--------------
+ Text
+---------------*/
+
+.ui.dropdown > .text {
+ display: inline-block;
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+/* Flyout Direction */
+
+.ui.dropdown .menu {
+ left: 0px;
+}
+
+/*--------------
+ Sub Menu
+---------------*/
+
+.ui.dropdown .menu .menu {
+ top: 0% !important;
+ left: 100% !important;
+ margin: 0em !important;
+ border-radius: 0 0.325em 0.325em 0em !important;
+}
+
+.ui.dropdown .menu .menu:after {
+ display: none;
+}
+
+.ui.dropdown .menu .item {
+ cursor: pointer;
+ border: none;
+ border-top: 1px solid rgba(0, 0, 0, 0.05);
+ height: auto;
+ font-size: 0.875em;
+ display: block;
+ color: rgba(0, 0, 0, 0.75);
+ padding: 0.85em 1em !important;
+ font-size: 0.875rem;
+ text-transform: none;
+ font-weight: normal;
+ text-align: left;
+ -webkit-touch-callout: none;
+}
+
+.ui.dropdown .menu .item:before {
+ display: none;
+}
+
+.ui.dropdown .menu .item .icon {
+ margin-right: 0.75em;
+}
+
+.ui.dropdown .menu .item:first-child {
+ border-top: none;
+}
+
+/*******************************
+ Coupling
+*******************************/
+
+/* Opposite on last menu on right */
+
+.ui.menu .right.menu .dropdown:last-child .menu,
+.ui.buttons > .ui.dropdown:last-child .menu {
+ left: auto;
+ right: 0px;
+}
+
+.ui.vertical.menu .dropdown.item > .dropdown.icon:before {
+ content: "\f0da" /*rtl:"\f0d9"*/;
+}
+
+.ui.dropdown.icon.button > .dropdown.icon {
+ margin: 0em;
+}
+
+/*******************************
+ States
+*******************************/
+
+/* Dropdown Visible */
+
+.ui.visible.dropdown > .menu {
+ display: block;
+}
+
+/*--------------------
+ Hover
+----------------------*/
+
+/* Menu Item Hover */
+
+.ui.dropdown .menu .item:hover {
+ background-color: rgba(0, 0, 0, 0.02);
+ z-index: 12;
+}
+
+/*--------------------
+ Active
+----------------------*/
+
+/* Menu Item Active */
+
+.ui.dropdown .menu .active.item {
+ background-color: rgba(0, 0, 0, 0.06) !important;
+ border-left: none;
+ border-color: transparent !important;
+ -webkit-box-shadow: none;
+ -moz-shadow: none;
+ box-shadow: none;
+ z-index: 12;
+}
+
+/*--------------------
+ Default Text
+----------------------*/
+
+.ui.dropdown > .default.text,
+.ui.default.dropdown > .text {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.dropdown:hover > .default.text,
+.ui.default.dropdown:hover > .text {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--------------------
+ Error
+----------------------*/
+
+.ui.dropdown.error,
+.ui.dropdown.error > .text,
+.ui.dropdown.error > .default.text {
+ color: #D95C5C !important;
+}
+
+.ui.selection.dropdown.error {
+ background-color: #FFFAFA;
+ -webkit-box-shadow: 0px 0px 0px 1px #e7bebe !important;
+ box-shadow: 0px 0px 0px 1px #e7bebe !important;
+}
+
+.ui.selection.dropdown.error:hover {
+ -webkit-box-shadow: 0px 0px 0px 1px #e7bebe !important;
+ box-shadow: 0px 0px 0px 1px #e7bebe !important;
+}
+
+.ui.dropdown.error > .menu,
+.ui.dropdown.error > .menu .menu {
+ -webkit-box-shadow: 0px 0px 1px 1px #E7BEBE !important;
+ box-shadow: 0px 0px 1px 1px #E7BEBE !important;
+}
+
+.ui.dropdown.error > .menu .item {
+ color: #D95C5C !important;
+}
+
+/* Item Hover */
+
+.ui.dropdown.error > .menu .item:hover {
+ background-color: #FFF2F2 !important;
+}
+
+/* Item Active */
+
+.ui.dropdown.error > .menu .active.item {
+ background-color: #FDCFCF !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Simple
+---------------*/
+
+/* Displays without javascript */
+
+.ui.simple.dropdown .menu:before,
+.ui.simple.dropdown .menu:after {
+ display: none;
+}
+
+.ui.simple.dropdown .menu {
+ display: block;
+ overflow: hidden;
+ top: -9999px !important;
+ position: absolute;
+ opacity: 0;
+ width: 0;
+ height: 0;
+ -webkit-transition: opacity 0.2s ease-out;
+ -moz-transition: opacity 0.2s ease-out;
+ transition: opacity 0.2s ease-out;
+}
+
+.ui.simple.active.dropdown,
+.ui.simple.dropdown:hover {
+ border-bottom-left-radius: 0em !important;
+ border-bottom-right-radius: 0em !important;
+}
+
+.ui.simple.active.dropdown > .menu,
+.ui.simple.dropdown:hover > .menu {
+ overflow: visible;
+ width: auto;
+ height: auto;
+ top: 100% !important;
+ opacity: 1;
+}
+
+.ui.simple.dropdown > .menu .item:active > .menu,
+.ui.simple.dropdown:hover > .menu .item:hover > .menu {
+ overflow: visible;
+ width: auto;
+ height: auto;
+ top: 0% !important;
+ left: 100% !important;
+ opacity: 1;
+}
+
+.ui.simple.disabled.dropdown:hover .menu {
+ display: none;
+ height: 0px;
+ width: 0px;
+ overflow: hidden;
+}
+
+/*--------------
+ Selection
+---------------*/
+
+/* Displays like a select box */
+
+.ui.selection.dropdown {
+ cursor: pointer;
+ display: inline-block;
+ word-wrap: break-word;
+ white-space: normal;
+ background-color: #FFFFFF;
+ padding: 0.65em 1em;
+ line-height: 1.33;
+ color: rgba(0, 0, 0, 0.8);
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important;
+ border-radius: 0.3125em !important;
+}
+
+.ui.selection.dropdown select {
+ display: none;
+}
+
+.ui.selection.dropdown > .dropdown.icon {
+ opacity: 0.7;
+ margin: 0.2em 0em 0.2em 1.25em;
+ -webkit-transition: opacity 0.2s ease-out;
+ -moz-transition: opacity 0.2s ease-out;
+ transition: opacity 0.2s ease-out;
+}
+
+.ui.selection.dropdown,
+.ui.selection.dropdown .menu {
+ -webkit-transition: -webkit-box-shadow 0.2s ease-out;
+ -moz-transition: box-shadow 0.2s ease-out;
+ transition: box-shadow 0.2s ease-out;
+}
+
+.ui.selection.dropdown .menu {
+ top: 100%;
+ max-height: 312px;
+ overflow-x: hidden;
+ overflow-y: auto;
+ -webkit-box-shadow: 0px 1px 0px 1px #E0E0E0;
+ box-shadow: 0px 1px 0px 1px #E0E0E0;
+ border-radius: 0px 0px 0.325em 0.325em;
+}
+
+.ui.selection.dropdown .menu:after,
+.ui.selection.dropdown .menu:before {
+ display: none;
+}
+
+.ui.selection.dropdown .menu img {
+ height: 2.5em;
+ display: inline-block;
+ vertical-align: middle;
+ margin-right: 0.5em;
+}
+
+/* Visible */
+
+.ui.visible.selection.dropdown {
+ border-bottom-left-radius: 0em !important;
+ border-bottom-right-radius: 0em !important;
+}
+
+/* Active */
+
+.ui.active.selection.dropdown {
+ border-radius: 0.3125em 0.3125em 0em 0em !important;
+}
+
+.ui.active.selection.dropdown > .dropdown.icon {
+ opacity: 1;
+}
+
+/*--------------
+ Fluid
+---------------*/
+
+.ui.fluid.dropdown {
+ display: block;
+}
+
+.ui.fluid.dropdown > .dropdown.icon {
+ float: right;
+}
+
+/*--------------
+ Inline
+---------------*/
+
+.ui.inline.dropdown {
+ cursor: pointer;
+ display: inline-block;
+ color: inherit;
+}
+
+.ui.inline.dropdown .dropdown.icon {
+ margin: 0em 0.5em 0em 0.25em;
+}
+
+.ui.inline.dropdown .text {
+ font-weight: bold;
+}
+
+.ui.inline.dropdown .menu {
+ cursor: auto;
+ margin-top: 0.25em;
+ border-radius: 0.325em;
+}
+
+/*--------------
+ Floating
+---------------*/
+
+.ui.floating.dropdown .menu {
+ left: 0;
+ right: auto;
+ margin-top: 0.5em !important;
+ border-radius: 0.325em;
+}
+
+/*--------------
+ Pointing
+---------------*/
+
+.ui.pointing.dropdown .menu {
+ top: 100%;
+ margin-top: 0.75em;
+ border-radius: 0.325em;
+}
+
+.ui.pointing.dropdown .menu:after {
+ display: block;
+ position: absolute;
+ pointer-events: none;
+ content: " ";
+ visibility: visible;
+ width: 0.5em;
+ height: 0.5em;
+ -webkit-box-shadow: -1px -1px 0px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: -1px -1px 0px 1px rgba(0, 0, 0, 0.05);
+ background-image: none;
+ background-color: #FFFFFF;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ z-index: 2;
+}
+
+.ui.pointing.dropdown .menu .active.item:first-child {
+ background: transparent -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.03));
+ background: transparent -moz-linear-gradient(transparent, rgba(0, 0, 0, 0.03));
+ background: transparent-webkit-gradient(linear, left top, left bottom, from(transparent), to(rgba(0, 0, 0, 0.03)));
+ background: transparent linear-gradient(transparent, rgba(0, 0, 0, 0.03));
+}
+
+/* Directions */
+
+.ui.pointing.dropdown .menu:after {
+ top: -0.25em;
+ left: 50%;
+ margin: 0em 0em 0em -0.25em;
+}
+
+.ui.top.left.pointing.dropdown .menu {
+ top: 100%;
+ bottom: auto;
+ left: 0%;
+ right: auto;
+ margin: 0.75em 0em 0em;
+}
+
+.ui.top.left.pointing.dropdown .menu:after {
+ top: -0.25em;
+ left: 1.25em;
+ right: auto;
+ margin: 0em;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+}
+
+.ui.top.right.pointing.dropdown .menu {
+ top: 100%;
+ bottom: auto;
+ right: 0%;
+ left: auto;
+ margin: 0.75em 0em 0em;
+}
+
+.ui.top.right.pointing.dropdown .menu:after {
+ top: -0.25em;
+ left: auto;
+ right: 1.25em;
+ margin: 0em;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+}
+
+.ui.left.pointing.dropdown .menu {
+ top: 0%;
+ left: 100%;
+ right: auto;
+ margin: 0em 0em 0em 0.75em;
+}
+
+.ui.left.pointing.dropdown .menu:after {
+ top: 1em;
+ left: -0.25em;
+ margin: 0em 0em 0em 0em;
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+}
+
+.ui.right.pointing.dropdown .menu {
+ top: 0%;
+ left: auto;
+ right: 100%;
+ margin: 0em 0.75em 0em 0em;
+}
+
+.ui.right.pointing.dropdown .menu:after {
+ top: 1em;
+ left: auto;
+ right: -0.25em;
+ margin: 0em 0em 0em 0em;
+ -webkit-transform: rotate(135deg);
+ -moz-transform: rotate(135deg);
+ -ms-transform: rotate(135deg);
+ transform: rotate(135deg);
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/modules/dropdown.js b/css/semantic/build/uncompressed/modules/dropdown.js
new file mode 100644
index 0000000..3577c3b
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/dropdown.js
@@ -0,0 +1,932 @@
+/*
+ * # Semantic - Dropdown
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+;(function ( $, window, document, undefined ) {
+
+$.fn.dropdown = function(parameters) {
+ var
+ $allModules = $(this),
+ $document = $(document),
+
+ moduleSelector = $allModules.selector || '',
+
+ hasTouch = ('ontouchstart' in document.documentElement),
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.dropdown.settings, parameters)
+ : $.extend({}, $.fn.dropdown.settings),
+
+ className = settings.className,
+ metadata = settings.metadata,
+ namespace = settings.namespace,
+ selector = settings.selector,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $item = $module.find(selector.item),
+ $text = $module.find(selector.text),
+ $input = $module.find(selector.input),
+
+ $menu = $module.children(selector.menu),
+
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing dropdown', settings);
+
+ module.save.defaults();
+ module.set.selected();
+
+ if(hasTouch) {
+ module.bind.touchEvents();
+ }
+ module.bind.mouseEvents();
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of dropdown', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous dropdown for', $module);
+ $item
+ .off(eventNamespace)
+ ;
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ bind: {
+ touchEvents: function() {
+ module.debug('Touch device detected binding touch events');
+ $module
+ .on('touchstart' + eventNamespace, module.event.test.toggle)
+ ;
+ $item
+ .on('touchstart' + eventNamespace, module.event.item.mouseenter)
+ .on('touchstart' + eventNamespace, module.event.item.click)
+ ;
+ },
+ mouseEvents: function() {
+ module.verbose('Mouse detected binding mouse events');
+ if(settings.on == 'click') {
+ $module
+ .on('click' + eventNamespace, module.event.test.toggle)
+ ;
+ }
+ else if(settings.on == 'hover') {
+ $module
+ .on('mouseenter' + eventNamespace, module.delay.show)
+ .on('mouseleave' + eventNamespace, module.delay.hide)
+ ;
+ }
+ else {
+ $module
+ .on(settings.on + eventNamespace, module.toggle)
+ ;
+ }
+ $item
+ .on('mouseenter' + eventNamespace, module.event.item.mouseenter)
+ .on('mouseleave' + eventNamespace, module.event.item.mouseleave)
+ .on('click' + eventNamespace, module.event.item.click)
+ ;
+ },
+ intent: function() {
+ module.verbose('Binding hide intent event to document');
+ if(hasTouch) {
+ $document
+ .on('touchstart' + eventNamespace, module.event.test.touch)
+ .on('touchmove' + eventNamespace, module.event.test.touch)
+ ;
+ }
+ $document
+ .on('click' + eventNamespace, module.event.test.hide)
+ ;
+ }
+ },
+
+ unbind: {
+ intent: function() {
+ module.verbose('Removing hide intent event from document');
+ if(hasTouch) {
+ $document
+ .off('touchstart' + eventNamespace)
+ .off('touchmove' + eventNamespace)
+ ;
+ }
+ $document
+ .off('click' + eventNamespace)
+ ;
+ }
+ },
+
+ event: {
+ test: {
+ toggle: function(event) {
+ if( module.determine.intent(event, module.toggle) ) {
+ event.preventDefault();
+ }
+ },
+ touch: function(event) {
+ module.determine.intent(event, function() {
+ if(event.type == 'touchstart') {
+ module.timer = setTimeout(module.hide, settings.delay.touch);
+ }
+ else if(event.type == 'touchmove') {
+ clearTimeout(module.timer);
+ }
+ });
+ event.stopPropagation();
+ },
+ hide: function(event) {
+ module.determine.intent(event, module.hide);
+ }
+ },
+
+ item: {
+
+ mouseenter: function(event) {
+ var
+ $currentMenu = $(this).find(selector.submenu),
+ $otherMenus = $(this).siblings(selector.item).children(selector.menu)
+ ;
+ if($currentMenu.length > 0 || $otherMenus.length > 0) {
+ clearTimeout(module.itemTimer);
+ module.itemTimer = setTimeout(function() {
+ if($otherMenus.length > 0) {
+ module.animate.hide(false, $otherMenus.filter(':visible'));
+ }
+ if($currentMenu.length > 0) {
+ module.verbose('Showing sub-menu', $currentMenu);
+ module.animate.show(false, $currentMenu);
+ }
+ }, settings.delay.show * 2);
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ },
+
+ mouseleave: function(event) {
+ var
+ $currentMenu = $(this).find(selector.menu)
+ ;
+ if($currentMenu.size() > 0) {
+ clearTimeout(module.itemTimer);
+ module.itemTimer = setTimeout(function() {
+ module.verbose('Hiding sub-menu', $currentMenu);
+ module.animate.hide(false, $currentMenu);
+ }, settings.delay.hide);
+ }
+ },
+
+ click: function (event) {
+ var
+ $choice = $(this),
+ text = ( $choice.data(metadata.text) !== undefined )
+ ? $choice.data(metadata.text)
+ : $choice.text(),
+ value = ( $choice.data(metadata.value) !== undefined)
+ ? $choice.data(metadata.value)
+ : (typeof text === 'string')
+ ? text.toLowerCase()
+ : text,
+ callback = function() {
+ module.determine.selectAction(text, value);
+ $.proxy(settings.onChange, element)(value, text);
+ }
+ ;
+ if( $choice.find(selector.menu).size() === 0 ) {
+ if(event.type == 'touchstart') {
+ $choice.one('click', callback);
+ }
+ else {
+ callback();
+ }
+ }
+ }
+
+ },
+
+ resetStyle: function() {
+ $(this).removeAttr('style');
+ }
+
+ },
+
+ determine: {
+ selectAction: function(text, value) {
+ module.verbose('Determining action', settings.action);
+ if( $.isFunction( module.action[settings.action] ) ) {
+ module.verbose('Triggering preset action', settings.action, text, value);
+ module.action[ settings.action ](text, value);
+ }
+ else if( $.isFunction(settings.action) ) {
+ module.verbose('Triggering user action', settings.action, text, value);
+ settings.action(text, value);
+ }
+ else {
+ module.error(error.action, settings.action);
+ }
+ },
+ intent: function(event, callback) {
+ module.debug('Determining whether event occurred in dropdown', event.target);
+ callback = callback || function(){};
+ if( $(event.target).closest($menu).size() === 0 ) {
+ module.verbose('Triggering event', callback);
+ callback();
+ return true;
+ }
+ else {
+ module.verbose('Event occurred in dropdown, canceling callback');
+ return false;
+ }
+ }
+ },
+
+ action: {
+
+ nothing: function() {},
+
+ hide: function() {
+ module.hide();
+ },
+
+ activate: function(text, value) {
+ value = (value !== undefined)
+ ? value
+ : text
+ ;
+ module.set.selected(value);
+ module.set.value(value);
+ module.hide();
+ },
+
+ /* Deprecated */
+ auto: function(text, value) {
+ value = (value !== undefined)
+ ? value
+ : text
+ ;
+ module.set.selected(value);
+ module.set.value(value);
+ module.hide();
+ },
+
+ /* Deprecated */
+ changeText: function(text, value) {
+ value = (value !== undefined)
+ ? value
+ : text
+ ;
+ module.set.selected(value);
+ module.hide();
+ },
+
+ /* Deprecated */
+ updateForm: function(text, value) {
+ value = (value !== undefined)
+ ? value
+ : text
+ ;
+ module.set.selected(value);
+ module.set.value(value);
+ module.hide();
+ }
+
+ },
+
+ get: {
+ text: function() {
+ return $text.text();
+ },
+ value: function() {
+ return ($input.size() > 0)
+ ? $input.val()
+ : $module.data(metadata.value)
+ ;
+ },
+ item: function(value, strict) {
+ var
+ $selectedItem = false
+ ;
+ value = (value !== undefined)
+ ? value
+ : ( module.get.value() !== undefined)
+ ? module.get.value()
+ : module.get.text()
+ ;
+ if(strict === undefined && value === '') {
+ module.debug('Ambiguous dropdown value using strict type check', value);
+ strict = true;
+ }
+ else {
+ strict = strict || false;
+ }
+ if(value !== undefined) {
+ $item
+ .each(function() {
+ var
+ $choice = $(this),
+ optionText = ( $choice.data(metadata.text) !== undefined )
+ ? $choice.data(metadata.text)
+ : $choice.text(),
+ optionValue = ( $choice.data(metadata.value) !== undefined )
+ ? $choice.data(metadata.value)
+ : (typeof optionText === 'string')
+ ? optionText.toLowerCase()
+ : optionText
+ ;
+ if(strict) {
+ if( optionValue === value ) {
+ $selectedItem = $(this);
+ }
+ else if( !$selectedItem && optionText === value ) {
+ $selectedItem = $(this);
+ }
+ }
+ else {
+ if( optionValue == value ) {
+ $selectedItem = $(this);
+ }
+ else if( !$selectedItem && optionText == value ) {
+ $selectedItem = $(this);
+ }
+ }
+ })
+ ;
+ }
+ else {
+ value = module.get.text();
+ }
+ return $selectedItem || false;
+ }
+ },
+
+ restore: {
+ defaults: function() {
+ module.restore.defaultText();
+ module.restore.defaultValue();
+ },
+ defaultText: function() {
+ var
+ defaultText = $module.data(metadata.defaultText)
+ ;
+ module.debug('Restoring default text', defaultText);
+ module.set.text(defaultText);
+ },
+ defaultValue: function() {
+ var
+ defaultValue = $module.data(metadata.defaultValue)
+ ;
+ if(defaultValue !== undefined) {
+ module.debug('Restoring default value', defaultValue);
+ module.set.selected(defaultValue);
+ module.set.value(defaultValue);
+ }
+ }
+ },
+
+ save: {
+ defaults: function() {
+ module.save.defaultText();
+ module.save.defaultValue();
+ },
+ defaultValue: function() {
+ $module.data(metadata.defaultValue, module.get.value() );
+ },
+ defaultText: function() {
+ $module.data(metadata.defaultText, $text.text() );
+ }
+ },
+
+ set: {
+ text: function(text) {
+ module.debug('Changing text', text, $text);
+ $text.removeClass(className.placeholder);
+ $text.text(text);
+ },
+ value: function(value) {
+ module.debug('Adding selected value to hidden input', value, $input);
+ if($input.size() > 0) {
+ $input
+ .val(value)
+ .trigger('change')
+ ;
+ }
+ else {
+ $module.data(metadata.value, value);
+ }
+ },
+ active: function() {
+ $module.addClass(className.active);
+ },
+ visible: function() {
+ $module.addClass(className.visible);
+ },
+ selected: function(value) {
+ var
+ $selectedItem = module.get.item(value),
+ selectedText
+ ;
+ if($selectedItem) {
+ module.debug('Setting selected menu item to', $selectedItem);
+ selectedText = ($selectedItem.data(metadata.text) !== undefined)
+ ? $selectedItem.data(metadata.text)
+ : $selectedItem.text()
+ ;
+ $item
+ .removeClass(className.active)
+ ;
+ $selectedItem
+ .addClass(className.active)
+ ;
+ module.set.text(selectedText);
+ }
+ }
+ },
+
+ remove: {
+ active: function() {
+ $module.removeClass(className.active);
+ },
+ visible: function() {
+ $module.removeClass(className.visible);
+ }
+ },
+
+ is: {
+ selection: function() {
+ return $module.hasClass(className.selection);
+ },
+ animated: function($subMenu) {
+ return ($subMenu)
+ ? $subMenu.is(':animated') || $subMenu.transition('is animating')
+ : $menu.is(':animated') || $menu.transition('is animating')
+ ;
+ },
+ visible: function($subMenu) {
+ return ($subMenu)
+ ? $subMenu.is(':visible')
+ : $menu.is(':visible')
+ ;
+ },
+ hidden: function($subMenu) {
+ return ($subMenu)
+ ? $subMenu.is(':not(:visible)')
+ : $menu.is(':not(:visible)')
+ ;
+ }
+ },
+
+ can: {
+ click: function() {
+ return (hasTouch || settings.on == 'click');
+ },
+ show: function() {
+ return !$module.hasClass(className.disabled);
+ }
+ },
+
+ animate: {
+ show: function(callback, $subMenu) {
+ var
+ $currentMenu = $subMenu || $menu
+ ;
+ callback = callback || function(){};
+ if( module.is.hidden($currentMenu) ) {
+ module.verbose('Doing menu show animation', $currentMenu);
+ if(settings.transition == 'none') {
+ callback();
+ }
+ else if($.fn.transition !== undefined && $module.transition('is supported')) {
+ $currentMenu
+ .transition({
+ animation : settings.transition + ' in',
+ duration : settings.duration,
+ complete : callback,
+ queue : false
+ })
+ ;
+ }
+ else if(settings.transition == 'slide down') {
+ $currentMenu
+ .hide()
+ .clearQueue()
+ .children()
+ .clearQueue()
+ .css('opacity', 0)
+ .delay(50)
+ .animate({
+ opacity : 1
+ }, settings.duration, 'easeOutQuad', module.event.resetStyle)
+ .end()
+ .slideDown(100, 'easeOutQuad', function() {
+ $.proxy(module.event.resetStyle, this)();
+ callback();
+ })
+ ;
+ }
+ else if(settings.transition == 'fade') {
+ $currentMenu
+ .hide()
+ .clearQueue()
+ .fadeIn(settings.duration, function() {
+ $.proxy(module.event.resetStyle, this)();
+ callback();
+ })
+ ;
+ }
+ else {
+ module.error(error.transition, settings.transition);
+ }
+ }
+ },
+ hide: function(callback, $subMenu) {
+ var
+ $currentMenu = $subMenu || $menu
+ ;
+ callback = callback || function(){};
+ if(module.is.visible($currentMenu) ) {
+ module.verbose('Doing menu hide animation', $currentMenu);
+ if($.fn.transition !== undefined && $module.transition('is supported')) {
+ $currentMenu
+ .transition({
+ animation : settings.transition + ' out',
+ duration : settings.duration,
+ complete : callback,
+ queue : false
+ })
+ ;
+ }
+ else if(settings.transition == 'none') {
+ callback();
+ }
+ else if(settings.transition == 'slide down') {
+ $currentMenu
+ .show()
+ .clearQueue()
+ .children()
+ .clearQueue()
+ .css('opacity', 1)
+ .animate({
+ opacity : 0
+ }, 100, 'easeOutQuad', module.event.resetStyle)
+ .end()
+ .delay(50)
+ .slideUp(100, 'easeOutQuad', function() {
+ $.proxy(module.event.resetStyle, this)();
+ callback();
+ })
+ ;
+ }
+ else if(settings.transition == 'fade') {
+ $currentMenu
+ .show()
+ .clearQueue()
+ .fadeOut(150, function() {
+ $.proxy(module.event.resetStyle, this)();
+ callback();
+ })
+ ;
+ }
+ else {
+ module.error(error.transition);
+ }
+ }
+ }
+ },
+
+ show: function() {
+ module.debug('Checking if dropdown can show');
+ if( module.is.hidden() ) {
+ module.hideOthers();
+ module.set.active();
+ module.animate.show(function() {
+ if( module.can.click() ) {
+ module.bind.intent();
+ }
+ module.set.visible();
+ });
+ $.proxy(settings.onShow, element)();
+ }
+ },
+
+ hide: function() {
+ if( !module.is.animated() && module.is.visible() ) {
+ module.debug('Hiding dropdown');
+ if( module.can.click() ) {
+ module.unbind.intent();
+ }
+ module.remove.active();
+ module.animate.hide(module.remove.visible);
+ $.proxy(settings.onHide, element)();
+ }
+ },
+
+ delay: {
+ show: function() {
+ module.verbose('Delaying show event to ensure user intent');
+ clearTimeout(module.timer);
+ module.timer = setTimeout(module.show, settings.delay.show);
+ },
+ hide: function() {
+ module.verbose('Delaying hide event to ensure user intent');
+ clearTimeout(module.timer);
+ module.timer = setTimeout(module.hide, settings.delay.hide);
+ }
+ },
+
+ hideOthers: function() {
+ module.verbose('Finding other dropdowns to hide');
+ $allModules
+ .not($module)
+ .has(selector.menu + ':visible')
+ .dropdown('hide')
+ ;
+ },
+
+ toggle: function() {
+ module.verbose('Toggling menu visibility');
+ if( module.is.hidden() ) {
+ module.show();
+ }
+ else {
+ module.hide();
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ module.error(error.method, query);
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.dropdown.settings = {
+
+ name : 'Dropdown',
+ namespace : 'dropdown',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ on : 'click',
+ action : 'activate',
+
+ delay: {
+ show : 200,
+ hide : 300,
+ touch : 50
+ },
+
+ transition : 'slide down',
+ duration : 250,
+
+ onChange : function(value, text){},
+ onShow : function(){},
+ onHide : function(){},
+
+ error : {
+ action : 'You called a dropdown action that was not defined',
+ method : 'The method you called is not defined.',
+ transition : 'The requested transition was not found'
+ },
+
+ metadata: {
+ defaultText : 'defaultText',
+ defaultValue : 'defaultValue',
+ text : 'text',
+ value : 'value'
+ },
+
+ selector : {
+ menu : '.menu',
+ submenu : '> .menu',
+ item : '.menu > .item',
+ text : '> .text',
+ input : '> input[type="hidden"]'
+ },
+
+ className : {
+ active : 'active',
+ placeholder : 'default',
+ disabled : 'disabled',
+ visible : 'visible',
+ selection : 'selection'
+ }
+
+};
+
+// Adds easing
+$.extend( $.easing, {
+ easeOutQuad: function (x, t, b, c, d) {
+ return -c *(t/=d)*(t-2) + b;
+ },
+});
+
+
+})( jQuery, window , document );
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/modules/modal.css b/css/semantic/build/uncompressed/modules/modal.css
new file mode 100644
index 0000000..11a6bfb
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/modal.css
@@ -0,0 +1,308 @@
+/*
+ * # Semantic - Modal
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Modal
+*******************************/
+
+.ui.modal {
+ display: none;
+ position: fixed;
+ z-index: 1001;
+ top: 50%;
+ left: 50%;
+ text-align: left;
+ width: 90%;
+ margin-left: -45%;
+ background-color: #FFFFFF;
+ border: 1px solid #DDDDDD;
+ border-radius: 5px;
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+}
+
+/*******************************
+ Content
+*******************************/
+
+/*--------------
+ Close
+---------------*/
+
+.ui.modal > .close {
+ cursor: pointer;
+ position: absolute;
+ z-index: 1;
+ opacity: 0.8;
+ font-size: 1.25em;
+ top: -1.75em;
+ right: -1.75em;
+ color: #FFFFFF;
+}
+
+.ui.modal > .close:hover {
+ opacity: 1;
+}
+
+/*--------------
+ Header
+---------------*/
+
+.ui.modal > .header {
+ margin: 0em;
+ padding: 1.5rem 2rem;
+ font-size: 1.6em;
+ font-weight: bold;
+ border-radius: 0.325em 0.325em 0px 0px;
+}
+
+/*--------------
+ Content
+---------------*/
+
+.ui.modal > .content {
+ display: table;
+ width: 100%;
+ position: relative;
+ padding: 2em;
+ background-color: #F4F4F4;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.modal > .content > .left:not(.ui) {
+ display: table-cell;
+ padding-right: 1.5%;
+ min-width: 25%;
+}
+
+.ui.modal > .content > .right:not(.ui) {
+ display: table-cell;
+ padding-left: 1.5%;
+ vertical-align: top;
+}
+
+/*rtl:ignore*/
+
+.ui.modal > .content > .left:not(.ui) > i.icon {
+ font-size: 8em;
+ margin: 0em;
+}
+
+.ui.modal > .content p {
+ line-height: 1.6;
+}
+
+/*--------------
+ Actions
+---------------*/
+
+.ui.modal .actions {
+ padding: 1rem 2rem;
+ text-align: right;
+}
+
+.ui.modal .actions > .button {
+ margin-left: 0.75em;
+}
+
+/*-------------------
+ Sizing
+--------------------*/
+
+/* Mobile Only */
+
+@media only screen and (max-width: 768px) {
+ /*rtl:ignore*/
+
+ .ui.modal .content > .left:not(.ui) {
+ display: block;
+ padding: 0em 0em 1em;
+ }
+
+ /*rtl:ignore*/
+
+ .ui.modal .content > .right:not(.ui) {
+ display: block;
+ padding: 1em 0em 0em;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+
+ .ui.modal .content .image {
+ width: auto !important;
+ max-width: 100%;
+ }
+
+ .ui.modal .actions {
+ padding-bottom: 0em;
+ }
+
+ .ui.modal .actions > .buttons,
+ .ui.modal .actions > .button {
+ margin-bottom: 1em;
+ }
+}
+
+/* Tablet and Mobile */
+
+@media only screen and (max-width: 998px) {
+ .ui.modal {
+ width: 92%;
+ margin-left: -46%;
+ }
+
+ .ui.modal > .close {
+ color: rgba(0, 0, 0, 0.8);
+ top: 1.5rem;
+ right: 1rem;
+ }
+}
+
+/* Computer / Responsive */
+
+@media only screen and (min-width: 998px) {
+ .ui.modal {
+ width: 74%;
+ margin-left: -37%;
+ }
+}
+
+@media only screen and (min-width: 1500px) {
+ .ui.modal {
+ width: 56%;
+ margin-left: -28%;
+ }
+}
+
+@media only screen and (min-width: 1750px) {
+ .ui.modal {
+ width: 42%;
+ margin-left: -21%;
+ }
+}
+
+@media only screen and (min-width: 2000px) {
+ .ui.modal {
+ width: 36%;
+ margin-left: -18%;
+ }
+}
+
+/*******************************
+ Types
+*******************************/
+
+.ui.basic.modal {
+ background-color: transparent;
+ border: none;
+ color: #FFFFFF;
+}
+
+.ui.basic.modal > .close {
+ top: 1.5rem;
+ right: 1rem;
+}
+
+.ui.basic.modal .content {
+ background-color: transparent;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/* A modal that cannot fit on the page */
+
+.ui.modal.scrolling {
+ position: absolute;
+ margin-top: 10px;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.active.modal {
+ display: block;
+}
+
+/*--------------
+ Size
+---------------*/
+
+/* Small */
+
+.ui.small.modal > .header {
+ font-size: 1.3em;
+}
+
+@media only screen and (min-width: 998px) {
+ .ui.small.modal {
+ width: 58%;
+ margin-left: -29%;
+ }
+}
+
+@media only screen and (min-width: 1500px) {
+ .ui.small.modal {
+ width: 40%;
+ margin-left: -20%;
+ }
+}
+
+@media only screen and (min-width: 1750px) {
+ .ui.small.modal {
+ width: 26%;
+ margin-left: -13%;
+ }
+}
+
+@media only screen and (min-width: 2000px) {
+ .ui.small.modal {
+ width: 20%;
+ margin-left: -10%;
+ }
+}
+
+/* Large */
+
+@media only screen and (min-width: 998px) {
+ .ui.large.modal {
+ width: 74%;
+ margin-left: -37%;
+ }
+}
+
+@media only screen and (min-width: 1500px) {
+ .ui.large.modal {
+ width: 64%;
+ margin-left: -32%;
+ }
+}
+
+@media only screen and (min-width: 1750px) {
+ .ui.large.modal {
+ width: 54%;
+ margin-left: -27%;
+ }
+}
+
+@media only screen and (min-width: 2000px) {
+ .ui.large.modal {
+ width: 44%;
+ margin-left: -22%;
+ }
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/modules/modal.js b/css/semantic/build/uncompressed/modules/modal.js
new file mode 100644
index 0000000..e778d0c
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/modal.js
@@ -0,0 +1,743 @@
+/*
+ * # Semantic - Modal
+ * http://github.com/semantic-org/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.modal = function(parameters) {
+ var
+ $allModules = $(this),
+ $window = $(window),
+ $document = $(document),
+ $body = $('body'),
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ requestAnimationFrame = window.requestAnimationFrame
+ || window.mozRequestAnimationFrame
+ || window.webkitRequestAnimationFrame
+ || window.msRequestAnimationFrame
+ || function(callback) { setTimeout(callback, 0); },
+
+ returnedValue
+ ;
+
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.modal.settings, parameters)
+ : $.extend({}, $.fn.modal.settings),
+
+ selector = settings.selector,
+ className = settings.className,
+ namespace = settings.namespace,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+ moduleSelector = $allModules.selector || '',
+
+ $module = $(this),
+ $context = $(settings.context),
+ $close = $module.find(selector.close),
+
+ $allModals,
+ $otherModals,
+ $focusedElement,
+ $dimmable,
+ $dimmer,
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing dimmer', $context);
+
+ if($.fn.dimmer === undefined) {
+ module.error(error.dimmer);
+ return;
+ }
+ $dimmable = $context
+ .dimmer({
+ closable : false,
+ useCSS : true,
+ duration : {
+ show : settings.duration * 0.9,
+ hide : settings.duration * 1.1
+ }
+ })
+ ;
+
+ if(settings.detachable) {
+ $dimmable.dimmer('add content', $module);
+ }
+
+ $dimmer = $dimmable
+ .dimmer('get dimmer')
+ ;
+
+ $otherModals = $module.siblings(selector.modal);
+ $allModals = $otherModals.add($module);
+
+ module.verbose('Attaching close events', $close);
+ $close
+ .on('click' + eventNamespace, module.event.close)
+ ;
+ $window
+ .on('resize' + eventNamespace, module.event.resize)
+ ;
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of modal');
+ instance = module;
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous modal');
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ $close
+ .off(eventNamespace)
+ ;
+ $context
+ .dimmer('destroy')
+ ;
+ },
+
+ refresh: function() {
+ module.remove.scrolling();
+ module.cacheSizes();
+ module.set.screenHeight();
+ module.set.type();
+ module.set.position();
+ },
+
+ attachEvents: function(selector, event) {
+ var
+ $toggle = $(selector)
+ ;
+ event = $.isFunction(module[event])
+ ? module[event]
+ : module.toggle
+ ;
+ if($toggle.size() > 0) {
+ module.debug('Attaching modal events to element', selector, event);
+ $toggle
+ .off(eventNamespace)
+ .on('click' + eventNamespace, event)
+ ;
+ }
+ else {
+ module.error(error.notFound);
+ }
+ },
+
+ event: {
+ close: function() {
+ module.verbose('Closing element pressed');
+ if( $(this).is(selector.approve) ) {
+ if($.proxy(settings.onApprove, element)() !== false) {
+ module.hide();
+ }
+ else {
+ module.verbose('Approve callback returned false cancelling hide');
+ }
+ }
+ else if( $(this).is(selector.deny) ) {
+ if($.proxy(settings.onDeny, element)() !== false) {
+ module.hide();
+ }
+ else {
+ module.verbose('Deny callback returned false cancelling hide');
+ }
+ }
+ else {
+ module.hide();
+ }
+ },
+ click: function(event) {
+ if( $(event.target).closest(selector.modal).size() === 0 ) {
+ module.debug('Dimmer clicked, hiding all modals');
+ if(settings.allowMultiple) {
+ module.hide();
+ }
+ else {
+ module.hideAll();
+ }
+ event.stopImmediatePropagation();
+ }
+ },
+ debounce: function(method, delay) {
+ clearTimeout(module.timer);
+ module.timer = setTimeout(method, delay);
+ },
+ keyboard: function(event) {
+ var
+ keyCode = event.which,
+ escapeKey = 27
+ ;
+ if(keyCode == escapeKey) {
+ if(settings.closable) {
+ module.debug('Escape key pressed hiding modal');
+ module.hide();
+ }
+ else {
+ module.debug('Escape key pressed, but closable is set to false');
+ }
+ event.preventDefault();
+ }
+ },
+ resize: function() {
+ if( $dimmable.dimmer('is active') ) {
+ requestAnimationFrame(module.refresh);
+ }
+ }
+ },
+
+ toggle: function() {
+ if( module.is.active() ) {
+ module.hide();
+ }
+ else {
+ module.show();
+ }
+ },
+
+ show: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.showDimmer();
+ module.showModal(callback);
+ },
+
+ showModal: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( !module.is.active() ) {
+ module.cacheSizes();
+ module.set.position();
+ module.set.screenHeight();
+ module.set.type();
+
+ if( $otherModals.filter(':visible').size() > 0 && !settings.allowMultiple) {
+ module.debug('Other modals visible, queueing show animation');
+ module.hideOthers(module.showModal);
+ }
+ else {
+ $.proxy(settings.onShow, element)();
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ module.debug('Showing modal with css animations');
+ $module
+ .transition(settings.transition + ' in', settings.duration, function() {
+ $.proxy(settings.onVisible, element)();
+ module.set.active();
+ callback();
+ })
+ ;
+ }
+ else {
+ module.debug('Showing modal with javascript');
+ $module
+ .fadeIn(settings.duration, settings.easing, function() {
+ $.proxy(settings.onVisible, element)();
+ module.set.active();
+ callback();
+ })
+ ;
+ }
+ }
+ }
+ else {
+ module.debug('Modal is already visible');
+ }
+ },
+
+ showDimmer: function() {
+ if( !$dimmable.dimmer('is active') ) {
+ module.debug('Showing dimmer');
+ $dimmable.dimmer('show');
+ }
+ else {
+ module.debug('Dimmer already visible');
+ }
+ },
+
+ hide: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if($allModals.filter(':visible').size() <= 1) {
+ module.hideDimmer();
+ }
+ module.hideModal(callback);
+ },
+
+ hideDimmer: function() {
+ if( !module.is.active() ) {
+ module.debug('Dimmer is not visible cannot hide');
+ return;
+ }
+ module.debug('Hiding dimmer');
+ if(settings.closable) {
+ $dimmer
+ .off('click' + eventNamespace)
+ ;
+ }
+ $dimmable.dimmer('hide', function() {
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $module
+ .transition('reset')
+ ;
+ module.remove.screenHeight();
+ }
+ module.remove.active();
+ });
+ },
+
+ hideModal: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( !module.is.active() ) {
+ module.debug('Cannot hide modal it is not active');
+ return;
+ }
+ module.debug('Hiding modal');
+ module.remove.keyboardShortcuts();
+ $.proxy(settings.onHide, element)();
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $module
+ .transition(settings.transition + ' out', settings.duration, function() {
+ $.proxy(settings.onHidden, element)();
+ module.remove.active();
+ module.restore.focus();
+ callback();
+ })
+ ;
+ }
+ else {
+ $module
+ .fadeOut(settings.duration, settings.easing, function() {
+ $.proxy(settings.onHidden, element)();
+ module.remove.active();
+ module.restore.focus();
+ callback();
+ })
+ ;
+ }
+ },
+
+ hideAll: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( $allModals.is(':visible') ) {
+ module.debug('Hiding all visible modals');
+ module.hideDimmer();
+ $allModals
+ .filter(':visible')
+ .modal('hide modal', callback)
+ ;
+ }
+ },
+
+ hideOthers: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( $otherModals.is(':visible') ) {
+ module.debug('Hiding other modals');
+ $otherModals
+ .filter(':visible')
+ .modal('hide modal', callback)
+ ;
+ }
+ },
+
+ add: {
+ keyboardShortcuts: function() {
+ module.verbose('Adding keyboard shortcuts');
+ $document
+ .on('keyup' + eventNamespace, module.event.keyboard)
+ ;
+ }
+ },
+
+ save: {
+ focus: function() {
+ $focusedElement = $(document.activeElement).blur();
+ }
+ },
+
+ restore: {
+ focus: function() {
+ if($focusedElement && $focusedElement.size() > 0) {
+ $focusedElement.focus();
+ }
+ }
+ },
+
+ remove: {
+ active: function() {
+ $module.removeClass(className.active);
+ },
+ screenHeight: function() {
+ if(module.cache.height > module.cache.pageHeight) {
+ module.debug('Removing page height');
+ $body
+ .css('height', '')
+ ;
+ }
+ },
+ keyboardShortcuts: function() {
+ module.verbose('Removing keyboard shortcuts');
+ $document
+ .off('keyup' + eventNamespace)
+ ;
+ },
+ scrolling: function() {
+ $dimmable.removeClass(className.scrolling);
+ $module.removeClass(className.scrolling);
+ }
+ },
+
+ cacheSizes: function() {
+ module.cache = {
+ pageHeight : $body.outerHeight(),
+ height : $module.outerHeight() + settings.offset,
+ contextHeight : (settings.context == 'body')
+ ? $(window).height()
+ : $dimmable.height()
+ };
+ module.debug('Caching modal and container sizes', module.cache);
+ },
+
+ can: {
+ fit: function() {
+ return (module.cache.height < module.cache.contextHeight);
+ }
+ },
+
+ is: {
+ active: function() {
+ return $module.hasClass(className.active);
+ },
+ modernBrowser: function() {
+ // appName for IE11 reports 'Netscape' can no longer use
+ return !(window.ActiveXObject || "ActiveXObject" in window);
+ }
+ },
+
+ set: {
+ screenHeight: function() {
+ if(module.cache.height > module.cache.pageHeight) {
+ module.debug('Modal is taller than page content, resizing page height');
+ $body
+ .css('height', module.cache.height + settings.padding)
+ ;
+ }
+ },
+ active: function() {
+ module.add.keyboardShortcuts();
+ module.save.focus();
+ $module
+ .addClass(className.active)
+ ;
+ if(settings.closable) {
+ $dimmer
+ .off('click' + eventNamespace)
+ .on('click' + eventNamespace, module.event.click)
+ ;
+ }
+ },
+ scrolling: function() {
+ $dimmable.addClass(className.scrolling);
+ $module.addClass(className.scrolling);
+ },
+ type: function() {
+ if(module.can.fit()) {
+ module.verbose('Modal fits on screen');
+ module.remove.scrolling();
+ }
+ else {
+ module.verbose('Modal cannot fit on screen setting to scrolling');
+ module.set.scrolling();
+ }
+ },
+ position: function() {
+ module.verbose('Centering modal on page', module.cache);
+ if(module.can.fit()) {
+ $module
+ .css({
+ top: '',
+ marginTop: -(module.cache.height / 2)
+ })
+ ;
+ }
+ else {
+ $module
+ .css({
+ marginTop : '1em',
+ top : $document.scrollTop()
+ })
+ ;
+ }
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.modal.settings = {
+
+ name : 'Modal',
+ namespace : 'modal',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ allowMultiple : true,
+ detachable : true,
+ closable : true,
+ context : 'body',
+
+ duration : 500,
+ easing : 'easeOutExpo',
+ offset : 0,
+ transition : 'scale',
+
+ padding : 30,
+
+ onShow : function(){},
+ onHide : function(){},
+
+ onVisible : function(){},
+ onHidden : function(){},
+
+ onApprove : function(){ return true; },
+ onDeny : function(){ return true; },
+
+ selector : {
+ close : '.close, .actions .button',
+ approve : '.actions .positive, .actions .approve, .actions .ok',
+ deny : '.actions .negative, .actions .deny, .actions .cancel',
+ modal : '.ui.modal'
+ },
+ error : {
+ dimmer : 'UI Dimmer, a required component is not included in this page',
+ method : 'The method you called is not defined.'
+ },
+ className : {
+ active : 'active',
+ scrolling : 'scrolling'
+ }
+};
+
+
+})( jQuery, window , document );
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/modules/nag.css b/css/semantic/build/uncompressed/modules/nag.css
new file mode 100644
index 0000000..fafccb5
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/nag.css
@@ -0,0 +1,140 @@
+/*
+ * # Semantic - Nag
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Nag
+*******************************/
+
+.ui.nag {
+ display: none;
+ opacity: 0.95;
+ position: relative;
+ top: 0px;
+ left: 0%;
+ z-index: 101;
+ min-height: 0;
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 0em;
+ line-height: 3em;
+ padding: 0em 1em;
+ background-color: #555555;
+ -webkit-box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2);
+ box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2);
+ font-size: 1em;
+ text-align: center;
+ color: rgba(255, 255, 255, 0.8);
+ border-radius: 0px 0px 5px 5px;
+ -webkit-transition: 0.2s background;
+ -moz-transition: 0.2s background;
+ transition: 0.2s background;
+}
+
+a.ui.nag {
+ cursor: pointer;
+}
+
+.ui.nag > .title {
+ display: inline-block;
+ margin: 0em 0.5em;
+ color: #FFFFFF;
+}
+
+.ui.nag > .close.icon {
+ cursor: pointer;
+ opacity: 0.4;
+ position: absolute;
+ top: 50%;
+ right: 1em;
+ margin-top: -0.5em;
+ color: #FFFFFF;
+ -webkit-transition: 0.1s opacity;
+ -moz-transition: 0.1s opacity;
+ transition: 0.1s opacity;
+}
+
+/*******************************
+ States
+*******************************/
+
+/* Hover */
+
+.ui.nag:hover {
+ opacity: 1;
+}
+
+.ui.nag .close:hover {
+ opacity: 1;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Static
+---------------*/
+
+.ui.overlay.nag {
+ position: absolute;
+ display: block;
+}
+
+/*--------------
+ Fixed
+---------------*/
+
+.ui.fixed.nag {
+ position: fixed;
+}
+
+/*--------------
+ Bottom
+---------------*/
+
+.ui.bottom.nag {
+ border-radius: 5px 5px 0px 0px;
+}
+
+.ui.fixed.bottom.nags,
+.ui.fixed.bottom.nag {
+ top: auto;
+ bottom: 0px;
+}
+
+/*--------------
+ White
+---------------*/
+
+.ui.white.nags .nag,
+.ui.white.nag {
+ background-color: #F1F1F1;
+ text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.8);
+ color: #ACACAC;
+}
+
+.ui.white.nags .nag .close,
+.ui.white.nags .nag .title,
+.ui.white.nag .close,
+.ui.white.nag .title {
+ color: #333333;
+}
+
+/*******************************
+ Groups
+*******************************/
+
+.ui.nags .nag {
+ border-radius: 0px;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/modules/nag.js b/css/semantic/build/uncompressed/modules/nag.js
new file mode 100644
index 0000000..18c88b9
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/nag.js
@@ -0,0 +1,543 @@
+/*
+ * # Semantic - Nag
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.nag = function(parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $(this)
+ .each(function() {
+ var
+ settings = $.extend(true, {}, $.fn.nag.settings, parameters),
+
+ className = settings.className,
+ selector = settings.selector,
+ error = settings.error,
+ namespace = settings.namespace,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = namespace + '-module',
+
+ $module = $(this),
+
+ $close = $module.find(selector.close),
+ $context = $(settings.context),
+
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+
+ moduleOffset,
+ moduleHeight,
+
+ contextWidth,
+ contextHeight,
+ contextOffset,
+
+ yOffset,
+ yPosition,
+
+ timer,
+ module,
+
+ requestAnimationFrame = window.requestAnimationFrame
+ || window.mozRequestAnimationFrame
+ || window.webkitRequestAnimationFrame
+ || window.msRequestAnimationFrame
+ || function(callback) { setTimeout(callback, 0); }
+ ;
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing element');
+ // calculate module offset once
+ moduleOffset = $module.offset();
+ moduleHeight = $module.outerHeight();
+ contextWidth = $context.outerWidth();
+ contextHeight = $context.outerHeight();
+ contextOffset = $context.offset();
+
+ $module
+ .data(moduleNamespace, module)
+ ;
+ $close
+ .on('click' + eventNamespace, module.dismiss)
+ ;
+ // lets avoid javascript if we dont need to reposition
+ if(settings.context == window && settings.position == 'fixed') {
+ $module
+ .addClass(className.fixed)
+ ;
+ }
+ if(settings.sticky) {
+ module.verbose('Adding scroll events');
+ // retrigger on scroll for absolute
+ if(settings.position == 'absolute') {
+ $context
+ .on('scroll' + eventNamespace, module.event.scroll)
+ .on('resize' + eventNamespace, module.event.scroll)
+ ;
+ }
+ // fixed is always relative to window
+ else {
+ $(window)
+ .on('scroll' + eventNamespace, module.event.scroll)
+ .on('resize' + eventNamespace, module.event.scroll)
+ ;
+ }
+ // fire once to position on init
+ $.proxy(module.event.scroll, this)();
+ }
+
+ if(settings.displayTime > 0) {
+ setTimeout(module.hide, settings.displayTime);
+ }
+ if(module.should.show()) {
+ if( !$module.is(':visible') ) {
+ module.show();
+ }
+ }
+ else {
+ module.hide();
+ }
+ },
+
+ destroy: function() {
+ module.verbose('Destroying instance');
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ if(settings.sticky) {
+ $context
+ .off(eventNamespace)
+ ;
+ }
+ },
+
+ refresh: function() {
+ module.debug('Refreshing cached calculations');
+ moduleOffset = $module.offset();
+ moduleHeight = $module.outerHeight();
+ contextWidth = $context.outerWidth();
+ contextHeight = $context.outerHeight();
+ contextOffset = $context.offset();
+ },
+
+ show: function() {
+ module.debug('Showing nag', settings.animation.show);
+ if(settings.animation.show == 'fade') {
+ $module
+ .fadeIn(settings.duration, settings.easing)
+ ;
+ }
+ else {
+ $module
+ .slideDown(settings.duration, settings.easing)
+ ;
+ }
+ },
+
+ hide: function() {
+ module.debug('Showing nag', settings.animation.hide);
+ if(settings.animation.show == 'fade') {
+ $module
+ .fadeIn(settings.duration, settings.easing)
+ ;
+ }
+ else {
+ $module
+ .slideUp(settings.duration, settings.easing)
+ ;
+ }
+ },
+
+ onHide: function() {
+ module.debug('Removing nag', settings.animation.hide);
+ $module.remove();
+ if (settings.onHide) {
+ settings.onHide();
+ }
+ },
+
+ stick: function() {
+ module.refresh();
+
+ if(settings.position == 'fixed') {
+ var
+ windowScroll = $(window).prop('pageYOffset') || $(window).scrollTop(),
+ fixedOffset = ( $module.hasClass(className.bottom) )
+ ? contextOffset.top + (contextHeight - moduleHeight) - windowScroll
+ : contextOffset.top - windowScroll
+ ;
+ $module
+ .css({
+ position : 'fixed',
+ top : fixedOffset,
+ left : contextOffset.left,
+ width : contextWidth - settings.scrollBarWidth
+ })
+ ;
+ }
+ else {
+ $module
+ .css({
+ top : yPosition
+ })
+ ;
+ }
+ },
+ unStick: function() {
+ $module
+ .css({
+ top : ''
+ })
+ ;
+ },
+ dismiss: function(event) {
+ if(settings.storageMethod) {
+ module.storage.set(settings.storedKey, settings.storedValue);
+ }
+ module.hide();
+ event.stopImmediatePropagation();
+ event.preventDefault();
+ },
+
+ should: {
+ show: function() {
+ if(settings.persist) {
+ module.debug('Persistent nag is set, can show nag');
+ return true;
+ }
+ if(module.storage.get(settings.storedKey) != settings.storedValue) {
+ module.debug('Stored value is not set, can show nag', module.storage.get(settings.storedKey));
+ return true;
+ }
+ module.debug('Stored value is set, cannot show nag', module.storage.get(settings.storedKey));
+ return false;
+ },
+ stick: function() {
+ yOffset = $context.prop('pageYOffset') || $context.scrollTop();
+ yPosition = ( $module.hasClass(className.bottom) )
+ ? (contextHeight - $module.outerHeight() ) + yOffset
+ : yOffset
+ ;
+ // absolute position calculated when y offset met
+ if(yPosition > moduleOffset.top) {
+ return true;
+ }
+ else if(settings.position == 'fixed') {
+ return true;
+ }
+ return false;
+ }
+ },
+
+ storage: {
+
+ set: function(key, value) {
+ module.debug('Setting stored value', key, value, settings.storageMethod);
+ if(settings.storageMethod == 'local' && window.store !== undefined) {
+ window.store.set(key, value);
+ }
+ // store by cookie
+ else if($.cookie !== undefined) {
+ $.cookie(key, value);
+ }
+ else {
+ module.error(error.noStorage);
+ }
+ },
+ get: function(key) {
+ module.debug('Getting stored value', key, settings.storageMethod);
+ if(settings.storageMethod == 'local' && window.store !== undefined) {
+ return window.store.get(key);
+ }
+ // get by cookie
+ else if($.cookie !== undefined) {
+ return $.cookie(key);
+ }
+ else {
+ module.error(error.noStorage);
+ }
+ }
+
+ },
+
+ event: {
+ scroll: function() {
+ if(timer !== undefined) {
+ clearTimeout(timer);
+ }
+ timer = setTimeout(function() {
+ if(module.should.stick() ) {
+ requestAnimationFrame(module.stick);
+ }
+ else {
+ module.unStick();
+ }
+ }, settings.lag);
+ }
+ },
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ module.debug('Changing internal', name, value);
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else {
+ module[name] = value;
+ }
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ })
+ ;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.nag.settings = {
+
+ name : 'Nag',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ namespace : 'Nag',
+
+ // allows cookie to be overriden
+ persist : false,
+
+ // set to zero to manually dismiss, otherwise hides on its own
+ displayTime : 0,
+
+ animation : {
+ show: 'slide',
+ hide: 'slide'
+ },
+
+ // method of stickyness
+ position : 'fixed',
+ scrollBarWidth : 18,
+
+ // type of storage to use
+ storageMethod : 'cookie',
+
+ // value to store in dismissed localstorage/cookie
+ storedKey : 'nag',
+ storedValue : 'dismiss',
+
+ // need to calculate stickyness on scroll
+ sticky : false,
+
+ // how often to check scroll event
+ lag : 0,
+
+ // context for scroll event
+ context : window,
+
+ error: {
+ noStorage : 'Neither $.cookie or store is defined. A storage solution is required for storing state',
+ method : 'The method you called is not defined.'
+ },
+
+ className : {
+ bottom : 'bottom',
+ fixed : 'fixed'
+ },
+
+ selector : {
+ close: '.icon.close'
+ },
+
+ speed : 500,
+ easing : 'easeOutQuad',
+
+ onHide: function() {}
+
+};
+
+})( jQuery, window , document );
diff --git a/css/semantic/build/uncompressed/modules/popup.css b/css/semantic/build/uncompressed/modules/popup.css
new file mode 100644
index 0000000..7590ebb
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/popup.css
@@ -0,0 +1,253 @@
+/*
+ * # Semantic - Popup
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Popup
+*******************************/
+
+.ui.popup {
+ display: none;
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ z-index: 900;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ max-width: 250px;
+ background-color: #FFFFFF;
+ padding: 0.8em 1.2em;
+ font-size: 0.875rem;
+ font-weight: normal;
+ font-style: normal;
+ color: rgba(0, 0, 0, 0.7);
+ border-radius: 0.2em;
+ -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
+}
+
+.ui.popup .header {
+ padding: 0em 0em 0.5em;
+ font-size: 1.125em;
+ line-height: 1.2;
+ font-weight: bold;
+}
+
+.ui.popup:before {
+ position: absolute;
+ content: "";
+ width: 0.75em;
+ height: 0.75rem;
+ background-image: none;
+ background-color: #FFFFFF;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ z-index: 2;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.popup .ui.button {
+ width: 100%;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Spacing
+---------------*/
+
+.ui.popup {
+ margin: 0em;
+}
+
+.ui.popup.bottom {
+ margin: 0.75em 0em 0em;
+}
+
+.ui.popup.top {
+ margin: 0em 0em 0.75em;
+}
+
+.ui.popup.left.center {
+ margin: 0em 0.75em 0em 0em;
+}
+
+.ui.popup.right.center {
+ margin: 0em 0em 0em 0.75em;
+}
+
+.ui.popup.center {
+ margin-left: -1.25em;
+}
+
+/*--------------
+ Pointer
+---------------*/
+
+/*--- Below ---*/
+
+.ui.bottom.center.popup:before {
+ margin-left: -0.4em;
+ top: -0.4em;
+ left: 50%;
+ right: auto;
+ bottom: auto;
+ -webkit-box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+}
+
+.ui.bottom.left.popup {
+ margin-right: -2em;
+}
+
+.ui.bottom.left.popup:before {
+ top: -0.4em;
+ right: 1em;
+ bottom: auto;
+ left: auto;
+ margin-left: 0em;
+ -webkit-box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+}
+
+.ui.bottom.right.popup {
+ margin-left: -2em;
+}
+
+.ui.bottom.right.popup:before {
+ top: -0.4em;
+ left: 1em;
+ right: auto;
+ bottom: auto;
+ margin-left: 0em;
+ -webkit-box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+}
+
+/*--- Above ---*/
+
+.ui.top.center.popup:before {
+ top: auto;
+ right: auto;
+ bottom: -0.4em;
+ left: 50%;
+ margin-left: -0.4em;
+}
+
+.ui.top.left.popup {
+ margin-right: -2em;
+}
+
+.ui.top.left.popup:before {
+ bottom: -0.4em;
+ right: 1em;
+ top: auto;
+ left: auto;
+ margin-left: 0em;
+}
+
+.ui.top.right.popup {
+ margin-left: -2em;
+}
+
+.ui.top.right.popup:before {
+ bottom: -0.4em;
+ left: 1em;
+ top: auto;
+ right: auto;
+ margin-left: 0em;
+}
+
+/*--- Left Center ---*/
+
+.ui.left.center.popup:before {
+ top: 50%;
+ right: -0.35em;
+ bottom: auto;
+ left: auto;
+ margin-top: -0.4em;
+ -webkit-box-shadow: 1px -1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: 1px -1px 1px rgba(0, 0, 0, 0.2);
+}
+
+/*--- Right Center ---*/
+
+.ui.right.center.popup:before {
+ top: 50%;
+ left: -0.35em;
+ bottom: auto;
+ right: auto;
+ margin-top: -0.4em;
+ -webkit-box-shadow: -1px 1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: -1px 1px 1px rgba(0, 0, 0, 0.2);
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.loading.popup {
+ display: block;
+ visibility: hidden;
+}
+
+.ui.animating.popup,
+.ui.visible.popup {
+ display: block;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Size
+---------------*/
+
+.ui.small.popup {
+ font-size: 0.75rem;
+}
+
+.ui.large.popup {
+ font-size: 1rem;
+}
+
+/*--------------
+ Colors
+---------------*/
+
+/* Inverted colors */
+
+.ui.inverted.popup {
+ background-color: #333333;
+ border: none;
+ color: #FFFFFF;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.popup .header {
+ background-color: rgba(0, 0, 0, 0.2);
+ color: #FFFFFF;
+}
+
+.ui.inverted.popup:before {
+ background-color: #333333;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/modules/popup.js b/css/semantic/build/uncompressed/modules/popup.js
new file mode 100644
index 0000000..1a2cc95
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/popup.js
@@ -0,0 +1,857 @@
+/*
+ * # Semantic - Popup
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.popup = function(parameters) {
+ var
+ $allModules = $(this),
+ $document = $(document),
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.popup.settings, parameters)
+ : $.extend({}, $.fn.popup.settings),
+
+ selector = settings.selector,
+ className = settings.className,
+ error = settings.error,
+ metadata = settings.metadata,
+ namespace = settings.namespace,
+
+ eventNamespace = '.' + settings.namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $context = $(settings.context),
+ $target = (settings.target)
+ ? $(settings.target)
+ : $module,
+
+ $window = $(window),
+
+ $offsetParent = (settings.inline)
+ ? $target.offsetParent()
+ : $window,
+ $popup = (settings.inline)
+ ? $target.next(settings.selector.popup)
+ : $window.children(settings.selector.popup).last(),
+
+ searchDepth = 0,
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ // binds events
+ initialize: function() {
+ module.debug('Initializing module', $module);
+ if(settings.on == 'click') {
+ $module
+ .on('click', module.toggle)
+ ;
+ }
+ else {
+ $module
+ .on(module.get.startEvent() + eventNamespace, module.event.start)
+ .on(module.get.endEvent() + eventNamespace, module.event.end)
+ ;
+ }
+ if(settings.target) {
+ module.debug('Target set to element', $target);
+ }
+ $window
+ .on('resize' + eventNamespace, module.event.resize)
+ ;
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ refresh: function() {
+ if(settings.inline) {
+ $popup = $target.next(selector.popup);
+ $offsetParent = $target.offsetParent();
+ }
+ else {
+ $popup = $window.children(selector.popup).last();
+ }
+ },
+
+ destroy: function() {
+ module.debug('Destroying previous module');
+ $window
+ .off(eventNamespace)
+ ;
+ $popup
+ .remove()
+ ;
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ event: {
+ start: function(event) {
+ module.timer = setTimeout(function() {
+ if( module.is.hidden() ) {
+ module.show();
+ }
+ }, settings.delay);
+ },
+ end: function() {
+ clearTimeout(module.timer);
+ if( module.is.visible() ) {
+ module.hide();
+ }
+ },
+ resize: function() {
+ if( module.is.visible() ) {
+ module.set.position();
+ }
+ }
+ },
+
+ // generates popup html from metadata
+ create: function() {
+ module.debug('Creating pop-up html');
+ var
+ html = $module.data(metadata.html) || settings.html,
+ variation = $module.data(metadata.variation) || settings.variation,
+ title = $module.data(metadata.title) || settings.title,
+ content = $module.data(metadata.content) || $module.attr('title') || settings.content
+ ;
+ if(html || content || title) {
+ if(!html) {
+ html = settings.template({
+ title : title,
+ content : content
+ });
+ }
+ $popup = $('
')
+ .addClass(className.popup)
+ .addClass(variation)
+ .html(html)
+ ;
+ if(settings.inline) {
+ module.verbose('Inserting popup element inline', $popup);
+ $popup
+ .data(moduleNamespace, instance)
+ .insertAfter($module)
+ ;
+ }
+ else {
+ module.verbose('Appending popup element to body', $popup);
+ $popup
+ .data(moduleNamespace, instance)
+ .appendTo( $context )
+ ;
+ }
+ $.proxy(settings.onCreate, $popup)();
+ }
+ else {
+ module.error(error.content);
+ }
+ },
+
+ // determines popup state
+ toggle: function() {
+ module.debug('Toggling pop-up');
+ if( module.is.hidden() ) {
+ module.debug('Popup is hidden, showing pop-up');
+ module.unbind.close();
+ module.hideAll();
+ module.show();
+ }
+ else {
+ module.debug('Popup is visible, hiding pop-up');
+ module.hide();
+ }
+ },
+
+ show: function(callback) {
+ callback = callback || function(){};
+ module.debug('Showing pop-up', settings.transition);
+ if(!settings.preserve) {
+ module.refresh();
+ }
+ if( !module.exists() ) {
+ module.create();
+ }
+ module.save.conditions();
+ module.set.position();
+ module.animate.show(callback);
+ },
+
+
+ hide: function(callback) {
+ callback = callback || function(){};
+ $module
+ .removeClass(className.visible)
+ ;
+ module.restore.conditions();
+ module.unbind.close();
+ if( module.is.visible() ) {
+ module.animate.hide(callback);
+ }
+ },
+
+ hideAll: function() {
+ $(selector.popup)
+ .filter(':visible')
+ .popup('hide')
+ ;
+ },
+
+ hideGracefully: function(event) {
+ // don't close on clicks inside popup
+ if(event && $(event.target).closest(selector.popup).size() === 0) {
+ module.debug('Click occurred outside popup hiding popup');
+ module.hide();
+ }
+ else {
+ module.debug('Click was inside popup, keeping popup open');
+ }
+ },
+
+ exists: function() {
+ if(settings.inline) {
+ return ( $popup.size() !== 0 );
+ }
+ else {
+ return ( $popup.parent($context).size() );
+ }
+ },
+
+ remove: function() {
+ module.debug('Removing popup');
+ $popup
+ .remove()
+ ;
+ },
+
+ save: {
+ conditions: function() {
+ module.cache = {
+ title: $module.attr('title')
+ };
+ if (module.cache.title) {
+ $module.removeAttr('title');
+ }
+ module.verbose('Saving original attributes', module.cache.title);
+ }
+ },
+ restore: {
+ conditions: function() {
+ if(module.cache && module.cache.title) {
+ $module.attr('title', module.cache.title);
+ module.verbose('Restoring original attributes', module.cache.title);
+ }
+ return true;
+ }
+ },
+ animate: {
+ show: function(callback) {
+ callback = callback || function(){};
+ $module
+ .addClass(className.visible)
+ ;
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $popup
+ .transition(settings.transition + ' in', settings.duration, function() {
+ module.bind.close();
+ $.proxy(callback, element)();
+ })
+ ;
+ }
+ else {
+ $popup
+ .stop()
+ .fadeIn(settings.duration, settings.easing, function() {
+ module.bind.close();
+ $.proxy(callback, element)();
+ })
+ ;
+ }
+ $.proxy(settings.onShow, element)();
+ },
+ hide: function(callback) {
+ callback = callback || function(){};
+ module.debug('Hiding pop-up');
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $popup
+ .transition(settings.transition + ' out', settings.duration, function() {
+ module.reset();
+ callback();
+ })
+ ;
+ }
+ else {
+ $popup
+ .stop()
+ .fadeOut(settings.duration, settings.easing, function() {
+ module.reset();
+ callback();
+ })
+ ;
+ }
+ $.proxy(settings.onHide, element)();
+ }
+ },
+
+ get: {
+ startEvent: function() {
+ if(settings.on == 'hover') {
+ return 'mouseenter';
+ }
+ else if(settings.on == 'focus') {
+ return 'focus';
+ }
+ },
+ endEvent: function() {
+ if(settings.on == 'hover') {
+ return 'mouseleave';
+ }
+ else if(settings.on == 'focus') {
+ return 'blur';
+ }
+ },
+ offstagePosition: function() {
+ var
+ boundary = {
+ top : $(window).scrollTop(),
+ bottom : $(window).scrollTop() + $(window).height(),
+ left : 0,
+ right : $(window).width()
+ },
+ popup = {
+ width : $popup.width(),
+ height : $popup.outerHeight(),
+ position : $popup.offset()
+ },
+ offstage = {},
+ offstagePositions = []
+ ;
+ if(popup.position) {
+ offstage = {
+ top : (popup.position.top < boundary.top),
+ bottom : (popup.position.top + popup.height > boundary.bottom),
+ right : (popup.position.left + popup.width > boundary.right),
+ left : (popup.position.left < boundary.left)
+ };
+ }
+ module.verbose('Checking if outside viewable area', popup.position);
+ // return only boundaries that have been surpassed
+ $.each(offstage, function(direction, isOffstage) {
+ if(isOffstage) {
+ offstagePositions.push(direction);
+ }
+ });
+ return (offstagePositions.length > 0)
+ ? offstagePositions.join(' ')
+ : false
+ ;
+ },
+ nextPosition: function(position) {
+ switch(position) {
+ case 'top left':
+ position = 'bottom left';
+ break;
+ case 'bottom left':
+ position = 'top right';
+ break;
+ case 'top right':
+ position = 'bottom right';
+ break;
+ case 'bottom right':
+ position = 'top center';
+ break;
+ case 'top center':
+ position = 'bottom center';
+ break;
+ case 'bottom center':
+ position = 'right center';
+ break;
+ case 'right center':
+ position = 'left center';
+ break;
+ case 'left center':
+ position = 'top center';
+ break;
+ }
+ return position;
+ }
+ },
+
+ set: {
+ position: function(position, arrowOffset) {
+ var
+ windowWidth = $(window).width(),
+ windowHeight = $(window).height(),
+
+ width = $target.outerWidth(),
+ height = $target.outerHeight(),
+
+ popupWidth = $popup.width(),
+ popupHeight = $popup.outerHeight(),
+
+ parentWidth = $offsetParent.outerWidth(),
+ parentHeight = $offsetParent.outerHeight(),
+
+ distanceAway = settings.distanceAway,
+
+ offset = (settings.inline)
+ ? $target.position()
+ : $target.offset(),
+
+ positioning,
+ offstagePosition
+ ;
+ position = position || $module.data(metadata.position) || settings.position;
+ arrowOffset = arrowOffset || $module.data(metadata.offset) || settings.offset;
+ // adjust for margin when inline
+ if(settings.inline) {
+ if(position == 'left center' || position == 'right center') {
+ arrowOffset += parseInt( window.getComputedStyle(element).getPropertyValue('margin-top'), 10);
+ distanceAway += -parseInt( window.getComputedStyle(element).getPropertyValue('margin-left'), 10);
+ }
+ else {
+ arrowOffset += parseInt( window.getComputedStyle(element).getPropertyValue('margin-left'), 10);
+ distanceAway += parseInt( window.getComputedStyle(element).getPropertyValue('margin-top'), 10);
+ }
+ }
+ module.debug('Calculating offset for position', position);
+ switch(position) {
+ case 'top left':
+ positioning = {
+ bottom : parentHeight - offset.top + distanceAway,
+ right : parentWidth - offset.left - arrowOffset,
+ top : 'auto',
+ left : 'auto'
+ };
+ break;
+ case 'top center':
+ positioning = {
+ bottom : parentHeight - offset.top + distanceAway,
+ left : offset.left + (width / 2) - (popupWidth / 2) + arrowOffset,
+ top : 'auto',
+ right : 'auto'
+ };
+ break;
+ case 'top right':
+ positioning = {
+ top : 'auto',
+ bottom : parentHeight - offset.top + distanceAway,
+ left : offset.left + width + arrowOffset,
+ right : 'auto'
+ };
+ break;
+ case 'left center':
+ positioning = {
+ top : offset.top + (height / 2) - (popupHeight / 2) + arrowOffset,
+ right : parentWidth - offset.left + distanceAway,
+ left : 'auto',
+ bottom : 'auto'
+ };
+ break;
+ case 'right center':
+ positioning = {
+ top : offset.top + (height / 2) - (popupHeight / 2) + arrowOffset,
+ left : offset.left + width + distanceAway,
+ bottom : 'auto',
+ right : 'auto'
+ };
+ break;
+ case 'bottom left':
+ positioning = {
+ top : offset.top + height + distanceAway,
+ right : parentWidth - offset.left - arrowOffset,
+ left : 'auto',
+ bottom : 'auto'
+ };
+ break;
+ case 'bottom center':
+ positioning = {
+ top : offset.top + height + distanceAway,
+ left : offset.left + (width / 2) - (popupWidth / 2) + arrowOffset,
+ bottom : 'auto',
+ right : 'auto'
+ };
+ break;
+ case 'bottom right':
+ positioning = {
+ top : offset.top + height + distanceAway,
+ left : offset.left + width + arrowOffset,
+ bottom : 'auto',
+ right : 'auto'
+ };
+ break;
+ }
+ // tentatively place on stage
+ $popup
+ .css(positioning)
+ .removeClass(className.position)
+ .addClass(position)
+ .addClass(className.loading)
+ ;
+ // check if is offstage
+ offstagePosition = module.get.offstagePosition();
+
+ // recursively find new positioning
+ if(offstagePosition) {
+ module.debug('Element is outside boundaries', offstagePosition);
+ if(searchDepth < settings.maxSearchDepth) {
+ position = module.get.nextPosition(position);
+ searchDepth++;
+ module.debug('Trying new position', position);
+ return module.set.position(position);
+ }
+ else {
+ module.error(error.recursion);
+ searchDepth = 0;
+ module.reset();
+ $popup.removeClass(className.loading);
+ return false;
+ }
+ }
+ else {
+ module.debug('Position is on stage', position);
+ searchDepth = 0;
+ $popup.removeClass(className.loading);
+ return true;
+ }
+ }
+
+ },
+
+ bind: {
+ close:function() {
+ if(settings.on == 'click' && settings.closable) {
+ module.verbose('Binding popup close event to document');
+ $document
+ .on('click' + eventNamespace, function(event) {
+ module.verbose('Pop-up clickaway intent detected');
+ $.proxy(module.hideGracefully, this)(event);
+ })
+ ;
+ }
+ }
+ },
+
+ unbind: {
+ close: function() {
+ if(settings.on == 'click' && settings.closable) {
+ module.verbose('Removing close event from document');
+ $document
+ .off('click' + eventNamespace)
+ ;
+ }
+ }
+ },
+
+ is: {
+ animating: function() {
+ return ( $popup.is(':animated') || $popup.hasClass(className.animating) );
+ },
+ visible: function() {
+ return $popup.is(':visible');
+ },
+ hidden: function() {
+ return !module.is.visible();
+ }
+ },
+
+ reset: function() {
+ $popup
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ if(!settings.preserve) {
+ module.remove();
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.popup.settings = {
+
+ name : 'Popup',
+ debug : false,
+ verbose : true,
+ performance : true,
+ namespace : 'popup',
+
+ onCreate : function(){},
+ onShow : function(){},
+ onHide : function(){},
+
+ variation : '',
+ content : false,
+ html : false,
+ title : false,
+
+ on : 'hover',
+ target : false,
+ closable : true,
+
+ context : 'body',
+ position : 'top center',
+ delay : 150,
+ inline : false,
+ preserve : false,
+
+ duration : 250,
+ easing : 'easeOutQuint',
+ transition : 'scale',
+
+ distanceAway : 0,
+ offset : 0,
+ maxSearchDepth : 10,
+
+ error: {
+ content : 'Your popup has no content specified',
+ method : 'The method you called is not defined.',
+ recursion : 'Popup attempted to reposition element to fit, but could not find an adequate position.'
+ },
+
+ metadata: {
+ content : 'content',
+ html : 'html',
+ offset : 'offset',
+ position : 'position',
+ title : 'title',
+ variation : 'variation'
+ },
+
+ className : {
+ animating : 'animating',
+ loading : 'loading',
+ popup : 'ui popup',
+ position : 'top left center bottom right',
+ visible : 'visible'
+ },
+
+ selector : {
+ popup : '.ui.popup'
+ },
+
+ template: function(text) {
+ var html = '';
+ if(typeof text !== undefined) {
+ if(typeof text.title !== undefined && text.title) {
+ html += '';
+ }
+ if(typeof text.content !== undefined && text.content) {
+ html += '
' + text.content + '
';
+ }
+ }
+ return html;
+ }
+
+};
+
+})( jQuery, window , document );
diff --git a/css/semantic/build/uncompressed/modules/rating.css b/css/semantic/build/uncompressed/modules/rating.css
new file mode 100644
index 0000000..6171f4d
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/rating.css
@@ -0,0 +1,167 @@
+/*
+ * # Semantic - Rating
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Rating
+*******************************/
+
+.ui.rating {
+ display: inline-block;
+ font-size: 0em;
+ vertical-align: middle;
+ margin: 0em 0.5rem 0em 0em;
+}
+
+.ui.rating:last-child {
+ margin-right: 0em;
+}
+
+.ui.rating:before {
+ display: block;
+ content: '';
+ visibility: hidden;
+ clear: both;
+ height: 0;
+}
+
+/* Icon */
+
+.ui.rating .icon {
+ cursor: pointer;
+ margin: 0em;
+ width: 1em;
+ height: auto;
+ padding: 0em;
+ color: rgba(0, 0, 0, 0.15);
+ font-weight: normal;
+ font-style: normal;
+}
+
+.ui.rating .icon:before {
+ content: "\2605";
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Star
+--------------------*/
+
+.ui.star.rating .icon {
+ width: 1.2em;
+}
+
+/* Star */
+
+.ui.star.rating .icon:before {
+ content: '\f006';
+ font-family: 'Icons';
+}
+
+/* Active Star */
+
+.ui.star.rating .active.icon:before {
+ content: '\f005';
+ font-family: 'Icons';
+}
+
+/*-------------------
+ Heart
+--------------------*/
+
+.ui.heart.rating .icon {
+ width: 1.2em;
+}
+
+.ui.heart.rating .icon:before {
+ content: '\f08a';
+ font-family: 'Icons';
+}
+
+/* Active */
+
+.ui.heart.rating .active.icon:before {
+ content: '\f004';
+ font-family: 'Icons';
+}
+
+.ui.heart.rating .active.icon {
+ color: #EF404A !important;
+}
+
+/* Hovered */
+
+.ui.heart.rating .hover.icon,
+.ui.heart.rating .active.hover.icon {
+ color: #FF2733 !important;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*-------------------
+ Active
+--------------------*/
+
+/* disabled rating */
+
+.ui.disabled.rating .icon {
+ cursor: default;
+}
+
+/* active icons */
+
+.ui.rating .active.icon {
+ color: #FFCB08 !important;
+}
+
+/*-------------------
+ Hover
+--------------------*/
+
+/* rating */
+
+.ui.rating.hover .active.icon {
+ opacity: 0.5;
+}
+
+/* icon */
+
+.ui.rating .icon.hover,
+.ui.rating .icon.hover.active {
+ opacity: 1;
+ color: #FFB70A !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.small.rating .icon {
+ font-size: 0.75rem;
+}
+
+.ui.rating .icon {
+ font-size: 1rem;
+}
+
+.ui.large.rating .icon {
+ font-size: 1.5rem;
+ vertical-align: middle;
+}
+
+.ui.huge.rating .icon {
+ font-size: 2rem;
+ vertical-align: middle;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/modules/rating.js b/css/semantic/build/uncompressed/modules/rating.js
new file mode 100644
index 0000000..4399c10
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/rating.js
@@ -0,0 +1,407 @@
+/*
+ * # Semantic - Rating
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.rating = function(parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.rating.settings, parameters)
+ : $.extend({}, $.fn.rating.settings),
+
+ namespace = settings.namespace,
+ className = settings.className,
+ metadata = settings.metadata,
+ selector = settings.selector,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ element = this,
+ instance = $(this).data(moduleNamespace),
+
+ $module = $(this),
+ $icon = $module.find(selector.icon),
+
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing rating module', settings);
+
+ if(settings.interactive) {
+ module.enable();
+ }
+ else {
+ module.disable();
+ }
+
+ if(settings.initialRating) {
+ module.debug('Setting initial rating');
+ module.setRating(settings.initialRating);
+ }
+ if( $module.data(metadata.rating) ) {
+ module.debug('Rating found in metadata');
+ module.setRating( $module.data(metadata.rating) );
+ }
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Instantiating module', settings);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous instance', instance);
+ $module
+ .removeData(moduleNamespace)
+ ;
+ $icon
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+ mouseenter: function() {
+ var
+ $activeIcon = $(this)
+ ;
+ $activeIcon
+ .nextAll()
+ .removeClass(className.hover)
+ ;
+ $module
+ .addClass(className.hover)
+ ;
+ $activeIcon
+ .addClass(className.hover)
+ .prevAll()
+ .addClass(className.hover)
+ ;
+ },
+ mouseleave: function() {
+ $module
+ .removeClass(className.hover)
+ ;
+ $icon
+ .removeClass(className.hover)
+ ;
+ },
+ click: function() {
+ var
+ $activeIcon = $(this),
+ currentRating = module.getRating(),
+ rating = $icon.index($activeIcon) + 1
+ ;
+ if(settings.clearable && currentRating == rating) {
+ module.clearRating();
+ }
+ else {
+ module.setRating( rating );
+ }
+ }
+ },
+
+ clearRating: function() {
+ module.debug('Clearing current rating');
+ module.setRating(0);
+ },
+
+ getRating: function() {
+ var
+ currentRating = $icon.filter('.' + className.active).size()
+ ;
+ module.verbose('Current rating retrieved', currentRating);
+ return currentRating;
+ },
+
+ enable: function() {
+ module.debug('Setting rating to interactive mode');
+ $icon
+ .on('mouseenter' + eventNamespace, module.event.mouseenter)
+ .on('mouseleave' + eventNamespace, module.event.mouseleave)
+ .on('click' + eventNamespace, module.event.click)
+ ;
+ $module
+ .removeClass(className.disabled)
+ ;
+ },
+
+ disable: function() {
+ module.debug('Setting rating to read-only mode');
+ $icon
+ .off(eventNamespace)
+ ;
+ $module
+ .addClass(className.disabled)
+ ;
+ },
+
+ setRating: function(rating) {
+ var
+ ratingIndex = (rating - 1 >= 0)
+ ? (rating - 1)
+ : 0,
+ $activeIcon = $icon.eq(ratingIndex)
+ ;
+ $module
+ .removeClass(className.hover)
+ ;
+ $icon
+ .removeClass(className.hover)
+ .removeClass(className.active)
+ ;
+ if(rating > 0) {
+ module.verbose('Setting current rating to', rating);
+ $activeIcon
+ .addClass(className.active)
+ .prevAll()
+ .addClass(className.active)
+ ;
+ }
+ $.proxy(settings.onRate, element)(rating);
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.rating.settings = {
+
+ name : 'Rating',
+ namespace : 'rating',
+
+ verbose : true,
+ debug : false,
+ performance : true,
+
+ initialRating : 0,
+ interactive : true,
+ clearable : false,
+
+ onRate : function(rating){},
+
+ error : {
+ method : 'The method you called is not defined'
+ },
+
+ metadata: {
+ rating: 'rating'
+ },
+
+ className : {
+ active : 'active',
+ disabled : 'disabled',
+ hover : 'hover',
+ loading : 'loading'
+ },
+
+ selector : {
+ icon : '.icon'
+ }
+
+};
+
+})( jQuery, window , document );
diff --git a/css/semantic/build/uncompressed/modules/search.css b/css/semantic/build/uncompressed/modules/search.css
new file mode 100644
index 0000000..4cc13ca
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/search.css
@@ -0,0 +1,255 @@
+/*
+ * # Semantic - Search
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Search
+*******************************/
+
+.ui.search {
+ position: relative;
+ text-shadow: none;
+ font-style: normal;
+ font-weight: normal;
+}
+
+.ui.search input {
+ border-radius: 500rem;
+}
+
+/*--------------
+ Button
+---------------*/
+
+.ui.search > .button {
+ position: relative;
+ z-index: 2;
+ float: right;
+ margin: 0px 0px 0px -15px;
+ padding: 6px 15px 7px;
+ border-radius: 0px 15px 15px 0px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*--------------
+ Results
+---------------*/
+
+.ui.search .results {
+ display: none;
+ position: absolute;
+ z-index: 999;
+ top: 100%;
+ left: 0px;
+ overflow: hidden;
+ background-color: #FFFFFF;
+ margin-top: 0.5em;
+ width: 380px;
+ font-size: 0.875em;
+ line-height: 1.2;
+ color: #555555;
+ border-radius: 3px;
+ -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1), 0px -2px 0px 0px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1), 0px -2px 0px 0px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.search .result {
+ cursor: pointer;
+ overflow: hidden;
+ padding: 0.5em 1em;
+}
+
+.ui.search .result:first-child {
+ border-top: none;
+}
+
+.ui.search .result .image {
+ background: #F0F0F0;
+ margin-right: 10px;
+ float: left;
+ overflow: hidden;
+ border-radius: 3px;
+ width: 38px;
+ height: 38px;
+}
+
+.ui.search .result .image img {
+ display: block;
+ width: 38px;
+ height: 38px;
+}
+
+.ui.search .result .image ~ .info {
+ float: none;
+ margin-left: 50px;
+}
+
+.ui.search .result .info {
+ float: left;
+}
+
+.ui.search .result .title {
+ font-weight: bold;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.search .result .description {
+ color: rgba(0, 0, 0, 0.6);
+}
+
+.ui.search .result .price {
+ float: right;
+ color: #5BBD72;
+ font-weight: bold;
+}
+
+/*--------------
+ Message
+---------------*/
+
+.ui.search .message {
+ padding: 1em;
+}
+
+.ui.search .message .text .title {
+ margin: 0em 0em 0.5rem;
+ font-size: 1.25rem;
+ font-weight: bold;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.search .message .text .description {
+ margin: 0em;
+ font-size: 1rem;
+ color: rgba(0, 0, 0, 0.5);
+}
+
+/*--------------
+ Categories
+---------------*/
+
+.ui.search .results .category {
+ background-color: #FAFAFA;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ -webkit-transition: background 0.2s ease-in;
+ -moz-transition: background 0.2s ease-in;
+ transition: background 0.2s ease-in;
+}
+
+.ui.search .results .category:first-child {
+ border-top: none;
+}
+
+.ui.search .results .category > .name {
+ float: left;
+ padding: 12px 0px 0px 8px;
+ font-weight: bold;
+ color: #777777;
+ text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.8);
+}
+
+.ui.search .results .category .result {
+ background-color: #FFFFFF;
+ margin-left: 80px;
+ border-left: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* View All Results */
+
+.ui.search .all {
+ display: block;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ background-color: #FAFAFA;
+ height: 2em;
+ line-height: 2em;
+ color: rgba(0, 0, 0, 0.6);
+ font-weight: bold;
+ text-align: center;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.search .result:hover,
+.ui.search .category .result:hover {
+ background-color: #F8F8F8;
+}
+
+.ui.search .all:hover {
+ background-color: #F0F0F0;
+}
+
+/*--------------
+ Loading
+---------------*/
+
+.ui.search.loading .input .icon {
+ background: url(../images/loader-mini.gif) no-repeat 50% 50%;
+}
+
+.ui.search.loading .input .icon:before,
+.ui.search.loading .input .icon:after {
+ display: none;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.search .results .category.active {
+ background-color: #F1F1F1;
+}
+
+.ui.search .results .category.active > .name {
+ color: #333333;
+}
+
+.ui.search .result.active,
+.ui.search .category .result.active {
+ background-color: #FBFBFB;
+}
+
+.ui.search .result.active .title {
+ color: #000000;
+}
+
+.ui.search .result.active .description {
+ color: #555555;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/* Large */
+
+.ui.search .large.result .image,
+.ui.search .large.result .image img {
+ width: 50px;
+ height: 50px;
+}
+
+.ui.search .large.results .indented.info {
+ margin-left: 65px;
+}
+
+.ui.search .large.results .info .title {
+ font-size: 16px;
+}
+
+.ui.search .large.results .info .description {
+ font-size: 11px;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/modules/search.js b/css/semantic/build/uncompressed/modules/search.js
new file mode 100644
index 0000000..1d7f7a0
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/search.js
@@ -0,0 +1,766 @@
+/*
+ * # Semantic - Search
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.search = function(source, parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $(this)
+ .each(function() {
+ var
+ settings = $.extend(true, {}, $.fn.search.settings, parameters),
+
+ className = settings.className,
+ selector = settings.selector,
+ error = settings.error,
+ namespace = settings.namespace,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = namespace + '-module',
+
+ $module = $(this),
+ $prompt = $module.find(selector.prompt),
+ $searchButton = $module.find(selector.searchButton),
+ $results = $module.find(selector.results),
+ $result = $module.find(selector.result),
+ $category = $module.find(selector.category),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+
+ module
+ ;
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing module');
+ var
+ prompt = $prompt[0],
+ inputEvent = (prompt.oninput !== undefined)
+ ? 'input'
+ : (prompt.onpropertychange !== undefined)
+ ? 'propertychange'
+ : 'keyup'
+ ;
+ // attach events
+ $prompt
+ .on('focus' + eventNamespace, module.event.focus)
+ .on('blur' + eventNamespace, module.event.blur)
+ .on('keydown' + eventNamespace, module.handleKeyboard)
+ ;
+ if(settings.automatic) {
+ $prompt
+ .on(inputEvent + eventNamespace, module.search.throttle)
+ ;
+ }
+ $searchButton
+ .on('click' + eventNamespace, module.search.query)
+ ;
+ $results
+ .on('click' + eventNamespace, selector.result, module.results.select)
+ ;
+ module.instantiate();
+ },
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+ destroy: function() {
+ module.verbose('Destroying instance');
+ $module
+ .removeData(moduleNamespace)
+ ;
+ },
+ event: {
+ focus: function() {
+ $module
+ .addClass(className.focus)
+ ;
+ module.results.show();
+ },
+ blur: function() {
+ module.search.cancel();
+ $module
+ .removeClass(className.focus)
+ ;
+ module.results.hide();
+ }
+ },
+ handleKeyboard: function(event) {
+ var
+ // force latest jq dom
+ $result = $module.find(selector.result),
+ $category = $module.find(selector.category),
+ keyCode = event.which,
+ keys = {
+ backspace : 8,
+ enter : 13,
+ escape : 27,
+ upArrow : 38,
+ downArrow : 40
+ },
+ activeClass = className.active,
+ currentIndex = $result.index( $result.filter('.' + activeClass) ),
+ resultSize = $result.size(),
+ newIndex
+ ;
+ // search shortcuts
+ if(keyCode == keys.escape) {
+ module.verbose('Escape key pressed, blurring search field');
+ $prompt
+ .trigger('blur')
+ ;
+ }
+ // result shortcuts
+ if($results.filter(':visible').size() > 0) {
+ if(keyCode == keys.enter) {
+ module.verbose('Enter key pressed, selecting active result');
+ if( $result.filter('.' + activeClass).exists() ) {
+ $.proxy(module.results.select, $result.filter('.' + activeClass) )();
+ event.preventDefault();
+ return false;
+ }
+ }
+ else if(keyCode == keys.upArrow) {
+ module.verbose('Up key pressed, changing active result');
+ newIndex = (currentIndex - 1 < 0)
+ ? currentIndex
+ : currentIndex - 1
+ ;
+ $category
+ .removeClass(activeClass)
+ ;
+ $result
+ .removeClass(activeClass)
+ .eq(newIndex)
+ .addClass(activeClass)
+ .closest($category)
+ .addClass(activeClass)
+ ;
+ event.preventDefault();
+ }
+ else if(keyCode == keys.downArrow) {
+ module.verbose('Down key pressed, changing active result');
+ newIndex = (currentIndex + 1 >= resultSize)
+ ? currentIndex
+ : currentIndex + 1
+ ;
+ $category
+ .removeClass(activeClass)
+ ;
+ $result
+ .removeClass(activeClass)
+ .eq(newIndex)
+ .addClass(activeClass)
+ .closest($category)
+ .addClass(activeClass)
+ ;
+ event.preventDefault();
+ }
+ }
+ else {
+ // query shortcuts
+ if(keyCode == keys.enter) {
+ module.verbose('Enter key pressed, executing query');
+ module.search.query();
+ $searchButton
+ .addClass(className.down)
+ ;
+ $prompt
+ .one('keyup', function(){
+ $searchButton
+ .removeClass(className.down)
+ ;
+ })
+ ;
+ }
+ }
+ },
+ search: {
+ cancel: function() {
+ var
+ xhr = $module.data('xhr') || false
+ ;
+ if( xhr && xhr.state() != 'resolved') {
+ module.debug('Cancelling last search');
+ xhr.abort();
+ }
+ },
+ throttle: function() {
+ var
+ searchTerm = $prompt.val(),
+ numCharacters = searchTerm.length
+ ;
+ clearTimeout(module.timer);
+ if(numCharacters >= settings.minCharacters) {
+ module.timer = setTimeout(module.search.query, settings.searchThrottle);
+ }
+ else {
+ module.results.hide();
+ }
+ },
+ query: function() {
+ var
+ searchTerm = $prompt.val(),
+ cachedHTML = module.search.cache.read(searchTerm)
+ ;
+ if(cachedHTML) {
+ module.debug("Reading result for '" + searchTerm + "' from cache");
+ module.results.add(cachedHTML);
+ }
+ else {
+ module.debug("Querying for '" + searchTerm + "'");
+ if(typeof source == 'object') {
+ module.search.local(searchTerm);
+ }
+ else {
+ module.search.remote(searchTerm);
+ }
+ $.proxy(settings.onSearchQuery, $module)(searchTerm);
+ }
+ },
+ local: function(searchTerm) {
+ var
+ results = [],
+ fullTextResults = [],
+ searchFields = $.isArray(settings.searchFields)
+ ? settings.searchFields
+ : [settings.searchFields],
+
+ searchRegExp = new RegExp('(?:\s|^)' + searchTerm, 'i'),
+ fullTextRegExp = new RegExp(searchTerm, 'i'),
+ searchHTML
+ ;
+ $module
+ .addClass(className.loading)
+ ;
+ // iterate through search fields in array order
+ $.each(searchFields, function(index, field) {
+ $.each(source, function(label, thing) {
+ if(typeof thing[field] == 'string' && ($.inArray(thing, results) == -1) && ($.inArray(thing, fullTextResults) == -1) ) {
+ if( searchRegExp.test( thing[field] ) ) {
+ results.push(thing);
+ }
+ else if( fullTextRegExp.test( thing[field] ) ) {
+ fullTextResults.push(thing);
+ }
+ }
+ });
+ });
+ searchHTML = module.results.generate({
+ results: $.merge(results, fullTextResults)
+ });
+ $module
+ .removeClass(className.loading)
+ ;
+ module.search.cache.write(searchTerm, searchHTML);
+ module.results.add(searchHTML);
+ },
+ remote: function(searchTerm) {
+ var
+ apiSettings = {
+ stateContext : $module,
+ url : source,
+ urlData: { query: searchTerm },
+ success : function(response) {
+ searchHTML = module.results.generate(response);
+ module.search.cache.write(searchTerm, searchHTML);
+ module.results.add(searchHTML);
+ },
+ failure : module.error
+ },
+ searchHTML
+ ;
+ module.search.cancel();
+ module.debug('Executing search');
+ $.extend(true, apiSettings, settings.apiSettings);
+ $.api(apiSettings);
+ },
+
+ cache: {
+ read: function(name) {
+ var
+ cache = $module.data('cache')
+ ;
+ return (settings.cache && (typeof cache == 'object') && (cache[name] !== undefined) )
+ ? cache[name]
+ : false
+ ;
+ },
+ write: function(name, value) {
+ var
+ cache = ($module.data('cache') !== undefined)
+ ? $module.data('cache')
+ : {}
+ ;
+ cache[name] = value;
+ $module
+ .data('cache', cache)
+ ;
+ }
+ }
+ },
+
+ results: {
+ generate: function(response) {
+ module.debug('Generating html from response', response);
+ var
+ template = settings.templates[settings.type],
+ html = ''
+ ;
+ if(($.isPlainObject(response.results) && !$.isEmptyObject(response.results)) || ($.isArray(response.results) && response.results.length > 0) ) {
+ if(settings.maxResults > 0) {
+ response.results = $.makeArray(response.results).slice(0, settings.maxResults);
+ }
+ if(response.results.length > 0) {
+ if($.isFunction(template)) {
+ html = template(response);
+ }
+ else {
+ module.error(error.noTemplate, false);
+ }
+ }
+ }
+ else {
+ html = module.message(error.noResults, 'empty');
+ }
+ $.proxy(settings.onResults, $module)(response);
+ return html;
+ },
+ add: function(html) {
+ if(settings.onResultsAdd == 'default' || $.proxy(settings.onResultsAdd, $results)(html) == 'default') {
+ $results
+ .html(html)
+ ;
+ }
+ module.results.show();
+ },
+ show: function() {
+ if( ($results.filter(':visible').size() === 0) && ($prompt.filter(':focus').size() > 0) && $results.html() !== '') {
+ $results
+ .stop()
+ .fadeIn(200)
+ ;
+ $.proxy(settings.onResultsOpen, $results)();
+ }
+ },
+ hide: function() {
+ if($results.filter(':visible').size() > 0) {
+ $results
+ .stop()
+ .fadeOut(200)
+ ;
+ $.proxy(settings.onResultsClose, $results)();
+ }
+ },
+ select: function(event) {
+ module.debug('Search result selected');
+ var
+ $result = $(this),
+ $title = $result.find('.title'),
+ title = $title.html()
+ ;
+ if(settings.onSelect == 'default' || $.proxy(settings.onSelect, this)(event) == 'default') {
+ var
+ $link = $result.find('a[href]').eq(0),
+ href = $link.attr('href') || false,
+ target = $link.attr('target') || false
+ ;
+ module.results.hide();
+ $prompt
+ .val(title)
+ ;
+ if(href) {
+ if(target == '_blank' || event.ctrlKey) {
+ window.open(href);
+ }
+ else {
+ window.location.href = (href);
+ }
+ }
+ }
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.search.settings = {
+
+ name : 'Search Module',
+ namespace : 'search',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ // onSelect default action is defined in module
+ onSelect : 'default',
+ onResultsAdd : 'default',
+
+ onSearchQuery : function(){},
+ onResults : function(response){},
+
+ onResultsOpen : function(){},
+ onResultsClose : function(){},
+
+ automatic : 'true',
+ type : 'simple',
+ minCharacters : 3,
+ searchThrottle : 300,
+ maxResults : 7,
+ cache : true,
+
+ searchFields : [
+ 'title',
+ 'description'
+ ],
+
+ // api config
+ apiSettings: {
+
+ },
+
+ className: {
+ active : 'active',
+ down : 'down',
+ focus : 'focus',
+ empty : 'empty',
+ loading : 'loading'
+ },
+
+ error : {
+ noResults : 'Your search returned no results',
+ logging : 'Error in debug logging, exiting.',
+ noTemplate : 'A valid template name was not specified.',
+ serverError : 'There was an issue with querying the server.',
+ method : 'The method you called is not defined.'
+ },
+
+ selector : {
+ prompt : '.prompt',
+ searchButton : '.search.button',
+ results : '.results',
+ category : '.category',
+ result : '.result'
+ },
+
+ templates: {
+ message: function(message, type) {
+ var
+ html = ''
+ ;
+ if(message !== undefined && type !== undefined) {
+ html += ''
+ + '
'
+ ;
+ // message type
+ if(type == 'empty') {
+ html += ''
+ + ''
+ + '
' + message + '
'
+ ;
+ }
+ else {
+ html += '
' + message + '
';
+ }
+ html += '
';
+ }
+ return html;
+ },
+ categories: function(response) {
+ var
+ html = ''
+ ;
+ if(response.results !== undefined) {
+ // each category
+ $.each(response.results, function(index, category) {
+ if(category.results !== undefined && category.results.length > 0) {
+ html += ''
+ + '
'
+ + '
' + category.name + '
'
+ ;
+ // each item inside category
+ $.each(category.results, function(index, result) {
+ html += '
';
+ html += '
';
+ if(result.image !== undefined) {
+ html+= ''
+ + '
'
+ + '
'
+ + '
'
+ ;
+ }
+ html += '
';
+ if(result.price !== undefined) {
+ html+= '
' + result.price + '
';
+ }
+ if(result.title !== undefined) {
+ html+= '
' + result.title + '
';
+ }
+ if(result.description !== undefined) {
+ html+= '
' + result.description + '
';
+ }
+ html += ''
+ + '
'
+ + '
'
+ ;
+ });
+ html += ''
+ + '
'
+ ;
+ }
+ });
+ if(response.resultPage) {
+ html += ''
+ + '
'
+ + response.resultPage.text
+ + ' ';
+ }
+ return html;
+ }
+ return false;
+ },
+ simple: function(response) {
+ var
+ html = ''
+ ;
+ if(response.results !== undefined) {
+
+ // each result
+ $.each(response.results, function(index, result) {
+ html += '
';
+ if(result.image !== undefined) {
+ html+= ''
+ + ''
+ + '
'
+ + '
'
+ ;
+ }
+ html += '';
+ if(result.price !== undefined) {
+ html+= '
' + result.price + '
';
+ }
+ if(result.title !== undefined) {
+ html+= '
' + result.title + '
';
+ }
+ if(result.description !== undefined) {
+ html+= '
' + result.description + '
';
+ }
+ html += ''
+ + '
'
+ + ' '
+ ;
+ });
+
+ if(response.resultPage) {
+ html += ''
+ + '
'
+ + response.resultPage.text
+ + ' ';
+ }
+ return html;
+ }
+ return false;
+ }
+ }
+};
+
+})( jQuery, window , document );
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/modules/shape.css b/css/semantic/build/uncompressed/modules/shape.css
new file mode 100644
index 0000000..45d5147
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/shape.css
@@ -0,0 +1,162 @@
+/*
+ * # Semantic - Shape
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Shape
+*******************************/
+
+.ui.shape {
+ display: inline-block;
+ position: relative;
+ -webkit-perspective: 2000px;
+ -moz-perspective: 2000px;
+ -ms-perspective: 2000px;
+ perspective: 2000px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.shape .sides {
+ -webkit-transform-style: preserve-3d;
+ -moz-transform-style: preserve-3d;
+ -ms-transform-style: preserve-3d;
+ transform-style: preserve-3d;
+}
+
+.ui.shape .side {
+ opacity: 1;
+ width: 100%;
+ margin: 0em !important;
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ -ms-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.shape .side {
+ display: none;
+}
+
+/*******************************
+ Types
+*******************************/
+
+.ui.cube.shape .side {
+ min-width: 15em;
+ height: 15em;
+ padding: 2em;
+ background-color: #E6E6E6;
+ color: rgba(0, 0, 0, 0.6);
+ -webkit-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.3);
+ box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.3);
+}
+
+.ui.cube.shape .side > .content {
+ width: 100%;
+ height: 100%;
+ display: table;
+ text-align: center;
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+}
+
+.ui.cube.shape .side > .content > div {
+ display: table-cell;
+ vertical-align: middle;
+ font-size: 2em;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.text.shape.animating .sides {
+ position: static;
+}
+
+.ui.text.shape .side {
+ white-space: nowrap;
+}
+
+.ui.text.shape .side > * {
+ white-space: normal;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Loading
+---------------*/
+
+.ui.loading.shape {
+ position: absolute;
+ top: -9999px;
+ left: -9999px;
+}
+
+/*--------------
+ Animating
+---------------*/
+
+.ui.shape .animating.side {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ z-index: 100;
+}
+
+.ui.shape .hidden.side {
+ opacity: 0.4;
+}
+
+/*--------------
+ CSS
+---------------*/
+
+.ui.shape.animating {
+ -webkit-transition: all 0.6s ease-in-out;
+ -moz-transition: all 0.6s ease-in-out;
+ transition: all 0.6s ease-in-out;
+}
+
+.ui.shape.animating .sides {
+ position: absolute;
+}
+
+.ui.shape.animating .sides {
+ -webkit-transition: all 0.6s ease-in-out;
+ -moz-transition: all 0.6s ease-in-out;
+ transition: all 0.6s ease-in-out;
+}
+
+.ui.shape.animating .side {
+ -webkit-transition: opacity 0.6s ease-in-out;
+ -moz-transition: opacity 0.6s ease-in-out;
+ transition: opacity 0.6s ease-in-out;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.shape .active.side {
+ display: block;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/modules/shape.js b/css/semantic/build/uncompressed/modules/shape.js
new file mode 100644
index 0000000..b1d8bef
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/shape.js
@@ -0,0 +1,787 @@
+/*
+ * # Semantic - Shape
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.shape = function(parameters) {
+ var
+ $allModules = $(this),
+ $body = $('body'),
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ moduleSelector = $allModules.selector || '',
+ settings = $.extend(true, {}, $.fn.shape.settings, parameters),
+
+ // internal aliases
+ namespace = settings.namespace,
+ selector = settings.selector,
+ error = settings.error,
+ className = settings.className,
+
+ // define namespaces for modules
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ // selector cache
+ $module = $(this),
+ $sides = $module.find(selector.sides),
+ $side = $module.find(selector.side),
+
+ // private variables
+ nextSelector = false,
+ $activeSide,
+ $nextSide,
+
+ // standard module
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing module for', element);
+ module.set.defaultSide();
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module for', element);
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing selector cache for', element);
+ $module = $(element);
+ $sides = $(this).find(selector.shape);
+ $side = $(this).find(selector.side);
+ },
+
+ repaint: function() {
+ module.verbose('Forcing repaint event');
+ var
+ shape = $sides.get(0) || document.createElement('div'),
+ fakeAssignment = shape.offsetWidth
+ ;
+ },
+
+ animate: function(propertyObject, callback) {
+ module.verbose('Animating box with properties', propertyObject);
+ callback = callback || function(event) {
+ module.verbose('Executing animation callback');
+ if(event !== undefined) {
+ event.stopPropagation();
+ }
+ module.reset();
+ module.set.active();
+ };
+ $.proxy(settings.beforeChange, $nextSide[0])();
+ if(module.get.transitionEvent()) {
+ module.verbose('Starting CSS animation');
+ $module
+ .addClass(className.animating)
+ ;
+ module.repaint();
+ $module
+ .addClass(className.animating)
+ ;
+ $activeSide
+ .addClass(className.hidden)
+ ;
+ $sides
+ .css(propertyObject)
+ .one(module.get.transitionEvent(), callback)
+ ;
+ module.set.duration(settings.duration);
+ }
+ else {
+ callback();
+ }
+ },
+
+ queue: function(method) {
+ module.debug('Queueing animation of', method);
+ $sides
+ .one(module.get.transitionEvent(), function() {
+ module.debug('Executing queued animation');
+ setTimeout(function(){
+ $module.shape(method);
+ }, 0);
+ })
+ ;
+ },
+
+ reset: function() {
+ module.verbose('Animating states reset');
+ $module
+ .removeClass(className.animating)
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ // removeAttr style does not consistently work in safari
+ $sides
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ $side
+ .attr('style', '')
+ .removeAttr('style')
+ .removeClass(className.hidden)
+ ;
+ $nextSide
+ .removeClass(className.animating)
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ },
+
+ is: {
+ animating: function() {
+ return $module.hasClass(className.animating);
+ }
+ },
+
+ set: {
+
+ defaultSide: function() {
+ $activeSide = $module.find('.' + settings.className.active);
+ $nextSide = ( $activeSide.next(selector.side).size() > 0 )
+ ? $activeSide.next(selector.side)
+ : $module.find(selector.side).first()
+ ;
+ nextSelector = false;
+ module.verbose('Active side set to', $activeSide);
+ module.verbose('Next side set to', $nextSide);
+ },
+
+ duration: function(duration) {
+ duration = duration || settings.duration;
+ duration = (typeof duration == 'number')
+ ? duration + 'ms'
+ : duration
+ ;
+ module.verbose('Setting animation duration', duration);
+ $sides.add($side)
+ .css({
+ '-webkit-transition-duration': duration,
+ '-moz-transition-duration': duration,
+ '-ms-transition-duration': duration,
+ '-o-transition-duration': duration,
+ 'transition-duration': duration
+ })
+ ;
+ },
+
+ stageSize: function() {
+ var
+ $clone = $module.clone().addClass(className.loading),
+ $activeSide = $clone.find('.' + settings.className.active),
+ $nextSide = (nextSelector)
+ ? $clone.find(nextSelector)
+ : ( $activeSide.next(selector.side).size() > 0 )
+ ? $activeSide.next(selector.side)
+ : $clone.find(selector.side).first(),
+ newSize = {}
+ ;
+ $activeSide.removeClass(className.active);
+ $nextSide.addClass(className.active);
+ $clone.prependTo($body);
+ newSize = {
+ width : $nextSide.outerWidth(),
+ height : $nextSide.outerHeight()
+ };
+ $clone.remove();
+ $module
+ .css(newSize)
+ ;
+ module.verbose('Resizing stage to fit new content', newSize);
+ },
+
+ nextSide: function(selector) {
+ nextSelector = selector;
+ $nextSide = $module.find(selector);
+ if($nextSide.size() === 0) {
+ module.error(error.side);
+ }
+ module.verbose('Next side manually set to', $nextSide);
+ },
+
+ active: function() {
+ module.verbose('Setting new side to active', $nextSide);
+ $side
+ .removeClass(className.active)
+ ;
+ $nextSide
+ .addClass(className.active)
+ ;
+ $.proxy(settings.onChange, $nextSide[0])();
+ module.set.defaultSide();
+ }
+ },
+
+ flip: {
+
+ up: function() {
+ module.debug('Flipping up', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.above();
+ module.animate( module.get.transform.up() );
+ }
+ else {
+ module.queue('flip up');
+ }
+ },
+
+ down: function() {
+ module.debug('Flipping down', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.below();
+ module.animate( module.get.transform.down() );
+ }
+ else {
+ module.queue('flip down');
+ }
+ },
+
+ left: function() {
+ module.debug('Flipping left', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.left();
+ module.animate(module.get.transform.left() );
+ }
+ else {
+ module.queue('flip left');
+ }
+ },
+
+ right: function() {
+ module.debug('Flipping right', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.right();
+ module.animate(module.get.transform.right() );
+ }
+ else {
+ module.queue('flip right');
+ }
+ },
+
+ over: function() {
+ module.debug('Flipping over', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.behind();
+ module.animate(module.get.transform.over() );
+ }
+ else {
+ module.queue('flip over');
+ }
+ },
+
+ back: function() {
+ module.debug('Flipping back', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.behind();
+ module.animate(module.get.transform.back() );
+ }
+ else {
+ module.queue('flip back');
+ }
+ }
+
+ },
+
+ get: {
+
+ transform: {
+ up: function() {
+ var
+ translate = {
+ y: -(($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
+ z: -($activeSide.outerHeight() / 2)
+ }
+ ;
+ return {
+ transform: 'translateY(' + translate.y + 'px) translateZ('+ translate.z + 'px) rotateX(-90deg)'
+ };
+ },
+
+ down: function() {
+ var
+ translate = {
+ y: -(($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
+ z: -($activeSide.outerHeight() / 2)
+ }
+ ;
+ return {
+ transform: 'translateY(' + translate.y + 'px) translateZ('+ translate.z + 'px) rotateX(90deg)'
+ };
+ },
+
+ left: function() {
+ var
+ translate = {
+ x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2),
+ z : -($activeSide.outerWidth() / 2)
+ }
+ ;
+ return {
+ transform: 'translateX(' + translate.x + 'px) translateZ(' + translate.z + 'px) rotateY(90deg)'
+ };
+ },
+
+ right: function() {
+ var
+ translate = {
+ x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2),
+ z : -($activeSide.outerWidth() / 2)
+ }
+ ;
+ return {
+ transform: 'translateX(' + translate.x + 'px) translateZ(' + translate.z + 'px) rotateY(-90deg)'
+ };
+ },
+
+ over: function() {
+ var
+ translate = {
+ x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2)
+ }
+ ;
+ return {
+ transform: 'translateX(' + translate.x + 'px) rotateY(180deg)'
+ };
+ },
+
+ back: function() {
+ var
+ translate = {
+ x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2)
+ }
+ ;
+ return {
+ transform: 'translateX(' + translate.x + 'px) rotateY(-180deg)'
+ };
+ }
+ },
+
+ transitionEvent: function() {
+ var
+ element = document.createElement('element'),
+ transitions = {
+ 'transition' :'transitionend',
+ 'OTransition' :'oTransitionEnd',
+ 'MozTransition' :'transitionend',
+ 'WebkitTransition' :'webkitTransitionEnd'
+ },
+ transition
+ ;
+ for(transition in transitions){
+ if( element.style[transition] !== undefined ){
+ return transitions[transition];
+ }
+ }
+ },
+
+ nextSide: function() {
+ return ( $activeSide.next(selector.side).size() > 0 )
+ ? $activeSide.next(selector.side)
+ : $module.find(selector.side).first()
+ ;
+ }
+
+ },
+
+ stage: {
+
+ above: function() {
+ var
+ box = {
+ origin : (($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
+ depth : {
+ active : ($nextSide.outerHeight() / 2),
+ next : ($activeSide.outerHeight() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as above', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'top' : box.origin + 'px',
+ 'transform' : 'rotateX(90deg) translateZ(' + box.depth.next + 'px)'
+ })
+ ;
+ },
+
+ below: function() {
+ var
+ box = {
+ origin : (($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
+ depth : {
+ active : ($nextSide.outerHeight() / 2),
+ next : ($activeSide.outerHeight() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as below', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'top' : box.origin + 'px',
+ 'transform' : 'rotateX(-90deg) translateZ(' + box.depth.next + 'px)'
+ })
+ ;
+ },
+
+ left: function() {
+ var
+ box = {
+ origin : ( ( $activeSide.outerWidth() - $nextSide.outerWidth() ) / 2),
+ depth : {
+ active : ($nextSide.outerWidth() / 2),
+ next : ($activeSide.outerWidth() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as left', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'left' : box.origin + 'px',
+ 'transform' : 'rotateY(-90deg) translateZ(' + box.depth.next + 'px)'
+ })
+ ;
+ },
+
+ right: function() {
+ var
+ box = {
+ origin : ( ( $activeSide.outerWidth() - $nextSide.outerWidth() ) / 2),
+ depth : {
+ active : ($nextSide.outerWidth() / 2),
+ next : ($activeSide.outerWidth() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as left', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'left' : box.origin + 'px',
+ 'transform' : 'rotateY(90deg) translateZ(' + box.depth.next + 'px)'
+ })
+ ;
+ },
+
+ behind: function() {
+ var
+ box = {
+ origin : ( ( $activeSide.outerWidth() - $nextSide.outerWidth() ) / 2),
+ depth : {
+ active : ($nextSide.outerWidth() / 2),
+ next : ($activeSide.outerWidth() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as behind', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'left' : box.origin + 'px',
+ 'transform' : 'rotateY(-180deg)'
+ })
+ ;
+ }
+ },
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.shape.settings = {
+
+ // module info
+ name : 'Shape',
+
+ // debug content outputted to console
+ debug : false,
+
+ // verbose debug output
+ verbose : true,
+
+ // performance data output
+ performance: true,
+
+ // event namespace
+ namespace : 'shape',
+
+ // callback occurs on side change
+ beforeChange : function() {},
+ onChange : function() {},
+
+ // animation duration
+ duration : 700,
+
+ // possible errors
+ error: {
+ side : 'You tried to switch to a side that does not exist.',
+ method : 'The method you called is not defined'
+ },
+
+ // classnames used
+ className : {
+ animating : 'animating',
+ hidden : 'hidden',
+ loading : 'loading',
+ active : 'active'
+ },
+
+ // selectors used
+ selector : {
+ sides : '.sides',
+ side : '.side'
+ }
+
+};
+
+
+})( jQuery, window , document );
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/modules/sidebar.css b/css/semantic/build/uncompressed/modules/sidebar.css
new file mode 100644
index 0000000..58499e6
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/sidebar.css
@@ -0,0 +1,235 @@
+/*
+ * # Semantic - Sidebar
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Sidebar
+*******************************/
+
+body {
+ -webkit-transition: margin 0.3s ease, -webkit-transform 0.3s ease /*rtl:append:,
+ padding 0.3s ease*/;
+ -moz-transition: margin 0.3s ease, -moz-transform 0.3s ease /*rtl:append:,
+ padding 0.3s ease*/;
+ transition: margin 0.3s ease, transform 0.3s ease /*rtl:append:,
+ padding 0.3s ease*/;
+}
+
+.ui.sidebar {
+ position: fixed;
+ margin: 0 !important;
+ height: 100% !important;
+ border-radius: 0px !important;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -ms-overflow-y: auto;
+ overflow-y: auto;
+ top: 0px;
+ left: 0px;
+ z-index: 999;
+ -webkit-transition: margin-left 0.3s ease, margin-top 0.3s ease;
+ -moz-transition: margin-left 0.3s ease, margin-top 0.3s ease;
+ transition: margin-left 0.3s ease, margin-top 0.3s ease;
+}
+
+/*-------------------
+ Coupling
+--------------------*/
+
+body.pushed.scrolling.ui.dimmable {
+ position: static;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Direction
+--------------------*/
+
+.ui.right.very.thin.sidebar,
+.ui.right.thin.sidebar,
+.ui.right.sidebar,
+.ui.right.wide.sidebar,
+.ui.right.very.wide.sidebar {
+ left: 100%;
+ margin: 0px !important;
+}
+
+.ui.top.sidebar {
+ width: 100% !important;
+}
+
+.ui.bottom.sidebar {
+ width: 100% !important;
+ top: 100%;
+ margin: 0px !important;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.active.sidebar {
+ margin-left: 0px !important;
+}
+
+.ui.active.top.sidebar,
+.ui.active.bottom.sidebar {
+ margin-top: 0px !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Formatted
+--------------------*/
+
+.ui.styled.sidebar {
+ padding: 1em 1.5em;
+ background-color: #FFFFFF;
+ -webkit-box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1);
+ box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1);
+}
+
+.ui.styled.very.thin.sidebar {
+ padding: 0.5em;
+}
+
+.ui.styled.thin.sidebar {
+ padding: 1em;
+}
+
+/*-------------------
+ Floating
+--------------------*/
+
+.ui.floating.sidebar {
+ -webkit-box-shadow: 2px 0px 2px rgba(0, 0, 0, 0.2);
+ box-shadow: 2px 0px 2px rgba(0, 0, 0, 0.2);
+}
+
+.ui.right.floating.sidebar {
+ -webkit-box-shadow: -2px 0px 2px rgba(0, 0, 0, 0.2);
+ box-shadow: -2px 0px 2px rgba(0, 0, 0, 0.2);
+}
+
+.ui.top.floating.sidebar {
+ -webkit-box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.2);
+ box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.2);
+}
+
+.ui.bottom.floating.sidebar {
+ -webkit-box-shadow: 0px -4px 4px rgba(0, 0, 0, 0.2);
+ box-shadow: 0px -4px 4px rgba(0, 0, 0, 0.2);
+}
+
+/*-------------------
+ Width
+--------------------*/
+
+/* Very Thin */
+
+.ui.very.thin.sidebar {
+ width: 60px !important;
+ margin-left: -60px !important;
+}
+
+.ui.active.very.thin.sidebar {
+ margin-left: 0px !important;
+}
+
+.ui.active.right.very.thin.sidebar {
+ margin-left: -60px !important;
+}
+
+/* Thin */
+
+.ui.thin.sidebar {
+ width: 200px !important;
+ margin-left: -200px !important;
+}
+
+.ui.active.thin.sidebar {
+ margin-left: 0px !important;
+}
+
+.ui.active.right.thin.sidebar {
+ margin-left: -200px !important;
+}
+
+/* Standard */
+
+.ui.sidebar {
+ width: 275px !important;
+ margin-left: -275px !important;
+}
+
+.ui.active.sidebar {
+ margin-left: 0px !important;
+}
+
+.ui.active.right.sidebar {
+ margin-left: -275px !important;
+}
+
+/* Wide */
+
+.ui.wide.sidebar {
+ width: 350px !important;
+ margin-left: -350px !important;
+}
+
+.ui.active.wide.sidebar {
+ margin-left: 0px !important;
+}
+
+.ui.active.right.wide.sidebar {
+ margin-left: -350px !important;
+}
+
+/* Very Wide */
+
+.ui.very.wide.sidebar {
+ width: 475px !important;
+ margin-left: -475px !important;
+}
+
+.ui.active.very.wide.sidebar {
+ margin-left: 0px !important;
+}
+
+.ui.active.right.very.wide.sidebar {
+ margin-left: -475px !important;
+}
+
+/*-------------------
+ Height
+--------------------*/
+
+/* Standard */
+
+.ui.top.sidebar {
+ margin: -40px 0px 0px 0px !important;
+}
+
+.ui.top.sidebar,
+.ui.bottom.sidebar {
+ height: 40px !important;
+}
+
+.ui.active.bottom.sidebar {
+ margin-top: -40px !important;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/modules/sidebar.js b/css/semantic/build/uncompressed/modules/sidebar.js
new file mode 100644
index 0000000..521cc9a
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/sidebar.js
@@ -0,0 +1,514 @@
+/*
+ * # Semantic - Sidebar
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.sidebar = function(parameters) {
+ var
+ $allModules = $(this),
+ $body = $('body'),
+ $head = $('head'),
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.sidebar.settings, parameters)
+ : $.extend({}, $.fn.sidebar.settings),
+
+ selector = settings.selector,
+ className = settings.className,
+ namespace = settings.namespace,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $style = $('style[title=' + namespace + ']'),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing sidebar', $module);
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module for', $module);
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing selector cache');
+ $style = $('style[title=' + namespace + ']');
+ },
+
+ attachEvents: function(selector, event) {
+ var
+ $toggle = $(selector)
+ ;
+ event = $.isFunction(module[event])
+ ? module[event]
+ : module.toggle
+ ;
+ if($toggle.size() > 0) {
+ module.debug('Attaching sidebar events to element', selector, event);
+ $toggle
+ .off(eventNamespace)
+ .on('click' + eventNamespace, event)
+ ;
+ }
+ else {
+ module.error(error.notFound);
+ }
+ },
+
+ show: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.debug('Showing sidebar', callback);
+ if(module.is.closed()) {
+ if(!settings.overlay) {
+ if(settings.exclusive) {
+ module.hideAll();
+ }
+ module.pushPage();
+ }
+ module.set.active();
+ callback();
+ $.proxy(settings.onChange, element)();
+ $.proxy(settings.onShow, element)();
+ }
+ else {
+ module.debug('Sidebar is already visible');
+ }
+ },
+
+ hide: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.debug('Hiding sidebar', callback);
+ if(module.is.open()) {
+ if(!settings.overlay) {
+ module.pullPage();
+ module.remove.pushed();
+ }
+ module.remove.active();
+ callback();
+ $.proxy(settings.onChange, element)();
+ $.proxy(settings.onHide, element)();
+ }
+ },
+
+ hideAll: function() {
+ $(selector.sidebar)
+ .filter(':visible')
+ .sidebar('hide')
+ ;
+ },
+
+ toggle: function() {
+ if(module.is.closed()) {
+ module.show();
+ }
+ else {
+ module.hide();
+ }
+ },
+
+ pushPage: function() {
+ var
+ direction = module.get.direction(),
+ distance = (module.is.vertical())
+ ? $module.outerHeight()
+ : $module.outerWidth()
+ ;
+ if(settings.useCSS) {
+ module.debug('Using CSS to animate body');
+ module.add.bodyCSS(direction, distance);
+ module.set.pushed();
+ }
+ else {
+ module.animatePage(direction, distance, module.set.pushed);
+ }
+ },
+
+ pullPage: function() {
+ var
+ direction = module.get.direction()
+ ;
+ if(settings.useCSS) {
+ module.debug('Resetting body position css');
+ module.remove.bodyCSS();
+ }
+ else {
+ module.debug('Resetting body position using javascript');
+ module.animatePage(direction, 0);
+ }
+ module.remove.pushed();
+ },
+
+ animatePage: function(direction, distance) {
+ var
+ animateSettings = {}
+ ;
+ animateSettings['padding-' + direction] = distance;
+ module.debug('Using javascript to animate body', animateSettings);
+ $body
+ .animate(animateSettings, settings.duration, module.set.pushed)
+ ;
+ },
+
+ add: {
+ bodyCSS: function(direction, distance) {
+ var
+ style
+ ;
+ if(direction !== className.bottom) {
+ style = ''
+ + ''
+ ;
+ }
+ $head.append(style);
+ module.debug('Adding body css to head', $style);
+ }
+ },
+
+
+ remove: {
+ bodyCSS: function() {
+ module.debug('Removing body css styles', $style);
+ module.refresh();
+ $style.remove();
+ },
+ active: function() {
+ $module.removeClass(className.active);
+ },
+ pushed: function() {
+ module.verbose('Removing body push state', module.get.direction());
+ $body
+ .removeClass(className[ module.get.direction() ])
+ .removeClass(className.pushed)
+ ;
+ }
+ },
+
+ set: {
+ active: function() {
+ $module.addClass(className.active);
+ },
+ pushed: function() {
+ module.verbose('Adding body push state', module.get.direction());
+ $body
+ .addClass(className[ module.get.direction() ])
+ .addClass(className.pushed)
+ ;
+ }
+ },
+
+ get: {
+ direction: function() {
+ if($module.hasClass(className.top)) {
+ return className.top;
+ }
+ else if($module.hasClass(className.right)) {
+ return className.right;
+ }
+ else if($module.hasClass(className.bottom)) {
+ return className.bottom;
+ }
+ else {
+ return className.left;
+ }
+ },
+ transitionEvent: function() {
+ var
+ element = document.createElement('element'),
+ transitions = {
+ 'transition' :'transitionend',
+ 'OTransition' :'oTransitionEnd',
+ 'MozTransition' :'transitionend',
+ 'WebkitTransition' :'webkitTransitionEnd'
+ },
+ transition
+ ;
+ for(transition in transitions){
+ if( element.style[transition] !== undefined ){
+ return transitions[transition];
+ }
+ }
+ }
+ },
+
+ is: {
+ open: function() {
+ return $module.is(':animated') || $module.hasClass(className.active);
+ },
+ closed: function() {
+ return !module.is.open();
+ },
+ vertical: function() {
+ return $module.hasClass(className.top);
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.sidebar.settings = {
+
+ name : 'Sidebar',
+ namespace : 'sidebar',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ useCSS : true,
+ exclusive : true,
+ overlay : false,
+ duration : 300,
+
+ onChange : function(){},
+ onShow : function(){},
+ onHide : function(){},
+
+ className: {
+ active : 'active',
+ pushed : 'pushed',
+ top : 'top',
+ left : 'left',
+ right : 'right',
+ bottom : 'bottom'
+ },
+
+ selector: {
+ sidebar: '.ui.sidebar'
+ },
+
+ error : {
+ method : 'The method you called is not defined.',
+ notFound : 'There were no elements that matched the specified selector'
+ }
+
+};
+
+})( jQuery, window , document );
diff --git a/css/semantic/build/uncompressed/modules/tab.css b/css/semantic/build/uncompressed/modules/tab.css
new file mode 100644
index 0000000..df3e0ba
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/tab.css
@@ -0,0 +1,63 @@
+/*
+ * # Semantic - Tab
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ UI Tabs
+*******************************/
+
+.ui.tab {
+ display: none;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------------
+ Active
+---------------------*/
+
+.ui.tab.active,
+.ui.tab.open {
+ display: block;
+}
+
+/*--------------------
+ Loading
+---------------------*/
+
+.ui.tab.loading {
+ position: relative;
+ overflow: hidden;
+ display: block;
+ min-height: 250px;
+ text-indent: -10000px;
+}
+
+.ui.tab.loading * {
+ position: relative !important;
+ left: -10000px !important;
+}
+
+.ui.tab.loading:after {
+ position: absolute;
+ top: 50px;
+ left: 50%;
+ content: 'Loading...';
+ margin-left: -32px;
+ text-indent: 5px;
+ color: rgba(0, 0, 0, 0.4);
+ width: 100%;
+ height: 100%;
+ padding-top: 75px;
+ background: url(../images/loader-large.gif) no-repeat 0px 0px;
+ visibility: visible;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/modules/tab.js b/css/semantic/build/uncompressed/modules/tab.js
new file mode 100644
index 0000000..4dbf98c
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/tab.js
@@ -0,0 +1,710 @@
+/*
+ * # Semantic - Tab
+ * http://github.com/jlukic/semantic-ui/
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+
+;(function ($, window, document, undefined) {
+
+ $.fn.tab = function(parameters) {
+
+ var
+ settings = $.extend(true, {}, $.fn.tab.settings, parameters),
+
+ $module = $(this),
+ $tabs = $(settings.context).find(settings.selector.tabs),
+
+ moduleSelector = $module.selector || '',
+
+ cache = {},
+ firstLoad = true,
+ recursionDepth = 0,
+
+ activeTabPath,
+ parameterArray,
+ historyEvent,
+
+ element = this,
+ time = new Date().getTime(),
+ performance = [],
+
+ className = settings.className,
+ metadata = settings.metadata,
+ error = settings.error,
+
+ eventNamespace = '.' + settings.namespace,
+ moduleNamespace = 'module-' + settings.namespace,
+
+ instance = $module.data(moduleNamespace),
+
+ query = arguments[0],
+ methodInvoked = (instance !== undefined && typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ module,
+ returnedValue
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing Tabs', $module);
+
+ // set up automatic routing
+ if(settings.auto) {
+ module.verbose('Setting up automatic tab retrieval from server');
+ settings.apiSettings = {
+ url: settings.path + '/{$tab}'
+ };
+ }
+
+ // attach history events
+ if(settings.history) {
+ module.debug('Initializing page state');
+ if( $.address === undefined ) {
+ module.error(error.state);
+ return false;
+ }
+ else {
+ if(settings.historyType == 'hash') {
+ module.debug('Using hash state change to manage state');
+ }
+ if(settings.historyType == 'html5') {
+ module.debug('Using HTML5 to manage state');
+ if(settings.path !== false) {
+ $.address
+ .history(true)
+ .state(settings.path)
+ ;
+ }
+ else {
+ module.error(error.path);
+ return false;
+ }
+ }
+ $.address
+ .unbind('change')
+ .bind('change', module.event.history.change)
+ ;
+ }
+ }
+
+ // attach events if navigation wasn't set to window
+ if( !$.isWindow( element ) ) {
+ module.debug('Attaching tab activation events to element', $module);
+ $module
+ .on('click' + eventNamespace, module.event.click)
+ ;
+ }
+ module.instantiate();
+ },
+
+ instantiate: function () {
+ module.verbose('Storing instance of module', module);
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.debug('Destroying tabs', $module);
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+ click: function(event) {
+ var
+ tabPath = $(this).data(metadata.tab)
+ ;
+ if(tabPath !== undefined) {
+ if(settings.history) {
+ module.verbose('Updating page state', event);
+ $.address.value(tabPath);
+ }
+ else {
+ module.verbose('Changing tab without state management', event);
+ module.changeTab(tabPath);
+ }
+ event.preventDefault();
+ }
+ else {
+ module.debug('No tab specified');
+ }
+ },
+ history: {
+ change: function(event) {
+ var
+ tabPath = event.pathNames.join('/') || module.get.initialPath(),
+ pageTitle = settings.templates.determineTitle(tabPath) || false
+ ;
+ module.debug('History change event', tabPath, event);
+ historyEvent = event;
+ if(tabPath !== undefined) {
+ module.changeTab(tabPath);
+ }
+ if(pageTitle) {
+ $.address.title(pageTitle);
+ }
+ }
+ }
+ },
+
+ refresh: function() {
+ if(activeTabPath) {
+ module.debug('Refreshing tab', activeTabPath);
+ module.changeTab(activeTabPath);
+ }
+ },
+
+ cache: {
+
+ read: function(cacheKey) {
+ return (cacheKey !== undefined)
+ ? cache[cacheKey]
+ : false
+ ;
+ },
+ add: function(cacheKey, content) {
+ cacheKey = cacheKey || activeTabPath;
+ module.debug('Adding cached content for', cacheKey);
+ cache[cacheKey] = content;
+ },
+ remove: function(cacheKey) {
+ cacheKey = cacheKey || activeTabPath;
+ module.debug('Removing cached content for', cacheKey);
+ delete cache[cacheKey];
+ }
+ },
+
+ set: {
+ state: function(url) {
+ $.address.value(url);
+ }
+ },
+
+ changeTab: function(tabPath) {
+ var
+ pushStateAvailable = (window.history && window.history.pushState),
+ shouldIgnoreLoad = (pushStateAvailable && settings.ignoreFirstLoad && firstLoad),
+ remoteContent = (settings.auto || $.isPlainObject(settings.apiSettings) ),
+ // only get default path if not remote content
+ pathArray = (remoteContent && !shouldIgnoreLoad)
+ ? module.utilities.pathToArray(tabPath)
+ : module.get.defaultPathArray(tabPath)
+ ;
+ tabPath = module.utilities.arrayToPath(pathArray);
+ module.deactivate.all();
+ $.each(pathArray, function(index, tab) {
+ var
+ currentPathArray = pathArray.slice(0, index + 1),
+ currentPath = module.utilities.arrayToPath(currentPathArray),
+
+ isTab = module.is.tab(currentPath),
+ isLastIndex = (index + 1 == pathArray.length),
+
+ $tab = module.get.tabElement(currentPath),
+ nextPathArray,
+ nextPath,
+ isLastTab
+ ;
+ module.verbose('Looking for tab', tab);
+ if(isTab) {
+ module.verbose('Tab was found', tab);
+
+ // scope up
+ activeTabPath = currentPath;
+ parameterArray = module.utilities.filterArray(pathArray, currentPathArray);
+
+ if(isLastIndex) {
+ isLastTab = true;
+ }
+ else {
+ nextPathArray = pathArray.slice(0, index + 2);
+ nextPath = module.utilities.arrayToPath(nextPathArray);
+ isLastTab = ( !module.is.tab(nextPath) );
+ if(isLastTab) {
+ module.verbose('Tab parameters found', nextPathArray);
+ }
+ }
+ if(isLastTab && remoteContent) {
+ if(!shouldIgnoreLoad) {
+ module.activate.navigation(currentPath);
+ module.content.fetch(currentPath, tabPath);
+ }
+ else {
+ module.debug('Ignoring remote content on first tab load', currentPath);
+ firstLoad = false;
+ module.cache.add(tabPath, $tab.html());
+ module.activate.all(currentPath);
+ $.proxy(settings.onTabInit, $tab)(currentPath, parameterArray, historyEvent);
+ $.proxy(settings.onTabLoad, $tab)(currentPath, parameterArray, historyEvent);
+ }
+ return false;
+ }
+ else {
+ module.debug('Opened local tab', currentPath);
+ module.activate.all(currentPath);
+ if( !module.cache.read(currentPath) ) {
+ module.cache.add(currentPath, true);
+ module.debug('First time tab loaded calling tab init');
+ $.proxy(settings.onTabInit, $tab)(currentPath, parameterArray, historyEvent);
+ }
+ $.proxy(settings.onTabLoad, $tab)(currentPath, parameterArray, historyEvent);
+ }
+ }
+ else {
+ module.error(error.missingTab, tab);
+ return false;
+ }
+ });
+ },
+
+ content: {
+
+ fetch: function(tabPath, fullTabPath) {
+ var
+ $tab = module.get.tabElement(tabPath),
+ apiSettings = {
+ dataType : 'html',
+ stateContext : $tab,
+ success : function(response) {
+ module.cache.add(fullTabPath, response);
+ module.content.update(tabPath, response);
+ if(tabPath == activeTabPath) {
+ module.debug('Content loaded', tabPath);
+ module.activate.tab(tabPath);
+ }
+ else {
+ module.debug('Content loaded in background', tabPath);
+ }
+ $.proxy(settings.onTabInit, $tab)(tabPath, parameterArray, historyEvent);
+ $.proxy(settings.onTabLoad, $tab)(tabPath, parameterArray, historyEvent);
+ },
+ urlData: { tab: fullTabPath }
+ },
+ request = $tab.data(metadata.promise) || false,
+ existingRequest = ( request && request.state() === 'pending' ),
+ requestSettings,
+ cachedContent
+ ;
+
+ fullTabPath = fullTabPath || tabPath;
+ cachedContent = module.cache.read(fullTabPath);
+
+ if(settings.cache && cachedContent) {
+ module.debug('Showing existing content', fullTabPath);
+ module.content.update(tabPath, cachedContent);
+ module.activate.tab(tabPath);
+ $.proxy(settings.onTabLoad, $tab)(tabPath, parameterArray, historyEvent);
+ }
+ else if(existingRequest) {
+ module.debug('Content is already loading', fullTabPath);
+ $tab
+ .addClass(className.loading)
+ ;
+ }
+ else if($.api !== undefined) {
+ console.log(settings.apiSettings);
+ requestSettings = $.extend(true, { headers: { 'X-Remote': true } }, settings.apiSettings, apiSettings);
+ module.debug('Retrieving remote content', fullTabPath, requestSettings);
+ $.api( requestSettings );
+ }
+ else {
+ module.error(error.api);
+ }
+ },
+
+ update: function(tabPath, html) {
+ module.debug('Updating html for', tabPath);
+ var
+ $tab = module.get.tabElement(tabPath)
+ ;
+ $tab
+ .html(html)
+ ;
+ }
+ },
+
+ activate: {
+ all: function(tabPath) {
+ module.activate.tab(tabPath);
+ module.activate.navigation(tabPath);
+ },
+ tab: function(tabPath) {
+ var
+ $tab = module.get.tabElement(tabPath)
+ ;
+ module.verbose('Showing tab content for', $tab);
+ $tab.addClass(className.active);
+ },
+ navigation: function(tabPath) {
+ var
+ $navigation = module.get.navElement(tabPath)
+ ;
+ module.verbose('Activating tab navigation for', $navigation, tabPath);
+ $navigation.addClass(className.active);
+ }
+ },
+
+ deactivate: {
+ all: function() {
+ module.deactivate.navigation();
+ module.deactivate.tabs();
+ },
+ navigation: function() {
+ $module
+ .removeClass(className.active)
+ ;
+ },
+ tabs: function() {
+ $tabs
+ .removeClass(className.active + ' ' + className.loading)
+ ;
+ }
+ },
+
+ is: {
+ tab: function(tabName) {
+ return (tabName !== undefined)
+ ? ( module.get.tabElement(tabName).size() > 0 )
+ : false
+ ;
+ }
+ },
+
+ get: {
+ initialPath: function() {
+ return $module.eq(0).data(metadata.tab) || $tabs.eq(0).data(metadata.tab);
+ },
+ path: function() {
+ return $.address.value();
+ },
+ // adds default tabs to tab path
+ defaultPathArray: function(tabPath) {
+ return module.utilities.pathToArray( module.get.defaultPath(tabPath) );
+ },
+ defaultPath: function(tabPath) {
+ var
+ $defaultNav = $module.filter('[data-' + metadata.tab + '^="' + tabPath + '/"]').eq(0),
+ defaultTab = $defaultNav.data(metadata.tab) || false
+ ;
+ if( defaultTab ) {
+ module.debug('Found default tab', defaultTab);
+ if(recursionDepth < settings.maxDepth) {
+ recursionDepth++;
+ return module.get.defaultPath(defaultTab);
+ }
+ module.error(error.recursion);
+ }
+ else {
+ module.debug('No default tabs found for', tabPath, $tabs);
+ }
+ recursionDepth = 0;
+ return tabPath;
+ },
+ navElement: function(tabPath) {
+ tabPath = tabPath || activeTabPath;
+ return $module.filter('[data-' + metadata.tab + '="' + tabPath + '"]');
+ },
+ tabElement: function(tabPath) {
+ var
+ $fullPathTab,
+ $simplePathTab,
+ tabPathArray,
+ lastTab
+ ;
+ tabPath = tabPath || activeTabPath;
+ tabPathArray = module.utilities.pathToArray(tabPath);
+ lastTab = module.utilities.last(tabPathArray);
+ $fullPathTab = $tabs.filter('[data-' + metadata.tab + '="' + lastTab + '"]');
+ $simplePathTab = $tabs.filter('[data-' + metadata.tab + '="' + tabPath + '"]');
+ return ($fullPathTab.size() > 0)
+ ? $fullPathTab
+ : $simplePathTab
+ ;
+ },
+ tab: function() {
+ return activeTabPath;
+ }
+ },
+
+ utilities: {
+ filterArray: function(keepArray, removeArray) {
+ return $.grep(keepArray, function(keepValue) {
+ return ( $.inArray(keepValue, removeArray) == -1);
+ });
+ },
+ last: function(array) {
+ return $.isArray(array)
+ ? array[ array.length - 1]
+ : false
+ ;
+ },
+ pathToArray: function(pathName) {
+ if(pathName === undefined) {
+ pathName = activeTabPath;
+ }
+ return typeof pathName == 'string'
+ ? pathName.split('/')
+ : [pathName]
+ ;
+ },
+ arrayToPath: function(pathArray) {
+ return $.isArray(pathArray)
+ ? pathArray.join('/')
+ : false
+ ;
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+
+ };
+
+ // shortcut for tabbed content with no defined navigation
+ $.tab = function(settings) {
+ $(window).tab(settings);
+ };
+
+ $.fn.tab.settings = {
+
+ name : 'Tab',
+ debug : false,
+ verbose : true,
+ performance : true,
+ namespace : 'tab',
+
+ // only called first time a tab's content is loaded (when remote source)
+ onTabInit : function(tabPath, parameterArray, historyEvent) {},
+ // called on every load
+ onTabLoad : function(tabPath, parameterArray, historyEvent) {},
+
+ templates : {
+ determineTitle: function(tabArray) {}
+ },
+
+ // uses pjax style endpoints fetching content from same url with remote-content headers
+ auto : false,
+ history : true,
+ historyType : 'hash',
+ path : false,
+
+ context : 'body',
+
+ // max depth a tab can be nested
+ maxDepth : 25,
+ // dont load content on first load
+ ignoreFirstLoad : false,
+ // load tab content new every tab click
+ alwaysRefresh : false,
+ // cache the content requests to pull locally
+ cache : true,
+ // settings for api call
+ apiSettings : false,
+
+ error: {
+ api : 'You attempted to load content without API module',
+ method : 'The method you called is not defined',
+ missingTab : 'Tab cannot be found',
+ noContent : 'The tab you specified is missing a content url.',
+ path : 'History enabled, but no path was specified',
+ recursion : 'Max recursive depth reached',
+ state : 'The state library has not been initialized'
+ },
+
+ metadata : {
+ tab : 'tab',
+ loaded : 'loaded',
+ promise: 'promise'
+ },
+
+ className : {
+ loading : 'loading',
+ active : 'active'
+ },
+
+ selector : {
+ tabs : '.ui.tab'
+ }
+
+ };
+
+})( jQuery, window , document );
diff --git a/css/semantic/build/uncompressed/modules/transition.css b/css/semantic/build/uncompressed/modules/transition.css
new file mode 100644
index 0000000..037d971
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/transition.css
@@ -0,0 +1,1218 @@
+/*******************************
+ Semantic - Transition
+ Author: Jack Lukic
+
+ CSS animation definitions for
+ transition module
+
+*******************************/
+
+/*
+ Some transitions adapted from Animate CSS
+ https://github.com/daneden/animate.css
+*/
+
+.ui.transition {
+ -webkit-animation-iteration-count: 1;
+ -moz-animation-iteration-count: 1;
+ animation-iteration-count: 1;
+ -webkit-animation-duration: 1s;
+ -moz-animation-duration: 1s;
+ animation-duration: 1s;
+ -webkit-animation-timing-function: ease;
+ -moz-animation-timing-function: ease;
+ animation-timing-function: ease;
+ -webkit-animation-fill-mode: both;
+ -moz-animation-fill-mode: both;
+ animation-fill-mode: both;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.animating.transition {
+ display: block;
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ -ms-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-transform: translateZ(0);
+ -moz-transform: translateZ(0);
+ -ms-transform: translateZ(0);
+ transform: translateZ(0);
+}
+
+/* Loading */
+
+.ui.loading.transition {
+ position: absolute;
+ top: -999999px;
+ left: -99999px;
+}
+
+/* Hidden */
+
+.ui.hidden.transition {
+ display: none;
+}
+
+/* Visible */
+
+.ui.visible.transition {
+ display: block;
+ visibility: visible;
+}
+
+/* Disabled */
+
+.ui.disabled.transition {
+ -webkit-animation-play-state: paused;
+ -moz-animation-play-state: paused;
+ animation-play-state: paused;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.looping.transition {
+ -webkit-animation-iteration-count: infinite;
+ -moz-animation-iteration-count: infinite;
+ animation-iteration-count: infinite;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Emphasis
+---------------*/
+
+.ui.flash.transition {
+ -webkit-animation-name: flash;
+ -moz-animation-name: flash;
+ animation-name: flash;
+}
+
+.ui.shake.transition {
+ -webkit-animation-name: shake;
+ -moz-animation-name: shake;
+ animation-name: shake;
+}
+
+.ui.bounce.transition {
+ -webkit-animation-name: bounce;
+ -moz-animation-name: bounce;
+ animation-name: bounce;
+}
+
+.ui.tada.transition {
+ -webkit-animation-name: tada;
+ -moz-animation-name: tada;
+ animation-name: tada;
+}
+
+/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
+
+.ui.pulse.transition {
+ -webkit-animation-name: pulse;
+ -moz-animation-name: pulse;
+ animation-name: pulse;
+}
+
+/*--------------
+ Flips
+---------------*/
+
+.ui.flip.transition.in,
+.ui.flip.transition.out {
+ -webkit-perspective: 2000px;
+ -moz-perspective: 2000px;
+ -ms-perspective: 2000px;
+ perspective: 2000px;
+}
+
+.ui.horizontal.flip.transition.in,
+.ui.horizontal.flip.transition.out {
+ -webkit-animation-name: horizontalFlip;
+ -moz-animation-name: horizontalFlip;
+ animation-name: horizontalFlip;
+}
+
+.ui.horizontal.flip.transition.out {
+ -webkit-animation-name: horizontalFlipOut;
+ -moz-animation-name: horizontalFlipOut;
+ animation-name: horizontalFlipOut;
+}
+
+.ui.vertical.flip.transition.in,
+.ui.vertical.flip.transition.out {
+ -webkit-animation-name: verticalFlip;
+ -moz-animation-name: verticalFlip;
+ animation-name: verticalFlip;
+}
+
+.ui.vertical.flip.transition.out {
+ -webkit-animation-name: verticalFlipOut;
+ -moz-animation-name: verticalFlipOut;
+ animation-name: verticalFlipOut;
+}
+
+/*--------------
+ Fades
+---------------*/
+
+.ui.fade.transition.in {
+ -webkit-animation-name: fade;
+ -moz-animation-name: fade;
+ animation-name: fade;
+}
+
+.ui.fade.transition.out {
+ -webkit-animation-name: fadeOut;
+ -moz-animation-name: fadeOut;
+ animation-name: fadeOut;
+}
+
+.ui.fade.up.transition.in {
+ -webkit-animation-name: fadeUp;
+ -moz-animation-name: fadeUp;
+ animation-name: fadeUp;
+}
+
+.ui.fade.up.transition.out {
+ -webkit-animation-name: fadeUpOut;
+ -moz-animation-name: fadeUpOut;
+ animation-name: fadeUpOut;
+}
+
+.ui.fade.down.transition.in {
+ -webkit-animation-name: fadeDown;
+ -moz-animation-name: fadeDown;
+ animation-name: fadeDown;
+}
+
+.ui.fade.down.transition.out {
+ -webkit-animation-name: fadeDownOut;
+ -moz-animation-name: fadeDownOut;
+ animation-name: fadeDownOut;
+}
+
+/*--------------
+ Scale
+---------------*/
+
+.ui.scale.transition.in {
+ -webkit-animation-name: scale;
+ -moz-animation-name: scale;
+ animation-name: scale;
+}
+
+.ui.scale.transition.out {
+ -webkit-animation-name: scaleOut;
+ -moz-animation-name: scaleOut;
+ animation-name: scaleOut;
+}
+
+/*--------------
+ Slide
+---------------*/
+
+.ui.slide.down.transition.in {
+ -webkit-animation-name: slide;
+ -moz-animation-name: slide;
+ animation-name: slide;
+ -moz-transform-origin: 50% 0%;
+ transform-origin: 50% 0%;
+ -ms-transform-origin: 50% 0%;
+ -webkit-transform-origin: 50% 0%;
+}
+
+.ui.slide.down.transition.out {
+ -webkit-animation-name: slideOut;
+ -moz-animation-name: slideOut;
+ animation-name: slideOut;
+ -webkit-transform-origin: 50% 0%;
+ -moz-transform-origin: 50% 0%;
+ -ms-transform-origin: 50% 0%;
+ transform-origin: 50% 0%;
+}
+
+.ui.slide.up.transition.in {
+ -webkit-animation-name: slide;
+ -moz-animation-name: slide;
+ animation-name: slide;
+ -webkit-transform-origin: 50% 100%;
+ -moz-transform-origin: 50% 100%;
+ -ms-transform-origin: 50% 100%;
+ transform-origin: 50% 100%;
+}
+
+.ui.slide.up.transition.out {
+ -webkit-animation-name: slideOut;
+ -moz-animation-name: slideOut;
+ animation-name: slideOut;
+ -webkit-transform-origin: 50% 100%;
+ -moz-transform-origin: 50% 100%;
+ -ms-transform-origin: 50% 100%;
+ transform-origin: 50% 100%;
+}
+
+@-webkit-keyframes slide {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+}
+
+@-moz-keyframes slide {
+ 0% {
+ opacity: 0;
+ -moz-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+}
+
+@keyframes slide {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ -moz-transform: scaleY(0);
+ -ms-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ -moz-transform: scaleY(1);
+ -ms-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+}
+
+@-webkit-keyframes slideOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+}
+
+@-moz-keyframes slideOut {
+ 0% {
+ opacity: 1;
+ -moz-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+}
+
+@keyframes slideOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ -moz-transform: scaleY(1);
+ -ms-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ -moz-transform: scaleY(0);
+ -ms-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+}
+
+/*******************************
+ Animations
+*******************************/
+
+/*--------------
+ Emphasis
+---------------*/
+
+/* Flash */
+
+@-webkit-keyframes flash {
+ 0%, 50%, 100% {
+ opacity: 1;
+ }
+
+ 25%, 75% {
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes flash {
+ 0%, 50%, 100% {
+ opacity: 1;
+ }
+
+ 25%, 75% {
+ opacity: 0;
+ }
+}
+
+@keyframes flash {
+ 0%, 50%, 100% {
+ opacity: 1;
+ }
+
+ 25%, 75% {
+ opacity: 0;
+ }
+}
+
+/* Shake */
+
+@-webkit-keyframes shake {
+ 0%, 100% {
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ }
+
+ 10%, 30%, 50%, 70%, 90% {
+ -webkit-transform: translateX(-10px);
+ transform: translateX(-10px);
+ }
+
+ 20%, 40%, 60%, 80% {
+ -webkit-transform: translateX(10px);
+ transform: translateX(10px);
+ }
+}
+
+@-moz-keyframes shake {
+ 0%, 100% {
+ -moz-transform: translateX(0);
+ transform: translateX(0);
+ }
+
+ 10%, 30%, 50%, 70%, 90% {
+ -moz-transform: translateX(-10px);
+ transform: translateX(-10px);
+ }
+
+ 20%, 40%, 60%, 80% {
+ -moz-transform: translateX(10px);
+ transform: translateX(10px);
+ }
+}
+
+@keyframes shake {
+ 0%, 100% {
+ -webkit-transform: translateX(0);
+ -moz-transform: translateX(0);
+ -ms-transform: translateX(0);
+ transform: translateX(0);
+ }
+
+ 10%, 30%, 50%, 70%, 90% {
+ -webkit-transform: translateX(-10px);
+ -moz-transform: translateX(-10px);
+ -ms-transform: translateX(-10px);
+ transform: translateX(-10px);
+ }
+
+ 20%, 40%, 60%, 80% {
+ -webkit-transform: translateX(10px);
+ -moz-transform: translateX(10px);
+ -ms-transform: translateX(10px);
+ transform: translateX(10px);
+ }
+}
+
+/* Bounce */
+
+@-webkit-keyframes bounce {
+ 0%, 20%, 50%, 80%, 100% {
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 40% {
+ -webkit-transform: translateY(-30px);
+ transform: translateY(-30px);
+ }
+
+ 60% {
+ -webkit-transform: translateY(-15px);
+ transform: translateY(-15px);
+ }
+}
+
+@-moz-keyframes bounce {
+ 0%, 20%, 50%, 80%, 100% {
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 40% {
+ -moz-transform: translateY(-30px);
+ transform: translateY(-30px);
+ }
+
+ 60% {
+ -moz-transform: translateY(-15px);
+ transform: translateY(-15px);
+ }
+}
+
+@keyframes bounce {
+ 0%, 20%, 50%, 80%, 100% {
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 40% {
+ -webkit-transform: translateY(-30px);
+ -moz-transform: translateY(-30px);
+ -ms-transform: translateY(-30px);
+ transform: translateY(-30px);
+ }
+
+ 60% {
+ -webkit-transform: translateY(-15px);
+ -moz-transform: translateY(-15px);
+ -ms-transform: translateY(-15px);
+ transform: translateY(-15px);
+ }
+}
+
+/* Tada */
+
+@-webkit-keyframes tada {
+ 0% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 10%, 20% {
+ -webkit-transform: scale(0.9) rotate(-3deg);
+ transform: scale(0.9) rotate(-3deg);
+ }
+
+ 30%, 50%, 70%, 90% {
+ -webkit-transform: scale(1.1) rotate(3deg);
+ transform: scale(1.1) rotate(3deg);
+ }
+
+ 40%, 60%, 80% {
+ -webkit-transform: scale(1.1) rotate(-3deg);
+ transform: scale(1.1) rotate(-3deg);
+ }
+
+ 100% {
+ -webkit-transform: scale(1) rotate(0);
+ transform: scale(1) rotate(0);
+ }
+}
+
+@-moz-keyframes tada {
+ 0% {
+ -moz-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 10%, 20% {
+ -moz-transform: scale(0.9) rotate(-3deg);
+ transform: scale(0.9) rotate(-3deg);
+ }
+
+ 30%, 50%, 70%, 90% {
+ -moz-transform: scale(1.1) rotate(3deg);
+ transform: scale(1.1) rotate(3deg);
+ }
+
+ 40%, 60%, 80% {
+ -moz-transform: scale(1.1) rotate(-3deg);
+ transform: scale(1.1) rotate(-3deg);
+ }
+
+ 100% {
+ -moz-transform: scale(1) rotate(0);
+ transform: scale(1) rotate(0);
+ }
+}
+
+@keyframes tada {
+ 0% {
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 10%, 20% {
+ -webkit-transform: scale(0.9) rotate(-3deg);
+ -moz-transform: scale(0.9) rotate(-3deg);
+ -ms-transform: scale(0.9) rotate(-3deg);
+ transform: scale(0.9) rotate(-3deg);
+ }
+
+ 30%, 50%, 70%, 90% {
+ -webkit-transform: scale(1.1) rotate(3deg);
+ -moz-transform: scale(1.1) rotate(3deg);
+ -ms-transform: scale(1.1) rotate(3deg);
+ transform: scale(1.1) rotate(3deg);
+ }
+
+ 40%, 60%, 80% {
+ -webkit-transform: scale(1.1) rotate(-3deg);
+ -moz-transform: scale(1.1) rotate(-3deg);
+ -ms-transform: scale(1.1) rotate(-3deg);
+ transform: scale(1.1) rotate(-3deg);
+ }
+
+ 100% {
+ -webkit-transform: scale(1) rotate(0);
+ -moz-transform: scale(1) rotate(0);
+ -ms-transform: scale(1) rotate(0);
+ transform: scale(1) rotate(0);
+ }
+}
+
+/* Pulse */
+
+@-webkit-keyframes pulse {
+ 0% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+
+ 50% {
+ -webkit-transform: scale(0.9);
+ transform: scale(0.9);
+ opacity: 0.7;
+ }
+
+ 100% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes pulse {
+ 0% {
+ -moz-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+
+ 50% {
+ -moz-transform: scale(0.9);
+ transform: scale(0.9);
+ opacity: 0.7;
+ }
+
+ 100% {
+ -moz-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+@keyframes pulse {
+ 0% {
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+
+ 50% {
+ -webkit-transform: scale(0.9);
+ -moz-transform: scale(0.9);
+ -ms-transform: scale(0.9);
+ transform: scale(0.9);
+ opacity: 0.7;
+ }
+
+ 100% {
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+/*--------------
+ Flips
+---------------*/
+
+/* Horizontal */
+
+@-webkit-keyframes horizontalFlip {
+ 0% {
+ -webkit-transform: rotateY(-90deg);
+ transform: rotateY(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes horizontalFlip {
+ 0% {
+ -moz-transform: rotateY(-90deg);
+ transform: rotateY(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+}
+
+@keyframes horizontalFlip {
+ 0% {
+ -webkit-transform: rotateY(-90deg);
+ -moz-transform: rotateY(-90deg);
+ -ms-transform: rotateY(-90deg);
+ transform: rotateY(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: rotateY(0deg);
+ -moz-transform: rotateY(0deg);
+ -ms-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+}
+
+/* Horizontal */
+
+@-webkit-keyframes horizontalFlipOut {
+ 0% {
+ -webkit-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: rotateY(90deg);
+ transform: rotateY(90deg);
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes horizontalFlipOut {
+ 0% {
+ -moz-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -moz-transform: rotateY(90deg);
+ transform: rotateY(90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes horizontalFlipOut {
+ 0% {
+ -webkit-transform: rotateY(0deg);
+ -moz-transform: rotateY(0deg);
+ -ms-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: rotateY(90deg);
+ -moz-transform: rotateY(90deg);
+ -ms-transform: rotateY(90deg);
+ transform: rotateY(90deg);
+ opacity: 0;
+ }
+}
+
+/* Vertical */
+
+@-webkit-keyframes verticalFlip {
+ 0% {
+ -webkit-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes verticalFlip {
+ 0% {
+ -moz-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+}
+
+@keyframes verticalFlip {
+ 0% {
+ -webkit-transform: rotateX(-90deg);
+ -moz-transform: rotateX(-90deg);
+ -ms-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: rotateX(0deg);
+ -moz-transform: rotateX(0deg);
+ -ms-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+}
+
+@-webkit-keyframes verticalFlipOut {
+ 0% {
+ -webkit-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes verticalFlipOut {
+ 0% {
+ -moz-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -moz-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes verticalFlipOut {
+ 0% {
+ -webkit-transform: rotateX(0deg);
+ -moz-transform: rotateX(0deg);
+ -ms-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: rotateX(-90deg);
+ -moz-transform: rotateX(-90deg);
+ -ms-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+}
+
+/*--------------
+ Fades
+---------------*/
+
+/* Fade */
+
+@-webkit-keyframes fade {
+ 0% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes fade {
+ 0% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ }
+}
+
+@keyframes fade {
+ 0% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ }
+}
+
+@-webkit-keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+}
+
+@keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+}
+
+/* Fade Up */
+
+@-webkit-keyframes fadeUp {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@-moz-keyframes fadeUp {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@keyframes fadeUp {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ -moz-transform: translateY(20px);
+ -ms-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@-webkit-keyframes fadeUpOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+}
+
+@-moz-keyframes fadeUpOut {
+ 0% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+}
+
+@keyframes fadeUpOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ -moz-transform: translateY(20px);
+ -ms-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+}
+
+/* Fade Down */
+
+@-webkit-keyframes fadeDown {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@-moz-keyframes fadeDown {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@keyframes fadeDown {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ -moz-transform: translateY(-20px);
+ -ms-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@-webkit-keyframes fadeDownOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+}
+
+@-moz-keyframes fadeDownOut {
+ 0% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+}
+
+@keyframes fadeDownOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ -moz-transform: translateY(-20px);
+ -ms-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+}
+
+/*--------------
+ Scale
+---------------*/
+
+/* Scale */
+
+@-webkit-keyframes scale {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+@-moz-keyframes scale {
+ 0% {
+ opacity: 0;
+ -moz-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+@keyframes scale {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ -moz-transform: scale(0.7);
+ -ms-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+@-webkit-keyframes scaleOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+}
+
+@-moz-keyframes scaleOut {
+ 0% {
+ opacity: 1;
+ -moz-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+}
+
+@keyframes scaleOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ -moz-transform: scale(0.7);
+ -ms-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/modules/transition.js b/css/semantic/build/uncompressed/modules/transition.js
new file mode 100644
index 0000000..62a9148
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/transition.js
@@ -0,0 +1,813 @@
+/*
+ * # Semantic - Transition
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.transition = function() {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ moduleArguments = arguments,
+ query = moduleArguments[0],
+ queryArguments = [].slice.call(arguments, 1),
+ methodInvoked = (typeof query === 'string'),
+
+ requestAnimationFrame = window.requestAnimationFrame
+ || window.mozRequestAnimationFrame
+ || window.webkitRequestAnimationFrame
+ || window.msRequestAnimationFrame
+ || function(callback) { setTimeout(callback, 0); },
+
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ $module = $(this),
+ element = this,
+
+ // set at run time
+ settings,
+ instance,
+
+ error,
+ className,
+ metadata,
+ animationEnd,
+ animationName,
+
+ namespace,
+ moduleNamespace,
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ // get settings
+ settings = module.get.settings.apply(element, moduleArguments);
+ module.verbose('Converted arguments into settings object', settings);
+
+ // set shortcuts
+ error = settings.error;
+ className = settings.className;
+ namespace = settings.namespace;
+ metadata = settings.metadata;
+ moduleNamespace = 'module-' + namespace;
+
+ animationEnd = module.get.animationEvent();
+ animationName = module.get.animationName();
+
+ instance = $module.data(moduleNamespace) || module;
+
+ if(methodInvoked) {
+ methodInvoked = module.invoke(query);
+ }
+ // no internal method was found matching query or query not made
+ if(methodInvoked === false) {
+ module.animate();
+ }
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module for', element);
+ $module
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing display type on next animation');
+ delete instance.displayType;
+ },
+
+ forceRepaint: function() {
+ module.verbose('Forcing element repaint');
+ var
+ $parentElement = $module.parent(),
+ $nextElement = $module.next()
+ ;
+ if($nextElement.size() === 0) {
+ $module.detach().appendTo($parentElement);
+ }
+ else {
+ $module.detach().insertBefore($nextElement);
+ }
+ },
+
+ repaint: function() {
+ module.verbose('Repainting element');
+ var
+ fakeAssignment = element.offsetWidth
+ ;
+ },
+
+ animate: function(overrideSettings) {
+ settings = overrideSettings || settings;
+ if(!module.is.supported()) {
+ module.error(error.support);
+ return false;
+ }
+ module.debug('Preparing animation', settings.animation);
+ if(module.is.animating() && settings.queue) {
+ if(!settings.allowRepeats && module.has.direction() && module.is.occuring() && instance.queuing !== true) {
+ module.error(error.repeated);
+ }
+ else {
+ module.queue(settings.animation);
+ }
+ return false;
+ }
+ if(module.can.animate) {
+ module.set.animating(settings.animation);
+ }
+ else {
+ module.error(error.noAnimation, settings.animation);
+ }
+ },
+
+ reset: function() {
+ module.debug('Resetting animation to beginning conditions');
+ $module.off(animationEnd);
+ module.restore.conditions();
+ module.hide();
+ module.remove.animating();
+ },
+
+ queue: function(animation) {
+ module.debug('Queueing animation of', animation);
+ instance.queuing = true;
+ $module
+ .one(animationEnd, function() {
+ instance.queuing = false;
+ module.repaint();
+ module.animate.apply(this, settings);
+ })
+ ;
+ },
+
+ complete: function () {
+ module.verbose('CSS animation complete', settings.animation);
+ if(!module.is.looping()) {
+ if( module.is.outward() ) {
+ module.verbose('Animation is outward, hiding element');
+ module.restore.conditions();
+ module.remove.display();
+ module.hide();
+ $.proxy(settings.onHide, this)();
+ }
+ else if( module.is.inward() ) {
+ module.verbose('Animation is outward, showing element');
+ module.restore.conditions();
+ module.show();
+ $.proxy(settings.onShow, this)();
+ }
+ else {
+ module.restore.conditions();
+ }
+ module.remove.duration();
+ module.remove.animating();
+ }
+ $.proxy(settings.complete, this)();
+ },
+
+ has: {
+ direction: function(animation) {
+ animation = animation || settings.animation;
+ if( animation.search(className.inward) !== -1 || animation.search(className.outward) !== -1) {
+ module.debug('Direction already set in animation');
+ return true;
+ }
+ return false;
+ }
+ },
+
+ set: {
+
+ animating: function(animation) {
+ animation = animation || settings.animation;
+ module.save.conditions();
+ if(module.can.transition() && !module.has.direction()) {
+ module.set.direction();
+ }
+ module.remove.hidden();
+ module.set.display();
+ $module
+ .addClass(className.animating)
+ .addClass(className.transition)
+ .addClass(animation)
+ .one(animationEnd, module.complete)
+ ;
+ module.set.duration(settings.duration);
+ module.debug('Starting tween', settings.animation, $module.attr('class'));
+ },
+
+ display: function() {
+ var
+ displayType = module.get.displayType()
+ ;
+ if(displayType !== 'block') {
+ module.verbose('Setting final visibility to', displayType);
+ $module
+ .css({
+ display: displayType
+ })
+ ;
+ }
+ },
+
+ direction: function() {
+ if($module.is(':visible')) {
+ module.debug('Automatically determining the direction of animation', 'Outward');
+ $module
+ .removeClass(className.inward)
+ .addClass(className.outward)
+ ;
+ }
+ else {
+ module.debug('Automatically determining the direction of animation', 'Inward');
+ $module
+ .removeClass(className.outward)
+ .addClass(className.inward)
+ ;
+ }
+ },
+
+ looping: function() {
+ module.debug('Transition set to loop');
+ $module
+ .addClass(className.looping)
+ ;
+ },
+
+ duration: function(duration) {
+ duration = duration || settings.duration;
+ duration = (typeof duration == 'number')
+ ? duration + 'ms'
+ : duration
+ ;
+ module.verbose('Setting animation duration', duration);
+ $module
+ .css({
+ '-webkit-animation-duration': duration,
+ '-moz-animation-duration': duration,
+ '-ms-animation-duration': duration,
+ '-o-animation-duration': duration,
+ 'animation-duration': duration
+ })
+ ;
+ },
+
+ hidden: function() {
+ $module
+ .addClass(className.transition)
+ .addClass(className.hidden)
+ ;
+ },
+
+ visible: function() {
+ $module
+ .addClass(className.transition)
+ .addClass(className.visible)
+ ;
+ }
+ },
+
+ save: {
+ displayType: function(displayType) {
+ instance.displayType = displayType;
+ },
+ transitionExists: function(animation, exists) {
+ $.fn.transition.exists[animation] = exists;
+ module.verbose('Saving existence of transition', animation, exists);
+ },
+ conditions: function() {
+ instance.cache = {
+ className : $module.attr('class'),
+ style : $module.attr('style')
+ };
+ module.verbose('Saving original attributes', instance.cache);
+ }
+ },
+
+ restore: {
+ conditions: function() {
+ if(instance.cache === undefined) {
+ return false;
+ }
+ if(instance.cache.className) {
+ $module.attr('class', instance.cache.className);
+ }
+ else {
+ $module.removeAttr('class');
+ }
+ if(instance.cache.style) {
+ $module.attr('style', instance.cache.style);
+ }
+ else {
+ if(module.get.displayType() === 'block') {
+ $module.removeAttr('style');
+ }
+ }
+ if(module.is.looping()) {
+ module.remove.looping();
+ }
+ module.verbose('Restoring original attributes', instance.cache);
+ }
+ },
+
+ remove: {
+
+ animating: function() {
+ $module.removeClass(className.animating);
+ },
+
+ display: function() {
+ if(instance.displayType !== undefined) {
+ $module.css('display', '');
+ }
+ },
+
+ duration: function() {
+ $module
+ .css({
+ '-webkit-animation-duration' : '',
+ '-moz-animation-duration' : '',
+ '-ms-animation-duration' : '',
+ '-o-animation-duration' : '',
+ 'animation-duration' : ''
+ })
+ ;
+ },
+
+ hidden: function() {
+ $module.removeClass(className.hidden);
+ },
+
+ visible: function() {
+ $module.removeClass(className.visible);
+ },
+
+ looping: function() {
+ module.debug('Transitions are no longer looping');
+ $module
+ .removeClass(className.looping)
+ ;
+ module.forceRepaint();
+ }
+
+ },
+
+ get: {
+
+ settings: function(animation, duration, complete) {
+ // single settings object
+ if(typeof animation == 'object') {
+ return $.extend(true, {}, $.fn.transition.settings, animation);
+ }
+ // all arguments provided
+ else if(typeof complete == 'function') {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation,
+ complete : complete,
+ duration : duration
+ });
+ }
+ // only duration provided
+ else if(typeof duration == 'string' || typeof duration == 'number') {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation,
+ duration : duration
+ });
+ }
+ // duration is actually settings object
+ else if(typeof duration == 'object') {
+ return $.extend({}, $.fn.transition.settings, duration, {
+ animation : animation
+ });
+ }
+ // duration is actually callback
+ else if(typeof duration == 'function') {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation,
+ complete : duration
+ });
+ }
+ // only animation provided
+ else {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation
+ });
+ }
+ return $.fn.transition.settings;
+ },
+
+ displayType: function() {
+ if(instance.displayType === undefined) {
+ // create fake element to determine display state
+ module.can.transition();
+ }
+ return instance.displayType;
+ },
+
+ transitionExists: function(animation) {
+ return $.fn.transition.exists[animation];
+ },
+
+ animationName: function() {
+ var
+ element = document.createElement('div'),
+ animations = {
+ 'animation' :'animationName',
+ 'OAnimation' :'oAnimationName',
+ 'MozAnimation' :'mozAnimationName',
+ 'WebkitAnimation' :'webkitAnimationName'
+ },
+ animation
+ ;
+ for(animation in animations){
+ if( element.style[animation] !== undefined ){
+ module.verbose('Determined animation vendor name property', animations[animation]);
+ return animations[animation];
+ }
+ }
+ return false;
+ },
+
+ animationEvent: function() {
+ var
+ element = document.createElement('div'),
+ animations = {
+ 'animation' :'animationend',
+ 'OAnimation' :'oAnimationEnd',
+ 'MozAnimation' :'animationend',
+ 'WebkitAnimation' :'webkitAnimationEnd'
+ },
+ animation
+ ;
+ for(animation in animations){
+ if( element.style[animation] !== undefined ){
+ module.verbose('Determined animation vendor end event', animations[animation]);
+ return animations[animation];
+ }
+ }
+ return false;
+ }
+
+ },
+
+ can: {
+ animate: function() {
+ if($module.css(settings.animation) !== 'none') {
+ module.debug('CSS definition found', $module.css(settings.animation));
+ return true;
+ }
+ else {
+ module.debug('Unable to find css definition', $module.attr('class'));
+ return false;
+ }
+ },
+ transition: function() {
+ var
+ elementClass = $module.attr('class'),
+ animation = settings.animation,
+ transitionExists = module.get.transitionExists(settings.animation),
+ $clone,
+ currentAnimation,
+ inAnimation,
+ displayType
+ ;
+ if( transitionExists === undefined || instance.displayType === undefined) {
+ module.verbose('Determining whether animation exists');
+ $clone = $('
').addClass( elementClass ).appendTo($('body'));
+ currentAnimation = $clone
+ .removeClass(className.inward)
+ .removeClass(className.outward)
+ .addClass(className.animating)
+ .addClass(className.transition)
+ .addClass(animation)
+ .css(animationName)
+ ;
+ inAnimation = $clone
+ .addClass(className.inward)
+ .css(animationName)
+ ;
+ displayType = $clone
+ .attr('class', elementClass)
+ .show()
+ .css('display')
+ ;
+ module.verbose('Determining final display state', displayType);
+ if(currentAnimation != inAnimation) {
+ module.debug('Transition exists for animation', animation);
+ transitionExists = true;
+ }
+ else {
+ module.debug('Static animation found', animation, displayType);
+ transitionExists = false;
+ }
+ $clone.remove();
+ module.save.displayType(displayType);
+ module.save.transitionExists(animation, transitionExists);
+ }
+ return transitionExists;
+ }
+ },
+
+ is: {
+ animating: function() {
+ return $module.hasClass(className.animating);
+ },
+ inward: function() {
+ return $module.hasClass(className.inward);
+ },
+ outward: function() {
+ return $module.hasClass(className.outward);
+ },
+ looping: function() {
+ return $module.hasClass(className.looping);
+ },
+ occuring: function(animation) {
+ animation = animation || settings.animation;
+ return ( $module.hasClass(animation) );
+ },
+ visible: function() {
+ return $module.is(':visible');
+ },
+ supported: function() {
+ return(animationName !== false && animationEnd !== false);
+ }
+ },
+
+ hide: function() {
+ module.verbose('Hiding element');
+ module.remove.visible();
+ module.set.hidden();
+ module.repaint();
+ },
+
+ show: function(display) {
+ module.verbose('Showing element', display);
+ module.remove.hidden();
+ module.set.visible();
+ module.repaint();
+ },
+
+ start: function() {
+ module.verbose('Starting animation');
+ $module.removeClass(className.disabled);
+ },
+
+ stop: function() {
+ module.debug('Stopping animation');
+ $module.addClass(className.disabled);
+ },
+
+ toggle: function() {
+ module.debug('Toggling play status');
+ $module.toggleClass(className.disabled);
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found || false;
+ }
+ };
+ module.initialize();
+ })
+ ;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.transition.exists = {};
+
+$.fn.transition.settings = {
+
+ // module info
+ name : 'Transition',
+
+ // debug content outputted to console
+ debug : false,
+
+ // verbose debug output
+ verbose : true,
+
+ // performance data output
+ performance : true,
+
+ // event namespace
+ namespace : 'transition',
+
+ // animation complete event
+ complete : function() {},
+ onShow : function() {},
+ onHide : function() {},
+
+ // whether animation can occur twice in a row
+ allowRepeats : false,
+
+ // animation duration
+ animation : 'fade',
+ duration : '700ms',
+
+ // new animations will occur after previous ones
+ queue : true,
+
+ className : {
+ animating : 'animating',
+ disabled : 'disabled',
+ hidden : 'hidden',
+ inward : 'in',
+ loading : 'loading',
+ looping : 'looping',
+ outward : 'out',
+ transition : 'ui transition',
+ visible : 'visible'
+ },
+
+ // possible errors
+ error: {
+ noAnimation : 'There is no css animation matching the one you specified.',
+ repeated : 'That animation is already occurring, cancelling repeated animation',
+ method : 'The method you called is not defined',
+ support : 'This browser does not support CSS animations'
+ }
+
+};
+
+
+})( jQuery, window , document );
diff --git a/css/semantic/build/uncompressed/modules/video.css b/css/semantic/build/uncompressed/modules/video.css
new file mode 100644
index 0000000..f6c7465
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/video.css
@@ -0,0 +1,95 @@
+/*
+ * # Semantic - Video
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Video
+*******************************/
+
+.ui.video {
+ position: relative;
+ max-width: 100%;
+}
+
+/*--------------
+ Content
+---------------*/
+
+/* Placeholder Image */
+
+.ui.video .placeholder {
+ background-color: #333333;
+}
+
+/* Play Icon Overlay */
+
+.ui.video .play {
+ cursor: pointer;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ z-index: 10;
+ width: 100%;
+ height: 100%;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
+ filter: alpha(opacity=60);
+ opacity: 0.6;
+ -webkit-transition: opacity 0.3s;
+ -moz-transition: opacity 0.3s;
+ transition: opacity 0.3s;
+}
+
+.ui.video .play.icon:before {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ z-index: 11;
+ font-size: 6rem;
+ margin: -3rem 0em 0em -3rem;
+ color: #FFFFFF;
+ text-shadow: 0px 3px 3px rgba(0, 0, 0, 0.4);
+}
+
+.ui.video .placeholder {
+ display: block;
+ width: 100%;
+ height: 100%;
+}
+
+/* IFrame Embed */
+
+.ui.video .embed {
+ display: none;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.video .play:hover {
+ opacity: 1;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.video.active .play,
+.ui.video.active .placeholder {
+ display: none;
+}
+
+.ui.video.active .embed {
+ display: block;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/modules/video.js b/css/semantic/build/uncompressed/modules/video.js
new file mode 100644
index 0000000..284218e
--- /dev/null
+++ b/css/semantic/build/uncompressed/modules/video.js
@@ -0,0 +1,459 @@
+/* ******************************
+ Module - Video
+ Author: Jack Lukic
+
+ This is a video playlist and video embed plugin which helps
+ provide helpers for adding embed code for vimeo and youtube and
+ abstracting event handlers for each library
+
+****************************** */
+
+;(function ($, window, document, undefined) {
+
+$.fn.video = function(parameters) {
+
+ var
+ $allModules = $(this),
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.video.settings, parameters)
+ : $.extend({}, $.fn.video.settings),
+
+ selector = settings.selector,
+ className = settings.className,
+ error = settings.error,
+ metadata = settings.metadata,
+ namespace = settings.namespace,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $placeholder = $module.find(selector.placeholder),
+ $playButton = $module.find(selector.playButton),
+ $embed = $module.find(selector.embed),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing video');
+ $placeholder
+ .on('click' + eventNamespace, module.play)
+ ;
+ $playButton
+ .on('click' + eventNamespace, module.play)
+ ;
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous instance of video');
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ $placeholder
+ .off(eventNamespace)
+ ;
+ $playButton
+ .off(eventNamespace)
+ ;
+ },
+
+ // sets new video
+ change: function(source, id, url) {
+ module.debug('Changing video to ', source, id, url);
+ $module
+ .data(metadata.source, source)
+ .data(metadata.id, id)
+ .data(metadata.url, url)
+ ;
+ settings.onChange();
+ },
+
+ // clears video embed
+ reset: function() {
+ module.debug('Clearing video embed and showing placeholder');
+ $module
+ .removeClass(className.active)
+ ;
+ $embed
+ .html(' ')
+ ;
+ $placeholder
+ .show()
+ ;
+ settings.onReset();
+ },
+
+ // plays current video
+ play: function() {
+ module.debug('Playing video');
+ var
+ source = $module.data(metadata.source) || false,
+ url = $module.data(metadata.url) || false,
+ id = $module.data(metadata.id) || false
+ ;
+ $embed
+ .html( module.generate.html(source, id, url) )
+ ;
+ $module
+ .addClass(className.active)
+ ;
+ settings.onPlay();
+ },
+
+ generate: {
+ // generates iframe html
+ html: function(source, id, url) {
+ module.debug('Generating embed html');
+ var
+ width = (settings.width == 'auto')
+ ? $module.width()
+ : settings.width,
+ height = (settings.height == 'auto')
+ ? $module.height()
+ : settings.height,
+ html
+ ;
+ if(source && id) {
+ if(source == 'vimeo') {
+ html = ''
+ + '
'
+ ;
+ }
+ else if(source == 'youtube') {
+ html = ''
+ + '
VIDEO '
+ ;
+ }
+ }
+ else if(url) {
+ html = ''
+ + '
'
+ ;
+ }
+ else {
+ module.error(error.noVideo);
+ }
+ return html;
+ },
+
+ // generate url parameters
+ url: function(source) {
+ var
+ api = (settings.api)
+ ? 1
+ : 0,
+ autoplay = (settings.autoplay)
+ ? 1
+ : 0,
+ hd = (settings.hd)
+ ? 1
+ : 0,
+ showUI = (settings.showUI)
+ ? 1
+ : 0,
+ // opposite used for some params
+ hideUI = !(settings.showUI)
+ ? 1
+ : 0,
+ url = ''
+ ;
+ if(source == 'vimeo') {
+ url = ''
+ + 'api=' + api
+ + '&title=' + showUI
+ + '&byline=' + showUI
+ + '&portrait=' + showUI
+ + '&autoplay=' + autoplay
+ ;
+ if(settings.color) {
+ url += '&color=' + settings.color;
+ }
+ }
+ if(source == 'ustream') {
+ url = ''
+ + 'autoplay=' + autoplay
+ ;
+ if(settings.color) {
+ url += '&color=' + settings.color;
+ }
+ }
+ else if(source == 'youtube') {
+ url = ''
+ + 'enablejsapi=' + api
+ + '&autoplay=' + autoplay
+ + '&autohide=' + hideUI
+ + '&hq=' + hd
+ + '&modestbranding=1'
+ ;
+ if(settings.color) {
+ url += '&color=' + settings.color;
+ }
+ }
+ return url;
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.video.settings = {
+
+ name : 'Video',
+ namespace : 'video',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ metadata : {
+ source : 'source',
+ id : 'id',
+ url : 'url'
+ },
+
+ onPlay : function(){},
+ onReset : function(){},
+ onChange : function(){},
+
+ // callbacks not coded yet (needs to use jsapi)
+ onPause : function() {},
+ onStop : function() {},
+
+ width : 'auto',
+ height : 'auto',
+
+ autoplay : false,
+ color : '#442359',
+ hd : true,
+ showUI : false,
+ api : true,
+
+ error : {
+ noVideo : 'No video specified',
+ method : 'The method you called is not defined'
+ },
+
+ className : {
+ active : 'active'
+ },
+
+ selector : {
+ embed : '.embed',
+ placeholder : '.placeholder',
+ playButton : '.play'
+ }
+};
+
+
+})( jQuery, window , document );
diff --git a/css/semantic/build/uncompressed/views/comment.css b/css/semantic/build/uncompressed/views/comment.css
new file mode 100644
index 0000000..6078c73
--- /dev/null
+++ b/css/semantic/build/uncompressed/views/comment.css
@@ -0,0 +1,219 @@
+/*
+ * # Semantic Comment View
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: April 17 2013
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------
+ Comments
+---------------*/
+
+.ui.comments a {
+ cursor: pointer;
+}
+
+/*--------------
+ Comment
+---------------*/
+
+.ui.comments .comment {
+ position: relative;
+ margin-top: 0.5em;
+ padding-top: 0.5em;
+}
+
+.ui.comments .comment:first-child {
+ margin-top: 0em;
+ padding-top: 0em;
+}
+
+/*--------------------
+ Avatar (Optional)
+---------------------*/
+
+.ui.comments .comment .avatar {
+ display: block;
+ float: left;
+ width: 4em;
+}
+
+.ui.comments .comment .avatar img {
+ display: block;
+ margin: 0em auto;
+ width: 3em;
+ height: 3em;
+ border-radius: 500px;
+}
+
+/*--------------
+ Content
+---------------*/
+
+.ui.comments .comment > .content,
+.ui.comments .comment > .avatar {
+ display: block;
+}
+
+.ui.comments .comment .avatar ~ .content {
+ padding: 0em 1em;
+}
+
+/* If there is an avatar move content over */
+
+.ui.comments .comment > .avatar ~ .content {
+ padding-top: 0.25em;
+ margin-left: 3.5em;
+}
+
+.ui.comments .comment .metadata {
+ display: inline-block;
+ margin-left: 0.3em;
+ color: rgba(0, 0, 0, 0.4);
+}
+
+.ui.comments .comment .metadata > * {
+ display: inline-block;
+ margin: 0em 0.3em 0em 0em;
+}
+
+/*--------------------
+ Comment Text
+---------------------*/
+
+.ui.comments .comment .text {
+ margin: 0.25em 0em 0.5em;
+ word-wrap: break-word;
+}
+
+/*--------------------
+ User Actions
+---------------------*/
+
+.ui.comments .comment .actions {
+ font-size: 0.9em;
+}
+
+.ui.comments .comment .actions a {
+ display: inline-block;
+ margin: 0em 0.3em 0em 0em;
+ color: rgba(0, 0, 0, 0.3);
+}
+
+.ui.comments .comment .actions a.active,
+.ui.comments .comment .actions a:hover {
+ color: rgba(0, 0, 0, 0.6);
+}
+
+/*--------------------
+ Reply Form
+---------------------*/
+
+.ui.comments .reply.form {
+ margin-top: 0.75em;
+ width: 100%;
+ max-width: 30em;
+}
+
+.ui.comments .comment .reply.form {
+ margin-left: 2em;
+}
+
+.ui.comments > .reply.form {
+ margin-top: 1.5em;
+ max-width: 40em;
+}
+
+.ui.comments .reply.form textarea {
+ height: 12em;
+}
+
+/*--------------------
+ Nested Comments
+---------------------*/
+
+.ui.comments .comment .comments {
+ margin-top: 0.5em;
+ padding-top: 0.5em;
+ padding-bottom: 1em;
+}
+
+.ui.comments .comment .comments:before {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+}
+
+/* One Deep */
+
+.ui.comments > .comment .comments {
+ margin-left: 2em;
+}
+
+/* Two Deep */
+
+.ui.comments > .comment > .comments > .comment > .comments {
+ margin-left: 1.75em;
+}
+
+/* Three Deep */
+
+.ui.comments > .comment > .comments > .comment > .comments > .comment > .comments {
+ margin-left: 1.5em;
+}
+
+/* Four Deep or more */
+
+.ui.comments > .comment > .comments > .comment > .comments > .comment > .comments > .comment .comments {
+ margin-left: 0.5em;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------------
+ Threaded
+---------------------*/
+
+.ui.threaded.comments .comment .comments {
+ margin-left: 2em !important;
+ padding-left: 2em !important;
+ -webkit-box-shadow: -1px 0px 0px rgba(0, 0, 0, 0.05);
+ box-shadow: -1px 0px 0px rgba(0, 0, 0, 0.05);
+}
+
+/*--------------------
+ Minimal
+---------------------*/
+
+.ui.minimal.comments .comment .actions {
+ opacity: 0;
+ -webkit-transition: opacity 0.1s ease-out;
+ -moz-transition: opacity 0.1s ease-out;
+ transition: opacity 0.1s ease-out;
+ -webkit-transition-delay: 0.1s;
+ -moz-transition-delay: 0.1s;
+ transition-delay: 0.1s;
+}
+
+.ui.minimal.comments .comment > .content:hover > .actions {
+ opacity: 1;
+}
+
+/*--------------------
+ Sizes
+---------------------*/
+
+.ui.small.comments {
+ font-size: 0.875em;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/views/feed.css b/css/semantic/build/uncompressed/views/feed.css
new file mode 100644
index 0000000..2f579ec
--- /dev/null
+++ b/css/semantic/build/uncompressed/views/feed.css
@@ -0,0 +1,160 @@
+/*
+ * # Activity Feed View
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: May 22, 2013
+ */
+
+/*******************************
+ Activity Feed
+*******************************/
+
+.ui.feed a {
+ cursor: pointer;
+}
+
+.ui.feed,
+.ui.feed .event,
+.ui.feed .label,
+.ui.feed .content,
+.ui.feed .extra {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*******************************
+ Content
+*******************************/
+
+/* Event */
+
+.ui.feed .event {
+ width: 100%;
+ display: table;
+ padding: 1em;
+}
+
+.ui.feed .event:first-child {
+ border-top: 0px;
+}
+
+.ui.feed .event:last-child {
+ margin-bottom: 1em;
+}
+
+/* Event Label */
+
+.ui.feed .label {
+ width: 3em;
+ display: table-cell;
+ vertical-align: top;
+ text-align: left;
+}
+
+.ui.feed .label .icon {
+ font-size: 1.5em;
+ padding: 0.5em;
+ margin: 0em;
+}
+
+.ui.feed .label img {
+ width: 3em;
+ margin: 0em;
+ border-radius: 50em;
+}
+
+.ui.feed .label + .content {
+ padding: 0.75em 1em 0em;
+}
+
+/* Content */
+
+.ui.feed .content {
+ display: table-cell;
+ vertical-align: top;
+ text-align: left;
+ word-wrap: break-word;
+}
+
+/* Date */
+
+.ui.feed .content .date {
+ float: right;
+ padding-left: 1em;
+ color: rgba(0, 0, 0, 0.4);
+}
+
+/* Summary */
+
+.ui.feed .content .summary {
+ color: rgba(0, 0, 0, 0.75);
+}
+
+.ui.feed .content .summary img {
+ display: inline-block;
+ margin-right: 0.25em;
+ width: 4em;
+ border-radius: 500px;
+}
+
+/* Additional Information */
+
+.ui.feed .content .extra {
+ margin: 1em 0em 0em;
+ padding: 0.5em 0em 0em;
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.feed .content .extra.images img {
+ display: inline-block;
+ margin-right: 0.25em;
+ width: 6em;
+}
+
+.ui.feed .content .extra.text {
+ padding: 0.5em 1em;
+ border-left: 0.2em solid rgba(0, 0, 0, 0.1);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.small.feed {
+ font-size: 0.875em;
+}
+
+.ui.small.feed .label img {
+ width: 2.5em;
+}
+
+.ui.small.feed .label .icon {
+ font-size: 1.25em;
+}
+
+.ui.feed .event {
+ padding: 0.75em 0em;
+}
+
+.ui.small.feed .label + .content {
+ padding: 0.5em 0.5em 0;
+}
+
+.ui.small.feed .content .extra.images img {
+ width: 5em;
+}
+
+.ui.small.feed .content .extra {
+ margin: 0.5em 0em 0em;
+}
+
+.ui.small.feed .content .extra.text {
+ padding: 0.25em 0.5em;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/views/item.css b/css/semantic/build/uncompressed/views/item.css
new file mode 100644
index 0000000..80a26df
--- /dev/null
+++ b/css/semantic/build/uncompressed/views/item.css
@@ -0,0 +1,685 @@
+/*
+ * # Semantic Item View
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: April 17 2013
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------
+ Items
+---------------*/
+
+.ui.items {
+ margin: 1em 0em 0em;
+}
+
+.ui.items:first-child {
+ margin-top: 0em;
+}
+
+.ui.items:last-child {
+ margin-bottom: -1em;
+}
+
+/* Force Clearing */
+
+.ui.items:after {
+ display: block;
+ content: ' ';
+ height: 0px;
+ clear: both;
+ overflow: hidden;
+ visibility: hidden;
+}
+
+/*--------------
+ Item
+---------------*/
+
+.ui.items > .row > .item,
+.ui.items > .item {
+ display: block;
+ float: left;
+ position: relative;
+ top: 0px;
+ width: 316px;
+ min-height: 375px;
+ margin: 0em 0.5em 2.5em;
+ padding: 0em;
+ background-color: #FFFFFF;
+ line-height: 1.2;
+ font-size: 1em;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ border-bottom: 0.2em solid rgba(0, 0, 0, 0.2);
+ border-radius: 0.33em;
+ -webkit-transition: -webkit-box-shadow 0.2s ease;
+ -moz-transition: box-shadow 0.2s ease;
+ transition: box-shadow 0.2s ease;
+ padding: 0.5em;
+}
+
+.ui.items a.item,
+.ui.items .item a {
+ cursor: pointer;
+}
+
+.ui.items .item,
+.ui.items .item > .image,
+.ui.items .item > .image .overlay,
+.ui.items .item > .content,
+.ui.items .item > .content > .meta,
+.ui.items .item > .content > .extra {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*--------------
+ Images
+---------------*/
+
+.ui.items .item > .image {
+ display: block;
+ position: relative;
+ background-color: rgba(0, 0, 0, 0.05);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ border-radius: 0.2em;
+}
+
+.ui.items .item > .image > img {
+ display: block;
+ width: 100%;
+}
+
+/*--------------
+ Content
+---------------*/
+
+.ui.items .item > .content {
+ padding: 0.75em 0.5em;
+}
+
+.ui.items .item > .content > .name {
+ display: block;
+ font-size: 1.25em;
+ font-weight: bold;
+ margin-bottom: 0.2em;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.items .item > .content > .description {
+ clear: both;
+ margin: 0em 0em;
+ color: rgba(0, 0, 0, 0.45);
+}
+
+.ui.items .item > .content > .description p {
+ margin: 0em 0em 0.2em;
+}
+
+.ui.items .item > .content > .description p:last-child {
+ margin-bottom: 0em;
+}
+
+/*--------------
+ Meta
+---------------*/
+
+.ui.items .item .meta {
+ float: right;
+ color: rgba(0, 0, 0, 0.35);
+}
+
+.ui.items .item > .content > .meta + .name {
+ float: left;
+}
+
+/*--------------
+ Labels
+---------------*/
+
+/*-----star----- */
+
+/* hover */
+
+.ui.items .item .star.label:hover::after {
+ border-right-color: #F6EFC3;
+}
+
+.ui.items .item .star.label:hover::after {
+ border-top-color: #F6EFC3;
+}
+
+.ui.items .item .star.label:hover .icon {
+ color: #ac9400;
+}
+
+/* active */
+
+.ui.items .item .star.label.active::after {
+ border-right-color: #F6EFC3;
+}
+
+.ui.items .item .star.label.active::after {
+ border-top-color: #F6EFC3;
+}
+
+.ui.items .item .star.label.active .icon {
+ color: #ac9400;
+}
+
+/*-----like----- */
+
+/* hover */
+
+.ui.items .item .like.label:hover::after {
+ border-right-color: #F5E1E2;
+}
+
+.ui.items .item .like.label.active::after {
+ border-top-color: #F5E1E2;
+}
+
+.ui.items .item .like.label:hover .icon {
+ color: #ef404a;
+}
+
+/* active */
+
+.ui.items .item .like.label.active::after {
+ border-right-color: #F5E1E2;
+}
+
+.ui.items .item .like.label.active::after {
+ border-top-color: #F5E1E2;
+}
+
+.ui.items .item .like.label.active .icon {
+ color: #ef404a;
+}
+
+/*--------------
+ Extra
+---------------*/
+
+.ui.items .item .extra {
+ position: absolute;
+ width: 100%;
+ padding: 0em 0.5em;
+ bottom: -2em;
+ left: 0em;
+ height: 1.5em;
+ color: rgba(0, 0, 0, 0.25);
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+.ui.items .item .extra > img {
+ display: inline-block;
+ border-radius: 500px 500px 500px 500px;
+ margin-right: 0.25em;
+ vertical-align: middle;
+ width: 2em;
+}
+
+.ui.items .item .extra .left {
+ float: left;
+}
+
+.ui.items .item .extra .right {
+ float: right;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.items .item:hover {
+ cursor: pointer;
+ z-index: 5;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2);
+}
+
+.ui.items .item:hover .extra {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.items .item:nth-of-type(6n+1):hover {
+ border-bottom-color: #6ECFF5 !important;
+}
+
+.ui.items .item:nth-of-type(6n+2):hover {
+ border-bottom-color: #5C6166 !important;
+}
+
+.ui.items .item:nth-of-type(6n+3):hover {
+ border-bottom-color: #A1CF64 !important;
+}
+
+.ui.items .item:nth-of-type(6n+4):hover {
+ border-bottom-color: #D95C5C !important;
+}
+
+.ui.items .item:nth-of-type(6n+5):hover {
+ border-bottom-color: #00B5AD !important;
+}
+
+.ui.items .item:nth-of-type(6n+6):hover {
+ border-bottom-color: #564F8A !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Connected
+---------------*/
+
+.ui.connected.items {
+ display: table;
+ width: 100%;
+ margin-left: 0em !important;
+ margin-right: 0em !important;
+}
+
+.ui.connected.items > .row > .item,
+.ui.connected.items > .item {
+ float: none;
+ display: table-cell;
+ vertical-align: top;
+ height: auto;
+ border-radius: 0px;
+ margin: 0em;
+ width: 33.33%;
+}
+
+.ui.connected.items > .row {
+ display: table;
+ margin: 0.5em 0em;
+}
+
+.ui.connected.items > .row:first-child {
+ margin-top: 0em;
+}
+
+/* Borders */
+
+.ui.connected.items > .item,
+.ui.connected.items > .row:last-child > .item {
+ border-bottom: 0.2em solid rgba(0, 0, 0, 0.2);
+}
+
+.ui.connected.items > .row:last-child > .item:first-child,
+.ui.connected.items > .item:first-child {
+ border-radius: 0em 0em 0em 0.33em;
+}
+
+.ui.connected.items > .row:last-child > .item:last-child,
+.ui.connected.items > .item:last-child {
+ border-radius: 0em 0em 0.33em 0em;
+}
+
+/* Hover */
+
+.ui.connected.items .item:hover {
+ border-bottom-width: 0.2em;
+}
+
+/* Item Count */
+
+.ui.one.connected.items > .row > .item,
+.ui.one.connected.items > .item {
+ width: 50%;
+ padding-left: 2%;
+ padding-right: 2%;
+}
+
+.ui.two.connected.items > .row > .item,
+.ui.two.connected.items > .item {
+ width: 50%;
+ padding-left: 1%;
+ padding-right: 1%;
+}
+
+.ui.three.connected.items > .row > .item,
+.ui.three.connected.items > .item {
+ width: 33.333%;
+ padding-left: 1%;
+ padding-right: 1%;
+}
+
+.ui.four.connected.items > .row > .item,
+.ui.four.connected.items > .item {
+ width: 25%;
+ padding-left: 0.5%;
+ padding-right: 0.5%;
+}
+
+.ui.five.connected.items > .row > .item,
+.ui.five.connected.items > .item {
+ width: 20%;
+ padding-left: 0.5%;
+ padding-right: 0.5%;
+}
+
+.ui.six.connected.items > .row > .item,
+.ui.six.connected.items > .item {
+ width: 16.66%;
+ padding-left: 0.5%;
+ padding-right: 0.5%;
+}
+
+.ui.seven.connected.items > .row > .item,
+.ui.seven.connected.items > .item {
+ width: 14.28%;
+ padding-left: 0.5%;
+ padding-right: 0.5%;
+}
+
+.ui.eight.connected.items > .row > .item,
+.ui.eight.connected.items > .item {
+ width: 12.5%;
+ padding-left: 0.25%;
+ padding-right: 0.25%;
+}
+
+.ui.nine.connected.items > .row > .item,
+.ui.nine.connected.items > .item {
+ width: 11.11%;
+ padding-left: 0.25%;
+ padding-right: 0.25%;
+}
+
+.ui.ten.connected.items > .row > .item,
+.ui.ten.connected.items > .item {
+ width: 10%;
+ padding-left: 0.2%;
+ padding-right: 0.2%;
+}
+
+.ui.eleven.connected.items > .row > .item,
+.ui.eleven.connected.items > .item {
+ width: 9.09%;
+ padding-left: 0.2%;
+ padding-right: 0.2%;
+}
+
+.ui.twelve.connected.items > .row > .item,
+.ui.twelve.connected.items > .item {
+ width: 8.3333%;
+ padding-left: 0.1%;
+ padding-right: 0.1%;
+}
+
+/*-------------------
+ Responsive
+--------------------*/
+
+@media only screen and (max-width: 768px) {
+ .ui.stackable.items {
+ display: block !important;
+ }
+
+ .ui.stackable.items > .item,
+ .ui.stackable.items > .row > .item {
+ display: block !important;
+ height: auto !important;
+ width: auto !important;
+ padding: 0% !important;
+ }
+}
+
+/*--------------------
+ Horizontal
+---------------------*/
+
+.ui.horizontal.items > .item,
+.ui.items > .horizontal.item {
+ display: table;
+}
+
+.ui.horizontal.items > .item > .image,
+.ui.items > .horizontal.item > .image {
+ display: table-cell;
+ width: 50%;
+}
+
+.ui.horizontal.items > .item > .image + .content,
+.ui.items > .horizontal.item > .image + .content {
+ width: 50%;
+ display: table-cell;
+}
+
+.ui.horizontal.items > .item > .content,
+.ui.items > .horizontal.item > .content {
+ padding: 1% 1.7% 11% 3%;
+ vertical-align: top;
+}
+
+.ui.horizontal.items > .item > .meta,
+.ui.items > .horizontal.item > .meta {
+ position: absolute;
+ padding: 0%;
+ bottom: 7%;
+ left: 3%;
+ width: 94%;
+}
+
+.ui.horizontal.items > .item > .image + .content + .meta,
+.ui.items > .horizontal.item > .image + .content + .meta {
+ bottom: 7%;
+ left: 53%;
+ width: 44%;
+}
+
+.ui.horizontal.items > .item .avatar,
+.ui.items > .horizontal.item .avatar {
+ width: 11.5%;
+}
+
+.ui.items > .item .avatar {
+ max-width: 25px;
+}
+
+/*--------------
+ Item Count
+---------------*/
+
+.ui.one.items {
+ margin-left: -2%;
+ margin-right: -2%;
+}
+
+.ui.one.items > .item {
+ width: 100%;
+ margin-left: 2%;
+ margin-right: 2%;
+}
+
+.ui.two.items {
+ margin-left: -1%;
+ margin-right: -1%;
+}
+
+.ui.two.items > .item {
+ width: 48%;
+ margin-left: 1%;
+ margin-right: 1%;
+}
+
+.ui.two.items > .item:nth-child(2n+1) {
+ clear: left;
+}
+
+.ui.three.items {
+ margin-left: -1%;
+ margin-right: -1%;
+}
+
+.ui.three.items > .item {
+ width: 31.333%;
+ margin-left: 1%;
+ margin-right: 1%;
+}
+
+.ui.three.items > .item:nth-child(3n+1) {
+ clear: left;
+}
+
+.ui.four.items {
+ margin-left: -0.5%;
+ margin-right: -0.5%;
+}
+
+.ui.four.items > .item {
+ width: 24%;
+ margin-left: 0.5%;
+ margin-right: 0.5%;
+}
+
+.ui.four.items > .item:nth-child(4n+1) {
+ clear: left;
+}
+
+.ui.five.items {
+ margin-left: -0.5%;
+ margin-right: -0.5%;
+}
+
+.ui.five.items > .item {
+ width: 19%;
+ margin-left: 0.5%;
+ margin-right: 0.5%;
+}
+
+.ui.five.items > .item:nth-child(5n+1) {
+ clear: left;
+}
+
+.ui.six.items {
+ margin-left: -0.5%;
+ margin-right: -0.5%;
+}
+
+.ui.six.items > .item {
+ width: 15.66%;
+ margin-left: 0.5%;
+ margin-right: 0.5%;
+}
+
+.ui.six.items > .item:nth-child(6n+1) {
+ clear: left;
+}
+
+.ui.seven.items {
+ margin-left: -0.5%;
+ margin-right: -0.5%;
+}
+
+.ui.seven.items > .item {
+ width: 13.28%;
+ margin-left: 0.5%;
+ margin-right: 0.5%;
+ font-size: 11px;
+}
+
+.ui.seven.items > .item:nth-child(7n+1) {
+ clear: left;
+}
+
+.ui.eight.items {
+ margin-left: -0.25%;
+ margin-right: -0.25%;
+}
+
+.ui.eight.items > .item {
+ width: 12.0%;
+ margin-left: 0.25%;
+ margin-right: 0.25%;
+ font-size: 11px;
+}
+
+.ui.eight.items > .item:nth-child(8n+1) {
+ clear: left;
+}
+
+.ui.nine.items {
+ margin-left: -0.25%;
+ margin-right: -0.25%;
+}
+
+.ui.nine.items > .item {
+ width: 10.61%;
+ margin-left: 0.25%;
+ margin-right: 0.25%;
+ font-size: 10px;
+}
+
+.ui.nine.items > .item:nth-child(9n+1) {
+ clear: left;
+}
+
+.ui.ten.items {
+ margin-left: -0.2%;
+ margin-right: -0.2%;
+}
+
+.ui.ten.items > .item {
+ width: 9.6%;
+ margin-left: 0.2%;
+ margin-right: 0.2%;
+ font-size: 10px;
+}
+
+.ui.ten.items > .item:nth-child(10n+1) {
+ clear: left;
+}
+
+.ui.eleven.items {
+ margin-left: -0.2%;
+ margin-right: -0.2%;
+}
+
+.ui.eleven.items > .item {
+ width: 8.69%;
+ margin-left: 0.2%;
+ margin-right: 0.2%;
+ font-size: 9px;
+}
+
+.ui.eleven.items > .item:nth-child(11n+1) {
+ clear: left;
+}
+
+.ui.twelve.items {
+ margin-left: -0.1%;
+ margin-right: -0.1%;
+}
+
+.ui.twelve.items > .item {
+ width: 8.1333%;
+ margin-left: 0.1%;
+ margin-right: 0.1%;
+ font-size: 9px;
+}
+
+.ui.twelve.items > .item:nth-child(12n+1) {
+ clear: left;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/views/list.css b/css/semantic/build/uncompressed/views/list.css
new file mode 100644
index 0000000..efa4e41
--- /dev/null
+++ b/css/semantic/build/uncompressed/views/list.css
@@ -0,0 +1,695 @@
+/*
+ * # Semantic List - Flat
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: April 26 2013
+ */
+
+/*******************************
+ List
+*******************************/
+
+ul.ui.list,
+ol.ui.list,
+.ui.list {
+ list-style-type: none;
+ margin: 1em 0em;
+ padding: 0em;
+}
+
+ul.ui.list ul,
+ol.ui.list ol,
+.ui.list .list {
+ margin: 0em;
+ padding: 0.5em 0em 0.5em 1em;
+}
+
+ul.ui.list:first-child,
+ol.ui.list:first-child,
+.ui.list:first-child {
+ margin-top: 0em;
+}
+
+ul.ui.list:last-child,
+ol.ui.list:last-child,
+.ui.list:last-child {
+ margin-bottom: 0em;
+}
+
+/*******************************
+ Content
+*******************************/
+
+/* List Item */
+
+ul.ui.list li,
+ol.ui.list li,
+.ui.list .item {
+ display: list-item;
+ list-style-type: none;
+ list-style-position: inside;
+ padding: 0.3em 0em;
+ line-height: 1.2em;
+}
+
+.ui.list .item:after {
+ content: '';
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+/* Sub-List */
+
+.ui.list .list {
+ clear: both;
+}
+
+/* Icon */
+
+.ui.list .item > .icon {
+ display: block;
+ float: left;
+ margin: 0em 1em 0em 0em;
+ padding: 0.1em 0em 0em 0em;
+}
+
+.ui.list .item > .icon:only-child {
+ display: inline-block;
+}
+
+.ui.horizontal.list .item > .icon {
+ margin: 0em;
+ padding: 0em 0.25em 0em 0em;
+}
+
+.ui.horizontal.list .item > .icon,
+.ui.horizontal.list .item > .icon + .content {
+ float: none;
+ display: inline-block;
+}
+
+/* Image */
+
+.ui.list .item > img {
+ display: block;
+ float: left;
+ margin-right: 1em;
+ vertical-align: middle;
+}
+
+/* Content */
+
+.ui.list .item > .content {
+ display: inline-block;
+ vertical-align: middle;
+ line-height: 1.2em;
+}
+
+.ui.list .item > .icon + .content {
+ display: table-cell;
+ vertical-align: top;
+}
+
+/* Link */
+
+.ui.list a {
+ cursor: pointer;
+}
+
+.ui.list a .icon {
+ color: rgba(0, 0, 0, 0.6);
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+/* Header */
+
+.ui.list .header {
+ font-weight: bold;
+}
+
+.ui.list .description {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+/* Floated Content */
+
+.ui.list .item > .left.floated {
+ margin-right: 1em;
+ float: left;
+}
+
+.ui.list .item > .right.floated {
+ margin-left: 1em;
+ float: right;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Horizontal
+--------------------*/
+
+.ui.horizontal.list {
+ display: inline-block;
+ font-size: 0em;
+}
+
+.ui.horizontal.list > .item {
+ display: inline-block;
+ margin-left: 1em;
+ font-size: 1rem;
+}
+
+.ui.horizontal.list > .item:first-child {
+ margin-left: 0em;
+}
+
+.ui.horizontal.list .list {
+ padding-left: 0em;
+ padding-bottom: 0em;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*-------------------
+ Hover
+--------------------*/
+
+.ui.list a:hover .icon {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.inverted.list a .icon {
+ color: rgba(255, 255, 255, 0.6);
+}
+
+.ui.inverted.list .description {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.link.list .item {
+ color: rgba(255, 255, 255, 0.4);
+}
+
+/*-------------------
+ Link
+--------------------*/
+
+.ui.link.list .item {
+ color: rgba(0, 0, 0, 0.3);
+}
+
+.ui.link.list a.item,
+.ui.link.list .item a {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.link.list a.item:hover,
+.ui.link.list .item a:hover {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.link.list a.item:active,
+.ui.link.list .item a:active {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.link.list a.active.item,
+.ui.link.list .active.item a {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/* Inverted */
+
+.ui.inverted.link.list a.item,
+.ui.inverted.link.list .item a {
+ color: rgba(255, 255, 255, 0.6);
+}
+
+.ui.inverted.link.list a.item:hover,
+.ui.inverted.link.list .item a:hover {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.link.list a.item:active,
+.ui.inverted.link.list .item a:active {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.inverted.link.list a.active.item,
+.ui.inverted.link.list .active.item a {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+/*-------------------
+ Selection
+--------------------*/
+
+.ui.selection.list .item {
+ cursor: pointer;
+ color: rgba(0, 0, 0, 0.4);
+ padding: 0.5em;
+ -webkit-transition: 0.2s color ease, 0.2s padding-left ease, 0.2s background-color ease;
+ -moz-transition: 0.2s color ease, 0.2s padding-left ease, 0.2s background-color ease;
+ transition: 0.2s color ease, 0.2s padding-left ease, 0.2s background-color ease;
+}
+
+.ui.selection.list .item:hover {
+ background-color: rgba(0, 0, 0, 0.02);
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.selection.list .item:active {
+ background-color: rgba(0, 0, 0, 0.05);
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.selection.list .item.active {
+ background-color: rgba(0, 0, 0, 0.04);
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.animated.list .item {
+ -webkit-transition: 0.2s color ease, 0.2s padding-left ease, 0.2s background-color ease;
+ -moz-transition: 0.2s color ease, 0.2s padding-left ease, 0.2s background-color ease;
+ transition: 0.2s color ease, 0.2s padding-left ease, 0.2s background-color ease;
+}
+
+.ui.animated.list:not(.horizontal) .item:hover {
+ padding-left: 1em;
+}
+
+.ui.animated.list:not(.horizontal) .item:hover .item:hover {
+ padding-left: 0.5em;
+}
+
+/* Inverted */
+
+.ui.inverted.selection.list .item {
+ color: rgba(255, 255, 255, 0.6);
+}
+
+.ui.inverted.selection.list .item:hover {
+ background-color: rgba(255, 255, 255, 0.04);
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.selection.list .item:active {
+ background-color: rgba(255, 255, 255, 0.1);
+ color: rgba(255, 255, 255, 0.7);
+}
+
+.ui.inverted.selection.list .item.active {
+ background-color: rgba(255, 255, 255, 0.08);
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Bulleted
+--------------------*/
+
+ul.ui.list,
+.ui.bulleted.list {
+ margin-left: 1.5em;
+}
+
+ul.ui.list li,
+.ui.bulleted.list .item {
+ position: relative;
+}
+
+ul.ui.list li:before,
+.ui.bulleted.list .item:before {
+ position: absolute;
+ left: -1.5em;
+ content: '•';
+}
+
+ul.ui.list ul,
+.ui.bulleted.list .list {
+ padding-left: 1.5em;
+}
+
+/* Horizontal Bulleted */
+
+ul.ui.horizontal.bulleted.list,
+.ui.horizontal.bulleted.list {
+ margin-left: 0em;
+}
+
+ul.ui.horizontal.bulleted.list li,
+.ui.horizontal.bulleted.list .item {
+ margin-left: 1.5em;
+}
+
+ul.ui.horizontal.bulleted.list li:before,
+.ui.horizontal.bulleted.list .item:before {
+ left: -0.9em;
+}
+
+ul.ui.horizontal.bulleted.list li:first-child,
+.ui.horizontal.bulleted.list .item:first-child {
+ margin-left: 0em;
+}
+
+ul.ui.horizontal.bulleted.list li:first-child::before,
+.ui.horizontal.bulleted.list .item:first-child::before {
+ display: none;
+}
+
+/*-------------------
+ Ordered
+--------------------*/
+
+ol.ui.list,
+.ui.ordered.list {
+ counter-reset: ordered;
+ margin-left: 2em;
+ list-style-type: none;
+}
+
+ol.ui.list li,
+.ui.ordered.list .item {
+ list-style-type: none;
+ position: relative;
+}
+
+ol.ui.list li:before,
+.ui.ordered.list .item:before {
+ position: absolute;
+ left: -2em;
+ counter-increment: ordered;
+ content: counters(ordered, ".");
+ text-align: right;
+ vertical-align: top;
+ opacity: 0.75;
+}
+
+ol.ui.list ol,
+.ui.ordered.list .list {
+ counter-reset: ordered;
+ padding-left: 2.5em;
+}
+
+ol.ui.list ol li:before,
+.ui.ordered.list .list .item:before {
+ left: -2.5em;
+}
+
+/* Horizontal Ordered */
+
+ol.ui.horizontal.list,
+.ui.ordered.horizontal.list {
+ margin-left: 0em;
+}
+
+ol.ui.horizontal.list li:before,
+.ui.ordered.horizontal.list .item:before {
+ position: static;
+ left: 0em;
+ margin: 0em 0.5em 0em 0em;
+}
+
+/*-------------------
+ Divided
+--------------------*/
+
+.ui.divided.list > .item,
+.ui.divided.list:not(.horizontal) > .list {
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+}
+
+.ui.divided.list .item .menu .item {
+ border-width: 0px;
+}
+
+.ui.divided.list .item:first-child {
+ border-top-width: 0px;
+}
+
+/* Sub Menu */
+
+.ui.divided.list:not(.horizontal) .list {
+ margin-left: -0.5em;
+ margin-right: -0.5em;
+}
+
+.ui.divided.list:not(.horizontal) .list .item {
+ padding-left: 1em;
+ padding-right: 1em;
+}
+
+.ui.divided.list:not(.horizontal) .list .item:first-child {
+ border-top-width: 1px;
+}
+
+/* Divided bulleted */
+
+.ui.divided.bulleted.list {
+ margin-left: 0em;
+}
+
+.ui.divided.bulleted.list .item {
+ padding-left: 1.5em;
+}
+
+.ui.divided.bulleted.list .item:before {
+ left: 0.5em;
+}
+
+/* Divided ordered */
+
+.ui.divided.ordered.list {
+ margin-left: 0em;
+}
+
+.ui.divided.ordered.list > .item {
+ padding-left: 2em;
+ padding-right: 2em;
+}
+
+.ui.divided.ordered.list > .item:before {
+ left: 0.5em;
+}
+
+.ui.divided.ordered.list .item .list {
+ margin-left: -2em;
+ margin-right: -2em;
+}
+
+/* Divided horizontal */
+
+.ui.divided.horizontal.list {
+ margin-left: 0em;
+}
+
+.ui.divided.horizontal.list > .item {
+ border-top: none;
+ border-left: 1px solid rgba(0, 0, 0, 0.1);
+ margin: 0em;
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ line-height: 0.6em;
+}
+
+.ui.horizontal.divided.list > .item:first-child {
+ border-left: none;
+ padding-left: 0em;
+}
+
+/* Inverted */
+
+.ui.divided.inverted.list > .item,
+.ui.divided.inverted.list > .list {
+ border-color: rgba(255, 255, 255, 0.2);
+}
+
+.ui.divided.inverted.horizontal.list .item {
+ border-color: rgba(255, 255, 255, 0.2);
+}
+
+/*-------------------
+ Celled
+--------------------*/
+
+.ui.celled.list > .item,
+.ui.celled.list > .list {
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+}
+
+.ui.celled.list > .item:last-child {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* Sub Menu */
+
+.ui.celled.list .item .list {
+ margin-left: -0.5em;
+ margin-right: -0.5em;
+}
+
+.ui.celled.list .item .list .item {
+ border-width: 0px;
+}
+
+.ui.celled.list .list .item:first-child {
+ border-top-width: 0px;
+}
+
+/* Celled Bulleted */
+
+.ui.celled.bulleted.list {
+ margin-left: 0em;
+}
+
+.ui.celled.bulleted.list > .item {
+ padding-left: 1.5em;
+}
+
+.ui.celled.bulleted.list > .item:before {
+ left: 0.5em;
+}
+
+/* Celled Ordered */
+
+.ui.celled.ordered.list {
+ margin-left: 0em;
+}
+
+.ui.celled.ordered.list .item {
+ padding-left: 2em;
+ padding-right: 2em;
+}
+
+.ui.celled.ordered.list .item:before {
+ left: 0.5em;
+}
+
+.ui.celled.ordered.list .item .list {
+ margin-left: -2em;
+ margin-right: -2em;
+}
+
+/* Celled Horizontal */
+
+.ui.horizontal.celled.list {
+ margin-left: 0em;
+}
+
+.ui.horizontal.celled.list .item {
+ border-top: none;
+ border-left: 1px solid rgba(0, 0, 0, 0.1);
+ margin: 0em;
+ padding-left: 0.75em;
+ padding-right: 0.75em;
+ line-height: 0.6em;
+}
+
+.ui.horizontal.celled.list .item:last-child {
+ border-bottom: none;
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* Inverted */
+
+.ui.celled.inverted.list > .item,
+.ui.celled.inverted.list > .list {
+ border-color: rgba(255, 255, 255, 0.2);
+}
+
+.ui.celled.inverted.horizontal.list .item {
+ border-color: rgba(255, 255, 255, 0.2);
+}
+
+/*-------------------
+ Relaxed
+--------------------*/
+
+.ui.relaxed.list:not(.horizontal) .item {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+}
+
+.ui.relaxed.list .header {
+ margin-bottom: 0.25em;
+}
+
+.ui.horizontal.relaxed.list .item {
+ padding-left: 1.25em;
+ padding-right: 1.25em;
+}
+
+.ui.very.relaxed.list:not(.horizontal) .item {
+ padding-top: 1em;
+ padding-bottom: 1em;
+}
+
+.ui.very.relaxed.list .header {
+ margin-bottom: 0.5em;
+}
+
+.ui.horizontal.very.relaxed.list .item {
+ padding-left: 2em;
+ padding-right: 2em;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+.ui.mini.list .item {
+ font-size: 0.7rem;
+}
+
+.ui.tiny.list .item {
+ font-size: 0.8125rem;
+}
+
+.ui.small.list .item {
+ font-size: 0.875rem;
+}
+
+.ui.list .item {
+ font-size: 1em;
+}
+
+.ui.large.list .item {
+ font-size: 1.125rem;
+}
+
+.ui.big.list .item {
+ font-size: 1.25rem;
+}
+
+.ui.huge.list .item {
+ font-size: 1.375rem;
+}
+
+.ui.massive.list .item {
+ font-size: 1.5rem;
+}
\ No newline at end of file
diff --git a/css/semantic/build/uncompressed/views/statistic.css b/css/semantic/build/uncompressed/views/statistic.css
new file mode 100644
index 0000000..7d76c16
--- /dev/null
+++ b/css/semantic/build/uncompressed/views/statistic.css
@@ -0,0 +1,32 @@
+/*
+ * # Statistic
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: Aug 20, 2013
+ */
+
+/*******************************
+ Statistic
+*******************************/
+
+.ui.statistic {
+ text-align: center;
+}
+
+/*******************************
+ Content
+*******************************/
+
+.ui.statistic > .number {
+ font-size: 4em;
+ font-weight: bold;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.statistic > .description {
+ opacity: 0.8;
+}
\ No newline at end of file
diff --git a/css/semantic/composer.json b/css/semantic/composer.json
new file mode 100755
index 0000000..e08a4e9
--- /dev/null
+++ b/css/semantic/composer.json
@@ -0,0 +1,21 @@
+{
+ "name": "semantic/ui",
+ "version" : "0.3.5",
+ "description" : "Semantic empowers designers and developers by creating a shared vocabulary for UI.",
+ "homepage" : "http://www.semantic-ui.com",
+ "authors": [
+ {
+ "name" : "Jack Lukic",
+ "email": "jacklukic@gmail.com",
+ "web" : "http://www.jacklukic.com",
+ "role" : "Creator"
+ }
+ ],
+ "keywords": [
+ "semantic",
+ "ui",
+ "css",
+ "framework"
+ ],
+ "license" : "MIT"
+}
\ No newline at end of file
diff --git a/css/semantic/docpad.coffee b/css/semantic/docpad.coffee
new file mode 100755
index 0000000..855d2fe
--- /dev/null
+++ b/css/semantic/docpad.coffee
@@ -0,0 +1,118 @@
+# The DocPad Configuration File
+# It is simply a CoffeeScript Object which is parsed by CSON
+docpadConfig = {
+
+ srcPath : './server'
+ outPath: './docs'
+
+ # =================================
+ # Template Data
+ # These are variables that will be accessible via our templates
+ # To access one of these within our templates, refer to the FAQ: https://github.com/bevry/docpad/wiki/FAQ
+
+ templateData:
+
+ # Specify some site properties
+ site:
+ # The production url of our website
+ url: "http://www.semantic-ui.com"
+
+ # Here are some old site urls that you would like to redirect from
+ oldUrls: [
+ 'learnsemantic.com'
+ ],
+
+ # The default title of our website
+ title: "Semantic UI"
+
+ # The website description (for SEO)
+ description: """
+ Semantic empowers designers and developers by creating a shared vocabulary for UI.
+ """
+
+ # The website keywords (for SEO) separated by commas
+ keywords: """
+ html5, ui, library, framework, javascript
+ """
+
+
+ # -----------------------------
+ # Helper Functions
+
+ # Get the prepared site/document title
+ # Often we would like to specify particular formatting to our page's title
+ # we can apply that formatting here
+ getPreparedTitle: ->
+ # if we have a document title, then we should use that and suffix the site's title onto it
+ if @document.title
+ "#{@document.title} | #{@site.title}"
+ # if our document does not have it's own title, then we should just use the site's title
+ else
+ @site.title
+
+ getPage: (collection, id) ->
+ for item, index in collection
+ selectedIndex = (index + 1) if item.id is id
+ selectedIndex
+
+ pageCount: (collection) ->
+ for item, index in collection
+ itemCount = index + 1
+ itemCount
+
+ getPageCollection: (collection, id, delta = 2) ->
+ for item, index in collection
+ selectedIndex = index if item.id is id
+ lastIndex = index
+
+ # determine page count before and after
+ bottomCount = if (selectedIndex - delta >= 0) then delta else (selectedIndex)
+ topCount = if (selectedIndex + delta <= lastIndex) then delta else (lastIndex - selectedIndex)
+
+ bottomDelta = (delta * 2 - topCount)
+ topDelta = (delta * 2 - bottomCount)
+
+ bottomIndex = if (selectedIndex - bottomDelta >= 0) then (selectedIndex - bottomDelta) else 0
+ topIndex = if (selectedIndex + topDelta <= lastIndex) then (selectedIndex + topDelta) else lastIndex
+ result = collection[bottomIndex..topIndex]
+ result
+
+ # Get the prepared site/document description
+ getPreparedDescription: ->
+ # if we have a document description, then we should use that, otherwise use the site's description
+ @document.description or @site.description
+
+ # Get the prepared site/document keywords
+ getPreparedKeywords: ->
+ # Merge the document keywords with the site keywords
+ @site.keywords.concat(@document.keywords or []).join(', ')
+
+
+ # =================================
+ # Custom Collections
+
+ collections:
+ uiElements: ->
+ @getCollection("documents").findAllLive({type: $in: ['UI Element']}, [{title: 1}])
+
+ uiCollections: ->
+ @getCollection("documents").findAllLive({type: $in: ['UI Collection']}, [{title: 1}])
+
+ uiViews: ->
+ @getCollection("documents").findAllLive({type: $in: ['UI View']}, [{title: 1}])
+
+ uiModules: ->
+ @getCollection("documents").findAllLive({type: $in: ['UI Module', 'UI Behavior']}, [{title: 1}])
+
+ # =================================
+ # DocPad Events
+
+ # Here we can define handlers for events that DocPad fires
+ # You can find a full listing of events on the DocPad Wiki
+ # events:
+
+
+}
+
+# Export our DocPad Configuration
+module.exports = docpadConfig
diff --git a/css/semantic/karma.conf.js b/css/semantic/karma.conf.js
new file mode 100755
index 0000000..89a716f
--- /dev/null
+++ b/css/semantic/karma.conf.js
@@ -0,0 +1,85 @@
+// Karma configuration
+module.exports = function(config) {
+ config.set({
+
+ // base path, that will be used to resolve files and exclude
+ basePath: '',
+
+ // frameworks to use
+ frameworks: [
+ 'jasmine'
+ ],
+
+ // list of files / patterns to load in the browser
+ files: [
+ // require jquery
+ 'server/files/javascript/library/jquery.js',
+ // read css from compiled css
+ 'docs/build/uncompressed/**/*.css',
+ // read js from src js
+ 'src/**/*.js',
+ // require helpers
+ 'test/helpers/*.js',
+ // require fixtures
+ {
+ pattern : 'test/fixtures/*.html',
+ included : false,
+ served : true
+ },
+ // require spec
+ 'test/modules/module.spec.js',
+ // require tests
+ 'test/modules/*.js'
+ ],
+
+ // list of files to exclude
+ exclude: [
+ '**/*.swp',
+ 'karma.conf.js'
+ ],
+
+ preprocessors: {
+ '**/*.html': [],
+ 'src/**/*.js': 'coverage'
+ },
+
+ // test results reporter to use
+ // possible values: 'dots', 'progress', 'junit', 'growl', 'coverage'
+ reporters: ['spec', 'coverage'],
+
+ coverageReporter: {
+ type: 'lcov'
+ },
+
+ // web server port
+ port: 9999,
+
+ // enable / disable colors in the output (reporters and logs)
+ colors: true,
+
+ // level of logging
+ // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
+ logLevel: config.LOG_INFO,
+
+ // enable / disable watching file and executing tests whenever any file changes
+ autoWatch: true,
+
+ // Start these browsers, currently available:
+ // - Chrome
+ // - ChromeCanary
+ // - Firefox
+ // - Opera
+ // - Safari (only Mac)
+ // - PhantomJS
+ // - IE (only Windows)
+ browsers: ['PhantomJS'],
+
+
+ // If browser does not capture in given timeout [ms], kill it
+ captureTimeout: 60000,
+
+ // Continuous Integration mode
+ // if true, it capture browsers, run tests and exit
+ singleRun: false
+ });
+};
diff --git a/css/semantic/logo.png b/css/semantic/logo.png
new file mode 100644
index 0000000..9f1df7b
Binary files /dev/null and b/css/semantic/logo.png differ
diff --git a/css/semantic/package.json b/css/semantic/package.json
new file mode 100755
index 0000000..cbdab9b
--- /dev/null
+++ b/css/semantic/package.json
@@ -0,0 +1,48 @@
+{
+ "name": "semantic",
+ "version": "0.15.4",
+ "title": "Semantic UI",
+ "description": "Semantic empowers designers and developers by creating a shared vocabulary for UI.",
+ "homepage": "http://www.semantic-ui.com",
+ "author": "Jack Lukic
",
+ "license": "MIT",
+ "scripts": {
+ "test": "grunt test"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/Semantic-Org/Semantic-UI.git"
+ },
+ "dependencies": {},
+ "devDependencies": {
+ "docpad": "~6.63.3",
+ "docpad-plugin-eco": "~2.0.3",
+ "docpad-plugin-ghpages": "~2.4.1",
+ "docpad-plugin-partials": "~2.8.1",
+ "grunt": "~0.4.1",
+ "grunt-contrib-watch": "~0.5.3",
+ "grunt-contrib-clean": "~0.5.0",
+ "grunt-contrib-uglify": "~0.2.2",
+ "grunt-contrib-cssmin": "~0.6.1",
+ "grunt-contrib-less": "~0.7.0",
+ "grunt-contrib-copy": "~0.4.1",
+ "grunt-docco": "~0.2.0",
+ "grunt-bower-task": "~0.3.1",
+ "grunt-css": "~0.5.4",
+ "grunt-contrib-compress": "~0.5.2",
+ "grunt-contrib-concat": "~0.3.0",
+ "grunt-docco-multi": "0.0.2",
+ "grunt-cssjanus": "~0.1.1",
+ "karma": "~0.10.2",
+ "grunt-karma": "~0.6.2",
+ "karma-spec-reporter": "0.0.5",
+ "grunt-clear": "~0.2.1",
+ "grunt-autoprefixer": "~0.4.0",
+ "grunt-karma-coveralls": "~2.2.0",
+ "karma-coverage": "~0.1.4",
+ "docpad-plugin-partials": "~2.8.1",
+ "docpad-plugin-ghpages": "~2.4.2",
+ "docpad-plugin-eco": "~2.0.3",
+ "docpad": "~6.63.3"
+ }
+}
diff --git a/css/semantic/rtl/examples/feed.css b/css/semantic/rtl/examples/feed.css
new file mode 100644
index 0000000..f1ad992
--- /dev/null
+++ b/css/semantic/rtl/examples/feed.css
@@ -0,0 +1,103 @@
+/*******************************
+ Global
+*******************************/
+
+html,
+body {
+ font-size: 15px;
+ height: 100%;
+}
+
+body {
+ font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
+ background: #FFFFFF;
+ margin: 0px;
+ padding: 0px;
+ color: #555555;
+ text-rendering: optimizeLegibility;
+ min-width: 320px;
+}
+
+.ui.header {
+ font-family: 'Source Sans Pro', "Helvetica Neue", "Helvetica", "Arial", sans-serif;
+}
+
+/*******************************
+ Global
+*******************************/
+
+/*-------------------
+ Sidebar
+--------------------*/
+
+#feed .sidebar {
+ overflow: visible;
+}
+
+/*-------------------
+ Grid
+--------------------*/
+
+#feed .grid {
+ height: 100%;
+}
+
+#feed > .grid > .column {
+ height: 100%;
+}
+
+/*-------------------
+ Inbox
+--------------------*/
+
+#feed .inbox.tab {
+ background-color: #FFFFFF;
+}
+
+#feed .inbox.tab .item {
+ padding-top: 1rem;
+ padding-bottom: 1rem;
+}
+
+#feed .inbox.tab .item .rating {
+ margin-top: 0.2rem;
+}
+
+#feed .inbox.tab .item .description {
+ margin-right: 2em;
+}
+
+#feed .page {
+ float: left;
+ margin-top: 0.9em;
+}
+
+#feed .middle.column {
+ padding: 1em 2em;
+}
+
+#feed .middle.column h2 {
+ margin-top: 0em;
+}
+
+#feed .right.column {
+ padding: 1em 2em;
+ background-color: #FAFAFA;
+}
+
+/*******************************
+ Responsive
+*******************************/
+
+@media only screen and (max-width : 1000px) {
+ #feed .inbox .date {
+ float: none;
+ margin-bottom: 0.5em;
+ }
+}
+
+@media only screen and (max-width : 1250px) {
+ #feed .left.column > .menu .item {
+ font-size: 1rem;
+ }
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/examples/feed.html b/css/semantic/rtl/examples/feed.html
new file mode 100644
index 0000000..ec2d5e8
--- /dev/null
+++ b/css/semantic/rtl/examples/feed.html
@@ -0,0 +1,150 @@
+
+
+
+
+
+
+
+
+
+ Feed Example - Semantic
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Menu
+
+
+
+
+
+
+
+
+
+
Showing 6 of 213
+
+
+
+
+ Tags:
Unread Comics
+
So there's this video game coming out Tuesday called Grand Theft Auto 5. Don't know if you've heard of it. Anyways, it's all about crime and gangs and some roughneck ne'er-do-wells, so I thought this would be the perfect time to talk about times when we've been... well, less than perfect.
+
When I was a young'un, I was a frequent visitor to the local swimming pool. I was also a frequent lover of AirHeads candy, which the pool happened to sell. Waiting, watching, stalking the counter like a big cat in the savannah, I waited for the perfect opportunity to strike. While the lifeguards were busy, I snuck through the gate, reached up and took both cherry and "mystery white" AirHeads. I quickly ran out to the sidewalk and reveled in my sweet, delicious victory... for all of ten seconds, before I felt guilty enough to sneak back in and return the .20 worth of candy I had stolen.
+
While you confess your crimes - hopefully minor, and nothing you can be persecuted for - take a moment to enjoy this week's webcomics, and vote for your favorite after the jump.
+
+
Save
+
Delete
+
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/rtl/examples/feed.js b/css/semantic/rtl/examples/feed.js
new file mode 100644
index 0000000..891d1e3
--- /dev/null
+++ b/css/semantic/rtl/examples/feed.js
@@ -0,0 +1,23 @@
+$(document)
+ .ready(function() {
+
+ $('.filter.menu .item')
+ .tab()
+ ;
+
+ $('.ui.rating')
+ .rating({
+ clearable: true
+ })
+ ;
+
+ $('.ui.sidebar')
+ .sidebar('attach events', '.launch.button')
+ ;
+
+ $('.ui.dropdown')
+ .dropdown()
+ ;
+
+ })
+;
\ No newline at end of file
diff --git a/css/semantic/rtl/examples/homepage.css b/css/semantic/rtl/examples/homepage.css
new file mode 100644
index 0000000..c1c3981
--- /dev/null
+++ b/css/semantic/rtl/examples/homepage.css
@@ -0,0 +1,193 @@
+/*******************************
+ Global
+*******************************/
+
+html,
+body {
+ font-size: 15px;
+ height: 100%;
+}
+
+body {
+ font-family: "Open Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
+ background: #FFFFFF;
+ margin: 0px;
+ padding: 0px;
+ color: #555555;
+ text-rendering: optimizeLegibility;
+ min-width: 320px;
+}
+
+/*******************************
+ UI Overrides
+*******************************/
+
+.ui.header {
+ font-family: 'Source Sans Pro', "Helvetica Neue", "Helvetica", "Arial", sans-serif;
+}
+
+.ui.header,
+h1,
+h2 {
+ font-weight: normal !important;
+}
+
+h1.ui.header {
+ font-size: 3em;
+}
+
+h4.ui.header,
+h5.ui.header,
+.ui.icon.header {
+ font-weight: bold !important;
+}
+
+.ui.button {
+ font-weight: normal;
+ text-decoration: none;
+}
+
+a {
+ color: #009FDA;
+ text-decoration: none;
+ -webkit-transition: color 0.3s ease;
+ -moz-transition: color 0.3s ease;
+ transition: color 0.3s ease;
+}
+
+a:hover {
+ color: #00BAFF;
+}
+
+p a {
+ font-weight: bold;
+}
+
+/*******************************
+ Global
+*******************************/
+
+.menu .right.menu > .mobile.item {
+ display: none;
+}
+
+.ui.page.grid.segment {
+ padding-top: 3.5rem;
+ padding-bottom: 3.5rem;
+}
+
+.masthead.segment {
+ background-image: url(images/bg.jpg);
+ -webkit-background-size: cover;
+ background-size: cover;
+ margin: 0em;
+ padding-top: 4rem;
+ overflow: hidden;
+ -webkit-box-shadow: 0 -20px 10px 0 rgba(0, 0, 0, 0.1) inset !important;
+ box-shadow: 0 -20px 10px 0 rgba(0, 0, 0, 0.1) inset !important;
+}
+
+.masthead.segment .column {
+ position: relative;
+}
+
+.masthead.segment .information {
+ margin: 3em 280px 1em 1em;
+}
+
+.masthead.segment .information p {
+ max-width: 600px;
+ margin: 0em 0em 2em 0px;
+ font-size: 1.2em;
+}
+
+.masthead.segment h1.ui.header .sub {
+ font-size: 0.7em;
+}
+
+.masthead.segment .image {
+ position: absolute;
+ right: 0%;
+ bottom: -110px;
+}
+
+.overview .divided.grid .header + p {
+ min-height: 100px;
+}
+
+.ui.shape .icon,
+.link.list .icon {
+ margin: 0em;
+ padding: 0em;
+}
+
+.ui.cube.shape .side {
+ background-color: transparent;
+}
+
+/*******************************
+ Responsive
+*******************************/
+
+/* Mobile Only */
+
+@media only screen and (max-width : 768px) {
+ .ui.page.grid.segment {
+ padding-top: 2rem;
+ padding-bottom: 2rem;
+ }
+
+ .menu .right.menu > .item {
+ display: none;
+ }
+
+ .menu .right.menu > .mobile.item {
+ display: block;
+ }
+
+ h1.ui.header {
+ font-size: 1.5em;
+ }
+
+ .masthead.segment {
+ -webkit-background-size: auto;
+ background-size: auto;
+ }
+
+ .masthead.segment .information {
+ margin-right: 190px;
+ }
+
+ .masthead.segment .image {
+ bottom: -65px;
+ width: 150px;
+ }
+
+ .masthead.segment .button {
+ font-size: 1rem;
+ }
+
+ .overview .divided.grid .header .icon {
+ font-size: 1.5em;
+ }
+
+ .overview .divided.grid .header + p {
+ min-height: 0px;
+ }
+
+ .masthead.segment .column {
+ font-size: 0.7rem;
+ }
+
+ .masthead.segment .column p {
+ display: none;
+ }
+
+ .selection.list .right.floated {
+ display: none;
+ }
+}
+
+@media only screen and (max-width : 1000px) {
+
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/examples/homepage.html b/css/semantic/rtl/examples/homepage.html
new file mode 100644
index 0000000..43e5690
--- /dev/null
+++ b/css/semantic/rtl/examples/homepage.html
@@ -0,0 +1,294 @@
+
+
+
+
+
+
+
+
+
+ Homepage Example - Semantic
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Take your kitty to a cat-ducation course and learn how to treat her well.
+
Learn
+
+
+
+
Dig through our cat library to found out amazing things you can do with your kitty.
+
Research
+
+
+
+
Get feedback on your cat from a community of loving pet owners on our online bulletin board system.
+
Share
+
+
+
+
+
+
+
+
+
+
+
Getting your cat to notice you is a large part of being a pet owner. Although I have a lot of patience for writing things about cats, perhaps this might be enough body copy to make this section of text look filled out.
+
This and other tips can be found in our newsletter, amazing right?
+
+
+
+
+
+ How to win in a fight with a cat
+
Jan 20, 2023
+
+
+ A Supposedly Fun Cat Toy I will Never Buy Again
+
Jan 1, 2023
+
+
+ Much ado about yarn
+
Dec 20, 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 237 Catberry Road
+ Milton Keynes, London
+
+
(404) 867-5309
+
+
+
+
+
diff --git a/css/semantic/rtl/examples/homepage.js b/css/semantic/rtl/examples/homepage.js
new file mode 100644
index 0000000..6580187
--- /dev/null
+++ b/css/semantic/rtl/examples/homepage.js
@@ -0,0 +1,57 @@
+$(document)
+ .ready(function() {
+
+ var
+ changeSides = function() {
+ $('.ui.shape')
+ .eq(0)
+ .shape('flip over')
+ .end()
+ .eq(1)
+ .shape('flip over')
+ .end()
+ .eq(2)
+ .shape('flip back')
+ .end()
+ .eq(3)
+ .shape('flip back')
+ .end()
+ ;
+ },
+ validationRules = {
+ firstName: {
+ identifier : 'email',
+ rules: [
+ {
+ type : 'empty',
+ prompt : 'Please enter an e-mail'
+ },
+ {
+ type : 'email',
+ prompt : 'Please enter a valid e-mail'
+ }
+ ]
+ }
+ }
+ ;
+
+ $('.ui.dropdown')
+ .dropdown({
+ on: 'hover'
+ })
+ ;
+
+ $('.ui.form')
+ .form(validationRules, {
+ on: 'blur'
+ })
+ ;
+
+ $('.masthead .information')
+ .transition('scale in')
+ ;
+
+ setInterval(changeSides, 3000);
+
+ })
+;
\ No newline at end of file
diff --git a/css/semantic/rtl/examples/images/bg.jpg b/css/semantic/rtl/examples/images/bg.jpg
new file mode 100644
index 0000000..325b22d
Binary files /dev/null and b/css/semantic/rtl/examples/images/bg.jpg differ
diff --git a/css/semantic/rtl/examples/images/cat.png b/css/semantic/rtl/examples/images/cat.png
new file mode 100644
index 0000000..0babcb4
Binary files /dev/null and b/css/semantic/rtl/examples/images/cat.png differ
diff --git a/css/semantic/rtl/less/collections/breadcrumb.less b/css/semantic/rtl/less/collections/breadcrumb.less
new file mode 100644
index 0000000..4577dd5
--- /dev/null
+++ b/css/semantic/rtl/less/collections/breadcrumb.less
@@ -0,0 +1,81 @@
+/*
+ * # Semantic - Breadcrumb
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Breadcrumb
+*******************************/
+
+.ui.breadcrumb {
+ margin: 1em 0em;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.ui.breadcrumb:first-child {
+ margin-top: 0em;
+}
+
+.ui.breadcrumb:last-child {
+ margin-bottom: 0em;
+}
+
+/*******************************
+ Content
+*******************************/
+
+.ui.breadcrumb .divider {
+ display: inline-block;
+ opacity: 0.5;
+ margin: 0em 0.15em 0em;
+ font-size: 1em;
+ color: rgba(0, 0, 0, 0.3);
+}
+
+.ui.breadcrumb a.section {
+ cursor: pointer;
+}
+
+.ui.breadcrumb .section {
+ display: inline-block;
+ margin: 0em;
+ padding: 0em;
+}
+
+/* Loose Coupling */
+
+.ui.breadcrumb.segment {
+ display: inline-block;
+ padding: 0.5em 1em;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.breadcrumb .active.section {
+ font-weight: bold;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.small.breadcrumb {
+ font-size: 0.75em;
+}
+
+.ui.large.breadcrumb {
+ font-size: 1.1em;
+}
+
+.ui.huge.breadcrumb {
+ font-size: 1.3em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/collections/form.less b/css/semantic/rtl/less/collections/form.less
new file mode 100644
index 0000000..af0193c
--- /dev/null
+++ b/css/semantic/rtl/less/collections/form.less
@@ -0,0 +1,633 @@
+/*
+ * # Semantic - Form
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------------
+ Form
+---------------------*/
+
+.ui.form {
+ position: relative;
+ max-width: 100%;
+}
+
+.ui.form :first-child {
+ margin-top: 0em;
+}
+
+.ui.form :last-child {
+ margin-bottom: 0em;
+}
+
+/*--------------------
+ Content
+---------------------*/
+
+.ui.form > p {
+ margin: 1em 0;
+}
+
+/*--------------------
+ Field
+---------------------*/
+
+.ui.form .field {
+ clear: both;
+ margin: 0em 0em 1em;
+}
+
+/*--------------------
+ Labels
+---------------------*/
+
+.ui.form .field > label {
+ margin: 0em 0em 0.3em;
+ display: block;
+ color: #555555;
+ font-size: 0.875em;
+}
+
+/*--------------------
+ Standard Inputs
+---------------------*/
+
+.ui.form textarea,
+.ui.form input[type="text"],
+.ui.form input[type="email"],
+.ui.form input[type="date"],
+.ui.form input[type="password"],
+.ui.form input[type="number"],
+.ui.form input[type="url"],
+.ui.form input[type="tel"],
+.ui.form .ui.input {
+ width: 100%;
+}
+
+.ui.form textarea,
+.ui.form input[type="text"],
+.ui.form input[type="email"],
+.ui.form input[type="date"],
+.ui.form input[type="password"],
+.ui.form input[type="number"],
+.ui.form input[type="url"],
+.ui.form input[type="tel"] {
+ margin: 0em;
+ padding: 0.65em 1em;
+ font-size: 1em;
+ background-color: #FFFFFF;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ outline: none;
+ color: rgba(0, 0, 0, 0.7);
+ border-radius: 0.3125em;
+ -webkit-transition: background-color 0.3s ease-out,
+ -webkit-box-shadow 0.2s ease,
+ border-color 0.2s ease;
+ -moz-transition: background-color 0.3s ease-out,
+ box-shadow 0.2s ease,
+ border-color 0.2s ease;
+ transition: background-color 0.3s ease-out,
+ box-shadow 0.2s ease,
+ border-color 0.2s ease;
+ -webkit-box-shadow: 0em 0em 0em 0em rgba(0, 0, 0, 0.3) inset;
+ box-shadow: 0em 0em 0em 0em rgba(0, 0, 0, 0.3) inset;
+ -webkit-appearance: none;
+ -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.textarea,
+.ui.form textarea {
+ line-height: 1.33;
+ min-height: 8em;
+ height: 12em;
+ max-height: 24em;
+ resize: vertical;
+}
+
+.ui.form textarea,
+.ui.form input[type="checkbox"] {
+ vertical-align: top;
+}
+
+/*--------------------
+ Dividers
+---------------------*/
+
+.ui.form .divider {
+ clear: both;
+ margin: 1em 0em;
+}
+
+/*--------------------
+ Types of Messages
+---------------------*/
+
+.ui.form .info.message,
+.ui.form .warning.message,
+.ui.form .error.message {
+ display: none;
+}
+
+/* Assumptions */
+
+.ui.form .message:first-child {
+ margin-top: 0px;
+}
+
+/*--------------------
+ Validation Prompt
+---------------------*/
+
+.ui.form .field .prompt.label {
+ white-space: nowrap;
+}
+
+.ui.form .inline.field .prompt {
+ margin-top: 0em;
+ margin-right: 1em;
+}
+
+.ui.form .inline.field .prompt:before {
+ margin-top: -0.3em;
+ bottom: auto;
+ left: auto;
+ top: 50%;
+ right: 0em;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------------
+ Focus
+---------------------*/
+
+.ui.form input[type="text"]:focus,
+.ui.form input[type="email"]:focus,
+.ui.form input[type="date"]:focus,
+.ui.form input[type="password"]:focus,
+.ui.form input[type="number"]:focus,
+.ui.form input[type="url"]:focus,
+.ui.form input[type="tel"]:focus,
+.ui.form textarea:focus {
+ color: rgba(0, 0, 0, 0.85);
+ border-color: rgba(0, 0, 0, 0.2);
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ -webkit-appearance: none;
+ -webkit-box-shadow: 0.3em 0em 0em 0em rgba(0, 0, 0, 0.2) inset;
+ box-shadow: 0.3em 0em 0em 0em rgba(0, 0, 0, 0.2) inset;
+}
+
+/*--------------------
+ Error
+---------------------*/
+
+/* On Form */
+
+.ui.form.warning .warning.message {
+ display: block;
+}
+
+/*--------------------
+ Warning
+---------------------*/
+
+/* On Form */
+
+.ui.form.error .error.message {
+ display: block;
+}
+
+/* On Field(s) */
+
+.ui.form .fields.error .field label,
+.ui.form .field.error label,
+.ui.form .fields.error .field .input,
+.ui.form .field.error .input {
+ color: #D95C5C;
+}
+
+.ui.form .fields.error .field .corner.label,
+.ui.form .field.error .corner.label {
+ border-color: #D95C5C;
+ color: #FFFFFF;
+}
+
+.ui.form .fields.error .field textarea,
+.ui.form .fields.error .field input[type="text"],
+.ui.form .fields.error .field input[type="email"],
+.ui.form .fields.error .field input[type="date"],
+.ui.form .fields.error .field input[type="password"],
+.ui.form .fields.error .field input[type="number"],
+.ui.form .fields.error .field input[type="url"],
+.ui.form .fields.error .field input[type="tel"],
+.ui.form .field.error textarea,
+.ui.form .field.error input[type="text"],
+.ui.form .field.error input[type="email"],
+.ui.form .field.error input[type="date"],
+.ui.form .field.error input[type="password"],
+.ui.form .field.error input[type="number"],
+.ui.form .field.error input[type="url"],
+.ui.form .field.error input[type="tel"] {
+ background-color: #FFFAFA;
+ border-color: #E7BEBE;
+ border-right: none;
+ color: #D95C5C;
+ padding-right: 1.2em;
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ -webkit-box-shadow: 0.3em 0em 0em 0em #D95C5C inset;
+ box-shadow: 0.3em 0em 0em 0em #D95C5C inset;
+}
+
+.ui.form .field.error textarea:focus,
+.ui.form .field.error input[type="text"]:focus,
+.ui.form .field.error input[type="email"]:focus,
+.ui.form .field.error input[type="date"]:focus,
+.ui.form .field.error input[type="password"]:focus,
+.ui.form .field.error input[type="number"]:focus,
+.ui.form .field.error input[type="url"]:focus,
+.ui.form .field.error input[type="tel"]:focus {
+ border-color: rgba(255, 80, 80, 1);
+ color: rgba(255, 80, 80, 1);
+ -webkit-appearance: none;
+ -webkit-box-shadow: 0.3em 0em 0em 0em #FF5050 inset;
+ box-shadow: 0.3em 0em 0em 0em #FF5050 inset;
+}
+
+/*----------------------------
+ Dropdown Selection Warning
+-----------------------------*/
+
+.ui.form .fields.error .field .ui.dropdown,
+.ui.form .fields.error .field .ui.dropdown .item,
+.ui.form .field.error .ui.dropdown,
+.ui.form .field.error .ui.dropdown .item {
+ background-color: #FFFAFA;
+ color: #D95C5C;
+}
+
+.ui.form .fields.error .field .ui.dropdown,
+.ui.form .field.error .ui.dropdown {
+ -webkit-box-shadow: 0px 0px 0px 1px #E7BEBE !important;
+ box-shadow: 0px 0px 0px 1px #E7BEBE !important;
+}
+
+.ui.form .fields.error .field .ui.dropdown:hover,
+.ui.form .field.error .ui.dropdown:hover {
+ -webkit-box-shadow: 0px 0px 0px 1px #E7BEBE !important;
+ box-shadow: 0px 0px 0px 1px #E7BEBE !important;
+}
+
+.ui.form .fields.error .field .ui.dropdown:hover .menu,
+.ui.form .field.error .ui.dropdown:hover .menu {
+ -webkit-box-shadow: 0px 1px 0px 1px #E7BEBE;
+ box-shadow: 0px 1px 0px 1px #E7BEBE;
+}
+
+.ui.form .fields.error .field .ui.dropdown .menu .item:hover,
+.ui.form .field.error .ui.dropdown .menu .item:hover {
+ background-color: #FFF2F2;
+}
+
+.ui.form .fields.error .field .ui.dropdown .menu .active.item,
+.ui.form .field.error .ui.dropdown .menu .active.item {
+ background-color: #FDCFCF !important;
+}
+
+/*--------------------
+ Empty (Placeholder)
+---------------------*/
+
+/* browsers require these rules separate */
+
+.ui.form ::-webkit-input-placeholder {
+ color: #AAAAAA;
+}
+
+.ui.form ::-moz-placeholder {
+ color: #AAAAAA;
+}
+
+.ui.form :focus::-webkit-input-placeholder {
+ color: #999999;
+}
+
+.ui.form :focus::-moz-placeholder {
+ color: #999999;
+}
+
+/* Error Placeholder */
+
+.ui.form .error ::-webkit-input-placeholder {
+ color: rgba(255, 80, 80, 0.4);
+}
+
+.ui.form .error ::-moz-placeholder {
+ color: rgba(255, 80, 80, 0.4);
+}
+
+.ui.form .error :focus::-webkit-input-placeholder {
+ color: rgba(255, 80, 80, 0.7);
+}
+
+.ui.form .error :focus::-moz-placeholder {
+ color: rgba(255, 80, 80, 0.7);
+}
+
+/*--------------------
+ Disabled
+---------------------*/
+
+.ui.form .field :disabled,
+.ui.form .field.disabled {
+ opacity: 0.5;
+}
+
+.ui.form .field.disabled label {
+ opacity: 0.5;
+}
+
+.ui.form .field.disabled :disabled {
+ opacity: 1;
+}
+
+/*--------------------
+ Loading State
+---------------------*/
+
+/* On Form */
+
+.ui.form.loading {
+ position: relative;
+}
+
+.ui.form.loading:after {
+ position: absolute;
+ top: 0%;
+ right: 0%;
+ content: '';
+ width: 100%;
+ height: 100%;
+ background: rgba(255, 255, 255, 0.8) url(../images/loader-large.gif) no-repeat 50% 50%;
+ visibility: visible;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------------
+ Fluid Width
+---------------------*/
+
+.ui.form.fluid {
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*--------------------------
+ Input w/ attached Button
+---------------------------*/
+
+.ui.form input.attached {
+ width: auto;
+}
+
+/*--------------------
+ Date Input
+---------------------*/
+
+.ui.form .date.field > label {
+ position: relative;
+}
+
+.ui.form .date.field > label:after {
+ position: absolute;
+ top: 2em;
+ left: 0.5em;
+ font-family: 'Icons';
+ content: '\f133';
+ font-size: 1.2em;
+ font-weight: normal;
+ color: #CCCCCC;
+}
+
+/*--------------------
+ Inverted Colors
+---------------------*/
+
+.ui.inverted.form label {
+ color: #FFFFFF;
+}
+
+.ui.inverted.form .field.error textarea,
+.ui.inverted.form .field.error input[type="text"],
+.ui.inverted.form .field.error input[type="email"],
+.ui.inverted.form .field.error input[type="date"],
+.ui.inverted.form .field.error input[type="password"],
+.ui.inverted.form .field.error input[type="number"],
+.ui.inverted.form .field.error input[type="url"],
+.ui.inverted.form .field.error input[type="tel"] {
+ background-color: #FFCCCC;
+}
+
+.ui.inverted.form .ui.checkbox label {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.form .ui.checkbox label:hover,
+.ui.inverted.form .ui.checkbox .box:hover {
+ color: #FFFFFF;
+}
+
+/*--------------------
+ Field Groups
+---------------------*/
+
+/* Grouped Vertically */
+
+.ui.form .grouped.fields {
+ margin: 0em 0em 1em;
+}
+
+.ui.form .grouped.fields .field {
+ display: block;
+ float: none;
+ margin: 0.5em 0em;
+ padding: 0em;
+}
+
+/*--------------------
+ Fields
+---------------------*/
+
+/* Split fields */
+
+.ui.form .fields {
+ clear: both;
+}
+
+.ui.form .fields:after {
+ content: ' ';
+ display: block;
+ clear: both;
+ visibility: hidden;
+ line-height: 0;
+ height: 0;
+}
+
+.ui.form .fields > .field {
+ clear: none;
+ float: right;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.form .fields > .field:first-child {
+ border-right: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* Other Combinations */
+
+.ui.form .two.fields > .fields,
+.ui.form .two.fields > .field {
+ width: 50%;
+ padding-right: 1%;
+ padding-left: 1%;
+}
+
+.ui.form .three.fields > .fields,
+.ui.form .three.fields > .field {
+ width: 33.333%;
+ padding-right: 1%;
+ padding-left: 1%;
+}
+
+.ui.form .four.fields > .fields,
+.ui.form .four.fields > .field {
+ width: 25%;
+ padding-right: 1%;
+ padding-left: 1%;
+}
+
+.ui.form .five.fields > .fields,
+.ui.form .five.fields > .field {
+ width: 20%;
+ padding-right: 1%;
+ padding-left: 1%;
+}
+
+/* Swap to full width on mobile */
+
+@media only screen and (max-width : 767px) {
+ .ui.form .two.fields > .fields,
+ .ui.form .two.fields > .field,
+ .ui.form .three.fields > .fields,
+ .ui.form .three.fields > .field,
+ .ui.form .four.fields > .fields,
+ .ui.form .four.fields > .field,
+ .ui.form .five.fields > .fields,
+ .ui.form .five.fields > .field {
+ width: 100%;
+ padding-right: 0%;
+ padding-left: 0%;
+ }
+}
+
+.ui.form .fields .field:first-child {
+ padding-right: 0%;
+}
+
+.ui.form .fields .field:last-child {
+ padding-left: 0%;
+}
+
+/*--------------------
+ Inline Fields
+---------------------*/
+
+.ui.form .inline.fields .field {
+ min-height: 1.3em;
+ margin-left: 0.5em;
+}
+
+.ui.form .inline.fields .field > label,
+.ui.form .inline.fields .field > p,
+.ui.form .inline.fields .field > input,
+.ui.form .inline.field > label,
+.ui.form .inline.field > p,
+.ui.form .inline.field > input {
+ display: inline-block;
+ width: auto;
+ margin-top: 0em;
+ margin-bottom: 0em;
+ vertical-align: middle;
+ font-size: 1em;
+}
+
+.ui.form .inline.fields .field > input,
+.ui.form .inline.field > input {
+ font-size: 0.875em;
+}
+
+.ui.form .inline.fields .field > :first-child,
+.ui.form .inline.field > :first-child {
+ margin: 0em 0em 0em 0.5em;
+}
+
+.ui.form .inline.fields .field > :only-child,
+.ui.form .inline.field > :only-child {
+ margin: 0em;
+}
+
+/*--------------------
+ Sizes
+---------------------*/
+
+/* Standard */
+
+.ui.small.form {
+ font-size: 0.875em;
+}
+
+.ui.small.form textarea,
+.ui.small.form input[type="text"],
+.ui.small.form input[type="email"],
+.ui.small.form input[type="date"],
+.ui.small.form input[type="password"],
+.ui.small.form input[type="number"],
+.ui.small.form input[type="url"],
+.ui.small.form input[type="tel"],
+.ui.small.form label {
+ font-size: 1em;
+}
+
+/* Large */
+
+.ui.large.form {
+ font-size: 1.125em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/collections/grid.less b/css/semantic/rtl/less/collections/grid.less
new file mode 100644
index 0000000..575e9ad
--- /dev/null
+++ b/css/semantic/rtl/less/collections/grid.less
@@ -0,0 +1,906 @@
+/*
+ * # Semantic - Grid
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Grid
+*******************************/
+
+.ui.grid {
+ display: block;
+ text-align: right;
+ font-size: 0em;
+ margin: 0% -1.5%;
+ padding: 0%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+body > .ui.grid {
+ margin-right: 0% !important;
+ margin-left: 0% !important;
+}
+
+.ui.grid:after,
+.ui.row:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+/*-------------------
+ Columns
+--------------------*/
+
+/* Standard 16 column */
+
+.ui.grid > .column,
+.ui.grid > .row > .column {
+ display: inline-block;
+ text-align: right;
+ font-size: 1rem;
+ width: 6.25%;
+ padding-right: 1.5%;
+ padding-left: 1.5%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ vertical-align: top;
+}
+
+/* Vertical padding when no rows */
+
+.ui.grid > .column {
+ margin-top: 1rem;
+ margin-bottom: 1rem;
+}
+
+/*-------------------
+ Rows
+--------------------*/
+
+.ui.grid > .row {
+ display: block;
+ width: 100% !important;
+ margin-top: 1.5%;
+ padding: 1rem 0% 0%;
+ font-size: 0rem;
+}
+
+.ui.grid > .row:first-child {
+ padding-top: 0rem;
+ margin-top: 0rem;
+}
+
+/*-------------------
+ Content
+--------------------*/
+
+.ui.grid > .row > img,
+.ui.grid > .row > .column > img {
+ max-width: 100%;
+}
+
+.ui.grid .column > .ui.segment:only-child {
+ margin: 0em;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-----------------------
+ Page Grid (Responsive)
+-------------------------*/
+
+.ui.page.grid {
+ min-width: 320px;
+ margin-right: 0%;
+ margin-left: 0%;
+}
+
+@media only screen and (max-width : 991px) {
+ .ui.page.grid {
+ padding: 0% 4%;
+ }
+}
+
+@media only screen and (min-width : 992px) {
+ .ui.page.grid {
+ padding: 0% 8%;
+ }
+}
+
+@media only screen and (min-width : 1500px) {
+ .ui.page.grid {
+ padding: 0% 13%;
+ }
+}
+
+@media only screen and (min-width : 1750px) {
+ .ui.page.grid {
+ padding: 0% 18%;
+ }
+}
+
+@media only screen and (min-width : 2000px) {
+ .ui.page.grid {
+ padding: 0% 23%;
+ }
+}
+
+/*-------------------
+ Column Width
+--------------------*/
+
+/* Sizing Combinations */
+
+.ui.grid > .row > .one.wide.column,
+.ui.grid > .column.row > .one.wide.column,
+.ui.grid > .one.wide.column,
+.ui.column.grid > .one.wide.column {
+ width: 6.25%;
+}
+
+.ui.grid > .row > .two.wide.column,
+.ui.grid > .column.row > .two.wide.column,
+.ui.grid > .two.wide.column,
+.ui.column.grid > .two.wide.column {
+ width: 12.5%;
+}
+
+.ui.grid > .row > .three.wide.column,
+.ui.grid > .column.row > .three.wide.column,
+.ui.grid > .three.wide.column,
+.ui.column.grid > .three.wide.column {
+ width: 18.75%;
+}
+
+.ui.grid > .row > .four.wide.column,
+.ui.grid > .column.row > .four.wide.column,
+.ui.grid > .four.wide.column,
+.ui.column.grid > .four.wide.column {
+ width: 25%;
+}
+
+.ui.grid > .row > .five.wide.column,
+.ui.grid > .column.row > .five.wide.column,
+.ui.grid > .five.wide.column,
+.ui.column.grid > .five.wide.column {
+ width: 31.25%;
+}
+
+.ui.grid > .row > .six.wide.column,
+.ui.grid > .column.row > .six.wide.column,
+.ui.grid > .six.wide.column,
+.ui.column.grid > .six.wide.column {
+ width: 37.5%;
+}
+
+.ui.grid > .row > .seven.wide.column,
+.ui.grid > .column.row > .seven.wide.column,
+.ui.grid > .seven.wide.column,
+.ui.column.grid > .seven.wide.column {
+ width: 43.75%;
+}
+
+.ui.grid > .row > .eight.wide.column,
+.ui.grid > .column.row > .eight.wide.column,
+.ui.grid > .eight.wide.column,
+.ui.column.grid > .eight.wide.column {
+ width: 50%;
+}
+
+.ui.grid > .row > .nine.wide.column,
+.ui.grid > .column.row > .nine.wide.column,
+.ui.grid > .nine.wide.column,
+.ui.column.grid > .nine.wide.column {
+ width: 56.25%;
+}
+
+.ui.grid > .row > .ten.wide.column,
+.ui.grid > .column.row > .ten.wide.column,
+.ui.grid > .ten.wide.column,
+.ui.column.grid > .ten.wide.column {
+ width: 62.5%;
+}
+
+.ui.grid > .row > .eleven.wide.column,
+.ui.grid > .column.row > .eleven.wide.column,
+.ui.grid > .eleven.wide.column,
+.ui.column.grid > .eleven.wide.column {
+ width: 68.75%;
+}
+
+.ui.grid > .row > .twelve.wide.column,
+.ui.grid > .column.row > .twelve.wide.column,
+.ui.grid > .twelve.wide.column,
+.ui.column.grid > .twelve.wide.column {
+ width: 75%;
+}
+
+.ui.grid > .row > .thirteen.wide.column,
+.ui.grid > .column.row > .thirteen.wide.column,
+.ui.grid > .thirteen.wide.column,
+.ui.column.grid > .thirteen.wide.column {
+ width: 81.25%;
+}
+
+.ui.grid > .row > .fourteen.wide.column,
+.ui.grid > .column.row > .fourteen.wide.column,
+.ui.grid > .fourteen.wide.column,
+.ui.column.grid > .fourteen.wide.column {
+ width: 87.5%;
+}
+
+.ui.grid > .row > .fifteen.wide.column,
+.ui.grid > .column.row > .fifteen.wide.column,
+.ui.grid > .fifteen.wide.column,
+.ui.column.grid > .fifteen.wide.column {
+ width: 93.75%;
+}
+
+.ui.grid > .row > .sixteen.wide.column,
+.ui.grid > .column.row > .sixteen.wide.column,
+.ui.grid > .sixteen.wide.column,
+.ui.column.grid > .sixteen.wide.column {
+ width: 100%;
+}
+
+/*-------------------
+ Column Count
+--------------------*/
+
+/* Assume full width with one column */
+
+.ui.one.column.grid > .row > .column,
+.ui.one.column.grid > .column,
+.ui.grid > .one.column.row > .column {
+ width: 100%;
+}
+
+.ui.two.column.grid > .row > .column,
+.ui.two.column.grid > .column,
+.ui.grid > .two.column.row > .column {
+ width: 50%;
+}
+
+.ui.three.column.grid > .row > .column,
+.ui.three.column.grid > .column,
+.ui.grid > .three.column.row > .column {
+ width: 33.3333%;
+}
+
+.ui.four.column.grid > .row > .column,
+.ui.four.column.grid > .column,
+.ui.grid > .four.column.row > .column {
+ width: 25%;
+}
+
+.ui.five.column.grid > .row > .column,
+.ui.five.column.grid > .column,
+.ui.grid > .five.column.row > .column {
+ width: 20%;
+}
+
+.ui.six.column.grid > .row > .column,
+.ui.six.column.grid > .column,
+.ui.grid > .six.column.row > .column {
+ width: 16.66667%;
+}
+
+.ui.seven.column.grid > .row > .column,
+.ui.seven.column.grid > .column,
+.ui.grid > .seven.column.row > .column {
+ width: 14.2857%;
+}
+
+.ui.eight.column.grid > .row > .column,
+.ui.eight.column.grid > .column,
+.ui.grid > .eight.column.row > .column {
+ width: 12.5%;
+}
+
+.ui.nine.column.grid > .row > .column,
+.ui.nine.column.grid > .column,
+.ui.grid > .nine.column.row > .column {
+ width: 11.1111%;
+}
+
+.ui.ten.column.grid > .row > .column,
+.ui.ten.column.grid > .column,
+.ui.grid > .ten.column.row > .column {
+ width: 10%;
+}
+
+.ui.eleven.column.grid > .row > .column,
+.ui.eleven.column.grid > .column,
+.ui.grid > .eleven.column.row > .column {
+ width: 9.0909%;
+}
+
+.ui.twelve.column.grid > .row > .column,
+.ui.twelve.column.grid > .column,
+.ui.grid > .twelve.column.row > .column {
+ width: 8.3333%;
+}
+
+.ui.thirteen.column.grid > .row > .column,
+.ui.thirteen.column.grid > .column,
+.ui.grid > .thirteen.column.row > .column {
+ width: 7.6923%;
+}
+
+.ui.fourteen.column.grid > .row > .column,
+.ui.fourteen.column.grid > .column,
+.ui.grid > .fourteen.column.row > .column {
+ width: 7.1428%;
+}
+
+.ui.fifteen.column.grid > .row > .column,
+.ui.fifteen.column.grid > .column,
+.ui.grid > .fifteen.column.row > .column {
+ width: 6.6666%;
+}
+
+.ui.sixteen.column.grid > .row > .column,
+.ui.sixteen.column.grid > .column,
+.ui.grid > .sixteen.column.row > .column {
+ width: 6.25%;
+}
+
+/* Assume full width with one column */
+
+.ui.grid > .column:only-child,
+.ui.grid > .row > .column:only-child {
+ width: 100%;
+}
+
+/*----------------------
+ Relaxed
+-----------------------*/
+
+.ui.relaxed.grid {
+ margin: 0% -2.5%;
+}
+
+.ui.relaxed.grid > .column,
+.ui.relaxed.grid > .row > .column {
+ padding-right: 2.5%;
+ padding-left: 2.5%;
+}
+
+/*----------------------
+ "Floated"
+-----------------------*/
+
+.ui.grid .left.floated.column {
+ float: right;
+}
+
+.ui.grid .right.floated.column {
+ float: left;
+}
+
+/*----------------------
+ Divided
+-----------------------*/
+
+.ui.divided.grid,
+.ui.divided.grid > .row {
+ display: table;
+ width: 100%;
+ margin-right: 0% !important;
+ margin-left: 0% !important;
+}
+
+.ui.divided.grid > .column:not(.row),
+.ui.divided.grid > .row > .column {
+ display: table-cell;
+ -webkit-box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.1),
+ -2px 0px 0px 0px rgba(255, 255, 255, 0.8);
+ box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.1),
+ -2px 0px 0px 0px rgba(255, 255, 255, 0.8);
+}
+
+.ui.divided.grid > .column.row {
+ display: table;
+}
+
+.ui.divided.grid > .column:first-child,
+.ui.divided.grid > .row > .column:first-child {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* Vertically Divided */
+
+.ui.vertically.divided.grid > .row {
+ -webkit-box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1),
+ 0px -2px 0px 0px rgba(255, 255, 255, 0.8) !important;
+ box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1),
+ 0px -2px 0px 0px rgba(255, 255, 255, 0.8) !important;
+}
+
+.ui.vertically.divided.grid > .row > .column,
+.ui.vertically.divided.grid > .column:not(.row),
+.ui.vertically.divided.grid > .row:first-child {
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+/*----------------------
+ Celled
+-----------------------*/
+
+.ui.celled.grid {
+ display: table;
+ width: 100%;
+ margin-right: 0% !important;
+ margin-left: 0% !important;
+ -webkit-box-shadow: 0px 0px 0px 1px #DFDFDF;
+ box-shadow: 0px 0px 0px 1px #DFDFDF;
+}
+
+.ui.celled.grid > .row,
+.ui.celled.grid > .column.row,
+.ui.celled.grid > .column.row:first-child {
+ display: table;
+ width: 100%;
+ margin-top: 0em;
+ padding-top: 0em;
+ -webkit-box-shadow: 0px -1px 0px 0px #DFDFDF;
+ box-shadow: 0px -1px 0px 0px #DFDFDF;
+}
+
+.ui.celled.grid > .column:not(.row),
+.ui.celled.grid > .row > .column {
+ display: table-cell;
+ padding: 0.75em;
+ -webkit-box-shadow: -1px 0px 0px 0px #DFDFDF;
+ box-shadow: -1px 0px 0px 0px #DFDFDF;
+}
+
+.ui.celled.grid > .column:first-child,
+.ui.celled.grid > .row > .column:first-child {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.celled.page.grid {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*----------------------
+ Horizontally Centered
+-----------------------*/
+
+/* Vertical Centered */
+
+.ui.left.aligned.grid,
+.ui.left.aligned.grid > .row > .column,
+.ui.left.aligned.grid > .column,
+.ui.grid .left.aligned.column,
+.ui.grid > .left.aligned.row > .column {
+ text-align: right;
+}
+
+.ui.center.aligned.grid,
+.ui.center.aligned.grid > .row > .column,
+.ui.center.aligned.grid > .column,
+.ui.grid .center.aligned.column,
+.ui.grid > .center.aligned.row > .column {
+ text-align: center;
+}
+
+.ui.right.aligned.grid,
+.ui.right.aligned.grid > .row > .column,
+.ui.right.aligned.grid > .column,
+.ui.grid .right.aligned.column,
+.ui.grid > .right.aligned.row > .column {
+ text-align: left;
+}
+
+.ui.justified.grid,
+.ui.justified.grid > .row > .column,
+.ui.justified.grid > .column,
+.ui.grid .justified.column,
+.ui.grid > .justified.row > .column {
+ text-align: justify;
+ -webkit-hyphens: auto;
+ -moz-hyphens: auto;
+ -ms-hyphens: auto;
+ hyphens: auto;
+}
+
+/*----------------------
+ Vertically Centered
+-----------------------*/
+
+/* Vertical Centered */
+
+.ui.top.aligned.grid,
+.ui.top.aligned.grid > .row > .column,
+.ui.top.aligned.grid > .column,
+.ui.grid .top.aligned.column,
+.ui.grid > .top.aligned.row > .column {
+ vertical-align: top;
+}
+
+.ui.middle.aligned.grid,
+.ui.middle.aligned.grid > .row > .column,
+.ui.middle.aligned.grid > .column,
+.ui.grid .middle.aligned.column,
+.ui.grid > .middle.aligned.row > .column {
+ vertical-align: middle;
+}
+
+.ui.bottom.aligned.grid,
+.ui.bottom.aligned.grid > .row > .column,
+.ui.bottom.aligned.grid > .column,
+.ui.grid .bottom.aligned.column,
+.ui.grid > .bottom.aligned.row > .column {
+ vertical-align: bottom;
+}
+
+/*----------------------
+ Equal Height Columns
+-----------------------*/
+
+.ui.grid > .equal.height.row {
+ display: table;
+ width: 100%;
+}
+
+.ui.grid > .equal.height.row > .column {
+ display: table-cell;
+}
+
+/*----------------------
+ Only (Device)
+-----------------------*/
+
+/* Mobile Only */
+
+@media only screen and (max-width : 767px) {
+ .ui.mobile.only.grid,
+ .ui.grid > .mobile.only.row {
+ display: block !important;
+ }
+
+ .ui.grid > .row > .mobile.only.column {
+ display: inline-block !important;
+ }
+
+ .ui.divided.mobile.only.grid,
+ .ui.celled.mobile.only.grid,
+ .ui.divided.mobile.only.grid .row,
+ .ui.celled.mobile.only.grid .row,
+ .ui.divided.grid .mobile.only.row,
+ .ui.celled.grid .mobile.only.row,
+ .ui.grid .mobile.only.equal.height.row,
+ .ui.mobile.only.grid .equal.height.row {
+ display: table !important;
+ }
+
+ .ui.divided.grid > .row > .mobile.only.column,
+ .ui.celled.grid > .row > .mobile.only.column,
+ .ui.divided.mobile.only.grid > .row > .column,
+ .ui.celled.mobile.only.grid > .row > .column,
+ .ui.divided.mobile.only.grid > .column,
+ .ui.celled.mobile.only.grid > .column {
+ display: table-cell !important;
+ }
+}
+
+@media only screen and (min-width : 768px) {
+ .ui.mobile.only.grid,
+ .ui.grid > .mobile.only.row,
+ .ui.grid > .mobile.only.column,
+ .ui.grid > .row > .mobile.only.column {
+ display: none;
+ }
+}
+
+/* Tablet Only */
+
+@media only screen and (min-width : 768px) and (max-width : 991px) {
+ .ui.tablet.only.grid,
+ .ui.grid > .tablet.only.row {
+ display: block !important;
+ }
+
+ .ui.grid > .row > .tablet.only.column {
+ display: inline-block !important;
+ }
+
+ .ui.divided.tablet.only.grid,
+ .ui.celled.tablet.only.grid,
+ .ui.divided.tablet.only.grid .row,
+ .ui.celled.tablet.only.grid .row,
+ .ui.divided.grid .tablet.only.row,
+ .ui.celled.grid .tablet.only.row,
+ .ui.grid .tablet.only.equal.height.row,
+ .ui.tablet.only.grid .equal.height.row {
+ display: table !important;
+ }
+
+ .ui.divided.grid > .row > .tablet.only.column,
+ .ui.celled.grid > .row > .tablet.only.column,
+ .ui.divided.tablet.only.grid > .row > .column,
+ .ui.celled.tablet.only.grid > .row > .column,
+ .ui.divided.tablet.only.grid > .column,
+ .ui.celled.tablet.only.grid > .column {
+ display: table-cell !important;
+ }
+}
+
+@media only screen and (max-width : 767px), (min-width: 992px) {
+ .ui.tablet.only.grid,
+ .ui.grid > .tablet.only.row,
+ .ui.grid > .tablet.only.column,
+ .ui.grid > .row > .tablet.only.column {
+ display: none;
+ }
+}
+
+/* Computer Only */
+
+@media only screen and (min-width : 992px) {
+ .ui.computer.only.grid,
+ .ui.grid > .computer.only.row {
+ display: block !important;
+ }
+
+ .ui.grid > .row > .computer.only.column {
+ display: inline-block !important;
+ }
+
+ .ui.divided.computer.only.grid,
+ .ui.celled.computer.only.grid,
+ .ui.divided.computer.only.grid .row,
+ .ui.celled.computer.only.grid .row,
+ .ui.divided.grid .computer.only.row,
+ .ui.celled.grid .computer.only.row,
+ .ui.grid .computer.only.equal.height.row,
+ .ui.computer.only.grid .equal.height.row {
+ display: table !important;
+ }
+
+ .ui.divided.grid > .row > .computer.only.column,
+ .ui.celled.grid > .row > .computer.only.column,
+ .ui.divided.computer.only.grid > .row > .column,
+ .ui.celled.computer.only.grid > .row > .column,
+ .ui.divided.computer.only.grid > .column,
+ .ui.celled.computer.only.grid > .column {
+ display: table-cell !important;
+ }
+}
+
+@media only screen and (max-width : 991px) {
+ .ui.computer.only.grid,
+ .ui.grid > .computer.only.row,
+ .ui.grid > .computer.only.column,
+ .ui.grid > .row > .computer.only.column {
+ display: none;
+ }
+}
+
+/*-------------------
+ Doubling
+--------------------*/
+
+/* Mobily Only */
+
+@media only screen and (max-width : 767px) {
+ .ui.two.column.doubling.grid > .row > .column,
+ .ui.two.column.doubling.grid > .column,
+ .ui.grid > .two.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.three.column.doubling.grid > .row > .column,
+ .ui.three.column.doubling.grid > .column,
+ .ui.grid > .three.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.four.column.doubling.grid > .row > .column,
+ .ui.four.column.doubling.grid > .column,
+ .ui.grid > .four.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.five.column.doubling.grid > .row > .column,
+ .ui.five.column.doubling.grid > .column,
+ .ui.grid > .five.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.six.column.doubling.grid > .row > .column,
+ .ui.six.column.doubling.grid > .column,
+ .ui.grid > .six.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.seven.column.doubling.grid > .row > .column,
+ .ui.seven.column.doubling.grid > .column,
+ .ui.grid > .seven.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.eight.column.doubling.grid > .row > .column,
+ .ui.eight.column.doubling.grid > .column,
+ .ui.grid > .eight.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.nine.column.doubling.grid > .row > .column,
+ .ui.nine.column.doubling.grid > .column,
+ .ui.grid > .nine.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.ten.column.doubling.grid > .row > .column,
+ .ui.ten.column.doubling.grid > .column,
+ .ui.grid > .ten.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.twelve.column.doubling.grid > .row > .column,
+ .ui.twelve.column.doubling.grid > .column,
+ .ui.grid > .twelve.column.doubling.row > .column {
+ width: 33.3333333333333%;
+ }
+
+ .ui.fourteen.column.doubling.grid > .row > .column,
+ .ui.fourteen.column.doubling.grid > .column,
+ .ui.grid > .fourteen.column.doubling.row > .column {
+ width: 33.3333333333333%;
+ }
+
+ .ui.sixteen.column.doubling.grid > .row > .column,
+ .ui.sixteen.column.doubling.grid > .column,
+ .ui.grid > .sixteen.column.doubling.row > .column {
+ width: 25%;
+ }
+}
+
+/* Tablet Only */
+
+@media only screen and (min-width : 768px) and (max-width : 991px) {
+ .ui.two.column.doubling.grid > .row > .column,
+ .ui.two.column.doubling.grid > .column,
+ .ui.grid > .two.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.three.column.doubling.grid > .row > .column,
+ .ui.three.column.doubling.grid > .column,
+ .ui.grid > .three.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.four.column.doubling.grid > .row > .column,
+ .ui.four.column.doubling.grid > .column,
+ .ui.grid > .four.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.five.column.doubling.grid > .row > .column,
+ .ui.five.column.doubling.grid > .column,
+ .ui.grid > .five.column.doubling.row > .column {
+ width: 33.3333333%;
+ }
+
+ .ui.six.column.doubling.grid > .row > .column,
+ .ui.six.column.doubling.grid > .column,
+ .ui.grid > .six.column.doubling.row > .column {
+ width: 33.3333333%;
+ }
+
+ .ui.eight.column.doubling.grid > .row > .column,
+ .ui.eight.column.doubling.grid > .column,
+ .ui.grid > .eight.column.doubling.row > .column {
+ width: 33.3333333%;
+ }
+
+ .ui.eight.column.doubling.grid > .row > .column,
+ .ui.eight.column.doubling.grid > .column,
+ .ui.grid > .eight.column.doubling.row > .column {
+ width: 25%;
+ }
+
+ .ui.nine.column.doubling.grid > .row > .column,
+ .ui.nine.column.doubling.grid > .column,
+ .ui.grid > .nine.column.doubling.row > .column {
+ width: 25%;
+ }
+
+ .ui.ten.column.doubling.grid > .row > .column,
+ .ui.ten.column.doubling.grid > .column,
+ .ui.grid > .ten.column.doubling.row > .column {
+ width: 20%;
+ }
+
+ .ui.twelve.column.doubling.grid > .row > .column,
+ .ui.twelve.column.doubling.grid > .column,
+ .ui.grid > .twelve.column.doubling.row > .column {
+ width: 16.6666666%;
+ }
+
+ .ui.fourteen.column.doubling.grid > .row > .column,
+ .ui.fourteen.column.doubling.grid > .column,
+ .ui.grid > .fourteen.column.doubling.row > .column {
+ width: 14.28571428571429%;
+ }
+
+ .ui.sixteen.column.doubling.grid > .row > .column,
+ .ui.sixteen.column.doubling.grid > .column,
+ .ui.grid > .sixteen.column.doubling.row > .column {
+ width: 12.5%;
+ }
+}
+
+/*-------------------
+ Stackable
+--------------------*/
+
+@media only screen and (max-width : 767px) {
+ .ui.stackable.grid {
+ display: block !important;
+ padding: 0em;
+ margin: 0em;
+ }
+
+ .ui.stackable.grid > .row > .column,
+ .ui.stackable.grid > .column {
+ display: block !important;
+ width: auto !important;
+ margin: 1em 0em 0em !important;
+ padding: 1em 0em 0em !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+ }
+
+ .ui.stackable.divided.grid .column,
+ .ui.stackable.celled.grid .column {
+ border-top: 1px dotted rgba(0, 0, 0, 0.1);
+ }
+
+ .ui.stackable.grid > .row:first-child > .column:first-child,
+ .ui.stackable.grid > .column:first-child {
+ margin-top: 0em !important;
+ padding-top: 0em !important;
+ }
+
+ .ui.stackable.divided.grid > .row:first-child > .column:first-child,
+ .ui.stackable.celled.grid > .row:first-child > .column:first-child,
+ .ui.stackable.divided.grid > .column:first-child,
+ .ui.stackable.celled.grid > .column:first-child {
+ border-top: none !important;
+ }
+
+ .ui.stackable.page.grid > .row > .column,
+ .ui.stackable.page.grid > .column {
+ padding-right: 1em !important;
+ padding-left: 1em !important;
+ }
+
+ /* Remove pointers from vertical menus */
+
+ .ui.stackable.grid .vertical.pointing.menu .item:after {
+ display: none;
+ }
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/collections/menu.less b/css/semantic/rtl/less/collections/menu.less
new file mode 100644
index 0000000..e01db44
--- /dev/null
+++ b/css/semantic/rtl/less/collections/menu.less
@@ -0,0 +1,1772 @@
+/*
+ * # Semantic - Menu
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------
+ Menu
+---------------*/
+
+.ui.menu {
+ margin: 1rem 0rem;
+ background-color: #FFFFFF;
+ font-size: 0px;
+ font-weight: normal;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ border-radius: 0.1875rem;
+}
+
+.ui.menu:first-child {
+ margin-top: 0rem;
+}
+
+.ui.menu:last-child {
+ margin-bottom: 0rem;
+}
+
+.ui.menu:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+.ui.menu > .item:first-child {
+ border-radius: 0px 0.1875em 0.1875em 0px;
+}
+
+.ui.menu > .item:last-child {
+ border-radius: 0.1875em 0px 0px 0.1875em;
+}
+
+.ui.menu .item {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ vertical-align: middle;
+ line-height: 1;
+ text-decoration: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-transition: opacity 0.2s ease,
+ background 0.2s ease,
+ -webkit-box-shadow 0.2s ease;
+ -moz-transition: opacity 0.2s ease,
+ background 0.2s ease,
+ box-shadow 0.2s ease;
+ transition: opacity 0.2s ease,
+ background 0.2s ease,
+ box-shadow 0.2s ease;
+}
+
+/*--------------
+ Colors
+---------------*/
+
+/* Text Color */
+
+.ui.menu .item,
+.ui.menu .item > a:not(.button) {
+ color: rgba(0, 0, 0, 0.75);
+}
+
+.ui.menu .item .item,
+.ui.menu .item .item > a:not(.button) {
+ color: rgba(30, 30, 30, 0.7);
+}
+
+.ui.menu .item .item .item,
+.ui.menu .item .item .item > a:not(.button) {
+ color: rgba(30, 30, 30, 0.6);
+}
+
+.ui.menu .dropdown .menu .item,
+.ui.menu .dropdown .menu .item a:not(.button) {
+ color: rgba(0, 0, 0, 0.75);
+}
+
+/* Hover */
+
+.ui.menu .item .menu a.item:hover,
+.ui.menu .item .menu .link.item:hover {
+ color: rgba(0, 0, 0, 0.85);
+}
+
+.ui.menu .dropdown .menu .item a:not(.button):hover {
+ color: rgba(0, 0, 0, 0.85);
+}
+
+/* Active */
+
+.ui.menu .active.item,
+.ui.menu .active.item a:not(.button) {
+ color: rgba(0, 0, 0, 0.85);
+ border-radius: 0px;
+}
+
+/*--------------
+ Items
+---------------*/
+
+.ui.menu .item {
+ position: relative;
+ display: inline-block;
+ padding: 0.83em 0.95em;
+ border-top: 0em solid rgba(0, 0, 0, 0);
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -moz-user-select: -moz-none;
+ -khtml-user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.ui.menu .menu {
+ margin: 0em;
+}
+
+.ui.menu .item.left,
+.ui.menu .menu.left {
+ float: right;
+}
+
+.ui.menu .item.right,
+.ui.menu .menu.right {
+ float: left;
+}
+
+/*--------------
+ Borders
+---------------*/
+
+.ui.menu .item:before {
+ position: absolute;
+ content: '';
+ top: 0%;
+ right: 0px;
+ width: 1px;
+ height: 100%;
+ background-image: linear-gradient(
+ rgba(0, 0, 0, 0.05) 0%,
+ rgba(0, 0, 0, 0.1) 50%,
+ rgba(0, 0, 0, 0.05) 100%);
+}
+
+.ui.menu > .menu:not(.right):first-child > .item:first-child:before,
+.ui.menu .item:first-child:before {
+ display: none;
+}
+
+.ui.menu .menu.right .item:before,
+.ui.menu .item.right:before {
+ left: auto;
+ right: 0px;
+}
+
+/*--------------
+ Text Content
+---------------*/
+
+.ui.menu .text.item > *,
+.ui.menu .item > p:only-child {
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+ line-height: 1.3;
+ color: rgba(0, 0, 0, 0.6);
+}
+
+.ui.menu .item > p:first-child {
+ margin-top: 0px;
+}
+
+.ui.menu .item > p:last-child {
+ margin-bottom: 0px;
+}
+
+/*--------------
+ Button
+---------------*/
+
+.ui.menu:not(.vertical) .item > .button {
+ position: relative;
+ top: -0.05em;
+ margin: -0.55em 0;
+ padding-bottom: 0.55em;
+ padding-top: 0.55em;
+ font-size: 0.875em;
+}
+
+/*--------------
+ Inputs
+---------------*/
+
+.ui.menu:not(.vertical) .item > .input {
+ margin-top: -0.85em;
+ margin-bottom: -0.85em;
+ padding-top: 0.3em;
+ padding-bottom: 0.3em;
+ width: 100%;
+ vertical-align: top;
+}
+
+.ui.menu .item > .input input {
+ padding-top: 0.35em;
+ padding-bottom: 0.35em;
+}
+
+.ui.vertical.menu .item > .input input {
+ margin: 0em;
+ padding-top: 0.63em;
+ padding-bottom: 0.63em;
+}
+
+/* Action Input */
+
+.ui.menu:not(.vertical) .item > .button.labeled > .icon {
+ padding-top: 0.6em;
+}
+
+.ui.menu:not(.vertical) .item .action.input > .button {
+ font-size: 0.8em;
+ padding: 0.55em 0.8em;
+}
+
+/* Resizes */
+
+.ui.small.menu:not(.vertical) .item > .input input {
+ padding-top: 0.4em;
+ padding-bottom: 0.4em;
+}
+
+.ui.large.menu:not(.vertical) .item > .input input {
+ top: -0.125em;
+ padding-bottom: 0.6em;
+ padding-top: 0.6em;
+}
+
+.ui.large.menu:not(.vertical) .item .action.input > .button {
+ font-size: 0.8em;
+ padding: 0.9em;
+}
+
+.ui.large.menu:not(.vertical) .item .action.input > .button > .icon {
+ padding-top: 0.8em;
+}
+
+/*--------------
+ Header
+---------------*/
+
+.ui.menu .header.item {
+ background-color: rgba(0, 0, 0, 0.04);
+ margin: 0em;
+}
+
+.ui.vertical.menu .header.item {
+ font-weight: bold;
+}
+
+/*--------------
+ Dropdowns
+---------------*/
+
+.ui.menu .dropdown .menu .item .icon {
+ float: none;
+ margin: 0em 0em 0em 0.75em;
+}
+
+.ui.menu .dropdown.item .menu {
+ right: 1px;
+ margin: 0px;
+ min-width: -webkit-calc(100% - 1px);
+ min-width: -moz-calc(100% - 1px);
+ min-width: calc(100% - 1px);
+ -webkit-box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.secondary.menu .dropdown.item .menu {
+ right: 0px;
+ min-width: 100%;
+}
+
+.ui.menu .pointing.dropdown.item .menu {
+ margin-top: 0.75em;
+}
+
+.ui.menu .simple.dropdown.item .menu {
+ margin: 0px !important;
+}
+
+.ui.menu .dropdown.item .menu .item {
+ width: 100%;
+ color: rgba(0, 0, 0, 0.75);
+}
+
+.ui.menu .dropdown.item .menu .active.item {
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.ui.menu .ui.dropdown .menu .item:before {
+ display: none;
+}
+
+/*--------------
+ Labels
+---------------*/
+
+.ui.menu .item > .label {
+ background-color: rgba(0, 0, 0, 0.35);
+ color: #FFFFFF;
+ margin: -0.15em 0.5em -0.15em 0em;
+ padding: 0.3em 0.8em;
+ vertical-align: baseline;
+}
+
+.ui.menu .item > .floating.label {
+ padding: 0.3em 0.8em;
+}
+
+/*--------------
+ Images
+---------------*/
+
+.ui.menu .item > img:only-child {
+ display: block;
+ max-width: 100%;
+ margin: 0em auto;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.link.menu .item:hover,
+.ui.menu .link.item:hover,
+.ui.menu a.item:hover,
+.ui.menu .ui.dropdown .menu .item:hover {
+ cursor: pointer;
+ background-color: rgba(0, 0, 0, 0.02);
+}
+
+.ui.menu .ui.dropdown.item.active {
+ background-color: rgba(0, 0, 0, 0.02);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border-bottom-left-radius: 0em;
+ border-bottom-right-radius: 0em;
+}
+
+/*--------------
+ Down
+---------------*/
+
+.ui.link.menu .item:active,
+.ui.menu .link.item:active,
+.ui.menu a.item:active,
+.ui.menu .ui.dropdown .menu .item:active {
+ background-color: rgba(0, 0, 0, 0.05);
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.menu .active.item {
+ background-color: rgba(0, 0, 0, 0.01);
+ color: rgba(0, 0, 0, 0.95);
+ -webkit-box-shadow: 0em 0.2em 0em inset;
+ box-shadow: 0em 0.2em 0em inset;
+}
+
+.ui.vertical.menu .active.item {
+ border-radius: 0em;
+ -webkit-box-shadow: 0.2em 0em 0em inset;
+ box-shadow: 0.2em 0em 0em inset;
+}
+
+.ui.vertical.menu > .active.item:first-child {
+ border-radius: 0.1875em 0em 0em 0em;
+}
+
+.ui.vertical.menu > .active.item:last-child {
+ border-radius: 0em 0em 0em 0.1875em;
+}
+
+.ui.vertical.menu > .active.item:only-child {
+ border-radius: 0.1875em 0em 0em 0.1875em;
+}
+
+.ui.vertical.menu .active.item .menu .active.item {
+ border-right: none;
+}
+
+.ui.vertical.menu .active.item .menu .active.item {
+ padding-right: 1.5rem;
+}
+
+.ui.vertical.menu .item .menu .active.item {
+ background-color: rgba(0, 0, 0, 0.03);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*--------------
+ Disabled
+---------------*/
+
+.ui.menu .item.disabled,
+.ui.menu .item.disabled:hover {
+ cursor: default;
+ color: rgba(0, 0, 0, 0.2);
+ background-color: transparent !important;
+}
+
+/*--------------------
+ Loading
+---------------------*/
+
+/* On Form */
+
+.ui.menu.loading {
+ position: relative;
+}
+
+.ui.menu.loading:after {
+ position: absolute;
+ top: 0%;
+ right: 0%;
+ content: '';
+ width: 100%;
+ height: 100%;
+ background: rgba(255, 255, 255, 0.8) url(../images/loader-large.gif) no-repeat 50% 50%;
+ visibility: visible;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Vertical
+---------------*/
+
+.ui.vertical.menu .item {
+ display: block;
+ height: auto !important;
+ border-top: none;
+ border-right: 0em solid rgba(0, 0, 0, 0);
+ border-left: none;
+}
+
+.ui.vertical.menu > .item:first-child {
+ border-radius: 0.1875em 0.1875em 0px 0px;
+}
+
+.ui.vertical.menu > .item:last-child {
+ border-radius: 0px 0px 0.1875em 0.1875em;
+}
+
+.ui.vertical.menu .item > .label {
+ float: left;
+ text-align: center;
+}
+
+.ui.vertical.menu .item > i.icon {
+ float: left;
+ width: 1.22em;
+ margin: 0em 0.5em 0em 0em;
+}
+
+.ui.vertical.menu .item > .label + i.icon {
+ float: none;
+ margin: 0em 0em 0em 0.25em;
+}
+
+/*--- Border ---*/
+
+.ui.vertical.menu .item:before {
+ position: absolute;
+ content: '';
+ top: 0%;
+ right: 0px;
+ width: 100%;
+ height: 1px;
+ background-image: -webkit-linear-gradient(right,
+ rgba(0, 0, 0, 0.03) 0%,
+ rgba(0, 0, 0, 0.1) 1.5em,
+ rgba(0, 0, 0, 0.03) 100%);
+ background-image: -moz-linear-gradient(right,
+ rgba(0, 0, 0, 0.03) 0%,
+ rgba(0, 0, 0, 0.1) 1.5em,
+ rgba(0, 0, 0, 0.03) 100%);
+ background-image: linear-gradient(to left,
+ rgba(0, 0, 0, 0.03) 0%,
+ rgba(0, 0, 0, 0.1) 1.5em,
+ rgba(0, 0, 0, 0.03) 100%);
+}
+
+.ui.vertical.menu .item:first-child:before {
+ background-image: none !important;
+}
+
+/*--- Dropdown ---*/
+
+.ui.vertical.menu .dropdown.item > i {
+ float: left;
+ content: "\f0da";
+}
+
+.ui.vertical.menu .dropdown.item .menu {
+ top: 0% !important;
+ right: 100%;
+ margin: 0px 1px 0px 0px;
+ -webkit-box-shadow: 0 0px 1px 1px #DDDDDD;
+ box-shadow: 0 0px 1px 1px #DDDDDD;
+}
+
+.ui.vertical.menu .dropdown.item.active {
+ border-top-left-radius: 0em;
+ border-bottom-left-radius: 0em;
+}
+
+.ui.vertical.menu .dropdown.item .menu .item {
+ font-size: 1rem;
+}
+
+.ui.vertical.menu .dropdown.item .menu .item i.icon {
+ margin-left: 0em;
+}
+
+.ui.vertical.menu .dropdown.item.active {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*--- Sub Menu ---*/
+
+.ui.vertical.menu .item > .menu {
+ margin: 0.5em -0.95em 0em;
+}
+
+.ui.vertical.menu .item > .menu > .item {
+ padding: 0.5rem 1.5rem;
+ font-size: 0.875em;
+}
+
+.ui.vertical.menu .item > .menu > .item:before {
+ display: none;
+}
+
+/*--------------
+ Tiered
+---------------*/
+
+.ui.tiered.menu > .sub.menu > .item {
+ color: rgba(0, 0, 0, 0.4);
+}
+
+.ui.tiered.menu > .menu > .item:hover {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.tiered.menu .item.active {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.tiered.menu > .menu .item.active:after {
+ position: absolute;
+ content: '';
+ margin-top: -1px;
+ top: 100%;
+ right: 0px;
+ width: 100%;
+ height: 2px;
+ background-color: #FBFBFB;
+}
+
+.ui.tiered.menu .sub.menu {
+ background-color: rgba(0, 0, 0, 0.01);
+ border-radius: 0em;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ color: #FFFFFF;
+}
+
+.ui.tiered.menu .sub.menu .item {
+ font-size: 0.875rem;
+}
+
+.ui.tiered.menu .sub.menu .item:before {
+ background-image: none;
+}
+
+.ui.tiered.menu .sub.menu .active.item {
+ padding-top: 0.83em;
+ background-color: transparent;
+ border-radius: 0 0 0 0;
+ border-top: medium none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ color: rgba(0, 0, 0, 0.7) !important;
+}
+
+.ui.tiered.menu .sub.menu .active.item:after {
+ display: none;
+}
+
+/* Inverted */
+
+.ui.inverted.tiered.menu > .menu > .item {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+.ui.inverted.tiered.menu .sub.menu {
+ background-color: rgba(0, 0, 0, 0.2);
+}
+
+.ui.inverted.tiered.menu .sub.menu .item {
+ color: rgba(255, 255, 255, 0.6);
+}
+
+.ui.inverted.tiered.menu > .menu > .item:hover {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.inverted.tiered.menu .active.item:after {
+ display: none;
+}
+
+.ui.inverted.tiered.menu > .sub.menu > .active.item,
+.ui.inverted.tiered.menu > .menu > .active.item {
+ color: rgba(255, 255, 255, 1) !important;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* Tiered pointing */
+
+.ui.pointing.tiered.menu > .menu > .item:after {
+ display: none;
+}
+
+.ui.pointing.tiered.menu > .sub.menu > .item:after {
+ display: block;
+}
+
+/*--------------
+ Tabular
+---------------*/
+
+.ui.tabular.menu {
+ background-color: transparent;
+ border-bottom: 1px solid #DCDDDE;
+ border-radius: 0em;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.ui.tabular.menu .item {
+ background-color: transparent;
+ border-right: 1px solid transparent;
+ border-left: 1px solid transparent;
+ border-top: 1px solid transparent;
+ padding-right: 1.4em;
+ padding-left: 1.4em;
+ color: rgba(0, 0, 0, 0.6);
+}
+
+.ui.tabular.menu .item:before {
+ display: none;
+}
+
+/* Hover */
+
+.ui.tabular.menu .item:hover {
+ background-color: transparent;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/* Active */
+
+.ui.tabular.menu .active.item {
+ position: relative;
+ background-color: #FFFFFF;
+ color: rgba(0, 0, 0, 0.8);
+ border-color: #DCDDDE;
+ font-weight: bold;
+ margin-bottom: -1px;
+ border-bottom: 1px solid #FFFFFF;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border-radius: 5px 5px 0 0;
+}
+
+/* Coupling with segment for attachment */
+
+.ui.attached.tabular.menu {
+ position: relative;
+ z-index: 2;
+}
+
+.ui.tabular.menu ~ .bottom.attached.segment {
+ margin: 1px 1px 0px 0px;
+}
+
+/*--------------
+ Pagination
+---------------*/
+
+.ui.pagination.menu {
+ margin: 0em;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.ui.pagination.menu .item {
+ min-width: 3em;
+ text-align: center;
+}
+
+.ui.pagination.menu .icon.item i.icon {
+ vertical-align: top;
+}
+
+.ui.pagination.menu.floated {
+ display: block;
+}
+
+/* active */
+
+.ui.pagination.menu .active.item {
+ border-top: none;
+ padding-top: 0.83em;
+ background-color: rgba(0, 0, 0, 0.05);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*--------------
+ Secondary
+---------------*/
+
+.ui.secondary.menu {
+ background-color: transparent;
+ border-radius: 0px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.secondary.menu > .menu > .item,
+.ui.secondary.menu > .item {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border: none;
+ height: auto !important;
+ margin: 0em 0.25em;
+ padding: 0.5em 1em;
+ border-radius: 0.3125em;
+}
+
+.ui.secondary.menu > .menu > .item:before,
+.ui.secondary.menu > .item:before {
+ display: none !important;
+}
+
+.ui.secondary.menu .item > .input input {
+ background-color: transparent;
+ border: none;
+}
+
+.ui.secondary.menu .link.item,
+.ui.secondary.menu a.item {
+ opacity: 0.8;
+ -webkit-transition: none;
+ -moz-transition: none;
+ transition: none;
+}
+
+.ui.secondary.menu .header.item {
+ border-left: 0.1em solid rgba(0, 0, 0, 0.1);
+ background-color: transparent;
+ border-radius: 0em;
+}
+
+/* hover */
+
+.ui.secondary.menu .link.item:hover,
+.ui.secondary.menu a.item:hover {
+ opacity: 1;
+}
+
+/* active */
+
+.ui.secondary.menu > .menu > .active.item,
+.ui.secondary.menu > .active.item {
+ background-color: rgba(0, 0, 0, 0.08);
+ opacity: 1;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.secondary.vertical.menu > .active.item {
+ border-radius: 0.3125em;
+}
+
+/* inverted */
+
+.ui.secondary.inverted.menu .link.item,
+.ui.secondary.inverted.menu a.item {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+.ui.secondary.inverted.menu .link.item:hover,
+.ui.secondary.inverted.menu a.item:hover {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.secondary.inverted.menu .active.item {
+ background-color: rgba(255, 255, 255, 0.1);
+}
+
+/* disable variations */
+
+.ui.secondary.item.menu > .item {
+ margin: 0em;
+}
+
+.ui.secondary.attached.menu {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*---------------------
+ Secondary Pointing
+-----------------------*/
+
+.ui.secondary.pointing.menu {
+ border-bottom: 3px solid rgba(0, 0, 0, 0.1);
+}
+
+.ui.secondary.pointing.menu > .menu > .item,
+.ui.secondary.pointing.menu > .item {
+ margin: 0em 0em -3px;
+ padding: 0.6em 0.95em;
+ border-bottom: 3px solid rgba(0, 0, 0, 0);
+ border-radius: 0em;
+ -webkit-transition: color 0.2s;
+ -moz-transition: color 0.2s;
+ transition: color 0.2s;
+}
+
+/* Item Types */
+
+.ui.secondary.pointing.menu .header.item {
+ margin-bottom: -3px;
+ background-color: transparent !important;
+ border-left-width: 0px !important;
+ font-weight: bold !important;
+ color: rgba(0, 0, 0, 0.8) !important;
+}
+
+.ui.secondary.pointing.menu .text.item {
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.ui.secondary.pointing.menu > .menu > .item:after,
+.ui.secondary.pointing.menu > .item:after {
+ display: none;
+}
+
+/* Hover */
+
+.ui.secondary.pointing.menu > .menu > .link.item:hover,
+.ui.secondary.pointing.menu > .link.item:hover,
+.ui.secondary.pointing.menu > .menu > a.item:hover,
+.ui.secondary.pointing.menu > a.item:hover {
+ background-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+/* Down */
+
+.ui.secondary.pointing.menu > .menu > .link.item:active,
+.ui.secondary.pointing.menu > .link.item:active,
+.ui.secondary.pointing.menu > .menu > a.item:active,
+.ui.secondary.pointing.menu > a.item:active {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.2);
+}
+
+/* Active */
+
+.ui.secondary.pointing.menu > .menu > .item.active,
+.ui.secondary.pointing.menu > .item.active {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.4);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*---------------------
+ Secondary Vertical
+-----------------------*/
+
+.ui.secondary.vertical.pointing.menu {
+ border: none;
+ border-left: 3px solid rgba(0, 0, 0, 0.1);
+}
+
+.ui.secondary.vertical.menu > .item {
+ border: none;
+ margin: 0em 0em 0.3em;
+ padding: 0.6em 0.8em;
+ border-radius: 0.1875em;
+}
+
+.ui.secondary.vertical.menu > .header.item {
+ border-radius: 0em;
+}
+
+.ui.secondary.vertical.pointing.menu > .item {
+ margin: 0em 0em 0em -3px;
+ border-bottom: none;
+ border-left: 3px solid transparent;
+ border-radius: 0em;
+}
+
+/* Hover */
+
+.ui.secondary.vertical.pointing.menu > .item:hover {
+ background-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+/* Down */
+
+.ui.secondary.vertical.pointing.menu > .item:active {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.2);
+}
+
+/* Active */
+
+.ui.secondary.vertical.pointing.menu > .item.active {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.4);
+ color: rgba(0, 0, 0, 0.85);
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.secondary.inverted.menu {
+ background-color: transparent;
+}
+
+.ui.secondary.inverted.pointing.menu {
+ border-bottom: 3px solid rgba(255, 255, 255, 0.1);
+}
+
+.ui.secondary.inverted.pointing.menu > .item {
+ color: rgba(255, 255, 255, 0.7);
+}
+
+.ui.secondary.inverted.pointing.menu > .header.item {
+ color: #FFFFFF !important;
+}
+
+/* Hover */
+
+.ui.secondary.inverted.pointing.menu > .menu > .item:hover,
+.ui.secondary.inverted.pointing.menu > .item:hover {
+ color: rgba(255, 255, 255, 0.85);
+}
+
+/* Down */
+
+.ui.secondary.inverted.pointing.menu > .menu > .item:active,
+.ui.secondary.inverted.pointing.menu > .item:active {
+ border-color: rgba(255, 255, 255, 0.4);
+}
+
+/* Active */
+
+.ui.secondary.inverted.pointing.menu > .menu > .item.active,
+.ui.secondary.inverted.pointing.menu > .item.active {
+ border-color: rgba(255, 255, 255, 0.8);
+ color: rgba(255, 255, 255, 1);
+}
+
+/*---------------------
+ Inverted Vertical
+----------------------*/
+
+.ui.secondary.inverted.vertical.pointing.menu {
+ border-left: 3px solid rgba(255, 255, 255, 0.1);
+ border-bottom: none;
+}
+
+/*--------------
+ Text Menu
+---------------*/
+
+.ui.text.menu {
+ background-color: transparent;
+ margin: 1rem -1rem;
+ border-radius: 0px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.text.menu > .item {
+ opacity: 0.8;
+ margin: 0em 1em;
+ padding: 0em;
+ height: auto !important;
+ border-radius: 0px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ -webkit-transition: opacity 0.2s ease;
+ -moz-transition: opacity 0.2s ease;
+ transition: opacity 0.2s ease;
+}
+
+.ui.text.menu > .item:before {
+ display: none !important;
+}
+
+.ui.text.menu .header.item {
+ background-color: transparent;
+ opacity: 1;
+ color: rgba(50, 50, 50, 0.8);
+ font-size: 0.875rem;
+ padding: 0em;
+ text-transform: uppercase;
+ font-weight: bold;
+}
+
+/*--- fluid text ---*/
+
+.ui.text.item.menu .item {
+ margin: 0em;
+}
+
+/*--- vertical text ---*/
+
+.ui.vertical.text.menu {
+ margin: 1rem 0em;
+}
+
+.ui.vertical.text.menu:first-child {
+ margin-top: 0rem;
+}
+
+.ui.vertical.text.menu:last-child {
+ margin-bottom: 0rem;
+}
+
+.ui.vertical.text.menu .item {
+ float: right;
+ clear: right;
+ margin: 0.5em 0em;
+}
+
+.ui.vertical.text.menu .item > i.icon {
+ float: none;
+ margin: 0em 0em 0em 0.83em;
+}
+
+.ui.vertical.text.menu .header.item {
+ margin: 0.8em 0em;
+}
+
+/*--- hover ---*/
+
+.ui.text.menu .item:hover {
+ opacity: 1;
+ background-color: transparent;
+}
+
+/*--- active ---*/
+
+.ui.text.menu .active.item {
+ background-color: transparent;
+ padding: 0em;
+ border: none;
+ opacity: 1;
+ font-weight: bold;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* disable variations */
+
+.ui.text.pointing.menu .active.item:after {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.text.attached.menu {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.text.menu,
+.ui.inverted.text.menu .item,
+.ui.inverted.text.menu .item:hover,
+.ui.inverted.text.menu .item.active {
+ background-color: transparent;
+}
+
+/*--------------
+ Icon Only
+---------------*/
+
+.ui.icon.menu,
+.ui.vertical.icon.menu {
+ width: auto;
+ display: inline-block;
+ height: auto;
+}
+
+.ui.icon.menu > .item {
+ height: auto;
+ text-align: center;
+ color: rgba(60, 60, 60, 0.7);
+}
+
+.ui.icon.menu > .item > .icon {
+ display: block;
+ float: none !important;
+ opacity: 1;
+ margin: 0em auto !important;
+}
+
+.ui.icon.menu .icon:before {
+ opacity: 1;
+}
+
+/* Item Icon Only */
+
+.ui.menu .icon.item .icon {
+ margin: 0em;
+}
+
+.ui.vertical.icon.menu {
+ float: none;
+}
+
+/*--- inverted ---*/
+
+.ui.inverted.icon.menu .item {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.icon.menu .icon {
+ color: rgba(255, 255, 255, 1);
+}
+
+/*--------------
+ Labeled Icon
+---------------*/
+
+.ui.labeled.icon.menu {
+ text-align: center;
+}
+
+.ui.labeled.icon.menu > .item > .icon {
+ display: block;
+ font-size: 1.5em !important;
+ margin: 0em auto 0.3em !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Colors
+---------------*/
+
+/*--- Light Colors ---*/
+
+.ui.menu .green.active.item,
+.ui.green.menu .active.item {
+ border-color: #A1CF64 !important;
+ color: #A1CF64 !important;
+}
+
+.ui.menu .red.active.item,
+.ui.red.menu .active.item {
+ border-color: #D95C5C !important;
+ color: #D95C5C !important;
+}
+
+.ui.menu .blue.active.item,
+.ui.blue.menu .active.item {
+ border-color: #6ECFF5 !important;
+ color: #6ECFF5 !important;
+}
+
+.ui.menu .purple.active.item,
+.ui.purple.menu .active.item {
+ border-color: #564F8A !important;
+ color: #564F8A !important;
+}
+
+.ui.menu .orange.active.item,
+.ui.orange.menu .active.item {
+ border-color: #F05940 !important;
+ color: #F05940 !important;
+}
+
+.ui.menu .teal.active.item,
+.ui.teal.menu .active.item {
+ border-color: #00B5AD !important;
+ color: #00B5AD !important;
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.inverted.menu {
+ background-color: #333333;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.menu .header.item {
+ margin: 0em;
+ background-color: rgba(0, 0, 0, 0.3);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.menu .item,
+.ui.inverted.menu .item > a {
+ color: #FFFFFF;
+}
+
+.ui.inverted.menu .item .item,
+.ui.inverted.menu .item .item > a {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.menu .dropdown .menu .item,
+.ui.inverted.menu .dropdown .menu .item a {
+ color: rgba(0, 0, 0, 0.75) !important;
+}
+
+.ui.inverted.menu .item.disabled,
+.ui.inverted.menu .item.disabled:hover {
+ color: rgba(255, 255, 255, 0.2);
+}
+
+/*--- Border ---*/
+
+.ui.inverted.menu .item:before {
+ background-image: -webkit-linear-gradient(
+ rgba(255, 255, 255, 0.03) 0%,
+ rgba(255, 255, 255, 0.1) 50%,
+ rgba(255, 255, 255, 0.03) 100%);
+ background-image: -moz-linear-gradient(
+ rgba(255, 255, 255, 0.03) 0%,
+ rgba(255, 255, 255, 0.1) 50%,
+ rgba(255, 255, 255, 0.03) 100%);
+ background-image: linear-gradient(
+ rgba(255, 255, 255, 0.03) 0%,
+ rgba(255, 255, 255, 0.1) 50%,
+ rgba(255, 255, 255, 0.03) 100%);
+}
+
+.ui.vertical.inverted.menu .item:before {
+ background-image: -webkit-linear-gradient(right,
+ rgba(255, 255, 255, 0.03) 0%,
+ rgba(255, 255, 255, 0.1) 50%,
+ rgba(255, 255, 255, 0.03) 100%);
+ background-image: -moz-linear-gradient(right,
+ rgba(255, 255, 255, 0.03) 0%,
+ rgba(255, 255, 255, 0.1) 50%,
+ rgba(255, 255, 255, 0.03) 100%);
+ background-image: linear-gradient(to left,
+ rgba(255, 255, 255, 0.03) 0%,
+ rgba(255, 255, 255, 0.1) 50%,
+ rgba(255, 255, 255, 0.03) 100%);
+}
+
+/*--- Hover ---*/
+
+.ui.link.inverted.menu .item:hover,
+.ui.inverted.menu .link.item:hover,
+.ui.inverted.menu a.item:hover,
+.ui.inverted.menu .dropdown.item:hover {
+ background-color: rgba(255, 255, 255, 0.1);
+}
+
+.ui.inverted.menu a.item:hover,
+.ui.inverted.menu .item > a:hover,
+.ui.inverted.menu .item .menu a.item:hover,
+.ui.inverted.menu .item .menu .link.item:hover {
+ color: rgba(255, 255, 255, 1);
+}
+
+/*--- Down ---*/
+
+.ui.inverted.menu a.item:active,
+.ui.inverted.menu .dropdown.item:active,
+.ui.inverted.menu .link.item:active,
+.ui.inverted.menu a.item:active {
+ background-color: rgba(255, 255, 255, 0.15);
+}
+
+/*--- Active ---*/
+
+.ui.inverted.menu .active.item {
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+ background-color: rgba(255, 255, 255, 0.2);
+}
+
+.ui.inverted.menu .active.item,
+.ui.inverted.menu .active.item a {
+ color: rgba(255, 255, 255, 1) !important;
+}
+
+.ui.inverted.vertical.menu .item .menu .active.item {
+ background-color: rgba(255, 255, 255, 0.2);
+ color: rgba(255, 255, 255, 1);
+}
+
+/*--- Pointers ---*/
+
+.ui.inverted.pointing.menu .active.item:after {
+ background-color: #5B5B5B;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.pointing.menu .active.item:hover:after {
+ background-color: #4A4A4A;
+}
+
+/*--------------
+ Selection
+---------------*/
+
+.ui.selection.menu > .item {
+ color: rgba(0, 0, 0, 0.4);
+}
+
+.ui.selection.menu > .item:hover {
+ color: rgba(0, 0, 0, 0.6);
+}
+
+.ui.selection.menu > .item.active {
+ color: rgba(0, 0, 0, 0.85);
+}
+
+.ui.inverted.selection.menu > .item {
+ color: rgba(255, 255, 255, 0.4);
+}
+
+.ui.inverted.selection.menu > .item:hover {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.inverted.selection.menu > .item.active {
+ color: #FFFFFF;
+}
+
+/*--------------
+ Floated
+---------------*/
+
+.ui.floated.menu {
+ float: right;
+ margin: 0rem 0rem 0rem 0.5rem;
+}
+
+.ui.right.floated.menu {
+ float: left;
+ margin: 0rem 0.5rem 0rem 0rem;
+}
+
+/*--------------
+ Inverted Colors
+---------------*/
+
+/*--- Light Colors ---*/
+
+.ui.grey.menu {
+ background-color: #F0F0F0;
+}
+
+/*--- Inverted Colors ---*/
+
+.ui.inverted.green.menu {
+ background-color: #A1CF64;
+}
+
+.ui.inverted.green.pointing.menu .active.item:after {
+ background-color: #A1CF64;
+}
+
+.ui.inverted.red.menu {
+ background-color: #D95C5C;
+}
+
+.ui.inverted.red.pointing.menu .active.item:after {
+ background-color: #F16883;
+}
+
+.ui.inverted.blue.menu {
+ background-color: #6ECFF5;
+}
+
+.ui.inverted.blue.pointing.menu .active.item:after {
+ background-color: #6ECFF5;
+}
+
+.ui.inverted.purple.menu {
+ background-color: #564F8A;
+}
+
+.ui.inverted.purple.pointing.menu .active.item:after {
+ background-color: #564F8A;
+}
+
+.ui.inverted.orange.menu {
+ background-color: #F05940;
+}
+
+.ui.inverted.orange.pointing.menu .active.item:after {
+ background-color: #F05940;
+}
+
+.ui.inverted.teal.menu {
+ background-color: #00B5AD;
+}
+
+.ui.inverted.teal.pointing.menu .active.item:after {
+ background-color: #00B5AD;
+}
+
+/*--------------
+ Fitted
+---------------*/
+
+.ui.fitted.menu .item,
+.ui.fitted.menu .item .menu .item,
+.ui.menu .fitted.item {
+ padding: 0em;
+}
+
+.ui.horizontally.fitted.menu .item,
+.ui.horizontally.fitted.menu .item .menu .item,
+.ui.menu .horizontally.fitted.item {
+ padding-top: 0.83em;
+ padding-bottom: 0.83em;
+}
+
+.ui.vertically.fitted.menu .item,
+.ui.vertically.fitted.menu .item .menu .item,
+.ui.menu .vertically.fitted.item {
+ padding-right: 0.95em;
+ padding-left: 0.95em;
+}
+
+/*--------------
+ Borderless
+---------------*/
+
+.ui.borderless.menu .item:before,
+.ui.borderless.menu .item .menu .item:before,
+.ui.menu .borderless.item:before {
+ background-image: none;
+}
+
+/*-------------------
+ Compact
+--------------------*/
+
+.ui.compact.menu {
+ display: inline-block;
+ margin: 0em;
+ vertical-align: middle;
+}
+
+.ui.compact.vertical.menu {
+ width: auto !important;
+}
+
+.ui.compact.vertical.menu .item:last-child::before {
+ display: block;
+}
+
+/*-------------------
+ Fluid
+--------------------*/
+
+.ui.menu.fluid,
+.ui.vertical.menu.fluid {
+ display: block;
+ width: 100% !important;
+}
+
+/*-------------------
+ Evenly Sized
+--------------------*/
+
+.ui.item.menu,
+.ui.item.menu .item {
+ width: 100%;
+ padding-right: 0px !important;
+ padding-left: 0px !important;
+ text-align: center;
+}
+
+.ui.menu.two.item .item {
+ width: 50%;
+}
+
+.ui.menu.three.item .item {
+ width: 33.333%;
+}
+
+.ui.menu.four.item .item {
+ width: 25%;
+}
+
+.ui.menu.five.item .item {
+ width: 20%;
+}
+
+.ui.menu.six.item .item {
+ width: 16.666%;
+}
+
+.ui.menu.seven.item .item {
+ width: 14.285%;
+}
+
+.ui.menu.eight.item .item {
+ width: 12.500%;
+}
+
+.ui.menu.nine.item .item {
+ width: 11.11%;
+}
+
+.ui.menu.ten.item .item {
+ width: 10.0%;
+}
+
+.ui.menu.eleven.item .item {
+ width: 9.09%;
+}
+
+.ui.menu.twelve.item .item {
+ width: 8.333%;
+}
+
+/*--------------
+ Fixed
+---------------*/
+
+.ui.menu.fixed {
+ position: fixed;
+ z-index: 999;
+ margin: 0em;
+ border: none;
+ width: 100%;
+}
+
+.ui.menu.fixed,
+.ui.menu.fixed .item:first-child,
+.ui.menu.fixed .item:last-child {
+ border-radius: !important 0px;
+}
+
+.ui.menu.fixed.top {
+ top: 0px;
+ right: 0px;
+ left: auto;
+ bottom: auto;
+}
+
+.ui.menu.fixed.right {
+ top: 0px;
+ left: 0px;
+ right: auto;
+ bottom: auto;
+ width: auto;
+ height: 100%;
+}
+
+.ui.menu.fixed.bottom {
+ bottom: 0px;
+ right: 0px;
+ top: auto;
+ left: auto;
+}
+
+.ui.menu.fixed.left {
+ top: 0px;
+ right: 0px;
+ left: auto;
+ bottom: auto;
+ width: auto;
+ height: 100%;
+}
+
+/* Coupling with Grid */
+
+.ui.fixed.menu + .ui.grid {
+ padding-top: 2.75rem;
+}
+
+/*-------------------
+ Pointing
+--------------------*/
+
+.ui.pointing.menu .active.item:after {
+ position: absolute;
+ bottom: -0.3em;
+ right: 50%;
+ content: "";
+ margin-right: -0.3em;
+ width: 0.6em;
+ height: 0.6em;
+ border: none;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+ border-left: 1px solid rgba(0, 0, 0, 0.1);
+ background-image: none;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ z-index: 2;
+ -webkit-transition: background 0.2s ease;
+ -moz-transition: background 0.2s ease;
+ transition: background 0.2s ease;
+}
+
+/* Don't double up pointers */
+
+.ui.pointing.menu .active.item .menu .active.item:after {
+ display: none;
+}
+
+.ui.vertical.pointing.menu .active.item:after {
+ position: absolute;
+ top: 50%;
+ margin-top: -0.3em;
+ left: -0.4em;
+ bottom: auto;
+ right: auto;
+ border: none;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ border-left: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* Colors */
+
+.ui.pointing.menu .active.item:after {
+ background-color: #FCFCFC;
+}
+
+.ui.pointing.menu .active.item:hover:after {
+ background-color: #FAFAFA;
+}
+
+.ui.vertical.pointing.menu .menu .active.item:after {
+ background-color: #F4F4F4;
+}
+
+.ui.pointing.menu a.active.item:active:after {
+ background-color: #F0F0F0;
+}
+
+/*--------------
+ Attached
+---------------*/
+
+.ui.menu.attached {
+ margin: 0rem;
+ border-radius: 0px;
+ /* avoid rgba multiplying */
+ -webkit-box-shadow: 0px 0px 0px 1px #DDDDDD;
+ box-shadow: 0px 0px 0px 1px #DDDDDD;
+}
+
+.ui.top.attached.menu {
+ border-radius: 0.1875em 0.1875em 0px 0px;
+}
+
+.ui.menu.bottom.attached {
+ border-radius: 0px 0px 0.1875em 0.1875em;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.small.menu .item {
+ font-size: 0.875rem;
+}
+
+.ui.small.vertical.menu {
+ width: 13rem;
+}
+
+.ui.menu .item {
+ font-size: 1rem;
+}
+
+.ui.vertical.menu {
+ width: 15rem;
+}
+
+.ui.large.menu .item {
+ font-size: 1.125rem;
+}
+
+.ui.large.menu .item .item {
+ font-size: 0.875rem;
+}
+
+.ui.large.menu .dropdown .item {
+ font-size: 1rem;
+}
+
+.ui.large.vertical.menu {
+ width: 18rem;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/collections/message.less b/css/semantic/rtl/less/collections/message.less
new file mode 100644
index 0000000..cb433d7
--- /dev/null
+++ b/css/semantic/rtl/less/collections/message.less
@@ -0,0 +1,320 @@
+/*
+ * # Semantic - Message
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Message
+*******************************/
+
+.ui.message {
+ position: relative;
+ min-height: 18px;
+ margin: 1em 0em;
+ height: auto;
+ background-color: #EFEFEF;
+ padding: 1em;
+ line-height: 1.33;
+ color: rgba(0, 0, 0, 0.6);
+ -webkit-transition: opacity 0.1s ease,
+ color 0.1s ease,
+ background 0.1s ease,
+ -webkit-box-shadow 0.1s ease;
+ -moz-transition: opacity 0.1s ease,
+ color 0.1s ease,
+ background 0.1s ease,
+ box-shadow 0.1s ease;
+ transition: opacity 0.1s ease,
+ color 0.1s ease,
+ background 0.1s ease,
+ box-shadow 0.1s ease;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ border-radius: 0.325em 0.325em 0.325em 0.325em;
+}
+
+.ui.message:first-child {
+ margin-top: 0em;
+}
+
+.ui.message:last-child {
+ margin-bottom: 0em;
+}
+
+/*--------------
+ Content
+---------------*/
+
+/* block with headers */
+
+.ui.message .header {
+ margin: 0em;
+ font-size: 1.33em;
+ font-weight: bold;
+}
+
+/* block with paragraphs */
+
+.ui.message p {
+ opacity: 0.85;
+ margin: 1em 0em;
+}
+
+.ui.message p:first-child {
+ margin-top: 0em;
+}
+
+.ui.message p:last-child {
+ margin-bottom: 0em;
+}
+
+.ui.message .header + p {
+ margin-top: 0.3em;
+}
+
+.ui.message > :first-child {
+ margin-top: 0em;
+}
+
+.ui.message > :last-child {
+ margin-bottom: 0em;
+}
+
+/* block with child list */
+
+.ui.message ul.list {
+ opacity: 0.85;
+ list-style-position: inside;
+ margin: 0.2em 0em;
+ padding: 0em;
+}
+
+.ui.message ul.list li {
+ position: relative;
+ list-style-type: none;
+ margin: 0em 1em 0.3em 0em;
+ padding: 0em;
+}
+
+.ui.message ul.list li:before {
+ position: absolute;
+ content: '\2022';
+ top: -0.05em;
+ right: -0.8em;
+ height: 100%;
+ vertical-align: baseline;
+ opacity: 0.5;
+}
+
+.ui.message ul.list li:first-child {
+ margin-top: 0em;
+}
+
+/* dismissable block */
+
+.ui.message > .close.icon {
+ cursor: pointer;
+ position: absolute;
+ top: 1em;
+ left: 0.5em;
+ opacity: 0.7;
+ -webkit-transition: opacity 0.1s linear;
+ -moz-transition: opacity 0.1s linear;
+ transition: opacity 0.1s linear;
+}
+
+.ui.message > .close.icon:hover {
+ opacity: 1;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.message.visible,
+.ui.header.visible {
+ display: block !important;
+}
+
+.ui.message.hidden,
+.ui.header.hidden {
+ display: none;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Compact
+---------------*/
+
+.ui.compact.message {
+ display: inline-block;
+}
+
+/*--------------
+ Attached
+---------------*/
+
+.ui.attached.message {
+ margin-right: -1px;
+ margin-left: -1px;
+ margin-bottom: -1px;
+ border-radius: 0.325em 0.325em 0em 0em;
+ -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.attached + .ui.attached.message:not(.top):not(.bottom) {
+ margin-top: -1px;
+ border-radius: 0em;
+}
+
+.ui.bottom.attached.message {
+ margin-top: -1px;
+ border-radius: 0em 0em 0.325em 0.325em;
+}
+
+.ui.bottom.attached.message:not(:last-child) {
+ margin-bottom: 1em;
+}
+
+.ui.attached.icon.message {
+ display: block;
+ width: auto;
+}
+
+/*--------------
+ Icon
+---------------*/
+
+.ui.icon.message {
+ display: table;
+ width: 100%;
+}
+
+.ui.icon.message > .icon:not(.close) {
+ display: table-cell;
+ vertical-align: middle;
+ font-size: 3.8em;
+ opacity: 0.5;
+}
+
+.ui.icon.message > .icon + .content {
+ padding-right: 1em;
+}
+
+.ui.icon.message > .content {
+ display: table-cell;
+ vertical-align: middle;
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.inverted.message {
+ background-color: rgba(255, 255, 255, 0.05);
+ color: rgba(255, 255, 255, 0.95);
+}
+
+/*--------------
+ Floating
+---------------*/
+
+.ui.floating.message {
+ -webkit-box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.1),
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset;
+ box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.1),
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset;
+}
+
+/*--------------
+ Colors
+---------------*/
+
+.ui.black.message {
+ background-color: #333333;
+ color: rgba(255, 255, 255, 0.95);
+}
+
+/*--------------
+ Types
+---------------*/
+
+.ui.blue.message,
+.ui.info.message {
+ background-color: #E6F4F9;
+ color: #4D8796;
+}
+
+/* Green Text Block */
+
+.ui.green.message {
+ background-color: #DEFCD5;
+ color: #52A954;
+}
+
+/* Yellow Text Block */
+
+.ui.yellow.message,
+.ui.warning.message {
+ background-color: #F6F3D5;
+ color: #96904D;
+}
+
+/* Red Text Block */
+
+.ui.red.message {
+ background-color: #F1D7D7;
+ color: #A95252;
+}
+
+/* Success Text Block */
+
+.ui.success.message,
+.ui.positive.message {
+ background-color: #DEFCD5;
+ color: #52A954;
+}
+
+/* Error Text Block */
+
+.ui.error.message,
+.ui.negative.message {
+ background-color: #F1D7D7;
+ color: #A95252;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.small.message {
+ font-size: 0.875em;
+}
+
+.ui.message {
+ font-size: 1em;
+}
+
+.ui.large.message {
+ font-size: 1.125em;
+}
+
+.ui.huge.message {
+ font-size: 1.5em;
+}
+
+.ui.massive.message {
+ font-size: 2em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/collections/table.less b/css/semantic/rtl/less/collections/table.less
new file mode 100644
index 0000000..12cc69e
--- /dev/null
+++ b/css/semantic/rtl/less/collections/table.less
@@ -0,0 +1,645 @@
+/*
+ * # Semantic - Table
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Table
+*******************************/
+
+/* Prototype */
+
+.ui.table {
+ width: 100%;
+ border-collapse: collapse;
+}
+
+/* Table Content */
+
+.ui.table th,
+.ui.table tr,
+.ui.table td {
+ border-collapse: collapse;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-transition: all 0.1s ease-out;
+ -moz-transition: all 0.1s ease-out;
+ transition: all 0.1s ease-out;
+}
+
+/* Headers */
+
+.ui.table thead {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.03);
+}
+
+.ui.table tfoot th {
+ background-color: rgba(0, 0, 0, 0.03);
+}
+
+.ui.table th {
+ cursor: auto;
+ background-color: rgba(0, 0, 0, 0.05);
+ text-align: right;
+ color: rgba(0, 0, 0, 0.8);
+ padding: 0.5em 0.7em;
+ vertical-align: middle;
+}
+
+.ui.table thead th:first-child {
+ border-radius: 0px 5px 0px 0px;
+}
+
+.ui.table thead th:last-child {
+ border-radius: 5px 0px 0px 0px;
+}
+
+.ui.table tfoot th:first-child {
+ border-radius: 0px 0px 5px 0px;
+}
+
+.ui.table tfoot th:last-child {
+ border-radius: 0px 0px 0px 5px;
+}
+
+.ui.table tfoot th:only-child {
+ border-radius: 0px 0px 5px 5px;
+}
+
+/* Table Cells */
+
+.ui.table td {
+ padding: 0.40em 0.7em;
+ vertical-align: middle;
+}
+
+/* Footer */
+
+.ui.table tfoot {
+ border-top: 1px solid rgba(0, 0, 0, 0.03);
+}
+
+.ui.table tfoot th {
+ font-weight: normal;
+ font-style: italic;
+}
+
+/* Table Striping */
+
+.ui.table tbody tr:nth-child(2n) {
+ background-color: rgba(0, 0, 50, 0.02);
+}
+
+/* Icons */
+
+.ui.table > .icon {
+ vertical-align: baseline;
+}
+
+.ui.table > .icon:only-child {
+ margin: 0em;
+}
+
+/* Table Segment */
+
+.ui.table.segment:after {
+ display: none;
+}
+
+.ui.table.segment.stacked:after {
+ display: block;
+}
+
+/* Responsive */
+
+@media only screen and (max-width : 768px) {
+ .ui.table {
+ display: block;
+ padding: 0em;
+ }
+
+ .ui.table thead,
+ .ui.table tfoot {
+ display: none;
+ }
+
+ .ui.table tbody {
+ display: block;
+ }
+
+ .ui.table tr {
+ display: block;
+ }
+
+ .ui.table tr > td {
+ width: 100% !important;
+ display: block;
+ border: none !important;
+ padding: 0.25em 0.75em;
+ -webkit-box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05) !important;
+ box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05) !important;
+ }
+
+ .ui.table td:first-child {
+ font-weight: bold;
+ padding-top: 1em;
+ }
+
+ .ui.table td:last-child {
+ -webkit-box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1) inset !important;
+ box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1) inset !important;
+ padding-bottom: 1em;
+ }
+
+ /* Clear BG Colors */
+
+ .ui.table tr > td.warning,
+ .ui.table tr > td.error,
+ .ui.table tr > td.active,
+ .ui.table tr > td.positive,
+ .ui.table tr > td.negative {
+ background-color: transparent !important;
+ }
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+/* Sortable */
+
+.ui.sortable.table th.disabled:hover {
+ cursor: auto;
+ text-align: right;
+ font-weight: bold;
+ color: #333333;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.sortable.table thead th:hover {
+ background-color: rgba(0, 0, 0, 0.13);
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/* Inverted Sortable */
+
+.ui.inverted.sortable.table thead th:hover {
+ background-color: rgba(255, 255, 255, 0.13);
+ color: rgba(255, 255, 255, 1);
+}
+
+/*--------------
+ Positive
+---------------*/
+
+.ui.table tr.positive,
+.ui.table td.positive {
+ -webkit-box-shadow: 2px 0px 0px #119000 inset;
+ box-shadow: 2px 0px 0px #119000 inset;
+}
+
+.ui.table tr.positive td,
+.ui.table td.positive {
+ background-color: #F2F8F0 !important;
+ color: #119000 !important;
+}
+
+.ui.celled.table tr.positive:hover td,
+.ui.celled.table tr:hover td.positive,
+.ui.table tr.positive:hover td,
+.ui.table td:hover.positive,
+.ui.table th:hover.positive {
+ background-color: #ECF5E9 !important;
+ color: #119000 !important;
+}
+
+/*--------------
+ Negative
+---------------*/
+
+.ui.table tr.negative,
+.ui.table td.negative {
+ -webkit-box-shadow: 2px 0px 0px #CD2929 inset;
+ box-shadow: 2px 0px 0px #CD2929 inset;
+}
+
+.ui.table tr.negative td,
+.ui.table td.negative {
+ background-color: #F9F4F4;
+ color: #CD2929 !important;
+}
+
+.ui.celled.table tr.negative:hover td,
+.ui.celled.table tr:hover td.negative,
+.ui.table tr.negative:hover td,
+.ui.table td:hover.negative,
+.ui.table th:hover.negative {
+ background-color: #F2E8E8;
+ color: #CD2929;
+}
+
+/*--------------
+ Error
+---------------*/
+
+.ui.table tr.error,
+.ui.table td.error {
+ -webkit-box-shadow: 2px 0px 0px #CD2929 inset;
+ box-shadow: 2px 0px 0px #CD2929 inset;
+}
+
+.ui.table tr.error td,
+.ui.table td.error,
+.ui.table th.error {
+ background-color: #F9F4F4;
+ color: #CD2929;
+}
+
+.ui.celled.table tr.error:hover td,
+.ui.celled.table tr:hover td.error,
+.ui.table tr.error:hover td,
+.ui.table td:hover.error,
+.ui.table th:hover.error {
+ background-color: #F2E8E8;
+ color: #CD2929;
+}
+
+/*--------------
+ Warning
+---------------*/
+
+.ui.table tr.warning,
+.ui.table td.warning {
+ -webkit-box-shadow: 2px 0px 0px #7D6C00 inset;
+ box-shadow: 2px 0px 0px #7D6C00 inset;
+}
+
+.ui.table tr.warning td,
+.ui.table td.warning,
+.ui.table th.warning {
+ background-color: #FBF6E9;
+ color: #7D6C00;
+}
+
+.ui.celled.table tr.warning:hover td,
+.ui.celled.table tr:hover td.warning,
+.ui.table tr.warning:hover td,
+.ui.table td:hover.warning,
+.ui.table th:hover.warning {
+ background-color: #F3EDDC;
+ color: #7D6C00;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.table tr.active,
+.ui.table td.active {
+ -webkit-box-shadow: 2px 0px 0px rgba(50, 50, 50, 0.9) inset;
+ box-shadow: 2px 0px 0px rgba(50, 50, 50, 0.9) inset;
+}
+
+.ui.table tr.active td,
+.ui.table tr td.active {
+ background-color: #E0E0E0;
+ color: rgba(50, 50, 50, 0.9);
+ /* border-color: rgba(0, 0, 0, 0.15) !important; */
+}
+
+/*--------------
+ Disabled
+---------------*/
+
+.ui.table tr.disabled td,
+.ui.table tr td.disabled,
+.ui.table tr.disabled:hover td,
+.ui.table tr:hover td.disabled {
+ color: rgba(150, 150, 150, 0.3);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Column Count
+---------------*/
+
+.ui.two.column.table td {
+ width: 50%;
+}
+
+.ui.three.column.table td {
+ width: 33.3333%;
+}
+
+.ui.four.column.table td {
+ width: 25%;
+}
+
+.ui.five.column.table td {
+ width: 20%;
+}
+
+.ui.six.column.table td {
+ width: 16.66667%;
+}
+
+.ui.seven.column.table td {
+ width: 14.2857%;
+}
+
+.ui.eight.column.table td {
+ width: 12.5%;
+}
+
+.ui.nine.column.table td {
+ width: 11.1111%;
+}
+
+.ui.ten.column.table td {
+ width: 10%;
+}
+
+.ui.eleven.column.table td {
+ width: 9.0909%;
+}
+
+.ui.twelve.column.table td {
+ width: 8.3333%;
+}
+
+.ui.thirteen.column.table td {
+ width: 7.6923%;
+}
+
+.ui.fourteen.column.table td {
+ width: 7.1428%;
+}
+
+.ui.fifteen.column.table td {
+ width: 6.6666%;
+}
+
+.ui.sixteen.column.table td {
+ width: 6.25%;
+}
+
+/* Column Width */
+
+.ui.table th.one.wide,
+.ui.table td.one.wide {
+ width: 6.25%;
+}
+
+.ui.table th.two.wide,
+.ui.table td.two.wide {
+ width: 12.5%;
+}
+
+.ui.table th.three.wide,
+.ui.table td.three.wide {
+ width: 18.75%;
+}
+
+.ui.table th.four.wide,
+.ui.table td.four.wide {
+ width: 25%;
+}
+
+.ui.table th.five.wide,
+.ui.table td.five.wide {
+ width: 31.25%;
+}
+
+.ui.table th.six.wide,
+.ui.table td.six.wide {
+ width: 37.5%;
+}
+
+.ui.table th.seven.wide,
+.ui.table td.seven.wide {
+ width: 43.75%;
+}
+
+.ui.table th.eight.wide,
+.ui.table td.eight.wide {
+ width: 50%;
+}
+
+.ui.table th.nine.wide,
+.ui.table td.nine.wide {
+ width: 56.25%;
+}
+
+.ui.table th.ten.wide,
+.ui.table td.ten.wide {
+ width: 62.5%;
+}
+
+.ui.table th.eleven.wide,
+.ui.table td.eleven.wide {
+ width: 68.75%;
+}
+
+.ui.table th.twelve.wide,
+.ui.table td.twelve.wide {
+ width: 75%;
+}
+
+.ui.table th.thirteen.wide,
+.ui.table td.thirteen.wide {
+ width: 81.25%;
+}
+
+.ui.table th.fourteen.wide,
+.ui.table td.fourteen.wide {
+ width: 87.5%;
+}
+
+.ui.table th.fifteen.wide,
+.ui.table td.fifteen.wide {
+ width: 93.75%;
+}
+
+.ui.table th.sixteen.wide,
+.ui.table td.sixteen.wide {
+ width: 100%;
+}
+
+/*--------------
+ Celled
+---------------*/
+
+.ui.celled.table {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.celled.table tbody tr,
+.ui.celled.table tfoot tr {
+ border: none;
+}
+
+.ui.celled.table th,
+.ui.celled.table td {
+ border: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* Coupling with segment */
+
+.ui.celled.table.segment th:first-child,
+.ui.celled.table.segment td:first-child {
+ border-right: none;
+}
+
+.ui.celled.table.segment th:last-child,
+.ui.celled.table.segment td:last-child {
+ border-left: none;
+}
+
+/*--------------
+ Sortable
+---------------*/
+
+.ui.sortable.table thead th {
+ cursor: pointer;
+ white-space: nowrap;
+}
+
+.ui.sortable.table thead th.sorted,
+.ui.sortable.table thead th.sorted:hover {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.ui.sortable.table thead th:after {
+ display: inline-block;
+ content: '';
+ width: 1em;
+ opacity: 0.8;
+ margin: 0em 0.5em 0em 0em;
+ font-family: 'Icons';
+ font-style: normal;
+ font-weight: normal;
+ text-decoration: inherit;
+}
+
+.ui.sortable.table thead th.ascending:after {
+ content: '\25b4';
+}
+
+.ui.sortable.table thead th.descending:after {
+ content: '\25be';
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+/* Text Color */
+
+.ui.inverted.table td {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.inverted.table th {
+ background-color: rgba(0, 0, 0, 0.15);
+ color: rgba(255, 255, 255, 0.9);
+}
+
+/* Stripes */
+
+.ui.inverted.table tbody tr:nth-child(2n) {
+ background-color: rgba(255, 255, 255, 0.06);
+}
+
+/*--------------
+ Definition
+---------------*/
+
+.ui.definition.table td:first-child {
+ font-weight: bold;
+}
+
+/*--------------
+ Collapsing
+---------------*/
+
+.ui.collapsing.table {
+ width: auto;
+}
+
+/*--------------
+ Basic
+---------------*/
+
+.ui.basic.table th {
+ background-color: transparent;
+ padding: 0.5em;
+}
+
+.ui.basic.table tbody tr {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.03);
+}
+
+.ui.basic.table td {
+ padding: 0.8em 0.5em;
+}
+
+.ui.basic.table tbody tr:nth-child(2n) {
+ background-color: transparent !important;
+}
+
+/*--------------
+ Padded
+---------------*/
+
+.ui.padded.table th,
+.ui.padded.table td {
+ padding: 0.8em 1em;
+}
+
+.ui.compact.table th {
+ padding: 0.3em 0.5em;
+}
+
+.ui.compact.table td {
+ padding: 0.2em 0.5em;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+/* Small */
+
+.ui.small.table {
+ font-size: 0.875em;
+}
+
+/* Standard */
+
+.ui.table {
+ font-size: 1em;
+}
+
+/* Large */
+
+.ui.large.table {
+ font-size: 1.1em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/elements/basic.icon.less b/css/semantic/rtl/less/elements/basic.icon.less
new file mode 100644
index 0000000..679c6e5
--- /dev/null
+++ b/css/semantic/rtl/less/elements/basic.icon.less
@@ -0,0 +1,1128 @@
+/*
+ * # Semantic - basic.Icon (Basic)
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Basic Icon
+*******************************/
+
+@font-face {
+ font-family: 'Basic Icons';
+ src: url(../fonts/basic.icons.eot);
+ src: url(../fonts/basic.icons.eot?#iefix) format('embedded-opentype'),
+ url(../fonts/basic.icons.svg#basic.icons) format('svg'),
+ url(../fonts/basic.icons.woff) format('woff'),
+ url(../fonts/basic.icons.ttf) format('truetype');
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-decoration: inherit;
+ text-transform: none;
+}
+
+i.basic.icon {
+ display: inline-block;
+ opacity: 0.75;
+ margin: 0em 0em 0em 0.25em;
+ width: 1.23em;
+ height: 1em;
+ font-family: 'Basic Icons';
+ font-style: normal;
+ line-height: 1;
+ font-weight: normal;
+ text-decoration: inherit;
+ text-align: center;
+ speak: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-font-smoothing: antialiased;
+ -moz-font-smoothing: antialiased;
+ font-smoothing: antialiased;
+}
+
+/* basic.icons available */
+
+i.basic.icon.circle.attention:before {
+ content: '\2757';
+}
+
+/* '❗' */
+
+i.basic.icon.circle.help:before {
+ content: '\e704';
+}
+
+/* '' */
+
+i.basic.icon.circle.info:before {
+ content: '\e705';
+}
+
+/* '' */
+
+i.basic.icon.add:before {
+ content: '\2795';
+}
+
+/* '➕' */
+
+i.basic.icon.chart:before {
+ content: '📈';
+}
+
+/* '\1f4c8' */
+
+i.basic.icon.chart.bar:before {
+ content: '📊';
+}
+
+/* '\1f4ca' */
+
+i.basic.icon.chart.pie:before {
+ content: '\e7a2';
+}
+
+/* '' */
+
+i.basic.icon.resize.full:before {
+ content: '\e744';
+}
+
+/* '' */
+
+i.basic.icon.resize.horizontal:before {
+ content: '\2b0d';
+}
+
+/* '⬍' */
+
+i.basic.icon.resize.small:before {
+ content: '\e746';
+}
+
+/* '' */
+
+i.basic.icon.resize.vertical:before {
+ content: '\2b0c';
+}
+
+/* '⬌' */
+
+i.basic.icon.down:before {
+ content: '\2193';
+}
+
+/* '↓' */
+
+i.basic.icon.down.triangle:before {
+ content: '\25be';
+}
+
+/* '▾' */
+
+i.basic.icon.down.arrow:before {
+ content: '\e75c';
+}
+
+/* '' */
+
+i.basic.icon.left:before {
+ content: '\2190';
+}
+
+/* '←' */
+
+i.basic.icon.left.triangle:before {
+ content: '\25c2';
+}
+
+/* '◂' */
+
+i.basic.icon.left.arrow:before {
+ content: '\e75d';
+}
+
+/* '' */
+
+i.basic.icon.right:before {
+ content: '\2192';
+}
+
+/* '→' */
+
+i.basic.icon.right.triangle:before {
+ content: '\25b8';
+}
+
+/* '▸' */
+
+i.basic.icon.right.arrow:before {
+ content: '\e75e';
+}
+
+/* '' */
+
+i.basic.icon.up:before {
+ content: '\2191';
+}
+
+/* '↑' */
+
+i.basic.icon.up.triangle:before {
+ content: '\25b4';
+}
+
+/* '▴' */
+
+i.basic.icon.up.arrow:before {
+ content: '\e75f';
+}
+
+/* '' */
+
+i.basic.icon.folder:before {
+ content: '\e810';
+}
+
+/* '' */
+
+i.basic.icon.open.folder:before {
+ content: '📂';
+}
+
+/* '\1f4c2' */
+
+i.basic.icon.globe:before {
+ content: '𝌍';
+}
+
+/* '\1d30d' */
+
+i.basic.icon.desk.globe:before {
+ content: '🌐';
+}
+
+/* '\1f310' */
+
+i.basic.icon.star:before {
+ content: '\e801';
+}
+
+/* '' */
+
+i.basic.icon.star.empty:before {
+ content: '\e800';
+}
+
+/* '' */
+
+i.basic.icon.star.half:before {
+ content: '\e701';
+}
+
+/* '' */
+
+i.basic.icon.lock:before {
+ content: '🔒';
+}
+
+/* '\1f512' */
+
+i.basic.icon.unlock:before {
+ content: '🔓';
+}
+
+/* '\1f513' */
+
+i.basic.icon.layout.grid:before {
+ content: '\e80c';
+}
+
+/* '' */
+
+i.basic.icon.layout.block:before {
+ content: '\e708';
+}
+
+/* '' */
+
+i.basic.icon.layout.list:before {
+ content: '\e80b';
+}
+
+/* '' */
+
+i.basic.icon.heart.empty:before {
+ content: '\2661';
+}
+
+/* '♡' */
+
+i.basic.icon.heart:before {
+ content: '\2665';
+}
+
+/* '♥' */
+
+i.basic.icon.asterisk:before {
+ content: '\2731';
+}
+
+/* '✱' */
+
+i.basic.icon.attachment:before {
+ content: '📎';
+}
+
+/* '\1f4ce' */
+
+i.basic.icon.attention:before {
+ content: '\26a0';
+}
+
+/* '⚠' */
+
+i.basic.icon.trophy:before {
+ content: '🏉';
+}
+
+/* '\1f3c9' */
+
+i.basic.icon.barcode:before {
+ content: '\e792';
+}
+
+/* '' */
+
+i.basic.icon.cart:before {
+ content: '\e813';
+}
+
+/* '' */
+
+i.basic.icon.block:before {
+ content: '🚫';
+}
+
+/* '\1f6ab' */
+
+i.basic.icon.book:before {
+ content: '📖';
+}
+
+i.basic.icon.bookmark:before {
+ content: '🔖';
+}
+
+/* '\1f516' */
+
+i.basic.icon.calendar:before {
+ content: '📅';
+}
+
+/* '\1f4c5' */
+
+i.basic.icon.cancel:before {
+ content: '\2716';
+}
+
+/* '✖' */
+
+i.basic.icon.close:before {
+ content: '\e80d';
+}
+
+/* '' */
+
+i.basic.icon.color:before {
+ content: '\e794';
+}
+
+/* '' */
+
+i.basic.icon.chat:before {
+ content: '\e720';
+}
+
+/* '' */
+
+i.basic.icon.check:before {
+ content: '\2611';
+}
+
+/* '☑' */
+
+i.basic.icon.time:before {
+ content: '🕔';
+}
+
+/* '\1f554' */
+
+i.basic.icon.cloud:before {
+ content: '\2601';
+}
+
+/* '☁' */
+
+i.basic.icon.code:before {
+ content: '\e714';
+}
+
+/* '' */
+
+i.basic.icon.email:before {
+ content: '\40';
+}
+
+/* '@' */
+
+i.basic.icon.settings:before {
+ content: '\26ef';
+}
+
+/* '⛯' */
+
+i.basic.icon.setting:before {
+ content: '\2699';
+}
+
+/* '⚙' */
+
+i.basic.icon.comment:before {
+ content: '\e802';
+}
+
+/* '' */
+
+i.basic.icon.clockwise.counter:before {
+ content: '\27f2';
+}
+
+/* '⟲' */
+
+i.basic.icon.clockwise:before {
+ content: '\27f3';
+}
+
+/* '⟳' */
+
+i.basic.icon.cube:before {
+ content: '\e807';
+}
+
+/* '' */
+
+i.basic.icon.direction:before {
+ content: '\27a2';
+}
+
+/* '➢' */
+
+i.basic.icon.doc:before {
+ content: '📄';
+}
+
+/* '\1f4c4' */
+
+i.basic.icon.docs:before {
+ content: '\e736';
+}
+
+/* '' */
+
+i.basic.icon.dollar:before {
+ content: '💵';
+}
+
+/* '\1f4b5' */
+
+i.basic.icon.paint:before {
+ content: '\e7b5';
+}
+
+/* '' */
+
+i.basic.icon.edit:before {
+ content: '\270d';
+}
+
+/* '✍' */
+
+i.basic.icon.eject:before {
+ content: '\2ecf';
+}
+
+/* '⻏' */
+
+i.basic.icon.export:before {
+ content: '\e715';
+}
+
+/* '' */
+
+i.basic.icon.hide:before {
+ content: '\e70b';
+}
+
+/* '' */
+
+i.basic.icon.unhide:before {
+ content: '\e80f';
+}
+
+/* '' */
+
+i.basic.icon.facebook:before {
+ content: '\f301';
+}
+
+/* '' */
+
+i.basic.icon.fast-forward:before {
+ content: '\e804';
+}
+
+/* '' */
+
+i.basic.icon.fire:before {
+ content: '🔥';
+}
+
+/* '\1f525' */
+
+i.basic.icon.flag:before {
+ content: '\2691';
+}
+
+/* '⚑' */
+
+i.basic.icon.lightning:before {
+ content: '\26a1';
+}
+
+/* '⚡' */
+
+i.basic.icon.lab:before {
+ content: '\68';
+}
+
+/* 'h' */
+
+i.basic.icon.flight:before {
+ content: '\2708';
+}
+
+/* '✈' */
+
+i.basic.icon.forward:before {
+ content: '\27a6';
+}
+
+/* '➦' */
+
+i.basic.icon.gift:before {
+ content: '🎁';
+}
+
+/* '\1f381' */
+
+i.basic.icon.github:before {
+ content: '\f308';
+}
+
+/* '' */
+
+i.basic.icon.globe:before {
+ content: '\e817';
+}
+
+/* '' */
+
+i.basic.icon.headphones:before {
+ content: '🎧';
+}
+
+/* '\1f3a7' */
+
+i.basic.icon.question:before {
+ content: '\2753';
+}
+
+/* '❓' */
+
+i.basic.icon.home:before {
+ content: '\2302';
+}
+
+/* '⌂' */
+
+i.basic.icon.i:before {
+ content: '\2139';
+}
+
+/* 'ℹ' */
+
+i.basic.icon.idea:before {
+ content: '💡';
+}
+
+/* '\1f4a1' */
+
+i.basic.icon.open:before {
+ content: '🔗';
+}
+
+/* '\1f517' */
+
+i.basic.icon.content:before {
+ content: '\e782';
+}
+
+/* '' */
+
+i.basic.icon.location:before {
+ content: '\e724';
+}
+
+/* '' */
+
+i.basic.icon.mail:before {
+ content: '\2709';
+}
+
+/* '✉' */
+
+i.basic.icon.mic:before {
+ content: '🎤';
+}
+
+/* '\1f3a4' */
+
+i.basic.icon.minus:before {
+ content: '\2d';
+}
+
+/* '-' */
+
+i.basic.icon.money:before {
+ content: '💰';
+}
+
+/* '\1f4b0' */
+
+i.basic.icon.off:before {
+ content: '\e78e';
+}
+
+/* '' */
+
+i.basic.icon.pause:before {
+ content: '\e808';
+}
+
+/* '' */
+
+i.basic.icon.photos:before {
+ content: '\e812';
+}
+
+/* '' */
+
+i.basic.icon.photo:before {
+ content: '🌄';
+}
+
+/* '\1f304' */
+
+i.basic.icon.pin:before {
+ content: '📌';
+}
+
+/* '\1f4cc' */
+
+i.basic.icon.play:before {
+ content: '\e809';
+}
+
+/* '' */
+
+i.basic.icon.plus:before {
+ content: '\2b';
+}
+
+/* '+' */
+
+i.basic.icon.print:before {
+ content: '\e716';
+}
+
+/* '' */
+
+i.basic.icon.rss:before {
+ content: '\e73a';
+}
+
+/* '' */
+
+i.basic.icon.search:before {
+ content: '🔍';
+}
+
+/* '\1f50d' */
+
+i.basic.icon.shuffle:before {
+ content: '\e803';
+}
+
+/* '' */
+
+i.basic.icon.tag:before {
+ content: '\e80a';
+}
+
+/* '' */
+
+i.basic.icon.tags:before {
+ content: '\e70d';
+}
+
+/* '' */
+
+i.basic.icon.terminal:before {
+ content: '\e7ac';
+}
+
+/* '' */
+
+i.basic.icon.thumbs.down:before {
+ content: '👎';
+}
+
+/* '\1f44e' */
+
+i.basic.icon.thumbs.up:before {
+ content: '👍';
+}
+
+/* '\1f44d' */
+
+i.basic.icon.to-end:before {
+ content: '\e806';
+}
+
+/* '' */
+
+i.basic.icon.to-start:before {
+ content: '\e805';
+}
+
+/* '' */
+
+i.basic.icon.top.list:before {
+ content: '🏆';
+}
+
+/* '\1f3c6' */
+
+i.basic.icon.trash:before {
+ content: '\e729';
+}
+
+/* '' */
+
+i.basic.icon.twitter:before {
+ content: '\f303';
+}
+
+/* '' */
+
+i.basic.icon.upload:before {
+ content: '\e711';
+}
+
+/* '' */
+
+i.basic.icon.user.add:before {
+ content: '\e700';
+}
+
+/* '' */
+
+i.basic.icon.user:before {
+ content: '👤';
+}
+
+/* '\1f464' */
+
+i.basic.icon.community:before {
+ content: '\e814';
+}
+
+/* '' */
+
+i.basic.icon.users:before {
+ content: '👥';
+}
+
+/* '\1f465' */
+
+i.basic.icon.id:before {
+ content: '\e722';
+}
+
+/* '' */
+
+i.basic.icon.url:before {
+ content: '🔗';
+}
+
+/* '\1f517' */
+
+i.basic.icon.zoom.in:before {
+ content: '\e750';
+}
+
+/* '' */
+
+i.basic.icon.zoom.out:before {
+ content: '\e751';
+}
+
+/* '' */
+
+/*--------------
+ Spacing Fix
+---------------*/
+
+/* dropdown arrows are to the right */
+
+i.dropdown.basic.icon {
+ margin: 0em 0.5em 0em 0em;
+}
+
+/* stars are usually consecutive */
+
+i.basic.icon.star {
+ width: auto;
+ margin: 0em;
+}
+
+/* left side basic.icons */
+
+i.basic.icon.left,
+i.basic.icon.left,
+i.basic.icon.left {
+ width: auto;
+ margin: 0em 0em 0em 0.5em;
+}
+
+/* right side basic.icons */
+
+i.basic.icon.search,
+i.basic.icon.up,
+i.basic.icon.down,
+i.basic.icon.right {
+ width: auto;
+ margin: 0em 0.5em 0em 0em;
+}
+
+/*--------------
+ Aliases
+---------------*/
+
+/* aliases for convenience */
+
+i.basic.icon.delete:before {
+ content: '\e80d';
+}
+
+/* '' */
+
+i.basic.icon.dropdown:before {
+ content: '\25be';
+}
+
+/* '▾' */
+
+i.basic.icon.help:before {
+ content: '\e704';
+}
+
+/* '' */
+
+i.basic.icon.info:before {
+ content: '\e705';
+}
+
+/* '' */
+
+i.basic.icon.error:before {
+ content: '\e80d';
+}
+
+/* '' */
+
+i.basic.icon.dislike:before {
+ content: '\2661';
+}
+
+/* '♡' */
+
+i.basic.icon.like:before {
+ content: '\2665';
+}
+
+/* '♥' */
+
+i.basic.icon.eye:before {
+ content: '\e80f';
+}
+
+/* '' */
+
+i.basic.icon.eye.hidden:before {
+ content: '\e70b';
+}
+
+/* '' */
+
+i.basic.icon.date:before {
+ content: '📅';
+}
+
+/* '\1f4c5' */
+
+/*******************************
+ States
+*******************************/
+
+i.basic.icon.hover {
+ opacity: 1;
+}
+
+i.basic.icon.active {
+ opacity: 1;
+}
+
+i.emphasized.basic.icon {
+ opacity: 1;
+}
+
+i.basic.icon.disabled {
+ opacity: 0.3;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Link
+--------------------*/
+
+i.link.basic.icon {
+ cursor: pointer;
+ opacity: 0.7;
+ -webkit-transition: opacity 0.3s ease-out;
+ -moz-transition: opacity 0.3s ease-out;
+ transition: opacity 0.3s ease-out;
+}
+
+.link.basic.icon:hover {
+ opacity: 1 !important;
+}
+
+/*-------------------
+ Circular
+--------------------*/
+
+i.circular.basic.icon {
+ border-radius: !important 500px;
+ padding: 0.5em 0em !important;
+ -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ line-height: 1 !important;
+ width: 2em !important;
+ height: 2em !important;
+}
+
+i.circular.inverted.basic.icon {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Flipped
+--------------------*/
+
+i.vertically.flipped.basic.icon {
+ -webkit-transform: scale(1, -1);
+ -moz-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+
+i.horizontally.flipped.basic.icon {
+ -webkit-transform: scale(-1, 1);
+ -moz-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+
+/*-------------------
+ Rotated
+--------------------*/
+
+i.left.rotated.basic.icon {
+ -webkit-transform: rotate(-90deg);
+ -moz-transform: rotate(-90deg);
+ -ms-transform: rotate(-90deg);
+ transform: rotate(-90deg);
+}
+
+i.right.rotated.basic.icon {
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+
+/*-------------------
+ Square
+--------------------*/
+
+i.square.basic.icon {
+ width: 2em;
+ height: 2em;
+ padding: 0.5em 0.35em !important;
+ -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ vertical-align: baseline;
+}
+
+i.square.basic.icon:before {
+ vertical-align: middle;
+}
+
+i.square.inverted.basic.icon {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+i.inverted.basic.icon {
+ background-color: #222222;
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+i.blue.basic.icon {
+ color: #6ECFF5 !important;
+}
+
+i.black.basic.icon {
+ color: #5C6166 !important;
+}
+
+i.green.basic.icon {
+ color: #A1CF64 !important;
+}
+
+i.red.basic.icon {
+ color: #D95C5C !important;
+}
+
+i.purple.basic.icon {
+ color: #564F8A !important;
+}
+
+i.teal.basic.icon {
+ color: #00B5AD !important;
+}
+
+/*-------------------
+ Inverted Colors
+--------------------*/
+
+i.inverted.black.basic.icon {
+ background-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.blue.basic.icon {
+ background-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.green.basic.icon {
+ background-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.red.basic.icon {
+ background-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.purple.basic.icon {
+ background-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.teal.basic.icon {
+ background-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+i.small.basic.icon {
+ font-size: 0.875em;
+}
+
+i.basic.icon {
+ font-size: 1em;
+}
+
+i.large.basic.icon {
+ font-size: 1.5em;
+ margin-left: 0.2em;
+ vertical-align: middle;
+}
+
+i.big.basic.icon {
+ font-size: 2em;
+ margin-left: 0.5em;
+ vertical-align: middle;
+}
+
+i.huge.basic.icon {
+ font-size: 4em;
+ margin-left: 0.75em;
+ vertical-align: middle;
+}
+
+i.massive.basic.icon {
+ font-size: 8em;
+ margin-left: 1em;
+ vertical-align: middle;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/elements/button.less b/css/semantic/rtl/less/elements/button.less
new file mode 100644
index 0000000..4520579
--- /dev/null
+++ b/css/semantic/rtl/less/elements/button.less
@@ -0,0 +1,1436 @@
+/*
+ * # Semantic - Button
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Button
+*******************************/
+
+/* Prototype */
+
+.ui.button {
+ cursor: pointer;
+ display: inline-block;
+ vertical-align: middle;
+ min-height: 1em;
+ outline: none;
+ border: none;
+ background-color: #FAFAFA;
+ color: #808080;
+ margin: 0em;
+ padding: 0.8em 1.5em;
+ font-size: 1rem;
+ text-transform: uppercase;
+ line-height: 1;
+ font-weight: bold;
+ font-style: normal;
+ text-align: center;
+ text-decoration: none;
+ background-image: -webkit-gradient(linear, right top, right bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.05)));
+ background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
+ background-image: -moz-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
+ background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
+ border-radius: 0.25em;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.08) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.08) inset;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -webkit-transition: opacity 0.25s ease,
+ background-color 0.25s ease,
+ color 0.25s ease,
+ background 0.25s ease,
+ -webkit-box-shadow 0.25s ease;
+ -moz-transition: opacity 0.25s ease,
+ background-color 0.25s ease,
+ color 0.25s ease,
+ background 0.25s ease,
+ box-shadow 0.25s ease;
+ transition: opacity 0.25s ease,
+ background-color 0.25s ease,
+ color 0.25s ease,
+ background 0.25s ease,
+ box-shadow 0.25s ease;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Active
+---------------*/
+
+.ui.buttons .active.button,
+.ui.active.button {
+ background-color: #EAEAEA;
+ background-image: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.button:hover {
+ background-image: -webkit-gradient(linear, right top, right bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.08)));
+ background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.08));
+ background-image: -moz-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.08));
+ background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.08));
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.button.active:hover {
+ background-image: none;
+}
+
+.ui.button:hover .icon,
+.ui.button.hover .icon {
+ opacity: 0.85;
+}
+
+/*--------------
+ Down
+---------------*/
+
+.ui.button:active,
+.ui.active.button:active {
+ background-color: #F1F1F1;
+ color: rgba(0, 0, 0, 0.7);
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important;
+}
+
+/*--------------
+ Loading
+---------------*/
+
+.ui.loading.button {
+ position: relative;
+ cursor: default;
+ background-color: #FFFFFF !important;
+ color: transparent !important;
+ -webkit-transition: all 0s linear;
+ -moz-transition: all 0s linear;
+ transition: all 0s linear;
+}
+
+.ui.loading.button:after {
+ position: absolute;
+ top: 0em;
+ right: 0em;
+ width: 100%;
+ height: 100%;
+ content: '';
+ background: transparent url(../images/loader-mini.gif) no-repeat 50% 50%;
+}
+
+.ui.labeled.icon.loading.button .icon {
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Disabled
+--------------------*/
+
+.ui.disabled.button,
+.ui.disabled.button:hover,
+.ui.disabled.button.active {
+ background-color: #DDDDDD !important;
+ cursor: default;
+ color: rgba(0, 0, 0, 0.5) !important;
+ opacity: 0.3 !important;
+ background-image: none !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Animated
+--------------------*/
+
+.ui.animated.button {
+ position: relative;
+ overflow: hidden;
+}
+
+.ui.animated.button .visible.content {
+ position: relative;
+}
+
+.ui.animated.button .hidden.content {
+ position: absolute;
+ width: 100%;
+}
+
+/* Horizontal */
+
+.ui.animated.button .visible.content,
+.ui.animated.button .hidden.content {
+ -webkit-transition: left 0.3s ease 0s;
+ -moz-transition: left 0.3s ease 0s;
+ transition: left 0.3s ease 0s;
+}
+
+.ui.animated.button .visible.content {
+ right: auto;
+ left: 0%;
+}
+
+.ui.animated.button .hidden.content {
+ top: 50%;
+ right: auto;
+ left: -100%;
+ margin-top: -0.55em;
+}
+
+.ui.animated.button:hover .visible.content {
+ right: auto;
+ left: 200%;
+}
+
+.ui.animated.button:hover .hidden.content {
+ right: auto;
+ left: 0%;
+}
+
+/* Vertical */
+
+.ui.vertical.animated.button .visible.content,
+.ui.vertical.animated.button .hidden.content {
+ -webkit-transition: top 0.3s ease 0s, -webkit-transform 0.3s ease 0s;
+ -moz-transition: top 0.3s ease 0s, -moz-transform 0.3s ease 0s;
+ transition: top 0.3s ease 0s, transform 0.3s ease 0s;
+}
+
+.ui.vertical.animated.button .visible.content {
+ -webkit-transform: translateY(0%);
+ -moz-transform: translateY(0%);
+ -ms-transform: translateY(0%);
+ transform: translateY(0%);
+ left: auto;
+}
+
+.ui.vertical.animated.button .hidden.content {
+ top: -100%;
+ right: 0%;
+ left: auto;
+}
+
+.ui.vertical.animated.button:hover .visible.content {
+ -webkit-transform: translateY(200%);
+ -moz-transform: translateY(200%);
+ -ms-transform: translateY(200%);
+ transform: translateY(200%);
+ left: auto;
+}
+
+.ui.vertical.animated.button:hover .hidden.content {
+ top: 50%;
+ left: auto;
+}
+
+/* Fade */
+
+.ui.fade.animated.button .visible.content,
+.ui.fade.animated.button .hidden.content {
+ -webkit-transition: opacity 0.3s ease 0s, -webkit-transform 0.3s ease 0s;
+ -moz-transition: opacity 0.3s ease 0s, -moz-transform 0.3s ease 0s;
+ transition: opacity 0.3s ease 0s, transform 0.3s ease 0s;
+}
+
+.ui.fade.animated.button .visible.content {
+ right: auto;
+ left: auto;
+ opacity: 1;
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+}
+
+.ui.fade.animated.button .hidden.content {
+ opacity: 0;
+ right: 0%;
+ left: auto;
+ -webkit-transform: scale(1.2);
+ -moz-transform: scale(1.2);
+ -ms-transform: scale(1.2);
+ transform: scale(1.2);
+}
+
+.ui.fade.animated.button:hover .visible.content {
+ right: auto;
+ left: auto;
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ -moz-transform: scale(0.7);
+ -ms-transform: scale(0.7);
+ transform: scale(0.7);
+}
+
+.ui.fade.animated.button:hover .hidden.content {
+ right: 0%;
+ left: auto;
+ opacity: 1;
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+}
+
+/*-------------------
+ Primary
+--------------------*/
+
+.ui.primary.buttons .button,
+.ui.primary.button {
+ background-color: #D95C5C;
+ color: #FFFFFF;
+}
+
+.ui.primary.buttons .button:hover,
+.ui.primary.button:hover,
+.ui.primary.buttons .active.button,
+.ui.primary.button.active {
+ background-color: #E75859;
+ color: #FFFFFF;
+}
+
+.ui.primary.buttons .button:active,
+.ui.primary.button:active {
+ background-color: #D24B4C;
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Secondary
+--------------------*/
+
+.ui.secondary.buttons .button,
+.ui.secondary.button {
+ background-color: #00B5AD;
+ color: #FFFFFF;
+}
+
+.ui.secondary.buttons .button:hover,
+.ui.secondary.button:hover,
+.ui.secondary.buttons .active.button,
+.ui.secondary.button.active {
+ background-color: #009A93;
+ color: #FFFFFF;
+}
+
+.ui.secondary.buttons .button:active,
+.ui.secondary.button:active {
+ background-color: #00847E;
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Social
+--------------------*/
+
+/* Facebook */
+
+.ui.facebook.button {
+ background-color: #3B579D;
+ color: #FFFFFF;
+}
+
+.ui.facebook.button:hover {
+ background-color: #3A59A9;
+ color: #FFFFFF;
+}
+
+.ui.facebook.button:active {
+ background-color: #334F95;
+ color: #FFFFFF;
+}
+
+/* Twitter */
+
+.ui.twitter.button {
+ background-color: #4092CC;
+ color: #FFFFFF;
+}
+
+.ui.twitter.button:hover {
+ background-color: #399ADE;
+ color: #FFFFFF;
+}
+
+.ui.twitter.button:active {
+ background-color: #3283BC;
+ color: #FFFFFF;
+}
+
+/* Google Plus */
+
+.ui.google.plus.button {
+ background-color: #D34836;
+ color: #FFFFFF;
+}
+
+.ui.google.plus.button:hover {
+ background-color: #E3432E;
+ color: #FFFFFF;
+}
+
+.ui.google.plus.button:active {
+ background-color: #CA3A27;
+ color: #FFFFFF;
+}
+
+/* Linked In */
+
+.ui.linkedin.button {
+ background-color: #1F88BE;
+ color: #FFFFFF;
+}
+
+.ui.linkedin.button:hover {
+ background-color: #1394D6;
+ color: #FFFFFF;
+}
+
+.ui.linkedin.button:active {
+ background-color: #1179AE;
+ color: #FFFFFF;
+}
+
+/* YouTube */
+
+.ui.youtube.button {
+ background-color: #CC181E;
+ color: #FFFFFF;
+}
+
+.ui.youtube.button:hover {
+ background-color: #DF0209;
+ color: #FFFFFF;
+}
+
+.ui.youtube.button:active {
+ background-color: #A50006;
+ color: #FFFFFF;
+}
+
+/* Instagram */
+
+.ui.instagram.button {
+ background-color: #49769C;
+ color: #FFFFFF;
+}
+
+.ui.instagram.button:hover {
+ background-color: #4781B1;
+ color: #FFFFFF;
+}
+
+.ui.instagram.button:active {
+ background-color: #38658A;
+ color: #FFFFFF;
+}
+
+/* Pinterest */
+
+.ui.pinterest.button {
+ background-color: #00ACED;
+ color: #FFFFFF;
+}
+
+.ui.pinterest.button:hover {
+ background-color: #00B9FF;
+ color: #FFFFFF;
+}
+
+.ui.pinterest.button:active {
+ background-color: #009EDA;
+ color: #FFFFFF;
+}
+
+/* vk.com */
+
+.ui.vk.button {
+ background-color: #4D7198;
+ color: #FFFFFF;
+}
+
+.ui.vk.button:hover {
+ background-color: #537AA5;
+ color: #FFFFFF;
+}
+
+.ui.vk.button:active {
+ background-color: #405E7E;
+ color: #FFFFFF;
+}
+
+/*--------------
+ Icon
+---------------*/
+
+.ui.button > .icon {
+ margin-left: 0.6em;
+ line-height: 1;
+ -webkit-transition: opacity 0.1s ease;
+ -moz-transition: opacity 0.1s ease;
+ transition: opacity 0.1s ease;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Floated
+--------------------*/
+
+.ui.left.floated.buttons,
+.ui.left.floated.button {
+ float: right;
+ margin-left: 0.25em;
+}
+
+.ui.right.floated.buttons,
+.ui.right.floated.button {
+ float: left;
+ margin-right: 0.25em;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+.ui.buttons .button,
+.ui.button {
+ font-size: 1rem;
+}
+
+.ui.mini.buttons .button,
+.ui.mini.buttons .or,
+.ui.mini.button {
+ font-size: 0.8rem;
+}
+
+.ui.mini.buttons .button,
+.ui.mini.button {
+ padding: 0.6em 0.8em;
+}
+
+.ui.mini.icon.buttons .button,
+.ui.mini.buttons .icon.button {
+ padding: 0.6em 0.6em;
+}
+
+.ui.tiny.buttons .button,
+.ui.tiny.buttons .or,
+.ui.tiny.button {
+ font-size: 0.875em;
+}
+
+.ui.tiny.buttons .button,
+.ui.tiny.buttons .button,
+.ui.tiny.button {
+ padding: 0.6em 0.8em;
+}
+
+.ui.tiny.icon.buttons .button,
+.ui.tiny.buttons .icon.button {
+ padding: 0.6em 0.6em;
+}
+
+.ui.small.buttons .button,
+.ui.small.buttons .or,
+.ui.small.button {
+ font-size: 0.875rem;
+}
+
+.ui.large.buttons .button,
+.ui.large.buttons .or,
+.ui.large.button {
+ font-size: 1.125rem;
+}
+
+.ui.big.buttons .button,
+.ui.big.buttons .or,
+.ui.big.button {
+ font-size: 1.25rem;
+}
+
+.ui.huge.buttons .button,
+.ui.huge.buttons .or,
+.ui.huge.button {
+ font-size: 1.375rem;
+}
+
+.ui.massive.buttons .button,
+.ui.massive.buttons .or,
+.ui.massive.button {
+ font-size: 1.5rem;
+ font-weight: bold;
+}
+
+/* Or resize */
+
+.ui.tiny.buttons .or:before,
+.ui.mini.buttons .or:before {
+ width: 1.45em;
+ height: 1.55em;
+ line-height: 1.4;
+ margin-right: -0.725em;
+ margin-top: -0.25em;
+}
+
+.ui.tiny.buttons .or:after,
+.ui.mini.buttons .or:after {
+ height: 1.45em;
+}
+
+/* loading */
+
+.ui.huge.loading.button:after {
+ background-image: url(../images/loader-small.gif);
+}
+
+.ui.massive.buttons .loading.button:after,
+.ui.gigantic.buttons .loading.button:after,
+.ui.massive.loading.button:after,
+.ui.gigantic.loading.button:after {
+ background-image: url(../images/loader-medium.gif);
+}
+
+.ui.huge.loading.button:after,
+.ui.huge.loading.button.active:after {
+ background-image: url(../images/loader-small.gif);
+}
+
+.ui.massive.buttons .loading.button:after,
+.ui.gigantic.buttons .loading.button:after,
+.ui.massive.loading.button:after,
+.ui.gigantic.loading.button:after,
+.ui.massive.buttons .loading.button.active:after,
+.ui.gigantic.buttons .loading.button.active:after,
+.ui.massive.loading.button.active:after,
+.ui.gigantic.loading.button.active:after {
+ background-image: url(../images/loader-medium.gif);
+}
+
+/*--------------
+ Icon Only
+---------------*/
+
+.ui.icon.buttons .button,
+.ui.icon.button {
+ padding: 0.8em;
+}
+
+.ui.icon.buttons .button > .icon,
+.ui.icon.button > .icon {
+ opacity: 0.9;
+ margin: 0em;
+ vertical-align: top;
+}
+
+/*-------------------
+ Basic
+--------------------*/
+
+.ui.basic.buttons .button,
+.ui.basic.button {
+ background-color: transparent !important;
+ background-image: none;
+ color: #808080 !important;
+ font-weight: normal;
+ text-transform: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.basic.buttons {
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ border-radius: 0.25em;
+}
+
+.ui.basic.buttons .button:hover,
+.ui.basic.button:hover {
+ background-image: none;
+ color: #7F7F7F !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.18) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.18) inset;
+}
+
+.ui.basic.buttons .button:active,
+.ui.basic.button:active {
+ background-color: rgba(0, 0, 0, 0.02) !important;
+ color: #7F7F7F !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.basic.buttons .button.active,
+.ui.basic.button.active {
+ background-color: rgba(0, 0, 0, 0.05);
+ color: #7F7F7F;
+ -webkit-box-shadow: 0px 0px 0px 1px #BDBDBD inset;
+ box-shadow: 0px 0px 0px 1px #BDBDBD inset;
+}
+
+.ui.basic.buttons .button.active:hover,
+.ui.basic.button.active:hover {
+ background-color: rgba(0, 0, 0, 0.1);
+}
+
+/* Inverted */
+
+.ui.basic.inverted.buttons .button,
+.ui.basic.inverted.button {
+ color: #FAFAFA !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.3) inset;
+ box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.3) inset;
+}
+
+.ui.basic.inverted.buttons .button:hover,
+.ui.basic.inverted.button:hover {
+ background-image: none;
+ color: #FFFFFF !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.5) inset;
+ box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.5) inset;
+}
+
+.ui.basic.inverted.buttons .button:active,
+.ui.basic.inverted.button:active {
+ background-color: rgba(255, 255, 255, 0.05) !important;
+ color: #FFFFFF !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.8) inset !important;
+ box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.8) inset !important;
+}
+
+.ui.basic.inverted.buttons .button.active,
+.ui.basic.inverted.button.active {
+ background-color: rgba(255, 255, 255, 0.5);
+ color: #FFFFFF;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.basic.inverted.buttons .button.active:hover,
+.ui.basic.inverted.button.active:hover {
+ background-color: rgba(0, 0, 0, 0.1);
+}
+
+/* Basic Group */
+
+.ui.basic.buttons .button {
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.basic.buttons .button:hover,
+.ui.basic.buttons .button:active {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.basic.buttons .button.active,
+.ui.basic.buttons .button.active:hover {
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2) inset;
+}
+
+/*--------------
+ Labeled Icon
+---------------*/
+
+.ui.labeled.icon.buttons .button,
+.ui.labeled.icon.button {
+ position: relative;
+ padding-right: 4em !important;
+ padding-left: 1.4em !important;
+}
+
+.ui.labeled.icon.buttons > .button > .icon,
+.ui.labeled.icon.button > .icon {
+ position: absolute;
+ top: 0em;
+ right: 0em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 2.75em;
+ height: 100%;
+ padding-top: 0.8em;
+ background-color: rgba(0, 0, 0, 0.05);
+ text-align: center;
+ border-radius: 0px 0.25em 0.25em 0px;
+ line-height: 1;
+ -webkit-box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset;
+ box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset;
+}
+
+.ui.labeled.icon.buttons .button > .icon {
+ border-radius: 0em;
+}
+
+.ui.labeled.icon.buttons .button:first-child > .icon {
+ border-top-right-radius: 0.25em;
+ border-bottom-right-radius: 0.25em;
+}
+
+.ui.labeled.icon.buttons .button:last-child > .icon {
+ border-top-left-radius: 0.25em;
+ border-bottom-left-radius: 0.25em;
+}
+
+.ui.vertical.labeled.icon.buttons .button:first-child > .icon {
+ border-radius: 0em;
+ border-top-right-radius: 0.25em;
+}
+
+.ui.vertical.labeled.icon.buttons .button:last-child > .icon {
+ border-radius: 0em;
+ border-bottom-right-radius: 0.25em;
+}
+
+.ui.right.labeled.icon.button {
+ padding-right: 1.4em !important;
+ padding-left: 4em !important;
+}
+
+.ui.left.fluid.labeled.icon.button,
+.ui.right.fluid.labeled.icon.button {
+ padding-right: 1.4em !important;
+ padding-left: 1.4em !important;
+}
+
+.ui.right.labeled.icon.button .icon {
+ right: auto;
+ left: 0em;
+ border-radius: 0.25em 0em 0em 0.25em;
+ -webkit-box-shadow: 1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset;
+ box-shadow: 1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset;
+}
+
+/*--------------
+ Toggle
+---------------*/
+
+/* Toggle (Modifies active state to give affordances) */
+
+.ui.toggle.buttons .active.button,
+.ui.buttons .button.toggle.active,
+.ui.button.toggle.active {
+ background-color: #5BBD72 !important;
+ color: #FFFFFF !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.ui.button.toggle.active:hover {
+ background-color: #58CB73 !important;
+ color: #FFFFFF !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+/*--------------
+ Circular
+---------------*/
+
+.ui.circular.button {
+ border-radius: 10em;
+}
+
+/*--------------
+ Attached
+---------------*/
+
+.ui.attached.button {
+ display: block;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important;
+}
+
+.ui.attached.top.button {
+ border-radius: 0.25em 0.25em 0em 0em;
+}
+
+.ui.attached.bottom.button {
+ border-radius: 0em 0em 0.25em 0.25em;
+}
+
+.ui.attached.left.button {
+ display: inline-block;
+ border-right: none;
+ padding-left: 0.75em;
+ text-align: left;
+ border-radius: 0em 0.25em 0.25em 0em;
+}
+
+.ui.attached.right.button {
+ display: inline-block;
+ padding-right: 0.75em;
+ text-align: right;
+ border-radius: 0.25em 0em 0em 0.25em;
+}
+
+/*-------------------
+ Or Buttons
+--------------------*/
+
+.ui.buttons .or {
+ position: relative;
+ float: right;
+ width: 0.3em;
+ height: 1.1em;
+ z-index: 3;
+}
+
+.ui.buttons .or:before {
+ position: absolute;
+ top: 50%;
+ right: 50%;
+ content: 'or';
+ background-color: #FFFFFF;
+ margin-top: -0.1em;
+ margin-right: -0.9em;
+ width: 1.8em;
+ height: 1.8em;
+ line-height: 1.55;
+ color: #AAAAAA;
+ font-style: normal;
+ font-weight: normal;
+ text-align: center;
+ border-radius: 500px;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.buttons .or[data-text]:before {
+ content: attr(data-text);
+}
+
+.ui.buttons .or:after {
+ position: absolute;
+ top: 0em;
+ right: 0em;
+ content: ' ';
+ width: 0.3em;
+ height: 1.7em;
+ background-color: transparent;
+ border-top: 0.5em solid #FFFFFF;
+ border-bottom: 0.5em solid #FFFFFF;
+}
+
+/* Fluid Or */
+
+.ui.fluid.buttons .or {
+ width: 0em !important;
+}
+
+.ui.fluid.buttons .or:after {
+ display: none;
+}
+
+/*-------------------
+ Attached
+--------------------*/
+
+/* Plural Attached */
+
+.attached.ui.buttons {
+ margin: 0px;
+ border-radius: 4px 4px 0px 0px;
+}
+
+.attached.ui.buttons .button:first-child {
+ border-radius: 0px 4px 0px 0px;
+}
+
+.attached.ui.buttons .button:last-child {
+ border-radius: 4px 0px 0px 0px;
+}
+
+/* Bottom Side */
+
+.bottom.attached.ui.buttons {
+ margin-top: -1px;
+ border-radius: 0px 0px 4px 4px;
+}
+
+.bottom.attached.ui.buttons .button:first-child {
+ border-radius: 0px 0px 4px 0px;
+}
+
+.bottom.attached.ui.buttons .button:last-child {
+ border-radius: 0px 0px 0px 4px;
+}
+
+/* Left Side */
+
+.left.attached.ui.buttons {
+ margin-right: -1px;
+ border-radius: 4px 0px 0px 4px;
+}
+
+.left.attached.ui.buttons .button:first-child {
+ margin-right: -1px;
+ border-radius: 4px 0px 0px 0px;
+}
+
+.left.attached.ui.buttons .button:last-child {
+ margin-right: -1px;
+ border-radius: 0px 0px 0px 4px;
+}
+
+/* Right Side */
+
+.right.attached.ui.buttons,
+.right.attached.ui.buttons .button {
+ margin-left: -1px;
+ border-radius: 0px 4px 4px 0px;
+}
+
+.right.attached.ui.buttons .button:first-child {
+ margin-right: -1px;
+ border-radius: 0px 4px 0px 0px;
+}
+
+.right.attached.ui.buttons .button:last-child {
+ margin-right: -1px;
+ border-radius: 0px 0px 4px 0px;
+}
+
+/* Fluid */
+
+.ui.fluid.buttons,
+.ui.button.fluid,
+.ui.fluid.buttons > .button {
+ display: block;
+ width: 100%;
+}
+
+.ui.\32.buttons > .button,
+.ui.two.buttons > .button {
+ width: 50%;
+}
+
+.ui.\33.buttons > .button,
+.ui.three.buttons > .button {
+ width: 33.333%;
+}
+
+.ui.\34.buttons > .button,
+.ui.four.buttons > .button {
+ width: 25%;
+}
+
+.ui.\35.buttons > .button,
+.ui.five.buttons > .button {
+ width: 20%;
+}
+
+.ui.\36.buttons > .button,
+.ui.six.buttons > .button {
+ width: 16.666%;
+}
+
+.ui.\37.buttons > .button,
+.ui.seven.buttons > .button {
+ width: 14.285%;
+}
+
+.ui.\38.buttons > .button,
+.ui.eight.buttons > .button {
+ width: 12.500%;
+}
+
+.ui.\39.buttons > .button,
+.ui.nine.buttons > .button {
+ width: 11.11%;
+}
+
+.ui.\31\30.buttons > .button,
+.ui.ten.buttons > .button {
+ width: 10%;
+}
+
+.ui.\31\31.buttons > .button,
+.ui.eleven.buttons > .button {
+ width: 9.09%;
+}
+
+.ui.\31\32.buttons > .button,
+.ui.twelve.buttons > .button {
+ width: 8.3333%;
+}
+
+/* Fluid Vertical Buttons */
+
+.ui.fluid.vertical.buttons,
+.ui.fluid.vertical.buttons > .button {
+ display: block;
+ width: auto;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.\32.vertical.buttons > .button,
+.ui.two.vertical.buttons > .button {
+ height: 50%;
+}
+
+.ui.\33.vertical.buttons > .button,
+.ui.three.vertical.buttons > .button {
+ height: 33.333%;
+}
+
+.ui.\34.vertical.buttons > .button,
+.ui.four.vertical.buttons > .button {
+ height: 25%;
+}
+
+.ui.\35.vertical.buttons > .button,
+.ui.five.vertical.buttons > .button {
+ height: 20%;
+}
+
+.ui.\36.vertical.buttons > .button,
+.ui.six.vertical.buttons > .button {
+ height: 16.666%;
+}
+
+.ui.\37.vertical.buttons > .button,
+.ui.seven.vertical.buttons > .button {
+ height: 14.285%;
+}
+
+.ui.\38.vertical.buttons > .button,
+.ui.eight.vertical.buttons > .button {
+ height: 12.500%;
+}
+
+.ui.\39.vertical.buttons > .button,
+.ui.nine.vertical.buttons > .button {
+ height: 11.11%;
+}
+
+.ui.\31\30.vertical.buttons > .button,
+.ui.ten.vertical.buttons > .button {
+ height: 10%;
+}
+
+.ui.\31\31.vertical.buttons > .button,
+.ui.eleven.vertical.buttons > .button {
+ height: 9.09%;
+}
+
+.ui.\31\32.vertical.buttons > .button,
+.ui.twelve.vertical.buttons > .button {
+ height: 8.3333%;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+/*--- Black ---*/
+
+.ui.black.buttons .button,
+.ui.black.button {
+ background-color: #5C6166;
+ color: #FFFFFF;
+}
+
+.ui.black.buttons .button:hover,
+.ui.black.button:hover {
+ background-color: #4C4C4C;
+ color: #FFFFFF;
+}
+
+.ui.black.buttons .button:active,
+.ui.black.button:active {
+ background-color: #333333;
+ color: #FFFFFF;
+}
+
+/*--- Green ---*/
+
+.ui.green.buttons .button,
+.ui.green.button {
+ background-color: #5BBD72;
+ color: #FFFFFF;
+}
+
+.ui.green.buttons .button:hover,
+.ui.green.button:hover,
+.ui.green.buttons .active.button,
+.ui.green.button.active {
+ background-color: #58cb73;
+ color: #FFFFFF;
+}
+
+.ui.green.buttons .button:active,
+.ui.green.button:active {
+ background-color: #4CB164;
+ color: #FFFFFF;
+}
+
+/*--- Red ---*/
+
+.ui.red.buttons .button,
+.ui.red.button {
+ background-color: #D95C5C;
+ color: #FFFFFF;
+}
+
+.ui.red.buttons .button:hover,
+.ui.red.button:hover,
+.ui.red.buttons .active.button,
+.ui.red.button.active {
+ background-color: #E75859;
+ color: #FFFFFF;
+}
+
+.ui.red.buttons .button:active,
+.ui.red.button:active {
+ background-color: #D24B4C;
+ color: #FFFFFF;
+}
+
+/*--- Orange ---*/
+
+.ui.orange.buttons .button,
+.ui.orange.button {
+ background-color: #E96633;
+ color: #FFFFFF;
+}
+
+.ui.orange.buttons .button:hover,
+.ui.orange.button:hover,
+.ui.orange.buttons .active.button,
+.ui.orange.button.active {
+ background-color: #FF7038;
+ color: #FFFFFF;
+}
+
+.ui.orange.buttons .button:active,
+.ui.orange.button:active {
+ background-color: #DA683B;
+ color: #FFFFFF;
+}
+
+/*--- Blue ---*/
+
+.ui.blue.buttons .button,
+.ui.blue.button {
+ background-color: #6ECFF5;
+ color: #FFFFFF;
+}
+
+.ui.blue.buttons .button:hover,
+.ui.blue.button:hover,
+.ui.blue.buttons .active.button,
+.ui.blue.button.active {
+ background-color: #1AB8F3;
+ color: #FFFFFF;
+}
+
+.ui.blue.buttons .button:active,
+.ui.blue.button:active {
+ background-color: #0AA5DF;
+ color: #FFFFFF;
+}
+
+/*--- Purple ---*/
+
+.ui.purple.buttons .button,
+.ui.purple.button {
+ background-color: #564F8A;
+ color: #FFFFFF;
+}
+
+.ui.purple.buttons .button:hover,
+.ui.purple.button:hover,
+.ui.purple.buttons .active.button,
+.ui.purple.button.active {
+ background-color: #3E3773;
+ color: #FFFFFF;
+}
+
+.ui.purple.buttons .button:active,
+.ui.purple.button:active {
+ background-color: #2E2860;
+ color: #FFFFFF;
+}
+
+/*--- Teal ---*/
+
+.ui.teal.buttons .button,
+.ui.teal.button {
+ background-color: #00B5AD;
+ color: #FFFFFF;
+}
+
+.ui.teal.buttons .button:hover,
+.ui.teal.button:hover,
+.ui.teal.buttons .active.button,
+.ui.teal.button.active {
+ background-color: #009A93;
+ color: #FFFFFF;
+}
+
+.ui.teal.buttons .button:active,
+.ui.teal.button:active {
+ background-color: #00847E;
+ color: #FFFFFF;
+}
+
+/*---------------
+ Positive
+----------------*/
+
+.ui.positive.buttons .button,
+.ui.positive.button {
+ background-color: #5BBD72 !important;
+ color: #FFFFFF;
+}
+
+.ui.positive.buttons .button:hover,
+.ui.positive.button:hover,
+.ui.positive.buttons .active.button,
+.ui.positive.button.active {
+ background-color: #58CB73 !important;
+ color: #FFFFFF;
+}
+
+.ui.positive.buttons .button:active,
+.ui.positive.button:active {
+ background-color: #4CB164 !important;
+ color: #FFFFFF;
+}
+
+/*---------------
+ Negative
+----------------*/
+
+.ui.negative.buttons .button,
+.ui.negative.button {
+ background-color: #D95C5C !important;
+ color: #FFFFFF;
+}
+
+.ui.negative.buttons .button:hover,
+.ui.negative.button:hover,
+.ui.negative.buttons .active.button,
+.ui.negative.button.active {
+ background-color: #E75859 !important;
+ color: #FFFFFF;
+}
+
+.ui.negative.buttons .button:active,
+.ui.negative.button:active {
+ background-color: #D24B4C !important;
+ color: #FFFFFF;
+}
+
+/*******************************
+ Groups
+*******************************/
+
+.ui.buttons {
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.ui.buttons:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+.ui.buttons .button:first-child {
+ border-right: none;
+}
+
+.ui.buttons .button {
+ float: right;
+ border-radius: 0em;
+}
+
+.ui.buttons .button:first-child {
+ margin-right: 0em;
+ border-top-right-radius: 0.25em;
+ border-bottom-right-radius: 0.25em;
+}
+
+.ui.buttons .button:last-child {
+ border-top-left-radius: 0.25em;
+ border-bottom-left-radius: 0.25em;
+}
+
+/* Vertical Style */
+
+.ui.vertical.buttons {
+ display: inline-block;
+}
+
+.ui.vertical.buttons .button {
+ display: block;
+ float: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.vertical.buttons .button:first-child,
+.ui.vertical.buttons .mini.button:first-child,
+.ui.vertical.buttons .tiny.button:first-child,
+.ui.vertical.buttons .small.button:first-child,
+.ui.vertical.buttons .massive.button:first-child,
+.ui.vertical.buttons .huge.button:first-child {
+ margin-top: 0px;
+ border-radius: 0.25em 0.25em 0px 0px;
+}
+
+.ui.vertical.buttons .button:last-child,
+.ui.vertical.buttons .mini.button:last-child,
+.ui.vertical.buttons .tiny.button:last-child,
+.ui.vertical.buttons .small.button:last-child,
+.ui.vertical.buttons .massive.button:last-child,
+.ui.vertical.buttons .huge.button:last-child,
+.ui.vertical.buttons .gigantic.button:last-child {
+ border-radius: 0px 0px 0.25em 0.25em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/elements/divider.less b/css/semantic/rtl/less/elements/divider.less
new file mode 100644
index 0000000..d243da2
--- /dev/null
+++ b/css/semantic/rtl/less/elements/divider.less
@@ -0,0 +1,181 @@
+/*
+ * # Semantic - Divider
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Divider
+*******************************/
+
+.ui.divider {
+ margin: 1rem 0rem;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ border-bottom: 1px solid rgba(255, 255, 255, 0.8);
+ line-height: 1;
+ height: 0em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+
+.ui.vertical.divider,
+.ui.horizontal.divider {
+ position: absolute;
+ border: none;
+ height: 0em;
+ margin: 0em;
+ background-color: transparent;
+ font-size: 0.875rem;
+ font-weight: bold;
+ text-align: center;
+ text-transform: uppercase;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--------------
+ Vertical
+---------------*/
+
+.ui.vertical.divider {
+ position: absolute;
+ z-index: 2;
+ top: 50%;
+ right: 50%;
+ margin: 0% -3% 0% 0%;
+ width: 6%;
+ height: 50%;
+ line-height: 0;
+ padding: 0em;
+}
+
+.ui.vertical.divider:before,
+.ui.vertical.divider:after {
+ position: absolute;
+ right: 50%;
+ content: " ";
+ z-index: 3;
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
+ border-left: 1px solid rgba(255, 255, 255, 0.8);
+ width: 0%;
+ height: 80%;
+}
+
+.ui.vertical.divider:before {
+ top: -100%;
+}
+
+.ui.vertical.divider:after {
+ top: auto;
+ bottom: 0px;
+}
+
+/*--------------
+ Horizontal
+---------------*/
+
+.ui.horizontal.divider {
+ position: relative;
+ top: 0%;
+ right: 0%;
+ margin: 1rem 1.5rem;
+ height: auto;
+ padding: 0em;
+ line-height: 1;
+}
+
+.ui.horizontal.divider:before,
+.ui.horizontal.divider:after {
+ position: absolute;
+ top: 50%;
+ content: " ";
+ z-index: 3;
+ width: 50%;
+ top: 50%;
+ height: 0%;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ border-bottom: 1px solid rgba(255, 255, 255, 0.8);
+}
+
+.ui.horizontal.divider:before {
+ right: 0%;
+ margin-right: -1.5rem;
+}
+
+.ui.horizontal.divider:after {
+ right: auto;
+ left: 0%;
+ margin-left: -1.5rem;
+}
+
+/*--------------
+ Icon
+---------------*/
+
+.ui.divider > .icon {
+ margin: 0em;
+ font-size: 1rem;
+ vertical-align: middle;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.divider.inverted {
+ color: rgba(255, 255, 255, 1);
+}
+
+.ui.vertical.inverted.divider,
+.ui.horizontal.inverted.divider {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.divider.inverted,
+.ui.divider.inverted:after,
+.ui.divider.inverted:before {
+ border-top-color: rgba(0, 0, 0, 0.15);
+ border-bottom-color: rgba(255, 255, 255, 0.15);
+ border-right-color: rgba(0, 0, 0, 0.15);
+ border-left-color: rgba(255, 255, 255, 0.15);
+}
+
+/*--------------
+ Fitted
+---------------*/
+
+.ui.fitted.divider {
+ margin: 0em;
+}
+
+/*--------------
+ Clearing
+---------------*/
+
+.ui.clearing.divider {
+ clear: both;
+}
+
+/*--------------
+ Section
+---------------*/
+
+.ui.section.divider {
+ margin-top: 2rem;
+ margin-bottom: 2rem;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/elements/header.less b/css/semantic/rtl/less/elements/header.less
new file mode 100644
index 0000000..bb6d865
--- /dev/null
+++ b/css/semantic/rtl/less/elements/header.less
@@ -0,0 +1,376 @@
+/*
+ * # Semantic - Header
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Header
+*******************************/
+
+/* Standard */
+
+.ui.header {
+ border: none;
+ margin: 1em 0em 1rem;
+ padding: 0em;
+ font-size: 1.33em;
+ font-weight: bold;
+ line-height: 1.33;
+}
+
+.ui.header .sub.header {
+ font-size: 1rem;
+ font-weight: normal;
+ margin: 0em;
+ padding: 0em;
+ line-height: 1.2;
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.header .icon {
+ display: table-cell;
+ vertical-align: middle;
+ padding-left: 0.5em;
+}
+
+.ui.header .icon:only-child {
+ display: inline-block;
+ vertical-align: baseline;
+}
+
+.ui.header .content {
+ display: inline-block;
+ vertical-align: top;
+}
+
+.ui.header .icon + .content {
+ padding-right: 0.5em;
+ display: table-cell;
+}
+
+/* Positioning */
+
+.ui.header:first-child {
+ margin-top: 0em;
+}
+
+.ui.header:last-child {
+ margin-bottom: 0em;
+}
+
+.ui.header + p {
+ margin-top: 0em;
+}
+
+/*--------------
+ Page Heading
+---------------*/
+
+h1.ui.header {
+ min-height: 1rem;
+ line-height: 1.33;
+ font-size: 2rem;
+}
+
+h2.ui.header {
+ line-height: 1.33;
+ font-size: 1.75rem;
+}
+
+h3.ui.header {
+ line-height: 1.33;
+ font-size: 1.33rem;
+}
+
+h4.ui.header {
+ line-height: 1.33;
+ font-size: 1.1rem;
+}
+
+h5.ui.header {
+ line-height: 1.2;
+ font-size: 1rem;
+}
+
+/*--------------
+ Content Heading
+---------------*/
+
+.ui.huge.header {
+ min-height: 1em;
+ font-size: 2em;
+}
+
+.ui.large.header {
+ font-size: 1.75em;
+}
+
+.ui.medium.header {
+ font-size: 1.33em;
+}
+
+.ui.small.header {
+ font-size: 1.1em;
+}
+
+.ui.tiny.header {
+ font-size: 1em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Icon
+--------------------*/
+
+.ui.icon.header {
+ display: inline-block;
+ text-align: center;
+}
+
+.ui.icon.header .icon {
+ float: none;
+ display: block;
+ font-size: 3em;
+ margin: 0em auto 0.2em;
+ padding: 0em;
+}
+
+.ui.icon.header .content {
+ display: block;
+}
+
+.ui.icon.header .circular.icon,
+.ui.icon.header .square.icon {
+ font-size: 2em;
+}
+
+.ui.block.icon.header .icon {
+ margin-bottom: 0em;
+}
+
+.ui.icon.header.aligned {
+ margin-right: auto;
+ margin-left: auto;
+ display: block;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.disabled.header {
+ opacity: 0.5;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Colors
+--------------------*/
+
+.ui.blue.header {
+ color: #6ECFF5 !important;
+}
+
+.ui.black.header {
+ color: #5C6166 !important;
+}
+
+.ui.green.header {
+ color: #A1CF64 !important;
+}
+
+.ui.red.header {
+ color: #D95C5C !important;
+}
+
+.ui.purple.header {
+ color: #564F8A !important;
+}
+
+.ui.teal.header {
+ color: #00B5AD !important;
+}
+
+.ui.blue.dividing.header {
+ border-bottom: 3px solid #6ECFF5;
+}
+
+.ui.black.dividing.header {
+ border-bottom: 3px solid #5C6166;
+}
+
+.ui.green.dividing.header {
+ border-bottom: 3px solid #A1CF64;
+}
+
+.ui.red.dividing.header {
+ border-bottom: 3px solid #D95C5C;
+}
+
+.ui.purple.dividing.header {
+ border-bottom: 3px solid #564F8A;
+}
+
+.ui.teal.dividing.header {
+ border-bottom: 3px solid #00B5AD;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.inverted.header {
+ color: #FFFFFF;
+}
+
+.ui.inverted.header .sub.header {
+ color: rgba(255, 255, 255, 0.85);
+}
+
+/*-------------------
+ Inverted Colors
+--------------------*/
+
+.ui.inverted.black.header {
+ background-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.blue.header {
+ background-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.green.header {
+ background-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.red.header {
+ background-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.purple.header {
+ background-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.teal.header {
+ background-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.block.header {
+ border-bottom: none;
+}
+
+/*-------------------
+ Aligned
+--------------------*/
+
+.ui.left.aligned.header {
+ text-align: right;
+}
+
+.ui.right.aligned.header {
+ text-align: left;
+}
+
+.ui.center.aligned.header {
+ text-align: center;
+}
+
+.ui.justified.header {
+ text-align: justify;
+}
+
+.ui.justified.header:after {
+ display: inline-block;
+ content: '';
+ width: 100%;
+}
+
+/*-------------------
+ Floated
+--------------------*/
+
+.ui.floated.header,
+.ui.left.floated.header {
+ float: right;
+ margin-top: 0em;
+ margin-left: 0.5em;
+}
+
+.ui.right.floated.header {
+ float: left;
+ margin-top: 0em;
+ margin-right: 0.5em;
+}
+
+/*-------------------
+ Fittted
+--------------------*/
+
+.ui.fitted.header {
+ padding: 0em;
+}
+
+/*-------------------
+ Dividing
+--------------------*/
+
+.ui.dividing.header {
+ padding-bottom: 0.2rem;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+.ui.dividing.header .sub.header {
+ padding-bottom: 0.5em;
+}
+
+.ui.dividing.header .icon {
+ margin-bottom: 0.2em;
+}
+
+/*-------------------
+ Block
+--------------------*/
+
+.ui.block.header {
+ background-color: rgba(0, 0, 0, 0.05);
+ padding: 0.5em 1em;
+}
+
+/*-------------------
+ Attached
+--------------------*/
+
+.ui.attached.header {
+ background-color: #E0E0E0;
+ padding: 0.5em 1rem;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.top.attached.header {
+ margin-bottom: 0em;
+ border-radius: 0.3125em 0.3125em 0em 0em;
+}
+
+.ui.bottom.attached.header {
+ margin-top: 0em;
+ border-radius: 0em 0em 0.3125em 0.3125em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/elements/icon.less b/css/semantic/rtl/less/elements/icon.less
new file mode 100644
index 0000000..7d33a63
--- /dev/null
+++ b/css/semantic/rtl/less/elements/icon.less
@@ -0,0 +1,1856 @@
+/*
+ * # Semantic - Icon
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*!
+ * Font Awesome 3.2.1
+ * the iconic font designed for Bootstrap
+ * ------------------------------------------------------------------------------
+ * The full suite of pictographic icons, examples, and documentation can be
+ * found at http://fon.io. Stay up to date on Twitter at
+ * http://twitter.com/fon.
+ *
+ * License
+ * ------------------------------------------------------------------------------
+ * - The Font Awesome font is licensed under SIL OFL 1.1 -
+ * http://scripts.sil.org/OFL
+
+/*******************************
+ Icon
+*******************************/
+
+@font-face {
+ font-family: 'Icons';
+ src: url(../fonts/icons.eot);
+ src: url(../fonts/icons.eot?#iefix) format('embedded-opentype'),
+ url(../fonts/icons.svg#icons) format('svg'),
+ url(../fonts/icons.woff) format('woff'),
+ url(../fonts/icons.ttf) format('truetype');
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-decoration: inherit;
+ text-transform: none;
+}
+
+i.icon {
+ display: inline-block;
+ opacity: 0.75;
+ margin: 0em 0em 0em 0.25em;
+ width: 1.23em;
+ height: 1em;
+ font-family: 'Icons';
+ font-style: normal;
+ line-height: 1;
+ font-weight: normal;
+ text-decoration: inherit;
+ text-align: center;
+ speak: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+i.icon.left:before {
+ content: "\f060";
+}
+
+i.icon.right:before {
+ content: "\f061";
+}
+
+i.icon.add.sign.box:before {
+ content: "\f0fe";
+}
+
+i.icon.add.sign:before {
+ content: "\f055";
+}
+
+i.icon.add:before {
+ content: "\f067";
+}
+
+i.icon.adjust:before {
+ content: "\f042";
+}
+
+i.icon.adn:before {
+ content: "\f170";
+}
+
+i.icon.align.center:before {
+ content: "\f037";
+}
+
+i.icon.align.justify:before {
+ content: "\f039";
+}
+
+i.icon.align.left:before {
+ content: "\f036";
+}
+
+i.icon.align.right:before {
+ content: "\f038";
+}
+
+i.icon.ambulance:before {
+ content: "\f0f9";
+}
+
+i.icon.anchor:before {
+ content: "\f13d";
+}
+
+i.icon.android:before {
+ content: "\f17b";
+}
+
+i.icon.angle.down:before {
+ content: "\f107";
+}
+
+i.icon.angle.left:before {
+ content: "\f104";
+}
+
+i.icon.angle.right:before {
+ content: "\f105";
+}
+
+i.icon.angle.up:before {
+ content: "\f106";
+}
+
+i.icon.apple:before {
+ content: "\f179";
+}
+
+i.icon.archive:before {
+ content: "\f187";
+}
+
+i.icon.arrow.down:before {
+ content: "\f078";
+}
+
+i.icon.arrow.left:before {
+ content: "\f053";
+}
+
+i.icon.arrow.right:before {
+ content: "\f054";
+}
+
+i.icon.arrow.sign.down:before {
+ content: "\f13a";
+}
+
+i.icon.arrow.sign.left:before {
+ content: "\f137";
+}
+
+i.icon.arrow.sign.right:before {
+ content: "\f138";
+}
+
+i.icon.arrow.sign.up:before {
+ content: "\f139";
+}
+
+i.icon.arrow.up:before {
+ content: "\f077";
+}
+
+i.icon.asterisk:before {
+ content: "\f069";
+}
+
+i.icon.attachment:before {
+ content: "\f0c6";
+}
+
+i.icon.attention:before {
+ content: "\f06a";
+}
+
+i.icon.backward:before {
+ content: "\f04a";
+}
+
+i.icon.ban.circle:before {
+ content: "\f05e";
+}
+
+i.icon.bar.chart:before {
+ content: "\f080";
+}
+
+i.icon.barcode:before {
+ content: "\f02a";
+}
+
+i.icon.beer:before {
+ content: "\f0fc";
+}
+
+i.icon.bell.outline:before {
+ content: "\f0a2";
+}
+
+i.icon.bell:before {
+ content: "\f0f3";
+}
+
+i.icon.bitbucket.sign:before {
+ content: "\f172";
+}
+
+i.icon.bitbucket:before {
+ content: "\f171";
+}
+
+i.icon.bitcoin:before {
+ content: "\f15a";
+}
+
+i.icon.bold:before {
+ content: "\f032";
+}
+
+i.icon.bolt:before {
+ content: "\f0e7";
+}
+
+i.icon.book:before {
+ content: "\f02d";
+}
+
+i.icon.bookmark.empty:before {
+ content: "\f097";
+}
+
+i.icon.bookmark:before {
+ content: "\f02e";
+}
+
+i.icon.box.arrow.down:before {
+ content: "\f150";
+}
+
+/*rtl:ignore*/
+
+i.icon.box.arrow.right:before {
+ content: "\f152";
+}
+
+i.icon.box.arrow.up:before {
+ content: "\f151";
+}
+
+i.icon.briefcase:before {
+ content: "\f0b1";
+}
+
+i.icon.browser:before {
+ content: "\f022";
+}
+
+i.icon.bug:before {
+ content: "\f188";
+}
+
+i.icon.building:before {
+ content: "\f0f7";
+}
+
+i.icon.bullhorn:before {
+ content: "\f0a1";
+}
+
+i.icon.bullseye:before {
+ content: "\f140";
+}
+
+i.icon.calendar.empty:before {
+ content: "\f133";
+}
+
+i.icon.calendar:before {
+ content: "\f073";
+}
+
+i.icon.camera.retro:before {
+ content: "\f083";
+}
+
+i.icon.camera:before {
+ content: "\f030";
+}
+
+i.icon.triangle.down:before {
+ content: "\f0d7";
+}
+
+i.icon.triangle.left:before {
+ content: "\f0d9";
+}
+
+i.icon.triangle.right:before {
+ content: "\f0da";
+}
+
+i.icon.triangle.up:before {
+ content: "\f0d8";
+}
+
+i.icon.cart:before {
+ content: "\f07a";
+}
+
+i.icon.certificate:before {
+ content: "\f0a3";
+}
+
+i.icon.chat.outline:before {
+ content: "\f0e6";
+}
+
+i.icon.chat:before {
+ content: "\f086";
+}
+
+i.icon.checkbox.empty:before {
+ content: "\f096";
+}
+
+i.icon.checkbox.minus:before {
+ content: "\f147";
+}
+
+i.icon.checked.checkbox:before {
+ content: "\f046";
+}
+
+i.icon.checkmark.sign:before {
+ content: "\f14a";
+}
+
+i.icon.checkmark:before {
+ content: "\f00c";
+}
+
+i.icon.circle.blank:before {
+ content: "\f10c";
+}
+
+i.icon.circle.down:before {
+ content: "\f0ab";
+}
+
+i.icon.circle.left:before {
+ content: "\f0a8";
+}
+
+i.icon.circle.right:before {
+ content: "\f0a9";
+}
+
+i.icon.circle.up:before {
+ content: "\f0aa";
+}
+
+i.icon.circle:before {
+ content: "\f111";
+}
+
+i.icon.cloud.download:before {
+ content: "\f0ed";
+}
+
+i.icon.cloud.upload:before {
+ content: "\f0ee";
+}
+
+i.icon.cloud:before {
+ content: "\f0c2";
+}
+
+i.icon.code.fork:before {
+ content: "\f126";
+}
+
+i.icon.code:before {
+ content: "\f121";
+}
+
+i.icon.coffee:before {
+ content: "\f0f4";
+}
+
+i.icon.collapse:before {
+ content: "\f117";
+}
+
+i.icon.comment.outline:before {
+ content: "\f0e5";
+}
+
+i.icon.comment:before {
+ content: "\f075";
+}
+
+i.icon.copy:before {
+ content: "\f0c5";
+}
+
+i.icon.crop:before {
+ content: "\f125";
+}
+
+i.icon.css3:before {
+ content: "\f13c";
+}
+
+i.icon.cut:before {
+ content: "\f0c4";
+}
+
+i.icon.dashboard:before {
+ content: "\f0e4";
+}
+
+i.icon.desktop:before {
+ content: "\f108";
+}
+
+i.icon.doctor:before {
+ content: "\f0f0";
+}
+
+i.icon.dollar:before {
+ content: "\f155";
+}
+
+i.icon.double.angle.down:before {
+ content: "\f103";
+}
+
+i.icon.double.angle.left:before {
+ content: "\f100";
+}
+
+i.icon.double.angle.right:before {
+ content: "\f101";
+}
+
+i.icon.double.angle.up:before {
+ content: "\f102";
+}
+
+i.icon.down:before {
+ content: "\f063";
+}
+
+i.icon.download.disk:before {
+ content: "\f019";
+}
+
+i.icon.download:before {
+ content: "\f01a";
+}
+
+i.icon.dribbble:before {
+ content: "\f17d";
+}
+
+i.icon.dropbox:before {
+ content: "\f16b";
+}
+
+i.icon.edit.sign:before {
+ content: "\f14b";
+}
+
+i.icon.edit:before {
+ content: "\f044";
+}
+
+i.icon.eject:before {
+ content: "\f052";
+}
+
+i.icon.ellipsis.horizontal:before {
+ content: "\f141";
+}
+
+i.icon.ellipsis.vertical:before {
+ content: "\f142";
+}
+
+i.icon.eraser:before {
+ content: "\f12d";
+}
+
+i.icon.euro:before {
+ content: "\f153";
+}
+
+i.icon.exchange:before {
+ content: "\f0ec";
+}
+
+i.icon.exclamation:before {
+ content: "\f12a";
+}
+
+i.icon.expand:before {
+ content: "\f116";
+}
+
+i.icon.external.url.sign:before {
+ content: "\f14c";
+}
+
+i.icon.external.url:before {
+ content: "\f08e";
+}
+
+i.icon.facebook.sign:before {
+ content: "\f082";
+}
+
+i.icon.facebook:before {
+ content: "\f09a";
+}
+
+i.icon.facetime.video:before {
+ content: "\f03d";
+}
+
+i.icon.fast.backward:before {
+ content: "\f049";
+}
+
+i.icon.fast.forward:before {
+ content: "\f050";
+}
+
+i.icon.female:before {
+ content: "\f182";
+}
+
+i.icon.fighter.jet:before {
+ content: "\f0fb";
+}
+
+i.icon.file.outline:before {
+ content: "\f016";
+}
+
+i.icon.file.text.outline:before {
+ content: "\f0f6";
+}
+
+i.icon.file.text:before {
+ content: "\f15c";
+}
+
+i.icon.file:before {
+ content: "\f15b";
+}
+
+i.icon.filter:before {
+ content: "\f0b0";
+}
+
+i.icon.fire.extinguisher:before {
+ content: "\f134";
+}
+
+i.icon.fire:before {
+ content: "\f06d";
+}
+
+i.icon.flag.checkered:before {
+ content: "\f11e";
+}
+
+i.icon.flag.empty:before {
+ content: "\f11d";
+}
+
+i.icon.flag:before {
+ content: "\f024";
+}
+
+i.icon.flickr:before {
+ content: "\f16e";
+}
+
+i.icon.folder.open.outline:before {
+ content: "\f115";
+}
+
+i.icon.folder.open:before {
+ content: "\f07c";
+}
+
+i.icon.folder.outline:before {
+ content: "\f114";
+}
+
+i.icon.folder:before {
+ content: "\f07b";
+}
+
+i.icon.font:before {
+ content: "\f031";
+}
+
+i.icon.food:before {
+ content: "\f0f5";
+}
+
+i.icon.forward.mail:before {
+ content: "\f064";
+}
+
+i.icon.forward:before {
+ content: "\f04e";
+}
+
+i.icon.foursquare:before {
+ content: "\f180";
+}
+
+i.icon.frown:before {
+ content: "\f119";
+}
+
+i.icon.fullscreen:before {
+ content: "\f0b2";
+}
+
+i.icon.gamepad:before {
+ content: "\f11b";
+}
+
+i.icon.gift:before {
+ content: "\f06b";
+}
+
+i.icon.github.alternate:before {
+ content: "\f09b";
+}
+
+i.icon.github.sign:before {
+ content: "\f092";
+}
+
+i.icon.github:before {
+ content: "\f113";
+}
+
+i.icon.gittip:before {
+ content: "\f184";
+}
+
+i.icon.glass:before {
+ content: "\f000";
+}
+
+i.icon.globe:before {
+ content: "\f0ac";
+}
+
+i.icon.google.plus.sign:before {
+ content: "\f0d4";
+}
+
+i.icon.google.plus:before {
+ content: "\f0d5";
+}
+
+i.icon.h.sign:before {
+ content: "\f0fd";
+}
+
+i.icon.hand.down:before {
+ content: "\f0a7";
+}
+
+i.icon.hand.left:before {
+ content: "\f0a5";
+}
+
+i.icon.hand.right:before {
+ content: "\f0a4";
+}
+
+i.icon.hand.up:before {
+ content: "\f0a6";
+}
+
+i.icon.hdd:before {
+ content: "\f0a0";
+}
+
+i.icon.headphones:before {
+ content: "\f025";
+}
+
+i.icon.heart.empty:before {
+ content: "\f08a";
+}
+
+i.icon.heart:before {
+ content: "\f004";
+}
+
+i.icon.help:before {
+ content: "\f059";
+}
+
+i.icon.hide:before {
+ content: "\f070";
+}
+
+i.icon.home:before {
+ content: "\f015";
+}
+
+i.icon.hospital:before {
+ content: "\f0f8";
+}
+
+i.icon.html5:before {
+ content: "\f13b";
+}
+
+i.icon.inbox:before {
+ content: "\f01c";
+}
+
+i.icon.indent.left:before {
+ content: "\f03b";
+}
+
+i.icon.indent.right:before {
+ content: "\f03c";
+}
+
+i.icon.info.letter:before {
+ content: "\f129";
+}
+
+i.icon.info:before {
+ content: "\f05a";
+}
+
+i.icon.instagram:before {
+ content: "\f16d";
+}
+
+i.icon.italic:before {
+ content: "\f033";
+}
+
+i.icon.key:before {
+ content: "\f084";
+}
+
+i.icon.keyboard:before {
+ content: "\f11c";
+}
+
+i.icon.lab:before {
+ content: "\f0c3";
+}
+
+i.icon.laptop:before {
+ content: "\f109";
+}
+
+i.icon.layout.block:before {
+ content: "\f009";
+}
+
+i.icon.layout.column:before {
+ content: "\f0db";
+}
+
+i.icon.layout.grid:before {
+ content: "\f00a";
+}
+
+i.icon.layout.list:before {
+ content: "\f00b";
+}
+
+i.icon.leaf:before {
+ content: "\f06c";
+}
+
+i.icon.legal:before {
+ content: "\f0e3";
+}
+
+i.icon.lemon:before {
+ content: "\f094";
+}
+
+i.icon.level.down:before {
+ content: "\f149";
+}
+
+i.icon.level.up:before {
+ content: "\f148";
+}
+
+i.icon.lightbulb:before {
+ content: "\f0eb";
+}
+
+i.icon.linkedin.sign:before {
+ content: "\f08c";
+}
+
+i.icon.linkedin:before {
+ content: "\f0e1";
+}
+
+i.icon.linux:before {
+ content: "\f17c";
+}
+
+i.icon.list.ordered:before {
+ content: "\f0cb";
+}
+
+i.icon.list.unordered:before {
+ content: "\f0ca";
+}
+
+i.icon.list:before {
+ content: "\f03a";
+}
+
+i.icon.loading:before {
+ content: "\f110";
+}
+
+i.icon.location:before {
+ content: "\f124";
+}
+
+i.icon.lock:before {
+ content: "\f023";
+}
+
+i.icon.long.arrow.down:before {
+ content: "\f175";
+}
+
+i.icon.long.arrow.left:before {
+ content: "\f177";
+}
+
+i.icon.long.arrow.right:before {
+ content: "\f178";
+}
+
+i.icon.long.arrow.up:before {
+ content: "\f176";
+}
+
+i.icon.magic:before {
+ content: "\f0d0";
+}
+
+i.icon.magnet:before {
+ content: "\f076";
+}
+
+i.icon.mail.outline:before {
+ content: "\f003";
+}
+
+i.icon.mail.reply:before {
+ content: "\f112";
+}
+
+i.icon.mail:before {
+ content: "\f0e0";
+}
+
+i.icon.male:before {
+ content: "\f183";
+}
+
+i.icon.map.marker:before {
+ content: "\f041";
+}
+
+i.icon.map:before {
+ content: "\f14e";
+}
+
+i.icon.maxcdn:before {
+ content: "\f136";
+}
+
+i.icon.medkit:before {
+ content: "\f0fa";
+}
+
+i.icon.meh:before {
+ content: "\f11a";
+}
+
+i.icon.minus.sign.alternate:before {
+ content: "\f146";
+}
+
+i.icon.minus.sign:before {
+ content: "\f056";
+}
+
+i.icon.minus:before {
+ content: "\f068";
+}
+
+i.icon.mobile:before {
+ content: "\f10b";
+}
+
+i.icon.money:before {
+ content: "\f0d6";
+}
+
+i.icon.moon:before {
+ content: "\f186";
+}
+
+i.icon.move:before {
+ content: "\f047";
+}
+
+i.icon.music:before {
+ content: "\f001";
+}
+
+i.icon.mute:before {
+ content: "\f131";
+}
+
+i.icon.off:before {
+ content: "\f011";
+}
+
+i.icon.ok.circle:before {
+ content: "\f05d";
+}
+
+i.icon.ok.sign:before {
+ content: "\f058";
+}
+
+i.icon.paste:before {
+ content: "\f0ea";
+}
+
+i.icon.pause:before {
+ content: "\f04c";
+}
+
+i.icon.payment:before {
+ content: "\f09d";
+}
+
+i.icon.pencil:before {
+ content: "\f040";
+}
+
+i.icon.phone.sign:before {
+ content: "\f098";
+}
+
+i.icon.phone:before {
+ content: "\f095";
+}
+
+i.icon.photo:before {
+ content: "\f03e";
+}
+
+i.icon.pin:before {
+ content: "\f08d";
+}
+
+i.icon.pinterest.sign:before {
+ content: "\f0d3";
+}
+
+i.icon.pinterest:before {
+ content: "\f0d2";
+}
+
+i.icon.plane:before {
+ content: "\f072";
+}
+
+i.icon.play.circle:before {
+ content: "\f01d";
+}
+
+i.icon.play.sign:before {
+ content: "\f144";
+}
+
+i.icon.play:before {
+ content: "\f04b";
+}
+
+i.icon.pound:before {
+ content: "\f154";
+}
+
+i.icon.print:before {
+ content: "\f02f";
+}
+
+i.icon.puzzle.piece:before {
+ content: "\f12e";
+}
+
+i.icon.qr.code:before {
+ content: "\f029";
+}
+
+i.icon.question:before {
+ content: "\f128";
+}
+
+i.icon.quote.left:before {
+ content: "\f10d";
+}
+
+i.icon.quote.right:before {
+ content: "\f10e";
+}
+
+i.icon.refresh:before {
+ content: "\f021";
+}
+
+i.icon.remove.circle:before {
+ content: "\f05c";
+}
+
+i.icon.remove.sign:before {
+ content: "\f057";
+}
+
+i.icon.remove:before {
+ content: "\f00d";
+}
+
+i.icon.renren:before {
+ content: "\f18b";
+}
+
+i.icon.reorder:before {
+ content: "\f0c9";
+}
+
+i.icon.repeat:before {
+ content: "\f01e";
+}
+
+i.icon.reply.all.mail:before {
+ content: "\f122";
+}
+
+i.icon.resize.full:before {
+ content: "\f065";
+}
+
+i.icon.resize.horizontal:before {
+ content: "\f07e";
+}
+
+i.icon.resize.small:before {
+ content: "\f066";
+}
+
+i.icon.resize.vertical:before {
+ content: "\f07d";
+}
+
+i.icon.retweet:before {
+ content: "\f079";
+}
+
+i.icon.road:before {
+ content: "\f018";
+}
+
+i.icon.rocket:before {
+ content: "\f135";
+}
+
+i.icon.rss.sign:before {
+ content: "\f143";
+}
+
+i.icon.rss:before {
+ content: "\f09e";
+}
+
+i.icon.rupee:before {
+ content: "\f156";
+}
+
+i.icon.save:before {
+ content: "\f0c7";
+}
+
+i.icon.screenshot:before {
+ content: "\f05b";
+}
+
+i.icon.search:before {
+ content: "\f002";
+}
+
+i.icon.setting:before {
+ content: "\f013";
+}
+
+i.icon.settings:before {
+ content: "\f085";
+}
+
+i.icon.share.sign:before {
+ content: "\f14d";
+}
+
+i.icon.share:before {
+ content: "\f045";
+}
+
+i.icon.shield:before {
+ content: "\f132";
+}
+
+i.icon.shuffle:before {
+ content: "\f074";
+}
+
+i.icon.sign.in:before {
+ content: "\f090";
+}
+
+i.icon.sign.out:before {
+ content: "\f08b";
+}
+
+i.icon.sign:before {
+ content: "\f0c8";
+}
+
+i.icon.signal:before {
+ content: "\f012";
+}
+
+i.icon.sitemap:before {
+ content: "\f0e8";
+}
+
+i.icon.skype:before {
+ content: "\f17e";
+}
+
+i.icon.smile:before {
+ content: "\f118";
+}
+
+i.icon.sort.ascending:before {
+ content: "\f0de";
+}
+
+i.icon.sort.descending:before {
+ content: "\f0dd";
+}
+
+i.icon.sort.alphabet.descending:before {
+ content: "\f15e";
+}
+
+i.icon.sort.alphabet:before {
+ content: "\f15d";
+}
+
+i.icon.sort.attributes.descending:before {
+ content: "\f161";
+}
+
+i.icon.sort.attributes:before {
+ content: "\f160";
+}
+
+i.icon.sort.order.descending:before {
+ content: "\f163";
+}
+
+i.icon.sort.order:before {
+ content: "\f162";
+}
+
+i.icon.sort:before {
+ content: "\f0dc";
+}
+
+i.icon.stackexchange:before {
+ content: "\f16c";
+}
+
+i.icon.star.empty:before {
+ content: "\f006";
+}
+
+i.icon.star.half.empty:before {
+ content: "\f123";
+}
+
+i.icon.star.half.full:before,
+i.icon.star.half:before {
+ content: "\f089";
+}
+
+i.icon.star:before {
+ content: "\f005";
+}
+
+i.icon.step.backward:before {
+ content: "\f048";
+}
+
+i.icon.step.forward:before {
+ content: "\f051";
+}
+
+i.icon.stethoscope:before {
+ content: "\f0f1";
+}
+
+i.icon.stop:before {
+ content: "\f04d";
+}
+
+i.icon.strikethrough:before {
+ content: "\f0cc";
+}
+
+i.icon.subscript:before {
+ content: "\f12c";
+}
+
+i.icon.suitcase:before {
+ content: "\f0f2";
+}
+
+i.icon.sun:before {
+ content: "\f185";
+}
+
+i.icon.superscript:before {
+ content: "\f12b";
+}
+
+i.icon.table:before {
+ content: "\f0ce";
+}
+
+i.icon.tablet:before {
+ content: "\f10a";
+}
+
+i.icon.tag:before {
+ content: "\f02b";
+}
+
+i.icon.tags:before {
+ content: "\f02c";
+}
+
+i.icon.tasks:before {
+ content: "\f0ae";
+}
+
+i.icon.terminal:before {
+ content: "\f120";
+}
+
+i.icon.text.height:before {
+ content: "\f034";
+}
+
+i.icon.text.width:before {
+ content: "\f035";
+}
+
+i.icon.thumbs.down.outline:before {
+ content: "\f088";
+}
+
+i.icon.thumbs.down:before {
+ content: "\f165";
+}
+
+i.icon.thumbs.up.outline:before {
+ content: "\f087";
+}
+
+i.icon.thumbs.up:before {
+ content: "\f164";
+}
+
+i.icon.ticket:before {
+ content: "\f145";
+}
+
+i.icon.time:before {
+ content: "\f017";
+}
+
+i.icon.tint:before {
+ content: "\f043";
+}
+
+i.icon.trash:before {
+ content: "\f014";
+}
+
+i.icon.trello:before {
+ content: "\f181";
+}
+
+i.icon.trophy:before {
+ content: "\f091";
+}
+
+i.icon.truck:before {
+ content: "\f0d1";
+}
+
+i.icon.tumblr.sign:before {
+ content: "\f174";
+}
+
+i.icon.tumblr:before {
+ content: "\f173";
+}
+
+i.icon.twitter.sign:before {
+ content: "\f081";
+}
+
+i.icon.twitter:before {
+ content: "\f099";
+}
+
+i.icon.umbrella:before {
+ content: "\f0e9";
+}
+
+i.icon.underline:before {
+ content: "\f0cd";
+}
+
+i.icon.undo:before {
+ content: "\f0e2";
+}
+
+i.icon.unhide:before {
+ content: "\f06e";
+}
+
+i.icon.unlink:before {
+ content: "\f127";
+}
+
+i.icon.unlock.alternate:before {
+ content: "\f13e";
+}
+
+i.icon.unlock:before {
+ content: "\f09c";
+}
+
+i.icon.unmute:before {
+ content: "\f130";
+}
+
+i.icon.up:before {
+ content: "\f062";
+}
+
+i.icon.upload.disk:before {
+ content: "\f093";
+}
+
+i.icon.upload:before {
+ content: "\f01b";
+}
+
+i.icon.url:before {
+ content: "\f0c1";
+}
+
+i.icon.user:before {
+ content: "\f007";
+}
+
+i.icon.users:before {
+ content: "\f0c0";
+}
+
+i.icon.video:before {
+ content: "\f008";
+}
+
+i.icon.vk:before {
+ content: "\f189";
+}
+
+i.icon.volume.down:before {
+ content: "\f027";
+}
+
+i.icon.volume.off:before {
+ content: "\f026";
+}
+
+i.icon.volume.up:before {
+ content: "\f028";
+}
+
+i.icon.warning:before {
+ content: "\f071";
+}
+
+i.icon.weibo:before {
+ content: "\f18a";
+}
+
+i.icon.windows:before {
+ content: "\f17a";
+}
+
+i.icon.won:before {
+ content: "\f159";
+}
+
+i.icon.wrench:before {
+ content: "\f0ad";
+}
+
+i.icon.xing.sign:before {
+ content: "\f169";
+}
+
+i.icon.xing:before {
+ content: "\f168";
+}
+
+i.icon.yen:before {
+ content: "\f157";
+}
+
+i.icon.youtube.play:before {
+ content: "\f16a";
+}
+
+i.icon.youtube.sign:before {
+ content: "\f166";
+}
+
+i.icon.youtube:before {
+ content: "\f167";
+}
+
+i.icon.yuan:before {
+ content: "\f158";
+}
+
+i.icon.zoom.in:before {
+ content: "\f00e";
+}
+
+i.icon.zoom.out:before {
+ content: "\f010";
+}
+
+/*--------------
+ Aliases
+---------------*/
+
+i.icon.check:before {
+ content: "\f00c";
+}
+
+i.icon.close:before {
+ content: "\f00d";
+}
+
+i.icon.delete:before {
+ content: "\f00d";
+}
+
+i.icon.like:before {
+ content: "\f004";
+}
+
+i.icon.plus:before {
+ content: "\f067";
+}
+
+i.icon.signup:before {
+ content: "\f044";
+}
+
+/*--------------
+ Spacing Fix
+---------------*/
+
+/* stars are usually consecutive */
+
+i.icon.star {
+ width: auto;
+ margin: 0em;
+}
+
+/* left side icons */
+
+i.icon.left {
+ width: auto;
+ margin: 0em 0em 0em 0.5em;
+}
+
+/* right side icons */
+
+i.icon.search,
+i.icon.right {
+ width: auto;
+ margin: 0em 0.5em 0em 0em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Loading
+---------------*/
+
+i.icon.loading {
+ -webkit-animation: icon-loading 2s linear infinite;
+ -moz-animation: icon-loading 2s linear infinite;
+ -ms-animation: icon-loading 2s linear infinite;
+ animation: icon-loading 2s linear infinite;
+}
+
+@keyframes icon-loading {
+ from {
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ to {
+ -webkit-transform: rotate(360deg);
+ -moz-transform: rotate(360deg);
+ -ms-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-moz-keyframes icon-loading {
+ from {
+ -moz-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ to {
+ -moz-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-webkit-keyframes icon-loading {
+ from {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ to {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-ms-keyframes icon-loading {
+ from {
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ to {
+ -ms-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+/*******************************
+ States
+*******************************/
+
+i.icon.hover {
+ opacity: 1;
+}
+
+i.icon.active {
+ opacity: 1;
+}
+
+i.emphasized.icon {
+ opacity: 1;
+}
+
+i.icon.disabled {
+ opacity: 0.3;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Link
+--------------------*/
+
+i.link.icon {
+ cursor: pointer;
+ opacity: 0.7;
+ -webkit-transition: opacity 0.3s ease-out;
+ -moz-transition: opacity 0.3s ease-out;
+ transition: opacity 0.3s ease-out;
+}
+
+i.link.icon:hover {
+ opacity: 1 !important;
+}
+
+/*-------------------
+ Circular
+--------------------*/
+
+i.circular.icon {
+ border-radius: !important 500em;
+ padding: 0.5em 0.35em !important;
+ -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ line-height: 1 !important;
+ width: 2em !important;
+ height: 2em !important;
+}
+
+i.circular.inverted.icon {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Flipped
+--------------------*/
+
+i.flipped.icon,
+i.horizontally.flipped.icon {
+ -webkit-transform: scale(-1, 1);
+ -moz-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+
+i.vertically.flipped.icon {
+ -webkit-transform: scale(1, -1);
+ -moz-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+
+/*-------------------
+ Rotated
+--------------------*/
+
+i.rotated.icon,
+i.right.rotated.icon,
+i.clockwise.rotated.icon {
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+
+i.left.rotated.icon,
+i.counterclockwise.rotated.icon {
+ -webkit-transform: rotate(-90deg);
+ -moz-transform: rotate(-90deg);
+ -ms-transform: rotate(-90deg);
+ transform: rotate(-90deg);
+}
+
+/*-------------------
+ Square
+--------------------*/
+
+i.square.icon {
+ width: 2em;
+ height: 2em;
+ padding: 0.5em 0.35em !important;
+ -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ vertical-align: baseline;
+}
+
+i.square.inverted.icon {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+i.inverted.icon {
+ background-color: #222222;
+ color: #FFFFFF;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+i.blue.icon {
+ color: #6ECFF5 !important;
+}
+
+i.black.icon {
+ color: #5C6166 !important;
+}
+
+i.green.icon {
+ color: #A1CF64 !important;
+}
+
+i.red.icon {
+ color: #D95C5C !important;
+}
+
+i.purple.icon {
+ color: #564F8A !important;
+}
+
+i.orange.icon {
+ color: #F05940 !important;
+}
+
+i.teal.icon {
+ color: #00B5AD !important;
+}
+
+/*-------------------
+ Inverted Colors
+--------------------*/
+
+i.inverted.black.icon {
+ background-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.blue.icon {
+ background-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.green.icon {
+ background-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.red.icon {
+ background-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.purple.icon {
+ background-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.orange.icon {
+ background-color: #F05940 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.teal.icon {
+ background-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+i.small.icon {
+ font-size: 0.875em;
+}
+
+i.icon {
+ font-size: 1em;
+}
+
+i.large.icon {
+ font-size: 1.5em;
+ vertical-align: middle;
+}
+
+i.big.icon {
+ font-size: 2em;
+ vertical-align: middle;
+}
+
+i.huge.icon {
+ font-size: 4em;
+ vertical-align: middle;
+}
+
+i.massive.icon {
+ font-size: 8em;
+ vertical-align: middle;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/elements/image.less b/css/semantic/rtl/less/elements/image.less
new file mode 100644
index 0000000..61dff93
--- /dev/null
+++ b/css/semantic/rtl/less/elements/image.less
@@ -0,0 +1,174 @@
+/*
+ * # Semantic - Image
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Image
+*******************************/
+
+.ui.image {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+ max-width: 100%;
+ background-color: rgba(0, 0, 0, 0.05);
+}
+
+img.ui.image {
+ display: block;
+ background: none;
+}
+
+.ui.image img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.disabled.image {
+ cursor: default;
+ opacity: 0.3;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Rounded
+---------------*/
+
+.ui.rounded.images .image,
+.ui.rounded.images img,
+.ui.rounded.image img,
+.ui.rounded.image {
+ border-radius: 0.3125em;
+}
+
+/*--------------
+ Circular
+---------------*/
+
+.ui.circular.images .image,
+.ui.circular.images img,
+.ui.circular.image img,
+.ui.circular.image {
+ border-radius: 500rem;
+}
+
+/*--------------
+ Fluid
+---------------*/
+
+.ui.fluid.images,
+.ui.fluid.image,
+.ui.fluid.images img,
+.ui.fluid.image img {
+ display: block;
+ width: 100%;
+}
+
+/*--------------
+ Avatar
+---------------*/
+
+.ui.avatar.images .image,
+.ui.avatar.images img,
+.ui.avatar.image img,
+.ui.avatar.image {
+ margin-left: 0.5em;
+ display: inline-block;
+ width: 2em;
+ height: 2em;
+ border-radius: 500rem;
+}
+
+/*-------------------
+ Floated
+--------------------*/
+
+.ui.floated.image,
+.ui.floated.images {
+ float: right;
+ margin-left: 1em;
+ margin-bottom: 1em;
+}
+
+.ui.right.floated.images,
+.ui.right.floated.image {
+ float: left;
+ margin-bottom: 1em;
+ margin-right: 1em;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.tiny.images .image,
+.ui.tiny.images img,
+.ui.tiny.image {
+ width: 20px;
+ font-size: 0.7rem;
+}
+
+.ui.mini.images .image,
+.ui.mini.images img,
+.ui.mini.image {
+ width: 35px;
+ font-size: 0.8rem;
+}
+
+.ui.small.images .image,
+.ui.small.images img,
+.ui.small.image {
+ width: 80px;
+ font-size: 0.9rem;
+}
+
+.ui.medium.images .image,
+.ui.medium.images img,
+.ui.medium.image {
+ width: 300px;
+ font-size: 1rem;
+}
+
+.ui.large.images .image,
+.ui.large.images img,
+.ui.large.image {
+ width: 450px;
+ font-size: 1.1rem;
+}
+
+.ui.huge.images .image,
+.ui.huge.images img,
+.ui.huge.image {
+ width: 600px;
+ font-size: 1.2rem;
+}
+
+/*******************************
+ Groups
+*******************************/
+
+.ui.images {
+ font-size: 0em;
+ margin: 0em -0.25rem 0rem;
+}
+
+.ui.images .image,
+.ui.images img {
+ display: inline-block;
+ margin: 0em 0.25em 0.5em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/elements/input.less b/css/semantic/rtl/less/elements/input.less
new file mode 100644
index 0000000..5ff20fd
--- /dev/null
+++ b/css/semantic/rtl/less/elements/input.less
@@ -0,0 +1,320 @@
+/*
+ * # Semantic - Input
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------------
+ Inputs
+---------------------*/
+
+.ui.input {
+ display: inline-block;
+ position: relative;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.input input {
+ width: 100%;
+ font-family: "Helvetica Neue", "Helvetica", Arial;
+ margin: 0em;
+ padding: 0.65em 1em;
+ font-size: 1em;
+ background-color: #FFFFFF;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ outline: none;
+ color: rgba(0, 0, 0, 0.7);
+ border-radius: 0.3125em;
+ -webkit-transition: background-color 0.3s ease-out,
+ -webkit-box-shadow 0.2s ease,
+ border-color 0.2s ease;
+ -moz-transition: background-color 0.3s ease-out,
+ box-shadow 0.2s ease,
+ border-color 0.2s ease;
+ transition: background-color 0.3s ease-out,
+ box-shadow 0.2s ease,
+ border-color 0.2s ease;
+ -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*--------------------
+ Placeholder
+---------------------*/
+
+/* browsers require these rules separate */
+
+.ui.input::-webkit-input-placeholder {
+ color: #BBBBBB;
+}
+
+.ui.input::-moz-placeholder {
+ color: #BBBBBB;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------------
+ Active
+---------------------*/
+
+.ui.input input:active,
+.ui.input.down input {
+ border-color: rgba(0, 0, 0, 0.3);
+ background-color: #FAFAFA;
+}
+
+/*--------------------
+ Loading
+---------------------*/
+
+.ui.loading.input > .icon {
+ background: url(../images/loader-mini.gif) no-repeat 50% 50%;
+}
+
+.ui.loading.input > .icon:before,
+.ui.loading.input > .icon:after {
+ display: none;
+}
+
+/*--------------------
+ Focus
+---------------------*/
+
+.ui.input.focus input,
+.ui.input input:focus {
+ border-color: rgba(0, 0, 0, 0.2);
+ color: rgba(0, 0, 0, 0.85);
+}
+
+.ui.input.focus input input::-webkit-input-placeholder,
+.ui.input input:focus input::-webkit-input-placeholder {
+ color: #AAAAAA;
+}
+
+.ui.input.focus input input::-moz-placeholder,
+.ui.input input:focus input::-moz-placeholder {
+ color: #AAAAAA;
+}
+
+/*--------------------
+ Error
+---------------------*/
+
+.ui.input.error input {
+ background-color: #FFFAFA;
+ border-color: #E7BEBE;
+ color: #D95C5C;
+}
+
+/* Error Placeholder */
+
+.ui.input.error input ::-webkit-input-placeholder {
+ color: rgba(255, 80, 80, 0.4);
+}
+
+.ui.input.error input ::-moz-placeholder {
+ color: rgba(255, 80, 80, 0.4);
+}
+
+.ui.input.error input :focus::-webkit-input-placeholder {
+ color: rgba(255, 80, 80, 0.7);
+}
+
+.ui.input.error input :focus::-moz-placeholder {
+ color: rgba(255, 80, 80, 0.7);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------------
+ Transparent
+---------------------*/
+
+.ui.transparent.input input {
+ border: none;
+ background-color: transparent;
+}
+
+/*--------------------
+ Icon
+---------------------*/
+
+.ui.icon.input > .icon {
+ cursor: default;
+ position: absolute;
+ opacity: 0.5;
+ top: 0px;
+ left: 0px;
+ margin: 0em;
+ width: 2.6em;
+ height: 100%;
+ padding-top: 0.82em;
+ text-align: center;
+ border-radius: 0.3125em 0em 0em 0.3125em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-transition: opacity 0.3s ease-out;
+ -moz-transition: opacity 0.3s ease-out;
+ transition: opacity 0.3s ease-out;
+}
+
+.ui.icon.input > .link.icon {
+ cursor: pointer;
+}
+
+.ui.icon.input input {
+ padding-left: 3em !important;
+}
+
+.ui.icon.input > .circular.icon {
+ top: 0.35em;
+ left: 0.5em;
+}
+
+/* Left Side */
+
+.ui.left.icon.input > .icon {
+ left: auto;
+ right: 1px;
+ border-radius: 0em 0.3125em 0.3125em 0em;
+}
+
+.ui.left.icon.input > .circular.icon {
+ left: auto;
+ right: 0.5em;
+}
+
+.ui.left.icon.input > input {
+ padding-right: 3em !important;
+ padding-left: 1.2em !important;
+}
+
+/* Focus */
+
+.ui.icon.input > input:focus ~ .icon {
+ opacity: 1;
+}
+
+/*--------------------
+ Labeled
+---------------------*/
+
+.ui.labeled.input .corner.label {
+ font-size: 0.7em;
+ border-radius: 0.3125em 0;
+}
+
+.ui.labeled.input .left.corner.label {
+ border-radius: 0 0.3125em;
+}
+
+.ui.labeled.input input {
+ padding-left: 2.5em !important;
+}
+
+/* Spacing with corner label */
+
+.ui.labeled.icon.input:not(.left) > input {
+ padding-left: 3.25em !important;
+}
+
+.ui.labeled.icon.input:not(.left) > .icon {
+ margin-left: 1.25em;
+}
+
+/*--------------------
+ Action
+---------------------*/
+
+.ui.action.input {
+ display: table;
+}
+
+.ui.action.input > input {
+ display: table-cell;
+ border-top-left-radius: 0px !important;
+ border-bottom-left-radius: 0px !important;
+ border-left: none;
+}
+
+.ui.action.input > .button,
+.ui.action.input > .buttons {
+ display: table-cell;
+ border-top-right-radius: 0px;
+ border-bottom-right-radius: 0px;
+ white-space: nowrap;
+}
+
+.ui.action.input > .button > .icon,
+.ui.action.input > .buttons > .button > .icon {
+ display: inline;
+ vertical-align: top;
+}
+
+.ui.fluid.action.input {
+ display: table;
+ width: 100%;
+}
+
+.ui.fluid.action.input > .button {
+ width: 0.01%;
+}
+
+/*--------------------
+ Fluid
+---------------------*/
+
+.ui.fluid.input {
+ display: block;
+}
+
+/*--------------------
+ Size
+---------------------*/
+
+.ui.mini.input {
+ font-size: 0.8125em;
+}
+
+.ui.small.input {
+ font-size: 0.875em;
+}
+
+.ui.input {
+ font-size: 1em;
+}
+
+.ui.large.input {
+ font-size: 1.125em;
+}
+
+.ui.big.input {
+ font-size: 1.25em;
+}
+
+.ui.huge.input {
+ font-size: 1.375em;
+}
+
+.ui.massive.input {
+ font-size: 1.5em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/elements/label.less b/css/semantic/rtl/less/elements/label.less
new file mode 100644
index 0000000..e0445b2
--- /dev/null
+++ b/css/semantic/rtl/less/elements/label.less
@@ -0,0 +1,907 @@
+/*
+ * # Semantic - Label
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Label
+*******************************/
+
+.ui.label {
+ display: inline-block;
+ vertical-align: middle;
+ margin: -0.25em 0.25em 0em;
+ background-color: #E8E8E8;
+ border-color: #E8E8E8;
+ padding: 0.5em 0.8em;
+ color: rgba(0, 0, 0, 0.65);
+ text-transform: uppercase;
+ font-weight: normal;
+ border-radius: 0.325em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-transition: background 0.1s linear;
+ -moz-transition: background 0.1s linear;
+ transition: background 0.1s linear;
+}
+
+.ui.label:first-child {
+ margin-right: 0em;
+}
+
+.ui.label:last-child {
+ margin-left: 0em;
+}
+
+/* Link */
+
+a.ui.label {
+ cursor: pointer;
+}
+
+/* Inside Link */
+
+.ui.label a {
+ cursor: pointer;
+ color: inherit;
+ opacity: 0.8;
+ -webkit-transition: 0.2s opacity ease;
+ -moz-transition: 0.2s opacity ease;
+ transition: 0.2s opacity ease;
+}
+
+.ui.label a:hover {
+ opacity: 1;
+}
+
+/* Detail */
+
+.ui.label .detail {
+ display: inline-block;
+ margin-right: 0.5em;
+ font-weight: bold;
+ opacity: 0.8;
+}
+
+/* Icon */
+
+.ui.label .icon {
+ width: auto;
+}
+
+/* Removable label */
+
+.ui.label .delete.icon {
+ cursor: pointer;
+ margin: 0em 0.5em 0em 0em;
+ opacity: 0.7;
+ -webkit-transition: background 0.1s linear;
+ -moz-transition: background 0.1s linear;
+ transition: background 0.1s linear;
+}
+
+.ui.label .delete.icon:hover {
+ opacity: 0.99;
+}
+
+/*-------------------
+ Coupling
+--------------------*/
+
+/* Padding on next content after a label */
+
+.ui.segment > .attached.label:first-child + * {
+ margin-top: 2.5em;
+}
+
+.ui.segment > .bottom.attached.label:first-child ~ :last-child {
+ margin-top: 0em;
+ margin-bottom: 2.5em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+.ui.image.label {
+ width: auto !important;
+ margin-top: 0em;
+ margin-bottom: 0em;
+ padding-top: 0.4em;
+ padding-bottom: 0.4em;
+ line-height: 1.5em;
+ vertical-align: baseline;
+ text-transform: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.image.label img {
+ display: inline-block;
+ height: 2.25em;
+ margin: -0.4em -0.8em -0.4em 0.8em;
+ vertical-align: top;
+ border-radius: 0em 0.325em 0.325em 0em;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*-------------------
+ Disabled
+--------------------*/
+
+.ui.label.disabled {
+ opacity: 0.5;
+}
+
+/*-------------------
+ Hover
+--------------------*/
+
+a.ui.labels .label:hover,
+a.ui.label:hover {
+ background-color: #E0E0E0;
+ border-color: #E0E0E0;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.labels a.label:hover:before,
+a.ui.label:hover:before {
+ background-color: #E0E0E0;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+/*-------------------
+ Visible
+--------------------*/
+
+.ui.labels.visible .label,
+.ui.label.visible {
+ display: inline-block !important;
+}
+
+/*-------------------
+ Hidden
+--------------------*/
+
+.ui.labels.hidden .label,
+.ui.label.hidden {
+ display: none !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Tag
+--------------------*/
+
+.ui.tag.labels .label,
+.ui.tag.label {
+ margin-right: 1em;
+ position: relative;
+ padding: 0.33em 1.4em 0.33em 1.3em;
+ border-radius: 3px 0px 0px 3px;
+}
+
+.ui.tag.labels .label:before,
+.ui.tag.label:before {
+ position: absolute;
+ top: 0.3em;
+ right: 0.3em;
+ content: '';
+ margin-right: -1em;
+ background-image: none;
+ width: 1.5em;
+ height: 1.5em;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ -webkit-transition: background 0.1s linear;
+ -moz-transition: background 0.1s linear;
+ transition: background 0.1s linear;
+}
+
+.ui.tag.labels .label:after,
+.ui.tag.label:after {
+ position: absolute;
+ content: '';
+ top: 50%;
+ right: -0.25em;
+ margin-top: -0.3em;
+ background-color: #FFFFFF;
+ width: 0.55em;
+ height: 0.55em;
+ -webkit-box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.3);
+ box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.3);
+ border-radius: 100px 100px 100px 100px;
+}
+
+/*-------------------
+ Ribbon
+--------------------*/
+
+.ui.ribbon.label {
+ position: relative;
+ margin: 0em 0.2em;
+ right: -2rem;
+ padding-right: 2rem;
+ border-radius: 4px 0px 0px 4px;
+ border-color: rgba(0, 0, 0, 0.15);
+}
+
+.ui.ribbon.label:after {
+ position: absolute;
+ content: "";
+ top: 100%;
+ right: 0%;
+ border-top: 0em solid transparent;
+ border-left-width: 1em;
+ border-left-color: inherit;
+ border-left-style: solid;
+ border-bottom: 1em solid transparent;
+ border-right: 0em solid transparent;
+ width: 0em;
+ height: 0em;
+}
+
+/*-------------------
+ Attached
+--------------------*/
+
+.ui.top.attached.label,
+.ui.attached.label {
+ width: 100%;
+ position: absolute;
+ margin: 0em;
+ top: 0em;
+ right: 0em;
+ padding: 0.75em 1em;
+ border-radius: 4px 4px 0em 0em;
+}
+
+.ui.bottom.attached.label {
+ top: auto;
+ bottom: 0em;
+ border-radius: 0em 0em 4px 4px;
+}
+
+.ui.top.left.attached.label {
+ width: auto;
+ margin-top: 0em !important;
+ border-radius: 0em 4px 0em 4px;
+}
+
+.ui.top.right.attached.label {
+ width: auto;
+ right: auto;
+ left: 0em;
+ border-radius: 4px 0em 4px 0em;
+}
+
+.ui.bottom.left.attached.label {
+ width: auto;
+ top: auto;
+ bottom: 0em;
+ border-radius: 0em 4px 4px 0em;
+}
+
+.ui.bottom.right.attached.label {
+ top: auto;
+ bottom: 0em;
+ right: auto;
+ left: 0em;
+ width: auto;
+ border-radius: 0em 4px 0em 4px;
+}
+
+/*-------------------
+ Corner Label
+--------------------*/
+
+.ui.corner.label {
+ background-color: transparent;
+ position: absolute;
+ top: 0em;
+ left: 0em;
+ z-index: 10;
+ margin: 0em;
+ width: 3em;
+ height: 3em;
+ padding: 0em;
+ text-align: center;
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+.ui.corner.label:after {
+ position: absolute;
+ content: "";
+ left: 0em;
+ top: 0em;
+ z-index: -1;
+ width: 0em;
+ height: 0em;
+ border-top: 0em solid transparent;
+ border-left: 3em solid transparent;
+ border-bottom: 3em solid transparent;
+ border-right: 0em solid transparent;
+ border-left-color: inherit;
+ -webkit-transition: border-color 0.2s ease;
+ -moz-transition: border-color 0.2s ease;
+ transition: border-color 0.2s ease;
+}
+
+.ui.corner.label .icon {
+ font-size: 0.875em;
+ margin: 0.5em 1.25em 0em 0em;
+}
+
+.ui.corner.label .text {
+ display: inline-block;
+ font-weight: bold;
+ margin: 0.5em 1em 0em 0em;
+ width: 2.5em;
+ font-size: 0.875em;
+ text-align: center;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+}
+
+/* Coupling */
+
+.ui.rounded.image > .ui.corner.label,
+.ui.input > .ui.corner.label,
+.ui.segment > .ui.corner.label {
+ overflow: hidden;
+}
+
+.ui.segment > .ui.corner.label {
+ top: -1px;
+ left: -1px;
+}
+
+.ui.segment > .ui.left.corner.label {
+ left: auto;
+ right: -1px;
+}
+
+.ui.input > .ui.corner.label {
+ top: 1px;
+ left: 1px;
+}
+
+.ui.input > .ui.right.corner.label {
+ left: auto;
+ right: 1px;
+}
+
+/* Left Corner */
+
+.ui.left.corner.label,
+.ui.left.corner.label:after {
+ left: auto;
+ right: 0em;
+}
+
+.ui.left.corner.label:after {
+ border-top: 3em solid transparent;
+ border-left: 3em solid transparent;
+ border-bottom: 0em solid transparent;
+ border-right: 0em solid transparent;
+ border-top-color: inherit;
+}
+
+.ui.left.corner.label .icon {
+ margin: 0.5em -1em 0em 0em;
+}
+
+.ui.left.corner.label .text {
+ margin: 0.5em -1em 0em 0em;
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+}
+
+/* Hover */
+
+.ui.corner.label:hover {
+ background-color: transparent;
+}
+
+/*-------------------
+ Fluid
+--------------------*/
+
+.ui.label.fluid,
+.ui.fluid.labels > .label {
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.inverted.labels .label,
+.ui.inverted.label {
+ color: #FFFFFF !important;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+/*--- Black ---*/
+
+.ui.black.labels .label,
+.ui.black.label {
+ background-color: #5C6166 !important;
+ border-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .black.label:before,
+.ui.black.labels .label:before,
+.ui.black.label:before {
+ background-color: #5C6166 !important;
+}
+
+/* Hover */
+
+a.ui.black.labels .label:hover,
+a.ui.black.label:hover {
+ background-color: #333333 !important;
+ border-color: #333333 !important;
+}
+
+.ui.labels a.black.label:hover:before,
+.ui.black.labels a.label:hover:before,
+a.ui.black.label:hover:before {
+ background-color: #333333 !important;
+}
+
+/* Corner */
+
+.ui.black.corner.label,
+.ui.black.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.black.ribbon.label {
+ border-color: #333333 !important;
+}
+
+/*--- Green ---*/
+
+.ui.green.labels .label,
+.ui.green.label {
+ background-color: #A1CF64 !important;
+ border-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .green.label:before,
+.ui.green.labels .label:before,
+.ui.green.label:before {
+ background-color: #A1CF64 !important;
+}
+
+/* Hover */
+
+a.ui.green.labels .label:hover,
+a.ui.green.label:hover {
+ background-color: #89B84C !important;
+ border-color: #89B84C !important;
+}
+
+.ui.labels a.green.label:hover:before,
+.ui.green.labels a.label:hover:before,
+a.ui.green.label:hover:before {
+ background-color: #89B84C !important;
+}
+
+/* Corner */
+
+.ui.green.corner.label,
+.ui.green.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.green.ribbon.label {
+ border-color: #89B84C !important;
+}
+
+/*--- Red ---*/
+
+.ui.red.labels .label,
+.ui.red.label {
+ background-color: #D95C5C !important;
+ border-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .red.label:before,
+.ui.red.labels .label:before,
+.ui.red.label:before {
+ background-color: #D95C5C !important;
+}
+
+/* Corner */
+
+.ui.red.corner.label,
+.ui.red.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Hover */
+
+a.ui.red.labels .label:hover,
+a.ui.red.label:hover {
+ background-color: #DE3859 !important;
+ border-color: #DE3859 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.red.label:hover:before,
+.ui.red.labels a.label:hover:before,
+a.ui.red.label:hover:before {
+ background-color: #DE3859 !important;
+}
+
+/* Ribbon */
+
+.ui.red.ribbon.label {
+ border-color: #DE3859 !important;
+}
+
+/*--- Blue ---*/
+
+.ui.blue.labels .label,
+.ui.blue.label {
+ background-color: #6ECFF5 !important;
+ border-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .blue.label:before,
+.ui.blue.labels .label:before,
+.ui.blue.label:before {
+ background-color: #6ECFF5 !important;
+}
+
+/* Hover */
+
+a.ui.blue.labels .label:hover,
+.ui.blue.labels a.label:hover,
+a.ui.blue.label:hover {
+ background-color: #1AB8F3 !important;
+ border-color: #1AB8F3 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.blue.label:hover:before,
+.ui.blue.labels a.label:hover:before,
+a.ui.blue.label:hover:before {
+ background-color: #1AB8F3 !important;
+}
+
+/* Corner */
+
+.ui.blue.corner.label,
+.ui.blue.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.blue.ribbon.label {
+ border-color: #1AB8F3 !important;
+}
+
+/*--- Purple ---*/
+
+.ui.purple.labels .label,
+.ui.purple.label {
+ background-color: #564F8A !important;
+ border-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .purple.label:before,
+.ui.purple.labels .label:before,
+.ui.purple.label:before {
+ background-color: #564F8A !important;
+}
+
+/* Hover */
+
+a.ui.purple.labels .label:hover,
+.ui.purple.labels a.label:hover,
+a.ui.purple.label:hover {
+ background-color: #3E3773 !important;
+ border-color: #3E3773 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.purple.label:hover:before,
+.ui.purple.labels a.label:hover:before,
+a.ui.purple.label:hover:before {
+ background-color: #3E3773 !important;
+}
+
+/* Corner */
+
+.ui.purple.corner.label,
+.ui.purple.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.purple.ribbon.label {
+ border-color: #3E3773 !important;
+}
+
+/*--- Orange ---*/
+
+.ui.orange.labels .label,
+.ui.orange.label {
+ background-color: #F05940 !important;
+ border-color: #F05940 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .orange.label:before,
+.ui.orange.labels .label:before,
+.ui.orange.label:before {
+ background-color: #F05940 !important;
+}
+
+/* Hover */
+
+a.ui.orange.labels .label:hover,
+.ui.orange.labels a.label:hover,
+a.ui.orange.label:hover {
+ background-color: #FF4121 !important;
+ border-color: #FF4121 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.orange.label:hover:before,
+.ui.orange.labels a.label:hover:before,
+a.ui.orange.label:hover:before {
+ background-color: #FF4121 !important;
+}
+
+/* Corner */
+
+.ui.orange.corner.label,
+.ui.orange.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.orange.ribbon.label {
+ border-color: #FF4121 !important;
+}
+
+/*--- Teal ---*/
+
+.ui.teal.labels .label,
+.ui.teal.label {
+ background-color: #00B5AD !important;
+ border-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .teal.label:before,
+.ui.teal.labels .label:before,
+.ui.teal.label:before {
+ background-color: #00B5AD !important;
+}
+
+/* Hover */
+
+a.ui.teal.labels .label:hover,
+.ui.teal.labels a.label:hover,
+a.ui.teal.label:hover {
+ background-color: #009A93 !important;
+ border-color: #009A93 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.teal.label:hover:before,
+.ui.teal.labels a.label:hover:before,
+a.ui.teal.label:hover:before {
+ background-color: #009A93 !important;
+}
+
+/* Corner */
+
+.ui.teal.corner.label,
+.ui.teal.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.teal.ribbon.label {
+ border-color: #009A93 !important;
+}
+
+/*-------------------
+ Horizontal
+--------------------*/
+
+.ui.horizontal.labels .label,
+.ui.horizontal.label {
+ margin: -0.125em 0em -0.125em 0.5em;
+ padding: 0.35em 1em;
+ min-width: 6em;
+ text-align: center;
+}
+
+/*-------------------
+ Circular
+--------------------*/
+
+.ui.circular.labels .label,
+.ui.circular.label {
+ min-height: 1em;
+ max-height: 2em;
+ padding: 0.5em !important;
+ line-height: 1em;
+ text-align: center;
+ border-radius: 500rem;
+}
+
+/*-------------------
+ Pointing
+--------------------*/
+
+.ui.pointing.label {
+ position: relative;
+}
+
+.ui.attached.pointing.label {
+ position: absolute;
+}
+
+.ui.pointing.label:before {
+ position: absolute;
+ content: "";
+ width: 0.6em;
+ height: 0.6em;
+ background-image: none;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ z-index: 2;
+ -webkit-transition: background 0.1s linear;
+ -moz-transition: background 0.1s linear;
+ transition: background 0.1s linear;
+}
+
+/*--- Above ---*/
+
+.ui.pointing.label:before {
+ background-color: #E8E8E8;
+}
+
+.ui.pointing.label,
+.ui.pointing.above.label {
+ margin-top: 1em;
+}
+
+.ui.pointing.label:before,
+.ui.pointing.above.label:before {
+ margin-right: -0.3em;
+ top: -0.3em;
+ right: 50%;
+}
+
+/*--- Below ---*/
+
+.ui.pointing.below.label {
+ margin-top: 0em;
+ margin-bottom: 1em;
+}
+
+.ui.pointing.below.label:before {
+ margin-right: -0.3em;
+ top: auto;
+ left: auto;
+ bottom: -0.3em;
+ right: 50%;
+}
+
+/*--- Left ---*/
+
+.ui.pointing.left.label {
+ margin-top: 0em;
+ margin-right: 1em;
+}
+
+.ui.pointing.left.label:before {
+ margin-top: -0.3em;
+ bottom: auto;
+ left: auto;
+ top: 50%;
+ right: 0em;
+}
+
+/*--- Right ---*/
+
+.ui.pointing.right.label {
+ margin-top: 0em;
+ margin-left: 1em;
+}
+
+.ui.pointing.right.label:before {
+ margin-top: -0.3em;
+ left: -0.3em;
+ top: 50%;
+ bottom: auto;
+ right: auto;
+}
+
+/*------------------
+ Floating Label
+-------------------*/
+
+.ui.floating.label {
+ position: absolute;
+ z-index: 100;
+ top: -1em;
+ right: 100%;
+ margin: 0em -1.5em 0em 0em !important;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+.ui.small.labels .label,
+.ui.small.label {
+ font-size: 0.75rem;
+}
+
+.ui.label {
+ font-size: 0.8125rem;
+}
+
+.ui.large.labels .label,
+.ui.large.label {
+ font-size: 0.875rem;
+}
+
+.ui.huge.labels .label,
+.ui.huge.label {
+ font-size: 1rem;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/elements/loader.less b/css/semantic/rtl/less/elements/loader.less
new file mode 100644
index 0000000..78e4fc1
--- /dev/null
+++ b/css/semantic/rtl/less/elements/loader.less
@@ -0,0 +1,189 @@
+/*
+ * # Semantic - Loader
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Loader
+*******************************/
+
+/* Standard Size */
+
+.ui.loader {
+ display: none;
+ position: absolute;
+ top: 50%;
+ right: 50%;
+ margin: 0px;
+ z-index: 1000;
+ -webkit-transform: translateX(-50%) translateY(-50%);
+ -moz-transform: translateX(-50%) translateY(-50%);
+ -ms-transform: translateX(-50%) translateY(-50%);
+ transform: translateX(-50%) translateY(-50%);
+}
+
+.ui.dimmer .loader {
+ display: block;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Text
+--------------------*/
+
+.ui.text.loader {
+ width: auto !important;
+ height: auto !important;
+ text-align: center;
+ font-style: normal;
+}
+
+.ui.mini.text.loader {
+ min-width: 16px;
+ padding-top: 2em;
+ font-size: 0.875em;
+}
+
+.ui.small.text.loader {
+ min-width: 24px;
+ padding-top: 2.5em;
+ font-size: 0.875em;
+}
+
+.ui.text.loader {
+ min-width: 32px;
+ font-size: 1em;
+ padding-top: 3em;
+}
+
+.ui.large.text.loader {
+ min-width: 64px;
+ padding-top: 5em;
+ font-size: 1.2em;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.loader.active,
+.ui.loader.visible {
+ display: block;
+}
+
+.ui.loader.disabled,
+.ui.loader.hidden {
+ display: none;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.dimmer .ui.text.loader,
+.ui.inverted.text.loader {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.dimmer .ui.text.loader {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/* Tiny Size */
+
+.ui.dimmer .mini.ui.loader,
+.ui.inverted .mini.ui.loader {
+ background-image: url(../images/loader-mini-inverted.gif);
+}
+
+/* Small Size */
+
+.ui.dimmer .small.ui.loader,
+.ui.inverted .small.ui.loader {
+ background-image: url(../images/loader-small-inverted.gif);
+}
+
+/* Standard Size */
+
+.ui.dimmer .ui.loader,
+.ui.inverted.loader {
+ background-image: url(../images/loader-medium-inverted.gif);
+}
+
+/* Large Size */
+
+.ui.dimmer .large.ui.loader,
+.ui.inverted .large.ui.loader {
+ background-image: url(../images/loader-large-inverted.gif);
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+/* Tiny Size */
+
+.ui.inverted.dimmer .ui.mini.loader,
+.ui.mini.loader {
+ width: 16px;
+ height: 16px;
+ background-image: url(../images/loader-mini.gif);
+}
+
+/* Small Size */
+
+.ui.inverted.dimmer .ui.small.loader,
+.ui.small.loader {
+ width: 24px;
+ height: 24px;
+ background-image: url(../images/loader-small.gif);
+}
+
+.ui.inverted.dimmer .ui.loader,
+.ui.loader {
+ width: 32px;
+ height: 32px;
+ background: url(../images/loader-medium.gif) no-repeat;
+ background-position: 52% 0px;
+}
+
+/* Large Size */
+
+.ui.inverted.dimmer .ui.loader.large,
+.ui.loader.large {
+ width: 64px;
+ height: 64px;
+ background-image: url(../images/loader-large.gif);
+}
+
+/*-------------------
+ Inline
+--------------------*/
+
+.ui.inline.loader {
+ position: static;
+ vertical-align: middle;
+ margin: 0em;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+}
+
+.ui.inline.loader.active,
+.ui.inline.loader.visible {
+ display: inline-block;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/elements/progress.less b/css/semantic/rtl/less/elements/progress.less
new file mode 100644
index 0000000..9d532f1
--- /dev/null
+++ b/css/semantic/rtl/less/elements/progress.less
@@ -0,0 +1,320 @@
+/*
+ * # Semantic - Progress Bar
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Progress Bar
+*******************************/
+
+.ui.progress {
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ width: 100%;
+ height: 35px;
+ background-color: #FAFAFA;
+ padding: 5px;
+ border-radius: 0.3125em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.progress .bar {
+ display: inline-block;
+ height: 100%;
+ background-color: #CCCCCC;
+ border-radius: 3px;
+ -webkit-transition: width 1s ease-in-out,
+ background-color 1s ease-out;
+ -moz-transition: width 1s ease-in-out,
+ background-color 1s ease-out;
+ transition: width 1s ease-in-out,
+ background-color 1s ease-out;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Successful
+---------------*/
+
+.ui.successful.progress .bar {
+ background-color: #73E064 !important;
+}
+
+.ui.successful.progress .bar,
+.ui.successful.progress .bar::after {
+ -webkit-animation: none !important;
+ -moz-animation: none !important;
+ animation: none !important;
+}
+
+.ui.warning.progress .bar {
+ background-color: #E96633 !important;
+}
+
+.ui.warning.progress .bar,
+.ui.warning.progress .bar::after {
+ -webkit-animation: none !important;
+ -moz-animation: none !important;
+ animation: none !important;
+}
+
+/*--------------
+ Failed
+---------------*/
+
+.ui.failed.progress .bar {
+ background-color: #DF9BA4 !important;
+}
+
+.ui.failed.progress .bar,
+.ui.failed.progress .bar::after {
+ -webkit-animation: none !important;
+ -moz-animation: none !important;
+ animation: none !important;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.active.progress .bar {
+ position: relative;
+}
+
+.ui.active.progress .bar::after {
+ content: '';
+ opacity: 0;
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ left: 0px;
+ bottom: 0px;
+ background: #FFFFFF;
+ border-radius: 3px;
+ -webkit-animation: progress-active 2s ease-out infinite;
+ -moz-animation: progress-active 2s ease-out infinite;
+ animation: progress-active 2s ease-out infinite;
+}
+
+@-webkit-keyframes progress-active {
+ 0% {
+ opacity: 0;
+ width: 0;
+ }
+
+ 50% {
+ opacity: 0.3;
+ }
+
+ 100% {
+ opacity: 0;
+ width: 95%;
+ }
+}
+
+@-moz-keyframes progress-active {
+ 0% {
+ opacity: 0;
+ width: 0;
+ }
+
+ 50% {
+ opacity: 0.3;
+ }
+
+ 100% {
+ opacity: 0;
+ width: 100%;
+ }
+}
+
+@keyframes progress-active {
+ 0% {
+ opacity: 0;
+ width: 0;
+ }
+
+ 50% {
+ opacity: 0.3;
+ }
+
+ 100% {
+ opacity: 0;
+ width: 100%;
+ }
+}
+
+/*--------------
+ Disabled
+---------------*/
+
+.ui.disabled.progress {
+ opacity: 0.35;
+}
+
+.ui.disabled.progress .bar,
+.ui.disabled.progress .bar::after {
+ -webkit-animation: none !important;
+ -moz-animation: none !important;
+ animation: none !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Attached
+---------------*/
+
+/* bottom attached */
+
+.ui.progress.attached {
+ position: relative;
+ border: none;
+}
+
+.ui.progress.attached,
+.ui.progress.attached .bar {
+ display: block;
+ height: 3px;
+ padding: 0px;
+ overflow: hidden;
+ border-radius: 0em 0em 0.3125em 0.3125em;
+}
+
+.ui.progress.attached .bar {
+ border-radius: 0em;
+}
+
+/* top attached */
+
+.ui.progress.top.attached,
+.ui.progress.top.attached .bar {
+ top: -2px;
+ border-radius: 0.3125em 0.3125em 0em 0em;
+}
+
+.ui.progress.top.attached .bar {
+ border-radius: 0em;
+}
+
+/*--------------
+ Colors
+---------------*/
+
+.ui.blue.progress .bar {
+ background-color: #6ECFF5;
+}
+
+.ui.black.progress .bar {
+ background-color: #5C6166;
+}
+
+.ui.green.progress .bar {
+ background-color: #A1CF64;
+}
+
+.ui.red.progress .bar {
+ background-color: #EF4D6D;
+}
+
+.ui.purple.progress .bar {
+ background-color: #564F8A;
+}
+
+.ui.teal.progress .bar {
+ background-color: #00B5AD;
+}
+
+/*--------------
+ Striped
+---------------*/
+
+.ui.progress.striped .bar {
+ -webkit-background-size: 30px 30px;
+ background-size: 30px 30px;
+ background-image: -webkit-gradient(linear, right top, left bottom,
+ color-stop(.25, rgba(255, 255, 255, .15)), color-stop(.25, transparent),
+ color-stop(.5, transparent), color-stop(.5, rgba(255, 255, 255, .15)),
+ color-stop(.75, rgba(255, 255, 255, .15)), color-stop(.75, transparent),
+ to(transparent)
+ );
+ background-image: -webkit-linear-gradient(
+ 135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
+ transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
+ transparent 75%, transparent
+ );
+ background-image: -moz-linear-gradient(
+ 135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
+ transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
+ transparent 75%, transparent
+ );
+ background-image: linear-gradient(
+ 135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
+ transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
+ transparent 75%, transparent
+ );
+}
+
+.ui.progress.active.striped .bar:after {
+ -webkit-animation: none;
+ -moz-animation: none;
+ -ms-animation: none;
+ animation: none;
+}
+
+.ui.progress.active.striped .bar {
+ -webkit-animation: progress-striped 3s linear infinite;
+ -moz-animation: progress-striped 3s linear infinite;
+ animation: progress-striped 3s linear infinite;
+}
+
+@-webkit-keyframes progress-striped {
+ 0% {
+ background-position: 0px 0;
+ }
+
+ 100% {
+ background-position: 60px 0;
+ }
+}
+
+@-moz-keyframes progress-striped {
+ 0% {
+ background-position: 0px 0;
+ }
+
+ 100% {
+ background-position: 60px 0;
+ }
+}
+
+@keyframes progress-striped {
+ 0% {
+ background-position: 0px 0;
+ }
+
+ 100% {
+ background-position: 60px 0;
+ }
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.small.progress .bar {
+ height: 14px;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/elements/reveal.less b/css/semantic/rtl/less/elements/reveal.less
new file mode 100644
index 0000000..a2ed390
--- /dev/null
+++ b/css/semantic/rtl/less/elements/reveal.less
@@ -0,0 +1,357 @@
+/*
+ * # Semantic - Reveal
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Reveal
+*******************************/
+
+.ui.reveal {
+ display: inline-block;
+ position: relative !important;
+ z-index: 2 !important;
+ font-size: 0em !important;
+}
+
+.ui.reveal > .content {
+ font-size: 1rem !important;
+}
+
+.ui.reveal > .visible.content {
+ -webkit-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.320, 1) 0.15s;
+ -moz-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.320, 1) 0.15s;
+ transition: all 0.8s cubic-bezier(0.175, 0.885, 0.320, 1) 0.15s;
+}
+
+.ui.reveal > .visible.content {
+ position: absolute !important;
+ top: 0em !important;
+ right: 0em !important;
+ z-index: 4 !important;
+ -webkit-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.320, 1) 0.15s;
+ -moz-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.320, 1) 0.15s;
+ transition: all 0.8s cubic-bezier(0.175, 0.885, 0.320, 1) 0.15s;
+}
+
+.ui.reveal > .hidden.content {
+ position: relative !important;
+ z-index: 3 !important;
+}
+
+/*------------------
+ Loose Coupling
+-------------------*/
+
+.ui.reveal.button {
+ overflow: hidden;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Slide
+---------------*/
+
+.ui.slide.reveal {
+ position: relative !important;
+ display: block;
+ overflow: hidden !important;
+ white-space: nowrap;
+}
+
+.ui.slide.reveal > .content {
+ display: block;
+ float: right;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 0em;
+ -webkit-transition: top 0.8s cubic-bezier(0.175, 0.885, 0.320, 1) 0.15s,
+ right 0.8s cubic-bezier(0.175, 0.885, 0.320, 1) 0.15s,
+ left 0.8s cubic-bezier(0.175, 0.885, 0.320, 1) 0.15s,
+ bottom 0.8s cubic-bezier(0.175, 0.885, 0.320, 1) 0.15s;
+ -moz-transition: top 0.8s cubic-bezier(0.175, 0.885, 0.320, 1) 0.15s,
+ right 0.8s cubic-bezier(0.175, 0.885, 0.320, 1) 0.15s,
+ left 0.8s cubic-bezier(0.175, 0.885, 0.320, 1) 0.15s,
+ bottom 0.8s cubic-bezier(0.175, 0.885, 0.320, 1) 0.15s;
+ transition: top 0.8s cubic-bezier(0.175, 0.885, 0.320, 1) 0.15s,
+ right 0.8s cubic-bezier(0.175, 0.885, 0.320, 1) 0.15s,
+ left 0.8s cubic-bezier(0.175, 0.885, 0.320, 1) 0.15s,
+ bottom 0.8s cubic-bezier(0.175, 0.885, 0.320, 1) 0.15s;
+}
+
+.ui.slide.reveal > .visible.content {
+ position: relative !important;
+}
+
+.ui.slide.reveal > .hidden.content {
+ position: absolute !important;
+ right: 100% !important;
+ width: 100% !important;
+}
+
+.ui.slide.reveal:hover > .visible.content,
+.ui.slide.reveal:focus > .visible.content,
+ {
+ right: -100% !important;
+}
+
+.ui.slide.reveal:hover > .hidden.content,
+.ui.slide.reveal:focus > .hidden.content {
+ right: 0% !important;
+}
+
+.ui.right.slide.reveal > .visible.content {
+ right: 0%;
+}
+
+.ui.right.slide.reveal > .hidden.content {
+ right: auto !important;
+ left: 100% !important;
+}
+
+.ui.right.slide.reveal:hover > .visible.content,
+.ui.right.slide.reveal:focus > .visible.content {
+ right: 100% !important;
+ left: auto !important;
+}
+
+.ui.right.slide.reveal:hover > .hidden.content,
+.ui.right.slide.reveal:focus > .hidden.content {
+ right: auto !important;
+ left: 0% !important;
+}
+
+.ui.up.slide.reveal > .visible.content {
+ top: 0% !important;
+ right: 0% !important;
+ left: auto !important;
+ bottom: auto !important;
+}
+
+.ui.up.slide.reveal > .hidden.content {
+ top: 100% !important;
+ right: 0% !important;
+ left: auto !important;
+ bottom: auto !important;
+}
+
+.ui.slide.up.reveal:hover > .visible.content,
+.ui.slide.up.reveal:focus > .visible.content {
+ top: -100% !important;
+ right: 0% !important;
+}
+
+.ui.slide.up.reveal:hover > .hidden.content,
+.ui.slide.up.reveal:focus > .hidden.content {
+ top: 0% !important;
+ right: 0% !important;
+}
+
+.ui.down.slide.reveal > .visible.content {
+ top: auto !important;
+ left: auto !important;
+ bottom: auto !important;
+ bottom: 0% !important;
+}
+
+.ui.down.slide.reveal > .hidden.content {
+ top: auto !important;
+ left: auto !important;
+ bottom: 100% !important;
+ right: 0% !important;
+}
+
+.ui.slide.down.reveal:hover > .visible.content,
+.ui.slide.down.reveal:focus > .visible.content {
+ right: 0% !important;
+ bottom: -100% !important;
+}
+
+.ui.slide.down.reveal:hover > .hidden.content,
+.ui.slide.down.reveal:focus > .hidden.content {
+ right: 0% !important;
+ bottom: 0% !important;
+}
+
+/*--------------
+ Fade
+---------------*/
+
+.ui.fade.reveal > .visible.content {
+ opacity: 1;
+}
+
+.ui.fade.reveal:hover > .visible.content,
+.ui.fade.reveal:focus > .visible.content {
+ opacity: 0;
+}
+
+/*--------------
+ Move
+---------------*/
+
+.ui.move.reveal > .visible.content,
+.ui.move.left.reveal > .visible.content {
+ right: auto !important;
+ top: auto !important;
+ bottom: auto !important;
+ left: 0% !important;
+}
+
+.ui.move.reveal:hover > .visible.content,
+.ui.move.left.reveal:hover > .visible.content,
+.ui.move.reveal:focus > .visible.content,
+.ui.move.left.reveal:focus > .visible.content {
+ left: 100% !important;
+}
+
+.ui.move.right.reveal > .visible.content {
+ left: auto !important;
+ top: auto !important;
+ bottom: auto !important;
+ right: 0% !important;
+}
+
+.ui.move.right.reveal:hover > .visible.content,
+.ui.move.right.reveal:focus > .visible.content {
+ right: 100% !important;
+}
+
+.ui.move.up.reveal > .visible.content {
+ left: auto !important;
+ right: auto !important;
+ top: auto !important;
+ bottom: 0% !important;
+}
+
+.ui.move.up.reveal:hover > .visible.content,
+.ui.move.up.reveal:focus > .visible.content {
+ bottom: 100% !important;
+}
+
+.ui.move.down.reveal > .visible.content {
+ left: auto !important;
+ right: auto !important;
+ bottom: auto !important;
+ top: 0% !important;
+ bottom: auto !important;
+}
+
+.ui.move.down.reveal:hover > .visible.content,
+.ui.move.down.reveal:focus > .visible.content {
+ top: 100% !important;
+}
+
+/*--------------
+ Rotate
+---------------*/
+
+.ui.rotate.reveal > .visible.content {
+ -webkit-transition-duration: 0.8s;
+ -moz-transition-duration: 0.8s;
+ transition-duration: 0.8s;
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+}
+
+.ui.rotate.reveal > .visible.content,
+.ui.rotate.right.reveal > .visible.content {
+ -webkit-transform-origin: bottom left;
+ -moz-transform-origin: bottom left;
+ -ms-transform-origin: bottom left;
+ transform-origin: bottom left;
+}
+
+.ui.rotate.reveal:hover > .visible.content,
+.ui.rotate.right.reveal:hover > .visible.content,
+.ui.rotate.reveal:focus > .visible.content,
+.ui.rotate.right.reveal:focus > .visible.content {
+ -webkit-transform: rotate(110deg);
+ -moz-transform: rotate(110deg);
+ -ms-transform: rotate(110deg);
+ transform: rotate(110deg);
+}
+
+.ui.rotate.left.reveal > .visible.content {
+ -webkit-transform-origin: bottom right;
+ -moz-transform-origin: bottom right;
+ -ms-transform-origin: bottom right;
+ transform-origin: bottom right;
+}
+
+.ui.rotate.left.reveal:hover > .visible.content,
+.ui.rotate.left.reveal:focus > .visible.content {
+ -webkit-transform: rotate(-110deg);
+ -moz-transform: rotate(-110deg);
+ -ms-transform: rotate(-110deg);
+ transform: rotate(-110deg);
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.disabled.reveal {
+ opacity: 1 !important;
+}
+
+.ui.disabled.reveal > .content {
+ -webkit-transition: none !important;
+ -moz-transition: none !important;
+ transition: none !important;
+}
+
+.ui.disabled.reveal:hover > .visible.content,
+.ui.disabled.reveal:focus > .visible.content {
+ position: static !important;
+ display: block !important;
+ opacity: 1 !important;
+ top: 0 !important;
+ right: 0 !important;
+ left: auto !important;
+ bottom: auto !important;
+ -webkit-transform: none !important;
+ -moz-transform: none !important;
+ -ms-transform: none !important;
+ transform: none !important;
+}
+
+.ui.disabled.reveal:hover > .hidden.content,
+.ui.disabled.reveal:focus > .hidden.content {
+ display: none !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Masked
+---------------*/
+
+.ui.masked.reveal {
+ overflow: hidden;
+}
+
+/*--------------
+ Instant
+---------------*/
+
+.ui.instant.reveal > .content {
+ -webkit-transition-delay: 0s !important;
+ -moz-transition-delay: 0s !important;
+ transition-delay: 0s !important;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/elements/segment.less b/css/semantic/rtl/less/elements/segment.less
new file mode 100644
index 0000000..df2105c
--- /dev/null
+++ b/css/semantic/rtl/less/elements/segment.less
@@ -0,0 +1,460 @@
+/*
+ * # Semantic - Segment
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Segment
+*******************************/
+
+.ui.segment {
+ position: relative;
+ background-color: #FFFFFF;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ margin: 1em 0em;
+ padding: 1em;
+ border-radius: 5px 5px 5px 5px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.segment:first-child {
+ margin-top: 0em;
+}
+
+.ui.segment:last-child {
+ margin-bottom: 0em;
+}
+
+.ui.segment:after {
+ content: '';
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+.ui.vertical.segment {
+ margin: 0em;
+ padding-right: 0em;
+ padding-left: 0em;
+ background-color: transparent;
+ border-radius: 0px;
+ -webkit-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.1);
+}
+
+.ui.vertical.segment:first-child {
+ padding-top: 0em;
+}
+
+.ui.horizontal.segment {
+ margin: 0em;
+ padding-top: 0em;
+ padding-bottom: 0em;
+ background-color: transparent;
+ border-radius: 0px;
+ -webkit-box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1);
+ box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1);
+}
+
+.ui.horizontal.segment:first-child {
+ padding-right: 0em;
+}
+
+/*-------------------
+ Loose Coupling
+--------------------*/
+
+.ui.pointing.menu ~ .ui.attached.segment {
+ top: 1px;
+}
+
+.ui.page.grid.segment
+.ui.grid .ui.segment.column {
+ padding-top: 2rem;
+ padding-bottom: 2rem;
+}
+
+.ui.grid.segment,
+.ui.grid .ui.segment.row,
+.ui.grid .ui.segment.column {
+ border-radius: 0em;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border: none;
+}
+
+/* No padding on edge content */
+
+.ui.segment > :first-child {
+ margin-top: 0em;
+}
+
+.ui.segment > :last-child {
+ margin-bottom: 0em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Piled
+--------------------*/
+
+.ui.piled.segment {
+ margin: 2em 0em;
+ -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15);
+ -ms-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15);
+ -o-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15);
+ box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15);
+}
+
+.ui.piled.segment:first-child {
+ margin-top: 0em;
+}
+
+.ui.piled.segment:last-child {
+ margin-bottom: 0em;
+}
+
+.ui.piled.segment:after,
+.ui.piled.segment:before {
+ background-color: #FFFFFF;
+ visibility: visible;
+ content: "";
+ display: block;
+ height: 100%;
+ right: -1px;
+ position: absolute;
+ width: 100%;
+ -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.piled.segment:after {
+ -webkit-transform: rotate(1.2deg);
+ -moz-transform: rotate(1.2deg);
+ -ms-transform: rotate(1.2deg);
+ transform: rotate(1.2deg);
+ top: 0;
+ z-index: -1;
+}
+
+.ui.piled.segment:before {
+ -webkit-transform: rotate(-1.2deg);
+ -moz-transform: rotate(-1.2deg);
+ -ms-transform: rotate(-1.2deg);
+ transform: rotate(-1.2deg);
+ top: 0;
+ z-index: -2;
+}
+
+/*-------------------
+ Stacked
+--------------------*/
+
+.ui.stacked.segment {
+ padding-bottom: 1.7em;
+}
+
+.ui.stacked.segment:after,
+.ui.stacked.segment:before {
+ content: '';
+ position: absolute;
+ bottom: -3px;
+ right: 0%;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ background-color: rgba(0, 0, 0, 0.02);
+ width: 100%;
+ height: 5px;
+ visibility: visible;
+}
+
+.ui.stacked.segment:before {
+ bottom: 0px;
+}
+
+/* Inverted */
+
+.ui.stacked.inverted.segment:after,
+.ui.stacked.inverted.segment:before {
+ background-color: rgba(255, 255, 255, 0.1);
+ border-top: 1px solid rgba(255, 255, 255, 0.35);
+}
+
+/*-------------------
+ Circular
+--------------------*/
+
+.ui.circular.segment {
+ display: table-cell;
+ padding: 2em;
+ text-align: center;
+ vertical-align: middle;
+ border-radius: 500em;
+}
+
+/*-------------------
+ Raised
+--------------------*/
+
+.ui.raised.segment {
+ -webkit-box-shadow: 0px 1px 2px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 1px 2px 1px rgba(0, 0, 0, 0.1);
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.disabled.segment {
+ opacity: 0.8;
+ color: #DDDDDD;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Basic
+--------------------*/
+
+.ui.basic.segment {
+ position: relative;
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border-radius: 0px;
+}
+
+.ui.basic.segment:first-child {
+ padding-top: 0em;
+}
+
+.ui.basic.segment:last-child {
+ padding-bottom: 0em;
+}
+
+/*-------------------
+ Fittted
+--------------------*/
+
+.ui.fitted.segment {
+ padding: 0em;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+.ui.blue.segment {
+ border-top: 0.2em solid #6ECFF5;
+}
+
+.ui.green.segment {
+ border-top: 0.2em solid #A1CF64;
+}
+
+.ui.red.segment {
+ border-top: 0.2em solid #D95C5C;
+}
+
+.ui.orange.segment {
+ border-top: 0.2em solid #F05940;
+}
+
+.ui.purple.segment {
+ border-top: 0.2em solid #564F8A;
+}
+
+.ui.teal.segment {
+ border-top: 0.2em solid #00B5AD;
+}
+
+/*-------------------
+ Inverted Colors
+--------------------*/
+
+.ui.inverted.black.segment {
+ background-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.blue.segment {
+ background-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.green.segment {
+ background-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.red.segment {
+ background-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.orange.segment {
+ background-color: #F05940 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.purple.segment {
+ background-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.teal.segment {
+ background-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+/*-------------------
+ Aligned
+--------------------*/
+
+.ui.left.aligned.segment {
+ text-align: right;
+}
+
+.ui.right.aligned.segment {
+ text-align: left;
+}
+
+.ui.center.aligned.segment {
+ text-align: center;
+}
+
+.ui.justified.segment {
+ text-align: justify;
+ -webkit-hyphens: auto;
+ -moz-hyphens: auto;
+ -ms-hyphens: auto;
+ hyphens: auto;
+}
+
+/*-------------------
+ Floated
+--------------------*/
+
+.ui.floated.segment,
+.ui.left.floated.segment {
+ float: right;
+}
+
+.ui.right.floated.segment {
+ float: left;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.inverted.segment {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.segment .segment {
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.inverted.segment .inverted.segment {
+ color: #FFFFFF;
+}
+
+.ui.inverted.segment,
+.ui.primary.inverted.segment {
+ background-color: #222222;
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Ordinality
+--------------------*/
+
+.ui.primary.segment {
+ background-color: #FFFFFF;
+ color: #555555;
+}
+
+.ui.secondary.segment {
+ background-color: #FAF9FA;
+ color: #777777;
+}
+
+.ui.tertiary.segment {
+ background-color: #EBEBEB;
+ color: #B0B0B0;
+}
+
+.ui.secondary.inverted.segment {
+ background-color: #555555;
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(rgba(255, 255, 255, 0.3)), to(rgba(255, 255, 255, 0.3)));
+ background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.3) 100%);
+ background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.3) 100%);
+ background-image: -webkit-gradient(linear, right top, right bottom, from(rgba(255, 255, 255, 0.3)), to(rgba(255, 255, 255, 0.3)));
+ background-image: linear-gradient(rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.3) 100%);
+ color: #FAFAFA;
+}
+
+.ui.tertiary.inverted.segment {
+ background-color: #555555;
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(rgba(255, 255, 255, 0.6)), to(rgba(255, 255, 255, 0.6)));
+ background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.6) 100%);
+ background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.6) 100%);
+ background-image: -webkit-gradient(linear, right top, right bottom, from(rgba(255, 255, 255, 0.6)), to(rgba(255, 255, 255, 0.6)));
+ background-image: linear-gradient(rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.6) 100%);
+ color: #EEEEEE;
+}
+
+/*-------------------
+ Attached
+--------------------*/
+
+.ui.segment.attached {
+ top: -1px;
+ bottom: -1px;
+ border-radius: 0px;
+ margin: 0em;
+ -webkit-box-shadow: 0px 0px 0px 1px #DDDDDD;
+ box-shadow: 0px 0px 0px 1px #DDDDDD;
+}
+
+.ui.top.attached.segment {
+ top: 0px;
+ bottom: -1px;
+ margin-top: 1em;
+ margin-bottom: 0em;
+ border-radius: 5px 5px 0px 0px;
+}
+
+.ui.segment.top.attached:first-child {
+ margin-top: 0em;
+}
+
+.ui.segment.bottom.attached {
+ top: -1px;
+ bottom: 0px;
+ margin-top: 0em;
+ margin-bottom: 1em;
+ border-radius: 0px 0px 5px 5px;
+}
+
+.ui.segment.bottom.attached:last-child {
+ margin-bottom: 0em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/elements/step.less b/css/semantic/rtl/less/elements/step.less
new file mode 100644
index 0000000..8a577f6
--- /dev/null
+++ b/css/semantic/rtl/less/elements/step.less
@@ -0,0 +1,341 @@
+/*
+ * # Semantic - Steps
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Step
+*******************************/
+
+.ui.step,
+.ui.steps .step {
+ display: inline-block;
+ position: relative;
+ padding: 1em 3em 1em 2em;
+ vertical-align: top;
+ background-color: #FFFFFF;
+ color: #888888;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.step:after,
+.ui.steps .step:after {
+ position: absolute;
+ z-index: 2;
+ content: '';
+ top: 0.42em;
+ left: -1em;
+ border: medium none;
+ background-color: #FFFFFF;
+ width: 2.2em;
+ height: 2.2em;
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+ -webkit-box-shadow: -1px -1px 0 0 rgba(0, 0, 0, 0.15) inset;
+ box-shadow: -1px -1px 0 0 rgba(0, 0, 0, 0.15) inset;
+}
+
+.ui.step,
+.ui.steps .step,
+.ui.steps .step:after {
+ -webkit-transition: background-color 0.1s ease,
+ opacity 0.1s ease,
+ color 0.1s ease,
+ -webkit-box-shadow 0.1s ease;
+ -moz-transition: background-color 0.1s ease,
+ opacity 0.1s ease,
+ color 0.1s ease,
+ box-shadow 0.1s ease;
+ transition: background-color 0.1s ease,
+ opacity 0.1s ease,
+ color 0.1s ease,
+ box-shadow 0.1s ease;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/* Vertical */
+
+.ui.vertical.steps {
+ overflow: visible;
+}
+
+.ui.vertical.steps .step {
+ display: block;
+ border-radius: 0em;
+ padding: 1em 2em;
+}
+
+.ui.vertical.steps .step:first-child {
+ padding: 1em 2em;
+ border-radius: 0em;
+ border-top-right-radius: 0.3125rem;
+ border-top-left-radius: 0.3125rem;
+}
+
+.ui.vertical.steps .active.step:first-child {
+ border-top-left-radius: 0rem;
+}
+
+.ui.vertical.steps .step:last-child {
+ border-radius: 0em;
+ border-bottom-right-radius: 0.3125rem;
+ border-bottom-left-radius: 0.3125rem;
+}
+
+.ui.vertical.steps .active.step:last-child {
+ border-bottom-left-radius: 0rem;
+}
+
+/* Arrow */
+
+.ui.vertical.steps .step:after {
+ display: none;
+}
+
+/* Active Arrow */
+
+.ui.vertical.steps .active.step:after {
+ display: block;
+}
+
+/* Two Line */
+
+.ui.vertical.steps .two.line.step {
+ line-height: 1.3;
+}
+
+.ui.vertical.steps .two.line.active.step:after {
+ position: absolute;
+ z-index: 2;
+ content: '';
+ top: 0em;
+ left: -1.45em;
+ background-color: transparent;
+ border-bottom: 2.35em solid transparent;
+ border-right: 1.55em solid #555555;
+ border-top: 2.35em solid transparent;
+ width: 0em;
+ height: 0em;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+}
+
+/*******************************
+ Group
+*******************************/
+
+.ui.steps {
+ cursor: pointer;
+ display: inline-block;
+ font-size: 0em;
+ overflow: hidden;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ line-height: 1;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ border-radius: 0.3125rem;
+}
+
+.ui.steps .step:first-child {
+ padding-right: 1.35em;
+ border-radius: 0em 0.3125em 0.3125em 0em;
+}
+
+.ui.steps .step:last-child {
+ border-radius: 0.3125em 0em 0em 0.3125em;
+}
+
+.ui.steps .step:only-child {
+ border-radius: 0.3125em;
+}
+
+.ui.steps .step:last-child {
+ margin-left: 0em;
+}
+
+.ui.steps .step:last-child:after {
+ display: none;
+}
+
+/*******************************
+ States
+*******************************/
+
+/* Hover */
+
+.ui.step:hover,
+.ui.step.hover {
+ background-color: #F7F7F7;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.steps .step.hover:after,
+.ui.steps .step:hover:after,
+.ui.step:hover,
+.ui.step.hover::after {
+ background-color: #F7F7F7;
+}
+
+/* Hover */
+
+.ui.steps .step.down,
+.ui.steps .step:active,
+.ui.step.down,
+.ui.step:active {
+ background-color: #F0F0F0;
+}
+
+.ui.steps .step.down:after,
+.ui.steps .step:active:after,
+.ui.steps.down::after,
+.ui.steps:active::after {
+ background-color: #F0F0F0;
+}
+
+/* Active */
+
+.ui.steps .step.active,
+.ui.active.step {
+ cursor: auto;
+ background-color: #555555;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+
+.ui.steps .step.active:after,
+.ui.active.steps:after {
+ background-color: #555555;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* Disabled */
+
+.ui.steps .disabled.step,
+.ui.disabled.step {
+ cursor: auto;
+ background-color: #FFFFFF;
+ color: #CBCBCB;
+}
+
+.ui.steps .disabled.step:after,
+.ui.disabled.step:after {
+ background-color: #FFFFFF;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/* Attached */
+
+.attached.ui.steps {
+ margin: 0em;
+ border-radius: 0.3125em 0.3125em 0em 0em;
+}
+
+.attached.ui.steps .step:first-child {
+ border-radius: 0em 0.3125em 0em 0em;
+}
+
+.attached.ui.steps .step:last-child {
+ border-radius: 0.3125em 0em 0em 0em;
+}
+
+/* Bottom Side */
+
+.bottom.attached.ui.steps {
+ margin-top: -1px;
+ border-radius: 0em 0em 0.3125em 0.3125em;
+}
+
+.bottom.attached.ui.steps .step:first-child {
+ border-radius: 0em 0em 0.3125em 0em;
+}
+
+.bottom.attached.ui.steps .step:last-child {
+ border-radius: 0em 0em 0em 0.3125em;
+}
+
+/* Evenly divided */
+
+.ui.one.steps,
+.ui.two.steps,
+.ui.three.steps,
+.ui.four.steps,
+.ui.five.steps,
+.ui.six.steps,
+.ui.seven.steps,
+.ui.eight.steps {
+ display: block;
+}
+
+.ui.one.steps > .step {
+ width: 100%;
+}
+
+.ui.two.steps > .step {
+ width: 50%;
+}
+
+.ui.three.steps > .step {
+ width: 33.333%;
+}
+
+.ui.four.steps > .step {
+ width: 25%;
+}
+
+.ui.five.steps > .step {
+ width: 20%;
+}
+
+.ui.six.steps > .step {
+ width: 16.666%;
+}
+
+.ui.seven.steps > .step {
+ width: 14.285%;
+}
+
+.ui.eight.steps > .step {
+ width: 12.500%;
+}
+
+/*******************************
+ Sizes
+*******************************/
+
+.ui.small.step,
+.ui.small.steps .step {
+ font-size: 0.8rem;
+}
+
+.ui.step,
+.ui.steps .step {
+ font-size: 1rem;
+}
+
+.ui.large.step,
+.ui.large.steps .step {
+ font-size: 1.25rem;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/fonts/basic.icons.eot b/css/semantic/rtl/less/fonts/basic.icons.eot
new file mode 100644
index 0000000..25066de
Binary files /dev/null and b/css/semantic/rtl/less/fonts/basic.icons.eot differ
diff --git a/css/semantic/rtl/less/fonts/basic.icons.svg b/css/semantic/rtl/less/fonts/basic.icons.svg
new file mode 100644
index 0000000..b9c54d0
--- /dev/null
+++ b/css/semantic/rtl/less/fonts/basic.icons.svg
@@ -0,0 +1,450 @@
+
+
+
+
+Created by FontForge 20100429 at Thu Sep 20 22:09:47 2012
+ By root
+Copyright (C) 2012 by original authors @ fontello.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/css/semantic/rtl/less/fonts/basic.icons.ttf b/css/semantic/rtl/less/fonts/basic.icons.ttf
new file mode 100644
index 0000000..318a264
Binary files /dev/null and b/css/semantic/rtl/less/fonts/basic.icons.ttf differ
diff --git a/css/semantic/rtl/less/fonts/basic.icons.woff b/css/semantic/rtl/less/fonts/basic.icons.woff
new file mode 100644
index 0000000..baba1b5
Binary files /dev/null and b/css/semantic/rtl/less/fonts/basic.icons.woff differ
diff --git a/css/semantic/rtl/less/fonts/icons.eot b/css/semantic/rtl/less/fonts/icons.eot
new file mode 100644
index 0000000..0662cb9
Binary files /dev/null and b/css/semantic/rtl/less/fonts/icons.eot differ
diff --git a/css/semantic/rtl/less/fonts/icons.otf b/css/semantic/rtl/less/fonts/icons.otf
new file mode 100644
index 0000000..7012545
Binary files /dev/null and b/css/semantic/rtl/less/fonts/icons.otf differ
diff --git a/css/semantic/rtl/less/fonts/icons.svg b/css/semantic/rtl/less/fonts/icons.svg
new file mode 100644
index 0000000..2edb4ec
--- /dev/null
+++ b/css/semantic/rtl/less/fonts/icons.svg
@@ -0,0 +1,399 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/rtl/less/fonts/icons.ttf b/css/semantic/rtl/less/fonts/icons.ttf
new file mode 100644
index 0000000..d365924
Binary files /dev/null and b/css/semantic/rtl/less/fonts/icons.ttf differ
diff --git a/css/semantic/rtl/less/fonts/icons.woff b/css/semantic/rtl/less/fonts/icons.woff
new file mode 100644
index 0000000..b9bd17e
Binary files /dev/null and b/css/semantic/rtl/less/fonts/icons.woff differ
diff --git a/css/semantic/rtl/less/images/loader-large-inverted.gif b/css/semantic/rtl/less/images/loader-large-inverted.gif
new file mode 100644
index 0000000..ee5283f
Binary files /dev/null and b/css/semantic/rtl/less/images/loader-large-inverted.gif differ
diff --git a/css/semantic/rtl/less/images/loader-large.gif b/css/semantic/rtl/less/images/loader-large.gif
new file mode 100644
index 0000000..519621c
Binary files /dev/null and b/css/semantic/rtl/less/images/loader-large.gif differ
diff --git a/css/semantic/rtl/less/images/loader-medium-inverted.gif b/css/semantic/rtl/less/images/loader-medium-inverted.gif
new file mode 100644
index 0000000..caa3110
Binary files /dev/null and b/css/semantic/rtl/less/images/loader-medium-inverted.gif differ
diff --git a/css/semantic/rtl/less/images/loader-medium.gif b/css/semantic/rtl/less/images/loader-medium.gif
new file mode 100644
index 0000000..386eb5a
Binary files /dev/null and b/css/semantic/rtl/less/images/loader-medium.gif differ
diff --git a/css/semantic/rtl/less/images/loader-mini-inverted.gif b/css/semantic/rtl/less/images/loader-mini-inverted.gif
new file mode 100644
index 0000000..c7c95b9
Binary files /dev/null and b/css/semantic/rtl/less/images/loader-mini-inverted.gif differ
diff --git a/css/semantic/rtl/less/images/loader-mini.gif b/css/semantic/rtl/less/images/loader-mini.gif
new file mode 100644
index 0000000..7f3e27c
Binary files /dev/null and b/css/semantic/rtl/less/images/loader-mini.gif differ
diff --git a/css/semantic/rtl/less/images/loader-small-inverted.gif b/css/semantic/rtl/less/images/loader-small-inverted.gif
new file mode 100644
index 0000000..bbb0a67
Binary files /dev/null and b/css/semantic/rtl/less/images/loader-small-inverted.gif differ
diff --git a/css/semantic/rtl/less/images/loader-small.gif b/css/semantic/rtl/less/images/loader-small.gif
new file mode 100644
index 0000000..8c9f60e
Binary files /dev/null and b/css/semantic/rtl/less/images/loader-small.gif differ
diff --git a/css/semantic/rtl/less/modules/accordion.js b/css/semantic/rtl/less/modules/accordion.js
new file mode 100644
index 0000000..69ff0d5
--- /dev/null
+++ b/css/semantic/rtl/less/modules/accordion.js
@@ -0,0 +1,428 @@
+/*
+ * # Semantic - Accordion
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.accordion = function(parameters) {
+ var
+ $allModules = $(this),
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.accordion.settings, parameters)
+ : $.extend({}, $.fn.accordion.settings),
+
+ className = settings.className,
+ namespace = settings.namespace,
+ selector = settings.selector,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+ moduleSelector = $allModules.selector || '',
+
+ $module = $(this),
+ $title = $module.find(selector.title),
+ $content = $module.find(selector.content),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing accordion with bound events', $module);
+ // initializing
+ $title
+ .on('click' + eventNamespace, module.event.click)
+ ;
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.debug('Destroying previous accordion for', $module);
+ $module
+ .removeData(moduleNamespace)
+ ;
+ $title
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+ click: function() {
+ module.verbose('Title clicked', this);
+ var
+ $activeTitle = $(this),
+ index = $title.index($activeTitle)
+ ;
+ module.toggle(index);
+ },
+ resetDisplay: function() {
+ $(this).css('display', '');
+ if( $(this).attr('style') == '') {
+ $(this)
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ }
+ },
+ resetOpacity: function() {
+ $(this).css('opacity', '');
+ if( $(this).attr('style') == '') {
+ $(this)
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ }
+ }
+ },
+
+ toggle: function(index) {
+ module.debug('Toggling content content at index', index);
+ var
+ $activeTitle = $title.eq(index),
+ $activeContent = $activeTitle.next($content),
+ contentIsOpen = $activeContent.is(':visible')
+ ;
+ if(contentIsOpen) {
+ if(settings.collapsible) {
+ module.close(index);
+ }
+ else {
+ module.debug('Cannot close accordion content collapsing is disabled');
+ }
+ }
+ else {
+ module.open(index);
+ }
+ },
+
+ open: function(index) {
+ var
+ $activeTitle = $title.eq(index),
+ $activeContent = $activeTitle.next($content),
+ $previousTitle = $activeTitle.siblings(selector.title).filter('.' + className.active),
+ $previousContent = $previousTitle.next($title),
+ contentIsOpen = ($previousTitle.size() > 0)
+ ;
+ if( !$activeContent.is(':animated') ) {
+ module.debug('Opening accordion content', $activeTitle);
+ if(settings.exclusive && contentIsOpen) {
+ $previousTitle
+ .removeClass(className.active)
+ ;
+ $previousContent
+ .stop()
+ .children()
+ .stop()
+ .animate({
+ opacity: 0
+ }, settings.duration, module.event.resetOpacity)
+ .end()
+ .slideUp(settings.duration , settings.easing, function() {
+ $previousContent
+ .removeClass(className.active)
+ .children()
+ ;
+ $.proxy(module.event.resetDisplay, this)();
+ })
+ ;
+ }
+ $activeTitle
+ .addClass(className.active)
+ ;
+ $activeContent
+ .stop()
+ .children()
+ .stop()
+ .animate({
+ opacity: 1
+ }, settings.duration)
+ .end()
+ .slideDown(settings.duration, settings.easing, function() {
+ $activeContent
+ .addClass(className.active)
+ ;
+ $.proxy(module.event.resetDisplay, this)();
+ $.proxy(settings.onOpen, $activeContent)();
+ $.proxy(settings.onChange, $activeContent)();
+ })
+ ;
+ }
+ },
+
+ close: function(index) {
+ var
+ $activeTitle = $title.eq(index),
+ $activeContent = $activeTitle.next($content)
+ ;
+ module.debug('Closing accordion content', $activeContent);
+ $activeTitle
+ .removeClass(className.active)
+ ;
+ $activeContent
+ .removeClass(className.active)
+ .show()
+ .stop()
+ .children()
+ .stop()
+ .animate({
+ opacity: 0
+ }, settings.duration, module.event.resetOpacity)
+ .end()
+ .slideUp(settings.duration, settings.easing, function(){
+ $.proxy(module.event.resetDisplay, this)();
+ $.proxy(settings.onClose, $activeContent)();
+ $.proxy(settings.onChange, $activeContent)();
+ })
+ ;
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ module.debug('Changing internal', name, value);
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else {
+ module[name] = value;
+ }
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.accordion.settings = {
+ name : 'Accordion',
+ namespace : 'accordion',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ exclusive : true,
+ collapsible : true,
+
+ duration : 500,
+ easing : 'easeInOutQuint',
+
+ onOpen : function(){},
+ onClose : function(){},
+ onChange : function(){},
+
+ error: {
+ method : 'The method you called is not defined'
+ },
+
+ className : {
+ active : 'active'
+ },
+
+ selector : {
+ title : '.title',
+ content : '.content'
+ }
+
+
+};
+
+// Adds easing
+$.extend( $.easing, {
+ easeInOutQuint: function (x, t, b, c, d) {
+ if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
+ return c/2*((t-=2)*t*t*t*t + 2) + b;
+ }
+});
+
+})( jQuery, window , document );
+
diff --git a/css/semantic/rtl/less/modules/accordion.less b/css/semantic/rtl/less/modules/accordion.less
new file mode 100644
index 0000000..cf6365a
--- /dev/null
+++ b/css/semantic/rtl/less/modules/accordion.less
@@ -0,0 +1,173 @@
+/*
+ * # Semantic - Accordion
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Accordion
+*******************************/
+
+.ui.accordion,
+.ui.accordion .accordion {
+ width: 600px;
+ max-width: 100%;
+ font-size: 1rem;
+ border-radius: 0.3125em;
+ background-color: #FFFFFF;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.accordion .title,
+.ui.accordion .accordion .title {
+ cursor: pointer;
+ margin: 0em;
+ padding: 0.75em 1em;
+ color: rgba(0, 0, 0, 0.6);
+ border-top: 1px solid rgba(0, 0, 0, 0.05);
+ -webkit-transition: background-color 0.2s ease-out;
+ -moz-transition: background-color 0.2s ease-out;
+ transition: background-color 0.2s ease-out;
+}
+
+.ui.accordion .title:first-child,
+.ui.accordion .accordion .title:first-child {
+ border-top: none;
+}
+
+/* Content */
+
+.ui.accordion .content,
+.ui.accordion .accordion .content {
+ display: none;
+ margin: 0em;
+ padding: 1.3em 1em;
+}
+
+/* Arrow */
+
+.ui.accordion .title .dropdown.icon,
+.ui.accordion .accordion .title .dropdown.icon {
+ display: inline-block;
+ float: none;
+ margin: 0em 0em 0em 0.5em;
+ -webkit-transition: -webkit-transform 0.2s ease,
+ opacity 0.2s ease;
+ -moz-transition: -moz-transform 0.2s ease,
+ opacity 0.2s ease;
+ transition: transform 0.2s ease,
+ opacity 0.2s ease;
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+}
+
+.ui.accordion .title .dropdown.icon:before,
+.ui.accordion .accordion .title .dropdown.icon:before {
+ content: '\f0da'/*rtl:'\f0d9'*/;
+}
+
+/*--------------
+ Loose Coupling
+---------------*/
+
+.ui.basic.accordion.menu {
+ background-color: #FFFFFF;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.basic.accordion.menu .title,
+.ui.basic.accordion.menu .content {
+ padding: 0em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Basic
+---------------*/
+
+.ui.basic.accordion {
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.basic.accordion .title,
+.ui.basic.accordion .accordion .title {
+ background-color: transparent;
+ border-top: none;
+ padding-right: 0em;
+ padding-left: 0em;
+}
+
+.ui.basic.accordion .content,
+.ui.basic.accordion .accordion .content {
+ padding: 0.5em 0em;
+}
+
+.ui.basic.accordion .active.title,
+.ui.basic.accordion .accordion .active.title {
+ background-color: transparent;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.accordion .title:hover,
+.ui.accordion .active.title,
+.ui.accordion .accordion .title:hover,
+.ui.accordion .accordion .active.title {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.accordion .active.title,
+.ui.accordion .accordion .active.title {
+ background-color: rgba(0, 0, 0, 0.1);
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.accordion .active.title .dropdown.icon,
+.ui.accordion .accordion .active.title .dropdown.icon {
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+
+.ui.accordion .active.content,
+.ui.accordion .accordion .active.content {
+ display: block;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Fluid
+---------------*/
+
+.ui.fluid.accordion,
+.ui.fluid.accordion .accordion {
+ width: 100%;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/modules/behavior/api.js b/css/semantic/rtl/less/modules/behavior/api.js
new file mode 100644
index 0000000..0b2c87c
--- /dev/null
+++ b/css/semantic/rtl/less/modules/behavior/api.js
@@ -0,0 +1,634 @@
+/*
+ * # Semantic - API
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+ $.api = $.fn.api = function(parameters) {
+
+ var
+ settings = $.extend(true, {}, $.api.settings, parameters),
+
+ // if this keyword isn't a jQuery object, create one
+ context = (typeof this != 'function')
+ ? this
+ : $('
'),
+ // context defines the element used for loading/error state
+ $context = (settings.stateContext)
+ ? $(settings.stateContext)
+ : $(context),
+ // module is the thing that initiates the api action, can be independent of context
+ $module = typeof this == 'object'
+ ? $(context)
+ : $context,
+
+ element = this,
+ time = new Date().getTime(),
+ performance = [],
+
+ moduleSelector = $module.selector || '',
+ moduleNamespace = settings.namespace + '-module',
+
+ className = settings.className,
+ metadata = settings.metadata,
+ error = settings.error,
+
+ instance = $module.data(moduleNamespace),
+
+ query = arguments[0],
+ methodInvoked = (instance !== undefined && typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ module,
+ returnedValue
+ ;
+
+ module = {
+ initialize: function() {
+ var
+ runSettings,
+
+ loadingTimer = new Date().getTime(),
+ loadingDelay,
+
+ promise,
+ url,
+
+ formData = {},
+ data,
+
+ ajaxSettings = {},
+ xhr
+ ;
+
+ // serialize parent form if requested!
+ if(settings.serializeForm && $(this).toJSON() !== undefined) {
+ formData = module.get.formData();
+ module.debug('Adding form data to API Request', formData);
+ $.extend(true, settings.data, formData);
+ }
+
+ // let beforeSend change settings object
+ runSettings = $.proxy(settings.beforeSend, $module)(settings);
+
+ // check for exit conditions
+ if(runSettings !== undefined && !runSettings) {
+ module.error(error.beforeSend);
+ module.reset();
+ return;
+ }
+
+ // get real url from template
+ url = module.get.url( module.get.templateURL() );
+
+ // exit conditions reached from missing url parameters
+ if( !url ) {
+ module.error(error.missingURL);
+ module.reset();
+ return;
+ }
+
+ // promise handles notification on api request, so loading min. delay can occur for all notifications
+ promise =
+ $.Deferred()
+ .always(function() {
+ if(settings.stateContext) {
+ $context
+ .removeClass(className.loading)
+ ;
+ }
+ $.proxy(settings.complete, $module)();
+ })
+ .done(function(response) {
+ module.debug('API request successful');
+ // take a stab at finding success state if json
+ if(settings.dataType == 'json') {
+ if (response.error !== undefined) {
+ $.proxy(settings.failure, $context)(response.error, settings, $module);
+ }
+ else if ($.isArray(response.errors)) {
+ $.proxy(settings.failure, $context)(response.errors[0], settings, $module);
+ }
+ else {
+ $.proxy(settings.success, $context)(response, settings, $module);
+ }
+ }
+ // otherwise
+ else {
+ $.proxy(settings.success, $context)(response, settings, $module);
+ }
+ })
+ .fail(function(xhr, status, httpMessage) {
+ var
+ errorMessage = (settings.error[status] !== undefined)
+ ? settings.error[status]
+ : httpMessage,
+ response
+ ;
+ // let em know unless request aborted
+ if(xhr !== undefined) {
+ // readyState 4 = done, anything less is not really sent
+ if(xhr.readyState !== undefined && xhr.readyState == 4) {
+
+ // if http status code returned and json returned error, look for it
+ if( xhr.status != 200 && httpMessage !== undefined && httpMessage !== '') {
+ module.error(error.statusMessage + httpMessage);
+ }
+ else {
+ if(status == 'error' && settings.dataType == 'json') {
+ try {
+ response = $.parseJSON(xhr.responseText);
+ if(response && response.error !== undefined) {
+ errorMessage = response.error;
+ }
+ }
+ catch(error) {
+ module.error(error.JSONParse);
+ }
+ }
+ }
+ $context
+ .removeClass(className.loading)
+ .addClass(className.error)
+ ;
+ // show error state only for duration specified in settings
+ if(settings.errorLength > 0) {
+ setTimeout(function(){
+ $context
+ .removeClass(className.error)
+ ;
+ }, settings.errorLength);
+ }
+ module.debug('API Request error:', errorMessage);
+ $.proxy(settings.failure, $context)(errorMessage, settings, this);
+ }
+ else {
+ module.debug('Request Aborted (Most likely caused by page change)');
+ }
+ }
+ })
+ ;
+
+ // look for params in data
+ $.extend(true, ajaxSettings, settings, {
+ success : function(){},
+ failure : function(){},
+ complete : function(){},
+ type : settings.method || settings.type,
+ data : data,
+ url : url,
+ beforeSend : settings.beforeXHR
+ });
+
+ if(settings.stateContext) {
+ $context
+ .addClass(className.loading)
+ ;
+ }
+
+ if(settings.progress) {
+ module.verbose('Adding progress events');
+ $.extend(true, ajaxSettings, {
+ xhr: function() {
+ var
+ xhr = new window.XMLHttpRequest()
+ ;
+ xhr.upload.addEventListener('progress', function(event) {
+ var
+ percentComplete
+ ;
+ if (event.lengthComputable) {
+ percentComplete = Math.round(event.loaded / event.total * 10000) / 100 + '%';
+ $.proxy(settings.progress, $context)(percentComplete, event);
+ }
+ }, false);
+ xhr.addEventListener('progress', function(event) {
+ var
+ percentComplete
+ ;
+ if (event.lengthComputable) {
+ percentComplete = Math.round(event.loaded / event.total * 10000) / 100 + '%';
+ $.proxy(settings.progress, $context)(percentComplete, event);
+ }
+ }, false);
+ return xhr;
+ }
+ });
+ }
+
+ module.verbose('Creating AJAX request with settings: ', ajaxSettings);
+ xhr =
+ $.ajax(ajaxSettings)
+ .always(function() {
+ // calculate if loading time was below minimum threshold
+ loadingDelay = ( settings.loadingLength - (new Date().getTime() - loadingTimer) );
+ settings.loadingDelay = loadingDelay < 0
+ ? 0
+ : loadingDelay
+ ;
+ })
+ .done(function(response) {
+ var
+ context = this
+ ;
+ setTimeout(function(){
+ promise.resolveWith(context, [response]);
+ }, settings.loadingDelay);
+ })
+ .fail(function(xhr, status, httpMessage) {
+ var
+ context = this
+ ;
+ // page triggers abort on navigation, dont show error
+ if(status != 'abort') {
+ setTimeout(function(){
+ promise.rejectWith(context, [xhr, status, httpMessage]);
+ }, settings.loadingDelay);
+ }
+ else {
+ $context
+ .removeClass(className.error)
+ .removeClass(className.loading)
+ ;
+ }
+ })
+ ;
+ if(settings.stateContext) {
+ $module
+ .data(metadata.promise, promise)
+ .data(metadata.xhr, xhr)
+ ;
+ }
+ },
+
+ get: {
+ formData: function() {
+ return $module
+ .closest('form')
+ .toJSON()
+ ;
+ },
+ templateURL: function() {
+ var
+ action = $module.data(settings.metadata.action) || settings.action || false,
+ url
+ ;
+ if(action) {
+ module.debug('Creating url for: ', action);
+ if(settings.api[action] !== undefined) {
+ url = settings.api[action];
+ }
+ else {
+ module.error(error.missingAction);
+ }
+ }
+ // override with url if specified
+ if(settings.url) {
+ url = settings.url;
+ module.debug('Getting url', url);
+ }
+ return url;
+ },
+ url: function(url, urlData) {
+ var
+ urlVariables
+ ;
+ if(url) {
+ urlVariables = url.match(settings.regExpTemplate);
+ urlData = urlData || settings.urlData;
+
+ if(urlVariables) {
+ module.debug('Looking for URL variables', urlVariables);
+ $.each(urlVariables, function(index, templateValue){
+ var
+ term = templateValue.substr( 2, templateValue.length - 3),
+ termValue = ($.isPlainObject(urlData) && urlData[term] !== undefined)
+ ? urlData[term]
+ : ($module.data(term) !== undefined)
+ ? $module.data(term)
+ : urlData[term]
+ ;
+ module.verbose('Looking for variable', term, $module, $module.data(term), urlData[term]);
+ // remove optional value
+ if(termValue === false) {
+ module.debug('Removing variable from URL', urlVariables);
+ url = url.replace('/' + templateValue, '');
+ }
+ // undefined condition
+ else if(termValue === undefined || !termValue) {
+ module.error(error.missingParameter + term);
+ url = false;
+ return false;
+ }
+ else {
+ url = url.replace(templateValue, termValue);
+ }
+ });
+ }
+ }
+ return url;
+ }
+ },
+
+ // reset api request
+ reset: function() {
+ $module
+ .data(metadata.promise, false)
+ .data(metadata.xhr, false)
+ ;
+ $context
+ .removeClass(className.error)
+ .removeClass(className.loading)
+ ;
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+ };
+
+ // handle DOM attachment to API functionality
+ $.fn.apiButton = function(parameters) {
+ $(this)
+ .each(function(){
+ var
+ // if only function passed it is success callback
+ $module = $(this),
+ selector = $(this).selector || '',
+
+ settings = ( $.isFunction(parameters) )
+ ? $.extend(true, {}, $.api.settings, $.fn.apiButton.settings, { stateContext: this, success: parameters })
+ : $.extend(true, {}, $.api.settings, $.fn.apiButton.settings, { stateContext: this}, parameters),
+ module
+ ;
+ module = {
+ initialize: function() {
+ if(settings.context && selector !== '') {
+ $(settings.context)
+ .on(selector, 'click.' + settings.namespace, module.click)
+ ;
+ }
+ else {
+ $module
+ .on('click.' + settings.namespace, module.click)
+ ;
+ }
+ },
+ click: function() {
+ if(!settings.filter || $(this).filter(settings.filter).size() === 0) {
+ $.proxy( $.api, this )(settings);
+ }
+ }
+ };
+ module.initialize();
+ })
+ ;
+ return this;
+ };
+
+ $.api.settings = {
+
+ name : 'API',
+ namespace : 'api',
+
+ debug : true,
+ verbose : true,
+ performance : true,
+
+ api : {},
+
+ beforeSend : function(settings) {
+ return settings;
+ },
+ beforeXHR : function(xhr) {},
+ success : function(response) {},
+ complete : function(response) {},
+ failure : function(errorCode) {},
+ progress : false,
+
+ error : {
+ missingAction : 'API action used but no url was defined',
+ missingURL : 'URL not specified for the API action',
+ missingParameter : 'Missing an essential URL parameter: ',
+
+ timeout : 'Your request timed out',
+ error : 'There was an error with your request',
+ parseError : 'There was an error parsing your request',
+ JSONParse : 'JSON could not be parsed during error handling',
+ statusMessage : 'Server gave an error: ',
+ beforeSend : 'The before send function has aborted the request',
+ exitConditions : 'API Request Aborted. Exit conditions met'
+ },
+
+ className: {
+ loading : 'loading',
+ error : 'error'
+ },
+
+ metadata: {
+ action : 'action',
+ promise : 'promise',
+ xhr : 'xhr'
+ },
+
+ regExpTemplate: /\{\$([A-z]+)\}/g,
+
+ action : false,
+ url : false,
+ urlData : false,
+ serializeForm : false,
+
+ stateContext : false,
+
+ method : 'get',
+ data : {},
+ dataType : 'json',
+ cache : true,
+
+ loadingLength : 200,
+ errorLength : 2000
+
+ };
+
+ $.fn.apiButton.settings = {
+ filter : '.disabled, .loading',
+ context : false,
+ stateContext : false
+ };
+
+})( jQuery, window , document );
\ No newline at end of file
diff --git a/css/semantic/rtl/less/modules/behavior/colorize.js b/css/semantic/rtl/less/modules/behavior/colorize.js
new file mode 100644
index 0000000..7903f9a
--- /dev/null
+++ b/css/semantic/rtl/less/modules/behavior/colorize.js
@@ -0,0 +1,270 @@
+/*
+ * # Semantic - Colorize
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+ $.fn.colorize = function(parameters) {
+ var
+ settings = $.extend(true, {}, $.fn.colorize.settings, parameters),
+ // hoist arguments
+ moduleArguments = arguments || false
+ ;
+ $(this)
+ .each(function(instanceIndex) {
+
+ var
+ $module = $(this),
+
+ mainCanvas = $(' ')[0],
+ imageCanvas = $(' ')[0],
+ overlayCanvas = $(' ')[0],
+
+ backgroundImage = new Image(),
+
+ // defs
+ mainContext,
+ imageContext,
+ overlayContext,
+
+ image,
+ imageName,
+
+ width,
+ height,
+
+ // shortucts
+ colors = settings.colors,
+ paths = settings.paths,
+ namespace = settings.namespace,
+ error = settings.error,
+
+ // boilerplate
+ instance = $module.data('module-' + namespace),
+ module
+ ;
+
+ module = {
+
+ checkPreconditions: function() {
+ module.debug('Checking pre-conditions');
+
+ if( !$.isPlainObject(colors) || $.isEmptyObject(colors) ) {
+ module.error(error.undefinedColors);
+ return false;
+ }
+ return true;
+ },
+
+ async: function(callback) {
+ if(settings.async) {
+ setTimeout(callback, 0);
+ }
+ else {
+ callback();
+ }
+ },
+
+ getMetadata: function() {
+ module.debug('Grabbing metadata');
+ image = $module.data('image') || settings.image || undefined;
+ imageName = $module.data('name') || settings.name || instanceIndex;
+ width = settings.width || $module.width();
+ height = settings.height || $module.height();
+ if(width === 0 || height === 0) {
+ module.error(error.undefinedSize);
+ }
+ },
+
+ initialize: function() {
+ module.debug('Initializing with colors', colors);
+ if( module.checkPreconditions() ) {
+
+ module.async(function() {
+ module.getMetadata();
+ module.canvas.create();
+
+ module.draw.image(function() {
+ module.draw.colors();
+ module.canvas.merge();
+ });
+ $module
+ .data('module-' + namespace, module)
+ ;
+ });
+ }
+ },
+
+ redraw: function() {
+ module.debug('Redrawing image');
+ module.async(function() {
+ module.canvas.clear();
+ module.draw.colors();
+ module.canvas.merge();
+ });
+ },
+
+ change: {
+ color: function(colorName, color) {
+ module.debug('Changing color', colorName);
+ if(colors[colorName] === undefined) {
+ module.error(error.missingColor);
+ return false;
+ }
+ colors[colorName] = color;
+ module.redraw();
+ }
+ },
+
+ canvas: {
+ create: function() {
+ module.debug('Creating canvases');
+
+ mainCanvas.width = width;
+ mainCanvas.height = height;
+ imageCanvas.width = width;
+ imageCanvas.height = height;
+ overlayCanvas.width = width;
+ overlayCanvas.height = height;
+
+ mainContext = mainCanvas.getContext('2d');
+ imageContext = imageCanvas.getContext('2d');
+ overlayContext = overlayCanvas.getContext('2d');
+
+ $module
+ .append( mainCanvas )
+ ;
+ mainContext = $module.children('canvas')[0].getContext('2d');
+ },
+ clear: function(context) {
+ module.debug('Clearing canvas');
+ overlayContext.fillStyle = '#FFFFFF';
+ overlayContext.fillRect(0, 0, width, height);
+ },
+ merge: function() {
+ if( !$.isFunction(mainContext.blendOnto) ) {
+ module.error(error.missingPlugin);
+ return;
+ }
+ mainContext.putImageData( imageContext.getImageData(0, 0, width, height), 0, 0);
+ overlayContext.blendOnto(mainContext, 'multiply');
+ }
+ },
+
+ draw: {
+
+ image: function(callback) {
+ module.debug('Drawing image');
+ callback = callback || function(){};
+ if(image) {
+ backgroundImage.src = image;
+ backgroundImage.onload = function() {
+ imageContext.drawImage(backgroundImage, 0, 0);
+ callback();
+ };
+ }
+ else {
+ module.error(error.noImage);
+ callback();
+ }
+ },
+
+ colors: function() {
+ module.debug('Drawing color overlays', colors);
+ $.each(colors, function(colorName, color) {
+ settings.onDraw(overlayContext, imageName, colorName, color);
+ });
+ }
+
+ },
+
+ debug: function(message, variableName) {
+ if(settings.debug) {
+ if(variableName !== undefined) {
+ console.info(settings.name + ': ' + message, variableName);
+ }
+ else {
+ console.info(settings.name + ': ' + message);
+ }
+ }
+ },
+ error: function(errorMessage) {
+ console.warn(settings.name + ': ' + errorMessage);
+ },
+ invoke: function(methodName, context, methodArguments) {
+ var
+ method
+ ;
+ methodArguments = methodArguments || Array.prototype.slice.call( arguments, 2 );
+
+ if(typeof methodName == 'string' && instance !== undefined) {
+ methodName = methodName.split('.');
+ $.each(methodName, function(index, name) {
+ if( $.isPlainObject( instance[name] ) ) {
+ instance = instance[name];
+ return true;
+ }
+ else if( $.isFunction( instance[name] ) ) {
+ method = instance[name];
+ return true;
+ }
+ module.error(settings.error.method);
+ return false;
+ });
+ }
+ return ( $.isFunction( method ) )
+ ? method.apply(context, methodArguments)
+ : false
+ ;
+ }
+
+ };
+ if(instance !== undefined && moduleArguments) {
+ // simpler than invoke realizing to invoke itself (and losing scope due prototype.call()
+ if(moduleArguments[0] == 'invoke') {
+ moduleArguments = Array.prototype.slice.call( moduleArguments, 1 );
+ }
+ return module.invoke(moduleArguments[0], this, Array.prototype.slice.call( moduleArguments, 1 ) );
+ }
+ // initializing
+ module.initialize();
+ })
+ ;
+ return this;
+ };
+
+ $.fn.colorize.settings = {
+ name : 'Image Colorizer',
+ debug : true,
+ namespace : 'colorize',
+
+ onDraw : function(overlayContext, imageName, colorName, color) {},
+
+ // whether to block execution while updating canvas
+ async : true,
+ // object containing names and default values of color regions
+ colors : {},
+
+ metadata: {
+ image : 'image',
+ name : 'name'
+ },
+
+ error: {
+ noImage : 'No tracing image specified',
+ undefinedColors : 'No default colors specified.',
+ missingColor : 'Attempted to change color that does not exist',
+ missingPlugin : 'Blend onto plug-in must be included',
+ undefinedHeight : 'The width or height of image canvas could not be automatically determined. Please specify a height.'
+ }
+
+ };
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/less/modules/behavior/form.js b/css/semantic/rtl/less/modules/behavior/form.js
new file mode 100644
index 0000000..4b9c518
--- /dev/null
+++ b/css/semantic/rtl/less/modules/behavior/form.js
@@ -0,0 +1,738 @@
+/*
+ * # Semantic - Form Validation
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.form = function(fields, parameters) {
+ var
+ $allModules = $(this),
+
+ settings = $.extend(true, {}, $.fn.form.settings, parameters),
+ validation = $.extend({}, $.fn.form.settings.defaults, fields),
+
+ namespace = settings.namespace,
+ metadata = settings.metadata,
+ selector = settings.selector,
+ className = settings.className,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ $module = $(this),
+ $field = $(this).find(selector.field),
+ $group = $(this).find(selector.group),
+ $message = $(this).find(selector.message),
+ $prompt = $(this).find(selector.prompt),
+ $submit = $(this).find(selector.submit),
+
+ formErrors = [],
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing form validation', $module, validation, settings);
+ module.bindEvents();
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module', instance);
+ module.removeEvents();
+ $module
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing selector cache');
+ $field = $module.find(selector.field);
+ },
+
+ submit: function() {
+ module.verbose('Submitting form', $module);
+ $module
+ .submit()
+ ;
+ },
+
+ bindEvents: function() {
+ if(settings.keyboardShortcuts) {
+ $field
+ .on('keydown' + eventNamespace, module.event.field.keydown)
+ ;
+ }
+ $module
+ .on('submit' + eventNamespace, module.validate.form)
+ ;
+ $field
+ .on('blur' + eventNamespace, module.event.field.blur)
+ ;
+ $submit
+ .on('click' + eventNamespace, module.submit)
+ ;
+ $field
+ .each(function() {
+ var
+ type = $(this).prop('type'),
+ inputEvent = module.get.changeEvent(type)
+ ;
+ $(this)
+ .on(inputEvent + eventNamespace, module.event.field.change)
+ ;
+ })
+ ;
+ },
+
+ removeEvents: function() {
+ $module
+ .off(eventNamespace)
+ ;
+ $field
+ .off(eventNamespace)
+ ;
+ $submit
+ .off(eventNamespace)
+ ;
+ $field
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+ field: {
+ keydown: function(event) {
+ var
+ $field = $(this),
+ key = event.which,
+ keyCode = {
+ enter : 13,
+ escape : 27
+ }
+ ;
+ if( key == keyCode.escape) {
+ module.verbose('Escape key pressed blurring field');
+ $field
+ .blur()
+ ;
+ }
+ if(!event.ctrlKey && key == keyCode.enter && $field.is(selector.input) ) {
+ module.debug('Enter key pressed, submitting form');
+ $submit
+ .addClass(className.down)
+ ;
+ $field
+ .one('keyup' + eventNamespace, module.event.field.keyup)
+ ;
+ event.preventDefault();
+ return false;
+ }
+ },
+ keyup: function() {
+ module.verbose('Doing keyboard shortcut form submit');
+ $submit.removeClass(className.down);
+ module.submit();
+ },
+ blur: function() {
+ var
+ $field = $(this),
+ $fieldGroup = $field.closest($group)
+ ;
+ if( $fieldGroup.hasClass(className.error) ) {
+ module.debug('Revalidating field', $field, module.get.validation($field));
+ module.validate.field( module.get.validation($field) );
+ }
+ else if(settings.on == 'blur' || settings.on == 'change') {
+ module.validate.field( module.get.validation($field) );
+ }
+ },
+ change: function() {
+ var
+ $field = $(this),
+ $fieldGroup = $field.closest($group)
+ ;
+ if(settings.on == 'change' || ( $fieldGroup.hasClass(className.error) && settings.revalidate) ) {
+ clearTimeout(module.timer);
+ module.timer = setTimeout(function() {
+ module.debug('Revalidating field', $field, module.get.validation($field));
+ module.validate.field( module.get.validation($field) );
+ }, settings.delay);
+ }
+ }
+ }
+
+ },
+
+ get: {
+ changeEvent: function(type) {
+ if(type == 'checkbox' || type == 'radio' || type == 'hidden') {
+ return 'change';
+ }
+ else {
+ return (document.createElement('input').oninput !== undefined)
+ ? 'input'
+ : (document.createElement('input').onpropertychange !== undefined)
+ ? 'propertychange'
+ : 'keyup'
+ ;
+ }
+ },
+ field: function(identifier) {
+ module.verbose('Finding field with identifier', identifier);
+ if( $field.filter('#' + identifier).size() > 0 ) {
+ return $field.filter('#' + identifier);
+ }
+ else if( $field.filter('[name="' + identifier +'"]').size() > 0 ) {
+ return $field.filter('[name="' + identifier +'"]');
+ }
+ else if( $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]').size() > 0 ) {
+ return $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]');
+ }
+ return $(' ');
+ },
+ validation: function($field) {
+ var
+ rules
+ ;
+ $.each(validation, function(fieldName, field) {
+ if( module.get.field(field.identifier).get(0) == $field.get(0) ) {
+ rules = field;
+ }
+ });
+ return rules || false;
+ }
+ },
+
+ has: {
+
+ field: function(identifier) {
+ module.verbose('Checking for existence of a field with identifier', identifier);
+ if( $field.filter('#' + identifier).size() > 0 ) {
+ return true;
+ }
+ else if( $field.filter('[name="' + identifier +'"]').size() > 0 ) {
+ return true;
+ }
+ else if( $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]').size() > 0 ) {
+ return true;
+ }
+ return false;
+ }
+
+ },
+
+ add: {
+ prompt: function(identifier, errors) {
+ var
+ $field = module.get.field(identifier),
+ $fieldGroup = $field.closest($group),
+ $prompt = $fieldGroup.find(selector.prompt),
+ promptExists = ($prompt.size() !== 0)
+ ;
+ errors = (typeof errors == 'string')
+ ? [errors]
+ : errors
+ ;
+ module.verbose('Adding field error state', identifier);
+ $fieldGroup
+ .addClass(className.error)
+ ;
+ if(settings.inline) {
+ if(!promptExists) {
+ $prompt = settings.templates.prompt(errors);
+ $prompt
+ .appendTo($fieldGroup)
+ ;
+ }
+ $prompt
+ .html(errors[0])
+ ;
+ if(!promptExists) {
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ module.verbose('Displaying error with css transition', settings.transition);
+ $prompt.transition(settings.transition + ' in', settings.duration);
+ }
+ else {
+ module.verbose('Displaying error with fallback javascript animation');
+ $prompt
+ .fadeIn(settings.duration)
+ ;
+ }
+ }
+ else {
+ module.verbose('Inline errors are disabled, no inline error added', identifier);
+ }
+ }
+ },
+ errors: function(errors) {
+ module.debug('Adding form error messages', errors);
+ $message
+ .html( settings.templates.error(errors) )
+ ;
+ }
+ },
+
+ remove: {
+ prompt: function(field) {
+ var
+ $field = module.get.field(field.identifier),
+ $fieldGroup = $field.closest($group),
+ $prompt = $fieldGroup.find(selector.prompt)
+ ;
+ $fieldGroup
+ .removeClass(className.error)
+ ;
+ if(settings.inline && $prompt.is(':visible')) {
+ module.verbose('Removing prompt for field', field);
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $prompt.transition(settings.transition + ' out', settings.duration, function() {
+ $prompt.remove();
+ });
+ }
+ else {
+ $prompt
+ .fadeOut(settings.duration, function(){
+ $prompt.remove();
+ })
+ ;
+ }
+ }
+ }
+ },
+
+ validate: {
+
+ form: function(event) {
+ var
+ allValid = true
+ ;
+ // reset errors
+ formErrors = [];
+ $.each(validation, function(fieldName, field) {
+ if( !( module.validate.field(field) ) ) {
+ allValid = false;
+ }
+ });
+ if(allValid) {
+ module.debug('Form has no validation errors, submitting');
+ $module
+ .removeClass(className.error)
+ .addClass(className.success)
+ ;
+ return $.proxy(settings.onSuccess, this)(event);
+ }
+ else {
+ module.debug('Form has errors');
+ $module.addClass(className.error);
+ if(!settings.inline) {
+ module.add.errors(formErrors);
+ }
+ return $.proxy(settings.onFailure, this)(formErrors);
+ }
+ },
+
+ // takes a validation object and returns whether field passes validation
+ field: function(field) {
+ var
+ $field = module.get.field(field.identifier),
+ fieldValid = true,
+ fieldErrors = []
+ ;
+ if(field.rules !== undefined) {
+ $.each(field.rules, function(index, rule) {
+ if( module.has.field(field.identifier) && !( module.validate.rule(field, rule) ) ) {
+ module.debug('Field is invalid', field.identifier, rule.type);
+ fieldErrors.push(rule.prompt);
+ fieldValid = false;
+ }
+ });
+ }
+ if(fieldValid) {
+ module.remove.prompt(field, fieldErrors);
+ $.proxy(settings.onValid, $field)();
+ }
+ else {
+ formErrors = formErrors.concat(fieldErrors);
+ module.add.prompt(field.identifier, fieldErrors);
+ $.proxy(settings.onInvalid, $field)(fieldErrors);
+ return false;
+ }
+ return true;
+ },
+
+ // takes validation rule and returns whether field passes rule
+ rule: function(field, validation) {
+ var
+ $field = module.get.field(field.identifier),
+ type = validation.type,
+ value = $.trim($field.val() + ''),
+
+ bracketRegExp = /\[(.*)\]/i,
+ bracket = bracketRegExp.exec(type),
+ isValid = true,
+ ancillary,
+ functionType
+ ;
+ // if bracket notation is used, pass in extra parameters
+ if(bracket !== undefined && bracket !== null) {
+ ancillary = '' + bracket[1];
+ functionType = type.replace(bracket[0], '');
+ isValid = $.proxy(settings.rules[functionType], $module)(value, ancillary);
+ }
+ // normal notation
+ else {
+ isValid = $.proxy(settings.rules[type], $field)(value);
+ }
+ return isValid;
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.form.settings = {
+
+ name : 'Form',
+ namespace : 'form',
+
+ debug : true,
+ verbose : true,
+ performance : true,
+
+
+ keyboardShortcuts : true,
+ on : 'submit',
+ inline : false,
+
+ delay : 200,
+ revalidate : true,
+
+ transition : 'scale',
+ duration : 150,
+
+
+ onValid : function() {},
+ onInvalid : function() {},
+ onSuccess : function() { return true; },
+ onFailure : function() { return false; },
+
+ metadata : {
+ validate: 'validate'
+ },
+
+ selector : {
+ message : '.error.message',
+ field : 'input, textarea, select',
+ group : '.field',
+ input : 'input',
+ prompt : '.prompt',
+ submit : '.submit'
+ },
+
+ className : {
+ error : 'error',
+ success : 'success',
+ down : 'down',
+ label : 'ui label prompt'
+ },
+
+ // errors
+ error: {
+ method : 'The method you called is not defined.'
+ },
+
+
+ templates: {
+ error: function(errors) {
+ var
+ html = ''
+ ;
+ $.each(errors, function(index, value) {
+ html += '' + value + ' ';
+ });
+ html += ' ';
+ return $(html);
+ },
+ prompt: function(errors) {
+ return $('
')
+ .addClass('ui red pointing prompt label')
+ .html(errors[0])
+ ;
+ }
+ },
+
+ rules: {
+ checked: function() {
+ return ($(this).filter(':checked').size() > 0);
+ },
+ empty: function(value) {
+ return !(value === undefined || '' === value);
+ },
+ email: function(value){
+ var
+ emailRegExp = new RegExp("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", "i")
+ ;
+ return emailRegExp.test(value);
+ },
+ length: function(value, requiredLength) {
+ return (value !== undefined)
+ ? (value.length >= requiredLength)
+ : false
+ ;
+ },
+ not: function(value, notValue) {
+ return (value != notValue);
+ },
+ contains: function(value, text) {
+ text = text.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
+ return (value.search(text) !== -1);
+ },
+ is: function(value, text) {
+ return (value == text);
+ },
+ maxLength: function(value, maxLength) {
+ return (value !== undefined)
+ ? (value.length <= maxLength)
+ : false
+ ;
+ },
+ match: function(value, fieldIdentifier) {
+ // use either id or name of field
+ var
+ $form = $(this),
+ matchingValue
+ ;
+ if($form.find('#' + fieldIdentifier).size() > 0) {
+ matchingValue = $form.find('#' + fieldIdentifier).val();
+ }
+ else if($form.find('[name=' + fieldIdentifier +']').size() > 0) {
+ matchingValue = $form.find('[name=' + fieldIdentifier + ']').val();
+ }
+ else if( $form.find('[data-validate="'+ fieldIdentifier +'"]').size() > 0 ) {
+ matchingValue = $form.find('[data-validate="'+ fieldIdentifier +'"]').val();
+ }
+ return (matchingValue !== undefined)
+ ? ( value.toString() == matchingValue.toString() )
+ : false
+ ;
+ },
+ url: function(value) {
+ var
+ urlRegExp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
+ ;
+ return urlRegExp.test(value);
+ }
+ }
+
+};
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/less/modules/behavior/state.js b/css/semantic/rtl/less/modules/behavior/state.js
new file mode 100644
index 0000000..e571c8e
--- /dev/null
+++ b/css/semantic/rtl/less/modules/behavior/state.js
@@ -0,0 +1,725 @@
+/*
+ * # Semantic - State
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.state = function(parameters) {
+ var
+ $allModules = $(this),
+ settings = $.extend(true, {}, $.fn.state.settings, parameters),
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ // shortcuts
+ error = settings.error,
+ metadata = settings.metadata,
+ className = settings.className,
+ namespace = settings.namespace,
+ states = settings.states,
+ text = settings.text,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = namespace + '-module',
+
+
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ $module = $(this),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+
+ module
+ ;
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing module');
+
+ // allow module to guess desired state based on element
+ if(settings.automatic) {
+ module.add.defaults();
+ }
+
+ // bind events with delegated events
+ if(settings.context && moduleSelector !== '') {
+ if( module.allows('hover') ) {
+ $(element, settings.context)
+ .on(moduleSelector, 'mouseenter' + eventNamespace, module.enable.hover)
+ .on(moduleSelector, 'mouseleave' + eventNamespace, module.disable.hover)
+ ;
+ }
+ if( module.allows('down') ) {
+ $(element, settings.context)
+ .on(moduleSelector, 'mousedown' + eventNamespace, module.enable.down)
+ .on(moduleSelector, 'mouseup' + eventNamespace, module.disable.down)
+ ;
+ }
+ if( module.allows('focus') ) {
+ $(element, settings.context)
+ .on(moduleSelector, 'focus' + eventNamespace, module.enable.focus)
+ .on(moduleSelector, 'blur' + eventNamespace, module.disable.focus)
+ ;
+ }
+ $(settings.context)
+ .on(moduleSelector, 'mouseenter' + eventNamespace, module.change.text)
+ .on(moduleSelector, 'mouseleave' + eventNamespace, module.reset.text)
+ .on(moduleSelector, 'click' + eventNamespace, module.toggle.state)
+ ;
+ }
+ else {
+ if( module.allows('hover') ) {
+ $module
+ .on('mouseenter' + eventNamespace, module.enable.hover)
+ .on('mouseleave' + eventNamespace, module.disable.hover)
+ ;
+ }
+ if( module.allows('down') ) {
+ $module
+ .on('mousedown' + eventNamespace, module.enable.down)
+ .on('mouseup' + eventNamespace, module.disable.down)
+ ;
+ }
+ if( module.allows('focus') ) {
+ $module
+ .on('focus' + eventNamespace, module.enable.focus)
+ .on('blur' + eventNamespace, module.disable.focus)
+ ;
+ }
+ $module
+ .on('mouseenter' + eventNamespace, module.change.text)
+ .on('mouseleave' + eventNamespace, module.reset.text)
+ .on('click' + eventNamespace, module.toggle.state)
+ ;
+ }
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module', instance);
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing selector cache');
+ $module = $(element);
+ },
+
+ add: {
+ defaults: function() {
+ var
+ userStates = parameters && $.isPlainObject(parameters.states)
+ ? parameters.states
+ : {}
+ ;
+ $.each(settings.defaults, function(type, typeStates) {
+ if( module.is[type] !== undefined && module.is[type]() ) {
+ module.verbose('Adding default states', type, element);
+ $.extend(settings.states, typeStates, userStates);
+ }
+ });
+ }
+ },
+
+ is: {
+
+ active: function() {
+ return $module.hasClass(className.active);
+ },
+ loading: function() {
+ return $module.hasClass(className.loading);
+ },
+ inactive: function() {
+ return !( $module.hasClass(className.active) );
+ },
+
+ enabled: function() {
+ return !( $module.is(settings.filter.active) );
+ },
+ disabled: function() {
+ return ( $module.is(settings.filter.active) );
+ },
+ textEnabled: function() {
+ return !( $module.is(settings.filter.text) );
+ },
+
+ // definitions for automatic type detection
+ button: function() {
+ return $module.is('.button:not(a, .submit)');
+ },
+ input: function() {
+ return $module.is('input');
+ }
+ },
+
+ allow: function(state) {
+ module.debug('Now allowing state', state);
+ states[state] = true;
+ },
+ disallow: function(state) {
+ module.debug('No longer allowing', state);
+ states[state] = false;
+ },
+
+ allows: function(state) {
+ return states[state] || false;
+ },
+
+ enable: {
+ state: function(state) {
+ if(module.allows(state)) {
+ $module.addClass( className[state] );
+ }
+ },
+ // convenience
+ focus: function() {
+ $module.addClass(className.focus);
+ },
+ hover: function() {
+ $module.addClass(className.hover);
+ },
+ down: function() {
+ $module.addClass(className.down);
+ },
+ },
+
+ disable: {
+ state: function(state) {
+ if(module.allows(state)) {
+ $module.removeClass( className[state] );
+ }
+ },
+ // convenience
+ focus: function() {
+ $module.removeClass(className.focus);
+ },
+ hover: function() {
+ $module.removeClass(className.hover);
+ },
+ down: function() {
+ $module.removeClass(className.down);
+ },
+ },
+
+ toggle: {
+ state: function() {
+ var
+ apiRequest = $module.data(metadata.promise)
+ ;
+ if( module.allows('active') && module.is.enabled() ) {
+ module.refresh();
+ if(apiRequest !== undefined) {
+ module.listenTo(apiRequest);
+ }
+ else {
+ module.change.state();
+ }
+ }
+ }
+ },
+
+ listenTo: function(apiRequest) {
+ module.debug('API request detected, waiting for state signal', apiRequest);
+ if(apiRequest) {
+ if(text.loading) {
+ module.update.text(text.loading);
+ }
+ $.when(apiRequest)
+ .then(function() {
+ if(apiRequest.state() == 'resolved') {
+ module.debug('API request succeeded');
+ settings.activateTest = function(){ return true; };
+ settings.deactivateTest = function(){ return true; };
+ }
+ else {
+ module.debug('API request failed');
+ settings.activateTest = function(){ return false; };
+ settings.deactivateTest = function(){ return false; };
+ }
+ module.change.state();
+ })
+ ;
+ }
+ // xhr exists but set to false, beforeSend killed the xhr
+ else {
+ settings.activateTest = function(){ return false; };
+ settings.deactivateTest = function(){ return false; };
+ }
+ },
+
+ // checks whether active/inactive state can be given
+ change: {
+
+ state: function() {
+ module.debug('Determining state change direction');
+ // inactive to active change
+ if( module.is.inactive() ) {
+ module.activate();
+ }
+ else {
+ module.deactivate();
+ }
+ if(settings.sync) {
+ module.sync();
+ }
+ $.proxy(settings.onChange, element)();
+ },
+
+ text: function() {
+ if( module.is.textEnabled() ) {
+ if( module.is.active() ) {
+ if(text.hover) {
+ module.verbose('Changing text to hover text', text.hover);
+ module.update.text(text.hover);
+ }
+ else if(text.disable) {
+ module.verbose('Changing text to disable text', text.disable);
+ module.update.text(text.disable);
+ }
+ }
+ else {
+ if(text.hover) {
+ module.verbose('Changing text to hover text', text.disable);
+ module.update.text(text.hover);
+ }
+ else if(text.enable){
+ module.verbose('Changing text to enable text', text.enable);
+ module.update.text(text.enable);
+ }
+ }
+ }
+ }
+
+ },
+
+ activate: function() {
+ if( $.proxy(settings.activateTest, element)() ) {
+ module.debug('Setting state to active');
+ $module
+ .addClass(className.active)
+ ;
+ module.update.text(text.active);
+ }
+ $.proxy(settings.onActivate, element)();
+ },
+
+ deactivate: function() {
+ if($.proxy(settings.deactivateTest, element)() ) {
+ module.debug('Setting state to inactive');
+ $module
+ .removeClass(className.active)
+ ;
+ module.update.text(text.inactive);
+ }
+ $.proxy(settings.onDeactivate, element)();
+ },
+
+ sync: function() {
+ module.verbose('Syncing other buttons to current state');
+ if( module.is.active() ) {
+ $allModules
+ .not($module)
+ .state('activate');
+ }
+ else {
+ $allModules
+ .not($module)
+ .state('deactivate')
+ ;
+ }
+ },
+
+ get: {
+ text: function() {
+ return (settings.selector.text)
+ ? $module.find(settings.selector.text).text()
+ : $module.html()
+ ;
+ },
+ textFor: function(state) {
+ return text[state] || false;
+ }
+ },
+
+ flash: {
+ text: function(text, duration) {
+ var
+ previousText = module.get.text()
+ ;
+ module.debug('Flashing text message', text, duration);
+ text = text || settings.text.flash;
+ duration = duration || settings.flashDuration;
+ module.update.text(text);
+ setTimeout(function(){
+ module.update.text(previousText);
+ }, duration);
+ }
+ },
+
+ reset: {
+ // on mouseout sets text to previous value
+ text: function() {
+ var
+ activeText = text.active || $module.data(metadata.storedText),
+ inactiveText = text.inactive || $module.data(metadata.storedText)
+ ;
+ if( module.is.textEnabled() ) {
+ if( module.is.active() && activeText) {
+ module.verbose('Resetting active text', activeText);
+ module.update.text(activeText);
+ }
+ else if(inactiveText) {
+ module.verbose('Resetting inactive text', activeText);
+ module.update.text(inactiveText);
+ }
+ }
+ }
+ },
+
+ update: {
+ text: function(text) {
+ var
+ currentText = module.get.text()
+ ;
+ if(text && text !== currentText) {
+ module.debug('Updating text', text);
+ if(settings.selector.text) {
+ $module
+ .data(metadata.storedText, text)
+ .find(settings.selector.text)
+ .text(text)
+ ;
+ }
+ else {
+ $module
+ .data(metadata.storedText, text)
+ .html(text)
+ ;
+ }
+ }
+ else {
+ module.debug('Text is already sane, ignoring update', text);
+ }
+ }
+ },
+
+ setting: function(name, value) {
+ module.debug('Changing setting', name, value);
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else {
+ settings[name] = value;
+ }
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ module.debug('Changing internal', name, value);
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else {
+ module[name] = value;
+ }
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.state.settings = {
+
+ // module info
+ name : 'State',
+
+ // debug output
+ debug : true,
+
+ // verbose debug output
+ verbose : true,
+
+ // namespace for events
+ namespace : 'state',
+
+ // debug data includes performance
+ performance: true,
+
+ // callback occurs on state change
+ onActivate : function() {},
+ onDeactivate : function() {},
+ onChange : function() {},
+
+ // state test functions
+ activateTest : function() { return true; },
+ deactivateTest : function() { return true; },
+
+ // whether to automatically map default states
+ automatic : true,
+
+ // activate / deactivate changes all elements instantiated at same time
+ sync : false,
+
+ // default flash text duration, used for temporarily changing text of an element
+ flashDuration : 3000,
+
+ // selector filter
+ filter : {
+ text : '.loading, .disabled',
+ active : '.disabled'
+ },
+
+ context : false,
+
+ // error
+ error: {
+ method : 'The method you called is not defined.'
+ },
+
+ // metadata
+ metadata: {
+ promise : 'promise',
+ storedText : 'stored-text'
+ },
+
+ // change class on state
+ className: {
+ focus : 'focus',
+ hover : 'hover',
+ down : 'down',
+ active : 'active',
+ loading : 'loading'
+ },
+
+ selector: {
+ // selector for text node
+ text: false
+ },
+
+ defaults : {
+ input: {
+ hover : true,
+ focus : true,
+ down : true,
+ loading : false,
+ active : false
+ },
+ button: {
+ hover : true,
+ focus : false,
+ down : true,
+ active : true,
+ loading : true
+ }
+ },
+
+ states : {
+ hover : true,
+ focus : true,
+ down : true,
+ loading : false,
+ active : false
+ },
+
+ text : {
+ flash : false,
+ hover : false,
+ active : false,
+ inactive : false,
+ enable : false,
+ disable : false
+ }
+
+};
+
+
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/less/modules/chatroom.js b/css/semantic/rtl/less/modules/chatroom.js
new file mode 100644
index 0000000..a20a66a
--- /dev/null
+++ b/css/semantic/rtl/less/modules/chatroom.js
@@ -0,0 +1,772 @@
+/*
+ * # Semantic - Chatroom
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.chatroom = function(parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $(this)
+ .each(function() {
+ var
+ settings = $.extend(true, {}, $.fn.chatroom.settings, parameters),
+
+ className = settings.className,
+ namespace = settings.namespace,
+ selector = settings.selector,
+ error = settings.error,
+
+ $module = $(this),
+
+ $expandButton = $module.find(selector.expandButton),
+ $userListButton = $module.find(selector.userListButton),
+
+ $userList = $module.find(selector.userList),
+ $room = $module.find(selector.room),
+ $userCount = $module.find(selector.userCount),
+
+ $log = $module.find(selector.log),
+ $message = $module.find(selector.message),
+
+ $messageInput = $module.find(selector.messageInput),
+ $messageButton = $module.find(selector.messageButton),
+
+ instance = $module.data('module'),
+ element = this,
+
+ html = '',
+ users = {},
+
+ channel,
+ loggedInUser,
+
+ message,
+ count,
+
+ height,
+
+ pusher,
+ module
+ ;
+
+ module = {
+
+ width: {
+ log : $log.width(),
+ userList : $userList.outerWidth()
+ },
+
+ initialize: function() {
+
+ // check error conditions
+ if(Pusher === undefined) {
+ module.error(error.pusher);
+ }
+ if(settings.key === undefined || settings.channelName === undefined) {
+ module.error(error.key);
+ return false;
+ }
+ else if( !(settings.endpoint.message || settings.endpoint.authentication) ) {
+ module.error(error.endpoint);
+ return false;
+ }
+
+ // define pusher
+ pusher = new Pusher(settings.key);
+ Pusher.channel_auth_endpoint = settings.endpoint.authentication;
+
+ channel = pusher.subscribe(settings.channelName);
+
+ channel.bind('pusher:subscription_succeeded', module.user.list.create);
+ channel.bind('pusher:subscription_error', module.error);
+ channel.bind('pusher:member_added', module.user.joined);
+ channel.bind('pusher:member_removed', module.user.left);
+ channel.bind('update_messages', module.message.receive);
+
+ $.each(settings.customEvents, function(label, value) {
+ channel.bind(label, value);
+ });
+
+ // bind module events
+ $userListButton
+ .on('click.' + namespace, module.event.toggleUserList)
+ ;
+ $expandButton
+ .on('click.' + namespace, module.event.toggleExpand)
+ ;
+ $messageInput
+ .on('keydown.' + namespace, module.event.input.keydown)
+ .on('keyup.' + namespace, module.event.input.keyup)
+ ;
+ $messageButton
+ .on('mouseenter.' + namespace, module.event.hover)
+ .on('mouseleave.' + namespace, module.event.hover)
+ .on('click.' + namespace, module.event.submit)
+ ;
+ // scroll to bottom of chat log
+ $log
+ .animate({
+ scrollTop: $log.prop('scrollHeight')
+ }, 400)
+ ;
+ $module
+ .data('module', module)
+ .addClass(className.loading)
+ ;
+
+ },
+
+ // refresh module
+ refresh: function() {
+ // reset width calculations
+ $userListButton
+ .removeClass(className.active)
+ ;
+ module.width = {
+ log : $log.width(),
+ userList : $userList.outerWidth()
+ };
+ if( $userListButton.hasClass(className.active) ) {
+ module.user.list.hide();
+ }
+ $module.data('module', module);
+ },
+
+ user: {
+
+ updateCount: function() {
+ if(settings.userCount) {
+ users = $module.data('users');
+ count = 0;
+ $.each(users, function() {
+ count++;
+ });
+ $userCount
+ .html( settings.templates.userCount(count) )
+ ;
+ }
+ },
+
+ // add user to user list
+ joined: function(member) {
+ users = $module.data('users');
+ if(member.id != 'anonymous' && users[ member.id ] === undefined ) {
+ users[ member.id ] = member.info;
+ if(settings.randomColor && member.info.color === undefined) {
+ member.info.color = settings.templates.color(member.id);
+ }
+ html = settings.templates.userList(member.info);
+ if(member.info.isAdmin) {
+ $(html)
+ .prependTo($userList)
+ ;
+ }
+ else {
+ $(html)
+ .appendTo($userList)
+ ;
+ }
+ if(settings.partingMessages) {
+ $log
+ .append( settings.templates.joined(member.info) )
+ ;
+ module.message.scroll.test();
+ }
+ module.user.updateCount();
+ }
+ },
+
+ // remove user from user list
+ left: function(member) {
+ users = $module.data('users');
+ if(member !== undefined && member.id !== 'anonymous') {
+ delete users[ member.id ];
+ $module
+ .data('users', users)
+ ;
+ $userList
+ .find('[data-id='+ member.id + ']')
+ .remove()
+ ;
+ if(settings.partingMessages) {
+ $log
+ .append( settings.templates.left(member.info) )
+ ;
+ module.message.scroll.test();
+ }
+ module.user.updateCount();
+ }
+ },
+
+ list: {
+
+ // receives list of members and generates user list
+ create: function(members) {
+ users = {};
+ members.each(function(member) {
+ if(member.id !== 'anonymous' && member.id !== 'undefined') {
+ if(settings.randomColor && member.info.color === undefined) {
+ member.info.color = settings.templates.color(member.id);
+ }
+ // sort list with admin first
+ html = (member.info.isAdmin)
+ ? settings.templates.userList(member.info) + html
+ : html + settings.templates.userList(member.info)
+ ;
+ users[ member.id ] = member.info;
+ }
+ });
+ $module
+ .data('users', users)
+ .data('user', users[members.me.id] )
+ .removeClass(className.loading)
+ ;
+ $userList
+ .html(html)
+ ;
+ module.user.updateCount();
+ $.proxy(settings.onJoin, $userList.children())();
+ },
+
+ // shows user list
+ show: function() {
+ $log
+ .animate({
+ width: (module.width.log - module.width.userList)
+ }, {
+ duration : settings.speed,
+ easing : settings.easing,
+ complete : module.message.scroll.move
+ })
+ ;
+ },
+
+ // hides user list
+ hide: function() {
+ $log
+ .stop()
+ .animate({
+ width: (module.width.log)
+ }, {
+ duration : settings.speed,
+ easing : settings.easing,
+ complete : module.message.scroll.move
+ })
+ ;
+ }
+
+ }
+
+ },
+
+ message: {
+
+ // handles scrolling of chat log
+ scroll: {
+ test: function() {
+ height = $log.prop('scrollHeight') - $log.height();
+ if( Math.abs($log.scrollTop() - height) < settings.scrollArea) {
+ module.message.scroll.move();
+ }
+ },
+
+ move: function() {
+ height = $log.prop('scrollHeight') - $log.height();
+ $log
+ .scrollTop(height)
+ ;
+ }
+ },
+
+ // sends chat message
+ send: function(message) {
+ if( !module.utils.emptyString(message) ) {
+ $.api({
+ url : settings.endpoint.message,
+ method : 'POST',
+ data : {
+ 'message': {
+ content : message,
+ timestamp : new Date().getTime()
+ }
+ }
+ });
+ }
+ },
+
+ // receives chat response and processes
+ receive: function(response) {
+ message = response.data;
+ users = $module.data('users');
+ loggedInUser = $module.data('user');
+ if(users[ message.userID] !== undefined) {
+ // logged in user's messages already pushed instantly
+ if(loggedInUser === undefined || loggedInUser.id != message.userID) {
+ message.user = users[ message.userID ];
+ module.message.display(message);
+ }
+ }
+ },
+
+ // displays message in chat log
+ display: function(message) {
+ $log
+ .append( settings.templates.message(message) )
+ ;
+ module.message.scroll.test();
+ $.proxy(settings.onMessage, $log.children().last() )();
+ }
+
+ },
+
+ expand: function() {
+ $module
+ .addClass(className.expand)
+ ;
+ $.proxy(settings.onExpand, $module )();
+ module.refresh();
+ },
+
+ contract: function() {
+ $module
+ .removeClass(className.expand)
+ ;
+ $.proxy(settings.onContract, $module )();
+ module.refresh();
+ },
+
+ event: {
+
+ input: {
+
+ keydown: function(event) {
+ if(event.which == 13) {
+ $messageButton
+ .addClass(className.down)
+ ;
+ }
+ },
+
+ keyup: function(event) {
+ if(event.which == 13) {
+ $messageButton
+ .removeClass(className.down)
+ ;
+ module.event.submit();
+ }
+ }
+
+ },
+
+ // handles message form submit
+ submit: function() {
+ var
+ message = $messageInput.val(),
+ loggedInUser = $module.data('user')
+ ;
+ if(loggedInUser !== undefined && !module.utils.emptyString(message)) {
+ module.message.send(message);
+ // display immediately
+ module.message.display({
+ user: loggedInUser,
+ text: message
+ });
+ module.message.scroll.move();
+ $messageInput
+ .val('')
+ ;
+
+ }
+ },
+
+ // handles button click on expand button
+ toggleExpand: function() {
+ if( !$module.hasClass(className.expand) ) {
+ $expandButton
+ .addClass(className.active)
+ ;
+ module.expand();
+ }
+ else {
+ $expandButton
+ .removeClass(className.active)
+ ;
+ module.contract();
+ }
+ },
+
+ // handles button click on user list button
+ toggleUserList: function() {
+ if( !$log.is(':animated') ) {
+ if( !$userListButton.hasClass(className.active) ) {
+ $userListButton
+ .addClass(className.active)
+ ;
+ module.user.list.show();
+ }
+ else {
+ $userListButton
+ .removeClass('active')
+ ;
+ module.user.list.hide();
+ }
+ }
+
+ }
+ },
+
+ utils: {
+
+ emptyString: function(string) {
+ if(typeof string == 'string') {
+ return (string.search(/\S/) == -1);
+ }
+ return false;
+ }
+
+ },
+
+ setting: function(name, value) {
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else {
+ settings[name] = value;
+ }
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ maxDepth,
+ found
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && instance !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) {
+ instance = instance[value];
+ }
+ else if( instance[value] !== undefined ) {
+ found = instance[value];
+ }
+ else {
+ module.error(error.method, query);
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ return found.apply(context, passedArguments);
+ }
+ return found || false;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+ $.fn.chatroom.settings = {
+
+ name : 'Chat',
+ debug : false,
+ namespace : 'chat',
+
+ channel : 'present-chat',
+
+ onJoin : function(){},
+ onMessage : function(){},
+ onExpand : function(){},
+ onContract : function(){},
+
+ customEvents : {},
+
+ partingMessages : false,
+ userCount : true,
+ randomColor : true,
+
+ speed : 300,
+ easing : 'easeOutQuint',
+
+ // pixels from bottom of chat log that should trigger auto scroll to bottom
+ scrollArea : 9999,
+
+ endpoint : {
+ message : false,
+ authentication : false
+ },
+
+ error: {
+ method : 'The method you called is not defined',
+ endpoint : 'Please define a message and authentication endpoint.',
+ key : 'You must specify a pusher key and channel.',
+ pusher : 'You must include the Pusher library.'
+ },
+
+ className : {
+ expand : 'expand',
+ active : 'active',
+ hover : 'hover',
+ down : 'down',
+ loading : 'loading'
+ },
+
+ selector : {
+ userCount : '.actions .message',
+ userListButton : '.actions .list.button',
+ expandButton : '.actions .expand.button',
+ room : '.room',
+ userList : '.room .list',
+ log : '.room .log',
+ message : '.room .log .message',
+ author : '.room log .message .author',
+ messageInput : '.talk input',
+ messageButton : '.talk .send.button'
+ },
+
+ templates: {
+
+ userCount: function(number) {
+ return number + ' users in chat';
+ },
+
+ color: function(userID) {
+ var
+ colors = [
+ '#000000',
+ '#333333',
+ '#666666',
+ '#999999',
+ '#CC9999',
+ '#CC6666',
+ '#CC3333',
+ '#993333',
+ '#663333',
+ '#CC6633',
+ '#CC9966',
+ '#CC9933',
+ '#999966',
+ '#CCCC66',
+ '#99CC66',
+ '#669933',
+ '#669966',
+ '#33A3CC',
+ '#336633',
+ '#33CCCC',
+ '#339999',
+ '#336666',
+ '#336699',
+ '#6666CC',
+ '#9966CC',
+ '#333399',
+ '#663366',
+ '#996699',
+ '#993366',
+ '#CC6699'
+ ]
+ ;
+ return colors[ Math.floor( Math.random() * colors.length) ];
+ },
+
+ message: function(message) {
+ var
+ html = ''
+ ;
+ if(message.user.isAdmin) {
+ message.user.color = '#55356A';
+ html += '';
+ html += '
';
+ }
+ /*
+ else if(message.user.isPro) {
+ html += '
';
+ html += '
';
+ }
+ */
+ else {
+ html += '
';
+ }
+ html += '
';
+ if(message.user.color !== undefined) {
+ html += '' + message.user.name + ' : ';
+ }
+ else {
+ html += '' + message.user.name + ' : ';
+ }
+ html += ''
+ + message.text
+ + '
'
+ + '
'
+ ;
+ return html;
+ },
+
+ joined: function(member) {
+ return (typeof member.name !== undefined)
+ ? '
' + member.name + ' has joined the chat.
'
+ : false
+ ;
+ },
+ left: function(member) {
+ return (typeof member.name !== undefined)
+ ? '
' + member.name + ' has left the chat.
'
+ : false
+ ;
+ },
+
+ userList: function(member) {
+ var
+ html = ''
+ ;
+ if(member.isAdmin) {
+ member.color = '#55356A';
+ }
+ html += ''
+ + '
';
+ return html;
+ }
+
+ }
+
+ };
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/less/modules/chatroom.less b/css/semantic/rtl/less/modules/chatroom.less
new file mode 100644
index 0000000..696a592
--- /dev/null
+++ b/css/semantic/rtl/less/modules/chatroom.less
@@ -0,0 +1,300 @@
+/*
+ * # Semantic - Chat Room
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Chat Room
+*******************************/
+
+.ui.chatroom {
+ background-color: #F8F8F8;
+ width: 330px;
+ height: 370px;
+ padding: 0px;
+}
+
+.ui.chatroom .room {
+ position: relative;
+ background-color: #FFFFFF;
+ overflow: hidden;
+ height: 286px;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ border-top: none;
+ border-bottom: none;
+}
+
+.ui.chatroom .room .loader {
+ display: none;
+ margin: -25px -25px 0px 0px;
+}
+
+/* Chat Room Actions */
+
+.ui.chatroom .actions {
+ overflow: hidden;
+ background-color: #EEEEEE;
+ padding: 4px;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ border-radius: 5px 5px 0px 0px;
+}
+
+.ui.chatroom .actions .button {
+ float: left;
+ margin-right: 3px;
+}
+
+/* Online User Count */
+
+.ui.chatroom .actions .message {
+ float: right;
+ margin-right: 6px;
+ font-size: 11px;
+ color: #AAAAAA;
+ text-shadow: 0px -1px 0px rgba(255, 255, 255, 0.8);
+ line-height: 28px;
+}
+
+.ui.chatroom .actions .message .loader {
+ display: inline-block;
+ margin-left: 8px;
+}
+
+/* Chat Room Text Log */
+
+.ui.chatroom .log {
+ float: right;
+ overflow: auto;
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+
+.ui.chatroom .log .message {
+ padding: 3px 0px;
+ border-top: 1px dotted #DADADA;
+}
+
+.ui.chatroom .log .message:first-child {
+ border-top: none;
+}
+
+/* status event */
+
+.ui.chatroom .status {
+ padding: 5px 0px;
+ color: #AAAAAA;
+ font-size: 12px;
+ font-style: italic;
+ line-height: 1.33;
+ border-top: 1px dotted #DADADA;
+}
+
+.ui.chatroom .log .status:first-child {
+ border-top: none;
+}
+
+.ui.chatroom .log .flag {
+ float: right;
+}
+
+.ui.chatroom .log p {
+ margin-right: 0px;
+}
+
+.ui.chatroom .log .author {
+ font-weight: bold;
+ -webkit-transition: color 0.3s ease-out;
+ -moz-transition: color 0.3s ease-out;
+ transition: color 0.3s ease-out;
+}
+
+.ui.chatroom .log a.author:hover {
+ opacity: 0.8;
+}
+
+.ui.chatroom .log .message.admin p {
+ font-weight: bold;
+ margin: 1px 23px 0px 0px;
+}
+
+.ui.chatroom .log .divider {
+ margin: -1px 0px;
+ font-size: 11px;
+ padding: 10px 0px;
+ border-top: 1px solid #F8F8F8;
+ border-bottom: 1px solid #F8F8F8;
+}
+
+.ui.chatroom .log .divider .rule {
+ top: 50%;
+ width: 15%;
+}
+
+.ui.chatroom .log .divider .label {
+ color: #777777;
+ margin: 0px;
+}
+
+/* Chat Room User List */
+
+.ui.chatroom .room .list {
+ position: relative;
+ overflow: auto;
+ overflow-x: hidden;
+ overflow-y: auto;
+ float: right;
+ background-color: #EEEEEE;
+ border-right: 1px solid #DDDDDD;
+}
+
+.ui.chatroom .room .list .user {
+ display: table;
+ padding: 3px 7px;
+ border-bottom: 1px solid #DDDDDD;
+}
+
+.ui.chatroom .room .list .user:hover {
+ background-color: #F8F8F8;
+}
+
+.ui.chatroom .room .list .image {
+ display: table-cell;
+ vertical-align: middle;
+ width: 20px;
+}
+
+.ui.chatroom .room .list .image img {
+ width: 20px;
+ height: 20px;
+ vertical-align: middle;
+}
+
+.ui.chatroom .room .list p {
+ display: table-cell;
+ vertical-align: middle;
+ padding-right: 7px;
+ padding-left: 14px;
+ font-size: 11px;
+ line-height: 1.2;
+ font-weight: bold;
+}
+
+.ui.chatroom .room .list a:hover {
+ opacity: 0.8;
+}
+
+/* User List Loading */
+
+.ui.chatroom.loading .loader {
+ display: block;
+}
+
+/* Chat Room Talk Input */
+
+.ui.chatroom .talk {
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ padding: 5px 0px 0px;
+ background-color: #EEEEEE;
+ border-radius: 0px 0px 5px 5px;
+}
+
+.ui.chatroom .talk .avatar,
+.ui.chatroom .talk input,
+.ui.chatroom .talk .button {
+ float: right;
+}
+
+.ui.chatroom .talk .avatar img {
+ display: block;
+ width: 30px;
+ height: 30px;
+ margin-left: 4px;
+ border-radius: 500rem;
+}
+
+.ui.chatroom .talk input {
+ border: 1px solid #CCCCCC;
+ margin: 0px;
+ width: 196px;
+ height: 14px;
+ padding: 8px 5px;
+ font-size: 12px;
+ color: #555555;
+}
+
+.ui.chatroom .talk input.focus {
+ border: 1px solid #AAAAAA;
+}
+
+.ui.chatroom .send {
+ width: 80px;
+ height: 32px;
+ margin-right: -1px;
+ padding: 4px 12px;
+ font-size: 12px;
+ line-height: 23px;
+ -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset;
+ border-radius: 5px 0 0 5px;
+}
+
+.ui.chatroom .talk .log-in.button {
+ display: block;
+ float: none;
+ margin-top: -6px;
+ height: 22px;
+ border-radius: 0px 0px 4px 4px;
+}
+
+.ui.chatroom .talk .log-in.button i {
+ vertical-align: text-top;
+}
+
+/* Quirky Flags */
+
+.ui.chatroom .log .team.flag {
+ width: 18px;
+}
+
+/* Chat room Loaded */
+
+.ui.chatroom.loading .loader {
+ display: block;
+}
+
+/* Standard Size */
+
+.ui.chatroom {
+ width: 330px;
+ height: 370px;
+}
+
+.ui.chatroom .room .container {
+ width: 3000px;
+}
+
+.ui.chatroom .log {
+ width: 314px;
+ height: 278px;
+ padding: 4px 7px;
+}
+
+.ui.chatroom .room .list {
+ width: 124px;
+ height: 278px;
+ padding: 4px 0px;
+}
+
+.ui.chatroom .room .list .user {
+ width: 110px;
+}
+
+.ui.chatroom .talk {
+ height: 40px;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/modules/checkbox.js b/css/semantic/rtl/less/modules/checkbox.js
new file mode 100644
index 0000000..0ec3923
--- /dev/null
+++ b/css/semantic/rtl/less/modules/checkbox.js
@@ -0,0 +1,347 @@
+/*
+ * # Semantic - Checkbox
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.checkbox = function(parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = $.extend(true, {}, $.fn.checkbox.settings, parameters),
+
+ className = settings.className,
+ namespace = settings.namespace,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $label = $(this).next(settings.selector.label).first(),
+ $input = $(this).find(settings.selector.input),
+
+ selector = $module.selector || '',
+ instance = $module.data(moduleNamespace),
+
+ element = this,
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing checkbox', settings);
+ if(settings.context && selector !== '') {
+ module.verbose('Adding delegated events');
+ $(element, settings.context)
+ .on(selector, 'click' + eventNamespace, module.toggle)
+ .on(selector + ' + ' + settings.selector.label, 'click' + eventNamespace, module.toggle)
+ ;
+ }
+ else {
+ $module
+ .on('click' + eventNamespace, module.toggle)
+ .data(moduleNamespace, module)
+ ;
+ $label
+ .on('click' + eventNamespace, module.toggle)
+ ;
+ }
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module');
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ is: {
+ radio: function() {
+ return $module.hasClass(className.radio);
+ },
+ enabled: function() {
+ return $input.prop('checked') !== undefined && $input.prop('checked');
+ },
+ disabled: function() {
+ return !module.is.enabled();
+ }
+ },
+
+ can: {
+ disable: function() {
+ return (typeof settings.required === 'boolean')
+ ? settings.required
+ : !module.is.radio()
+ ;
+ }
+ },
+
+ enable: function() {
+ module.debug('Enabling checkbox', $input);
+ $input
+ .prop('checked', true)
+ .trigger('change')
+ ;
+ $.proxy(settings.onChange, $input.get())();
+ $.proxy(settings.onEnable, $input.get())();
+ },
+
+ disable: function() {
+ module.debug('Disabling checkbox');
+ $input
+ .prop('checked', false)
+ .trigger('change')
+ ;
+ $.proxy(settings.onChange, $input.get())();
+ $.proxy(settings.onDisable, $input.get())();
+ },
+
+ toggle: function(event) {
+ module.verbose('Determining new checkbox state');
+ if( module.is.disabled() ) {
+ module.enable();
+ }
+ else if( module.is.enabled() && module.can.disable() ) {
+ module.disable();
+ }
+ },
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.checkbox.settings = {
+
+ name : 'Checkbox',
+ namespace : 'checkbox',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ // delegated event context
+ context : false,
+ required : 'auto',
+
+ onChange : function(){},
+ onEnable : function(){},
+ onDisable : function(){},
+
+ error : {
+ method : 'The method you called is not defined.'
+ },
+
+ selector : {
+ input : 'input[type=checkbox], input[type=radio]',
+ label : 'label'
+ },
+
+ className : {
+ radio : 'radio'
+ }
+
+};
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/less/modules/checkbox.less b/css/semantic/rtl/less/modules/checkbox.less
new file mode 100644
index 0000000..51bb799
--- /dev/null
+++ b/css/semantic/rtl/less/modules/checkbox.less
@@ -0,0 +1,398 @@
+/*
+ * # Semantic - Checkbox
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Checkbox
+*******************************/
+
+/*--------------
+ Standard
+---------------*/
+
+/*--- Content ---*/
+
+.ui.checkbox {
+ position: relative;
+ display: inline-block;
+ min-width: 1em;
+ height: 1.25em;
+ line-height: 1em;
+ outline: none;
+ vertical-align: middle;
+}
+
+.ui.checkbox input {
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ opacity: 0;
+ outline: none;
+}
+
+/*--- Box ---*/
+
+.ui.checkbox .box,
+.ui.checkbox label {
+ cursor: pointer;
+ padding-right: 2em;
+ outline: none;
+}
+
+.ui.checkbox .box:before,
+.ui.checkbox label:before {
+ position: absolute;
+ top: 0em;
+ right: 0em;
+ line-height: 1;
+ width: 1em;
+ height: 1em;
+ right: 0em;
+ content: '';
+ border-radius: 4px;
+ background: #FFFFFF;
+ -webkit-transition: background-color 0.3s ease,
+ -webkit-box-shadow 0.3s ease;
+ -moz-transition: background-color 0.3s ease,
+ box-shadow 0.3s ease;
+ transition: background-color 0.3s ease,
+ box-shadow 0.3s ease;
+ -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.2);
+ box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.2);
+}
+
+/*--- Checkbox ---*/
+
+.ui.checkbox .box:after,
+.ui.checkbox label:after {
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
+ filter: alpha(opacity=0);
+ opacity: 0;
+ content: '';
+ position: absolute;
+ background: transparent;
+ border: 0.2em solid #333333;
+ border-top: none;
+ border-left: none;
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+}
+
+.ui.checkbox .box:after,
+.ui.checkbox label:after {
+ top: 0.275em;
+ right: 0.2em;
+ width: 0.45em;
+ height: 0.15em;
+}
+
+/*--- Inside Label ---*/
+
+.ui.checkbox label {
+ color: rgba(0, 0, 0, 0.6);
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+.ui.checkbox label:hover {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.checkbox input:focus ~ label {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--- Outside Label ---*/
+
+.ui.checkbox ~ label {
+ cursor: pointer;
+ opacity: 0.85;
+ vertical-align: middle;
+}
+
+.ui.checkbox ~ label:hover {
+ opacity: 1;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--- Hover ---*/
+
+.ui.checkbox .box:hover::before,
+.ui.checkbox label:hover::before {
+ -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
+ box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
+}
+
+/*--- Down ---*/
+
+.ui.checkbox .box:active::before,
+.ui.checkbox label:active::before {
+ background-color: #F5F5F5;
+}
+
+/*--- Focus ---*/
+
+.ui.checkbox input:focus ~ .box:before,
+.ui.checkbox input:focus ~ label:before {
+ -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
+ box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
+}
+
+/*--- Active ---*/
+
+.ui.checkbox input:checked ~ .box:after,
+.ui.checkbox input:checked ~ label:after {
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
+ filter: alpha(opacity=100);
+ opacity: 1;
+}
+
+/*--- Disabled ---*/
+
+.ui.disabled.checkbox ~ .box:after,
+.ui.checkbox input[disabled] ~ .box:after,
+.ui.disabled.checkbox label,
+.ui.checkbox input[disabled] ~ label {
+ opacity: 0.4;
+ color: rgba(0, 0, 0, 0.3);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Radio
+---------------*/
+
+.ui.radio.checkbox .box:before,
+.ui.radio.checkbox label:before {
+ min-width: 1em;
+ height: 1em;
+ border-radius: 500px;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+}
+
+.ui.radio.checkbox .box:after,
+.ui.radio.checkbox label:after {
+ border: none;
+ top: 0.2em;
+ right: 0.2em;
+ width: 0.6em;
+ height: 0.6em;
+ background-color: #555555;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+ border-radius: 500px;
+}
+
+/*--------------
+ Slider
+---------------*/
+
+.ui.slider.checkbox {
+ cursor: pointer;
+ min-width: 3em;
+}
+
+/* Line */
+
+.ui.slider.checkbox:after {
+ position: absolute;
+ top: 0.5em;
+ right: 0em;
+ content: '';
+ width: 3em;
+ height: 2px;
+ background-color: rgba(0, 0, 0, 0.1);
+}
+
+/* Button */
+
+.ui.slider.checkbox .box,
+.ui.slider.checkbox label {
+ padding-right: 4em;
+}
+
+.ui.slider.checkbox .box:before,
+.ui.slider.checkbox label:before {
+ cursor: pointer;
+ display: block;
+ position: absolute;
+ top: -0.25em;
+ right: 0em;
+ z-index: 1;
+ width: 1.5em;
+ height: 1.5em;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ border-radius: 50rem;
+ -webkit-transition: right 0.3s ease 0s;
+ -moz-transition: right 0.3s ease 0s;
+ transition: right 0.3s ease 0s;
+}
+
+/* Button Activation Light */
+
+.ui.slider.checkbox .box:after,
+.ui.slider.checkbox label:after {
+ opacity: 1;
+ position: absolute;
+ content: '';
+ top: 0.15em;
+ right: 0em;
+ z-index: 2;
+ margin-right: 0.375em;
+ border: none;
+ width: 0.75em;
+ height: 0.75em;
+ border-radius: 50rem;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+ -webkit-transition: background 0.3s ease 0s,
+ right 0.3s ease 0s;
+ -moz-transition: background 0.3s ease 0s,
+ right 0.3s ease 0s;
+ transition: background 0.3s ease 0s,
+ right 0.3s ease 0s;
+}
+
+/* Selected Slider Toggle */
+
+.ui.slider.checkbox input:checked ~ .box:before,
+.ui.slider.checkbox input:checked ~ label:before,
+.ui.slider.checkbox input:checked ~ .box:after,
+.ui.slider.checkbox input:checked ~ label:after {
+ right: 1.75em;
+}
+
+/* Off Color */
+
+.ui.slider.checkbox .box:after,
+.ui.slider.checkbox label:after {
+ background-color: #D95C5C;
+}
+
+/* On Color */
+
+.ui.slider.checkbox input:checked ~ .box:after,
+.ui.slider.checkbox input:checked ~ label:after {
+ background-color: #89B84C;
+}
+
+/*--------------
+ Toggle
+---------------*/
+
+.ui.toggle.checkbox {
+ cursor: pointer;
+}
+
+.ui.toggle.checkbox .box,
+.ui.toggle.checkbox label {
+ padding-right: 4em;
+}
+
+/* Switch */
+
+.ui.toggle.checkbox .box:before,
+.ui.toggle.checkbox label:before {
+ cursor: pointer;
+ display: block;
+ position: absolute;
+ content: '';
+ top: -0.25em;
+ right: 0em;
+ z-index: 1;
+ background-color: #FFFFFF;
+ width: 3em;
+ height: 1.5em;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ border-radius: 50rem;
+}
+
+/* Activation Light */
+
+.ui.toggle.checkbox .box:after,
+.ui.toggle.checkbox label:after {
+ opacity: 1;
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ content: '';
+ position: absolute;
+ top: 0.15em;
+ right: 0.5em;
+ z-index: 2;
+ border: none;
+ width: 0.75em;
+ height: 0.75em;
+ background-color: #D95C5C;
+ border-radius: 50rem;
+ -webkit-transition: background 0.3s ease 0s,
+ right 0.3s ease 0s;
+ -moz-transition: background 0.3s ease 0s,
+ right 0.3s ease 0s;
+ transition: background 0.3s ease 0s,
+ right 0.3s ease 0s;
+}
+
+/* Active */
+
+.ui.toggle.checkbox:active .box:before,
+.ui.toggle.checkbox:active label:before {
+ background-color: #F5F5F5;
+}
+
+/* Active */
+
+.ui.toggle.checkbox input:checked ~ .box:after,
+.ui.toggle.checkbox input:checked ~ label:after {
+ right: 1.75em;
+ background-color: #89B84C;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.checkbox {
+ font-size: 1em;
+}
+
+.ui.large.checkbox {
+ font-size: 1.25em;
+}
+
+.ui.huge.checkbox {
+ font-size: 1.5em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/modules/dimmer.js b/css/semantic/rtl/less/modules/dimmer.js
new file mode 100644
index 0000000..e2f97ce
--- /dev/null
+++ b/css/semantic/rtl/less/modules/dimmer.js
@@ -0,0 +1,593 @@
+/*
+ * # Semantic - Dimmer
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.dimmer = function(parameters) {
+ var
+ $allModules = $(this),
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.dimmer.settings, parameters)
+ : $.extend({}, $.fn.dimmer.settings),
+
+ selector = settings.selector,
+ namespace = settings.namespace,
+ className = settings.className,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+ moduleSelector = $allModules.selector || '',
+
+ clickEvent = ('ontouchstart' in document.documentElement)
+ ? 'touchstart'
+ : 'click',
+
+ $module = $(this),
+ $dimmer,
+ $dimmable,
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ preinitialize: function() {
+ if( module.is.dimmer() ) {
+ $dimmable = $module.parent();
+ $dimmer = $module;
+ }
+ else {
+ $dimmable = $module;
+ if( module.has.dimmer() ) {
+ $dimmer = $dimmable.children(selector.dimmer).first();
+ }
+ else {
+ $dimmer = module.create();
+ }
+ }
+ },
+
+ initialize: function() {
+ module.debug('Initializing dimmer', settings);
+ if(settings.on == 'hover') {
+ $dimmable
+ .on('mouseenter' + eventNamespace, module.show)
+ .on('mouseleave' + eventNamespace, module.hide)
+ ;
+ }
+ else if(settings.on == 'click') {
+ $dimmable
+ .on(clickEvent + eventNamespace, module.toggle)
+ ;
+ }
+
+ if( module.is.page() ) {
+ module.debug('Setting as a page dimmer', $dimmable);
+ module.set.pageDimmer();
+ }
+
+ if(settings.closable) {
+ module.verbose('Adding dimmer close event', $dimmer);
+ $dimmer
+ .on(clickEvent + eventNamespace, module.event.click)
+ ;
+ }
+ module.set.dimmable();
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module', $dimmer);
+ $module
+ .removeData(moduleNamespace)
+ ;
+ $dimmable
+ .off(eventNamespace)
+ ;
+ $dimmer
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+
+ click: function(event) {
+ module.verbose('Determining if event occured on dimmer', event);
+ if( $dimmer.find(event.target).size() === 0 || $(event.target).is(selector.content) ) {
+ module.hide();
+ event.stopImmediatePropagation();
+ }
+ }
+
+ },
+
+ addContent: function(element) {
+ var
+ $content = $(element)
+ ;
+ module.debug('Add content to dimmer', $content);
+ if($content.parent()[0] !== $dimmer[0]) {
+ $content.detach().appendTo($dimmer);
+ }
+ },
+
+ create: function() {
+ return $( settings.template.dimmer() ).appendTo($dimmable);
+ },
+
+ animate: {
+ show: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.set.dimmed();
+ if(settings.on != 'hover' && settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {
+ $dimmer
+ .transition({
+ animation : settings.transition + ' in',
+ queue : true,
+ duration : module.get.duration(),
+ complete : function() {
+ module.set.active();
+ callback();
+ }
+ })
+ ;
+ }
+ else {
+ module.verbose('Showing dimmer animation with javascript');
+ $dimmer
+ .stop()
+ .css({
+ opacity : 0,
+ width : '100%',
+ height : '100%'
+ })
+ .fadeTo(module.get.duration(), 1, function() {
+ $dimmer.removeAttr('style');
+ module.set.active();
+ callback();
+ })
+ ;
+ }
+ },
+ hide: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if(settings.on != 'hover' && settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {
+ module.verbose('Hiding dimmer with css');
+ $dimmer
+ .transition({
+ animation : settings.transition + ' out',
+ duration : module.get.duration(),
+ queue : true,
+ complete : function() {
+ module.remove.dimmed();
+ module.remove.active();
+ callback();
+ }
+ })
+ ;
+ }
+ else {
+ module.verbose('Hiding dimmer with javascript');
+ $dimmer
+ .stop()
+ .fadeOut(module.get.duration(), function() {
+ $dimmer.removeAttr('style');
+ module.remove.dimmed();
+ module.remove.active();
+ callback();
+ })
+ ;
+ }
+ }
+ },
+
+ get: {
+ dimmer: function() {
+ return $dimmer;
+ },
+ duration: function() {
+ if(typeof settings.duration == 'object') {
+ if( module.is.active() ) {
+ return settings.duration.hide;
+ }
+ else {
+ return settings.duration.show;
+ }
+ }
+ return settings.duration;
+ }
+ },
+
+ has: {
+ dimmer: function() {
+ return ( $module.children(selector.dimmer).size() > 0 );
+ }
+ },
+
+ is: {
+ active: function() {
+ return $dimmer.hasClass(className.active);
+ },
+ animating: function() {
+ return ( $dimmer.is(':animated') || $dimmer.hasClass(className.transition) );
+ },
+ dimmer: function() {
+ return $module.is(selector.dimmer);
+ },
+ dimmable: function() {
+ return $module.is(selector.dimmable);
+ },
+ dimmed: function() {
+ return $dimmable.hasClass(className.dimmed);
+ },
+ disabled: function() {
+ return $dimmable.hasClass(className.disabled);
+ },
+ enabled: function() {
+ return !module.is.disabled();
+ },
+ page: function () {
+ return $dimmable.is('body');
+ },
+ pageDimmer: function() {
+ return $dimmer.hasClass(className.pageDimmer);
+ }
+ },
+
+ can: {
+ show: function() {
+ return !$dimmer.hasClass(className.disabled);
+ }
+ },
+
+ set: {
+ active: function() {
+ module.set.dimmed();
+ $dimmer
+ .removeClass(className.transition)
+ .addClass(className.active)
+ ;
+ },
+ dimmable: function() {
+ $dimmable.addClass(className.dimmable);
+ },
+ dimmed: function() {
+ $dimmable.addClass(className.dimmed);
+ },
+ pageDimmer: function() {
+ $dimmer.addClass(className.pageDimmer);
+ },
+ disabled: function() {
+ $dimmer.addClass(className.disabled);
+ }
+ },
+
+ remove: {
+ active: function() {
+ $dimmer
+ .removeClass(className.transition)
+ .removeClass(className.active)
+ ;
+ },
+ dimmed: function() {
+ $dimmable.removeClass(className.dimmed);
+ },
+ disabled: function() {
+ $dimmer.removeClass(className.disabled);
+ }
+ },
+
+ show: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.debug('Showing dimmer', $dimmer, settings);
+ if( !module.is.active() && module.is.enabled() ) {
+ module.animate.show(callback);
+ $.proxy(settings.onShow, element)();
+ $.proxy(settings.onChange, element)();
+ }
+ else {
+ module.debug('Dimmer is already shown or disabled');
+ }
+ },
+
+ hide: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( module.is.active() || module.is.animating() ) {
+ module.debug('Hiding dimmer', $dimmer);
+ module.animate.hide(callback);
+ $.proxy(settings.onHide, element)();
+ $.proxy(settings.onChange, element)();
+ }
+ else {
+ module.debug('Dimmer is not visible');
+ }
+ },
+
+ toggle: function() {
+ module.verbose('Toggling dimmer visibility', $dimmer);
+ if( !module.is.dimmed() ) {
+ module.show();
+ }
+ else {
+ module.hide();
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ module.preinitialize();
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.dimmer.settings = {
+
+ name : 'Dimmer',
+ namespace : 'dimmer',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ transition : 'fade',
+ useCSS : true,
+ on : false,
+ closable : true,
+
+ duration : {
+ show : 500,
+ hide : 500
+ },
+
+ onChange : function(){},
+ onShow : function(){},
+ onHide : function(){},
+
+ error : {
+ method : 'The method you called is not defined.'
+ },
+
+ selector: {
+ dimmable : '.ui.dimmable',
+ dimmer : '.ui.dimmer',
+ content : '.ui.dimmer > .content, .ui.dimmer > .content > .center'
+ },
+
+ template: {
+ dimmer: function() {
+ return $('
').attr('class', 'ui dimmer');
+ }
+ },
+
+ className : {
+ active : 'active',
+ dimmable : 'ui dimmable',
+ dimmed : 'dimmed',
+ disabled : 'disabled',
+ pageDimmer : 'page',
+ hide : 'hide',
+ show : 'show',
+ transition : 'transition'
+ }
+
+};
+
+})( jQuery, window , document );
\ No newline at end of file
diff --git a/css/semantic/rtl/less/modules/dimmer.less b/css/semantic/rtl/less/modules/dimmer.less
new file mode 100644
index 0000000..2a5b03e
--- /dev/null
+++ b/css/semantic/rtl/less/modules/dimmer.less
@@ -0,0 +1,184 @@
+/*
+ * # Semantic - Dimmer
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Dimmer
+*******************************/
+
+.ui.dimmable {
+ position: relative;
+}
+
+.ui.dimmer {
+ display: none;
+ position: absolute;
+ top: 0em !important;
+ right: 0em !important;
+ width: 0%;
+ height: 0%;
+ text-align: center;
+ vertical-align: middle;
+ background-color: rgba(0, 0, 0, 0.85);
+ opacity: 0;
+ line-height: 1;
+ -webkit-animation-fill-mode: both;
+ -moz-animation-fill-mode: both;
+ animation-fill-mode: both;
+ -webkit-animation-duration: 0.5s;
+ -moz-animation-duration: 0.5s;
+ animation-duration: 0.5s;
+ -webkit-transition: background-color 0.5s linear;
+ -moz-transition: background-color 0.5s linear;
+ transition: background-color 0.5s linear;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ z-index: 1000;
+}
+
+/* Dimmer Content */
+
+.ui.dimmer > .content {
+ width: 100%;
+ height: 100%;
+ display: table;
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+}
+
+.ui.dimmer > .content > div {
+ display: table-cell;
+ vertical-align: middle;
+ color: #FFFFFF;
+}
+
+/* Loose Coupling */
+
+.ui.segment > .ui.dimmer {
+ border-radius: 5px;
+}
+
+.ui.horizontal.segment > .ui.dimmer,
+.ui.vertical.segment > .ui.dimmer {
+ border-radius: 5px;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.dimmed.dimmable:not(body) {
+ overflow: hidden;
+}
+
+.ui.dimmed.dimmable > .ui.animating.dimmer,
+.ui.dimmed.dimmable > .ui.visible.dimmer,
+.ui.active.dimmer {
+ display: block;
+ width: 100%;
+ height: 100%;
+ opacity: 1;
+}
+
+.ui.disabled.dimmer {
+ width: 0em !important;
+ height: 0em !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Page
+---------------*/
+
+.ui.page.dimmer {
+ position: fixed;
+ -webkit-transform-style: preserve-3d;
+ -moz-transform-style: preserve-3d;
+ -ms-transform-style: preserve-3d;
+ transform-style: preserve-3d;
+ -webkit-perspective: 2000px;
+ -moz-perspective: 2000px;
+ -ms-perspective: 2000px;
+ perspective: 2000px;
+ -webkit-transform-origin: center center;
+ -moz-transform-origin: center center;
+ -ms-transform-origin: center center;
+ transform-origin: center center;
+}
+
+.ui.scrolling.dimmable > .dimmer,
+.ui.scrolling.page.dimmer {
+ position: absolute;
+}
+
+/*--------------
+ Aligned
+---------------*/
+
+.ui.dimmer > .top.aligned.content > * {
+ vertical-align: top;
+}
+
+.ui.dimmer > .bottom.aligned.content > * {
+ vertical-align: bottom;
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.inverted.dimmer {
+ background-color: rgba(255, 255, 255, 0.85);
+}
+
+.ui.inverted.dimmer > .content > * {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--------------
+ Simple
+---------------*/
+
+/* Displays without javascript */
+
+.ui.simple.dimmer {
+ display: block;
+ overflow: hidden;
+ opacity: 1;
+ z-index: -100;
+ background-color: rgba(0, 0, 0, 0);
+}
+
+.ui.dimmed.dimmable > .ui.simple.dimmer {
+ overflow: visible;
+ opacity: 1;
+ width: 100%;
+ height: 100%;
+ background-color: rgba(0, 0, 0, 0.85);
+ z-index: 1;
+}
+
+.ui.simple.inverted.dimmer {
+ background-color: rgba(255, 255, 255, 0);
+}
+
+.ui.dimmed.dimmable > .ui.simple.inverted.dimmer {
+ background-color: rgba(255, 255, 255, 0.85);
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/modules/dropdown.js b/css/semantic/rtl/less/modules/dropdown.js
new file mode 100644
index 0000000..3577c3b
--- /dev/null
+++ b/css/semantic/rtl/less/modules/dropdown.js
@@ -0,0 +1,932 @@
+/*
+ * # Semantic - Dropdown
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+;(function ( $, window, document, undefined ) {
+
+$.fn.dropdown = function(parameters) {
+ var
+ $allModules = $(this),
+ $document = $(document),
+
+ moduleSelector = $allModules.selector || '',
+
+ hasTouch = ('ontouchstart' in document.documentElement),
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.dropdown.settings, parameters)
+ : $.extend({}, $.fn.dropdown.settings),
+
+ className = settings.className,
+ metadata = settings.metadata,
+ namespace = settings.namespace,
+ selector = settings.selector,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $item = $module.find(selector.item),
+ $text = $module.find(selector.text),
+ $input = $module.find(selector.input),
+
+ $menu = $module.children(selector.menu),
+
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing dropdown', settings);
+
+ module.save.defaults();
+ module.set.selected();
+
+ if(hasTouch) {
+ module.bind.touchEvents();
+ }
+ module.bind.mouseEvents();
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of dropdown', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous dropdown for', $module);
+ $item
+ .off(eventNamespace)
+ ;
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ bind: {
+ touchEvents: function() {
+ module.debug('Touch device detected binding touch events');
+ $module
+ .on('touchstart' + eventNamespace, module.event.test.toggle)
+ ;
+ $item
+ .on('touchstart' + eventNamespace, module.event.item.mouseenter)
+ .on('touchstart' + eventNamespace, module.event.item.click)
+ ;
+ },
+ mouseEvents: function() {
+ module.verbose('Mouse detected binding mouse events');
+ if(settings.on == 'click') {
+ $module
+ .on('click' + eventNamespace, module.event.test.toggle)
+ ;
+ }
+ else if(settings.on == 'hover') {
+ $module
+ .on('mouseenter' + eventNamespace, module.delay.show)
+ .on('mouseleave' + eventNamespace, module.delay.hide)
+ ;
+ }
+ else {
+ $module
+ .on(settings.on + eventNamespace, module.toggle)
+ ;
+ }
+ $item
+ .on('mouseenter' + eventNamespace, module.event.item.mouseenter)
+ .on('mouseleave' + eventNamespace, module.event.item.mouseleave)
+ .on('click' + eventNamespace, module.event.item.click)
+ ;
+ },
+ intent: function() {
+ module.verbose('Binding hide intent event to document');
+ if(hasTouch) {
+ $document
+ .on('touchstart' + eventNamespace, module.event.test.touch)
+ .on('touchmove' + eventNamespace, module.event.test.touch)
+ ;
+ }
+ $document
+ .on('click' + eventNamespace, module.event.test.hide)
+ ;
+ }
+ },
+
+ unbind: {
+ intent: function() {
+ module.verbose('Removing hide intent event from document');
+ if(hasTouch) {
+ $document
+ .off('touchstart' + eventNamespace)
+ .off('touchmove' + eventNamespace)
+ ;
+ }
+ $document
+ .off('click' + eventNamespace)
+ ;
+ }
+ },
+
+ event: {
+ test: {
+ toggle: function(event) {
+ if( module.determine.intent(event, module.toggle) ) {
+ event.preventDefault();
+ }
+ },
+ touch: function(event) {
+ module.determine.intent(event, function() {
+ if(event.type == 'touchstart') {
+ module.timer = setTimeout(module.hide, settings.delay.touch);
+ }
+ else if(event.type == 'touchmove') {
+ clearTimeout(module.timer);
+ }
+ });
+ event.stopPropagation();
+ },
+ hide: function(event) {
+ module.determine.intent(event, module.hide);
+ }
+ },
+
+ item: {
+
+ mouseenter: function(event) {
+ var
+ $currentMenu = $(this).find(selector.submenu),
+ $otherMenus = $(this).siblings(selector.item).children(selector.menu)
+ ;
+ if($currentMenu.length > 0 || $otherMenus.length > 0) {
+ clearTimeout(module.itemTimer);
+ module.itemTimer = setTimeout(function() {
+ if($otherMenus.length > 0) {
+ module.animate.hide(false, $otherMenus.filter(':visible'));
+ }
+ if($currentMenu.length > 0) {
+ module.verbose('Showing sub-menu', $currentMenu);
+ module.animate.show(false, $currentMenu);
+ }
+ }, settings.delay.show * 2);
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ },
+
+ mouseleave: function(event) {
+ var
+ $currentMenu = $(this).find(selector.menu)
+ ;
+ if($currentMenu.size() > 0) {
+ clearTimeout(module.itemTimer);
+ module.itemTimer = setTimeout(function() {
+ module.verbose('Hiding sub-menu', $currentMenu);
+ module.animate.hide(false, $currentMenu);
+ }, settings.delay.hide);
+ }
+ },
+
+ click: function (event) {
+ var
+ $choice = $(this),
+ text = ( $choice.data(metadata.text) !== undefined )
+ ? $choice.data(metadata.text)
+ : $choice.text(),
+ value = ( $choice.data(metadata.value) !== undefined)
+ ? $choice.data(metadata.value)
+ : (typeof text === 'string')
+ ? text.toLowerCase()
+ : text,
+ callback = function() {
+ module.determine.selectAction(text, value);
+ $.proxy(settings.onChange, element)(value, text);
+ }
+ ;
+ if( $choice.find(selector.menu).size() === 0 ) {
+ if(event.type == 'touchstart') {
+ $choice.one('click', callback);
+ }
+ else {
+ callback();
+ }
+ }
+ }
+
+ },
+
+ resetStyle: function() {
+ $(this).removeAttr('style');
+ }
+
+ },
+
+ determine: {
+ selectAction: function(text, value) {
+ module.verbose('Determining action', settings.action);
+ if( $.isFunction( module.action[settings.action] ) ) {
+ module.verbose('Triggering preset action', settings.action, text, value);
+ module.action[ settings.action ](text, value);
+ }
+ else if( $.isFunction(settings.action) ) {
+ module.verbose('Triggering user action', settings.action, text, value);
+ settings.action(text, value);
+ }
+ else {
+ module.error(error.action, settings.action);
+ }
+ },
+ intent: function(event, callback) {
+ module.debug('Determining whether event occurred in dropdown', event.target);
+ callback = callback || function(){};
+ if( $(event.target).closest($menu).size() === 0 ) {
+ module.verbose('Triggering event', callback);
+ callback();
+ return true;
+ }
+ else {
+ module.verbose('Event occurred in dropdown, canceling callback');
+ return false;
+ }
+ }
+ },
+
+ action: {
+
+ nothing: function() {},
+
+ hide: function() {
+ module.hide();
+ },
+
+ activate: function(text, value) {
+ value = (value !== undefined)
+ ? value
+ : text
+ ;
+ module.set.selected(value);
+ module.set.value(value);
+ module.hide();
+ },
+
+ /* Deprecated */
+ auto: function(text, value) {
+ value = (value !== undefined)
+ ? value
+ : text
+ ;
+ module.set.selected(value);
+ module.set.value(value);
+ module.hide();
+ },
+
+ /* Deprecated */
+ changeText: function(text, value) {
+ value = (value !== undefined)
+ ? value
+ : text
+ ;
+ module.set.selected(value);
+ module.hide();
+ },
+
+ /* Deprecated */
+ updateForm: function(text, value) {
+ value = (value !== undefined)
+ ? value
+ : text
+ ;
+ module.set.selected(value);
+ module.set.value(value);
+ module.hide();
+ }
+
+ },
+
+ get: {
+ text: function() {
+ return $text.text();
+ },
+ value: function() {
+ return ($input.size() > 0)
+ ? $input.val()
+ : $module.data(metadata.value)
+ ;
+ },
+ item: function(value, strict) {
+ var
+ $selectedItem = false
+ ;
+ value = (value !== undefined)
+ ? value
+ : ( module.get.value() !== undefined)
+ ? module.get.value()
+ : module.get.text()
+ ;
+ if(strict === undefined && value === '') {
+ module.debug('Ambiguous dropdown value using strict type check', value);
+ strict = true;
+ }
+ else {
+ strict = strict || false;
+ }
+ if(value !== undefined) {
+ $item
+ .each(function() {
+ var
+ $choice = $(this),
+ optionText = ( $choice.data(metadata.text) !== undefined )
+ ? $choice.data(metadata.text)
+ : $choice.text(),
+ optionValue = ( $choice.data(metadata.value) !== undefined )
+ ? $choice.data(metadata.value)
+ : (typeof optionText === 'string')
+ ? optionText.toLowerCase()
+ : optionText
+ ;
+ if(strict) {
+ if( optionValue === value ) {
+ $selectedItem = $(this);
+ }
+ else if( !$selectedItem && optionText === value ) {
+ $selectedItem = $(this);
+ }
+ }
+ else {
+ if( optionValue == value ) {
+ $selectedItem = $(this);
+ }
+ else if( !$selectedItem && optionText == value ) {
+ $selectedItem = $(this);
+ }
+ }
+ })
+ ;
+ }
+ else {
+ value = module.get.text();
+ }
+ return $selectedItem || false;
+ }
+ },
+
+ restore: {
+ defaults: function() {
+ module.restore.defaultText();
+ module.restore.defaultValue();
+ },
+ defaultText: function() {
+ var
+ defaultText = $module.data(metadata.defaultText)
+ ;
+ module.debug('Restoring default text', defaultText);
+ module.set.text(defaultText);
+ },
+ defaultValue: function() {
+ var
+ defaultValue = $module.data(metadata.defaultValue)
+ ;
+ if(defaultValue !== undefined) {
+ module.debug('Restoring default value', defaultValue);
+ module.set.selected(defaultValue);
+ module.set.value(defaultValue);
+ }
+ }
+ },
+
+ save: {
+ defaults: function() {
+ module.save.defaultText();
+ module.save.defaultValue();
+ },
+ defaultValue: function() {
+ $module.data(metadata.defaultValue, module.get.value() );
+ },
+ defaultText: function() {
+ $module.data(metadata.defaultText, $text.text() );
+ }
+ },
+
+ set: {
+ text: function(text) {
+ module.debug('Changing text', text, $text);
+ $text.removeClass(className.placeholder);
+ $text.text(text);
+ },
+ value: function(value) {
+ module.debug('Adding selected value to hidden input', value, $input);
+ if($input.size() > 0) {
+ $input
+ .val(value)
+ .trigger('change')
+ ;
+ }
+ else {
+ $module.data(metadata.value, value);
+ }
+ },
+ active: function() {
+ $module.addClass(className.active);
+ },
+ visible: function() {
+ $module.addClass(className.visible);
+ },
+ selected: function(value) {
+ var
+ $selectedItem = module.get.item(value),
+ selectedText
+ ;
+ if($selectedItem) {
+ module.debug('Setting selected menu item to', $selectedItem);
+ selectedText = ($selectedItem.data(metadata.text) !== undefined)
+ ? $selectedItem.data(metadata.text)
+ : $selectedItem.text()
+ ;
+ $item
+ .removeClass(className.active)
+ ;
+ $selectedItem
+ .addClass(className.active)
+ ;
+ module.set.text(selectedText);
+ }
+ }
+ },
+
+ remove: {
+ active: function() {
+ $module.removeClass(className.active);
+ },
+ visible: function() {
+ $module.removeClass(className.visible);
+ }
+ },
+
+ is: {
+ selection: function() {
+ return $module.hasClass(className.selection);
+ },
+ animated: function($subMenu) {
+ return ($subMenu)
+ ? $subMenu.is(':animated') || $subMenu.transition('is animating')
+ : $menu.is(':animated') || $menu.transition('is animating')
+ ;
+ },
+ visible: function($subMenu) {
+ return ($subMenu)
+ ? $subMenu.is(':visible')
+ : $menu.is(':visible')
+ ;
+ },
+ hidden: function($subMenu) {
+ return ($subMenu)
+ ? $subMenu.is(':not(:visible)')
+ : $menu.is(':not(:visible)')
+ ;
+ }
+ },
+
+ can: {
+ click: function() {
+ return (hasTouch || settings.on == 'click');
+ },
+ show: function() {
+ return !$module.hasClass(className.disabled);
+ }
+ },
+
+ animate: {
+ show: function(callback, $subMenu) {
+ var
+ $currentMenu = $subMenu || $menu
+ ;
+ callback = callback || function(){};
+ if( module.is.hidden($currentMenu) ) {
+ module.verbose('Doing menu show animation', $currentMenu);
+ if(settings.transition == 'none') {
+ callback();
+ }
+ else if($.fn.transition !== undefined && $module.transition('is supported')) {
+ $currentMenu
+ .transition({
+ animation : settings.transition + ' in',
+ duration : settings.duration,
+ complete : callback,
+ queue : false
+ })
+ ;
+ }
+ else if(settings.transition == 'slide down') {
+ $currentMenu
+ .hide()
+ .clearQueue()
+ .children()
+ .clearQueue()
+ .css('opacity', 0)
+ .delay(50)
+ .animate({
+ opacity : 1
+ }, settings.duration, 'easeOutQuad', module.event.resetStyle)
+ .end()
+ .slideDown(100, 'easeOutQuad', function() {
+ $.proxy(module.event.resetStyle, this)();
+ callback();
+ })
+ ;
+ }
+ else if(settings.transition == 'fade') {
+ $currentMenu
+ .hide()
+ .clearQueue()
+ .fadeIn(settings.duration, function() {
+ $.proxy(module.event.resetStyle, this)();
+ callback();
+ })
+ ;
+ }
+ else {
+ module.error(error.transition, settings.transition);
+ }
+ }
+ },
+ hide: function(callback, $subMenu) {
+ var
+ $currentMenu = $subMenu || $menu
+ ;
+ callback = callback || function(){};
+ if(module.is.visible($currentMenu) ) {
+ module.verbose('Doing menu hide animation', $currentMenu);
+ if($.fn.transition !== undefined && $module.transition('is supported')) {
+ $currentMenu
+ .transition({
+ animation : settings.transition + ' out',
+ duration : settings.duration,
+ complete : callback,
+ queue : false
+ })
+ ;
+ }
+ else if(settings.transition == 'none') {
+ callback();
+ }
+ else if(settings.transition == 'slide down') {
+ $currentMenu
+ .show()
+ .clearQueue()
+ .children()
+ .clearQueue()
+ .css('opacity', 1)
+ .animate({
+ opacity : 0
+ }, 100, 'easeOutQuad', module.event.resetStyle)
+ .end()
+ .delay(50)
+ .slideUp(100, 'easeOutQuad', function() {
+ $.proxy(module.event.resetStyle, this)();
+ callback();
+ })
+ ;
+ }
+ else if(settings.transition == 'fade') {
+ $currentMenu
+ .show()
+ .clearQueue()
+ .fadeOut(150, function() {
+ $.proxy(module.event.resetStyle, this)();
+ callback();
+ })
+ ;
+ }
+ else {
+ module.error(error.transition);
+ }
+ }
+ }
+ },
+
+ show: function() {
+ module.debug('Checking if dropdown can show');
+ if( module.is.hidden() ) {
+ module.hideOthers();
+ module.set.active();
+ module.animate.show(function() {
+ if( module.can.click() ) {
+ module.bind.intent();
+ }
+ module.set.visible();
+ });
+ $.proxy(settings.onShow, element)();
+ }
+ },
+
+ hide: function() {
+ if( !module.is.animated() && module.is.visible() ) {
+ module.debug('Hiding dropdown');
+ if( module.can.click() ) {
+ module.unbind.intent();
+ }
+ module.remove.active();
+ module.animate.hide(module.remove.visible);
+ $.proxy(settings.onHide, element)();
+ }
+ },
+
+ delay: {
+ show: function() {
+ module.verbose('Delaying show event to ensure user intent');
+ clearTimeout(module.timer);
+ module.timer = setTimeout(module.show, settings.delay.show);
+ },
+ hide: function() {
+ module.verbose('Delaying hide event to ensure user intent');
+ clearTimeout(module.timer);
+ module.timer = setTimeout(module.hide, settings.delay.hide);
+ }
+ },
+
+ hideOthers: function() {
+ module.verbose('Finding other dropdowns to hide');
+ $allModules
+ .not($module)
+ .has(selector.menu + ':visible')
+ .dropdown('hide')
+ ;
+ },
+
+ toggle: function() {
+ module.verbose('Toggling menu visibility');
+ if( module.is.hidden() ) {
+ module.show();
+ }
+ else {
+ module.hide();
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ module.error(error.method, query);
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.dropdown.settings = {
+
+ name : 'Dropdown',
+ namespace : 'dropdown',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ on : 'click',
+ action : 'activate',
+
+ delay: {
+ show : 200,
+ hide : 300,
+ touch : 50
+ },
+
+ transition : 'slide down',
+ duration : 250,
+
+ onChange : function(value, text){},
+ onShow : function(){},
+ onHide : function(){},
+
+ error : {
+ action : 'You called a dropdown action that was not defined',
+ method : 'The method you called is not defined.',
+ transition : 'The requested transition was not found'
+ },
+
+ metadata: {
+ defaultText : 'defaultText',
+ defaultValue : 'defaultValue',
+ text : 'text',
+ value : 'value'
+ },
+
+ selector : {
+ menu : '.menu',
+ submenu : '> .menu',
+ item : '.menu > .item',
+ text : '> .text',
+ input : '> input[type="hidden"]'
+ },
+
+ className : {
+ active : 'active',
+ placeholder : 'default',
+ disabled : 'disabled',
+ visible : 'visible',
+ selection : 'selection'
+ }
+
+};
+
+// Adds easing
+$.extend( $.easing, {
+ easeOutQuad: function (x, t, b, c, d) {
+ return -c *(t/=d)*(t-2) + b;
+ },
+});
+
+
+})( jQuery, window , document );
\ No newline at end of file
diff --git a/css/semantic/rtl/less/modules/dropdown.less b/css/semantic/rtl/less/modules/dropdown.less
new file mode 100644
index 0000000..e460723
--- /dev/null
+++ b/css/semantic/rtl/less/modules/dropdown.less
@@ -0,0 +1,558 @@
+/*
+ * # Semantic - Dropdown
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Dropdown
+*******************************/
+
+.ui.dropdown {
+ cursor: pointer;
+ position: relative;
+ display: inline-block;
+ line-height: 1;
+ -webkit-transition: border-radius 0.1s ease,
+ width 0.2s ease;
+ -moz-transition: border-radius 0.1s ease,
+ width 0.2s ease;
+ transition: border-radius 0.1s ease,
+ width 0.2s ease;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -moz-tap-highlight-color: rgba(0, 0, 0, 0);
+ tap-highlight-color: rgba(0, 0, 0, 0);
+}
+
+/*******************************
+ Content
+*******************************/
+
+/*--------------
+ Menu
+---------------*/
+
+.ui.dropdown .menu {
+ cursor: auto;
+ position: absolute;
+ display: none;
+ top: 100%;
+ margin: 0em;
+ background-color: #FFFFFF;
+ min-width: 100%;
+ white-space: nowrap;
+ font-size: 0.875em;
+ text-shadow: none;
+ -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1);
+ border-radius: 0px 0px 0.325em 0.325em;
+ -webkit-transition: opacity 0.2s ease;
+ -moz-transition: opacity 0.2s ease;
+ transition: opacity 0.2s ease;
+ z-index: 11;
+}
+
+/*--------------
+ Icon
+---------------*/
+
+.ui.dropdown > .dropdown.icon {
+ width: auto;
+ margin: 0em 1em 0em 0em;
+}
+
+.ui.dropdown > .dropdown.icon:before {
+ content: "\f0d7";
+}
+
+.ui.dropdown .menu .item .dropdown.icon {
+ width: auto;
+ float: left;
+ margin: 0em 0.5em 0em 0em;
+}
+
+.ui.dropdown .menu .item .dropdown.icon:before {
+ content: "\f0da"/*rtl:"\f0d9"*/;
+}
+
+/*--------------
+ Text
+---------------*/
+
+.ui.dropdown > .text {
+ display: inline-block;
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+/* Flyout Direction */
+
+.ui.dropdown .menu {
+ right: 0px;
+}
+
+/*--------------
+ Sub Menu
+---------------*/
+
+.ui.dropdown .menu .menu {
+ top: 0% !important;
+ right: 100% !important;
+ margin: 0em !important;
+ border-radius: 0 0.325em 0.325em 0em !important;
+}
+
+.ui.dropdown .menu .menu:after {
+ display: none;
+}
+
+.ui.dropdown .menu .item {
+ cursor: pointer;
+ border: none;
+ border-top: 1px solid rgba(0, 0, 0, 0.05);
+ height: auto;
+ font-size: 0.875em;
+ display: block;
+ color: rgba(0, 0, 0, 0.75);
+ padding: 0.85em 1em !important;
+ font-size: 0.875rem;
+ text-transform: none;
+ font-weight: normal;
+ text-align: right;
+ -webkit-touch-callout: none;
+}
+
+.ui.dropdown .menu .item:before {
+ display: none;
+}
+
+.ui.dropdown .menu .item .icon {
+ margin-left: 0.75em;
+}
+
+.ui.dropdown .menu .item:first-child {
+ border-top: none;
+}
+
+/*******************************
+ Coupling
+*******************************/
+
+/* Opposite on last menu on right */
+
+.ui.menu .right.menu .dropdown:last-child .menu,
+.ui.buttons > .ui.dropdown:last-child .menu {
+ right: auto;
+ left: 0px;
+}
+
+.ui.vertical.menu .dropdown.item > .dropdown.icon:before {
+ content: "\f0da"/*rtl:"\f0d9"*/;
+}
+
+.ui.dropdown.icon.button > .dropdown.icon {
+ margin: 0em;
+}
+
+/*******************************
+ States
+*******************************/
+
+/* Dropdown Visible */
+
+.ui.visible.dropdown > .menu {
+ display: block;
+}
+
+/*--------------------
+ Hover
+----------------------*/
+
+/* Menu Item Hover */
+
+.ui.dropdown .menu .item:hover {
+ background-color: rgba(0, 0, 0, 0.02);
+ z-index: 12;
+}
+
+/*--------------------
+ Active
+----------------------*/
+
+/* Menu Item Active */
+
+.ui.dropdown .menu .active.item {
+ box-shadow: none;
+ background-color: rgba(0, 0, 0, 0.06) !important;
+ border-right: none;
+ border-color: transparent !important;
+ -webkit-box-shadow: none;
+ -moz-shadow: none;
+ box-shadow: none;
+ z-index: 12;
+}
+
+/*--------------------
+ Default Text
+----------------------*/
+
+.ui.dropdown > .default.text,
+.ui.default.dropdown > .text {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.dropdown:hover > .default.text,
+.ui.default.dropdown:hover > .text {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--------------------
+ Error
+----------------------*/
+
+.ui.dropdown.error,
+.ui.dropdown.error > .text,
+.ui.dropdown.error > .default.text {
+ color: #D95C5C !important;
+}
+
+.ui.selection.dropdown.error {
+ background-color: #FFFAFA;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(231, 190, 190, 1) !important;
+ box-shadow: 0px 0px 0px 1px rgba(231, 190, 190, 1) !important;
+}
+
+.ui.selection.dropdown.error:hover {
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(231, 190, 190, 1) !important;
+ box-shadow: 0px 0px 0px 1px rgba(231, 190, 190, 1) !important;
+}
+
+.ui.dropdown.error > .menu,
+.ui.dropdown.error > .menu .menu {
+ -webkit-box-shadow: 0px 0px 1px 1px #E7BEBE !important;
+ box-shadow: 0px 0px 1px 1px #E7BEBE !important;
+}
+
+.ui.dropdown.error > .menu .item {
+ color: #D95C5C !important;
+}
+
+/* Item Hover */
+
+.ui.dropdown.error > .menu .item:hover {
+ background-color: #FFF2F2 !important;
+}
+
+/* Item Active */
+
+.ui.dropdown.error > .menu .active.item {
+ background-color: #FDCFCF !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Simple
+---------------*/
+
+/* Displays without javascript */
+
+.ui.simple.dropdown .menu:before,
+.ui.simple.dropdown .menu:after {
+ display: none;
+}
+
+.ui.simple.dropdown .menu {
+ display: block;
+ overflow: hidden;
+ top: -9999px !important;
+ position: absolute;
+ opacity: 0;
+ width: 0;
+ height: 0;
+ -webkit-transition: opacity 0.2s ease-out;
+ -moz-transition: opacity 0.2s ease-out;
+ transition: opacity 0.2s ease-out;
+}
+
+.ui.simple.active.dropdown,
+.ui.simple.dropdown:hover {
+ border-bottom-right-radius: 0em !important;
+ border-bottom-left-radius: 0em !important;
+}
+
+.ui.simple.active.dropdown > .menu,
+.ui.simple.dropdown:hover > .menu {
+ overflow: visible;
+ width: auto;
+ height: auto;
+ top: 100% !important;
+ opacity: 1;
+}
+
+.ui.simple.dropdown > .menu .item:active > .menu,
+.ui.simple.dropdown:hover > .menu .item:hover > .menu {
+ overflow: visible;
+ width: auto;
+ height: auto;
+ top: 0% !important;
+ right: 100% !important;
+ opacity: 1;
+}
+
+.ui.simple.disabled.dropdown:hover .menu {
+ display: none;
+ height: 0px;
+ width: 0px;
+ overflow: hidden;
+}
+
+/*--------------
+ Selection
+---------------*/
+
+/* Displays like a select box */
+
+.ui.selection.dropdown {
+ cursor: pointer;
+ display: inline-block;
+ word-wrap: break-word;
+ white-space: normal;
+ background-color: #FFFFFF;
+ padding: 0.65em 1em;
+ line-height: 1.33;
+ color: rgba(0, 0, 0, 0.8);
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important;
+ border-radius: !important 0.3125em;
+}
+
+.ui.selection.dropdown select {
+ display: none;
+}
+
+.ui.selection.dropdown > .dropdown.icon {
+ opacity: 0.7;
+ margin: 0.2em 1.25em 0.2em 0em;
+ -webkit-transition: opacity 0.2s ease-out;
+ -moz-transition: opacity 0.2s ease-out;
+ transition: opacity 0.2s ease-out;
+}
+
+.ui.selection.dropdown,
+.ui.selection.dropdown .menu {
+ -webkit-transition: -webkit-box-shadow 0.2s ease-out;
+ -moz-transition: box-shadow 0.2s ease-out;
+ transition: box-shadow 0.2s ease-out;
+}
+
+.ui.selection.dropdown .menu {
+ top: 100%;
+ max-height: 312px;
+ overflow-x: hidden;
+ overflow-y: auto;
+ -webkit-box-shadow: 0px 1px 0px 1px #E0E0E0;
+ box-shadow: 0px 1px 0px 1px #E0E0E0;
+ border-radius: 0px 0px 0.325em 0.325em;
+}
+
+.ui.selection.dropdown .menu:after,
+.ui.selection.dropdown .menu:before {
+ display: none;
+}
+
+.ui.selection.dropdown .menu img {
+ height: 2.5em;
+ display: inline-block;
+ vertical-align: middle;
+ margin-left: 0.5em;
+}
+
+/* Visible */
+
+.ui.visible.selection.dropdown {
+ border-bottom-right-radius: 0em !important;
+ border-bottom-left-radius: 0em !important;
+}
+
+/* Active */
+
+.ui.active.selection.dropdown {
+ border-radius: 0.3125em 0.3125em 0em 0em !important;
+}
+
+.ui.active.selection.dropdown > .dropdown.icon {
+ opacity: 1;
+}
+
+/*--------------
+ Fluid
+---------------*/
+
+.ui.fluid.dropdown {
+ display: block;
+}
+
+.ui.fluid.dropdown > .dropdown.icon {
+ float: left;
+}
+
+/*--------------
+ Inline
+---------------*/
+
+.ui.inline.dropdown {
+ cursor: pointer;
+ display: inline-block;
+ color: inherit;
+}
+
+.ui.inline.dropdown .dropdown.icon {
+ margin: 0em 0.25em 0em 0.5em;
+}
+
+.ui.inline.dropdown .text {
+ font-weight: bold;
+}
+
+.ui.inline.dropdown .menu {
+ cursor: auto;
+ margin-top: 0.25em;
+ border-radius: 0.325em;
+}
+
+/*--------------
+ Floating
+---------------*/
+
+.ui.floating.dropdown .menu {
+ right: 0;
+ left: auto;
+ margin-top: 0.5em !important;
+ border-radius: 0.325em;
+}
+
+/*--------------
+ Pointing
+---------------*/
+
+.ui.pointing.dropdown .menu {
+ top: 100%;
+ margin-top: 0.75em;
+ border-radius: 0.325em;
+}
+
+.ui.pointing.dropdown .menu:after {
+ display: block;
+ position: absolute;
+ pointer-events: none;
+ content: " ";
+ visibility: visible;
+ width: 0.5em;
+ height: 0.5em;
+ -webkit-box-shadow: -1px -1px 0px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: -1px -1px 0px 1px rgba(0, 0, 0, 0.05);
+ background-image: none;
+ background-color: #FFFFFF;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ z-index: 2;
+}
+
+.ui.pointing.dropdown .menu .active.item:first-child {
+ background: transparent -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.03));
+ background: transparent -moz-linear-gradient(transparent, rgba(0, 0, 0, 0.03));
+ background: transparent-webkit-gradient(linear, right top, right bottom, from(transparent), to(rgba(0, 0, 0, 0.03)));
+ background: transparent linear-gradient(transparent, rgba(0, 0, 0, 0.03));
+}
+
+/* Directions */
+
+.ui.pointing.dropdown .menu:after {
+ top: -0.25em;
+ right: 50%;
+ margin: 0em -0.25em 0em 0em;
+}
+
+.ui.top.left.pointing.dropdown .menu {
+ top: 100%;
+ bottom: auto;
+ right: 0%;
+ left: auto;
+ margin: 0.75em 0em 0em;
+}
+
+.ui.top.left.pointing.dropdown .menu:after {
+ top: -0.25em;
+ right: 1.25em;
+ left: auto;
+ margin: 0em;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+}
+
+.ui.top.right.pointing.dropdown .menu {
+ top: 100%;
+ bottom: auto;
+ left: 0%;
+ right: auto;
+ margin: 0.75em 0em 0em;
+}
+
+.ui.top.right.pointing.dropdown .menu:after {
+ top: -0.25em;
+ right: auto;
+ left: 1.25em;
+ margin: 0em;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+}
+
+.ui.left.pointing.dropdown .menu {
+ top: 0%;
+ right: 100%;
+ left: auto;
+ margin: 0em 0.75em 0em 0em;
+}
+
+.ui.left.pointing.dropdown .menu:after {
+ top: 1em;
+ right: -0.25em;
+ margin: 0em 0em 0em 0em;
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+}
+
+.ui.right.pointing.dropdown .menu {
+ top: 0%;
+ right: auto;
+ left: 100%;
+ margin: 0em 0em 0em 0.75em;
+}
+
+.ui.right.pointing.dropdown .menu:after {
+ top: 1em;
+ right: auto;
+ left: -0.25em;
+ margin: 0em 0em 0em 0em;
+ -webkit-transform: rotate(135deg);
+ -moz-transform: rotate(135deg);
+ -ms-transform: rotate(135deg);
+ transform: rotate(135deg);
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/modules/modal.js b/css/semantic/rtl/less/modules/modal.js
new file mode 100644
index 0000000..e778d0c
--- /dev/null
+++ b/css/semantic/rtl/less/modules/modal.js
@@ -0,0 +1,743 @@
+/*
+ * # Semantic - Modal
+ * http://github.com/semantic-org/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.modal = function(parameters) {
+ var
+ $allModules = $(this),
+ $window = $(window),
+ $document = $(document),
+ $body = $('body'),
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ requestAnimationFrame = window.requestAnimationFrame
+ || window.mozRequestAnimationFrame
+ || window.webkitRequestAnimationFrame
+ || window.msRequestAnimationFrame
+ || function(callback) { setTimeout(callback, 0); },
+
+ returnedValue
+ ;
+
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.modal.settings, parameters)
+ : $.extend({}, $.fn.modal.settings),
+
+ selector = settings.selector,
+ className = settings.className,
+ namespace = settings.namespace,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+ moduleSelector = $allModules.selector || '',
+
+ $module = $(this),
+ $context = $(settings.context),
+ $close = $module.find(selector.close),
+
+ $allModals,
+ $otherModals,
+ $focusedElement,
+ $dimmable,
+ $dimmer,
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing dimmer', $context);
+
+ if($.fn.dimmer === undefined) {
+ module.error(error.dimmer);
+ return;
+ }
+ $dimmable = $context
+ .dimmer({
+ closable : false,
+ useCSS : true,
+ duration : {
+ show : settings.duration * 0.9,
+ hide : settings.duration * 1.1
+ }
+ })
+ ;
+
+ if(settings.detachable) {
+ $dimmable.dimmer('add content', $module);
+ }
+
+ $dimmer = $dimmable
+ .dimmer('get dimmer')
+ ;
+
+ $otherModals = $module.siblings(selector.modal);
+ $allModals = $otherModals.add($module);
+
+ module.verbose('Attaching close events', $close);
+ $close
+ .on('click' + eventNamespace, module.event.close)
+ ;
+ $window
+ .on('resize' + eventNamespace, module.event.resize)
+ ;
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of modal');
+ instance = module;
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous modal');
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ $close
+ .off(eventNamespace)
+ ;
+ $context
+ .dimmer('destroy')
+ ;
+ },
+
+ refresh: function() {
+ module.remove.scrolling();
+ module.cacheSizes();
+ module.set.screenHeight();
+ module.set.type();
+ module.set.position();
+ },
+
+ attachEvents: function(selector, event) {
+ var
+ $toggle = $(selector)
+ ;
+ event = $.isFunction(module[event])
+ ? module[event]
+ : module.toggle
+ ;
+ if($toggle.size() > 0) {
+ module.debug('Attaching modal events to element', selector, event);
+ $toggle
+ .off(eventNamespace)
+ .on('click' + eventNamespace, event)
+ ;
+ }
+ else {
+ module.error(error.notFound);
+ }
+ },
+
+ event: {
+ close: function() {
+ module.verbose('Closing element pressed');
+ if( $(this).is(selector.approve) ) {
+ if($.proxy(settings.onApprove, element)() !== false) {
+ module.hide();
+ }
+ else {
+ module.verbose('Approve callback returned false cancelling hide');
+ }
+ }
+ else if( $(this).is(selector.deny) ) {
+ if($.proxy(settings.onDeny, element)() !== false) {
+ module.hide();
+ }
+ else {
+ module.verbose('Deny callback returned false cancelling hide');
+ }
+ }
+ else {
+ module.hide();
+ }
+ },
+ click: function(event) {
+ if( $(event.target).closest(selector.modal).size() === 0 ) {
+ module.debug('Dimmer clicked, hiding all modals');
+ if(settings.allowMultiple) {
+ module.hide();
+ }
+ else {
+ module.hideAll();
+ }
+ event.stopImmediatePropagation();
+ }
+ },
+ debounce: function(method, delay) {
+ clearTimeout(module.timer);
+ module.timer = setTimeout(method, delay);
+ },
+ keyboard: function(event) {
+ var
+ keyCode = event.which,
+ escapeKey = 27
+ ;
+ if(keyCode == escapeKey) {
+ if(settings.closable) {
+ module.debug('Escape key pressed hiding modal');
+ module.hide();
+ }
+ else {
+ module.debug('Escape key pressed, but closable is set to false');
+ }
+ event.preventDefault();
+ }
+ },
+ resize: function() {
+ if( $dimmable.dimmer('is active') ) {
+ requestAnimationFrame(module.refresh);
+ }
+ }
+ },
+
+ toggle: function() {
+ if( module.is.active() ) {
+ module.hide();
+ }
+ else {
+ module.show();
+ }
+ },
+
+ show: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.showDimmer();
+ module.showModal(callback);
+ },
+
+ showModal: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( !module.is.active() ) {
+ module.cacheSizes();
+ module.set.position();
+ module.set.screenHeight();
+ module.set.type();
+
+ if( $otherModals.filter(':visible').size() > 0 && !settings.allowMultiple) {
+ module.debug('Other modals visible, queueing show animation');
+ module.hideOthers(module.showModal);
+ }
+ else {
+ $.proxy(settings.onShow, element)();
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ module.debug('Showing modal with css animations');
+ $module
+ .transition(settings.transition + ' in', settings.duration, function() {
+ $.proxy(settings.onVisible, element)();
+ module.set.active();
+ callback();
+ })
+ ;
+ }
+ else {
+ module.debug('Showing modal with javascript');
+ $module
+ .fadeIn(settings.duration, settings.easing, function() {
+ $.proxy(settings.onVisible, element)();
+ module.set.active();
+ callback();
+ })
+ ;
+ }
+ }
+ }
+ else {
+ module.debug('Modal is already visible');
+ }
+ },
+
+ showDimmer: function() {
+ if( !$dimmable.dimmer('is active') ) {
+ module.debug('Showing dimmer');
+ $dimmable.dimmer('show');
+ }
+ else {
+ module.debug('Dimmer already visible');
+ }
+ },
+
+ hide: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if($allModals.filter(':visible').size() <= 1) {
+ module.hideDimmer();
+ }
+ module.hideModal(callback);
+ },
+
+ hideDimmer: function() {
+ if( !module.is.active() ) {
+ module.debug('Dimmer is not visible cannot hide');
+ return;
+ }
+ module.debug('Hiding dimmer');
+ if(settings.closable) {
+ $dimmer
+ .off('click' + eventNamespace)
+ ;
+ }
+ $dimmable.dimmer('hide', function() {
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $module
+ .transition('reset')
+ ;
+ module.remove.screenHeight();
+ }
+ module.remove.active();
+ });
+ },
+
+ hideModal: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( !module.is.active() ) {
+ module.debug('Cannot hide modal it is not active');
+ return;
+ }
+ module.debug('Hiding modal');
+ module.remove.keyboardShortcuts();
+ $.proxy(settings.onHide, element)();
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $module
+ .transition(settings.transition + ' out', settings.duration, function() {
+ $.proxy(settings.onHidden, element)();
+ module.remove.active();
+ module.restore.focus();
+ callback();
+ })
+ ;
+ }
+ else {
+ $module
+ .fadeOut(settings.duration, settings.easing, function() {
+ $.proxy(settings.onHidden, element)();
+ module.remove.active();
+ module.restore.focus();
+ callback();
+ })
+ ;
+ }
+ },
+
+ hideAll: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( $allModals.is(':visible') ) {
+ module.debug('Hiding all visible modals');
+ module.hideDimmer();
+ $allModals
+ .filter(':visible')
+ .modal('hide modal', callback)
+ ;
+ }
+ },
+
+ hideOthers: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( $otherModals.is(':visible') ) {
+ module.debug('Hiding other modals');
+ $otherModals
+ .filter(':visible')
+ .modal('hide modal', callback)
+ ;
+ }
+ },
+
+ add: {
+ keyboardShortcuts: function() {
+ module.verbose('Adding keyboard shortcuts');
+ $document
+ .on('keyup' + eventNamespace, module.event.keyboard)
+ ;
+ }
+ },
+
+ save: {
+ focus: function() {
+ $focusedElement = $(document.activeElement).blur();
+ }
+ },
+
+ restore: {
+ focus: function() {
+ if($focusedElement && $focusedElement.size() > 0) {
+ $focusedElement.focus();
+ }
+ }
+ },
+
+ remove: {
+ active: function() {
+ $module.removeClass(className.active);
+ },
+ screenHeight: function() {
+ if(module.cache.height > module.cache.pageHeight) {
+ module.debug('Removing page height');
+ $body
+ .css('height', '')
+ ;
+ }
+ },
+ keyboardShortcuts: function() {
+ module.verbose('Removing keyboard shortcuts');
+ $document
+ .off('keyup' + eventNamespace)
+ ;
+ },
+ scrolling: function() {
+ $dimmable.removeClass(className.scrolling);
+ $module.removeClass(className.scrolling);
+ }
+ },
+
+ cacheSizes: function() {
+ module.cache = {
+ pageHeight : $body.outerHeight(),
+ height : $module.outerHeight() + settings.offset,
+ contextHeight : (settings.context == 'body')
+ ? $(window).height()
+ : $dimmable.height()
+ };
+ module.debug('Caching modal and container sizes', module.cache);
+ },
+
+ can: {
+ fit: function() {
+ return (module.cache.height < module.cache.contextHeight);
+ }
+ },
+
+ is: {
+ active: function() {
+ return $module.hasClass(className.active);
+ },
+ modernBrowser: function() {
+ // appName for IE11 reports 'Netscape' can no longer use
+ return !(window.ActiveXObject || "ActiveXObject" in window);
+ }
+ },
+
+ set: {
+ screenHeight: function() {
+ if(module.cache.height > module.cache.pageHeight) {
+ module.debug('Modal is taller than page content, resizing page height');
+ $body
+ .css('height', module.cache.height + settings.padding)
+ ;
+ }
+ },
+ active: function() {
+ module.add.keyboardShortcuts();
+ module.save.focus();
+ $module
+ .addClass(className.active)
+ ;
+ if(settings.closable) {
+ $dimmer
+ .off('click' + eventNamespace)
+ .on('click' + eventNamespace, module.event.click)
+ ;
+ }
+ },
+ scrolling: function() {
+ $dimmable.addClass(className.scrolling);
+ $module.addClass(className.scrolling);
+ },
+ type: function() {
+ if(module.can.fit()) {
+ module.verbose('Modal fits on screen');
+ module.remove.scrolling();
+ }
+ else {
+ module.verbose('Modal cannot fit on screen setting to scrolling');
+ module.set.scrolling();
+ }
+ },
+ position: function() {
+ module.verbose('Centering modal on page', module.cache);
+ if(module.can.fit()) {
+ $module
+ .css({
+ top: '',
+ marginTop: -(module.cache.height / 2)
+ })
+ ;
+ }
+ else {
+ $module
+ .css({
+ marginTop : '1em',
+ top : $document.scrollTop()
+ })
+ ;
+ }
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.modal.settings = {
+
+ name : 'Modal',
+ namespace : 'modal',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ allowMultiple : true,
+ detachable : true,
+ closable : true,
+ context : 'body',
+
+ duration : 500,
+ easing : 'easeOutExpo',
+ offset : 0,
+ transition : 'scale',
+
+ padding : 30,
+
+ onShow : function(){},
+ onHide : function(){},
+
+ onVisible : function(){},
+ onHidden : function(){},
+
+ onApprove : function(){ return true; },
+ onDeny : function(){ return true; },
+
+ selector : {
+ close : '.close, .actions .button',
+ approve : '.actions .positive, .actions .approve, .actions .ok',
+ deny : '.actions .negative, .actions .deny, .actions .cancel',
+ modal : '.ui.modal'
+ },
+ error : {
+ dimmer : 'UI Dimmer, a required component is not included in this page',
+ method : 'The method you called is not defined.'
+ },
+ className : {
+ active : 'active',
+ scrolling : 'scrolling'
+ }
+};
+
+
+})( jQuery, window , document );
\ No newline at end of file
diff --git a/css/semantic/rtl/less/modules/modal.less b/css/semantic/rtl/less/modules/modal.less
new file mode 100644
index 0000000..c779f8c
--- /dev/null
+++ b/css/semantic/rtl/less/modules/modal.less
@@ -0,0 +1,308 @@
+/*
+ * # Semantic - Modal
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Modal
+*******************************/
+
+.ui.modal {
+ display: none;
+ position: fixed;
+ z-index: 1001;
+ top: 50%;
+ right: 50%;
+ text-align: right;
+ width: 90%;
+ margin-right: -45%;
+ background-color: #FFFFFF;
+ border: 1px solid #DDDDDD;
+ border-radius: 5px;
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+}
+
+/*******************************
+ Content
+*******************************/
+
+/*--------------
+ Close
+---------------*/
+
+.ui.modal > .close {
+ cursor: pointer;
+ position: absolute;
+ z-index: 1;
+ opacity: 0.8;
+ font-size: 1.25em;
+ top: -1.75em;
+ left: -1.75em;
+ color: #FFFFFF;
+}
+
+.ui.modal > .close:hover {
+ opacity: 1;
+}
+
+/*--------------
+ Header
+---------------*/
+
+.ui.modal > .header {
+ margin: 0em;
+ padding: 1.5rem 2rem;
+ font-size: 1.6em;
+ font-weight: bold;
+ border-radius: 0.325em 0.325em 0px 0px;
+}
+
+/*--------------
+ Content
+---------------*/
+
+.ui.modal > .content {
+ display: table;
+ width: 100%;
+ position: relative;
+ padding: 2em;
+ background-color: #F4F4F4;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.modal > .content > .left:not(.ui) {
+ display: table-cell;
+ padding-left: 1.5%;
+ min-width: 25%;
+}
+
+.ui.modal > .content > .right:not(.ui) {
+ display: table-cell;
+ padding-right: 1.5%;
+ vertical-align: top;
+}
+
+/*rtl:ignore*/
+
+.ui.modal > .content > .left:not(.ui) > i.icon {
+ font-size: 8em;
+ margin: 0em;
+}
+
+.ui.modal > .content p {
+ line-height: 1.6;
+}
+
+/*--------------
+ Actions
+---------------*/
+
+.ui.modal .actions {
+ padding: 1rem 2rem;
+ text-align: left;
+}
+
+.ui.modal .actions > .button {
+ margin-right: 0.75em;
+}
+
+/*-------------------
+ Sizing
+--------------------*/
+
+/* Mobile Only */
+
+@media only screen and (max-width : 768px) {
+ /*rtl:ignore*/
+
+ .ui.modal .content > .left:not(.ui) {
+ display: block;
+ padding: 0em 0em 1em;
+ }
+
+ /*rtl:ignore*/
+
+ .ui.modal .content > .right:not(.ui) {
+ display: block;
+ padding: 1em 0em 0em;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+
+ .ui.modal .content .image {
+ width: auto !important;
+ max-width: 100%;
+ }
+
+ .ui.modal .actions {
+ padding-bottom: 0em;
+ }
+
+ .ui.modal .actions > .buttons,
+ .ui.modal .actions > .button {
+ margin-bottom: 1em;
+ }
+}
+
+/* Tablet and Mobile */
+
+@media only screen and (max-width : 998px) {
+ .ui.modal {
+ width: 92%;
+ margin-right: -46%;
+ }
+
+ .ui.modal > .close {
+ color: rgba(0, 0, 0, 0.8);
+ top: 1.5rem;
+ left: 1rem;
+ }
+}
+
+/* Computer / Responsive */
+
+@media only screen and (min-width : 998px) {
+ .ui.modal {
+ width: 74%;
+ margin-right: -37%;
+ }
+}
+
+@media only screen and (min-width : 1500px) {
+ .ui.modal {
+ width: 56%;
+ margin-right: -28%;
+ }
+}
+
+@media only screen and (min-width : 1750px) {
+ .ui.modal {
+ width: 42%;
+ margin-right: -21%;
+ }
+}
+
+@media only screen and (min-width : 2000px) {
+ .ui.modal {
+ width: 36%;
+ margin-right: -18%;
+ }
+}
+
+/*******************************
+ Types
+*******************************/
+
+.ui.basic.modal {
+ background-color: transparent;
+ border: none;
+ color: #FFFFFF;
+}
+
+.ui.basic.modal > .close {
+ top: 1.5rem;
+ left: 1rem;
+}
+
+.ui.basic.modal .content {
+ background-color: transparent;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/* A modal that cannot fit on the page */
+
+.ui.modal.scrolling {
+ position: absolute;
+ margin-top: 10px;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.active.modal {
+ display: block;
+}
+
+/*--------------
+ Size
+---------------*/
+
+/* Small */
+
+.ui.small.modal > .header {
+ font-size: 1.3em;
+}
+
+@media only screen and (min-width : 998px) {
+ .ui.small.modal {
+ width: 58%;
+ margin-right: -29%;
+ }
+}
+
+@media only screen and (min-width : 1500px) {
+ .ui.small.modal {
+ width: 40%;
+ margin-right: -20%;
+ }
+}
+
+@media only screen and (min-width : 1750px) {
+ .ui.small.modal {
+ width: 26%;
+ margin-right: -13%;
+ }
+}
+
+@media only screen and (min-width : 2000px) {
+ .ui.small.modal {
+ width: 20%;
+ margin-right: -10%;
+ }
+}
+
+/* Large */
+
+@media only screen and (min-width : 998px) {
+ .ui.large.modal {
+ width: 74%;
+ margin-right: -37%;
+ }
+}
+
+@media only screen and (min-width : 1500px) {
+ .ui.large.modal {
+ width: 64%;
+ margin-right: -32%;
+ }
+}
+
+@media only screen and (min-width : 1750px) {
+ .ui.large.modal {
+ width: 54%;
+ margin-right: -27%;
+ }
+}
+
+@media only screen and (min-width : 2000px) {
+ .ui.large.modal {
+ width: 44%;
+ margin-right: -22%;
+ }
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/modules/nag.js b/css/semantic/rtl/less/modules/nag.js
new file mode 100644
index 0000000..18c88b9
--- /dev/null
+++ b/css/semantic/rtl/less/modules/nag.js
@@ -0,0 +1,543 @@
+/*
+ * # Semantic - Nag
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.nag = function(parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $(this)
+ .each(function() {
+ var
+ settings = $.extend(true, {}, $.fn.nag.settings, parameters),
+
+ className = settings.className,
+ selector = settings.selector,
+ error = settings.error,
+ namespace = settings.namespace,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = namespace + '-module',
+
+ $module = $(this),
+
+ $close = $module.find(selector.close),
+ $context = $(settings.context),
+
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+
+ moduleOffset,
+ moduleHeight,
+
+ contextWidth,
+ contextHeight,
+ contextOffset,
+
+ yOffset,
+ yPosition,
+
+ timer,
+ module,
+
+ requestAnimationFrame = window.requestAnimationFrame
+ || window.mozRequestAnimationFrame
+ || window.webkitRequestAnimationFrame
+ || window.msRequestAnimationFrame
+ || function(callback) { setTimeout(callback, 0); }
+ ;
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing element');
+ // calculate module offset once
+ moduleOffset = $module.offset();
+ moduleHeight = $module.outerHeight();
+ contextWidth = $context.outerWidth();
+ contextHeight = $context.outerHeight();
+ contextOffset = $context.offset();
+
+ $module
+ .data(moduleNamespace, module)
+ ;
+ $close
+ .on('click' + eventNamespace, module.dismiss)
+ ;
+ // lets avoid javascript if we dont need to reposition
+ if(settings.context == window && settings.position == 'fixed') {
+ $module
+ .addClass(className.fixed)
+ ;
+ }
+ if(settings.sticky) {
+ module.verbose('Adding scroll events');
+ // retrigger on scroll for absolute
+ if(settings.position == 'absolute') {
+ $context
+ .on('scroll' + eventNamespace, module.event.scroll)
+ .on('resize' + eventNamespace, module.event.scroll)
+ ;
+ }
+ // fixed is always relative to window
+ else {
+ $(window)
+ .on('scroll' + eventNamespace, module.event.scroll)
+ .on('resize' + eventNamespace, module.event.scroll)
+ ;
+ }
+ // fire once to position on init
+ $.proxy(module.event.scroll, this)();
+ }
+
+ if(settings.displayTime > 0) {
+ setTimeout(module.hide, settings.displayTime);
+ }
+ if(module.should.show()) {
+ if( !$module.is(':visible') ) {
+ module.show();
+ }
+ }
+ else {
+ module.hide();
+ }
+ },
+
+ destroy: function() {
+ module.verbose('Destroying instance');
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ if(settings.sticky) {
+ $context
+ .off(eventNamespace)
+ ;
+ }
+ },
+
+ refresh: function() {
+ module.debug('Refreshing cached calculations');
+ moduleOffset = $module.offset();
+ moduleHeight = $module.outerHeight();
+ contextWidth = $context.outerWidth();
+ contextHeight = $context.outerHeight();
+ contextOffset = $context.offset();
+ },
+
+ show: function() {
+ module.debug('Showing nag', settings.animation.show);
+ if(settings.animation.show == 'fade') {
+ $module
+ .fadeIn(settings.duration, settings.easing)
+ ;
+ }
+ else {
+ $module
+ .slideDown(settings.duration, settings.easing)
+ ;
+ }
+ },
+
+ hide: function() {
+ module.debug('Showing nag', settings.animation.hide);
+ if(settings.animation.show == 'fade') {
+ $module
+ .fadeIn(settings.duration, settings.easing)
+ ;
+ }
+ else {
+ $module
+ .slideUp(settings.duration, settings.easing)
+ ;
+ }
+ },
+
+ onHide: function() {
+ module.debug('Removing nag', settings.animation.hide);
+ $module.remove();
+ if (settings.onHide) {
+ settings.onHide();
+ }
+ },
+
+ stick: function() {
+ module.refresh();
+
+ if(settings.position == 'fixed') {
+ var
+ windowScroll = $(window).prop('pageYOffset') || $(window).scrollTop(),
+ fixedOffset = ( $module.hasClass(className.bottom) )
+ ? contextOffset.top + (contextHeight - moduleHeight) - windowScroll
+ : contextOffset.top - windowScroll
+ ;
+ $module
+ .css({
+ position : 'fixed',
+ top : fixedOffset,
+ left : contextOffset.left,
+ width : contextWidth - settings.scrollBarWidth
+ })
+ ;
+ }
+ else {
+ $module
+ .css({
+ top : yPosition
+ })
+ ;
+ }
+ },
+ unStick: function() {
+ $module
+ .css({
+ top : ''
+ })
+ ;
+ },
+ dismiss: function(event) {
+ if(settings.storageMethod) {
+ module.storage.set(settings.storedKey, settings.storedValue);
+ }
+ module.hide();
+ event.stopImmediatePropagation();
+ event.preventDefault();
+ },
+
+ should: {
+ show: function() {
+ if(settings.persist) {
+ module.debug('Persistent nag is set, can show nag');
+ return true;
+ }
+ if(module.storage.get(settings.storedKey) != settings.storedValue) {
+ module.debug('Stored value is not set, can show nag', module.storage.get(settings.storedKey));
+ return true;
+ }
+ module.debug('Stored value is set, cannot show nag', module.storage.get(settings.storedKey));
+ return false;
+ },
+ stick: function() {
+ yOffset = $context.prop('pageYOffset') || $context.scrollTop();
+ yPosition = ( $module.hasClass(className.bottom) )
+ ? (contextHeight - $module.outerHeight() ) + yOffset
+ : yOffset
+ ;
+ // absolute position calculated when y offset met
+ if(yPosition > moduleOffset.top) {
+ return true;
+ }
+ else if(settings.position == 'fixed') {
+ return true;
+ }
+ return false;
+ }
+ },
+
+ storage: {
+
+ set: function(key, value) {
+ module.debug('Setting stored value', key, value, settings.storageMethod);
+ if(settings.storageMethod == 'local' && window.store !== undefined) {
+ window.store.set(key, value);
+ }
+ // store by cookie
+ else if($.cookie !== undefined) {
+ $.cookie(key, value);
+ }
+ else {
+ module.error(error.noStorage);
+ }
+ },
+ get: function(key) {
+ module.debug('Getting stored value', key, settings.storageMethod);
+ if(settings.storageMethod == 'local' && window.store !== undefined) {
+ return window.store.get(key);
+ }
+ // get by cookie
+ else if($.cookie !== undefined) {
+ return $.cookie(key);
+ }
+ else {
+ module.error(error.noStorage);
+ }
+ }
+
+ },
+
+ event: {
+ scroll: function() {
+ if(timer !== undefined) {
+ clearTimeout(timer);
+ }
+ timer = setTimeout(function() {
+ if(module.should.stick() ) {
+ requestAnimationFrame(module.stick);
+ }
+ else {
+ module.unStick();
+ }
+ }, settings.lag);
+ }
+ },
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ module.debug('Changing internal', name, value);
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else {
+ module[name] = value;
+ }
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ })
+ ;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.nag.settings = {
+
+ name : 'Nag',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ namespace : 'Nag',
+
+ // allows cookie to be overriden
+ persist : false,
+
+ // set to zero to manually dismiss, otherwise hides on its own
+ displayTime : 0,
+
+ animation : {
+ show: 'slide',
+ hide: 'slide'
+ },
+
+ // method of stickyness
+ position : 'fixed',
+ scrollBarWidth : 18,
+
+ // type of storage to use
+ storageMethod : 'cookie',
+
+ // value to store in dismissed localstorage/cookie
+ storedKey : 'nag',
+ storedValue : 'dismiss',
+
+ // need to calculate stickyness on scroll
+ sticky : false,
+
+ // how often to check scroll event
+ lag : 0,
+
+ // context for scroll event
+ context : window,
+
+ error: {
+ noStorage : 'Neither $.cookie or store is defined. A storage solution is required for storing state',
+ method : 'The method you called is not defined.'
+ },
+
+ className : {
+ bottom : 'bottom',
+ fixed : 'fixed'
+ },
+
+ selector : {
+ close: '.icon.close'
+ },
+
+ speed : 500,
+ easing : 'easeOutQuad',
+
+ onHide: function() {}
+
+};
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/less/modules/nag.less b/css/semantic/rtl/less/modules/nag.less
new file mode 100644
index 0000000..262af3b
--- /dev/null
+++ b/css/semantic/rtl/less/modules/nag.less
@@ -0,0 +1,140 @@
+/*
+ * # Semantic - Nag
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Nag
+*******************************/
+
+.ui.nag {
+ display: none;
+ opacity: 0.95;
+ position: relative;
+ top: 0px;
+ right: 0%;
+ z-index: 101;
+ min-height: 0;
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 0em;
+ line-height: 3em;
+ padding: 0em 1em;
+ background-color: #555555;
+ -webkit-box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2);
+ box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2);
+ font-size: 1em;
+ text-align: center;
+ color: rgba(255, 255, 255, 0.8);
+ border-radius: 0px 0px 5px 5px;
+ -webkit-transition: 0.2s background;
+ -moz-transition: 0.2s background;
+ transition: 0.2s background;
+}
+
+a.ui.nag {
+ cursor: pointer;
+}
+
+.ui.nag > .title {
+ display: inline-block;
+ margin: 0em 0.5em;
+ color: #FFFFFF;
+}
+
+.ui.nag > .close.icon {
+ cursor: pointer;
+ opacity: 0.4;
+ position: absolute;
+ top: 50%;
+ left: 1em;
+ margin-top: -0.5em;
+ color: #FFFFFF;
+ -webkit-transition: 0.1s opacity;
+ -moz-transition: 0.1s opacity;
+ transition: 0.1s opacity;
+}
+
+/*******************************
+ States
+*******************************/
+
+/* Hover */
+
+.ui.nag:hover {
+ opacity: 1;
+}
+
+.ui.nag .close:hover {
+ opacity: 1;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Static
+---------------*/
+
+.ui.overlay.nag {
+ position: absolute;
+ display: block;
+}
+
+/*--------------
+ Fixed
+---------------*/
+
+.ui.fixed.nag {
+ position: fixed;
+}
+
+/*--------------
+ Bottom
+---------------*/
+
+.ui.bottom.nag {
+ border-radius: 5px 5px 0px 0px;
+}
+
+.ui.fixed.bottom.nags,
+.ui.fixed.bottom.nag {
+ top: auto;
+ bottom: 0px;
+}
+
+/*--------------
+ White
+---------------*/
+
+.ui.white.nags .nag,
+.ui.white.nag {
+ background-color: #F1F1F1;
+ text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.8);
+ color: #ACACAC;
+}
+
+.ui.white.nags .nag .close,
+.ui.white.nags .nag .title,
+.ui.white.nag .close,
+.ui.white.nag .title {
+ color: #333333;
+}
+
+/*******************************
+ Groups
+*******************************/
+
+.ui.nags .nag {
+ border-radius: 0px;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/modules/popup.js b/css/semantic/rtl/less/modules/popup.js
new file mode 100644
index 0000000..1a2cc95
--- /dev/null
+++ b/css/semantic/rtl/less/modules/popup.js
@@ -0,0 +1,857 @@
+/*
+ * # Semantic - Popup
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.popup = function(parameters) {
+ var
+ $allModules = $(this),
+ $document = $(document),
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.popup.settings, parameters)
+ : $.extend({}, $.fn.popup.settings),
+
+ selector = settings.selector,
+ className = settings.className,
+ error = settings.error,
+ metadata = settings.metadata,
+ namespace = settings.namespace,
+
+ eventNamespace = '.' + settings.namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $context = $(settings.context),
+ $target = (settings.target)
+ ? $(settings.target)
+ : $module,
+
+ $window = $(window),
+
+ $offsetParent = (settings.inline)
+ ? $target.offsetParent()
+ : $window,
+ $popup = (settings.inline)
+ ? $target.next(settings.selector.popup)
+ : $window.children(settings.selector.popup).last(),
+
+ searchDepth = 0,
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ // binds events
+ initialize: function() {
+ module.debug('Initializing module', $module);
+ if(settings.on == 'click') {
+ $module
+ .on('click', module.toggle)
+ ;
+ }
+ else {
+ $module
+ .on(module.get.startEvent() + eventNamespace, module.event.start)
+ .on(module.get.endEvent() + eventNamespace, module.event.end)
+ ;
+ }
+ if(settings.target) {
+ module.debug('Target set to element', $target);
+ }
+ $window
+ .on('resize' + eventNamespace, module.event.resize)
+ ;
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ refresh: function() {
+ if(settings.inline) {
+ $popup = $target.next(selector.popup);
+ $offsetParent = $target.offsetParent();
+ }
+ else {
+ $popup = $window.children(selector.popup).last();
+ }
+ },
+
+ destroy: function() {
+ module.debug('Destroying previous module');
+ $window
+ .off(eventNamespace)
+ ;
+ $popup
+ .remove()
+ ;
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ event: {
+ start: function(event) {
+ module.timer = setTimeout(function() {
+ if( module.is.hidden() ) {
+ module.show();
+ }
+ }, settings.delay);
+ },
+ end: function() {
+ clearTimeout(module.timer);
+ if( module.is.visible() ) {
+ module.hide();
+ }
+ },
+ resize: function() {
+ if( module.is.visible() ) {
+ module.set.position();
+ }
+ }
+ },
+
+ // generates popup html from metadata
+ create: function() {
+ module.debug('Creating pop-up html');
+ var
+ html = $module.data(metadata.html) || settings.html,
+ variation = $module.data(metadata.variation) || settings.variation,
+ title = $module.data(metadata.title) || settings.title,
+ content = $module.data(metadata.content) || $module.attr('title') || settings.content
+ ;
+ if(html || content || title) {
+ if(!html) {
+ html = settings.template({
+ title : title,
+ content : content
+ });
+ }
+ $popup = $('
')
+ .addClass(className.popup)
+ .addClass(variation)
+ .html(html)
+ ;
+ if(settings.inline) {
+ module.verbose('Inserting popup element inline', $popup);
+ $popup
+ .data(moduleNamespace, instance)
+ .insertAfter($module)
+ ;
+ }
+ else {
+ module.verbose('Appending popup element to body', $popup);
+ $popup
+ .data(moduleNamespace, instance)
+ .appendTo( $context )
+ ;
+ }
+ $.proxy(settings.onCreate, $popup)();
+ }
+ else {
+ module.error(error.content);
+ }
+ },
+
+ // determines popup state
+ toggle: function() {
+ module.debug('Toggling pop-up');
+ if( module.is.hidden() ) {
+ module.debug('Popup is hidden, showing pop-up');
+ module.unbind.close();
+ module.hideAll();
+ module.show();
+ }
+ else {
+ module.debug('Popup is visible, hiding pop-up');
+ module.hide();
+ }
+ },
+
+ show: function(callback) {
+ callback = callback || function(){};
+ module.debug('Showing pop-up', settings.transition);
+ if(!settings.preserve) {
+ module.refresh();
+ }
+ if( !module.exists() ) {
+ module.create();
+ }
+ module.save.conditions();
+ module.set.position();
+ module.animate.show(callback);
+ },
+
+
+ hide: function(callback) {
+ callback = callback || function(){};
+ $module
+ .removeClass(className.visible)
+ ;
+ module.restore.conditions();
+ module.unbind.close();
+ if( module.is.visible() ) {
+ module.animate.hide(callback);
+ }
+ },
+
+ hideAll: function() {
+ $(selector.popup)
+ .filter(':visible')
+ .popup('hide')
+ ;
+ },
+
+ hideGracefully: function(event) {
+ // don't close on clicks inside popup
+ if(event && $(event.target).closest(selector.popup).size() === 0) {
+ module.debug('Click occurred outside popup hiding popup');
+ module.hide();
+ }
+ else {
+ module.debug('Click was inside popup, keeping popup open');
+ }
+ },
+
+ exists: function() {
+ if(settings.inline) {
+ return ( $popup.size() !== 0 );
+ }
+ else {
+ return ( $popup.parent($context).size() );
+ }
+ },
+
+ remove: function() {
+ module.debug('Removing popup');
+ $popup
+ .remove()
+ ;
+ },
+
+ save: {
+ conditions: function() {
+ module.cache = {
+ title: $module.attr('title')
+ };
+ if (module.cache.title) {
+ $module.removeAttr('title');
+ }
+ module.verbose('Saving original attributes', module.cache.title);
+ }
+ },
+ restore: {
+ conditions: function() {
+ if(module.cache && module.cache.title) {
+ $module.attr('title', module.cache.title);
+ module.verbose('Restoring original attributes', module.cache.title);
+ }
+ return true;
+ }
+ },
+ animate: {
+ show: function(callback) {
+ callback = callback || function(){};
+ $module
+ .addClass(className.visible)
+ ;
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $popup
+ .transition(settings.transition + ' in', settings.duration, function() {
+ module.bind.close();
+ $.proxy(callback, element)();
+ })
+ ;
+ }
+ else {
+ $popup
+ .stop()
+ .fadeIn(settings.duration, settings.easing, function() {
+ module.bind.close();
+ $.proxy(callback, element)();
+ })
+ ;
+ }
+ $.proxy(settings.onShow, element)();
+ },
+ hide: function(callback) {
+ callback = callback || function(){};
+ module.debug('Hiding pop-up');
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $popup
+ .transition(settings.transition + ' out', settings.duration, function() {
+ module.reset();
+ callback();
+ })
+ ;
+ }
+ else {
+ $popup
+ .stop()
+ .fadeOut(settings.duration, settings.easing, function() {
+ module.reset();
+ callback();
+ })
+ ;
+ }
+ $.proxy(settings.onHide, element)();
+ }
+ },
+
+ get: {
+ startEvent: function() {
+ if(settings.on == 'hover') {
+ return 'mouseenter';
+ }
+ else if(settings.on == 'focus') {
+ return 'focus';
+ }
+ },
+ endEvent: function() {
+ if(settings.on == 'hover') {
+ return 'mouseleave';
+ }
+ else if(settings.on == 'focus') {
+ return 'blur';
+ }
+ },
+ offstagePosition: function() {
+ var
+ boundary = {
+ top : $(window).scrollTop(),
+ bottom : $(window).scrollTop() + $(window).height(),
+ left : 0,
+ right : $(window).width()
+ },
+ popup = {
+ width : $popup.width(),
+ height : $popup.outerHeight(),
+ position : $popup.offset()
+ },
+ offstage = {},
+ offstagePositions = []
+ ;
+ if(popup.position) {
+ offstage = {
+ top : (popup.position.top < boundary.top),
+ bottom : (popup.position.top + popup.height > boundary.bottom),
+ right : (popup.position.left + popup.width > boundary.right),
+ left : (popup.position.left < boundary.left)
+ };
+ }
+ module.verbose('Checking if outside viewable area', popup.position);
+ // return only boundaries that have been surpassed
+ $.each(offstage, function(direction, isOffstage) {
+ if(isOffstage) {
+ offstagePositions.push(direction);
+ }
+ });
+ return (offstagePositions.length > 0)
+ ? offstagePositions.join(' ')
+ : false
+ ;
+ },
+ nextPosition: function(position) {
+ switch(position) {
+ case 'top left':
+ position = 'bottom left';
+ break;
+ case 'bottom left':
+ position = 'top right';
+ break;
+ case 'top right':
+ position = 'bottom right';
+ break;
+ case 'bottom right':
+ position = 'top center';
+ break;
+ case 'top center':
+ position = 'bottom center';
+ break;
+ case 'bottom center':
+ position = 'right center';
+ break;
+ case 'right center':
+ position = 'left center';
+ break;
+ case 'left center':
+ position = 'top center';
+ break;
+ }
+ return position;
+ }
+ },
+
+ set: {
+ position: function(position, arrowOffset) {
+ var
+ windowWidth = $(window).width(),
+ windowHeight = $(window).height(),
+
+ width = $target.outerWidth(),
+ height = $target.outerHeight(),
+
+ popupWidth = $popup.width(),
+ popupHeight = $popup.outerHeight(),
+
+ parentWidth = $offsetParent.outerWidth(),
+ parentHeight = $offsetParent.outerHeight(),
+
+ distanceAway = settings.distanceAway,
+
+ offset = (settings.inline)
+ ? $target.position()
+ : $target.offset(),
+
+ positioning,
+ offstagePosition
+ ;
+ position = position || $module.data(metadata.position) || settings.position;
+ arrowOffset = arrowOffset || $module.data(metadata.offset) || settings.offset;
+ // adjust for margin when inline
+ if(settings.inline) {
+ if(position == 'left center' || position == 'right center') {
+ arrowOffset += parseInt( window.getComputedStyle(element).getPropertyValue('margin-top'), 10);
+ distanceAway += -parseInt( window.getComputedStyle(element).getPropertyValue('margin-left'), 10);
+ }
+ else {
+ arrowOffset += parseInt( window.getComputedStyle(element).getPropertyValue('margin-left'), 10);
+ distanceAway += parseInt( window.getComputedStyle(element).getPropertyValue('margin-top'), 10);
+ }
+ }
+ module.debug('Calculating offset for position', position);
+ switch(position) {
+ case 'top left':
+ positioning = {
+ bottom : parentHeight - offset.top + distanceAway,
+ right : parentWidth - offset.left - arrowOffset,
+ top : 'auto',
+ left : 'auto'
+ };
+ break;
+ case 'top center':
+ positioning = {
+ bottom : parentHeight - offset.top + distanceAway,
+ left : offset.left + (width / 2) - (popupWidth / 2) + arrowOffset,
+ top : 'auto',
+ right : 'auto'
+ };
+ break;
+ case 'top right':
+ positioning = {
+ top : 'auto',
+ bottom : parentHeight - offset.top + distanceAway,
+ left : offset.left + width + arrowOffset,
+ right : 'auto'
+ };
+ break;
+ case 'left center':
+ positioning = {
+ top : offset.top + (height / 2) - (popupHeight / 2) + arrowOffset,
+ right : parentWidth - offset.left + distanceAway,
+ left : 'auto',
+ bottom : 'auto'
+ };
+ break;
+ case 'right center':
+ positioning = {
+ top : offset.top + (height / 2) - (popupHeight / 2) + arrowOffset,
+ left : offset.left + width + distanceAway,
+ bottom : 'auto',
+ right : 'auto'
+ };
+ break;
+ case 'bottom left':
+ positioning = {
+ top : offset.top + height + distanceAway,
+ right : parentWidth - offset.left - arrowOffset,
+ left : 'auto',
+ bottom : 'auto'
+ };
+ break;
+ case 'bottom center':
+ positioning = {
+ top : offset.top + height + distanceAway,
+ left : offset.left + (width / 2) - (popupWidth / 2) + arrowOffset,
+ bottom : 'auto',
+ right : 'auto'
+ };
+ break;
+ case 'bottom right':
+ positioning = {
+ top : offset.top + height + distanceAway,
+ left : offset.left + width + arrowOffset,
+ bottom : 'auto',
+ right : 'auto'
+ };
+ break;
+ }
+ // tentatively place on stage
+ $popup
+ .css(positioning)
+ .removeClass(className.position)
+ .addClass(position)
+ .addClass(className.loading)
+ ;
+ // check if is offstage
+ offstagePosition = module.get.offstagePosition();
+
+ // recursively find new positioning
+ if(offstagePosition) {
+ module.debug('Element is outside boundaries', offstagePosition);
+ if(searchDepth < settings.maxSearchDepth) {
+ position = module.get.nextPosition(position);
+ searchDepth++;
+ module.debug('Trying new position', position);
+ return module.set.position(position);
+ }
+ else {
+ module.error(error.recursion);
+ searchDepth = 0;
+ module.reset();
+ $popup.removeClass(className.loading);
+ return false;
+ }
+ }
+ else {
+ module.debug('Position is on stage', position);
+ searchDepth = 0;
+ $popup.removeClass(className.loading);
+ return true;
+ }
+ }
+
+ },
+
+ bind: {
+ close:function() {
+ if(settings.on == 'click' && settings.closable) {
+ module.verbose('Binding popup close event to document');
+ $document
+ .on('click' + eventNamespace, function(event) {
+ module.verbose('Pop-up clickaway intent detected');
+ $.proxy(module.hideGracefully, this)(event);
+ })
+ ;
+ }
+ }
+ },
+
+ unbind: {
+ close: function() {
+ if(settings.on == 'click' && settings.closable) {
+ module.verbose('Removing close event from document');
+ $document
+ .off('click' + eventNamespace)
+ ;
+ }
+ }
+ },
+
+ is: {
+ animating: function() {
+ return ( $popup.is(':animated') || $popup.hasClass(className.animating) );
+ },
+ visible: function() {
+ return $popup.is(':visible');
+ },
+ hidden: function() {
+ return !module.is.visible();
+ }
+ },
+
+ reset: function() {
+ $popup
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ if(!settings.preserve) {
+ module.remove();
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.popup.settings = {
+
+ name : 'Popup',
+ debug : false,
+ verbose : true,
+ performance : true,
+ namespace : 'popup',
+
+ onCreate : function(){},
+ onShow : function(){},
+ onHide : function(){},
+
+ variation : '',
+ content : false,
+ html : false,
+ title : false,
+
+ on : 'hover',
+ target : false,
+ closable : true,
+
+ context : 'body',
+ position : 'top center',
+ delay : 150,
+ inline : false,
+ preserve : false,
+
+ duration : 250,
+ easing : 'easeOutQuint',
+ transition : 'scale',
+
+ distanceAway : 0,
+ offset : 0,
+ maxSearchDepth : 10,
+
+ error: {
+ content : 'Your popup has no content specified',
+ method : 'The method you called is not defined.',
+ recursion : 'Popup attempted to reposition element to fit, but could not find an adequate position.'
+ },
+
+ metadata: {
+ content : 'content',
+ html : 'html',
+ offset : 'offset',
+ position : 'position',
+ title : 'title',
+ variation : 'variation'
+ },
+
+ className : {
+ animating : 'animating',
+ loading : 'loading',
+ popup : 'ui popup',
+ position : 'top left center bottom right',
+ visible : 'visible'
+ },
+
+ selector : {
+ popup : '.ui.popup'
+ },
+
+ template: function(text) {
+ var html = '';
+ if(typeof text !== undefined) {
+ if(typeof text.title !== undefined && text.title) {
+ html += '';
+ }
+ if(typeof text.content !== undefined && text.content) {
+ html += '
' + text.content + '
';
+ }
+ }
+ return html;
+ }
+
+};
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/less/modules/popup.less b/css/semantic/rtl/less/modules/popup.less
new file mode 100644
index 0000000..cf3205d
--- /dev/null
+++ b/css/semantic/rtl/less/modules/popup.less
@@ -0,0 +1,253 @@
+/*
+ * # Semantic - Popup
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Popup
+*******************************/
+
+.ui.popup {
+ display: none;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ z-index: 900;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ max-width: 250px;
+ background-color: #FFFFFF;
+ padding: 0.8em 1.2em;
+ font-size: 0.875rem;
+ font-weight: normal;
+ font-style: normal;
+ color: rgba(0, 0, 0, 0.7);
+ border-radius: 0.2em;
+ -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
+}
+
+.ui.popup .header {
+ padding: 0em 0em 0.5em;
+ font-size: 1.125em;
+ line-height: 1.2;
+ font-weight: bold;
+}
+
+.ui.popup:before {
+ position: absolute;
+ content: "";
+ width: 0.75em;
+ height: 0.75rem;
+ background-image: none;
+ background-color: #FFFFFF;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ z-index: 2;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.popup .ui.button {
+ width: 100%;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Spacing
+---------------*/
+
+.ui.popup {
+ margin: 0em;
+}
+
+.ui.popup.bottom {
+ margin: 0.75em 0em 0em;
+}
+
+.ui.popup.top {
+ margin: 0em 0em 0.75em;
+}
+
+.ui.popup.left.center {
+ margin: 0em 0em 0em 0.75em;
+}
+
+.ui.popup.right.center {
+ margin: 0em 0.75em 0em 0em;
+}
+
+.ui.popup.center {
+ margin-right: -1.25em;
+}
+
+/*--------------
+ Pointer
+---------------*/
+
+/*--- Below ---*/
+
+.ui.bottom.center.popup:before {
+ margin-right: -0.4em;
+ top: -0.4em;
+ right: 50%;
+ left: auto;
+ bottom: auto;
+ -webkit-box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+}
+
+.ui.bottom.left.popup {
+ margin-left: -2em;
+}
+
+.ui.bottom.left.popup:before {
+ top: -0.4em;
+ left: 1em;
+ bottom: auto;
+ right: auto;
+ margin-right: 0em;
+ -webkit-box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+}
+
+.ui.bottom.right.popup {
+ margin-right: -2em;
+}
+
+.ui.bottom.right.popup:before {
+ top: -0.4em;
+ right: 1em;
+ left: auto;
+ bottom: auto;
+ margin-right: 0em;
+ -webkit-box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+}
+
+/*--- Above ---*/
+
+.ui.top.center.popup:before {
+ top: auto;
+ left: auto;
+ bottom: -0.4em;
+ right: 50%;
+ margin-right: -0.4em;
+}
+
+.ui.top.left.popup {
+ margin-left: -2em;
+}
+
+.ui.top.left.popup:before {
+ bottom: -0.4em;
+ left: 1em;
+ top: auto;
+ right: auto;
+ margin-right: 0em;
+}
+
+.ui.top.right.popup {
+ margin-right: -2em;
+}
+
+.ui.top.right.popup:before {
+ bottom: -0.4em;
+ right: 1em;
+ top: auto;
+ left: auto;
+ margin-right: 0em;
+}
+
+/*--- Left Center ---*/
+
+.ui.left.center.popup:before {
+ top: 50%;
+ left: -0.35em;
+ bottom: auto;
+ right: auto;
+ margin-top: -0.4em;
+ -webkit-box-shadow: 1px -1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: 1px -1px 1px rgba(0, 0, 0, 0.2);
+}
+
+/*--- Right Center ---*/
+
+.ui.right.center.popup:before {
+ top: 50%;
+ right: -0.35em;
+ bottom: auto;
+ left: auto;
+ margin-top: -0.4em;
+ -webkit-box-shadow: -1px 1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: -1px 1px 1px rgba(0, 0, 0, 0.2);
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.loading.popup {
+ display: block;
+ visibility: hidden;
+}
+
+.ui.animating.popup,
+.ui.visible.popup {
+ display: block;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Size
+---------------*/
+
+.ui.small.popup {
+ font-size: 0.75rem;
+}
+
+.ui.large.popup {
+ font-size: 1rem;
+}
+
+/*--------------
+ Colors
+---------------*/
+
+/* Inverted colors */
+
+.ui.inverted.popup {
+ background-color: #333333;
+ border: none;
+ color: #FFFFFF;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.popup .header {
+ background-color: rgba(0, 0, 0, 0.2);
+ color: #FFFFFF;
+}
+
+.ui.inverted.popup:before {
+ background-color: #333333;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/modules/rating.js b/css/semantic/rtl/less/modules/rating.js
new file mode 100644
index 0000000..4399c10
--- /dev/null
+++ b/css/semantic/rtl/less/modules/rating.js
@@ -0,0 +1,407 @@
+/*
+ * # Semantic - Rating
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.rating = function(parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.rating.settings, parameters)
+ : $.extend({}, $.fn.rating.settings),
+
+ namespace = settings.namespace,
+ className = settings.className,
+ metadata = settings.metadata,
+ selector = settings.selector,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ element = this,
+ instance = $(this).data(moduleNamespace),
+
+ $module = $(this),
+ $icon = $module.find(selector.icon),
+
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing rating module', settings);
+
+ if(settings.interactive) {
+ module.enable();
+ }
+ else {
+ module.disable();
+ }
+
+ if(settings.initialRating) {
+ module.debug('Setting initial rating');
+ module.setRating(settings.initialRating);
+ }
+ if( $module.data(metadata.rating) ) {
+ module.debug('Rating found in metadata');
+ module.setRating( $module.data(metadata.rating) );
+ }
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Instantiating module', settings);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous instance', instance);
+ $module
+ .removeData(moduleNamespace)
+ ;
+ $icon
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+ mouseenter: function() {
+ var
+ $activeIcon = $(this)
+ ;
+ $activeIcon
+ .nextAll()
+ .removeClass(className.hover)
+ ;
+ $module
+ .addClass(className.hover)
+ ;
+ $activeIcon
+ .addClass(className.hover)
+ .prevAll()
+ .addClass(className.hover)
+ ;
+ },
+ mouseleave: function() {
+ $module
+ .removeClass(className.hover)
+ ;
+ $icon
+ .removeClass(className.hover)
+ ;
+ },
+ click: function() {
+ var
+ $activeIcon = $(this),
+ currentRating = module.getRating(),
+ rating = $icon.index($activeIcon) + 1
+ ;
+ if(settings.clearable && currentRating == rating) {
+ module.clearRating();
+ }
+ else {
+ module.setRating( rating );
+ }
+ }
+ },
+
+ clearRating: function() {
+ module.debug('Clearing current rating');
+ module.setRating(0);
+ },
+
+ getRating: function() {
+ var
+ currentRating = $icon.filter('.' + className.active).size()
+ ;
+ module.verbose('Current rating retrieved', currentRating);
+ return currentRating;
+ },
+
+ enable: function() {
+ module.debug('Setting rating to interactive mode');
+ $icon
+ .on('mouseenter' + eventNamespace, module.event.mouseenter)
+ .on('mouseleave' + eventNamespace, module.event.mouseleave)
+ .on('click' + eventNamespace, module.event.click)
+ ;
+ $module
+ .removeClass(className.disabled)
+ ;
+ },
+
+ disable: function() {
+ module.debug('Setting rating to read-only mode');
+ $icon
+ .off(eventNamespace)
+ ;
+ $module
+ .addClass(className.disabled)
+ ;
+ },
+
+ setRating: function(rating) {
+ var
+ ratingIndex = (rating - 1 >= 0)
+ ? (rating - 1)
+ : 0,
+ $activeIcon = $icon.eq(ratingIndex)
+ ;
+ $module
+ .removeClass(className.hover)
+ ;
+ $icon
+ .removeClass(className.hover)
+ .removeClass(className.active)
+ ;
+ if(rating > 0) {
+ module.verbose('Setting current rating to', rating);
+ $activeIcon
+ .addClass(className.active)
+ .prevAll()
+ .addClass(className.active)
+ ;
+ }
+ $.proxy(settings.onRate, element)(rating);
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.rating.settings = {
+
+ name : 'Rating',
+ namespace : 'rating',
+
+ verbose : true,
+ debug : false,
+ performance : true,
+
+ initialRating : 0,
+ interactive : true,
+ clearable : false,
+
+ onRate : function(rating){},
+
+ error : {
+ method : 'The method you called is not defined'
+ },
+
+ metadata: {
+ rating: 'rating'
+ },
+
+ className : {
+ active : 'active',
+ disabled : 'disabled',
+ hover : 'hover',
+ loading : 'loading'
+ },
+
+ selector : {
+ icon : '.icon'
+ }
+
+};
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/less/modules/rating.less b/css/semantic/rtl/less/modules/rating.less
new file mode 100644
index 0000000..1b29223
--- /dev/null
+++ b/css/semantic/rtl/less/modules/rating.less
@@ -0,0 +1,167 @@
+/*
+ * # Semantic - Rating
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Rating
+*******************************/
+
+.ui.rating {
+ display: inline-block;
+ font-size: 0em;
+ vertical-align: middle;
+ margin: 0em 0em 0em 0.5rem;
+}
+
+.ui.rating:last-child {
+ margin-left: 0em;
+}
+
+.ui.rating:before {
+ display: block;
+ content: '';
+ visibility: hidden;
+ clear: both;
+ height: 0;
+}
+
+/* Icon */
+
+.ui.rating .icon {
+ cursor: pointer;
+ margin: 0em;
+ width: 1em;
+ height: auto;
+ padding: 0em;
+ color: rgba(0, 0, 0, 0.15);
+ font-weight: normal;
+ font-style: normal;
+}
+
+.ui.rating .icon:before {
+ content: "\2605";
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Star
+--------------------*/
+
+.ui.star.rating .icon {
+ width: 1.2em;
+}
+
+/* Star */
+
+.ui.star.rating .icon:before {
+ content: '\f006';
+ font-family: 'Icons';
+}
+
+/* Active Star */
+
+.ui.star.rating .active.icon:before {
+ content: '\f005';
+ font-family: 'Icons';
+}
+
+/*-------------------
+ Heart
+--------------------*/
+
+.ui.heart.rating .icon {
+ width: 1.2em;
+}
+
+.ui.heart.rating .icon:before {
+ content: '\f08a';
+ font-family: 'Icons';
+}
+
+/* Active */
+
+.ui.heart.rating .active.icon:before {
+ content: '\f004';
+ font-family: 'Icons';
+}
+
+.ui.heart.rating .active.icon {
+ color: #EF404A !important;
+}
+
+/* Hovered */
+
+.ui.heart.rating .hover.icon,
+.ui.heart.rating .active.hover.icon {
+ color: #FF2733 !important;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*-------------------
+ Active
+--------------------*/
+
+/* disabled rating */
+
+.ui.disabled.rating .icon {
+ cursor: default;
+}
+
+/* active icons */
+
+.ui.rating .active.icon {
+ color: #FFCB08 !important;
+}
+
+/*-------------------
+ Hover
+--------------------*/
+
+/* rating */
+
+.ui.rating.hover .active.icon {
+ opacity: 0.5;
+}
+
+/* icon */
+
+.ui.rating .icon.hover,
+.ui.rating .icon.hover.active {
+ opacity: 1;
+ color: #FFB70A !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.small.rating .icon {
+ font-size: 0.75rem;
+}
+
+.ui.rating .icon {
+ font-size: 1rem;
+}
+
+.ui.large.rating .icon {
+ font-size: 1.5rem;
+ vertical-align: middle;
+}
+
+.ui.huge.rating .icon {
+ font-size: 2rem;
+ vertical-align: middle;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/modules/search.js b/css/semantic/rtl/less/modules/search.js
new file mode 100644
index 0000000..1d7f7a0
--- /dev/null
+++ b/css/semantic/rtl/less/modules/search.js
@@ -0,0 +1,766 @@
+/*
+ * # Semantic - Search
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.search = function(source, parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $(this)
+ .each(function() {
+ var
+ settings = $.extend(true, {}, $.fn.search.settings, parameters),
+
+ className = settings.className,
+ selector = settings.selector,
+ error = settings.error,
+ namespace = settings.namespace,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = namespace + '-module',
+
+ $module = $(this),
+ $prompt = $module.find(selector.prompt),
+ $searchButton = $module.find(selector.searchButton),
+ $results = $module.find(selector.results),
+ $result = $module.find(selector.result),
+ $category = $module.find(selector.category),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+
+ module
+ ;
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing module');
+ var
+ prompt = $prompt[0],
+ inputEvent = (prompt.oninput !== undefined)
+ ? 'input'
+ : (prompt.onpropertychange !== undefined)
+ ? 'propertychange'
+ : 'keyup'
+ ;
+ // attach events
+ $prompt
+ .on('focus' + eventNamespace, module.event.focus)
+ .on('blur' + eventNamespace, module.event.blur)
+ .on('keydown' + eventNamespace, module.handleKeyboard)
+ ;
+ if(settings.automatic) {
+ $prompt
+ .on(inputEvent + eventNamespace, module.search.throttle)
+ ;
+ }
+ $searchButton
+ .on('click' + eventNamespace, module.search.query)
+ ;
+ $results
+ .on('click' + eventNamespace, selector.result, module.results.select)
+ ;
+ module.instantiate();
+ },
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+ destroy: function() {
+ module.verbose('Destroying instance');
+ $module
+ .removeData(moduleNamespace)
+ ;
+ },
+ event: {
+ focus: function() {
+ $module
+ .addClass(className.focus)
+ ;
+ module.results.show();
+ },
+ blur: function() {
+ module.search.cancel();
+ $module
+ .removeClass(className.focus)
+ ;
+ module.results.hide();
+ }
+ },
+ handleKeyboard: function(event) {
+ var
+ // force latest jq dom
+ $result = $module.find(selector.result),
+ $category = $module.find(selector.category),
+ keyCode = event.which,
+ keys = {
+ backspace : 8,
+ enter : 13,
+ escape : 27,
+ upArrow : 38,
+ downArrow : 40
+ },
+ activeClass = className.active,
+ currentIndex = $result.index( $result.filter('.' + activeClass) ),
+ resultSize = $result.size(),
+ newIndex
+ ;
+ // search shortcuts
+ if(keyCode == keys.escape) {
+ module.verbose('Escape key pressed, blurring search field');
+ $prompt
+ .trigger('blur')
+ ;
+ }
+ // result shortcuts
+ if($results.filter(':visible').size() > 0) {
+ if(keyCode == keys.enter) {
+ module.verbose('Enter key pressed, selecting active result');
+ if( $result.filter('.' + activeClass).exists() ) {
+ $.proxy(module.results.select, $result.filter('.' + activeClass) )();
+ event.preventDefault();
+ return false;
+ }
+ }
+ else if(keyCode == keys.upArrow) {
+ module.verbose('Up key pressed, changing active result');
+ newIndex = (currentIndex - 1 < 0)
+ ? currentIndex
+ : currentIndex - 1
+ ;
+ $category
+ .removeClass(activeClass)
+ ;
+ $result
+ .removeClass(activeClass)
+ .eq(newIndex)
+ .addClass(activeClass)
+ .closest($category)
+ .addClass(activeClass)
+ ;
+ event.preventDefault();
+ }
+ else if(keyCode == keys.downArrow) {
+ module.verbose('Down key pressed, changing active result');
+ newIndex = (currentIndex + 1 >= resultSize)
+ ? currentIndex
+ : currentIndex + 1
+ ;
+ $category
+ .removeClass(activeClass)
+ ;
+ $result
+ .removeClass(activeClass)
+ .eq(newIndex)
+ .addClass(activeClass)
+ .closest($category)
+ .addClass(activeClass)
+ ;
+ event.preventDefault();
+ }
+ }
+ else {
+ // query shortcuts
+ if(keyCode == keys.enter) {
+ module.verbose('Enter key pressed, executing query');
+ module.search.query();
+ $searchButton
+ .addClass(className.down)
+ ;
+ $prompt
+ .one('keyup', function(){
+ $searchButton
+ .removeClass(className.down)
+ ;
+ })
+ ;
+ }
+ }
+ },
+ search: {
+ cancel: function() {
+ var
+ xhr = $module.data('xhr') || false
+ ;
+ if( xhr && xhr.state() != 'resolved') {
+ module.debug('Cancelling last search');
+ xhr.abort();
+ }
+ },
+ throttle: function() {
+ var
+ searchTerm = $prompt.val(),
+ numCharacters = searchTerm.length
+ ;
+ clearTimeout(module.timer);
+ if(numCharacters >= settings.minCharacters) {
+ module.timer = setTimeout(module.search.query, settings.searchThrottle);
+ }
+ else {
+ module.results.hide();
+ }
+ },
+ query: function() {
+ var
+ searchTerm = $prompt.val(),
+ cachedHTML = module.search.cache.read(searchTerm)
+ ;
+ if(cachedHTML) {
+ module.debug("Reading result for '" + searchTerm + "' from cache");
+ module.results.add(cachedHTML);
+ }
+ else {
+ module.debug("Querying for '" + searchTerm + "'");
+ if(typeof source == 'object') {
+ module.search.local(searchTerm);
+ }
+ else {
+ module.search.remote(searchTerm);
+ }
+ $.proxy(settings.onSearchQuery, $module)(searchTerm);
+ }
+ },
+ local: function(searchTerm) {
+ var
+ results = [],
+ fullTextResults = [],
+ searchFields = $.isArray(settings.searchFields)
+ ? settings.searchFields
+ : [settings.searchFields],
+
+ searchRegExp = new RegExp('(?:\s|^)' + searchTerm, 'i'),
+ fullTextRegExp = new RegExp(searchTerm, 'i'),
+ searchHTML
+ ;
+ $module
+ .addClass(className.loading)
+ ;
+ // iterate through search fields in array order
+ $.each(searchFields, function(index, field) {
+ $.each(source, function(label, thing) {
+ if(typeof thing[field] == 'string' && ($.inArray(thing, results) == -1) && ($.inArray(thing, fullTextResults) == -1) ) {
+ if( searchRegExp.test( thing[field] ) ) {
+ results.push(thing);
+ }
+ else if( fullTextRegExp.test( thing[field] ) ) {
+ fullTextResults.push(thing);
+ }
+ }
+ });
+ });
+ searchHTML = module.results.generate({
+ results: $.merge(results, fullTextResults)
+ });
+ $module
+ .removeClass(className.loading)
+ ;
+ module.search.cache.write(searchTerm, searchHTML);
+ module.results.add(searchHTML);
+ },
+ remote: function(searchTerm) {
+ var
+ apiSettings = {
+ stateContext : $module,
+ url : source,
+ urlData: { query: searchTerm },
+ success : function(response) {
+ searchHTML = module.results.generate(response);
+ module.search.cache.write(searchTerm, searchHTML);
+ module.results.add(searchHTML);
+ },
+ failure : module.error
+ },
+ searchHTML
+ ;
+ module.search.cancel();
+ module.debug('Executing search');
+ $.extend(true, apiSettings, settings.apiSettings);
+ $.api(apiSettings);
+ },
+
+ cache: {
+ read: function(name) {
+ var
+ cache = $module.data('cache')
+ ;
+ return (settings.cache && (typeof cache == 'object') && (cache[name] !== undefined) )
+ ? cache[name]
+ : false
+ ;
+ },
+ write: function(name, value) {
+ var
+ cache = ($module.data('cache') !== undefined)
+ ? $module.data('cache')
+ : {}
+ ;
+ cache[name] = value;
+ $module
+ .data('cache', cache)
+ ;
+ }
+ }
+ },
+
+ results: {
+ generate: function(response) {
+ module.debug('Generating html from response', response);
+ var
+ template = settings.templates[settings.type],
+ html = ''
+ ;
+ if(($.isPlainObject(response.results) && !$.isEmptyObject(response.results)) || ($.isArray(response.results) && response.results.length > 0) ) {
+ if(settings.maxResults > 0) {
+ response.results = $.makeArray(response.results).slice(0, settings.maxResults);
+ }
+ if(response.results.length > 0) {
+ if($.isFunction(template)) {
+ html = template(response);
+ }
+ else {
+ module.error(error.noTemplate, false);
+ }
+ }
+ }
+ else {
+ html = module.message(error.noResults, 'empty');
+ }
+ $.proxy(settings.onResults, $module)(response);
+ return html;
+ },
+ add: function(html) {
+ if(settings.onResultsAdd == 'default' || $.proxy(settings.onResultsAdd, $results)(html) == 'default') {
+ $results
+ .html(html)
+ ;
+ }
+ module.results.show();
+ },
+ show: function() {
+ if( ($results.filter(':visible').size() === 0) && ($prompt.filter(':focus').size() > 0) && $results.html() !== '') {
+ $results
+ .stop()
+ .fadeIn(200)
+ ;
+ $.proxy(settings.onResultsOpen, $results)();
+ }
+ },
+ hide: function() {
+ if($results.filter(':visible').size() > 0) {
+ $results
+ .stop()
+ .fadeOut(200)
+ ;
+ $.proxy(settings.onResultsClose, $results)();
+ }
+ },
+ select: function(event) {
+ module.debug('Search result selected');
+ var
+ $result = $(this),
+ $title = $result.find('.title'),
+ title = $title.html()
+ ;
+ if(settings.onSelect == 'default' || $.proxy(settings.onSelect, this)(event) == 'default') {
+ var
+ $link = $result.find('a[href]').eq(0),
+ href = $link.attr('href') || false,
+ target = $link.attr('target') || false
+ ;
+ module.results.hide();
+ $prompt
+ .val(title)
+ ;
+ if(href) {
+ if(target == '_blank' || event.ctrlKey) {
+ window.open(href);
+ }
+ else {
+ window.location.href = (href);
+ }
+ }
+ }
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.search.settings = {
+
+ name : 'Search Module',
+ namespace : 'search',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ // onSelect default action is defined in module
+ onSelect : 'default',
+ onResultsAdd : 'default',
+
+ onSearchQuery : function(){},
+ onResults : function(response){},
+
+ onResultsOpen : function(){},
+ onResultsClose : function(){},
+
+ automatic : 'true',
+ type : 'simple',
+ minCharacters : 3,
+ searchThrottle : 300,
+ maxResults : 7,
+ cache : true,
+
+ searchFields : [
+ 'title',
+ 'description'
+ ],
+
+ // api config
+ apiSettings: {
+
+ },
+
+ className: {
+ active : 'active',
+ down : 'down',
+ focus : 'focus',
+ empty : 'empty',
+ loading : 'loading'
+ },
+
+ error : {
+ noResults : 'Your search returned no results',
+ logging : 'Error in debug logging, exiting.',
+ noTemplate : 'A valid template name was not specified.',
+ serverError : 'There was an issue with querying the server.',
+ method : 'The method you called is not defined.'
+ },
+
+ selector : {
+ prompt : '.prompt',
+ searchButton : '.search.button',
+ results : '.results',
+ category : '.category',
+ result : '.result'
+ },
+
+ templates: {
+ message: function(message, type) {
+ var
+ html = ''
+ ;
+ if(message !== undefined && type !== undefined) {
+ html += ''
+ + '
'
+ ;
+ // message type
+ if(type == 'empty') {
+ html += ''
+ + ''
+ + '
' + message + '
'
+ ;
+ }
+ else {
+ html += '
' + message + '
';
+ }
+ html += '
';
+ }
+ return html;
+ },
+ categories: function(response) {
+ var
+ html = ''
+ ;
+ if(response.results !== undefined) {
+ // each category
+ $.each(response.results, function(index, category) {
+ if(category.results !== undefined && category.results.length > 0) {
+ html += ''
+ + '
'
+ + '
' + category.name + '
'
+ ;
+ // each item inside category
+ $.each(category.results, function(index, result) {
+ html += '
';
+ html += '
';
+ if(result.image !== undefined) {
+ html+= ''
+ + '
'
+ + '
'
+ + '
'
+ ;
+ }
+ html += '
';
+ if(result.price !== undefined) {
+ html+= '
' + result.price + '
';
+ }
+ if(result.title !== undefined) {
+ html+= '
' + result.title + '
';
+ }
+ if(result.description !== undefined) {
+ html+= '
' + result.description + '
';
+ }
+ html += ''
+ + '
'
+ + '
'
+ ;
+ });
+ html += ''
+ + '
'
+ ;
+ }
+ });
+ if(response.resultPage) {
+ html += ''
+ + '
'
+ + response.resultPage.text
+ + ' ';
+ }
+ return html;
+ }
+ return false;
+ },
+ simple: function(response) {
+ var
+ html = ''
+ ;
+ if(response.results !== undefined) {
+
+ // each result
+ $.each(response.results, function(index, result) {
+ html += '
';
+ if(result.image !== undefined) {
+ html+= ''
+ + ''
+ + '
'
+ + '
'
+ ;
+ }
+ html += '';
+ if(result.price !== undefined) {
+ html+= '
' + result.price + '
';
+ }
+ if(result.title !== undefined) {
+ html+= '
' + result.title + '
';
+ }
+ if(result.description !== undefined) {
+ html+= '
' + result.description + '
';
+ }
+ html += ''
+ + '
'
+ + ' '
+ ;
+ });
+
+ if(response.resultPage) {
+ html += ''
+ + '
'
+ + response.resultPage.text
+ + ' ';
+ }
+ return html;
+ }
+ return false;
+ }
+ }
+};
+
+})( jQuery, window , document );
\ No newline at end of file
diff --git a/css/semantic/rtl/less/modules/search.less b/css/semantic/rtl/less/modules/search.less
new file mode 100644
index 0000000..be36be6
--- /dev/null
+++ b/css/semantic/rtl/less/modules/search.less
@@ -0,0 +1,257 @@
+/*
+ * # Semantic - Search
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Search
+*******************************/
+
+.ui.search {
+ position: relative;
+ text-shadow: none;
+ font-style: normal;
+ font-weight: normal;
+}
+
+.ui.search input {
+ border-radius: 500rem;
+}
+
+/*--------------
+ Button
+---------------*/
+
+.ui.search > .button {
+ position: relative;
+ z-index: 2;
+ float: left;
+ margin: 0px -15px 0px 0px;
+ padding: 6px 15px 7px;
+ border-radius: 15px 0px 0px 15px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*--------------
+ Results
+---------------*/
+
+.ui.search .results {
+ display: none;
+ position: absolute;
+ z-index: 999;
+ top: 100%;
+ right: 0px;
+ overflow: hidden;
+ background-color: #FFFFFF;
+ margin-top: 0.5em;
+ width: 380px;
+ font-size: 0.875em;
+ line-height: 1.2;
+ color: #555555;
+ border-radius: 3px;
+ -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1),
+ 0px -2px 0px 0px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1),
+ 0px -2px 0px 0px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.search .result {
+ cursor: pointer;
+ overflow: hidden;
+ padding: 0.5em 1em;
+}
+
+.ui.search .result:first-child {
+ border-top: none;
+}
+
+.ui.search .result .image {
+ background: #F0F0F0;
+ margin-left: 10px;
+ float: right;
+ overflow: hidden;
+ border-radius: 3px;
+ width: 38px;
+ height: 38px;
+}
+
+.ui.search .result .image img {
+ display: block;
+ width: 38px;
+ height: 38px;
+}
+
+.ui.search .result .image ~ .info {
+ float: none;
+ margin-right: 50px;
+}
+
+.ui.search .result .info {
+ float: right;
+}
+
+.ui.search .result .title {
+ font-weight: bold;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.search .result .description {
+ color: rgba(0, 0, 0, 0.6);
+}
+
+.ui.search .result .price {
+ float: left;
+ color: #5BBD72;
+ font-weight: bold;
+}
+
+/*--------------
+ Message
+---------------*/
+
+.ui.search .message {
+ padding: 1em;
+}
+
+.ui.search .message .text .title {
+ margin: 0em 0em 0.5rem;
+ font-size: 1.25rem;
+ font-weight: bold;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.search .message .text .description {
+ margin: 0em;
+ font-size: 1rem;
+ color: rgba(0, 0, 0, 0.5);
+}
+
+/*--------------
+ Categories
+---------------*/
+
+.ui.search .results .category {
+ background-color: #FAFAFA;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ -webkit-transition: background 0.2s ease-in;
+ -moz-transition: background 0.2s ease-in;
+ transition: background 0.2s ease-in;
+}
+
+.ui.search .results .category:first-child {
+ border-top: none;
+}
+
+.ui.search .results .category > .name {
+ float: right;
+ padding: 12px 8px 0px 0px;
+ font-weight: bold;
+ color: #777777;
+ text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.8);
+}
+
+.ui.search .results .category .result {
+ background-color: #FFFFFF;
+ margin-right: 80px;
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* View All Results */
+
+.ui.search .all {
+ display: block;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ background-color: #FAFAFA;
+ height: 2em;
+ line-height: 2em;
+ color: rgba(0, 0, 0, 0.6);
+ font-weight: bold;
+ text-align: center;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.search .result:hover,
+.ui.search .category .result:hover {
+ background-color: #F8F8F8;
+}
+
+.ui.search .all:hover {
+ background-color: #F0F0F0;
+}
+
+/*--------------
+ Loading
+---------------*/
+
+.ui.search.loading .input .icon {
+ background: url(../images/loader-mini.gif) no-repeat 50% 50%;
+}
+
+.ui.search.loading .input .icon:before,
+.ui.search.loading .input .icon:after {
+ display: none;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.search .results .category.active {
+ background-color: #F1F1F1;
+}
+
+.ui.search .results .category.active > .name {
+ color: #333333;
+}
+
+.ui.search .result.active,
+.ui.search .category .result.active {
+ background-color: #FBFBFB;
+}
+
+.ui.search .result.active .title {
+ color: #000000;
+}
+
+.ui.search .result.active .description {
+ color: #555555;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/* Large */
+
+.ui.search .large.result .image,
+.ui.search .large.result .image img {
+ width: 50px;
+ height: 50px;
+}
+
+.ui.search .large.results .indented.info {
+ margin-right: 65px;
+}
+
+.ui.search .large.results .info .title {
+ font-size: 16px;
+}
+
+.ui.search .large.results .info .description {
+ font-size: 11px;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/modules/shape.js b/css/semantic/rtl/less/modules/shape.js
new file mode 100644
index 0000000..b1d8bef
--- /dev/null
+++ b/css/semantic/rtl/less/modules/shape.js
@@ -0,0 +1,787 @@
+/*
+ * # Semantic - Shape
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.shape = function(parameters) {
+ var
+ $allModules = $(this),
+ $body = $('body'),
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ moduleSelector = $allModules.selector || '',
+ settings = $.extend(true, {}, $.fn.shape.settings, parameters),
+
+ // internal aliases
+ namespace = settings.namespace,
+ selector = settings.selector,
+ error = settings.error,
+ className = settings.className,
+
+ // define namespaces for modules
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ // selector cache
+ $module = $(this),
+ $sides = $module.find(selector.sides),
+ $side = $module.find(selector.side),
+
+ // private variables
+ nextSelector = false,
+ $activeSide,
+ $nextSide,
+
+ // standard module
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing module for', element);
+ module.set.defaultSide();
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module for', element);
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing selector cache for', element);
+ $module = $(element);
+ $sides = $(this).find(selector.shape);
+ $side = $(this).find(selector.side);
+ },
+
+ repaint: function() {
+ module.verbose('Forcing repaint event');
+ var
+ shape = $sides.get(0) || document.createElement('div'),
+ fakeAssignment = shape.offsetWidth
+ ;
+ },
+
+ animate: function(propertyObject, callback) {
+ module.verbose('Animating box with properties', propertyObject);
+ callback = callback || function(event) {
+ module.verbose('Executing animation callback');
+ if(event !== undefined) {
+ event.stopPropagation();
+ }
+ module.reset();
+ module.set.active();
+ };
+ $.proxy(settings.beforeChange, $nextSide[0])();
+ if(module.get.transitionEvent()) {
+ module.verbose('Starting CSS animation');
+ $module
+ .addClass(className.animating)
+ ;
+ module.repaint();
+ $module
+ .addClass(className.animating)
+ ;
+ $activeSide
+ .addClass(className.hidden)
+ ;
+ $sides
+ .css(propertyObject)
+ .one(module.get.transitionEvent(), callback)
+ ;
+ module.set.duration(settings.duration);
+ }
+ else {
+ callback();
+ }
+ },
+
+ queue: function(method) {
+ module.debug('Queueing animation of', method);
+ $sides
+ .one(module.get.transitionEvent(), function() {
+ module.debug('Executing queued animation');
+ setTimeout(function(){
+ $module.shape(method);
+ }, 0);
+ })
+ ;
+ },
+
+ reset: function() {
+ module.verbose('Animating states reset');
+ $module
+ .removeClass(className.animating)
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ // removeAttr style does not consistently work in safari
+ $sides
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ $side
+ .attr('style', '')
+ .removeAttr('style')
+ .removeClass(className.hidden)
+ ;
+ $nextSide
+ .removeClass(className.animating)
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ },
+
+ is: {
+ animating: function() {
+ return $module.hasClass(className.animating);
+ }
+ },
+
+ set: {
+
+ defaultSide: function() {
+ $activeSide = $module.find('.' + settings.className.active);
+ $nextSide = ( $activeSide.next(selector.side).size() > 0 )
+ ? $activeSide.next(selector.side)
+ : $module.find(selector.side).first()
+ ;
+ nextSelector = false;
+ module.verbose('Active side set to', $activeSide);
+ module.verbose('Next side set to', $nextSide);
+ },
+
+ duration: function(duration) {
+ duration = duration || settings.duration;
+ duration = (typeof duration == 'number')
+ ? duration + 'ms'
+ : duration
+ ;
+ module.verbose('Setting animation duration', duration);
+ $sides.add($side)
+ .css({
+ '-webkit-transition-duration': duration,
+ '-moz-transition-duration': duration,
+ '-ms-transition-duration': duration,
+ '-o-transition-duration': duration,
+ 'transition-duration': duration
+ })
+ ;
+ },
+
+ stageSize: function() {
+ var
+ $clone = $module.clone().addClass(className.loading),
+ $activeSide = $clone.find('.' + settings.className.active),
+ $nextSide = (nextSelector)
+ ? $clone.find(nextSelector)
+ : ( $activeSide.next(selector.side).size() > 0 )
+ ? $activeSide.next(selector.side)
+ : $clone.find(selector.side).first(),
+ newSize = {}
+ ;
+ $activeSide.removeClass(className.active);
+ $nextSide.addClass(className.active);
+ $clone.prependTo($body);
+ newSize = {
+ width : $nextSide.outerWidth(),
+ height : $nextSide.outerHeight()
+ };
+ $clone.remove();
+ $module
+ .css(newSize)
+ ;
+ module.verbose('Resizing stage to fit new content', newSize);
+ },
+
+ nextSide: function(selector) {
+ nextSelector = selector;
+ $nextSide = $module.find(selector);
+ if($nextSide.size() === 0) {
+ module.error(error.side);
+ }
+ module.verbose('Next side manually set to', $nextSide);
+ },
+
+ active: function() {
+ module.verbose('Setting new side to active', $nextSide);
+ $side
+ .removeClass(className.active)
+ ;
+ $nextSide
+ .addClass(className.active)
+ ;
+ $.proxy(settings.onChange, $nextSide[0])();
+ module.set.defaultSide();
+ }
+ },
+
+ flip: {
+
+ up: function() {
+ module.debug('Flipping up', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.above();
+ module.animate( module.get.transform.up() );
+ }
+ else {
+ module.queue('flip up');
+ }
+ },
+
+ down: function() {
+ module.debug('Flipping down', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.below();
+ module.animate( module.get.transform.down() );
+ }
+ else {
+ module.queue('flip down');
+ }
+ },
+
+ left: function() {
+ module.debug('Flipping left', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.left();
+ module.animate(module.get.transform.left() );
+ }
+ else {
+ module.queue('flip left');
+ }
+ },
+
+ right: function() {
+ module.debug('Flipping right', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.right();
+ module.animate(module.get.transform.right() );
+ }
+ else {
+ module.queue('flip right');
+ }
+ },
+
+ over: function() {
+ module.debug('Flipping over', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.behind();
+ module.animate(module.get.transform.over() );
+ }
+ else {
+ module.queue('flip over');
+ }
+ },
+
+ back: function() {
+ module.debug('Flipping back', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.behind();
+ module.animate(module.get.transform.back() );
+ }
+ else {
+ module.queue('flip back');
+ }
+ }
+
+ },
+
+ get: {
+
+ transform: {
+ up: function() {
+ var
+ translate = {
+ y: -(($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
+ z: -($activeSide.outerHeight() / 2)
+ }
+ ;
+ return {
+ transform: 'translateY(' + translate.y + 'px) translateZ('+ translate.z + 'px) rotateX(-90deg)'
+ };
+ },
+
+ down: function() {
+ var
+ translate = {
+ y: -(($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
+ z: -($activeSide.outerHeight() / 2)
+ }
+ ;
+ return {
+ transform: 'translateY(' + translate.y + 'px) translateZ('+ translate.z + 'px) rotateX(90deg)'
+ };
+ },
+
+ left: function() {
+ var
+ translate = {
+ x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2),
+ z : -($activeSide.outerWidth() / 2)
+ }
+ ;
+ return {
+ transform: 'translateX(' + translate.x + 'px) translateZ(' + translate.z + 'px) rotateY(90deg)'
+ };
+ },
+
+ right: function() {
+ var
+ translate = {
+ x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2),
+ z : -($activeSide.outerWidth() / 2)
+ }
+ ;
+ return {
+ transform: 'translateX(' + translate.x + 'px) translateZ(' + translate.z + 'px) rotateY(-90deg)'
+ };
+ },
+
+ over: function() {
+ var
+ translate = {
+ x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2)
+ }
+ ;
+ return {
+ transform: 'translateX(' + translate.x + 'px) rotateY(180deg)'
+ };
+ },
+
+ back: function() {
+ var
+ translate = {
+ x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2)
+ }
+ ;
+ return {
+ transform: 'translateX(' + translate.x + 'px) rotateY(-180deg)'
+ };
+ }
+ },
+
+ transitionEvent: function() {
+ var
+ element = document.createElement('element'),
+ transitions = {
+ 'transition' :'transitionend',
+ 'OTransition' :'oTransitionEnd',
+ 'MozTransition' :'transitionend',
+ 'WebkitTransition' :'webkitTransitionEnd'
+ },
+ transition
+ ;
+ for(transition in transitions){
+ if( element.style[transition] !== undefined ){
+ return transitions[transition];
+ }
+ }
+ },
+
+ nextSide: function() {
+ return ( $activeSide.next(selector.side).size() > 0 )
+ ? $activeSide.next(selector.side)
+ : $module.find(selector.side).first()
+ ;
+ }
+
+ },
+
+ stage: {
+
+ above: function() {
+ var
+ box = {
+ origin : (($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
+ depth : {
+ active : ($nextSide.outerHeight() / 2),
+ next : ($activeSide.outerHeight() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as above', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'top' : box.origin + 'px',
+ 'transform' : 'rotateX(90deg) translateZ(' + box.depth.next + 'px)'
+ })
+ ;
+ },
+
+ below: function() {
+ var
+ box = {
+ origin : (($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
+ depth : {
+ active : ($nextSide.outerHeight() / 2),
+ next : ($activeSide.outerHeight() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as below', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'top' : box.origin + 'px',
+ 'transform' : 'rotateX(-90deg) translateZ(' + box.depth.next + 'px)'
+ })
+ ;
+ },
+
+ left: function() {
+ var
+ box = {
+ origin : ( ( $activeSide.outerWidth() - $nextSide.outerWidth() ) / 2),
+ depth : {
+ active : ($nextSide.outerWidth() / 2),
+ next : ($activeSide.outerWidth() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as left', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'left' : box.origin + 'px',
+ 'transform' : 'rotateY(-90deg) translateZ(' + box.depth.next + 'px)'
+ })
+ ;
+ },
+
+ right: function() {
+ var
+ box = {
+ origin : ( ( $activeSide.outerWidth() - $nextSide.outerWidth() ) / 2),
+ depth : {
+ active : ($nextSide.outerWidth() / 2),
+ next : ($activeSide.outerWidth() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as left', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'left' : box.origin + 'px',
+ 'transform' : 'rotateY(90deg) translateZ(' + box.depth.next + 'px)'
+ })
+ ;
+ },
+
+ behind: function() {
+ var
+ box = {
+ origin : ( ( $activeSide.outerWidth() - $nextSide.outerWidth() ) / 2),
+ depth : {
+ active : ($nextSide.outerWidth() / 2),
+ next : ($activeSide.outerWidth() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as behind', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'left' : box.origin + 'px',
+ 'transform' : 'rotateY(-180deg)'
+ })
+ ;
+ }
+ },
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.shape.settings = {
+
+ // module info
+ name : 'Shape',
+
+ // debug content outputted to console
+ debug : false,
+
+ // verbose debug output
+ verbose : true,
+
+ // performance data output
+ performance: true,
+
+ // event namespace
+ namespace : 'shape',
+
+ // callback occurs on side change
+ beforeChange : function() {},
+ onChange : function() {},
+
+ // animation duration
+ duration : 700,
+
+ // possible errors
+ error: {
+ side : 'You tried to switch to a side that does not exist.',
+ method : 'The method you called is not defined'
+ },
+
+ // classnames used
+ className : {
+ animating : 'animating',
+ hidden : 'hidden',
+ loading : 'loading',
+ active : 'active'
+ },
+
+ // selectors used
+ selector : {
+ sides : '.sides',
+ side : '.side'
+ }
+
+};
+
+
+})( jQuery, window , document );
\ No newline at end of file
diff --git a/css/semantic/rtl/less/modules/shape.less b/css/semantic/rtl/less/modules/shape.less
new file mode 100644
index 0000000..9f5089b
--- /dev/null
+++ b/css/semantic/rtl/less/modules/shape.less
@@ -0,0 +1,162 @@
+/*
+ * # Semantic - Shape
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Shape
+*******************************/
+
+.ui.shape {
+ display: inline-block;
+ position: relative;
+ -webkit-perspective: 2000px;
+ -moz-perspective: 2000px;
+ -ms-perspective: 2000px;
+ perspective: 2000px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.shape .sides {
+ -webkit-transform-style: preserve-3d;
+ -moz-transform-style: preserve-3d;
+ -ms-transform-style: preserve-3d;
+ transform-style: preserve-3d;
+}
+
+.ui.shape .side {
+ opacity: 1;
+ width: 100%;
+ margin: 0em !important;
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ -ms-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.shape .side {
+ display: none;
+}
+
+/*******************************
+ Types
+*******************************/
+
+.ui.cube.shape .side {
+ min-width: 15em;
+ height: 15em;
+ padding: 2em;
+ background-color: #E6E6E6;
+ color: rgba(0, 0, 0, 0.6);
+ -webkit-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.3);
+ box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.3);
+}
+
+.ui.cube.shape .side > .content {
+ width: 100%;
+ height: 100%;
+ display: table;
+ text-align: center;
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+}
+
+.ui.cube.shape .side > .content > div {
+ display: table-cell;
+ vertical-align: middle;
+ font-size: 2em;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.text.shape.animating .sides {
+ position: static;
+}
+
+.ui.text.shape .side {
+ white-space: nowrap;
+}
+
+.ui.text.shape .side > * {
+ white-space: normal;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Loading
+---------------*/
+
+.ui.loading.shape {
+ position: absolute;
+ top: -9999px;
+ right: -9999px;
+}
+
+/*--------------
+ Animating
+---------------*/
+
+.ui.shape .animating.side {
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ z-index: 100;
+}
+
+.ui.shape .hidden.side {
+ opacity: 0.4;
+}
+
+/*--------------
+ CSS
+---------------*/
+
+.ui.shape.animating {
+ -webkit-transition: all 0.6s ease-in-out;
+ -moz-transition: all 0.6s ease-in-out;
+ transition: all 0.6s ease-in-out;
+}
+
+.ui.shape.animating .sides {
+ position: absolute;
+}
+
+.ui.shape.animating .sides {
+ -webkit-transition: all 0.6s ease-in-out;
+ -moz-transition: all 0.6s ease-in-out;
+ transition: all 0.6s ease-in-out;
+}
+
+.ui.shape.animating .side {
+ -webkit-transition: opacity 0.6s ease-in-out;
+ -moz-transition: opacity 0.6s ease-in-out;
+ transition: opacity 0.6s ease-in-out;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.shape .active.side {
+ display: block;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/modules/sidebar.js b/css/semantic/rtl/less/modules/sidebar.js
new file mode 100644
index 0000000..521cc9a
--- /dev/null
+++ b/css/semantic/rtl/less/modules/sidebar.js
@@ -0,0 +1,514 @@
+/*
+ * # Semantic - Sidebar
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.sidebar = function(parameters) {
+ var
+ $allModules = $(this),
+ $body = $('body'),
+ $head = $('head'),
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.sidebar.settings, parameters)
+ : $.extend({}, $.fn.sidebar.settings),
+
+ selector = settings.selector,
+ className = settings.className,
+ namespace = settings.namespace,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $style = $('style[title=' + namespace + ']'),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing sidebar', $module);
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module for', $module);
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing selector cache');
+ $style = $('style[title=' + namespace + ']');
+ },
+
+ attachEvents: function(selector, event) {
+ var
+ $toggle = $(selector)
+ ;
+ event = $.isFunction(module[event])
+ ? module[event]
+ : module.toggle
+ ;
+ if($toggle.size() > 0) {
+ module.debug('Attaching sidebar events to element', selector, event);
+ $toggle
+ .off(eventNamespace)
+ .on('click' + eventNamespace, event)
+ ;
+ }
+ else {
+ module.error(error.notFound);
+ }
+ },
+
+ show: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.debug('Showing sidebar', callback);
+ if(module.is.closed()) {
+ if(!settings.overlay) {
+ if(settings.exclusive) {
+ module.hideAll();
+ }
+ module.pushPage();
+ }
+ module.set.active();
+ callback();
+ $.proxy(settings.onChange, element)();
+ $.proxy(settings.onShow, element)();
+ }
+ else {
+ module.debug('Sidebar is already visible');
+ }
+ },
+
+ hide: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.debug('Hiding sidebar', callback);
+ if(module.is.open()) {
+ if(!settings.overlay) {
+ module.pullPage();
+ module.remove.pushed();
+ }
+ module.remove.active();
+ callback();
+ $.proxy(settings.onChange, element)();
+ $.proxy(settings.onHide, element)();
+ }
+ },
+
+ hideAll: function() {
+ $(selector.sidebar)
+ .filter(':visible')
+ .sidebar('hide')
+ ;
+ },
+
+ toggle: function() {
+ if(module.is.closed()) {
+ module.show();
+ }
+ else {
+ module.hide();
+ }
+ },
+
+ pushPage: function() {
+ var
+ direction = module.get.direction(),
+ distance = (module.is.vertical())
+ ? $module.outerHeight()
+ : $module.outerWidth()
+ ;
+ if(settings.useCSS) {
+ module.debug('Using CSS to animate body');
+ module.add.bodyCSS(direction, distance);
+ module.set.pushed();
+ }
+ else {
+ module.animatePage(direction, distance, module.set.pushed);
+ }
+ },
+
+ pullPage: function() {
+ var
+ direction = module.get.direction()
+ ;
+ if(settings.useCSS) {
+ module.debug('Resetting body position css');
+ module.remove.bodyCSS();
+ }
+ else {
+ module.debug('Resetting body position using javascript');
+ module.animatePage(direction, 0);
+ }
+ module.remove.pushed();
+ },
+
+ animatePage: function(direction, distance) {
+ var
+ animateSettings = {}
+ ;
+ animateSettings['padding-' + direction] = distance;
+ module.debug('Using javascript to animate body', animateSettings);
+ $body
+ .animate(animateSettings, settings.duration, module.set.pushed)
+ ;
+ },
+
+ add: {
+ bodyCSS: function(direction, distance) {
+ var
+ style
+ ;
+ if(direction !== className.bottom) {
+ style = ''
+ + ''
+ ;
+ }
+ $head.append(style);
+ module.debug('Adding body css to head', $style);
+ }
+ },
+
+
+ remove: {
+ bodyCSS: function() {
+ module.debug('Removing body css styles', $style);
+ module.refresh();
+ $style.remove();
+ },
+ active: function() {
+ $module.removeClass(className.active);
+ },
+ pushed: function() {
+ module.verbose('Removing body push state', module.get.direction());
+ $body
+ .removeClass(className[ module.get.direction() ])
+ .removeClass(className.pushed)
+ ;
+ }
+ },
+
+ set: {
+ active: function() {
+ $module.addClass(className.active);
+ },
+ pushed: function() {
+ module.verbose('Adding body push state', module.get.direction());
+ $body
+ .addClass(className[ module.get.direction() ])
+ .addClass(className.pushed)
+ ;
+ }
+ },
+
+ get: {
+ direction: function() {
+ if($module.hasClass(className.top)) {
+ return className.top;
+ }
+ else if($module.hasClass(className.right)) {
+ return className.right;
+ }
+ else if($module.hasClass(className.bottom)) {
+ return className.bottom;
+ }
+ else {
+ return className.left;
+ }
+ },
+ transitionEvent: function() {
+ var
+ element = document.createElement('element'),
+ transitions = {
+ 'transition' :'transitionend',
+ 'OTransition' :'oTransitionEnd',
+ 'MozTransition' :'transitionend',
+ 'WebkitTransition' :'webkitTransitionEnd'
+ },
+ transition
+ ;
+ for(transition in transitions){
+ if( element.style[transition] !== undefined ){
+ return transitions[transition];
+ }
+ }
+ }
+ },
+
+ is: {
+ open: function() {
+ return $module.is(':animated') || $module.hasClass(className.active);
+ },
+ closed: function() {
+ return !module.is.open();
+ },
+ vertical: function() {
+ return $module.hasClass(className.top);
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.sidebar.settings = {
+
+ name : 'Sidebar',
+ namespace : 'sidebar',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ useCSS : true,
+ exclusive : true,
+ overlay : false,
+ duration : 300,
+
+ onChange : function(){},
+ onShow : function(){},
+ onHide : function(){},
+
+ className: {
+ active : 'active',
+ pushed : 'pushed',
+ top : 'top',
+ left : 'left',
+ right : 'right',
+ bottom : 'bottom'
+ },
+
+ selector: {
+ sidebar: '.ui.sidebar'
+ },
+
+ error : {
+ method : 'The method you called is not defined.',
+ notFound : 'There were no elements that matched the specified selector'
+ }
+
+};
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/less/modules/sidebar.less b/css/semantic/rtl/less/modules/sidebar.less
new file mode 100644
index 0000000..83fcf3a
--- /dev/null
+++ b/css/semantic/rtl/less/modules/sidebar.less
@@ -0,0 +1,241 @@
+/*
+ * # Semantic - Sidebar
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Sidebar
+*******************************/
+
+body {
+ -webkit-transition: margin 0.3s ease,
+ -webkit-transform 0.3s ease/*rtl:append:,
+ padding 0.3s ease*/;
+ -moz-transition: margin 0.3s ease,
+ -moz-transform 0.3s ease/*rtl:append:,
+ padding 0.3s ease*/;
+ transition: margin 0.3s ease,
+ transform 0.3s ease/*rtl:append:,
+ padding 0.3s ease*/;
+}
+
+.ui.sidebar {
+ position: fixed;
+ margin: 0 !important;
+ height: 100% !important;
+ border-radius: !important 0px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -ms-overflow-y: auto;
+ overflow-y: auto;
+ top: 0px;
+ right: 0px;
+ z-index: 999;
+ -webkit-transition: margin-right 0.3s ease,
+ margin-top 0.3s ease;
+ -moz-transition: margin-right 0.3s ease,
+ margin-top 0.3s ease;
+ transition: margin-right 0.3s ease,
+ margin-top 0.3s ease;
+}
+
+/*-------------------
+ Coupling
+--------------------*/
+
+body.pushed.scrolling.ui.dimmable {
+ position: static;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Direction
+--------------------*/
+
+.ui.right.very.thin.sidebar,
+.ui.right.thin.sidebar,
+.ui.right.sidebar,
+.ui.right.wide.sidebar,
+.ui.right.very.wide.sidebar {
+ right: 100%;
+ margin: 0px !important;
+}
+
+.ui.top.sidebar {
+ width: 100% !important;
+}
+
+.ui.bottom.sidebar {
+ width: 100% !important;
+ top: 100%;
+ margin: 0px !important;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.active.sidebar {
+ margin-right: 0px !important;
+}
+
+.ui.active.top.sidebar,
+.ui.active.bottom.sidebar {
+ margin-top: 0px !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Formatted
+--------------------*/
+
+.ui.styled.sidebar {
+ padding: 1em 1.5em;
+ background-color: #FFFFFF;
+ -webkit-box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1);
+ box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1);
+}
+
+.ui.styled.very.thin.sidebar {
+ padding: 0.5em;
+}
+
+.ui.styled.thin.sidebar {
+ padding: 1em;
+}
+
+/*-------------------
+ Floating
+--------------------*/
+
+.ui.floating.sidebar {
+ -webkit-box-shadow: 2px 0px 2px rgba(0, 0, 0, 0.2);
+ box-shadow: 2px 0px 2px rgba(0, 0, 0, 0.2);
+}
+
+.ui.right.floating.sidebar {
+ -webkit-box-shadow: -2px 0px 2px rgba(0, 0, 0, 0.2);
+ box-shadow: -2px 0px 2px rgba(0, 0, 0, 0.2);
+}
+
+.ui.top.floating.sidebar {
+ -webkit-box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.2);
+ box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.2);
+}
+
+.ui.bottom.floating.sidebar {
+ -webkit-box-shadow: 0px -4px 4px rgba(0, 0, 0, 0.2);
+ box-shadow: 0px -4px 4px rgba(0, 0, 0, 0.2);
+}
+
+/*-------------------
+ Width
+--------------------*/
+
+/* Very Thin */
+
+.ui.very.thin.sidebar {
+ width: 60px !important;
+ margin-right: -60px !important;
+}
+
+.ui.active.very.thin.sidebar {
+ margin-right: 0px !important;
+}
+
+.ui.active.right.very.thin.sidebar {
+ margin-right: -60px !important;
+}
+
+/* Thin */
+
+.ui.thin.sidebar {
+ width: 200px !important;
+ margin-right: -200px !important;
+}
+
+.ui.active.thin.sidebar {
+ margin-right: 0px !important;
+}
+
+.ui.active.right.thin.sidebar {
+ margin-right: -200px !important;
+}
+
+/* Standard */
+
+.ui.sidebar {
+ width: 275px !important;
+ margin-right: -275px !important;
+}
+
+.ui.active.sidebar {
+ margin-right: 0px !important;
+}
+
+.ui.active.right.sidebar {
+ margin-right: -275px !important;
+}
+
+/* Wide */
+
+.ui.wide.sidebar {
+ width: 350px !important;
+ margin-right: -350px !important;
+}
+
+.ui.active.wide.sidebar {
+ margin-right: 0px !important;
+}
+
+.ui.active.right.wide.sidebar {
+ margin-right: -350px !important;
+}
+
+/* Very Wide */
+
+.ui.very.wide.sidebar {
+ width: 475px !important;
+ margin-right: -475px !important;
+}
+
+.ui.active.very.wide.sidebar {
+ margin-right: 0px !important;
+}
+
+.ui.active.right.very.wide.sidebar {
+ margin-right: -475px !important;
+}
+
+/*-------------------
+ Height
+--------------------*/
+
+/* Standard */
+
+.ui.top.sidebar {
+ margin: -40px 0px 0px 0px !important;
+}
+
+.ui.top.sidebar,
+.ui.bottom.sidebar {
+ height: 40px !important;
+}
+
+.ui.active.bottom.sidebar {
+ margin-top: -40px !important;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/modules/tab.js b/css/semantic/rtl/less/modules/tab.js
new file mode 100644
index 0000000..4dbf98c
--- /dev/null
+++ b/css/semantic/rtl/less/modules/tab.js
@@ -0,0 +1,710 @@
+/*
+ * # Semantic - Tab
+ * http://github.com/jlukic/semantic-ui/
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+
+;(function ($, window, document, undefined) {
+
+ $.fn.tab = function(parameters) {
+
+ var
+ settings = $.extend(true, {}, $.fn.tab.settings, parameters),
+
+ $module = $(this),
+ $tabs = $(settings.context).find(settings.selector.tabs),
+
+ moduleSelector = $module.selector || '',
+
+ cache = {},
+ firstLoad = true,
+ recursionDepth = 0,
+
+ activeTabPath,
+ parameterArray,
+ historyEvent,
+
+ element = this,
+ time = new Date().getTime(),
+ performance = [],
+
+ className = settings.className,
+ metadata = settings.metadata,
+ error = settings.error,
+
+ eventNamespace = '.' + settings.namespace,
+ moduleNamespace = 'module-' + settings.namespace,
+
+ instance = $module.data(moduleNamespace),
+
+ query = arguments[0],
+ methodInvoked = (instance !== undefined && typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ module,
+ returnedValue
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing Tabs', $module);
+
+ // set up automatic routing
+ if(settings.auto) {
+ module.verbose('Setting up automatic tab retrieval from server');
+ settings.apiSettings = {
+ url: settings.path + '/{$tab}'
+ };
+ }
+
+ // attach history events
+ if(settings.history) {
+ module.debug('Initializing page state');
+ if( $.address === undefined ) {
+ module.error(error.state);
+ return false;
+ }
+ else {
+ if(settings.historyType == 'hash') {
+ module.debug('Using hash state change to manage state');
+ }
+ if(settings.historyType == 'html5') {
+ module.debug('Using HTML5 to manage state');
+ if(settings.path !== false) {
+ $.address
+ .history(true)
+ .state(settings.path)
+ ;
+ }
+ else {
+ module.error(error.path);
+ return false;
+ }
+ }
+ $.address
+ .unbind('change')
+ .bind('change', module.event.history.change)
+ ;
+ }
+ }
+
+ // attach events if navigation wasn't set to window
+ if( !$.isWindow( element ) ) {
+ module.debug('Attaching tab activation events to element', $module);
+ $module
+ .on('click' + eventNamespace, module.event.click)
+ ;
+ }
+ module.instantiate();
+ },
+
+ instantiate: function () {
+ module.verbose('Storing instance of module', module);
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.debug('Destroying tabs', $module);
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+ click: function(event) {
+ var
+ tabPath = $(this).data(metadata.tab)
+ ;
+ if(tabPath !== undefined) {
+ if(settings.history) {
+ module.verbose('Updating page state', event);
+ $.address.value(tabPath);
+ }
+ else {
+ module.verbose('Changing tab without state management', event);
+ module.changeTab(tabPath);
+ }
+ event.preventDefault();
+ }
+ else {
+ module.debug('No tab specified');
+ }
+ },
+ history: {
+ change: function(event) {
+ var
+ tabPath = event.pathNames.join('/') || module.get.initialPath(),
+ pageTitle = settings.templates.determineTitle(tabPath) || false
+ ;
+ module.debug('History change event', tabPath, event);
+ historyEvent = event;
+ if(tabPath !== undefined) {
+ module.changeTab(tabPath);
+ }
+ if(pageTitle) {
+ $.address.title(pageTitle);
+ }
+ }
+ }
+ },
+
+ refresh: function() {
+ if(activeTabPath) {
+ module.debug('Refreshing tab', activeTabPath);
+ module.changeTab(activeTabPath);
+ }
+ },
+
+ cache: {
+
+ read: function(cacheKey) {
+ return (cacheKey !== undefined)
+ ? cache[cacheKey]
+ : false
+ ;
+ },
+ add: function(cacheKey, content) {
+ cacheKey = cacheKey || activeTabPath;
+ module.debug('Adding cached content for', cacheKey);
+ cache[cacheKey] = content;
+ },
+ remove: function(cacheKey) {
+ cacheKey = cacheKey || activeTabPath;
+ module.debug('Removing cached content for', cacheKey);
+ delete cache[cacheKey];
+ }
+ },
+
+ set: {
+ state: function(url) {
+ $.address.value(url);
+ }
+ },
+
+ changeTab: function(tabPath) {
+ var
+ pushStateAvailable = (window.history && window.history.pushState),
+ shouldIgnoreLoad = (pushStateAvailable && settings.ignoreFirstLoad && firstLoad),
+ remoteContent = (settings.auto || $.isPlainObject(settings.apiSettings) ),
+ // only get default path if not remote content
+ pathArray = (remoteContent && !shouldIgnoreLoad)
+ ? module.utilities.pathToArray(tabPath)
+ : module.get.defaultPathArray(tabPath)
+ ;
+ tabPath = module.utilities.arrayToPath(pathArray);
+ module.deactivate.all();
+ $.each(pathArray, function(index, tab) {
+ var
+ currentPathArray = pathArray.slice(0, index + 1),
+ currentPath = module.utilities.arrayToPath(currentPathArray),
+
+ isTab = module.is.tab(currentPath),
+ isLastIndex = (index + 1 == pathArray.length),
+
+ $tab = module.get.tabElement(currentPath),
+ nextPathArray,
+ nextPath,
+ isLastTab
+ ;
+ module.verbose('Looking for tab', tab);
+ if(isTab) {
+ module.verbose('Tab was found', tab);
+
+ // scope up
+ activeTabPath = currentPath;
+ parameterArray = module.utilities.filterArray(pathArray, currentPathArray);
+
+ if(isLastIndex) {
+ isLastTab = true;
+ }
+ else {
+ nextPathArray = pathArray.slice(0, index + 2);
+ nextPath = module.utilities.arrayToPath(nextPathArray);
+ isLastTab = ( !module.is.tab(nextPath) );
+ if(isLastTab) {
+ module.verbose('Tab parameters found', nextPathArray);
+ }
+ }
+ if(isLastTab && remoteContent) {
+ if(!shouldIgnoreLoad) {
+ module.activate.navigation(currentPath);
+ module.content.fetch(currentPath, tabPath);
+ }
+ else {
+ module.debug('Ignoring remote content on first tab load', currentPath);
+ firstLoad = false;
+ module.cache.add(tabPath, $tab.html());
+ module.activate.all(currentPath);
+ $.proxy(settings.onTabInit, $tab)(currentPath, parameterArray, historyEvent);
+ $.proxy(settings.onTabLoad, $tab)(currentPath, parameterArray, historyEvent);
+ }
+ return false;
+ }
+ else {
+ module.debug('Opened local tab', currentPath);
+ module.activate.all(currentPath);
+ if( !module.cache.read(currentPath) ) {
+ module.cache.add(currentPath, true);
+ module.debug('First time tab loaded calling tab init');
+ $.proxy(settings.onTabInit, $tab)(currentPath, parameterArray, historyEvent);
+ }
+ $.proxy(settings.onTabLoad, $tab)(currentPath, parameterArray, historyEvent);
+ }
+ }
+ else {
+ module.error(error.missingTab, tab);
+ return false;
+ }
+ });
+ },
+
+ content: {
+
+ fetch: function(tabPath, fullTabPath) {
+ var
+ $tab = module.get.tabElement(tabPath),
+ apiSettings = {
+ dataType : 'html',
+ stateContext : $tab,
+ success : function(response) {
+ module.cache.add(fullTabPath, response);
+ module.content.update(tabPath, response);
+ if(tabPath == activeTabPath) {
+ module.debug('Content loaded', tabPath);
+ module.activate.tab(tabPath);
+ }
+ else {
+ module.debug('Content loaded in background', tabPath);
+ }
+ $.proxy(settings.onTabInit, $tab)(tabPath, parameterArray, historyEvent);
+ $.proxy(settings.onTabLoad, $tab)(tabPath, parameterArray, historyEvent);
+ },
+ urlData: { tab: fullTabPath }
+ },
+ request = $tab.data(metadata.promise) || false,
+ existingRequest = ( request && request.state() === 'pending' ),
+ requestSettings,
+ cachedContent
+ ;
+
+ fullTabPath = fullTabPath || tabPath;
+ cachedContent = module.cache.read(fullTabPath);
+
+ if(settings.cache && cachedContent) {
+ module.debug('Showing existing content', fullTabPath);
+ module.content.update(tabPath, cachedContent);
+ module.activate.tab(tabPath);
+ $.proxy(settings.onTabLoad, $tab)(tabPath, parameterArray, historyEvent);
+ }
+ else if(existingRequest) {
+ module.debug('Content is already loading', fullTabPath);
+ $tab
+ .addClass(className.loading)
+ ;
+ }
+ else if($.api !== undefined) {
+ console.log(settings.apiSettings);
+ requestSettings = $.extend(true, { headers: { 'X-Remote': true } }, settings.apiSettings, apiSettings);
+ module.debug('Retrieving remote content', fullTabPath, requestSettings);
+ $.api( requestSettings );
+ }
+ else {
+ module.error(error.api);
+ }
+ },
+
+ update: function(tabPath, html) {
+ module.debug('Updating html for', tabPath);
+ var
+ $tab = module.get.tabElement(tabPath)
+ ;
+ $tab
+ .html(html)
+ ;
+ }
+ },
+
+ activate: {
+ all: function(tabPath) {
+ module.activate.tab(tabPath);
+ module.activate.navigation(tabPath);
+ },
+ tab: function(tabPath) {
+ var
+ $tab = module.get.tabElement(tabPath)
+ ;
+ module.verbose('Showing tab content for', $tab);
+ $tab.addClass(className.active);
+ },
+ navigation: function(tabPath) {
+ var
+ $navigation = module.get.navElement(tabPath)
+ ;
+ module.verbose('Activating tab navigation for', $navigation, tabPath);
+ $navigation.addClass(className.active);
+ }
+ },
+
+ deactivate: {
+ all: function() {
+ module.deactivate.navigation();
+ module.deactivate.tabs();
+ },
+ navigation: function() {
+ $module
+ .removeClass(className.active)
+ ;
+ },
+ tabs: function() {
+ $tabs
+ .removeClass(className.active + ' ' + className.loading)
+ ;
+ }
+ },
+
+ is: {
+ tab: function(tabName) {
+ return (tabName !== undefined)
+ ? ( module.get.tabElement(tabName).size() > 0 )
+ : false
+ ;
+ }
+ },
+
+ get: {
+ initialPath: function() {
+ return $module.eq(0).data(metadata.tab) || $tabs.eq(0).data(metadata.tab);
+ },
+ path: function() {
+ return $.address.value();
+ },
+ // adds default tabs to tab path
+ defaultPathArray: function(tabPath) {
+ return module.utilities.pathToArray( module.get.defaultPath(tabPath) );
+ },
+ defaultPath: function(tabPath) {
+ var
+ $defaultNav = $module.filter('[data-' + metadata.tab + '^="' + tabPath + '/"]').eq(0),
+ defaultTab = $defaultNav.data(metadata.tab) || false
+ ;
+ if( defaultTab ) {
+ module.debug('Found default tab', defaultTab);
+ if(recursionDepth < settings.maxDepth) {
+ recursionDepth++;
+ return module.get.defaultPath(defaultTab);
+ }
+ module.error(error.recursion);
+ }
+ else {
+ module.debug('No default tabs found for', tabPath, $tabs);
+ }
+ recursionDepth = 0;
+ return tabPath;
+ },
+ navElement: function(tabPath) {
+ tabPath = tabPath || activeTabPath;
+ return $module.filter('[data-' + metadata.tab + '="' + tabPath + '"]');
+ },
+ tabElement: function(tabPath) {
+ var
+ $fullPathTab,
+ $simplePathTab,
+ tabPathArray,
+ lastTab
+ ;
+ tabPath = tabPath || activeTabPath;
+ tabPathArray = module.utilities.pathToArray(tabPath);
+ lastTab = module.utilities.last(tabPathArray);
+ $fullPathTab = $tabs.filter('[data-' + metadata.tab + '="' + lastTab + '"]');
+ $simplePathTab = $tabs.filter('[data-' + metadata.tab + '="' + tabPath + '"]');
+ return ($fullPathTab.size() > 0)
+ ? $fullPathTab
+ : $simplePathTab
+ ;
+ },
+ tab: function() {
+ return activeTabPath;
+ }
+ },
+
+ utilities: {
+ filterArray: function(keepArray, removeArray) {
+ return $.grep(keepArray, function(keepValue) {
+ return ( $.inArray(keepValue, removeArray) == -1);
+ });
+ },
+ last: function(array) {
+ return $.isArray(array)
+ ? array[ array.length - 1]
+ : false
+ ;
+ },
+ pathToArray: function(pathName) {
+ if(pathName === undefined) {
+ pathName = activeTabPath;
+ }
+ return typeof pathName == 'string'
+ ? pathName.split('/')
+ : [pathName]
+ ;
+ },
+ arrayToPath: function(pathArray) {
+ return $.isArray(pathArray)
+ ? pathArray.join('/')
+ : false
+ ;
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+
+ };
+
+ // shortcut for tabbed content with no defined navigation
+ $.tab = function(settings) {
+ $(window).tab(settings);
+ };
+
+ $.fn.tab.settings = {
+
+ name : 'Tab',
+ debug : false,
+ verbose : true,
+ performance : true,
+ namespace : 'tab',
+
+ // only called first time a tab's content is loaded (when remote source)
+ onTabInit : function(tabPath, parameterArray, historyEvent) {},
+ // called on every load
+ onTabLoad : function(tabPath, parameterArray, historyEvent) {},
+
+ templates : {
+ determineTitle: function(tabArray) {}
+ },
+
+ // uses pjax style endpoints fetching content from same url with remote-content headers
+ auto : false,
+ history : true,
+ historyType : 'hash',
+ path : false,
+
+ context : 'body',
+
+ // max depth a tab can be nested
+ maxDepth : 25,
+ // dont load content on first load
+ ignoreFirstLoad : false,
+ // load tab content new every tab click
+ alwaysRefresh : false,
+ // cache the content requests to pull locally
+ cache : true,
+ // settings for api call
+ apiSettings : false,
+
+ error: {
+ api : 'You attempted to load content without API module',
+ method : 'The method you called is not defined',
+ missingTab : 'Tab cannot be found',
+ noContent : 'The tab you specified is missing a content url.',
+ path : 'History enabled, but no path was specified',
+ recursion : 'Max recursive depth reached',
+ state : 'The state library has not been initialized'
+ },
+
+ metadata : {
+ tab : 'tab',
+ loaded : 'loaded',
+ promise: 'promise'
+ },
+
+ className : {
+ loading : 'loading',
+ active : 'active'
+ },
+
+ selector : {
+ tabs : '.ui.tab'
+ }
+
+ };
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/less/modules/tab.less b/css/semantic/rtl/less/modules/tab.less
new file mode 100644
index 0000000..aeb6f46
--- /dev/null
+++ b/css/semantic/rtl/less/modules/tab.less
@@ -0,0 +1,63 @@
+/*
+ * # Semantic - Tab
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ UI Tabs
+*******************************/
+
+.ui.tab {
+ display: none;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------------
+ Active
+---------------------*/
+
+.ui.tab.active,
+.ui.tab.open {
+ display: block;
+}
+
+/*--------------------
+ Loading
+---------------------*/
+
+.ui.tab.loading {
+ position: relative;
+ overflow: hidden;
+ display: block;
+ min-height: 250px;
+ text-indent: -10000px;
+}
+
+.ui.tab.loading * {
+ position: relative !important;
+ right: -10000px !important;
+}
+
+.ui.tab.loading:after {
+ position: absolute;
+ top: 50px;
+ right: 50%;
+ content: 'Loading...';
+ margin-right: -32px;
+ text-indent: 5px;
+ color: rgba(0, 0, 0, 0.4);
+ width: 100%;
+ height: 100%;
+ padding-top: 75px;
+ background: url(../images/loader-large.gif) no-repeat 0px 0px;
+ visibility: visible;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/modules/transition.js b/css/semantic/rtl/less/modules/transition.js
new file mode 100644
index 0000000..62a9148
--- /dev/null
+++ b/css/semantic/rtl/less/modules/transition.js
@@ -0,0 +1,813 @@
+/*
+ * # Semantic - Transition
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.transition = function() {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ moduleArguments = arguments,
+ query = moduleArguments[0],
+ queryArguments = [].slice.call(arguments, 1),
+ methodInvoked = (typeof query === 'string'),
+
+ requestAnimationFrame = window.requestAnimationFrame
+ || window.mozRequestAnimationFrame
+ || window.webkitRequestAnimationFrame
+ || window.msRequestAnimationFrame
+ || function(callback) { setTimeout(callback, 0); },
+
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ $module = $(this),
+ element = this,
+
+ // set at run time
+ settings,
+ instance,
+
+ error,
+ className,
+ metadata,
+ animationEnd,
+ animationName,
+
+ namespace,
+ moduleNamespace,
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ // get settings
+ settings = module.get.settings.apply(element, moduleArguments);
+ module.verbose('Converted arguments into settings object', settings);
+
+ // set shortcuts
+ error = settings.error;
+ className = settings.className;
+ namespace = settings.namespace;
+ metadata = settings.metadata;
+ moduleNamespace = 'module-' + namespace;
+
+ animationEnd = module.get.animationEvent();
+ animationName = module.get.animationName();
+
+ instance = $module.data(moduleNamespace) || module;
+
+ if(methodInvoked) {
+ methodInvoked = module.invoke(query);
+ }
+ // no internal method was found matching query or query not made
+ if(methodInvoked === false) {
+ module.animate();
+ }
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module for', element);
+ $module
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing display type on next animation');
+ delete instance.displayType;
+ },
+
+ forceRepaint: function() {
+ module.verbose('Forcing element repaint');
+ var
+ $parentElement = $module.parent(),
+ $nextElement = $module.next()
+ ;
+ if($nextElement.size() === 0) {
+ $module.detach().appendTo($parentElement);
+ }
+ else {
+ $module.detach().insertBefore($nextElement);
+ }
+ },
+
+ repaint: function() {
+ module.verbose('Repainting element');
+ var
+ fakeAssignment = element.offsetWidth
+ ;
+ },
+
+ animate: function(overrideSettings) {
+ settings = overrideSettings || settings;
+ if(!module.is.supported()) {
+ module.error(error.support);
+ return false;
+ }
+ module.debug('Preparing animation', settings.animation);
+ if(module.is.animating() && settings.queue) {
+ if(!settings.allowRepeats && module.has.direction() && module.is.occuring() && instance.queuing !== true) {
+ module.error(error.repeated);
+ }
+ else {
+ module.queue(settings.animation);
+ }
+ return false;
+ }
+ if(module.can.animate) {
+ module.set.animating(settings.animation);
+ }
+ else {
+ module.error(error.noAnimation, settings.animation);
+ }
+ },
+
+ reset: function() {
+ module.debug('Resetting animation to beginning conditions');
+ $module.off(animationEnd);
+ module.restore.conditions();
+ module.hide();
+ module.remove.animating();
+ },
+
+ queue: function(animation) {
+ module.debug('Queueing animation of', animation);
+ instance.queuing = true;
+ $module
+ .one(animationEnd, function() {
+ instance.queuing = false;
+ module.repaint();
+ module.animate.apply(this, settings);
+ })
+ ;
+ },
+
+ complete: function () {
+ module.verbose('CSS animation complete', settings.animation);
+ if(!module.is.looping()) {
+ if( module.is.outward() ) {
+ module.verbose('Animation is outward, hiding element');
+ module.restore.conditions();
+ module.remove.display();
+ module.hide();
+ $.proxy(settings.onHide, this)();
+ }
+ else if( module.is.inward() ) {
+ module.verbose('Animation is outward, showing element');
+ module.restore.conditions();
+ module.show();
+ $.proxy(settings.onShow, this)();
+ }
+ else {
+ module.restore.conditions();
+ }
+ module.remove.duration();
+ module.remove.animating();
+ }
+ $.proxy(settings.complete, this)();
+ },
+
+ has: {
+ direction: function(animation) {
+ animation = animation || settings.animation;
+ if( animation.search(className.inward) !== -1 || animation.search(className.outward) !== -1) {
+ module.debug('Direction already set in animation');
+ return true;
+ }
+ return false;
+ }
+ },
+
+ set: {
+
+ animating: function(animation) {
+ animation = animation || settings.animation;
+ module.save.conditions();
+ if(module.can.transition() && !module.has.direction()) {
+ module.set.direction();
+ }
+ module.remove.hidden();
+ module.set.display();
+ $module
+ .addClass(className.animating)
+ .addClass(className.transition)
+ .addClass(animation)
+ .one(animationEnd, module.complete)
+ ;
+ module.set.duration(settings.duration);
+ module.debug('Starting tween', settings.animation, $module.attr('class'));
+ },
+
+ display: function() {
+ var
+ displayType = module.get.displayType()
+ ;
+ if(displayType !== 'block') {
+ module.verbose('Setting final visibility to', displayType);
+ $module
+ .css({
+ display: displayType
+ })
+ ;
+ }
+ },
+
+ direction: function() {
+ if($module.is(':visible')) {
+ module.debug('Automatically determining the direction of animation', 'Outward');
+ $module
+ .removeClass(className.inward)
+ .addClass(className.outward)
+ ;
+ }
+ else {
+ module.debug('Automatically determining the direction of animation', 'Inward');
+ $module
+ .removeClass(className.outward)
+ .addClass(className.inward)
+ ;
+ }
+ },
+
+ looping: function() {
+ module.debug('Transition set to loop');
+ $module
+ .addClass(className.looping)
+ ;
+ },
+
+ duration: function(duration) {
+ duration = duration || settings.duration;
+ duration = (typeof duration == 'number')
+ ? duration + 'ms'
+ : duration
+ ;
+ module.verbose('Setting animation duration', duration);
+ $module
+ .css({
+ '-webkit-animation-duration': duration,
+ '-moz-animation-duration': duration,
+ '-ms-animation-duration': duration,
+ '-o-animation-duration': duration,
+ 'animation-duration': duration
+ })
+ ;
+ },
+
+ hidden: function() {
+ $module
+ .addClass(className.transition)
+ .addClass(className.hidden)
+ ;
+ },
+
+ visible: function() {
+ $module
+ .addClass(className.transition)
+ .addClass(className.visible)
+ ;
+ }
+ },
+
+ save: {
+ displayType: function(displayType) {
+ instance.displayType = displayType;
+ },
+ transitionExists: function(animation, exists) {
+ $.fn.transition.exists[animation] = exists;
+ module.verbose('Saving existence of transition', animation, exists);
+ },
+ conditions: function() {
+ instance.cache = {
+ className : $module.attr('class'),
+ style : $module.attr('style')
+ };
+ module.verbose('Saving original attributes', instance.cache);
+ }
+ },
+
+ restore: {
+ conditions: function() {
+ if(instance.cache === undefined) {
+ return false;
+ }
+ if(instance.cache.className) {
+ $module.attr('class', instance.cache.className);
+ }
+ else {
+ $module.removeAttr('class');
+ }
+ if(instance.cache.style) {
+ $module.attr('style', instance.cache.style);
+ }
+ else {
+ if(module.get.displayType() === 'block') {
+ $module.removeAttr('style');
+ }
+ }
+ if(module.is.looping()) {
+ module.remove.looping();
+ }
+ module.verbose('Restoring original attributes', instance.cache);
+ }
+ },
+
+ remove: {
+
+ animating: function() {
+ $module.removeClass(className.animating);
+ },
+
+ display: function() {
+ if(instance.displayType !== undefined) {
+ $module.css('display', '');
+ }
+ },
+
+ duration: function() {
+ $module
+ .css({
+ '-webkit-animation-duration' : '',
+ '-moz-animation-duration' : '',
+ '-ms-animation-duration' : '',
+ '-o-animation-duration' : '',
+ 'animation-duration' : ''
+ })
+ ;
+ },
+
+ hidden: function() {
+ $module.removeClass(className.hidden);
+ },
+
+ visible: function() {
+ $module.removeClass(className.visible);
+ },
+
+ looping: function() {
+ module.debug('Transitions are no longer looping');
+ $module
+ .removeClass(className.looping)
+ ;
+ module.forceRepaint();
+ }
+
+ },
+
+ get: {
+
+ settings: function(animation, duration, complete) {
+ // single settings object
+ if(typeof animation == 'object') {
+ return $.extend(true, {}, $.fn.transition.settings, animation);
+ }
+ // all arguments provided
+ else if(typeof complete == 'function') {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation,
+ complete : complete,
+ duration : duration
+ });
+ }
+ // only duration provided
+ else if(typeof duration == 'string' || typeof duration == 'number') {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation,
+ duration : duration
+ });
+ }
+ // duration is actually settings object
+ else if(typeof duration == 'object') {
+ return $.extend({}, $.fn.transition.settings, duration, {
+ animation : animation
+ });
+ }
+ // duration is actually callback
+ else if(typeof duration == 'function') {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation,
+ complete : duration
+ });
+ }
+ // only animation provided
+ else {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation
+ });
+ }
+ return $.fn.transition.settings;
+ },
+
+ displayType: function() {
+ if(instance.displayType === undefined) {
+ // create fake element to determine display state
+ module.can.transition();
+ }
+ return instance.displayType;
+ },
+
+ transitionExists: function(animation) {
+ return $.fn.transition.exists[animation];
+ },
+
+ animationName: function() {
+ var
+ element = document.createElement('div'),
+ animations = {
+ 'animation' :'animationName',
+ 'OAnimation' :'oAnimationName',
+ 'MozAnimation' :'mozAnimationName',
+ 'WebkitAnimation' :'webkitAnimationName'
+ },
+ animation
+ ;
+ for(animation in animations){
+ if( element.style[animation] !== undefined ){
+ module.verbose('Determined animation vendor name property', animations[animation]);
+ return animations[animation];
+ }
+ }
+ return false;
+ },
+
+ animationEvent: function() {
+ var
+ element = document.createElement('div'),
+ animations = {
+ 'animation' :'animationend',
+ 'OAnimation' :'oAnimationEnd',
+ 'MozAnimation' :'animationend',
+ 'WebkitAnimation' :'webkitAnimationEnd'
+ },
+ animation
+ ;
+ for(animation in animations){
+ if( element.style[animation] !== undefined ){
+ module.verbose('Determined animation vendor end event', animations[animation]);
+ return animations[animation];
+ }
+ }
+ return false;
+ }
+
+ },
+
+ can: {
+ animate: function() {
+ if($module.css(settings.animation) !== 'none') {
+ module.debug('CSS definition found', $module.css(settings.animation));
+ return true;
+ }
+ else {
+ module.debug('Unable to find css definition', $module.attr('class'));
+ return false;
+ }
+ },
+ transition: function() {
+ var
+ elementClass = $module.attr('class'),
+ animation = settings.animation,
+ transitionExists = module.get.transitionExists(settings.animation),
+ $clone,
+ currentAnimation,
+ inAnimation,
+ displayType
+ ;
+ if( transitionExists === undefined || instance.displayType === undefined) {
+ module.verbose('Determining whether animation exists');
+ $clone = $('
').addClass( elementClass ).appendTo($('body'));
+ currentAnimation = $clone
+ .removeClass(className.inward)
+ .removeClass(className.outward)
+ .addClass(className.animating)
+ .addClass(className.transition)
+ .addClass(animation)
+ .css(animationName)
+ ;
+ inAnimation = $clone
+ .addClass(className.inward)
+ .css(animationName)
+ ;
+ displayType = $clone
+ .attr('class', elementClass)
+ .show()
+ .css('display')
+ ;
+ module.verbose('Determining final display state', displayType);
+ if(currentAnimation != inAnimation) {
+ module.debug('Transition exists for animation', animation);
+ transitionExists = true;
+ }
+ else {
+ module.debug('Static animation found', animation, displayType);
+ transitionExists = false;
+ }
+ $clone.remove();
+ module.save.displayType(displayType);
+ module.save.transitionExists(animation, transitionExists);
+ }
+ return transitionExists;
+ }
+ },
+
+ is: {
+ animating: function() {
+ return $module.hasClass(className.animating);
+ },
+ inward: function() {
+ return $module.hasClass(className.inward);
+ },
+ outward: function() {
+ return $module.hasClass(className.outward);
+ },
+ looping: function() {
+ return $module.hasClass(className.looping);
+ },
+ occuring: function(animation) {
+ animation = animation || settings.animation;
+ return ( $module.hasClass(animation) );
+ },
+ visible: function() {
+ return $module.is(':visible');
+ },
+ supported: function() {
+ return(animationName !== false && animationEnd !== false);
+ }
+ },
+
+ hide: function() {
+ module.verbose('Hiding element');
+ module.remove.visible();
+ module.set.hidden();
+ module.repaint();
+ },
+
+ show: function(display) {
+ module.verbose('Showing element', display);
+ module.remove.hidden();
+ module.set.visible();
+ module.repaint();
+ },
+
+ start: function() {
+ module.verbose('Starting animation');
+ $module.removeClass(className.disabled);
+ },
+
+ stop: function() {
+ module.debug('Stopping animation');
+ $module.addClass(className.disabled);
+ },
+
+ toggle: function() {
+ module.debug('Toggling play status');
+ $module.toggleClass(className.disabled);
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found || false;
+ }
+ };
+ module.initialize();
+ })
+ ;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.transition.exists = {};
+
+$.fn.transition.settings = {
+
+ // module info
+ name : 'Transition',
+
+ // debug content outputted to console
+ debug : false,
+
+ // verbose debug output
+ verbose : true,
+
+ // performance data output
+ performance : true,
+
+ // event namespace
+ namespace : 'transition',
+
+ // animation complete event
+ complete : function() {},
+ onShow : function() {},
+ onHide : function() {},
+
+ // whether animation can occur twice in a row
+ allowRepeats : false,
+
+ // animation duration
+ animation : 'fade',
+ duration : '700ms',
+
+ // new animations will occur after previous ones
+ queue : true,
+
+ className : {
+ animating : 'animating',
+ disabled : 'disabled',
+ hidden : 'hidden',
+ inward : 'in',
+ loading : 'loading',
+ looping : 'looping',
+ outward : 'out',
+ transition : 'ui transition',
+ visible : 'visible'
+ },
+
+ // possible errors
+ error: {
+ noAnimation : 'There is no css animation matching the one you specified.',
+ repeated : 'That animation is already occurring, cancelling repeated animation',
+ method : 'The method you called is not defined',
+ support : 'This browser does not support CSS animations'
+ }
+
+};
+
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/less/modules/transition.less b/css/semantic/rtl/less/modules/transition.less
new file mode 100644
index 0000000..286343c
--- /dev/null
+++ b/css/semantic/rtl/less/modules/transition.less
@@ -0,0 +1,1218 @@
+/*******************************
+ Semantic - Transition
+ Author: Jack Lukic
+
+ CSS animation definitions for
+ transition module
+
+*******************************/
+
+/*
+ Some transitions adapted from Animate CSS
+ https://github.com/daneden/animate.css
+*/
+
+.ui.transition {
+ -webkit-animation-iteration-count: 1;
+ -moz-animation-iteration-count: 1;
+ animation-iteration-count: 1;
+ -webkit-animation-duration: 1s;
+ -moz-animation-duration: 1s;
+ animation-duration: 1s;
+ -webkit-animation-timing-function: ease;
+ -moz-animation-timing-function: ease;
+ animation-timing-function: ease;
+ -webkit-animation-fill-mode: both;
+ -moz-animation-fill-mode: both;
+ animation-fill-mode: both;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.animating.transition {
+ display: block;
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ -ms-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-transform: translateZ(0);
+ -moz-transform: translateZ(0);
+ -ms-transform: translateZ(0);
+ transform: translateZ(0);
+}
+
+/* Loading */
+
+.ui.loading.transition {
+ position: absolute;
+ top: -999999px;
+ right: -99999px;
+}
+
+/* Hidden */
+
+.ui.hidden.transition {
+ display: none;
+}
+
+/* Visible */
+
+.ui.visible.transition {
+ display: block;
+ visibility: visible;
+}
+
+/* Disabled */
+
+.ui.disabled.transition {
+ -webkit-animation-play-state: paused;
+ -moz-animation-play-state: paused;
+ animation-play-state: paused;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.looping.transition {
+ -webkit-animation-iteration-count: infinite;
+ -moz-animation-iteration-count: infinite;
+ animation-iteration-count: infinite;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Emphasis
+---------------*/
+
+.ui.flash.transition {
+ -webkit-animation-name: flash;
+ -moz-animation-name: flash;
+ animation-name: flash;
+}
+
+.ui.shake.transition {
+ -webkit-animation-name: shake;
+ -moz-animation-name: shake;
+ animation-name: shake;
+}
+
+.ui.bounce.transition {
+ -webkit-animation-name: bounce;
+ -moz-animation-name: bounce;
+ animation-name: bounce;
+}
+
+.ui.tada.transition {
+ -webkit-animation-name: tada;
+ -moz-animation-name: tada;
+ animation-name: tada;
+}
+
+/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
+
+.ui.pulse.transition {
+ -webkit-animation-name: pulse;
+ -moz-animation-name: pulse;
+ animation-name: pulse;
+}
+
+/*--------------
+ Flips
+---------------*/
+
+.ui.flip.transition.in,
+.ui.flip.transition.out {
+ -webkit-perspective: 2000px;
+ -moz-perspective: 2000px;
+ -ms-perspective: 2000px;
+ perspective: 2000px;
+}
+
+.ui.horizontal.flip.transition.in,
+.ui.horizontal.flip.transition.out {
+ -webkit-animation-name: horizontalFlip;
+ -moz-animation-name: horizontalFlip;
+ animation-name: horizontalFlip;
+}
+
+.ui.horizontal.flip.transition.out {
+ -webkit-animation-name: horizontalFlipOut;
+ -moz-animation-name: horizontalFlipOut;
+ animation-name: horizontalFlipOut;
+}
+
+.ui.vertical.flip.transition.in,
+.ui.vertical.flip.transition.out {
+ -webkit-animation-name: verticalFlip;
+ -moz-animation-name: verticalFlip;
+ animation-name: verticalFlip;
+}
+
+.ui.vertical.flip.transition.out {
+ -webkit-animation-name: verticalFlipOut;
+ -moz-animation-name: verticalFlipOut;
+ animation-name: verticalFlipOut;
+}
+
+/*--------------
+ Fades
+---------------*/
+
+.ui.fade.transition.in {
+ -webkit-animation-name: fade;
+ -moz-animation-name: fade;
+ animation-name: fade;
+}
+
+.ui.fade.transition.out {
+ -webkit-animation-name: fadeOut;
+ -moz-animation-name: fadeOut;
+ animation-name: fadeOut;
+}
+
+.ui.fade.up.transition.in {
+ -webkit-animation-name: fadeUp;
+ -moz-animation-name: fadeUp;
+ animation-name: fadeUp;
+}
+
+.ui.fade.up.transition.out {
+ -webkit-animation-name: fadeUpOut;
+ -moz-animation-name: fadeUpOut;
+ animation-name: fadeUpOut;
+}
+
+.ui.fade.down.transition.in {
+ -webkit-animation-name: fadeDown;
+ -moz-animation-name: fadeDown;
+ animation-name: fadeDown;
+}
+
+.ui.fade.down.transition.out {
+ -webkit-animation-name: fadeDownOut;
+ -moz-animation-name: fadeDownOut;
+ animation-name: fadeDownOut;
+}
+
+/*--------------
+ Scale
+---------------*/
+
+.ui.scale.transition.in {
+ -webkit-animation-name: scale;
+ -moz-animation-name: scale;
+ animation-name: scale;
+}
+
+.ui.scale.transition.out {
+ -webkit-animation-name: scaleOut;
+ -moz-animation-name: scaleOut;
+ animation-name: scaleOut;
+}
+
+/*--------------
+ Slide
+---------------*/
+
+.ui.slide.down.transition.in {
+ -webkit-animation-name: slide;
+ -moz-animation-name: slide;
+ animation-name: slide;
+ -moz-transform-origin: 50% 0%;
+ transform-origin: 50% 0%;
+ -ms-transform-origin: 50% 0%;
+ -webkit-transform-origin: 50% 0%;
+}
+
+.ui.slide.down.transition.out {
+ -webkit-animation-name: slideOut;
+ -moz-animation-name: slideOut;
+ animation-name: slideOut;
+ -webkit-transform-origin: 50% 0%;
+ -moz-transform-origin: 50% 0%;
+ -ms-transform-origin: 50% 0%;
+ transform-origin: 50% 0%;
+}
+
+.ui.slide.up.transition.in {
+ -webkit-animation-name: slide;
+ -moz-animation-name: slide;
+ animation-name: slide;
+ -webkit-transform-origin: 50% 100%;
+ -moz-transform-origin: 50% 100%;
+ -ms-transform-origin: 50% 100%;
+ transform-origin: 50% 100%;
+}
+
+.ui.slide.up.transition.out {
+ -webkit-animation-name: slideOut;
+ -moz-animation-name: slideOut;
+ animation-name: slideOut;
+ -webkit-transform-origin: 50% 100%;
+ -moz-transform-origin: 50% 100%;
+ -ms-transform-origin: 50% 100%;
+ transform-origin: 50% 100%;
+}
+
+@-webkit-keyframes slide {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+}
+
+@-moz-keyframes slide {
+ 0% {
+ opacity: 0;
+ -moz-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+}
+
+@keyframes slide {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ -moz-transform: scaleY(0);
+ -ms-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ -moz-transform: scaleY(1);
+ -ms-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+}
+
+@-webkit-keyframes slideOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+}
+
+@-moz-keyframes slideOut {
+ 0% {
+ opacity: 1;
+ -moz-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+}
+
+@keyframes slideOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ -moz-transform: scaleY(1);
+ -ms-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ -moz-transform: scaleY(0);
+ -ms-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+}
+
+/*******************************
+ Animations
+*******************************/
+
+/*--------------
+ Emphasis
+---------------*/
+
+/* Flash */
+
+@-webkit-keyframes flash {
+ 0%, 50%, 100% {
+ opacity: 1;
+ }
+
+ 25%, 75% {
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes flash {
+ 0%, 50%, 100% {
+ opacity: 1;
+ }
+
+ 25%, 75% {
+ opacity: 0;
+ }
+}
+
+@keyframes flash {
+ 0%, 50%, 100% {
+ opacity: 1;
+ }
+
+ 25%, 75% {
+ opacity: 0;
+ }
+}
+
+/* Shake */
+
+@-webkit-keyframes shake {
+ 0%, 100% {
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ }
+
+ 10%, 30%, 50%, 70%, 90% {
+ -webkit-transform: translateX(-10px);
+ transform: translateX(-10px);
+ }
+
+ 20%, 40%, 60%, 80% {
+ -webkit-transform: translateX(10px);
+ transform: translateX(10px);
+ }
+}
+
+@-moz-keyframes shake {
+ 0%, 100% {
+ -moz-transform: translateX(0);
+ transform: translateX(0);
+ }
+
+ 10%, 30%, 50%, 70%, 90% {
+ -moz-transform: translateX(-10px);
+ transform: translateX(-10px);
+ }
+
+ 20%, 40%, 60%, 80% {
+ -moz-transform: translateX(10px);
+ transform: translateX(10px);
+ }
+}
+
+@keyframes shake {
+ 0%, 100% {
+ -webkit-transform: translateX(0);
+ -moz-transform: translateX(0);
+ -ms-transform: translateX(0);
+ transform: translateX(0);
+ }
+
+ 10%, 30%, 50%, 70%, 90% {
+ -webkit-transform: translateX(-10px);
+ -moz-transform: translateX(-10px);
+ -ms-transform: translateX(-10px);
+ transform: translateX(-10px);
+ }
+
+ 20%, 40%, 60%, 80% {
+ -webkit-transform: translateX(10px);
+ -moz-transform: translateX(10px);
+ -ms-transform: translateX(10px);
+ transform: translateX(10px);
+ }
+}
+
+/* Bounce */
+
+@-webkit-keyframes bounce {
+ 0%, 20%, 50%, 80%, 100% {
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 40% {
+ -webkit-transform: translateY(-30px);
+ transform: translateY(-30px);
+ }
+
+ 60% {
+ -webkit-transform: translateY(-15px);
+ transform: translateY(-15px);
+ }
+}
+
+@-moz-keyframes bounce {
+ 0%, 20%, 50%, 80%, 100% {
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 40% {
+ -moz-transform: translateY(-30px);
+ transform: translateY(-30px);
+ }
+
+ 60% {
+ -moz-transform: translateY(-15px);
+ transform: translateY(-15px);
+ }
+}
+
+@keyframes bounce {
+ 0%, 20%, 50%, 80%, 100% {
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 40% {
+ -webkit-transform: translateY(-30px);
+ -moz-transform: translateY(-30px);
+ -ms-transform: translateY(-30px);
+ transform: translateY(-30px);
+ }
+
+ 60% {
+ -webkit-transform: translateY(-15px);
+ -moz-transform: translateY(-15px);
+ -ms-transform: translateY(-15px);
+ transform: translateY(-15px);
+ }
+}
+
+/* Tada */
+
+@-webkit-keyframes tada {
+ 0% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 10%, 20% {
+ -webkit-transform: scale(0.9) rotate(-3deg);
+ transform: scale(0.9) rotate(-3deg);
+ }
+
+ 30%, 50%, 70%, 90% {
+ -webkit-transform: scale(1.1) rotate(3deg);
+ transform: scale(1.1) rotate(3deg);
+ }
+
+ 40%, 60%, 80% {
+ -webkit-transform: scale(1.1) rotate(-3deg);
+ transform: scale(1.1) rotate(-3deg);
+ }
+
+ 100% {
+ -webkit-transform: scale(1) rotate(0);
+ transform: scale(1) rotate(0);
+ }
+}
+
+@-moz-keyframes tada {
+ 0% {
+ -moz-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 10%, 20% {
+ -moz-transform: scale(0.9) rotate(-3deg);
+ transform: scale(0.9) rotate(-3deg);
+ }
+
+ 30%, 50%, 70%, 90% {
+ -moz-transform: scale(1.1) rotate(3deg);
+ transform: scale(1.1) rotate(3deg);
+ }
+
+ 40%, 60%, 80% {
+ -moz-transform: scale(1.1) rotate(-3deg);
+ transform: scale(1.1) rotate(-3deg);
+ }
+
+ 100% {
+ -moz-transform: scale(1) rotate(0);
+ transform: scale(1) rotate(0);
+ }
+}
+
+@keyframes tada {
+ 0% {
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 10%, 20% {
+ -webkit-transform: scale(0.9) rotate(-3deg);
+ -moz-transform: scale(0.9) rotate(-3deg);
+ -ms-transform: scale(0.9) rotate(-3deg);
+ transform: scale(0.9) rotate(-3deg);
+ }
+
+ 30%, 50%, 70%, 90% {
+ -webkit-transform: scale(1.1) rotate(3deg);
+ -moz-transform: scale(1.1) rotate(3deg);
+ -ms-transform: scale(1.1) rotate(3deg);
+ transform: scale(1.1) rotate(3deg);
+ }
+
+ 40%, 60%, 80% {
+ -webkit-transform: scale(1.1) rotate(-3deg);
+ -moz-transform: scale(1.1) rotate(-3deg);
+ -ms-transform: scale(1.1) rotate(-3deg);
+ transform: scale(1.1) rotate(-3deg);
+ }
+
+ 100% {
+ -webkit-transform: scale(1) rotate(0);
+ -moz-transform: scale(1) rotate(0);
+ -ms-transform: scale(1) rotate(0);
+ transform: scale(1) rotate(0);
+ }
+}
+
+/* Pulse */
+
+@-webkit-keyframes pulse {
+ 0% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+
+ 50% {
+ -webkit-transform: scale(0.9);
+ transform: scale(0.9);
+ opacity: 0.7;
+ }
+
+ 100% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes pulse {
+ 0% {
+ -moz-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+
+ 50% {
+ -moz-transform: scale(0.9);
+ transform: scale(0.9);
+ opacity: 0.7;
+ }
+
+ 100% {
+ -moz-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+@keyframes pulse {
+ 0% {
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+
+ 50% {
+ -webkit-transform: scale(0.9);
+ -moz-transform: scale(0.9);
+ -ms-transform: scale(0.9);
+ transform: scale(0.9);
+ opacity: 0.7;
+ }
+
+ 100% {
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+/*--------------
+ Flips
+---------------*/
+
+/* Horizontal */
+
+@-webkit-keyframes horizontalFlip {
+ 0% {
+ -webkit-transform: rotateY(-90deg);
+ transform: rotateY(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes horizontalFlip {
+ 0% {
+ -moz-transform: rotateY(-90deg);
+ transform: rotateY(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+}
+
+@keyframes horizontalFlip {
+ 0% {
+ -webkit-transform: rotateY(-90deg);
+ -moz-transform: rotateY(-90deg);
+ -ms-transform: rotateY(-90deg);
+ transform: rotateY(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: rotateY(0deg);
+ -moz-transform: rotateY(0deg);
+ -ms-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+}
+
+/* Horizontal */
+
+@-webkit-keyframes horizontalFlipOut {
+ 0% {
+ -webkit-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: rotateY(90deg);
+ transform: rotateY(90deg);
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes horizontalFlipOut {
+ 0% {
+ -moz-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -moz-transform: rotateY(90deg);
+ transform: rotateY(90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes horizontalFlipOut {
+ 0% {
+ -webkit-transform: rotateY(0deg);
+ -moz-transform: rotateY(0deg);
+ -ms-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: rotateY(90deg);
+ -moz-transform: rotateY(90deg);
+ -ms-transform: rotateY(90deg);
+ transform: rotateY(90deg);
+ opacity: 0;
+ }
+}
+
+/* Vertical */
+
+@-webkit-keyframes verticalFlip {
+ 0% {
+ -webkit-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes verticalFlip {
+ 0% {
+ -moz-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+}
+
+@keyframes verticalFlip {
+ 0% {
+ -webkit-transform: rotateX(-90deg);
+ -moz-transform: rotateX(-90deg);
+ -ms-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: rotateX(0deg);
+ -moz-transform: rotateX(0deg);
+ -ms-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+}
+
+@-webkit-keyframes verticalFlipOut {
+ 0% {
+ -webkit-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes verticalFlipOut {
+ 0% {
+ -moz-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -moz-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes verticalFlipOut {
+ 0% {
+ -webkit-transform: rotateX(0deg);
+ -moz-transform: rotateX(0deg);
+ -ms-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: rotateX(-90deg);
+ -moz-transform: rotateX(-90deg);
+ -ms-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+}
+
+/*--------------
+ Fades
+---------------*/
+
+/* Fade */
+
+@-webkit-keyframes fade {
+ 0% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes fade {
+ 0% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ }
+}
+
+@keyframes fade {
+ 0% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ }
+}
+
+@-webkit-keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+}
+
+@keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+}
+
+/* Fade Up */
+
+@-webkit-keyframes fadeUp {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@-moz-keyframes fadeUp {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@keyframes fadeUp {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ -moz-transform: translateY(20px);
+ -ms-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@-webkit-keyframes fadeUpOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+}
+
+@-moz-keyframes fadeUpOut {
+ 0% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+}
+
+@keyframes fadeUpOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ -moz-transform: translateY(20px);
+ -ms-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+}
+
+/* Fade Down */
+
+@-webkit-keyframes fadeDown {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@-moz-keyframes fadeDown {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@keyframes fadeDown {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ -moz-transform: translateY(-20px);
+ -ms-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@-webkit-keyframes fadeDownOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+}
+
+@-moz-keyframes fadeDownOut {
+ 0% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+}
+
+@keyframes fadeDownOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ -moz-transform: translateY(-20px);
+ -ms-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+}
+
+/*--------------
+ Scale
+---------------*/
+
+/* Scale */
+
+@-webkit-keyframes scale {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+@-moz-keyframes scale {
+ 0% {
+ opacity: 0;
+ -moz-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+@keyframes scale {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ -moz-transform: scale(0.7);
+ -ms-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+@-webkit-keyframes scaleOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+}
+
+@-moz-keyframes scaleOut {
+ 0% {
+ opacity: 1;
+ -moz-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+}
+
+@keyframes scaleOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ -moz-transform: scale(0.7);
+ -ms-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/modules/video.js b/css/semantic/rtl/less/modules/video.js
new file mode 100644
index 0000000..284218e
--- /dev/null
+++ b/css/semantic/rtl/less/modules/video.js
@@ -0,0 +1,459 @@
+/* ******************************
+ Module - Video
+ Author: Jack Lukic
+
+ This is a video playlist and video embed plugin which helps
+ provide helpers for adding embed code for vimeo and youtube and
+ abstracting event handlers for each library
+
+****************************** */
+
+;(function ($, window, document, undefined) {
+
+$.fn.video = function(parameters) {
+
+ var
+ $allModules = $(this),
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.video.settings, parameters)
+ : $.extend({}, $.fn.video.settings),
+
+ selector = settings.selector,
+ className = settings.className,
+ error = settings.error,
+ metadata = settings.metadata,
+ namespace = settings.namespace,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $placeholder = $module.find(selector.placeholder),
+ $playButton = $module.find(selector.playButton),
+ $embed = $module.find(selector.embed),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing video');
+ $placeholder
+ .on('click' + eventNamespace, module.play)
+ ;
+ $playButton
+ .on('click' + eventNamespace, module.play)
+ ;
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous instance of video');
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ $placeholder
+ .off(eventNamespace)
+ ;
+ $playButton
+ .off(eventNamespace)
+ ;
+ },
+
+ // sets new video
+ change: function(source, id, url) {
+ module.debug('Changing video to ', source, id, url);
+ $module
+ .data(metadata.source, source)
+ .data(metadata.id, id)
+ .data(metadata.url, url)
+ ;
+ settings.onChange();
+ },
+
+ // clears video embed
+ reset: function() {
+ module.debug('Clearing video embed and showing placeholder');
+ $module
+ .removeClass(className.active)
+ ;
+ $embed
+ .html(' ')
+ ;
+ $placeholder
+ .show()
+ ;
+ settings.onReset();
+ },
+
+ // plays current video
+ play: function() {
+ module.debug('Playing video');
+ var
+ source = $module.data(metadata.source) || false,
+ url = $module.data(metadata.url) || false,
+ id = $module.data(metadata.id) || false
+ ;
+ $embed
+ .html( module.generate.html(source, id, url) )
+ ;
+ $module
+ .addClass(className.active)
+ ;
+ settings.onPlay();
+ },
+
+ generate: {
+ // generates iframe html
+ html: function(source, id, url) {
+ module.debug('Generating embed html');
+ var
+ width = (settings.width == 'auto')
+ ? $module.width()
+ : settings.width,
+ height = (settings.height == 'auto')
+ ? $module.height()
+ : settings.height,
+ html
+ ;
+ if(source && id) {
+ if(source == 'vimeo') {
+ html = ''
+ + '
'
+ ;
+ }
+ else if(source == 'youtube') {
+ html = ''
+ + '
VIDEO '
+ ;
+ }
+ }
+ else if(url) {
+ html = ''
+ + '
'
+ ;
+ }
+ else {
+ module.error(error.noVideo);
+ }
+ return html;
+ },
+
+ // generate url parameters
+ url: function(source) {
+ var
+ api = (settings.api)
+ ? 1
+ : 0,
+ autoplay = (settings.autoplay)
+ ? 1
+ : 0,
+ hd = (settings.hd)
+ ? 1
+ : 0,
+ showUI = (settings.showUI)
+ ? 1
+ : 0,
+ // opposite used for some params
+ hideUI = !(settings.showUI)
+ ? 1
+ : 0,
+ url = ''
+ ;
+ if(source == 'vimeo') {
+ url = ''
+ + 'api=' + api
+ + '&title=' + showUI
+ + '&byline=' + showUI
+ + '&portrait=' + showUI
+ + '&autoplay=' + autoplay
+ ;
+ if(settings.color) {
+ url += '&color=' + settings.color;
+ }
+ }
+ if(source == 'ustream') {
+ url = ''
+ + 'autoplay=' + autoplay
+ ;
+ if(settings.color) {
+ url += '&color=' + settings.color;
+ }
+ }
+ else if(source == 'youtube') {
+ url = ''
+ + 'enablejsapi=' + api
+ + '&autoplay=' + autoplay
+ + '&autohide=' + hideUI
+ + '&hq=' + hd
+ + '&modestbranding=1'
+ ;
+ if(settings.color) {
+ url += '&color=' + settings.color;
+ }
+ }
+ return url;
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.video.settings = {
+
+ name : 'Video',
+ namespace : 'video',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ metadata : {
+ source : 'source',
+ id : 'id',
+ url : 'url'
+ },
+
+ onPlay : function(){},
+ onReset : function(){},
+ onChange : function(){},
+
+ // callbacks not coded yet (needs to use jsapi)
+ onPause : function() {},
+ onStop : function() {},
+
+ width : 'auto',
+ height : 'auto',
+
+ autoplay : false,
+ color : '#442359',
+ hd : true,
+ showUI : false,
+ api : true,
+
+ error : {
+ noVideo : 'No video specified',
+ method : 'The method you called is not defined'
+ },
+
+ className : {
+ active : 'active'
+ },
+
+ selector : {
+ embed : '.embed',
+ placeholder : '.placeholder',
+ playButton : '.play'
+ }
+};
+
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/less/modules/video.less b/css/semantic/rtl/less/modules/video.less
new file mode 100644
index 0000000..5a95a5b
--- /dev/null
+++ b/css/semantic/rtl/less/modules/video.less
@@ -0,0 +1,95 @@
+/*
+ * # Semantic - Video
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Video
+*******************************/
+
+.ui.video {
+ position: relative;
+ max-width: 100%;
+}
+
+/*--------------
+ Content
+---------------*/
+
+/* Placeholder Image */
+
+.ui.video .placeholder {
+ background-color: #333333;
+}
+
+/* Play Icon Overlay */
+
+.ui.video .play {
+ cursor: pointer;
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ z-index: 10;
+ width: 100%;
+ height: 100%;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
+ filter: alpha(opacity=60);
+ opacity: 0.6;
+ -webkit-transition: opacity 0.3s;
+ -moz-transition: opacity 0.3s;
+ transition: opacity 0.3s;
+}
+
+.ui.video .play.icon:before {
+ position: absolute;
+ top: 50%;
+ right: 50%;
+ z-index: 11;
+ font-size: 6rem;
+ margin: -3rem -3rem 0em 0em;
+ color: #FFFFFF;
+ text-shadow: 0px 3px 3px rgba(0, 0, 0, 0.4);
+}
+
+.ui.video .placeholder {
+ display: block;
+ width: 100%;
+ height: 100%;
+}
+
+/* IFrame Embed */
+
+.ui.video .embed {
+ display: none;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.video .play:hover {
+ opacity: 1;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.video.active .play,
+.ui.video.active .placeholder {
+ display: none;
+}
+
+.ui.video.active .embed {
+ display: block;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/views/comment.less b/css/semantic/rtl/less/views/comment.less
new file mode 100644
index 0000000..8ebe9f7
--- /dev/null
+++ b/css/semantic/rtl/less/views/comment.less
@@ -0,0 +1,221 @@
+/*
+ * # Semantic Comment View
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: April 17 2013
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------
+ Comments
+---------------*/
+
+
+
+.ui.comments a {
+ cursor: pointer;
+}
+
+/*--------------
+ Comment
+---------------*/
+
+.ui.comments .comment {
+ position: relative;
+ margin-top: 0.5em;
+ padding-top: 0.5em;
+}
+
+.ui.comments .comment:first-child {
+ margin-top: 0em;
+ padding-top: 0em;
+}
+
+/*--------------------
+ Avatar (Optional)
+---------------------*/
+
+.ui.comments .comment .avatar {
+ display: block;
+ float: right;
+ width: 4em;
+}
+
+.ui.comments .comment .avatar img {
+ display: block;
+ margin: 0em auto;
+ width: 3em;
+ height: 3em;
+ border-radius: 500px;
+}
+
+/*--------------
+ Content
+---------------*/
+
+.ui.comments .comment > .content,
+.ui.comments .comment > .avatar {
+ display: block;
+}
+
+.ui.comments .comment .avatar ~ .content {
+ padding: 0em 1em;
+}
+
+/* If there is an avatar move content over */
+
+.ui.comments .comment > .avatar ~ .content {
+ padding-top: 0.25em;
+ margin-right: 3.5em;
+}
+
+.ui.comments .comment .metadata {
+ display: inline-block;
+ margin-right: 0.3em;
+ color: rgba(0, 0, 0, 0.4);
+}
+
+.ui.comments .comment .metadata > * {
+ display: inline-block;
+ margin: 0em 0em 0em 0.3em;
+}
+
+/*--------------------
+ Comment Text
+---------------------*/
+
+.ui.comments .comment .text {
+ margin: 0.25em 0em 0.5em;
+ word-wrap: break-word;
+}
+
+/*--------------------
+ User Actions
+---------------------*/
+
+.ui.comments .comment .actions {
+ font-size: 0.9em;
+}
+
+.ui.comments .comment .actions a {
+ display: inline-block;
+ margin: 0em 0em 0em 0.3em;
+ color: rgba(0, 0, 0, 0.3);
+}
+
+.ui.comments .comment .actions a.active,
+.ui.comments .comment .actions a:hover {
+ color: rgba(0, 0, 0, 0.6);
+}
+
+/*--------------------
+ Reply Form
+---------------------*/
+
+.ui.comments .reply.form {
+ margin-top: 0.75em;
+ width: 100%;
+ max-width: 30em;
+}
+
+.ui.comments .comment .reply.form {
+ margin-right: 2em;
+}
+
+.ui.comments > .reply.form {
+ margin-top: 1.5em;
+ max-width: 40em;
+}
+
+.ui.comments .reply.form textarea {
+ height: 12em;
+}
+
+/*--------------------
+ Nested Comments
+---------------------*/
+
+.ui.comments .comment .comments {
+ margin-top: 0.5em;
+ padding-top: 0.5em;
+ padding-bottom: 1em;
+}
+
+.ui.comments .comment .comments:before {
+ position: absolute;
+ top: 0px;
+ right: 0px;
+}
+
+/* One Deep */
+
+.ui.comments > .comment .comments {
+ margin-right: 2em;
+}
+
+/* Two Deep */
+
+.ui.comments > .comment > .comments > .comment > .comments {
+ margin-right: 1.75em;
+}
+
+/* Three Deep */
+
+.ui.comments > .comment > .comments > .comment > .comments > .comment > .comments {
+ margin-right: 1.5em;
+}
+
+/* Four Deep or more */
+
+.ui.comments > .comment > .comments > .comment > .comments > .comment > .comments > .comment .comments {
+ margin-right: 0.5em;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------------
+ Threaded
+---------------------*/
+
+.ui.threaded.comments .comment .comments {
+ margin-right: 2em !important;
+ padding-right: 2em !important;
+ -webkit-box-shadow: -1px 0px 0px rgba(0, 0, 0, 0.05);
+ box-shadow: -1px 0px 0px rgba(0, 0, 0, 0.05);
+}
+
+/*--------------------
+ Minimal
+---------------------*/
+
+.ui.minimal.comments .comment .actions {
+ opacity: 0;
+ -webkit-transition: opacity 0.1s ease-out;
+ -moz-transition: opacity 0.1s ease-out;
+ transition: opacity 0.1s ease-out;
+ -webkit-transition-delay: 0.1s;
+ -moz-transition-delay: 0.1s;
+ transition-delay: 0.1s;
+}
+
+.ui.minimal.comments .comment > .content:hover > .actions {
+ opacity: 1;
+}
+
+/*--------------------
+ Sizes
+---------------------*/
+
+.ui.small.comments {
+ font-size: 0.875em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/views/feed.less b/css/semantic/rtl/less/views/feed.less
new file mode 100644
index 0000000..56614d4
--- /dev/null
+++ b/css/semantic/rtl/less/views/feed.less
@@ -0,0 +1,164 @@
+/*
+ * # Activity Feed View
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: May 22, 2013
+ */
+
+/*******************************
+ Activity Feed
+*******************************/
+
+
+
+.ui.feed a {
+ cursor: pointer;
+}
+
+.ui.feed,
+.ui.feed .event,
+.ui.feed .label,
+.ui.feed .content,
+.ui.feed .extra {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*******************************
+ Content
+*******************************/
+
+/* Event */
+
+.ui.feed .event {
+ width: 100%;
+ display: table;
+ padding: 1em;
+}
+
+.ui.feed .event:first-child {
+ border-top: 0px;
+}
+
+.ui.feed .event:last-child {
+ margin-bottom: 1em;
+}
+
+/* Event Label */
+
+.ui.feed .label {
+ width: 3em;
+ display: table-cell;
+ vertical-align: top;
+ text-align: right;
+}
+
+.ui.feed .label .icon {
+ font-size: 1.5em;
+ padding: 0.5em;
+ margin: 0em;
+}
+
+.ui.feed .label img {
+ width: 3em;
+ margin: 0em;
+ border-radius: 50em;
+}
+
+.ui.feed .label + .content {
+ padding: 0.75em 1em 0em;
+}
+
+/* Content */
+
+.ui.feed .content {
+ display: table-cell;
+ vertical-align: top;
+ text-align: right;
+ word-wrap: break-word;
+}
+
+/* Date */
+
+.ui.feed .content .date {
+ float: left;
+ padding-right: 1em;
+ color: rgba(0, 0, 0, 0.4);
+}
+
+/* Summary */
+
+.ui.feed .content .summary {
+ color: rgba(0, 0, 0, 0.75);
+}
+
+.ui.feed .content .summary img {
+ display: inline-block;
+ margin-left: 0.25em;
+ width: 4em;
+ border-radius: 500px;
+}
+
+/* Additional Information */
+
+.ui.feed .content .extra {
+ margin: 1em 0em 0em;
+ padding: 0.5em 0em 0em;
+ color: rgba(0, 0, 0, 0.5);
+}
+
+
+
+.ui.feed .content .extra.images img {
+ display: inline-block;
+ margin-left: 0.25em;
+ width: 6em;
+}
+
+.ui.feed .content .extra.text {
+ padding: 0.5em 1em;
+ border-right: 0.2em solid rgba(0, 0, 0, 0.1);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.small.feed {
+ font-size: 0.875em;
+}
+
+.ui.small.feed .label img {
+ width: 2.5em;
+}
+
+.ui.small.feed .label .icon {
+ font-size: 1.25em;
+}
+
+.ui.feed .event {
+ padding: 0.75em 0em;
+}
+
+.ui.small.feed .label + .content {
+ padding: 0.5em 0.5em 0;
+}
+
+.ui.small.feed .content .extra.images img {
+ width: 5em;
+}
+
+.ui.small.feed .content .extra {
+ margin: 0.5em 0em 0em;
+}
+
+.ui.small.feed .content .extra.text {
+ padding: 0.25em 0.5em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/views/item.less b/css/semantic/rtl/less/views/item.less
new file mode 100644
index 0000000..9a00010
--- /dev/null
+++ b/css/semantic/rtl/less/views/item.less
@@ -0,0 +1,685 @@
+/*
+ * # Semantic Item View
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: April 17 2013
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------
+ Items
+---------------*/
+
+.ui.items {
+ margin: 1em 0em 0em;
+}
+
+.ui.items:first-child {
+ margin-top: 0em;
+}
+
+.ui.items:last-child {
+ margin-bottom: -1em;
+}
+
+/* Force Clearing */
+
+.ui.items:after {
+ display: block;
+ content: ' ';
+ height: 0px;
+ clear: both;
+ overflow: hidden;
+ visibility: hidden;
+}
+
+/*--------------
+ Item
+---------------*/
+
+.ui.items > .row > .item,
+.ui.items > .item {
+ display: block;
+ float: right;
+ position: relative;
+ top: 0px;
+ width: 316px;
+ min-height: 375px;
+ margin: 0em 0.5em 2.5em;
+ padding: 0em;
+ background-color: #FFFFFF;
+ line-height: 1.2;
+ font-size: 1em;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ border-bottom: 0.2em solid rgba(0, 0, 0, 0.2);
+ border-radius: 0.33em;
+ -webkit-transition: -webkit-box-shadow 0.2s ease;
+ -moz-transition: box-shadow 0.2s ease;
+ transition: box-shadow 0.2s ease;
+ padding: 0.5em;
+}
+
+.ui.items a.item,
+.ui.items .item a {
+ cursor: pointer;
+}
+
+.ui.items .item,
+.ui.items .item > .image,
+.ui.items .item > .image .overlay,
+.ui.items .item > .content,
+.ui.items .item > .content > .meta,
+.ui.items .item > .content > .extra {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*--------------
+ Images
+---------------*/
+
+.ui.items .item > .image {
+ display: block;
+ position: relative;
+ background-color: rgba(0, 0, 0, 0.05);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ border-radius: 0.2em;
+}
+
+.ui.items .item > .image > img {
+ display: block;
+ width: 100%;
+}
+
+/*--------------
+ Content
+---------------*/
+
+.ui.items .item > .content {
+ padding: 0.75em 0.5em;
+}
+
+.ui.items .item > .content > .name {
+ display: block;
+ font-size: 1.25em;
+ font-weight: bold;
+ margin-bottom: 0.2em;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.items .item > .content > .description {
+ clear: both;
+ margin: 0em 0em;
+ color: rgba(0, 0, 0, 0.45);
+}
+
+.ui.items .item > .content > .description p {
+ margin: 0em 0em 0.2em;
+}
+
+.ui.items .item > .content > .description p:last-child {
+ margin-bottom: 0em;
+}
+
+/*--------------
+ Meta
+---------------*/
+
+.ui.items .item .meta {
+ float: left;
+ color: rgba(0, 0, 0, 0.35);
+}
+
+.ui.items .item > .content > .meta + .name {
+ float: right;
+}
+
+/*--------------
+ Labels
+---------------*/
+
+/*-----star----- */
+
+/* hover */
+
+.ui.items .item .star.label:hover::after {
+ border-left-color: #F6EFC3;
+}
+
+.ui.items .item .star.label:hover::after {
+ border-top-color: #F6EFC3;
+}
+
+.ui.items .item .star.label:hover .icon {
+ color: #AC9400;
+}
+
+/* active */
+
+.ui.items .item .star.label.active::after {
+ border-left-color: #F6EFC3;
+}
+
+.ui.items .item .star.label.active::after {
+ border-top-color: #F6EFC3;
+}
+
+.ui.items .item .star.label.active .icon {
+ color: #AC9400;
+}
+
+/*-----like----- */
+
+/* hover */
+
+.ui.items .item .like.label:hover::after {
+ border-left-color: #F5E1E2;
+}
+
+.ui.items .item .like.label.active::after {
+ border-top-color: #F5E1E2;
+}
+
+.ui.items .item .like.label:hover .icon {
+ color: #EF404A;
+}
+
+/* active */
+
+.ui.items .item .like.label.active::after {
+ border-left-color: #F5E1E2;
+}
+
+.ui.items .item .like.label.active::after {
+ border-top-color: #F5E1E2;
+}
+
+.ui.items .item .like.label.active .icon {
+ color: #EF404A;
+}
+
+/*--------------
+ Extra
+---------------*/
+
+.ui.items .item .extra {
+ position: absolute;
+ width: 100%;
+ padding: 0em 0.5em;
+ bottom: -2em;
+ right: 0em;
+ height: 1.5em;
+ color: rgba(0, 0, 0, 0.25);
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+.ui.items .item .extra > img {
+ display: inline-block;
+ border-radius: 500px 500px 500px 500px;
+ margin-left: 0.25em;
+ vertical-align: middle;
+ width: 2em;
+}
+
+.ui.items .item .extra .left {
+ float: right;
+}
+
+.ui.items .item .extra .right {
+ float: left;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.items .item:hover {
+ cursor: pointer;
+ z-index: 5;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2);
+}
+
+.ui.items .item:hover .extra {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.items .item:nth-of-type(6n+1):hover {
+ border-bottom-color: #6ECFF5 !important;
+}
+
+.ui.items .item:nth-of-type(6n+2):hover {
+ border-bottom-color: #5C6166 !important;
+}
+
+.ui.items .item:nth-of-type(6n+3):hover {
+ border-bottom-color: #A1CF64 !important;
+}
+
+.ui.items .item:nth-of-type(6n+4):hover {
+ border-bottom-color: #D95C5C !important;
+}
+
+.ui.items .item:nth-of-type(6n+5):hover {
+ border-bottom-color: #00B5AD !important;
+}
+
+.ui.items .item:nth-of-type(6n+6):hover {
+ border-bottom-color: #564F8A !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Connected
+---------------*/
+
+.ui.connected.items {
+ display: table;
+ width: 100%;
+ margin-right: 0em !important;
+ margin-left: 0em !important;
+}
+
+.ui.connected.items > .row > .item,
+.ui.connected.items > .item {
+ float: none;
+ display: table-cell;
+ vertical-align: top;
+ height: auto;
+ border-radius: 0px;
+ margin: 0em;
+ width: 33.33%;
+}
+
+.ui.connected.items > .row {
+ display: table;
+ margin: 0.5em 0em;
+}
+
+.ui.connected.items > .row:first-child {
+ margin-top: 0em;
+}
+
+/* Borders */
+
+.ui.connected.items > .item,
+.ui.connected.items > .row:last-child > .item {
+ border-bottom: 0.2em solid rgba(0, 0, 0, 0.2);
+}
+
+.ui.connected.items > .row:last-child > .item:first-child,
+.ui.connected.items > .item:first-child {
+ border-radius: 0em 0em 0.33em 0em;
+}
+
+.ui.connected.items > .row:last-child > .item:last-child,
+.ui.connected.items > .item:last-child {
+ border-radius: 0em 0em 0em 0.33em;
+}
+
+/* Hover */
+
+.ui.connected.items .item:hover {
+ border-bottom-width: 0.2em;
+}
+
+/* Item Count */
+
+.ui.one.connected.items > .row > .item,
+.ui.one.connected.items > .item {
+ width: 50%;
+ padding-right: 2%;
+ padding-left: 2%;
+}
+
+.ui.two.connected.items > .row > .item,
+.ui.two.connected.items > .item {
+ width: 50%;
+ padding-right: 1%;
+ padding-left: 1%;
+}
+
+.ui.three.connected.items > .row > .item,
+.ui.three.connected.items > .item {
+ width: 33.333%;
+ padding-right: 1%;
+ padding-left: 1%;
+}
+
+.ui.four.connected.items > .row > .item,
+.ui.four.connected.items > .item {
+ width: 25%;
+ padding-right: 0.5%;
+ padding-left: 0.5%;
+}
+
+.ui.five.connected.items > .row > .item,
+.ui.five.connected.items > .item {
+ width: 20%;
+ padding-right: 0.5%;
+ padding-left: 0.5%;
+}
+
+.ui.six.connected.items > .row > .item,
+.ui.six.connected.items > .item {
+ width: 16.66%;
+ padding-right: 0.5%;
+ padding-left: 0.5%;
+}
+
+.ui.seven.connected.items > .row > .item,
+.ui.seven.connected.items > .item {
+ width: 14.28%;
+ padding-right: 0.5%;
+ padding-left: 0.5%;
+}
+
+.ui.eight.connected.items > .row > .item,
+.ui.eight.connected.items > .item {
+ width: 12.5%;
+ padding-right: 0.25%;
+ padding-left: 0.25%;
+}
+
+.ui.nine.connected.items > .row > .item,
+.ui.nine.connected.items > .item {
+ width: 11.11%;
+ padding-right: 0.25%;
+ padding-left: 0.25%;
+}
+
+.ui.ten.connected.items > .row > .item,
+.ui.ten.connected.items > .item {
+ width: 10%;
+ padding-right: 0.2%;
+ padding-left: 0.2%;
+}
+
+.ui.eleven.connected.items > .row > .item,
+.ui.eleven.connected.items > .item {
+ width: 9.09%;
+ padding-right: 0.2%;
+ padding-left: 0.2%;
+}
+
+.ui.twelve.connected.items > .row > .item,
+.ui.twelve.connected.items > .item {
+ width: 8.3333%;
+ padding-right: 0.1%;
+ padding-left: 0.1%;
+}
+
+/*-------------------
+ Responsive
+--------------------*/
+
+@media only screen and (max-width : 768px) {
+ .ui.stackable.items {
+ display: block !important;
+ }
+
+ .ui.stackable.items > .item,
+ .ui.stackable.items > .row > .item {
+ display: block !important;
+ height: auto !important;
+ width: auto !important;
+ padding: 0% !important;
+ }
+}
+
+/*--------------------
+ Horizontal
+---------------------*/
+
+.ui.horizontal.items > .item,
+.ui.items > .horizontal.item {
+ display: table;
+}
+
+.ui.horizontal.items > .item > .image,
+.ui.items > .horizontal.item > .image {
+ display: table-cell;
+ width: 50%;
+}
+
+.ui.horizontal.items > .item > .image + .content,
+.ui.items > .horizontal.item > .image + .content {
+ width: 50%;
+ display: table-cell;
+}
+
+.ui.horizontal.items > .item > .content,
+.ui.items > .horizontal.item > .content {
+ padding: 1% 3% 11% 1.7%;
+ vertical-align: top;
+}
+
+.ui.horizontal.items > .item > .meta,
+.ui.items > .horizontal.item > .meta {
+ position: absolute;
+ padding: 0%;
+ bottom: 7%;
+ right: 3%;
+ width: 94%;
+}
+
+.ui.horizontal.items > .item > .image + .content + .meta,
+.ui.items > .horizontal.item > .image + .content + .meta {
+ bottom: 7%;
+ right: 53%;
+ width: 44%;
+}
+
+.ui.horizontal.items > .item .avatar,
+.ui.items > .horizontal.item .avatar {
+ width: 11.5%;
+}
+
+.ui.items > .item .avatar {
+ max-width: 25px;
+}
+
+/*--------------
+ Item Count
+---------------*/
+
+.ui.one.items {
+ margin-right: -2%;
+ margin-left: -2%;
+}
+
+.ui.one.items > .item {
+ width: 100%;
+ margin-right: 2%;
+ margin-left: 2%;
+}
+
+.ui.two.items {
+ margin-right: -1%;
+ margin-left: -1%;
+}
+
+.ui.two.items > .item {
+ width: 48%;
+ margin-right: 1%;
+ margin-left: 1%;
+}
+
+.ui.two.items > .item:nth-child(2n+1) {
+ clear: right;
+}
+
+.ui.three.items {
+ margin-right: -1%;
+ margin-left: -1%;
+}
+
+.ui.three.items > .item {
+ width: 31.333%;
+ margin-right: 1%;
+ margin-left: 1%;
+}
+
+.ui.three.items > .item:nth-child(3n+1) {
+ clear: right;
+}
+
+.ui.four.items {
+ margin-right: -0.5%;
+ margin-left: -0.5%;
+}
+
+.ui.four.items > .item {
+ width: 24%;
+ margin-right: 0.5%;
+ margin-left: 0.5%;
+}
+
+.ui.four.items > .item:nth-child(4n+1) {
+ clear: right;
+}
+
+.ui.five.items {
+ margin-right: -0.5%;
+ margin-left: -0.5%;
+}
+
+.ui.five.items > .item {
+ width: 19%;
+ margin-right: 0.5%;
+ margin-left: 0.5%;
+}
+
+.ui.five.items > .item:nth-child(5n+1) {
+ clear: right;
+}
+
+.ui.six.items {
+ margin-right: -0.5%;
+ margin-left: -0.5%;
+}
+
+.ui.six.items > .item {
+ width: 15.66%;
+ margin-right: 0.5%;
+ margin-left: 0.5%;
+}
+
+.ui.six.items > .item:nth-child(6n+1) {
+ clear: right;
+}
+
+.ui.seven.items {
+ margin-right: -0.5%;
+ margin-left: -0.5%;
+}
+
+.ui.seven.items > .item {
+ width: 13.28%;
+ margin-right: 0.5%;
+ margin-left: 0.5%;
+ font-size: 11px;
+}
+
+.ui.seven.items > .item:nth-child(7n+1) {
+ clear: right;
+}
+
+.ui.eight.items {
+ margin-right: -0.25%;
+ margin-left: -0.25%;
+}
+
+.ui.eight.items > .item {
+ width: 12.0%;
+ margin-right: 0.25%;
+ margin-left: 0.25%;
+ font-size: 11px;
+}
+
+.ui.eight.items > .item:nth-child(8n+1) {
+ clear: right;
+}
+
+.ui.nine.items {
+ margin-right: -0.25%;
+ margin-left: -0.25%;
+}
+
+.ui.nine.items > .item {
+ width: 10.61%;
+ margin-right: 0.25%;
+ margin-left: 0.25%;
+ font-size: 10px;
+}
+
+.ui.nine.items > .item:nth-child(9n+1) {
+ clear: right;
+}
+
+.ui.ten.items {
+ margin-right: -0.2%;
+ margin-left: -0.2%;
+}
+
+.ui.ten.items > .item {
+ width: 9.6%;
+ margin-right: 0.2%;
+ margin-left: 0.2%;
+ font-size: 10px;
+}
+
+.ui.ten.items > .item:nth-child(10n+1) {
+ clear: right;
+}
+
+.ui.eleven.items {
+ margin-right: -0.2%;
+ margin-left: -0.2%;
+}
+
+.ui.eleven.items > .item {
+ width: 8.69%;
+ margin-right: 0.2%;
+ margin-left: 0.2%;
+ font-size: 9px;
+}
+
+.ui.eleven.items > .item:nth-child(11n+1) {
+ clear: right;
+}
+
+.ui.twelve.items {
+ margin-right: -0.1%;
+ margin-left: -0.1%;
+}
+
+.ui.twelve.items > .item {
+ width: 8.1333%;
+ margin-right: 0.1%;
+ margin-left: 0.1%;
+ font-size: 9px;
+}
+
+.ui.twelve.items > .item:nth-child(12n+1) {
+ clear: right;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/views/list.less b/css/semantic/rtl/less/views/list.less
new file mode 100644
index 0000000..d004e46
--- /dev/null
+++ b/css/semantic/rtl/less/views/list.less
@@ -0,0 +1,707 @@
+/*
+ * # Semantic List - Flat
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: April 26 2013
+ */
+
+/*******************************
+ List
+*******************************/
+
+ul.ui.list,
+ol.ui.list,
+.ui.list {
+ list-style-type: none;
+ margin: 1em 0em;
+ padding: 0em;
+}
+
+ul.ui.list ul,
+ol.ui.list ol,
+.ui.list .list {
+ margin: 0em;
+ padding: 0.5em 1em 0.5em 0em;
+}
+
+ul.ui.list:first-child,
+ol.ui.list:first-child,
+.ui.list:first-child {
+ margin-top: 0em;
+}
+
+ul.ui.list:last-child,
+ol.ui.list:last-child,
+.ui.list:last-child {
+ margin-bottom: 0em;
+}
+
+/*******************************
+ Content
+*******************************/
+
+/* List Item */
+
+ul.ui.list li,
+ol.ui.list li,
+.ui.list .item {
+ display: list-item;
+ list-style-type: none;
+ list-style-position: inside;
+ padding: 0.3em 0em;
+ line-height: 1.2em;
+}
+
+.ui.list .item:after {
+ content: '';
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+/* Sub-List */
+
+.ui.list .list {
+ clear: both;
+}
+
+/* Icon */
+
+.ui.list .item > .icon {
+ display: block;
+ float: right;
+ margin: 0em 0em 0em 1em;
+ padding: 0.1em 0em 0em 0em;
+}
+
+.ui.list .item > .icon:only-child {
+ display: inline-block;
+}
+
+.ui.horizontal.list .item > .icon {
+ margin: 0em;
+ padding: 0em 0em 0em 0.25em;
+}
+
+.ui.horizontal.list .item > .icon,
+.ui.horizontal.list .item > .icon + .content {
+ float: none;
+ display: inline-block;
+}
+
+/* Image */
+
+.ui.list .item > img {
+ display: block;
+ float: right;
+ margin-left: 1em;
+ vertical-align: middle;
+}
+
+/* Content */
+
+.ui.list .item > .content {
+ display: inline-block;
+ vertical-align: middle;
+ line-height: 1.2em;
+}
+
+.ui.list .item > .icon + .content {
+ display: table-cell;
+ vertical-align: top;
+}
+
+/* Link */
+
+.ui.list a {
+ cursor: pointer;
+}
+
+.ui.list a .icon {
+ color: rgba(0, 0, 0, 0.6);
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+/* Header */
+
+.ui.list .header {
+ font-weight: bold;
+}
+
+.ui.list .description {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+/* Floated Content */
+
+.ui.list .item > .left.floated {
+ margin-left: 1em;
+ float: right;
+}
+
+.ui.list .item > .right.floated {
+ margin-right: 1em;
+ float: left;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Horizontal
+--------------------*/
+
+.ui.horizontal.list {
+ display: inline-block;
+ font-size: 0em;
+}
+
+.ui.horizontal.list > .item {
+ display: inline-block;
+ margin-right: 1em;
+ font-size: 1rem;
+}
+
+.ui.horizontal.list > .item:first-child {
+ margin-right: 0em;
+}
+
+.ui.horizontal.list .list {
+ padding-right: 0em;
+ padding-bottom: 0em;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*-------------------
+ Hover
+--------------------*/
+
+.ui.list a:hover .icon {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.inverted.list a .icon {
+ color: rgba(255, 255, 255, 0.6);
+}
+
+.ui.inverted.list .description {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.link.list .item {
+ color: rgba(255, 255, 255, 0.4);
+}
+
+/*-------------------
+ Link
+--------------------*/
+
+.ui.link.list .item {
+ color: rgba(0, 0, 0, 0.3);
+}
+
+.ui.link.list a.item,
+.ui.link.list .item a {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.link.list a.item:hover,
+.ui.link.list .item a:hover {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.link.list a.item:active,
+.ui.link.list .item a:active {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.link.list a.active.item,
+.ui.link.list .active.item a {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/* Inverted */
+
+.ui.inverted.link.list a.item,
+.ui.inverted.link.list .item a {
+ color: rgba(255, 255, 255, 0.6);
+}
+
+.ui.inverted.link.list a.item:hover,
+.ui.inverted.link.list .item a:hover {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.link.list a.item:active,
+.ui.inverted.link.list .item a:active {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.inverted.link.list a.active.item,
+.ui.inverted.link.list .active.item a {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+/*-------------------
+ Selection
+--------------------*/
+
+.ui.selection.list .item {
+ cursor: pointer;
+ color: rgba(0, 0, 0, 0.4);
+ padding: 0.5em;
+ -webkit-transition: 0.2s color ease,
+ 0.2s padding-right ease,
+ 0.2s background-color ease;
+ -moz-transition: 0.2s color ease,
+ 0.2s padding-right ease,
+ 0.2s background-color ease;
+ transition: 0.2s color ease,
+ 0.2s padding-right ease,
+ 0.2s background-color ease;
+}
+
+.ui.selection.list .item:hover {
+ background-color: rgba(0, 0, 0, 0.02);
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.selection.list .item:active {
+ background-color: rgba(0, 0, 0, 0.05);
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.selection.list .item.active {
+ background-color: rgba(0, 0, 0, 0.04);
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.animated.list .item {
+ -webkit-transition: 0.2s color ease,
+ 0.2s padding-right ease,
+ 0.2s background-color ease;
+ -moz-transition: 0.2s color ease,
+ 0.2s padding-right ease,
+ 0.2s background-color ease;
+ transition: 0.2s color ease,
+ 0.2s padding-right ease,
+ 0.2s background-color ease;
+}
+
+.ui.animated.list:not(.horizontal) .item:hover {
+ padding-right: 1em;
+}
+
+.ui.animated.list:not(.horizontal) .item:hover .item:hover {
+ padding-right: 0.5em;
+}
+
+/* Inverted */
+
+.ui.inverted.selection.list .item {
+ color: rgba(255, 255, 255, 0.6);
+}
+
+.ui.inverted.selection.list .item:hover {
+ background-color: rgba(255, 255, 255, 0.04);
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.selection.list .item:active {
+ background-color: rgba(255, 255, 255, 0.1);
+ color: rgba(255, 255, 255, 0.7);
+}
+
+.ui.inverted.selection.list .item.active {
+ background-color: rgba(255, 255, 255, 0.08);
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Bulleted
+--------------------*/
+
+ul.ui.list,
+.ui.bulleted.list {
+ margin-right: 1.5em;
+}
+
+ul.ui.list li,
+.ui.bulleted.list .item {
+ position: relative;
+}
+
+ul.ui.list li:before,
+.ui.bulleted.list .item:before {
+ position: absolute;
+ right: -1.5em;
+ content: '•';
+}
+
+ul.ui.list ul,
+.ui.bulleted.list .list {
+ padding-right: 1.5em;
+}
+
+/* Horizontal Bulleted */
+
+ul.ui.horizontal.bulleted.list,
+.ui.horizontal.bulleted.list {
+ margin-right: 0em;
+}
+
+ul.ui.horizontal.bulleted.list li,
+.ui.horizontal.bulleted.list .item {
+ margin-right: 1.5em;
+}
+
+ul.ui.horizontal.bulleted.list li:before,
+.ui.horizontal.bulleted.list .item:before {
+ right: -0.9em;
+}
+
+ul.ui.horizontal.bulleted.list li:first-child,
+.ui.horizontal.bulleted.list .item:first-child {
+ margin-right: 0em;
+}
+
+ul.ui.horizontal.bulleted.list li:first-child::before,
+.ui.horizontal.bulleted.list .item:first-child::before {
+ display: none;
+}
+
+/*-------------------
+ Ordered
+--------------------*/
+
+ol.ui.list,
+.ui.ordered.list {
+ counter-reset: ordered;
+ margin-right: 2em;
+ list-style-type: none;
+}
+
+ol.ui.list li,
+.ui.ordered.list .item {
+ list-style-type: none;
+ position: relative;
+}
+
+ol.ui.list li:before,
+.ui.ordered.list .item:before {
+ position: absolute;
+ right: -2em;
+ counter-increment: ordered;
+ content: counters(ordered, ".");
+ text-align: left;
+ vertical-align: top;
+ opacity: 0.75;
+}
+
+ol.ui.list ol,
+.ui.ordered.list .list {
+ counter-reset: ordered;
+ padding-right: 2.5em;
+}
+
+ol.ui.list ol li:before,
+.ui.ordered.list .list .item:before {
+ right: -2.5em;
+}
+
+/* Horizontal Ordered */
+
+ol.ui.horizontal.list,
+.ui.ordered.horizontal.list {
+ margin-right: 0em;
+}
+
+ol.ui.horizontal.list li:before,
+.ui.ordered.horizontal.list .item:before {
+ position: static;
+ right: 0em;
+ margin: 0em 0em 0em 0.5em;
+}
+
+/*-------------------
+ Divided
+--------------------*/
+
+.ui.divided.list > .item,
+.ui.divided.list:not(.horizontal) > .list {
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ padding-right: 0.5em;
+ padding-left: 0.5em;
+}
+
+.ui.divided.list .item .menu .item {
+ border-width: 0px;
+}
+
+.ui.divided.list .item:first-child {
+ border-top-width: 0px;
+}
+
+/* Sub Menu */
+
+.ui.divided.list:not(.horizontal) .list {
+ margin-right: -0.5em;
+ margin-left: -0.5em;
+}
+
+.ui.divided.list:not(.horizontal) .list .item {
+ padding-right: 1em;
+ padding-left: 1em;
+}
+
+.ui.divided.list:not(.horizontal) .list .item:first-child {
+ border-top-width: 1px;
+}
+
+/* Divided bulleted */
+
+.ui.divided.bulleted.list {
+ margin-right: 0em;
+}
+
+.ui.divided.bulleted.list .item {
+ padding-right: 1.5em;
+}
+
+.ui.divided.bulleted.list .item:before {
+ right: 0.5em;
+}
+
+/* Divided ordered */
+
+.ui.divided.ordered.list {
+ margin-right: 0em;
+}
+
+.ui.divided.ordered.list > .item {
+ padding-right: 2em;
+ padding-left: 2em;
+}
+
+.ui.divided.ordered.list > .item:before {
+ right: 0.5em;
+}
+
+.ui.divided.ordered.list .item .list {
+ margin-right: -2em;
+ margin-left: -2em;
+}
+
+/* Divided horizontal */
+
+.ui.divided.horizontal.list {
+ margin-right: 0em;
+}
+
+.ui.divided.horizontal.list > .item {
+ border-top: none;
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
+ margin: 0em;
+ padding-right: 0.75em;
+ padding-left: 0.75em;
+ line-height: 0.6em;
+}
+
+.ui.horizontal.divided.list > .item:first-child {
+ border-right: none;
+ padding-right: 0em;
+}
+
+/* Inverted */
+
+.ui.divided.inverted.list > .item,
+.ui.divided.inverted.list > .list {
+ border-color: rgba(255, 255, 255, 0.2);
+}
+
+.ui.divided.inverted.horizontal.list .item {
+ border-color: rgba(255, 255, 255, 0.2);
+}
+
+/*-------------------
+ Celled
+--------------------*/
+
+.ui.celled.list > .item,
+.ui.celled.list > .list {
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ padding-right: 0.5em;
+ padding-left: 0.5em;
+}
+
+.ui.celled.list > .item:last-child {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* Sub Menu */
+
+.ui.celled.list .item .list {
+ margin-right: -0.5em;
+ margin-left: -0.5em;
+}
+
+.ui.celled.list .item .list .item {
+ border-width: 0px;
+}
+
+.ui.celled.list .list .item:first-child {
+ border-top-width: 0px;
+}
+
+/* Celled Bulleted */
+
+.ui.celled.bulleted.list {
+ margin-right: 0em;
+}
+
+.ui.celled.bulleted.list > .item {
+ padding-right: 1.5em;
+}
+
+.ui.celled.bulleted.list > .item:before {
+ right: 0.5em;
+}
+
+/* Celled Ordered */
+
+.ui.celled.ordered.list {
+ margin-right: 0em;
+}
+
+.ui.celled.ordered.list .item {
+ padding-right: 2em;
+ padding-left: 2em;
+}
+
+.ui.celled.ordered.list .item:before {
+ right: 0.5em;
+}
+
+.ui.celled.ordered.list .item .list {
+ margin-right: -2em;
+ margin-left: -2em;
+}
+
+/* Celled Horizontal */
+
+.ui.horizontal.celled.list {
+ margin-right: 0em;
+}
+
+.ui.horizontal.celled.list .item {
+ border-top: none;
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
+ margin: 0em;
+ padding-right: 0.75em;
+ padding-left: 0.75em;
+ line-height: 0.6em;
+}
+
+.ui.horizontal.celled.list .item:last-child {
+ border-bottom: none;
+ border-left: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* Inverted */
+
+.ui.celled.inverted.list > .item,
+.ui.celled.inverted.list > .list {
+ border-color: rgba(255, 255, 255, 0.2);
+}
+
+.ui.celled.inverted.horizontal.list .item {
+ border-color: rgba(255, 255, 255, 0.2);
+}
+
+/*-------------------
+ Relaxed
+--------------------*/
+
+.ui.relaxed.list:not(.horizontal) .item {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+}
+
+.ui.relaxed.list .header {
+ margin-bottom: 0.25em;
+}
+
+.ui.horizontal.relaxed.list .item {
+ padding-right: 1.25em;
+ padding-left: 1.25em;
+}
+
+.ui.very.relaxed.list:not(.horizontal) .item {
+ padding-top: 1em;
+ padding-bottom: 1em;
+}
+
+.ui.very.relaxed.list .header {
+ margin-bottom: 0.5em;
+}
+
+.ui.horizontal.very.relaxed.list .item {
+ padding-right: 2em;
+ padding-left: 2em;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+.ui.mini.list .item {
+ font-size: 0.7rem;
+}
+
+.ui.tiny.list .item {
+ font-size: 0.8125rem;
+}
+
+.ui.small.list .item {
+ font-size: 0.875rem;
+}
+
+.ui.list .item {
+ font-size: 1em;
+}
+
+.ui.large.list .item {
+ font-size: 1.125rem;
+}
+
+.ui.big.list .item {
+ font-size: 1.25rem;
+}
+
+.ui.huge.list .item {
+ font-size: 1.375rem;
+}
+
+.ui.massive.list .item {
+ font-size: 1.5rem;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/less/views/statistic.less b/css/semantic/rtl/less/views/statistic.less
new file mode 100644
index 0000000..7d76c16
--- /dev/null
+++ b/css/semantic/rtl/less/views/statistic.less
@@ -0,0 +1,32 @@
+/*
+ * # Statistic
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: Aug 20, 2013
+ */
+
+/*******************************
+ Statistic
+*******************************/
+
+.ui.statistic {
+ text-align: center;
+}
+
+/*******************************
+ Content
+*******************************/
+
+.ui.statistic > .number {
+ font-size: 4em;
+ font-weight: bold;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.statistic > .description {
+ opacity: 0.8;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/collections/breadcrumb.min.css b/css/semantic/rtl/minified/collections/breadcrumb.min.css
new file mode 100644
index 0000000..806b13f
--- /dev/null
+++ b/css/semantic/rtl/minified/collections/breadcrumb.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.breadcrumb{margin:1em 0;display:inline-block;vertical-align:middle}.ui.breadcrumb:first-child{margin-top:0}.ui.breadcrumb:last-child{margin-bottom:0}.ui.breadcrumb .divider{display:inline-block;opacity:.5;margin:0 .15em;font-size:1em;color:rgba(0,0,0,.3)}.ui.breadcrumb a.section{cursor:pointer}.ui.breadcrumb .section{display:inline-block;margin:0;padding:0}.ui.breadcrumb.segment{display:inline-block;padding:.5em 1em}.ui.breadcrumb .active.section{font-weight:700}.ui.small.breadcrumb{font-size:.75em}.ui.large.breadcrumb{font-size:1.1em}.ui.huge.breadcrumb{font-size:1.3em}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/collections/form.min.css b/css/semantic/rtl/minified/collections/form.min.css
new file mode 100644
index 0000000..34a0205
--- /dev/null
+++ b/css/semantic/rtl/minified/collections/form.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.form{position:relative;max-width:100%}.ui.form :first-child{margin-top:0}.ui.form :last-child{margin-bottom:0}.ui.form>p{margin:1em 0}.ui.form .field{clear:both;margin:0 0 1em}.ui.form .field>label{margin:0 0 .3em;display:block;color:#555;font-size:.875em}.ui.form textarea,.ui.form input[type=text],.ui.form input[type=email],.ui.form input[type=date],.ui.form input[type=password],.ui.form input[type=number],.ui.form input[type=url],.ui.form input[type=tel],.ui.form .ui.input{width:100%}.ui.form textarea,.ui.form input[type=text],.ui.form input[type=email],.ui.form input[type=date],.ui.form input[type=password],.ui.form input[type=number],.ui.form input[type=url],.ui.form input[type=tel]{margin:0;padding:.65em 1em;font-size:1em;background-color:#FFF;border:1px solid rgba(0,0,0,.15);outline:0;color:rgba(0,0,0,.7);border-radius:.3125em;-webkit-transition:background-color .3s ease-out,-webkit-box-shadow .2s ease,border-color .2s ease;-moz-transition:background-color .3s ease-out,box-shadow .2s ease,border-color .2s ease;transition:background-color .3s ease-out,box-shadow .2s ease,border-color .2s ease;-webkit-box-shadow:0 0 rgba(0,0,0,.3) inset;box-shadow:0 0 rgba(0,0,0,.3) inset;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.textarea,.ui.form textarea{line-height:1.33;min-height:8em;height:12em;max-height:24em;resize:vertical}.ui.form textarea,.ui.form input[type=checkbox]{vertical-align:top}.ui.form .divider{clear:both;margin:1em 0}.ui.form .info.message,.ui.form .warning.message,.ui.form .error.message{display:none}.ui.form .message:first-child{margin-top:0}.ui.form .field .prompt.label{white-space:nowrap}.ui.form .inline.field .prompt{margin-top:0;margin-right:1em}.ui.form .inline.field .prompt:before{margin-top:-.3em;bottom:auto;left:auto;top:50%;right:0}.ui.form input[type=text]:focus,.ui.form input[type=email]:focus,.ui.form input[type=date]:focus,.ui.form input[type=password]:focus,.ui.form input[type=number]:focus,.ui.form input[type=url]:focus,.ui.form input[type=tel]:focus,.ui.form textarea:focus{color:rgba(0,0,0,.85);border-color:rgba(0,0,0,.2);border-bottom-right-radius:0;border-top-right-radius:0;-webkit-appearance:none;-webkit-box-shadow:.3em 0 0 0 rgba(0,0,0,.2) inset;box-shadow:.3em 0 0 0 rgba(0,0,0,.2) inset}.ui.form.warning .warning.message{display:block}.ui.form.error .error.message{display:block}.ui.form .fields.error .field label,.ui.form .field.error label,.ui.form .fields.error .field .input,.ui.form .field.error .input{color:#D95C5C}.ui.form .fields.error .field .corner.label,.ui.form .field.error .corner.label{border-color:#D95C5C;color:#FFF}.ui.form .fields.error .field textarea,.ui.form .fields.error .field input[type=text],.ui.form .fields.error .field input[type=email],.ui.form .fields.error .field input[type=date],.ui.form .fields.error .field input[type=password],.ui.form .fields.error .field input[type=number],.ui.form .fields.error .field input[type=url],.ui.form .fields.error .field input[type=tel],.ui.form .field.error textarea,.ui.form .field.error input[type=text],.ui.form .field.error input[type=email],.ui.form .field.error input[type=date],.ui.form .field.error input[type=password],.ui.form .field.error input[type=number],.ui.form .field.error input[type=url],.ui.form .field.error input[type=tel]{background-color:snow;border-color:#E7BEBE;border-right:0;color:#D95C5C;padding-right:1.2em;border-bottom-right-radius:0;border-top-right-radius:0;-webkit-box-shadow:.3em 0 0 0 #D95C5C inset;box-shadow:.3em 0 0 0 #D95C5C inset}.ui.form .field.error textarea:focus,.ui.form .field.error input[type=text]:focus,.ui.form .field.error input[type=email]:focus,.ui.form .field.error input[type=date]:focus,.ui.form .field.error input[type=password]:focus,.ui.form .field.error input[type=number]:focus,.ui.form .field.error input[type=url]:focus,.ui.form .field.error input[type=tel]:focus{border-color:#ff5050;color:#ff5050;-webkit-appearance:none;-webkit-box-shadow:.3em 0 0 0 #FF5050 inset;box-shadow:.3em 0 0 0 #FF5050 inset}.ui.form .fields.error .field .ui.dropdown,.ui.form .fields.error .field .ui.dropdown .item,.ui.form .field.error .ui.dropdown,.ui.form .field.error .ui.dropdown .item{background-color:snow;color:#D95C5C}.ui.form .fields.error .field .ui.dropdown,.ui.form .field.error .ui.dropdown{-webkit-box-shadow:0 0 0 1px #E7BEBE!important;box-shadow:0 0 0 1px #E7BEBE!important}.ui.form .fields.error .field .ui.dropdown:hover,.ui.form .field.error .ui.dropdown:hover{-webkit-box-shadow:0 0 0 1px #E7BEBE!important;box-shadow:0 0 0 1px #E7BEBE!important}.ui.form .fields.error .field .ui.dropdown:hover .menu,.ui.form .field.error .ui.dropdown:hover .menu{-webkit-box-shadow:0 1px 0 1px #E7BEBE;box-shadow:0 1px 0 1px #E7BEBE}.ui.form .fields.error .field .ui.dropdown .menu .item:hover,.ui.form .field.error .ui.dropdown .menu .item:hover{background-color:#FFF2F2}.ui.form .fields.error .field .ui.dropdown .menu .active.item,.ui.form .field.error .ui.dropdown .menu .active.item{background-color:#FDCFCF!important}.ui.form ::-webkit-input-placeholder{color:#AAA}.ui.form ::-moz-placeholder{color:#AAA}.ui.form :focus::-webkit-input-placeholder{color:#999}.ui.form :focus::-moz-placeholder{color:#999}.ui.form .error ::-webkit-input-placeholder{color:rgba(255,80,80,.4)}.ui.form .error ::-moz-placeholder{color:rgba(255,80,80,.4)}.ui.form .error :focus::-webkit-input-placeholder{color:rgba(255,80,80,.7)}.ui.form .error :focus::-moz-placeholder{color:rgba(255,80,80,.7)}.ui.form .field :disabled,.ui.form .field.disabled{opacity:.5}.ui.form .field.disabled label{opacity:.5}.ui.form .field.disabled :disabled{opacity:1}.ui.form.loading{position:relative}.ui.form.loading:after{position:absolute;top:0;right:0;content:'';width:100%;height:100%;background:rgba(255,255,255,.8) url(../images/loader-large.gif) no-repeat 50% 50%;visibility:visible}.ui.form.fluid{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.form input.attached{width:auto}.ui.form .date.field>label{position:relative}.ui.form .date.field>label:after{position:absolute;top:2em;left:.5em;font-family:Icons;content:'\f133';font-size:1.2em;font-weight:400;color:#CCC}.ui.inverted.form label{color:#FFF}.ui.inverted.form .field.error textarea,.ui.inverted.form .field.error input[type=text],.ui.inverted.form .field.error input[type=email],.ui.inverted.form .field.error input[type=date],.ui.inverted.form .field.error input[type=password],.ui.inverted.form .field.error input[type=number],.ui.inverted.form .field.error input[type=url],.ui.inverted.form .field.error input[type=tel]{background-color:#FCC}.ui.inverted.form .ui.checkbox label{color:rgba(255,255,255,.8)}.ui.inverted.form .ui.checkbox label:hover,.ui.inverted.form .ui.checkbox .box:hover{color:#FFF}.ui.form .grouped.fields{margin:0 0 1em}.ui.form .grouped.fields .field{display:block;float:none;margin:.5em 0;padding:0}.ui.form .fields{clear:both}.ui.form .fields:after{content:' ';display:block;clear:both;visibility:hidden;line-height:0;height:0}.ui.form .fields>.field{clear:none;float:right;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.form .fields>.field:first-child{border-right:0;-webkit-box-shadow:none;box-shadow:none}.ui.form .two.fields>.fields,.ui.form .two.fields>.field{width:50%;padding-right:1%;padding-left:1%}.ui.form .three.fields>.fields,.ui.form .three.fields>.field{width:33.333%;padding-right:1%;padding-left:1%}.ui.form .four.fields>.fields,.ui.form .four.fields>.field{width:25%;padding-right:1%;padding-left:1%}.ui.form .five.fields>.fields,.ui.form .five.fields>.field{width:20%;padding-right:1%;padding-left:1%}@media only screen and (max-width:767px){.ui.form .two.fields>.fields,.ui.form .two.fields>.field,.ui.form .three.fields>.fields,.ui.form .three.fields>.field,.ui.form .four.fields>.fields,.ui.form .four.fields>.field,.ui.form .five.fields>.fields,.ui.form .five.fields>.field{width:100%;padding-right:0;padding-left:0}}.ui.form .fields .field:first-child{padding-right:0}.ui.form .fields .field:last-child{padding-left:0}.ui.form .inline.fields .field{min-height:1.3em;margin-left:.5em}.ui.form .inline.fields .field>label,.ui.form .inline.fields .field>p,.ui.form .inline.fields .field>input,.ui.form .inline.field>label,.ui.form .inline.field>p,.ui.form .inline.field>input{display:inline-block;width:auto;margin-top:0;margin-bottom:0;vertical-align:middle;font-size:1em}.ui.form .inline.fields .field>input,.ui.form .inline.field>input{font-size:.875em}.ui.form .inline.fields .field>:first-child,.ui.form .inline.field>:first-child{margin:0 0 0 .5em}.ui.form .inline.fields .field>:only-child,.ui.form .inline.field>:only-child{margin:0}.ui.small.form{font-size:.875em}.ui.small.form textarea,.ui.small.form input[type=text],.ui.small.form input[type=email],.ui.small.form input[type=date],.ui.small.form input[type=password],.ui.small.form input[type=number],.ui.small.form input[type=url],.ui.small.form input[type=tel],.ui.small.form label{font-size:1em}.ui.large.form{font-size:1.125em}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/collections/grid.min.css b/css/semantic/rtl/minified/collections/grid.min.css
new file mode 100644
index 0000000..1887ba7
--- /dev/null
+++ b/css/semantic/rtl/minified/collections/grid.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.grid{display:block;text-align:right;font-size:0;margin:0 -1.5%;padding:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body>.ui.grid{margin-right:0!important;margin-left:0!important}.ui.grid:after,.ui.row:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui.grid>.column,.ui.grid>.row>.column{display:inline-block;text-align:right;font-size:1rem;width:6.25%;padding-right:1.5%;padding-left:1.5%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;vertical-align:top}.ui.grid>.column{margin-top:1rem;margin-bottom:1rem}.ui.grid>.row{display:block;width:100%!important;margin-top:1.5%;padding:1rem 0 0;font-size:0rem}.ui.grid>.row:first-child{padding-top:0rem;margin-top:0rem}.ui.grid>.row>img,.ui.grid>.row>.column>img{max-width:100%}.ui.grid .column>.ui.segment:only-child{margin:0}.ui.page.grid{min-width:320px;margin-right:0;margin-left:0}@media only screen and (max-width:991px){.ui.page.grid{padding:0 4%}}@media only screen and (min-width:992px){.ui.page.grid{padding:0 8%}}@media only screen and (min-width:1500px){.ui.page.grid{padding:0 13%}}@media only screen and (min-width:1750px){.ui.page.grid{padding:0 18%}}@media only screen and (min-width:2000px){.ui.page.grid{padding:0 23%}}.ui.grid>.row>.one.wide.column,.ui.grid>.column.row>.one.wide.column,.ui.grid>.one.wide.column,.ui.column.grid>.one.wide.column{width:6.25%}.ui.grid>.row>.two.wide.column,.ui.grid>.column.row>.two.wide.column,.ui.grid>.two.wide.column,.ui.column.grid>.two.wide.column{width:12.5%}.ui.grid>.row>.three.wide.column,.ui.grid>.column.row>.three.wide.column,.ui.grid>.three.wide.column,.ui.column.grid>.three.wide.column{width:18.75%}.ui.grid>.row>.four.wide.column,.ui.grid>.column.row>.four.wide.column,.ui.grid>.four.wide.column,.ui.column.grid>.four.wide.column{width:25%}.ui.grid>.row>.five.wide.column,.ui.grid>.column.row>.five.wide.column,.ui.grid>.five.wide.column,.ui.column.grid>.five.wide.column{width:31.25%}.ui.grid>.row>.six.wide.column,.ui.grid>.column.row>.six.wide.column,.ui.grid>.six.wide.column,.ui.column.grid>.six.wide.column{width:37.5%}.ui.grid>.row>.seven.wide.column,.ui.grid>.column.row>.seven.wide.column,.ui.grid>.seven.wide.column,.ui.column.grid>.seven.wide.column{width:43.75%}.ui.grid>.row>.eight.wide.column,.ui.grid>.column.row>.eight.wide.column,.ui.grid>.eight.wide.column,.ui.column.grid>.eight.wide.column{width:50%}.ui.grid>.row>.nine.wide.column,.ui.grid>.column.row>.nine.wide.column,.ui.grid>.nine.wide.column,.ui.column.grid>.nine.wide.column{width:56.25%}.ui.grid>.row>.ten.wide.column,.ui.grid>.column.row>.ten.wide.column,.ui.grid>.ten.wide.column,.ui.column.grid>.ten.wide.column{width:62.5%}.ui.grid>.row>.eleven.wide.column,.ui.grid>.column.row>.eleven.wide.column,.ui.grid>.eleven.wide.column,.ui.column.grid>.eleven.wide.column{width:68.75%}.ui.grid>.row>.twelve.wide.column,.ui.grid>.column.row>.twelve.wide.column,.ui.grid>.twelve.wide.column,.ui.column.grid>.twelve.wide.column{width:75%}.ui.grid>.row>.thirteen.wide.column,.ui.grid>.column.row>.thirteen.wide.column,.ui.grid>.thirteen.wide.column,.ui.column.grid>.thirteen.wide.column{width:81.25%}.ui.grid>.row>.fourteen.wide.column,.ui.grid>.column.row>.fourteen.wide.column,.ui.grid>.fourteen.wide.column,.ui.column.grid>.fourteen.wide.column{width:87.5%}.ui.grid>.row>.fifteen.wide.column,.ui.grid>.column.row>.fifteen.wide.column,.ui.grid>.fifteen.wide.column,.ui.column.grid>.fifteen.wide.column{width:93.75%}.ui.grid>.row>.sixteen.wide.column,.ui.grid>.column.row>.sixteen.wide.column,.ui.grid>.sixteen.wide.column,.ui.column.grid>.sixteen.wide.column{width:100%}.ui.one.column.grid>.row>.column,.ui.one.column.grid>.column,.ui.grid>.one.column.row>.column{width:100%}.ui.two.column.grid>.row>.column,.ui.two.column.grid>.column,.ui.grid>.two.column.row>.column{width:50%}.ui.three.column.grid>.row>.column,.ui.three.column.grid>.column,.ui.grid>.three.column.row>.column{width:33.3333%}.ui.four.column.grid>.row>.column,.ui.four.column.grid>.column,.ui.grid>.four.column.row>.column{width:25%}.ui.five.column.grid>.row>.column,.ui.five.column.grid>.column,.ui.grid>.five.column.row>.column{width:20%}.ui.six.column.grid>.row>.column,.ui.six.column.grid>.column,.ui.grid>.six.column.row>.column{width:16.66667%}.ui.seven.column.grid>.row>.column,.ui.seven.column.grid>.column,.ui.grid>.seven.column.row>.column{width:14.2857%}.ui.eight.column.grid>.row>.column,.ui.eight.column.grid>.column,.ui.grid>.eight.column.row>.column{width:12.5%}.ui.nine.column.grid>.row>.column,.ui.nine.column.grid>.column,.ui.grid>.nine.column.row>.column{width:11.1111%}.ui.ten.column.grid>.row>.column,.ui.ten.column.grid>.column,.ui.grid>.ten.column.row>.column{width:10%}.ui.eleven.column.grid>.row>.column,.ui.eleven.column.grid>.column,.ui.grid>.eleven.column.row>.column{width:9.0909%}.ui.twelve.column.grid>.row>.column,.ui.twelve.column.grid>.column,.ui.grid>.twelve.column.row>.column{width:8.3333%}.ui.thirteen.column.grid>.row>.column,.ui.thirteen.column.grid>.column,.ui.grid>.thirteen.column.row>.column{width:7.6923%}.ui.fourteen.column.grid>.row>.column,.ui.fourteen.column.grid>.column,.ui.grid>.fourteen.column.row>.column{width:7.1428%}.ui.fifteen.column.grid>.row>.column,.ui.fifteen.column.grid>.column,.ui.grid>.fifteen.column.row>.column{width:6.6666%}.ui.sixteen.column.grid>.row>.column,.ui.sixteen.column.grid>.column,.ui.grid>.sixteen.column.row>.column{width:6.25%}.ui.grid>.column:only-child,.ui.grid>.row>.column:only-child{width:100%}.ui.relaxed.grid{margin:0 -2.5%}.ui.relaxed.grid>.column,.ui.relaxed.grid>.row>.column{padding-right:2.5%;padding-left:2.5%}.ui.grid .left.floated.column{float:right}.ui.grid .right.floated.column{float:left}.ui.divided.grid,.ui.divided.grid>.row{display:table;width:100%;margin-right:0!important;margin-left:0!important}.ui.divided.grid>.column:not(.row),.ui.divided.grid>.row>.column{display:table-cell;-webkit-box-shadow:-1px 0 0 0 rgba(0,0,0,.1),-2px 0 0 0 rgba(255,255,255,.8);box-shadow:-1px 0 0 0 rgba(0,0,0,.1),-2px 0 0 0 rgba(255,255,255,.8)}.ui.divided.grid>.column.row{display:table}.ui.divided.grid>.column:first-child,.ui.divided.grid>.row>.column:first-child{-webkit-box-shadow:none;box-shadow:none}.ui.vertically.divided.grid>.row{-webkit-box-shadow:0 -1px 0 0 rgba(0,0,0,.1),0 -2px 0 0 rgba(255,255,255,.8)!important;box-shadow:0 -1px 0 0 rgba(0,0,0,.1),0 -2px 0 0 rgba(255,255,255,.8)!important}.ui.vertically.divided.grid>.row>.column,.ui.vertically.divided.grid>.column:not(.row),.ui.vertically.divided.grid>.row:first-child{-webkit-box-shadow:none!important;box-shadow:none!important}.ui.celled.grid{display:table;width:100%;margin-right:0!important;margin-left:0!important;-webkit-box-shadow:0 0 0 1px #DFDFDF;box-shadow:0 0 0 1px #DFDFDF}.ui.celled.grid>.row,.ui.celled.grid>.column.row,.ui.celled.grid>.column.row:first-child{display:table;width:100%;margin-top:0;padding-top:0;-webkit-box-shadow:0 -1px 0 0 #dfdfdf;box-shadow:0 -1px 0 0 #dfdfdf}.ui.celled.grid>.column:not(.row),.ui.celled.grid>.row>.column{display:table-cell;padding:.75em;-webkit-box-shadow:-1px 0 0 0 #dfdfdf;box-shadow:-1px 0 0 0 #dfdfdf}.ui.celled.grid>.column:first-child,.ui.celled.grid>.row>.column:first-child{-webkit-box-shadow:none;box-shadow:none}.ui.celled.page.grid{-webkit-box-shadow:none;box-shadow:none}.ui.left.aligned.grid,.ui.left.aligned.grid>.row>.column,.ui.left.aligned.grid>.column,.ui.grid .left.aligned.column,.ui.grid>.left.aligned.row>.column{text-align:right}.ui.center.aligned.grid,.ui.center.aligned.grid>.row>.column,.ui.center.aligned.grid>.column,.ui.grid .center.aligned.column,.ui.grid>.center.aligned.row>.column{text-align:center}.ui.right.aligned.grid,.ui.right.aligned.grid>.row>.column,.ui.right.aligned.grid>.column,.ui.grid .right.aligned.column,.ui.grid>.right.aligned.row>.column{text-align:left}.ui.justified.grid,.ui.justified.grid>.row>.column,.ui.justified.grid>.column,.ui.grid .justified.column,.ui.grid>.justified.row>.column{text-align:justify;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.ui.top.aligned.grid,.ui.top.aligned.grid>.row>.column,.ui.top.aligned.grid>.column,.ui.grid .top.aligned.column,.ui.grid>.top.aligned.row>.column{vertical-align:top}.ui.middle.aligned.grid,.ui.middle.aligned.grid>.row>.column,.ui.middle.aligned.grid>.column,.ui.grid .middle.aligned.column,.ui.grid>.middle.aligned.row>.column{vertical-align:middle}.ui.bottom.aligned.grid,.ui.bottom.aligned.grid>.row>.column,.ui.bottom.aligned.grid>.column,.ui.grid .bottom.aligned.column,.ui.grid>.bottom.aligned.row>.column{vertical-align:bottom}.ui.grid>.equal.height.row{display:table;width:100%}.ui.grid>.equal.height.row>.column{display:table-cell}@media only screen and (max-width:767px){.ui.mobile.only.grid,.ui.grid>.mobile.only.row{display:block!important}.ui.grid>.row>.mobile.only.column{display:inline-block!important}.ui.divided.mobile.only.grid,.ui.celled.mobile.only.grid,.ui.divided.mobile.only.grid .row,.ui.celled.mobile.only.grid .row,.ui.divided.grid .mobile.only.row,.ui.celled.grid .mobile.only.row,.ui.grid .mobile.only.equal.height.row,.ui.mobile.only.grid .equal.height.row{display:table!important}.ui.divided.grid>.row>.mobile.only.column,.ui.celled.grid>.row>.mobile.only.column,.ui.divided.mobile.only.grid>.row>.column,.ui.celled.mobile.only.grid>.row>.column,.ui.divided.mobile.only.grid>.column,.ui.celled.mobile.only.grid>.column{display:table-cell!important}}@media only screen and (min-width:768px){.ui.mobile.only.grid,.ui.grid>.mobile.only.row,.ui.grid>.mobile.only.column,.ui.grid>.row>.mobile.only.column{display:none}}@media only screen and (min-width:768px) and (max-width:991px){.ui.tablet.only.grid,.ui.grid>.tablet.only.row{display:block!important}.ui.grid>.row>.tablet.only.column{display:inline-block!important}.ui.divided.tablet.only.grid,.ui.celled.tablet.only.grid,.ui.divided.tablet.only.grid .row,.ui.celled.tablet.only.grid .row,.ui.divided.grid .tablet.only.row,.ui.celled.grid .tablet.only.row,.ui.grid .tablet.only.equal.height.row,.ui.tablet.only.grid .equal.height.row{display:table!important}.ui.divided.grid>.row>.tablet.only.column,.ui.celled.grid>.row>.tablet.only.column,.ui.divided.tablet.only.grid>.row>.column,.ui.celled.tablet.only.grid>.row>.column,.ui.divided.tablet.only.grid>.column,.ui.celled.tablet.only.grid>.column{display:table-cell!important}}@media only screen and (max-width:767px),(min-width:992px){.ui.tablet.only.grid,.ui.grid>.tablet.only.row,.ui.grid>.tablet.only.column,.ui.grid>.row>.tablet.only.column{display:none}}@media only screen and (min-width:992px){.ui.computer.only.grid,.ui.grid>.computer.only.row{display:block!important}.ui.grid>.row>.computer.only.column{display:inline-block!important}.ui.divided.computer.only.grid,.ui.celled.computer.only.grid,.ui.divided.computer.only.grid .row,.ui.celled.computer.only.grid .row,.ui.divided.grid .computer.only.row,.ui.celled.grid .computer.only.row,.ui.grid .computer.only.equal.height.row,.ui.computer.only.grid .equal.height.row{display:table!important}.ui.divided.grid>.row>.computer.only.column,.ui.celled.grid>.row>.computer.only.column,.ui.divided.computer.only.grid>.row>.column,.ui.celled.computer.only.grid>.row>.column,.ui.divided.computer.only.grid>.column,.ui.celled.computer.only.grid>.column{display:table-cell!important}}@media only screen and (max-width:991px){.ui.computer.only.grid,.ui.grid>.computer.only.row,.ui.grid>.computer.only.column,.ui.grid>.row>.computer.only.column{display:none}}@media only screen and (max-width:767px){.ui.two.column.doubling.grid>.row>.column,.ui.two.column.doubling.grid>.column,.ui.grid>.two.column.doubling.row>.column{width:100%}.ui.three.column.doubling.grid>.row>.column,.ui.three.column.doubling.grid>.column,.ui.grid>.three.column.doubling.row>.column{width:100%}.ui.four.column.doubling.grid>.row>.column,.ui.four.column.doubling.grid>.column,.ui.grid>.four.column.doubling.row>.column{width:100%}.ui.five.column.doubling.grid>.row>.column,.ui.five.column.doubling.grid>.column,.ui.grid>.five.column.doubling.row>.column{width:100%}.ui.six.column.doubling.grid>.row>.column,.ui.six.column.doubling.grid>.column,.ui.grid>.six.column.doubling.row>.column{width:50%}.ui.seven.column.doubling.grid>.row>.column,.ui.seven.column.doubling.grid>.column,.ui.grid>.seven.column.doubling.row>.column{width:50%}.ui.eight.column.doubling.grid>.row>.column,.ui.eight.column.doubling.grid>.column,.ui.grid>.eight.column.doubling.row>.column{width:50%}.ui.nine.column.doubling.grid>.row>.column,.ui.nine.column.doubling.grid>.column,.ui.grid>.nine.column.doubling.row>.column{width:50%}.ui.ten.column.doubling.grid>.row>.column,.ui.ten.column.doubling.grid>.column,.ui.grid>.ten.column.doubling.row>.column{width:50%}.ui.twelve.column.doubling.grid>.row>.column,.ui.twelve.column.doubling.grid>.column,.ui.grid>.twelve.column.doubling.row>.column{width:33.3333333333333%}.ui.fourteen.column.doubling.grid>.row>.column,.ui.fourteen.column.doubling.grid>.column,.ui.grid>.fourteen.column.doubling.row>.column{width:33.3333333333333%}.ui.sixteen.column.doubling.grid>.row>.column,.ui.sixteen.column.doubling.grid>.column,.ui.grid>.sixteen.column.doubling.row>.column{width:25%}}@media only screen and (min-width:768px) and (max-width:991px){.ui.two.column.doubling.grid>.row>.column,.ui.two.column.doubling.grid>.column,.ui.grid>.two.column.doubling.row>.column{width:100%}.ui.three.column.doubling.grid>.row>.column,.ui.three.column.doubling.grid>.column,.ui.grid>.three.column.doubling.row>.column{width:50%}.ui.four.column.doubling.grid>.row>.column,.ui.four.column.doubling.grid>.column,.ui.grid>.four.column.doubling.row>.column{width:50%}.ui.five.column.doubling.grid>.row>.column,.ui.five.column.doubling.grid>.column,.ui.grid>.five.column.doubling.row>.column{width:33.3333333%}.ui.six.column.doubling.grid>.row>.column,.ui.six.column.doubling.grid>.column,.ui.grid>.six.column.doubling.row>.column{width:33.3333333%}.ui.eight.column.doubling.grid>.row>.column,.ui.eight.column.doubling.grid>.column,.ui.grid>.eight.column.doubling.row>.column{width:33.3333333%}.ui.eight.column.doubling.grid>.row>.column,.ui.eight.column.doubling.grid>.column,.ui.grid>.eight.column.doubling.row>.column{width:25%}.ui.nine.column.doubling.grid>.row>.column,.ui.nine.column.doubling.grid>.column,.ui.grid>.nine.column.doubling.row>.column{width:25%}.ui.ten.column.doubling.grid>.row>.column,.ui.ten.column.doubling.grid>.column,.ui.grid>.ten.column.doubling.row>.column{width:20%}.ui.twelve.column.doubling.grid>.row>.column,.ui.twelve.column.doubling.grid>.column,.ui.grid>.twelve.column.doubling.row>.column{width:16.6666666%}.ui.fourteen.column.doubling.grid>.row>.column,.ui.fourteen.column.doubling.grid>.column,.ui.grid>.fourteen.column.doubling.row>.column{width:14.28571428571429%}.ui.sixteen.column.doubling.grid>.row>.column,.ui.sixteen.column.doubling.grid>.column,.ui.grid>.sixteen.column.doubling.row>.column{width:12.5%}}@media only screen and (max-width:767px){.ui.stackable.grid{display:block!important;padding:0;margin:0}.ui.stackable.grid>.row>.column,.ui.stackable.grid>.column{display:block!important;width:auto!important;margin:1em 0 0!important;padding:1em 0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}.ui.stackable.divided.grid .column,.ui.stackable.celled.grid .column{border-top:1px dotted rgba(0,0,0,.1)}.ui.stackable.grid>.row:first-child>.column:first-child,.ui.stackable.grid>.column:first-child{margin-top:0!important;padding-top:0!important}.ui.stackable.divided.grid>.row:first-child>.column:first-child,.ui.stackable.celled.grid>.row:first-child>.column:first-child,.ui.stackable.divided.grid>.column:first-child,.ui.stackable.celled.grid>.column:first-child{border-top:0!important}.ui.stackable.page.grid>.row>.column,.ui.stackable.page.grid>.column{padding-right:1em!important;padding-left:1em!important}.ui.stackable.grid .vertical.pointing.menu .item:after{display:none}}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/collections/menu.min.css b/css/semantic/rtl/minified/collections/menu.min.css
new file mode 100644
index 0000000..539a3e2
--- /dev/null
+++ b/css/semantic/rtl/minified/collections/menu.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.menu{margin:1rem 0rem;background-color:#FFF;font-size:0;font-weight:400;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1);border-radius:.1875rem}.ui.menu:first-child{margin-top:0rem}.ui.menu:last-child{margin-bottom:0rem}.ui.menu:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui.menu>.item:first-child{border-radius:.1875em 0 0 .1875em}.ui.menu>.item:last-child{border-radius:0 .1875em .1875em 0}.ui.menu .item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);vertical-align:middle;line-height:1;text-decoration:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:opacity .2s ease,background .2s ease,-webkit-box-shadow .2s ease;-moz-transition:opacity .2s ease,background .2s ease,box-shadow .2s ease;transition:opacity .2s ease,background .2s ease,box-shadow .2s ease}.ui.menu .item,.ui.menu .item>a:not(.button){color:rgba(0,0,0,.75)}.ui.menu .item .item,.ui.menu .item .item>a:not(.button){color:rgba(30,30,30,.7)}.ui.menu .item .item .item,.ui.menu .item .item .item>a:not(.button){color:rgba(30,30,30,.6)}.ui.menu .dropdown .menu .item,.ui.menu .dropdown .menu .item a:not(.button){color:rgba(0,0,0,.75)}.ui.menu .item .menu a.item:hover,.ui.menu .item .menu .link.item:hover{color:rgba(0,0,0,.85)}.ui.menu .dropdown .menu .item a:not(.button):hover{color:rgba(0,0,0,.85)}.ui.menu .active.item,.ui.menu .active.item a:not(.button){color:rgba(0,0,0,.85);border-radius:.item{position:relative 0}.ui.menu;display:inline-block;padding:.83em .95em;border-top:0 solid rgba(0,0,0,0);-webkit-tap-highlight-color:rgba(0,0,0,0);-moz-user-select:-moz-none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ui.menu .menu{margin:0}.ui.menu .item.left,.ui.menu .menu.left{float:right}.ui.menu .item.right,.ui.menu .menu.right{float:left}.ui.menu .item:before{position:absolute;content:'';top:0;right:0;width:1px;height:100%;background-image:-webkit-gradient(linear,right top,right bottom,from(rgba(0,0,0,.05)),color-stop(50%,rgba(0,0,0,.1)),to(rgba(0,0,0,.05)));background-image:-webkit-linear-gradient(rgba(0,0,0,.05) 0,rgba(0,0,0,.1) 50%,rgba(0,0,0,.05) 100%);background-image:-moz-linear-gradient(rgba(0,0,0,.05) 0,rgba(0,0,0,.1) 50%,rgba(0,0,0,.05) 100%);background-image:linear-gradient(rgba(0,0,0,.05) 0,rgba(0,0,0,.1) 50%,rgba(0,0,0,.05) 100%)}.ui.menu>.menu:not(.right):first-child>.item:first-child:before,.ui.menu .item:first-child:before{display:none}.ui.menu .menu.right .item:before,.ui.menu .item.right:before{left:auto;right:0}.ui.menu .text.item>*,.ui.menu .item>p:only-child{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;line-height:1.3;color:rgba(0,0,0,.6)}.ui.menu .item>p:first-child{margin-top:0}.ui.menu .item>p:last-child{margin-bottom:0}.ui.menu:not(.vertical) .item>.button{position:relative;top:-.05em;margin:-.55em 0;padding-bottom:.55em;padding-top:.55em;font-size:.875em}.ui.menu:not(.vertical) .item>.input{margin-top:-.85em;margin-bottom:-.85em;padding-top:.3em;padding-bottom:.3em;width:100%;vertical-align:top}.ui.menu .item>.input input{padding-top:.35em;padding-bottom:.35em}.ui.vertical.menu .item>.input input{margin:0;padding-top:.63em;padding-bottom:.63em}.ui.menu:not(.vertical) .item>.button.labeled>.icon{padding-top:.6em}.ui.menu:not(.vertical) .item .action.input>.button{font-size:.8em;padding:.55em .8em}.ui.small.menu:not(.vertical) .item>.input input{padding-top:.4em;padding-bottom:.4em}.ui.large.menu:not(.vertical) .item>.input input{top:-.125em;padding-bottom:.6em;padding-top:.6em}.ui.large.menu:not(.vertical) .item .action.input>.button{font-size:.8em;padding:.9em}.ui.large.menu:not(.vertical) .item .action.input>.button>.icon{padding-top:.8em}.ui.menu .header.item{background-color:rgba(0,0,0,.04);margin:0}.ui.vertical.menu .header.item{font-weight:700}.ui.menu .dropdown .menu .item .icon{float:none;margin:0 0 0 .75em}.ui.menu .dropdown.item .menu{right:1px;margin:0;min-width:-webkit-calc(99%);min-width:-moz-calc(99%);min-width:calc(99%);-webkit-box-shadow:0 1px 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px 1px rgba(0,0,0,.1)}.ui.secondary.menu .dropdown.item .menu{right:0;min-width:100%}.ui.menu .pointing.dropdown.item .menu{margin-top:.75em}.ui.menu .simple.dropdown.item .menu{margin:0!important}.ui.menu .dropdown.item .menu .item{width:100%;color:rgba(0,0,0,.75)}.ui.menu .dropdown.item .menu .active.item{-webkit-box-shadow:none!important;box-shadow:none!important}.ui.menu .ui.dropdown .menu .item:before{display:none}.ui.menu .item>.label{background-color:rgba(0,0,0,.35);color:#FFF;margin:-.15em .5em -.15em 0;padding:.3em .8em;vertical-align:baseline}.ui.menu .item>.floating.label{padding:.3em .8em}.ui.menu .item>img:only-child{display:block;max-width:100%;margin:0 auto}.ui.link.menu .item:hover,.ui.menu .link.item:hover,.ui.menu a.item:hover,.ui.menu .ui.dropdown .menu .item:hover{cursor:pointer;background-color:rgba(0,0,0,.02)}.ui.menu .ui.dropdown.item.active{background-color:rgba(0,0,0,.02);-webkit-box-shadow:none;box-shadow:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.ui.link.menu .item:active,.ui.menu .link.item:active,.ui.menu a.item:active,.ui.menu .ui.dropdown .menu .item:active{background-color:rgba(0,0,0,.05)}.ui.menu .active.item{background-color:rgba(0,0,0,.01);color:rgba(0,0,0,.95);-webkit-box-shadow:0 .2em 0 inset;box-shadow:0 .2em 0 inset}.ui.vertical.menu .active.item{border-radius:0;-webkit-box-shadow:.2em 0 0 inset;box-shadow:.2em 0 0 inset}.ui.vertical.menu>.active.item:first-child{border-radius:0 .1875em 0 0}.ui.vertical.menu>.active.item:last-child{border-radius:0 0 .1875em}.ui.vertical.menu>.active.item:only-child{border-radius:0 .1875em .1875em 0}.ui.vertical.menu .active.item .menu .active.item{border-right:0}.ui.vertical.menu .active.item .menu .active.item{padding-right:1.5rem}.ui.vertical.menu .item .menu .active.item{background-color:rgba(0,0,0,.03);-webkit-box-shadow:none;box-shadow:none}.ui.menu .item.disabled,.ui.menu .item.disabled:hover{cursor:default;color:rgba(0,0,0,.2);background-color:transparent!important}.ui.menu.loading{position:relative}.ui.menu.loading:after{position:absolute;top:0;right:0;content:'';width:100%;height:100%;background:rgba(255,255,255,.8) url(../images/loader-large.gif) no-repeat 50% 50%;visibility:visible}.ui.vertical.menu .item{display:block;height:auto!important;border-top:0;border-right:0 solid rgba(0,0,0,0);border-left:0}.ui.vertical.menu>.item:first-child{border-radius:.1875em .1875em 0 0}.ui.vertical.menu>.item:last-child{border-radius:0 0 .1875em .1875em}.ui.vertical.menu .item>.label{float:left;text-align:center}.ui.vertical.menu .item>i.icon{float:left;width:1.22em;margin:0 .5em 0 0}.ui.vertical.menu .item>.label+i.icon{float:none;margin:0 0 0 .25em}.ui.vertical.menu .item:before{position:absolute;content:'';top:0;right:0;width:100%;height:1px;background-image:-webkit-linear-gradient(right,rgba(0,0,0,.03) 0,rgba(0,0,0,.1) 1.5em,rgba(0,0,0,.03) 100%);background-image:-moz-linear-gradient(right,rgba(0,0,0,.03) 0,rgba(0,0,0,.1) 1.5em,rgba(0,0,0,.03) 100%);background-image:-webkit-gradient(linear,right top,left top,from(rgba(0,0,0,.03)),color-stop(1.5em,rgba(0,0,0,.1)),to(rgba(0,0,0,.03)));background-image:linear-gradient(to left,rgba(0,0,0,.03) 0,rgba(0,0,0,.1) 1.5em,rgba(0,0,0,.03) 100%)}.ui.vertical.menu .item:first-child:before{background-image:none!important}.ui.vertical.menu .dropdown.item>i{float:left;content:"\f0da"}.ui.vertical.menu .dropdown.item .menu{top:0!important;right:100%;margin:0 1px 0 0;-webkit-box-shadow:0 0 1px 1px #DDD;box-shadow:0 0 1px 1px #DDD}.ui.vertical.menu .dropdown.item.active{border-top-left-radius:0;border-bottom-left-radius:0}.ui.vertical.menu .dropdown.item .menu .item{font-size:1rem}.ui.vertical.menu .dropdown.item .menu .item i.icon{margin-left:0}.ui.vertical.menu .dropdown.item.active{-webkit-box-shadow:none;box-shadow:none}.ui.vertical.menu .item>.menu{margin:.5em -.95em 0}.ui.vertical.menu .item>.menu>.item{padding:.5rem 1.5rem;font-size:.875em}.ui.vertical.menu .item>.menu>.item:before{display:none}.ui.tiered.menu>.sub.menu>.item{color:rgba(0,0,0,.4)}.ui.tiered.menu>.menu>.item:hover{color:rgba(0,0,0,.8)}.ui.tiered.menu .item.active{color:rgba(0,0,0,.8)}.ui.tiered.menu>.menu .item.active:after{position:absolute;content:'';margin-top:-1px;top:100%;right:0;width:100%;height:2px;background-color:#FBFBFB}.ui.tiered.menu .sub.menu{background-color:rgba(0,0,0,.01);border-radius:0;border-top:1px solid rgba(0,0,0,.1);-webkit-box-shadow:none;box-shadow:none;color:#FFF}.ui.tiered.menu .sub.menu .item{font-size:.875rem}.ui.tiered.menu .sub.menu .item:before{background-image:none}.ui.tiered.menu .sub.menu .active.item{padding-top:.83em;background-color:transparent;border-radius:0;border-top:medium none;-webkit-box-shadow:none;box-shadow:none;color:rgba(0,0,0,.7)!important}.ui.tiered.menu .sub.menu .active.item:after{display:none}.ui.inverted.tiered.menu>.menu>.item{color:rgba(255,255,255,.5)}.ui.inverted.tiered.menu .sub.menu{background-color:rgba(0,0,0,.2)}.ui.inverted.tiered.menu .sub.menu .item{color:rgba(255,255,255,.6)}.ui.inverted.tiered.menu>.menu>.item:hover{color:rgba(255,255,255,.9)}.ui.inverted.tiered.menu .active.item:after{display:none}.ui.inverted.tiered.menu>.sub.menu>.active.item,.ui.inverted.tiered.menu>.menu>.active.item{color:#fff!important;-webkit-box-shadow:none;box-shadow:none}.ui.pointing.tiered.menu>.menu>.item:after{display:none}.ui.pointing.tiered.menu>.sub.menu>.item:after{display:block}.ui.tabular.menu{background-color:transparent;border-bottom:1px solid #DCDDDE;border-radius:0;-webkit-box-shadow:none!important;box-shadow:none!important}.ui.tabular.menu .item{background-color:transparent;border-right:1px solid transparent;border-left:1px solid transparent;border-top:1px solid transparent;padding-right:1.4em;padding-left:1.4em;color:rgba(0,0,0,.6)}.ui.tabular.menu .item:before{display:none}.ui.tabular.menu .item:hover{background-color:transparent;color:rgba(0,0,0,.8)}.ui.tabular.menu .active.item{position:relative;background-color:#FFF;color:rgba(0,0,0,.8);border-color:#DCDDDE;font-weight:700;margin-bottom:-1px;border-bottom:1px solid #FFF;-webkit-box-shadow:none;box-shadow:none;border-radius:5px 5px 0}.ui.attached.tabular.menu{position:relative 0;z-index:2}.ui.tabular.menu~.bottom.attached.segment{margin:1px 1px 0 0}.ui.pagination.menu{margin:0;display:inline-block;vertical-align:middle}.ui.pagination.menu .item{min-width:3em;text-align:center}.ui.pagination.menu .icon.item i.icon{vertical-align:top}.ui.pagination.menu.floated{display:block}.ui.pagination.menu .active.item{border-top:0;padding-top:.83em;background-color:rgba(0,0,0,.05);-webkit-box-shadow:none;box-shadow:none}.ui.secondary.menu{background-color:transparent;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.ui.secondary.menu>.menu>.item,.ui.secondary.menu>.item{-webkit-box-shadow:none;box-shadow:none;border:0;height:auto!important;margin:0 .25em;padding:.5em 1em;border-radius:.item>.input .3125em}.ui.secondary.menu>.menu>.item:before,.ui.secondary.menu>.item:before{display:none!important}.ui.secondary.menu input{background-color:transparent;border:0}.ui.secondary.menu .link.item,.ui.secondary.menu a.item{opacity:.8;-webkit-transition:none;-moz-transition:none;transition:none}.ui.secondary.menu .header.item{border-left:.1em solid rgba(0,0,0,.1);background-color:transparent;border-radius:.link.item:hover,.ui.secondary.menu 0}.ui.secondary.menu a.item:hover{opacity:1}.ui.secondary.menu>.menu>.active.item,.ui.secondary.menu>.active.item{background-color:rgba(0,0,0,.08);opacity:1;-webkit-box-shadow:none;box-shadow:none}.ui.secondary.vertical.menu>.active.item{border-radius:.3125em}.ui.secondary.inverted.menu .link.item,.ui.secondary.inverted.menu a.item{color:rgba(255,255,255,.5)}.ui.secondary.inverted.menu .link.item:hover,.ui.secondary.inverted.menu a.item:hover{color:rgba(255,255,255,.9)}.ui.secondary.inverted.menu .active.item{background-color:rgba(255,255,255,.1)}.ui.secondary.item.menu>.item{margin:0}.ui.secondary.attached.menu{-webkit-box-shadow:none;box-shadow:none}.ui.secondary.pointing.menu{border-bottom:3px solid rgba(0,0,0,.1)}.ui.secondary.pointing.menu>.menu>.item,.ui.secondary.pointing.menu>.item{margin:0 0 -3px;padding:.6em .95em;border-bottom:3px solid rgba(0,0,0,0);border-radius:0;-webkit-transition:color .2s;-moz-transition:color .2s;transition:color .2s}.ui.secondary.pointing.menu .header.item{margin-bottom:-3px;background-color:transparent!important;border-left-width:0!important;font-weight:700!important;color:rgba(0,0,0,.8)!important}.ui.secondary.pointing.menu .text.item{-webkit-box-shadow:none!important;box-shadow:none!important}.ui.secondary.pointing.menu>.menu>.item:after,.ui.secondary.pointing.menu>.item:after{display:none}.ui.secondary.pointing.menu>.menu>.link.item:hover,.ui.secondary.pointing.menu>.link.item:hover,.ui.secondary.pointing.menu>.menu>a.item:hover,.ui.secondary.pointing.menu>a.item:hover{background-color:transparent;color:rgba(0,0,0,.7)}.ui.secondary.pointing.menu>.menu>.link.item:active,.ui.secondary.pointing.menu>.link.item:active,.ui.secondary.pointing.menu>.menu>a.item:active,.ui.secondary.pointing.menu>a.item:active{background-color:transparent;border-color:rgba(0,0,0,.2)}.ui.secondary.pointing.menu>.menu>.item.active,.ui.secondary.pointing.menu>.item.active{background-color:transparent;border-color:rgba(0,0,0,.4);-webkit-box-shadow:none;box-shadow:none}.ui.secondary.vertical.pointing.menu{border:0;border-left:3px solid rgba(0,0,0,.1)}.ui.secondary.vertical.menu>.item{border:0;margin:0 0 .3em;padding:.6em .8em;border-radius:-3px .1875em}.ui.secondary.vertical.menu>.header.item{border-radius:0}.ui.secondary.vertical.pointing.menu>.item{margin:0 0 0;border-bottom:0;border-left:3px solid transparent;border-radius:0}.ui.secondary.vertical.pointing.menu>.item:hover{background-color:transparent;color:rgba(0,0,0,.7)}.ui.secondary.vertical.pointing.menu>.item:active{background-color:transparent;border-color:rgba(0,0,0,.2)}.ui.secondary.vertical.pointing.menu>.item.active{background-color:transparent;border-color:rgba(0,0,0,.4);color:rgba(0,0,0,.85)}.ui.secondary.inverted.menu{background-color:transparent}.ui.secondary.inverted.pointing.menu{border-bottom:3px solid rgba(255,255,255,.1)}.ui.secondary.inverted.pointing.menu>.item{color:rgba(255,255,255,.7)}.ui.secondary.inverted.pointing.menu>.header.item{color:#FFF!important}.ui.secondary.inverted.pointing.menu>.menu>.item:hover,.ui.secondary.inverted.pointing.menu>.item:hover{color:rgba(255,255,255,.85)}.ui.secondary.inverted.pointing.menu>.menu>.item:active,.ui.secondary.inverted.pointing.menu>.item:active{border-color:rgba(255,255,255,.4)}.ui.secondary.inverted.pointing.menu>.menu>.item.active,.ui.secondary.inverted.pointing.menu>.item.active{border-color:rgba(255,255,255,.8);color:#fff}.ui.secondary.inverted.vertical.pointing.menu{border-left:3px solid rgba(255,255,255,.1);border-bottom:0}.ui.text.menu{background-color:transparent;margin:1rem -1rem;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.ui.text.menu>.item{opacity:.8;margin:0 1em;padding:0;height:auto!important;border-radius:0;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:opacity .2s ease;-moz-transition:opacity .2s ease;transition:opacity .2s ease}.ui.text.menu>.item:before{display:none!important}.ui.text.menu .header.item{background-color:transparent;opacity:1;color:rgba(50,50,50,.8);font-size:.875rem;padding:0;text-transform:uppercase;font-weight:700}.ui.text.item.menu .item{margin:0}.ui.vertical.text.menu{margin:1rem 0}.ui.vertical.text.menu:first-child{margin-top:0rem}.ui.vertical.text.menu:last-child{margin-bottom:0rem}.ui.vertical.text.menu .item{float:right;clear:right;margin:.5em 0}.ui.vertical.text.menu .item>i.icon{float:none;margin:0 0 0 .83em}.ui.vertical.text.menu .header.item{margin:.8em 0}.ui.text.menu .item:hover{opacity:1;background-color:transparent}.ui.text.menu .active.item{background-color:transparent;padding:0;border:0;opacity:1;font-weight:700;-webkit-box-shadow:none;box-shadow:none}.ui.text.pointing.menu .active.item:after{-webkit-box-shadow:none;box-shadow:none}.ui.text.attached.menu{-webkit-box-shadow:none;box-shadow:none}.ui.inverted.text.menu,.ui.inverted.text.menu .item,.ui.inverted.text.menu .item:hover,.ui.inverted.text.menu .item.active{background-color:transparent}.ui.icon.menu,.ui.vertical.icon.menu{width:auto;display:inline-block;height:auto}.ui.icon.menu>.item{height:auto;text-align:center;color:rgba(60,60,60,.7)}.ui.icon.menu>.item>.icon{display:block;float:none!important;opacity:1;margin:0 auto!important}.ui.icon.menu .icon:before{opacity:1}.ui.menu .icon.item .icon{margin:0}.ui.vertical.icon.menu{float:none}.ui.inverted.icon.menu .item{color:rgba(255,255,255,.8)}.ui.inverted.icon.menu .icon{color:#fff}.ui.labeled.icon.menu{text-align:center}.ui.labeled.icon.menu>.item>.icon{display:block;font-size:1.5em!important;margin:0 auto .3em!important}.ui.menu .green.active.item,.ui.green.menu .active.item{border-color:#A1CF64!important;color:#A1CF64!important}.ui.menu .red.active.item,.ui.red.menu .active.item{border-color:#D95C5C!important;color:#D95C5C!important}.ui.menu .blue.active.item,.ui.blue.menu .active.item{border-color:#6ECFF5!important;color:#6ECFF5!important}.ui.menu .purple.active.item,.ui.purple.menu .active.item{border-color:#564F8A!important;color:#564F8A!important}.ui.menu .orange.active.item,.ui.orange.menu .active.item{border-color:#F05940!important;color:#F05940!important}.ui.menu .teal.active.item,.ui.teal.menu .active.item{border-color:#00B5AD!important;color:#00B5AD!important}.ui.inverted.menu{background-color:#333;-webkit-box-shadow:none;box-shadow:none}.ui.inverted.menu .header.item{margin:0;background-color:rgba(0,0,0,.3);-webkit-box-shadow:none;box-shadow:none}.ui.inverted.menu .item,.ui.inverted.menu .item>a{color:#FFF}.ui.inverted.menu .item .item,.ui.inverted.menu .item .item>a{color:rgba(255,255,255,.8)}.ui.inverted.menu .dropdown .menu .item,.ui.inverted.menu .dropdown .menu .item a{color:rgba(0,0,0,.75)!important}.ui.inverted.menu .item.disabled,.ui.inverted.menu .item.disabled:hover{color:rgba(255,255,255,.2)}.ui.inverted.menu .item:before{background-image:-webkit-linear-gradient(rgba(255,255,255,.03) 0,rgba(255,255,255,.1) 50%,rgba(255,255,255,.03) 100%);background-image:-moz-linear-gradient(rgba(255,255,255,.03) 0,rgba(255,255,255,.1) 50%,rgba(255,255,255,.03) 100%);background-image:-webkit-gradient(linear,right top,right bottom,from(rgba(255,255,255,.03)),color-stop(50%,rgba(255,255,255,.1)),to(rgba(255,255,255,.03)));background-image:linear-gradient(rgba(255,255,255,.03) 0,rgba(255,255,255,.1) 50%,rgba(255,255,255,.03) 100%)}.ui.vertical.inverted.menu .item:before{background-image:-webkit-linear-gradient(right,rgba(255,255,255,.03) 0,rgba(255,255,255,.1) 50%,rgba(255,255,255,.03) 100%);background-image:-moz-linear-gradient(right,rgba(255,255,255,.03) 0,rgba(255,255,255,.1) 50%,rgba(255,255,255,.03) 100%);background-image:-webkit-gradient(linear,right top,left top,from(rgba(255,255,255,.03)),color-stop(50%,rgba(255,255,255,.1)),to(rgba(255,255,255,.03)));background-image:linear-gradient(to left,rgba(255,255,255,.03) 0,rgba(255,255,255,.1) 50%,rgba(255,255,255,.03) 100%)}.ui.link.inverted.menu .item:hover,.ui.inverted.menu .link.item:hover,.ui.inverted.menu a.item:hover,.ui.inverted.menu .dropdown.item:hover{background-color:rgba(255,255,255,.1)}.ui.inverted.menu a.item:hover,.ui.inverted.menu .item>a:hover,.ui.inverted.menu .item .menu a.item:hover,.ui.inverted.menu .item .menu .link.item:hover{color:#fff}.ui.inverted.menu a.item:active,.ui.inverted.menu .dropdown.item:active,.ui.inverted.menu .link.item:active,.ui.inverted.menu a.item:active{background-color:rgba(255,255,255,.15)}.ui.inverted.menu .active.item{-webkit-box-shadow:none!important;box-shadow:none!important;background-color:rgba(255,255,255,.2)}.ui.inverted.menu .active.item,.ui.inverted.menu .active.item a{color:#fff!important}.ui.inverted.vertical.menu .item .menu .active.item{background-color:rgba(255,255,255,.2);color:#fff}.ui.inverted.pointing.menu .active.item:after{background-color:#5B5B5B;-webkit-box-shadow:none;box-shadow:none}.ui.inverted.pointing.menu .active.item:hover:after{background-color:#4A4A4A}.ui.selection.menu>.item{color:rgba(0,0,0,.4)}.ui.selection.menu>.item:hover{color:rgba(0,0,0,.6)}.ui.selection.menu>.item.active{color:rgba(0,0,0,.85)}.ui.inverted.selection.menu>.item{color:rgba(255,255,255,.4)}.ui.inverted.selection.menu>.item:hover{color:rgba(255,255,255,.9)}.ui.inverted.selection.menu>.item.active{color:#FFF}.ui.floated.menu{float:right;margin:0rem 0rem 0rem .5rem}.ui.right.floated.menu{float:left;margin:0rem .5rem 0rem 0rem}.ui.grey.menu{background-color:#F0F0F0}.ui.inverted.green.menu{background-color:#A1CF64}.ui.inverted.green.pointing.menu .active.item:after{background-color:#A1CF64}.ui.inverted.red.menu{background-color:#D95C5C}.ui.inverted.red.pointing.menu .active.item:after{background-color:#F16883}.ui.inverted.blue.menu{background-color:#6ECFF5}.ui.inverted.blue.pointing.menu .active.item:after{background-color:#6ECFF5}.ui.inverted.purple.menu{background-color:#564F8A}.ui.inverted.purple.pointing.menu .active.item:after{background-color:#564F8A}.ui.inverted.orange.menu{background-color:#F05940}.ui.inverted.orange.pointing.menu .active.item:after{background-color:#F05940}.ui.inverted.teal.menu{background-color:#00B5AD}.ui.inverted.teal.pointing.menu .active.item:after{background-color:#00B5AD}.ui.fitted.menu .item,.ui.fitted.menu .item .menu .item,.ui.menu .fitted.item{padding:0}.ui.horizontally.fitted.menu .item,.ui.horizontally.fitted.menu .item .menu .item,.ui.menu .horizontally.fitted.item{padding-top:.83em;padding-bottom:.83em}.ui.vertically.fitted.menu .item,.ui.vertically.fitted.menu .item .menu .item,.ui.menu .vertically.fitted.item{padding-right:.95em;padding-left:.95em}.ui.borderless.menu .item:before,.ui.borderless.menu .item .menu .item:before,.ui.menu .borderless.item:before{background-image:none}.ui.compact.menu{display:inline-block;margin:0;vertical-align:middle}.ui.compact.vertical.menu{width:auto!important}.ui.compact.vertical.menu .item:last-child::before{display:block}.ui.menu.fluid,.ui.vertical.menu.fluid{display:block;width:100%!important}.ui.item.menu,.ui.item.menu .item{width:100%;padding-right:0!important;padding-left:0!important;text-align:center}.ui.menu.two.item .item{width:50%}.ui.menu.three.item .item{width:33.333%}.ui.menu.four.item .item{width:25%}.ui.menu.five.item .item{width:20%}.ui.menu.six.item .item{width:16.666%}.ui.menu.seven.item .item{width:14.285%}.ui.menu.eight.item .item{width:12.5%}.ui.menu.nine.item .item{width:11.11%}.ui.menu.ten.item .item{width:10%}.ui.menu.eleven.item .item{width:9.09%}.ui.menu.twelve.item .item{width:8.333%}.ui.menu.fixed{position:fixed;z-index:999;margin:0;border:0;width:100%}.ui.menu.fixed,.ui.menu.fixed .item:first-child,.ui.menu.fixed .item:last-child{border-radius:0!important}.ui.menu.fixed.top{top:0;right:0;left:auto;bottom:auto}.ui.menu.fixed.right{top:0;left:0;right:auto;bottom:auto;width:auto;height:100%}.ui.menu.fixed.bottom{bottom:0;right:0;top:auto;left:auto}.ui.menu.fixed.left{top:0;right:0;left:auto;bottom:auto;width:auto;height:100%}.ui.fixed.menu+.ui.grid{padding-top:2.75rem}.ui.pointing.menu .active.item:after{position:absolute;bottom:-.3em;right:50%;content:"";margin-right:-.3em;width:.6em;height:.6em;border:0;border-bottom:1px solid rgba(0,0,0,.1);border-left:1px solid rgba(0,0,0,.1);background-image:none;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);z-index:2;-webkit-transition:background .2s ease;-moz-transition:background .2s ease;transition:background .2s ease}.ui.pointing.menu .active.item .menu .active.item:after{display:none}.ui.vertical.pointing.menu .active.item:after{position:absolute;top:50%;margin-top:-.3em;left:-.4em;bottom:auto;right:auto;border:0;border-top:1px solid rgba(0,0,0,.1);border-left:1px solid rgba(0,0,0,.1)}.ui.pointing.menu .active.item:after{background-color:#FCFCFC}.ui.pointing.menu .active.item:hover:after{background-color:#FAFAFA}.ui.vertical.pointing.menu .menu .active.item:after{background-color:#F4F4F4}.ui.pointing.menu a.active.item:active:after{background-color:#F0F0F0}.ui.menu.attached{margin:0rem;border-radius:0;-webkit-box-shadow:0 0 0 1px #DDD;box-shadow:0 0 0 1px #DDD}.ui.top.attached.menu{border-radius:.1875em .1875em 0 0}.ui.menu.bottom.attached{border-radius:0 0 .1875em .1875em}.ui.small.menu .item{font-size:.875rem}.ui.small.vertical.menu{width:13rem}.ui.menu .item{font-size:1rem}.ui.vertical.menu{width:15rem}.ui.large.menu .item{font-size:1.125rem}.ui.large.menu .item .item{font-size:.875rem}.ui.large.menu .dropdown .item{font-size:1rem}.ui.large.vertical.menu{width:18rem}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/collections/message.min.css b/css/semantic/rtl/minified/collections/message.min.css
new file mode 100644
index 0000000..d7a0e01
--- /dev/null
+++ b/css/semantic/rtl/minified/collections/message.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.message{position:relative;min-height:18px;margin:1em 0;height:auto;background-color:#EFEFEF;padding:1em;line-height:1.33;color:rgba(0,0,0,.6);-webkit-transition:opacity .1s ease,color .1s ease,background .1s ease,-webkit-box-shadow .1s ease;-moz-transition:opacity .1s ease,color .1s ease,background .1s ease,box-shadow .1s ease;transition:opacity .1s ease,color .1s ease,background .1s ease,box-shadow .1s ease;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;border-radius:.header{margin:0 .325em}.ui.message:first-child{margin-top:0}.ui.message:last-child{margin-bottom:0}.ui.message;font-size:1.33em;font-weight:700}.ui.message p{opacity:.85;margin:1em 0}.ui.message p:first-child{margin-top:0}.ui.message p:last-child{margin-bottom:0}.ui.message .header+p{margin-top:.3em}.ui.message>:first-child{margin-top:0}.ui.message>:last-child{margin-bottom:0}.ui.message ul.list{opacity:.85;list-style-position:inside;margin:.2em 0;padding:0}.ui.message ul.list li{position:relative;list-style-type:none;margin:0 1em .3em 0;padding:0}.ui.message ul.list li:before{position:absolute;content:'\2022';top:-.05em;right:-.8em;height:100%;vertical-align:baseline;opacity:.5}.ui.message ul.list li:first-child{margin-top:0}.ui.message>.close.icon{cursor:pointer;position:absolute;top:1em;left:.5em;opacity:.7;-webkit-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear}.ui.message>.close.icon:hover{opacity:1}.ui.message.visible,.ui.header.visible{display:block!important}.ui.message.hidden,.ui.header.hidden{display:none}.ui.compact.message{display:inline-block}.ui.attached.message{margin-right:-1px;margin-left:-1px;margin-bottom:-1px;border-radius:.325em .325em 0 0;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset}.ui.attached+.ui.attached.message:not(.top):not(.bottom){margin-top:-1px;border-radius:0}.ui.bottom.attached.message{margin-top:-1px;border-radius:0 0 .325em}.ui.bottom.attached.message:not(:last-child){margin-bottom:1em}.ui.attached.icon.message{display:block .325em;width:auto}.ui.icon.message{display:table;width:100%}.ui.icon.message>.icon:not(.close){display:table-cell;vertical-align:middle;font-size:3.8em;opacity:.5}.ui.icon.message>.icon+.content{padding-right:1em}.ui.icon.message>.content{display:table-cell;vertical-align:middle}.ui.inverted.message{background-color:rgba(255,255,255,.05);color:rgba(255,255,255,.95)}.ui.floating.message{-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.05) inset;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.05) inset}.ui.black.message{background-color:#333;color:rgba(255,255,255,.95)}.ui.blue.message,.ui.info.message{background-color:#E6F4F9;color:#4D8796}.ui.green.message{background-color:#DEFCD5;color:#52A954}.ui.yellow.message,.ui.warning.message{background-color:#F6F3D5;color:#96904D}.ui.red.message{background-color:#F1D7D7;color:#A95252}.ui.success.message,.ui.positive.message{background-color:#DEFCD5;color:#52A954}.ui.error.message,.ui.negative.message{background-color:#F1D7D7;color:#A95252}.ui.small.message{font-size:.875em}.ui.message{font-size:1em}.ui.large.message{font-size:1.125em}.ui.huge.message{font-size:1.5em}.ui.massive.message{font-size:2em}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/collections/table.min.css b/css/semantic/rtl/minified/collections/table.min.css
new file mode 100644
index 0000000..f8182dc
--- /dev/null
+++ b/css/semantic/rtl/minified/collections/table.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.table{width:100%;border-collapse:collapse}.ui.table th,.ui.table tr,.ui.table td{border-collapse:collapse;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:all .1s ease-out;-moz-transition:all .1s ease-out;transition:all .1s ease-out}.ui.table thead{border-bottom:1px solid rgba(0,0,0,.03)}.ui.table tfoot th{background-color:rgba(0,0,0,.03)}.ui.table th{cursor:auto;background-color:rgba(0,0,0,.05);text-align:right;color:rgba(0,0,0,.8);padding:.5em .7em;vertical-align:middle}.ui.table thead th:first-child{border-radius:5px 0 0}.ui.table thead th:last-child{border-radius:0 5px 0 0}.ui.table tfoot th:first-child{border-radius:0 0 0 5px}.ui.table tfoot th:last-child{border-radius:0 0 5px}.ui.table tfoot th:only-child{border-radius:0 0 5px 5px}.ui.table td{padding:.4em .7em;vertical-align:middle}.ui.table tfoot{border-top:1px solid rgba(0,0,0,.03)}.ui.table tfoot th{font-weight:400;font-style:italic}.ui.table tbody tr:nth-child(2n){background-color:rgba(0,0,50,.02)}.ui.table>.icon{vertical-align:baseline}.ui.table>.icon:only-child{margin:0}.ui.table.segment:after{display:none}.ui.table.segment.stacked:after{display:block}@media only screen and (max-width:768px){.ui.table{display:block;padding:0}.ui.table thead,.ui.table tfoot{display:none}.ui.table tbody{display:block}.ui.table tr{display:block}.ui.table tr>td{width:100%!important;display:block;border:0!important;padding:.25em .75em;-webkit-box-shadow:0 1px 0 0 rgba(0,0,0,.05)!important;box-shadow:0 1px 0 0 rgba(0,0,0,.05)!important}.ui.table td:first-child{font-weight:700;padding-top:1em}.ui.table td:last-child{-webkit-box-shadow:0 -1px 0 0 rgba(0,0,0,.1) inset!important;box-shadow:0 -1px 0 0 rgba(0,0,0,.1) inset!important;padding-bottom:1em}.ui.table tr>td.warning,.ui.table tr>td.error,.ui.table tr>td.active,.ui.table tr>td.positive,.ui.table tr>td.negative{background-color:transparent!important}}.ui.sortable.table th.disabled:hover{cursor:auto;text-align:right;font-weight:700;color:#333;color:rgba(0,0,0,.8)}.ui.sortable.table thead th:hover{background-color:rgba(0,0,0,.13);color:rgba(0,0,0,.8)}.ui.inverted.sortable.table thead th:hover{background-color:rgba(255,255,255,.13);color:#fff}.ui.table tr.positive,.ui.table td.positive{-webkit-box-shadow:2px 0 0 #119000 inset;box-shadow:2px 0 0 #119000 inset}.ui.table tr.positive td,.ui.table td.positive{background-color:#F2F8F0!important;color:#119000!important}.ui.celled.table tr.positive:hover td,.ui.celled.table tr:hover td.positive,.ui.table tr.positive:hover td,.ui.table td:hover.positive,.ui.table th:hover.positive{background-color:#ECF5E9!important;color:#119000!important}.ui.table tr.negative,.ui.table td.negative{-webkit-box-shadow:2px 0 0 #CD2929 inset;box-shadow:2px 0 0 #CD2929 inset}.ui.table tr.negative td,.ui.table td.negative{background-color:#F9F4F4;color:#CD2929!important}.ui.celled.table tr.negative:hover td,.ui.celled.table tr:hover td.negative,.ui.table tr.negative:hover td,.ui.table td:hover.negative,.ui.table th:hover.negative{background-color:#F2E8E8;color:#CD2929}.ui.table tr.error,.ui.table td.error{-webkit-box-shadow:2px 0 0 #CD2929 inset;box-shadow:2px 0 0 #CD2929 inset}.ui.table tr.error td,.ui.table td.error,.ui.table th.error{background-color:#F9F4F4;color:#CD2929}.ui.celled.table tr.error:hover td,.ui.celled.table tr:hover td.error,.ui.table tr.error:hover td,.ui.table td:hover.error,.ui.table th:hover.error{background-color:#F2E8E8;color:#CD2929}.ui.table tr.warning,.ui.table td.warning{-webkit-box-shadow:2px 0 0 #7D6C00 inset;box-shadow:2px 0 0 #7D6C00 inset}.ui.table tr.warning td,.ui.table td.warning,.ui.table th.warning{background-color:#FBF6E9;color:#7D6C00}.ui.celled.table tr.warning:hover td,.ui.celled.table tr:hover td.warning,.ui.table tr.warning:hover td,.ui.table td:hover.warning,.ui.table th:hover.warning{background-color:#F3EDDC;color:#7D6C00}.ui.table tr.active,.ui.table td.active{-webkit-box-shadow:2px 0 0 rgba(50,50,50,.9) inset;box-shadow:2px 0 0 rgba(50,50,50,.9) inset}.ui.table tr.active td,.ui.table tr td.active{background-color:#E0E0E0;color:rgba(50,50,50,.9)}.ui.table tr.disabled td,.ui.table tr td.disabled,.ui.table tr.disabled:hover td,.ui.table tr:hover td.disabled{color:rgba(150,150,150,.3)}.ui.two.column.table td{width:50%}.ui.three.column.table td{width:33.3333%}.ui.four.column.table td{width:25%}.ui.five.column.table td{width:20%}.ui.six.column.table td{width:16.66667%}.ui.seven.column.table td{width:14.2857%}.ui.eight.column.table td{width:12.5%}.ui.nine.column.table td{width:11.1111%}.ui.ten.column.table td{width:10%}.ui.eleven.column.table td{width:9.0909%}.ui.twelve.column.table td{width:8.3333%}.ui.thirteen.column.table td{width:7.6923%}.ui.fourteen.column.table td{width:7.1428%}.ui.fifteen.column.table td{width:6.6666%}.ui.sixteen.column.table td{width:6.25%}.ui.table th.one.wide,.ui.table td.one.wide{width:6.25%}.ui.table th.two.wide,.ui.table td.two.wide{width:12.5%}.ui.table th.three.wide,.ui.table td.three.wide{width:18.75%}.ui.table th.four.wide,.ui.table td.four.wide{width:25%}.ui.table th.five.wide,.ui.table td.five.wide{width:31.25%}.ui.table th.six.wide,.ui.table td.six.wide{width:37.5%}.ui.table th.seven.wide,.ui.table td.seven.wide{width:43.75%}.ui.table th.eight.wide,.ui.table td.eight.wide{width:50%}.ui.table th.nine.wide,.ui.table td.nine.wide{width:56.25%}.ui.table th.ten.wide,.ui.table td.ten.wide{width:62.5%}.ui.table th.eleven.wide,.ui.table td.eleven.wide{width:68.75%}.ui.table th.twelve.wide,.ui.table td.twelve.wide{width:75%}.ui.table th.thirteen.wide,.ui.table td.thirteen.wide{width:81.25%}.ui.table th.fourteen.wide,.ui.table td.fourteen.wide{width:87.5%}.ui.table th.fifteen.wide,.ui.table td.fifteen.wide{width:93.75%}.ui.table th.sixteen.wide,.ui.table td.sixteen.wide{width:100%}.ui.celled.table{color:rgba(0,0,0,.8)}.ui.celled.table tbody tr,.ui.celled.table tfoot tr{border:0}.ui.celled.table th,.ui.celled.table td{border:1px solid rgba(0,0,0,.1)}.ui.celled.table.segment th:first-child,.ui.celled.table.segment td:first-child{border-right:0}.ui.celled.table.segment th:last-child,.ui.celled.table.segment td:last-child{border-left:0}.ui.sortable.table thead th{cursor:pointer;white-space:nowrap}.ui.sortable.table thead th.sorted,.ui.sortable.table thead th.sorted:hover{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ui.sortable.table thead th:after{display:inline-block;content:'';width:1em;opacity:.8;margin:0 .5em 0 0;font-family:Icons;font-style:normal;font-weight:400;text-decoration:inherit}.ui.sortable.table thead th.ascending:after{content:'\25b4'}.ui.sortable.table thead th.descending:after{content:'\25be'}.ui.inverted.table td{color:rgba(255,255,255,.9)}.ui.inverted.table th{background-color:rgba(0,0,0,.15);color:rgba(255,255,255,.9)}.ui.inverted.table tbody tr:nth-child(2n){background-color:rgba(255,255,255,.06)}.ui.definition.table td:first-child{font-weight:700}.ui.collapsing.table{width:auto}.ui.basic.table th{background-color:transparent;padding:.5em}.ui.basic.table tbody tr{border-bottom:1px solid rgba(0,0,0,.03)}.ui.basic.table td{padding:.8em .5em}.ui.basic.table tbody tr:nth-child(2n){background-color:transparent!important}.ui.padded.table th,.ui.padded.table td{padding:.8em 1em}.ui.compact.table th{padding:.3em .5em}.ui.compact.table td{padding:.2em .5em}.ui.small.table{font-size:.875em}.ui.table{font-size:1em}.ui.large.table{font-size:1.1em}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/elements/basic.icon.min.css b/css/semantic/rtl/minified/elements/basic.icon.min.css
new file mode 100644
index 0000000..ddc772e
--- /dev/null
+++ b/css/semantic/rtl/minified/elements/basic.icon.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+@font-face{font-family:'Basic Icons';src:url(../fonts/basic.icons.eot);src:url(../fonts/basic.icons.eot?#iefix) format('embedded-opentype'),url(../fonts/basic.icons.svg#basic.icons) format('svg'),url(../fonts/basic.icons.woff) format('woff'),url(../fonts/basic.icons.ttf) format('truetype');font-style:normal;font-weight:400;font-variant:normal;text-decoration:inherit;text-transform:none}i.basic.icon{display:inline-block;opacity:.75;margin:0 0 0 .25em;width:1.23em;height:1em;font-family:'Basic Icons';font-style:normal;line-height:1;font-weight:400;text-decoration:inherit;text-align:center;speak:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-font-smoothing:antialiased;font-smoothing:antialiased}i.basic.icon.circle.attention:before{content:'\2757'}i.basic.icon.circle.help:before{content:'\e704'}i.basic.icon.circle.info:before{content:'\e705'}i.basic.icon.add:before{content:'\2795'}i.basic.icon.chart:before{content:'📈'}i.basic.icon.chart.bar:before{content:'📊'}i.basic.icon.chart.pie:before{content:'\e7a2'}i.basic.icon.resize.full:before{content:'\e744'}i.basic.icon.resize.horizontal:before{content:'\2b0d'}i.basic.icon.resize.small:before{content:'\e746'}i.basic.icon.resize.vertical:before{content:'\2b0c'}i.basic.icon.down:before{content:'\2193'}i.basic.icon.down.triangle:before{content:'\25be'}i.basic.icon.down.arrow:before{content:'\e75c'}i.basic.icon.left:before{content:'\2190'}i.basic.icon.left.triangle:before{content:'\25c2'}i.basic.icon.left.arrow:before{content:'\e75d'}i.basic.icon.right:before{content:'\2192'}i.basic.icon.right.triangle:before{content:'\25b8'}i.basic.icon.right.arrow:before{content:'\e75e'}i.basic.icon.up:before{content:'\2191'}i.basic.icon.up.triangle:before{content:'\25b4'}i.basic.icon.up.arrow:before{content:'\e75f'}i.basic.icon.folder:before{content:'\e810'}i.basic.icon.open.folder:before{content:'📂'}i.basic.icon.globe:before{content:'𝌍'}i.basic.icon.desk.globe:before{content:'🌐'}i.basic.icon.star:before{content:'\e801'}i.basic.icon.star.empty:before{content:'\e800'}i.basic.icon.star.half:before{content:'\e701'}i.basic.icon.lock:before{content:'🔒'}i.basic.icon.unlock:before{content:'🔓'}i.basic.icon.layout.grid:before{content:'\e80c'}i.basic.icon.layout.block:before{content:'\e708'}i.basic.icon.layout.list:before{content:'\e80b'}i.basic.icon.heart.empty:before{content:'\2661'}i.basic.icon.heart:before{content:'\2665'}i.basic.icon.asterisk:before{content:'\2731'}i.basic.icon.attachment:before{content:'📎'}i.basic.icon.attention:before{content:'\26a0'}i.basic.icon.trophy:before{content:'🏉'}i.basic.icon.barcode:before{content:'\e792'}i.basic.icon.cart:before{content:'\e813'}i.basic.icon.block:before{content:'🚫'}i.basic.icon.book:before{content:'📖'}i.basic.icon.bookmark:before{content:'🔖'}i.basic.icon.calendar:before{content:'📅'}i.basic.icon.cancel:before{content:'\2716'}i.basic.icon.close:before{content:'\e80d'}i.basic.icon.color:before{content:'\e794'}i.basic.icon.chat:before{content:'\e720'}i.basic.icon.check:before{content:'\2611'}i.basic.icon.time:before{content:'🕔'}i.basic.icon.cloud:before{content:'\2601'}i.basic.icon.code:before{content:'\e714'}i.basic.icon.email:before{content:'\40'}i.basic.icon.settings:before{content:'\26ef'}i.basic.icon.setting:before{content:'\2699'}i.basic.icon.comment:before{content:'\e802'}i.basic.icon.clockwise.counter:before{content:'\27f2'}i.basic.icon.clockwise:before{content:'\27f3'}i.basic.icon.cube:before{content:'\e807'}i.basic.icon.direction:before{content:'\27a2'}i.basic.icon.doc:before{content:'📄'}i.basic.icon.docs:before{content:'\e736'}i.basic.icon.dollar:before{content:'💵'}i.basic.icon.paint:before{content:'\e7b5'}i.basic.icon.edit:before{content:'\270d'}i.basic.icon.eject:before{content:'\2ecf'}i.basic.icon.export:before{content:'\e715'}i.basic.icon.hide:before{content:'\e70b'}i.basic.icon.unhide:before{content:'\e80f'}i.basic.icon.facebook:before{content:'\f301'}i.basic.icon.fast-forward:before{content:'\e804'}i.basic.icon.fire:before{content:'🔥'}i.basic.icon.flag:before{content:'\2691'}i.basic.icon.lightning:before{content:'\26a1'}i.basic.icon.lab:before{content:'\68'}i.basic.icon.flight:before{content:'\2708'}i.basic.icon.forward:before{content:'\27a6'}i.basic.icon.gift:before{content:'🎁'}i.basic.icon.github:before{content:'\f308'}i.basic.icon.globe:before{content:'\e817'}i.basic.icon.headphones:before{content:'🎧'}i.basic.icon.question:before{content:'\2753'}i.basic.icon.home:before{content:'\2302'}i.basic.icon.i:before{content:'\2139'}i.basic.icon.idea:before{content:'💡'}i.basic.icon.open:before{content:'🔗'}i.basic.icon.content:before{content:'\e782'}i.basic.icon.location:before{content:'\e724'}i.basic.icon.mail:before{content:'\2709'}i.basic.icon.mic:before{content:'🎤'}i.basic.icon.minus:before{content:'\2d'}i.basic.icon.money:before{content:'💰'}i.basic.icon.off:before{content:'\e78e'}i.basic.icon.pause:before{content:'\e808'}i.basic.icon.photos:before{content:'\e812'}i.basic.icon.photo:before{content:'🌄'}i.basic.icon.pin:before{content:'📌'}i.basic.icon.play:before{content:'\e809'}i.basic.icon.plus:before{content:'\2b'}i.basic.icon.print:before{content:'\e716'}i.basic.icon.rss:before{content:'\e73a'}i.basic.icon.search:before{content:'🔍'}i.basic.icon.shuffle:before{content:'\e803'}i.basic.icon.tag:before{content:'\e80a'}i.basic.icon.tags:before{content:'\e70d'}i.basic.icon.terminal:before{content:'\e7ac'}i.basic.icon.thumbs.down:before{content:'👎'}i.basic.icon.thumbs.up:before{content:'👍'}i.basic.icon.to-end:before{content:'\e806'}i.basic.icon.to-start:before{content:'\e805'}i.basic.icon.top.list:before{content:'🏆'}i.basic.icon.trash:before{content:'\e729'}i.basic.icon.twitter:before{content:'\f303'}i.basic.icon.upload:before{content:'\e711'}i.basic.icon.user.add:before{content:'\e700'}i.basic.icon.user:before{content:'👤'}i.basic.icon.community:before{content:'\e814'}i.basic.icon.users:before{content:'👥'}i.basic.icon.id:before{content:'\e722'}i.basic.icon.url:before{content:'🔗'}i.basic.icon.zoom.in:before{content:'\e750'}i.basic.icon.zoom.out:before{content:'\e751'}i.dropdown.basic.icon{margin:0 .5em 0 0}i.basic.icon.star{width:auto;margin:0}i.basic.icon.left,i.basic.icon.left,i.basic.icon.left{width:auto;margin:0 0 0 .5em}i.basic.icon.search,i.basic.icon.up,i.basic.icon.down,i.basic.icon.right{width:auto;margin:0 .5em 0 0}i.basic.icon.delete:before{content:'\e80d'}i.basic.icon.dropdown:before{content:'\25be'}i.basic.icon.help:before{content:'\e704'}i.basic.icon.info:before{content:'\e705'}i.basic.icon.error:before{content:'\e80d'}i.basic.icon.dislike:before{content:'\2661'}i.basic.icon.like:before{content:'\2665'}i.basic.icon.eye:before{content:'\e80f'}i.basic.icon.eye.hidden:before{content:'\e70b'}i.basic.icon.date:before{content:'📅'}i.basic.icon.hover{opacity:1}i.basic.icon.active{opacity:1}i.emphasized.basic.icon{opacity:1}i.basic.icon.disabled{opacity:.3}i.link.basic.icon{cursor:pointer;opacity:.7;-webkit-transition:opacity .3s ease-out;-moz-transition:opacity .3s ease-out;transition:opacity .3s ease-out}.link.basic.icon:hover{opacity:1!important}i.circular.basic.icon{border-radius:500px!important;padding:.5em 0!important;-webkit-box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;line-height:1!important;width:2em!important;height:2em!important}i.circular.inverted.basic.icon{border:0;-webkit-box-shadow:none;box-shadow:none}i.vertically.flipped.basic.icon{-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}i.horizontally.flipped.basic.icon{-webkit-transform:scale(-1,1);-moz-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}i.left.rotated.basic.icon{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}i.right.rotated.basic.icon{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}i.square.basic.icon{width:2em;height:2em;padding:.5em .35em!important;-webkit-box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;vertical-align:baseline}i.square.basic.icon:before{vertical-align:middle}i.square.inverted.basic.icon{border:0;-webkit-box-shadow:none;box-shadow:none}i.inverted.basic.icon{background-color:#222;color:#FFF}i.blue.basic.icon{color:#6ECFF5!important}i.black.basic.icon{color:#5C6166!important}i.green.basic.icon{color:#A1CF64!important}i.red.basic.icon{color:#D95C5C!important}i.purple.basic.icon{color:#564F8A!important}i.teal.basic.icon{color:#00B5AD!important}i.inverted.black.basic.icon{background-color:#5C6166!important;color:#FFF!important}i.inverted.blue.basic.icon{background-color:#6ECFF5!important;color:#FFF!important}i.inverted.green.basic.icon{background-color:#A1CF64!important;color:#FFF!important}i.inverted.red.basic.icon{background-color:#D95C5C!important;color:#FFF!important}i.inverted.purple.basic.icon{background-color:#564F8A!important;color:#FFF!important}i.inverted.teal.basic.icon{background-color:#00B5AD!important;color:#FFF!important}i.small.basic.icon{font-size:.875em}i.basic.icon{font-size:1em}i.large.basic.icon{font-size:1.5em;margin-left:.2em;vertical-align:middle}i.big.basic.icon{font-size:2em;margin-left:.5em;vertical-align:middle}i.huge.basic.icon{font-size:4em;margin-left:.75em;vertical-align:middle}i.massive.basic.icon{font-size:8em;margin-left:1em;vertical-align:middle}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/elements/button.min.css b/css/semantic/rtl/minified/elements/button.min.css
new file mode 100644
index 0000000..a5ad366
--- /dev/null
+++ b/css/semantic/rtl/minified/elements/button.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.button{cursor:pointer;display:inline-block;vertical-align:middle;min-height:1em;outline:0;border:0;background-color:#FAFAFA;color:gray;margin:0;padding:.8em 1.5em;font-size:1rem;text-transform:uppercase;line-height:1;font-weight:700;font-style:normal;text-align:center;text-decoration:none;background-image:-webkit-gradient(linear,right top,right bottom,from(rgba(0,0,0,0)),to(rgba(0,0,0,.05)));background-image:-webkit-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.05));background-image:-moz-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.05));background-image:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.05));border-radius:.25em;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.08) inset;box-shadow:0 0 0 1px rgba(0,0,0,.08) inset;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-transition:opacity .25s ease,background-color .25s ease,color .25s ease,background .25s ease,-webkit-box-shadow .25s ease;-moz-transition:opacity .25s ease,background-color .25s ease,color .25s ease,background .25s ease,box-shadow .25s ease;transition:opacity .25s ease,background-color .25s ease,color .25s ease,background .25s ease,box-shadow .25s ease}.ui.buttons .active.button,.ui.active.button{background-color:#EAEAEA;background-image:none;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.05) inset!important;box-shadow:0 0 0 1px rgba(0,0,0,.05) inset!important;color:rgba(0,0,0,.7)}.ui.button:hover{background-image:-webkit-gradient(linear,right top,right bottom,from(rgba(0,0,0,0)),to(rgba(0,0,0,.08)));background-image:-webkit-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.08));background-image:-moz-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.08));background-image:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.08));color:rgba(0,0,0,.7)}.ui.button.active:hover{background-image:none}.ui.button:hover .icon,.ui.button.hover .icon{opacity:.85}.ui.button:active,.ui.active.button:active{background-color:#F1F1F1;color:rgba(0,0,0,.7);-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.05) inset!important;box-shadow:0 0 0 1px rgba(0,0,0,.05) inset!important}.ui.loading.button{position:relative;cursor:default;background-color:#FFF!important;color:transparent!important;-webkit-transition:all 0s linear;-moz-transition:all 0s linear;transition:all 0s linear}.ui.loading.button:after{position:absolute;top:0;right:0;width:100%;height:100%;content:'';background:transparent url(../images/loader-mini.gif) no-repeat 50% 50%}.ui.labeled.icon.loading.button .icon{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.ui.disabled.button,.ui.disabled.button:hover,.ui.disabled.button.active{background-color:#DDD!important;cursor:default;color:rgba(0,0,0,.5)!important;opacity:.3!important;background-image:none!important;-webkit-box-shadow:none!important;box-shadow:none!important}.ui.animated.button{position:relative;overflow:hidden}.ui.animated.button .visible.content{position:relative}.ui.animated.button .hidden.content{position:absolute;width:100%}.ui.animated.button .visible.content,.ui.animated.button .hidden.content{-webkit-transition:left .3s ease 0s;-moz-transition:left .3s ease 0s;transition:left .3s ease 0s}.ui.animated.button .visible.content{right:auto;left:0}.ui.animated.button .hidden.content{top:50%;right:auto;left:-100%;margin-top:-.55em}.ui.animated.button:hover .visible.content{right:auto;left:200%}.ui.animated.button:hover .hidden.content{right:auto;left:0}.ui.vertical.animated.button .visible.content,.ui.vertical.animated.button .hidden.content{-webkit-transition:top .3s ease 0s,-webkit-transform .3s ease 0s;-moz-transition:top .3s ease 0s,-moz-transform .3s ease 0s;transition:top .3s ease 0s,transform .3s ease 0s}.ui.vertical.animated.button .visible.content{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%);left:auto}.ui.vertical.animated.button .hidden.content{top:-100%;right:0;left:auto}.ui.vertical.animated.button:hover .visible.content{-webkit-transform:translateY(200%);-moz-transform:translateY(200%);-ms-transform:translateY(200%);transform:translateY(200%);left:auto}.ui.vertical.animated.button:hover .hidden.content{top:50%;left:auto}.ui.fade.animated.button .visible.content,.ui.fade.animated.button .hidden.content{-webkit-transition:opacity .3s ease 0s,-webkit-transform .3s ease 0s;-moz-transition:opacity .3s ease 0s,-moz-transform .3s ease 0s;transition:opacity .3s ease 0s,transform .3s ease 0s}.ui.fade.animated.button .visible.content{right:auto;left:auto;opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.ui.fade.animated.button .hidden.content{opacity:0;right:0;left:auto;-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.ui.fade.animated.button:hover .visible.content{right:auto;left:auto;opacity:0;-webkit-transform:scale(0.7);-moz-transform:scale(0.7);-ms-transform:scale(0.7);transform:scale(0.7)}.ui.fade.animated.button:hover .hidden.content{right:0;left:auto;opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.ui.primary.buttons .button,.ui.primary.button{background-color:#D95C5C;color:#FFF}.ui.primary.buttons .button:hover,.ui.primary.button:hover,.ui.primary.buttons .active.button,.ui.primary.button.active{background-color:#E75859;color:#FFF}.ui.primary.buttons .button:active,.ui.primary.button:active{background-color:#D24B4C;color:#FFF}.ui.secondary.buttons .button,.ui.secondary.button{background-color:#00B5AD;color:#FFF}.ui.secondary.buttons .button:hover,.ui.secondary.button:hover,.ui.secondary.buttons .active.button,.ui.secondary.button.active{background-color:#009A93;color:#FFF}.ui.secondary.buttons .button:active,.ui.secondary.button:active{background-color:#00847E;color:#FFF}.ui.facebook.button{background-color:#3B579D;color:#FFF}.ui.facebook.button:hover{background-color:#3A59A9;color:#FFF}.ui.facebook.button:active{background-color:#334F95;color:#FFF}.ui.twitter.button{background-color:#4092CC;color:#FFF}.ui.twitter.button:hover{background-color:#399ADE;color:#FFF}.ui.twitter.button:active{background-color:#3283BC;color:#FFF}.ui.google.plus.button{background-color:#D34836;color:#FFF}.ui.google.plus.button:hover{background-color:#E3432E;color:#FFF}.ui.google.plus.button:active{background-color:#CA3A27;color:#FFF}.ui.linkedin.button{background-color:#1F88BE;color:#FFF}.ui.linkedin.button:hover{background-color:#1394D6;color:#FFF}.ui.linkedin.button:active{background-color:#1179AE;color:#FFF}.ui.youtube.button{background-color:#CC181E;color:#FFF}.ui.youtube.button:hover{background-color:#DF0209;color:#FFF}.ui.youtube.button:active{background-color:#A50006;color:#FFF}.ui.instagram.button{background-color:#49769C;color:#FFF}.ui.instagram.button:hover{background-color:#4781B1;color:#FFF}.ui.instagram.button:active{background-color:#38658A;color:#FFF}.ui.pinterest.button{background-color:#00ACED;color:#FFF}.ui.pinterest.button:hover{background-color:#00B9FF;color:#FFF}.ui.pinterest.button:active{background-color:#009EDA;color:#FFF}.ui.vk.button{background-color:#4D7198;color:#FFF}.ui.vk.button:hover{background-color:#537AA5;color:#FFF}.ui.vk.button:active{background-color:#405E7E;color:#FFF}.ui.button>.icon{margin-left:.6em;line-height:1;-webkit-transition:opacity .1s ease;-moz-transition:opacity .1s ease;transition:opacity .1s ease}.ui.left.floated.buttons,.ui.left.floated.button{float:right;margin-left:.25em}.ui.right.floated.buttons,.ui.right.floated.button{float:left;margin-right:.25em}.ui.buttons .button,.ui.button{font-size:1rem}.ui.mini.buttons .button,.ui.mini.buttons .or,.ui.mini.button{font-size:.8rem}.ui.mini.buttons .button,.ui.mini.button{padding:.6em .8em}.ui.mini.icon.buttons .button,.ui.mini.buttons .icon.button{padding:.6em}.ui.tiny.buttons .button,.ui.tiny.buttons .or,.ui.tiny.button{font-size:.875em}.ui.tiny.buttons .button,.ui.tiny.buttons .button,.ui.tiny.button{padding:.6em .8em}.ui.tiny.icon.buttons .button,.ui.tiny.buttons .icon.button{padding:.6em}.ui.small.buttons .button,.ui.small.buttons .or,.ui.small.button{font-size:.875rem}.ui.large.buttons .button,.ui.large.buttons .or,.ui.large.button{font-size:1.125rem}.ui.big.buttons .button,.ui.big.buttons .or,.ui.big.button{font-size:1.25rem}.ui.huge.buttons .button,.ui.huge.buttons .or,.ui.huge.button{font-size:1.375rem}.ui.massive.buttons .button,.ui.massive.buttons .or,.ui.massive.button{font-size:1.5rem;font-weight:700}.ui.tiny.buttons .or:before,.ui.mini.buttons .or:before{width:1.45em;height:1.55em;line-height:1.4;margin-right:-.725em;margin-top:-.25em}.ui.tiny.buttons .or:after,.ui.mini.buttons .or:after{height:1.45em}.ui.huge.loading.button:after{background-image:url(../images/loader-small.gif)}.ui.massive.buttons .loading.button:after,.ui.gigantic.buttons .loading.button:after,.ui.massive.loading.button:after,.ui.gigantic.loading.button:after{background-image:url(../images/loader-medium.gif)}.ui.huge.loading.button:after,.ui.huge.loading.button.active:after{background-image:url(../images/loader-small.gif)}.ui.massive.buttons .loading.button:after,.ui.gigantic.buttons .loading.button:after,.ui.massive.loading.button:after,.ui.gigantic.loading.button:after,.ui.massive.buttons .loading.button.active:after,.ui.gigantic.buttons .loading.button.active:after,.ui.massive.loading.button.active:after,.ui.gigantic.loading.button.active:after{background-image:url(../images/loader-medium.gif)}.ui.icon.buttons .button,.ui.icon.button{padding:.8em}.ui.icon.buttons .button>.icon,.ui.icon.button>.icon{opacity:.9;margin:0;vertical-align:top}.ui.basic.buttons .button,.ui.basic.button{background-color:transparent!important;background-image:none;color:gray!important;font-weight:400;text-transform:none;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset}.ui.basic.buttons{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;border-radius:.button:hover,.ui.basic.button:hover{background-image:none .25em}.ui.basic.buttons;color:#7F7F7F!important;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.18) inset;box-shadow:0 0 0 1px rgba(0,0,0,.18) inset}.ui.basic.buttons .button:active,.ui.basic.button:active{background-color:rgba(0,0,0,.02)!important;color:#7F7F7F!important;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset}.ui.basic.buttons .button.active,.ui.basic.button.active{background-color:rgba(0,0,0,.05);color:#7F7F7F;-webkit-box-shadow:0 0 0 1px #BDBDBD inset;box-shadow:0 0 0 1px #BDBDBD inset}.ui.basic.buttons .button.active:hover,.ui.basic.button.active:hover{background-color:rgba(0,0,0,.1)}.ui.basic.inverted.buttons .button,.ui.basic.inverted.button{color:#FAFAFA!important;-webkit-box-shadow:0 0 0 1px rgba(255,255,255,.3) inset;box-shadow:0 0 0 1px rgba(255,255,255,.3) inset}.ui.basic.inverted.buttons .button:hover,.ui.basic.inverted.button:hover{background-image:none;color:#FFF!important;-webkit-box-shadow:0 0 0 1px rgba(255,255,255,.5) inset;box-shadow:0 0 0 1px rgba(255,255,255,.5) inset}.ui.basic.inverted.buttons .button:active,.ui.basic.inverted.button:active{background-color:rgba(255,255,255,.05)!important;color:#FFF!important;-webkit-box-shadow:0 0 0 1px rgba(255,255,255,.8) inset!important;box-shadow:0 0 0 1px rgba(255,255,255,.8) inset!important}.ui.basic.inverted.buttons .button.active,.ui.basic.inverted.button.active{background-color:rgba(255,255,255,.5);color:#FFF;-webkit-box-shadow:none;box-shadow:none}.ui.basic.inverted.buttons .button.active:hover,.ui.basic.inverted.button.active:hover{background-color:rgba(0,0,0,.1)}.ui.basic.buttons .button{border-right:1px solid rgba(0,0,0,.1);-webkit-box-shadow:none;box-shadow:none}.ui.basic.buttons .button:hover,.ui.basic.buttons .button:active{-webkit-box-shadow:none;box-shadow:none}.ui.basic.buttons .button.active,.ui.basic.buttons .button.active:hover{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.2) inset;box-shadow:0 0 0 1px rgba(0,0,0,.2) inset}.ui.labeled.icon.buttons .button,.ui.labeled.icon.button{position:relative;padding-right:4em!important;padding-left:1.4em!important}.ui.labeled.icon.buttons>.button>.icon,.ui.labeled.icon.button>.icon{position:absolute;top:0;right:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;width:2.75em;height:100%;padding-top:.8em;background-color:rgba(0,0,0,.05);text-align:center;border-radius:0 .25em .25em 0;line-height:1;-webkit-box-shadow:-1px 0 0 0 rgba(0,0,0,.05) inset;box-shadow:-1px 0 0 0 rgba(0,0,0,.05) inset}.ui.labeled.icon.buttons .button>.icon{border-radius:.button:first-child>.icon{border-top-right-radius:.25em 0}.ui.labeled.icon.buttons;border-bottom-right-radius:.25em}.ui.labeled.icon.buttons .button:last-child>.icon{border-top-left-radius:.25em;border-bottom-left-radius:.25em}.ui.vertical.labeled.icon.buttons .button:first-child>.icon{border-radius:0;border-top-right-radius:.25em}.ui.vertical.labeled.icon.buttons .button:last-child>.icon{border-radius:0;border-bottom-right-radius:.25em}.ui.right.labeled.icon.button{padding-right:1.4em!important;padding-left:4em!important}.ui.left.fluid.labeled.icon.button,.ui.right.fluid.labeled.icon.button{padding-right:1.4em!important;padding-left:1.4em!important}.ui.right.labeled.icon.button .icon{right:auto;left:0;border-radius:.25em 0 0 .25em;-webkit-box-shadow:1px 0 0 0 rgba(0,0,0,.05) inset;box-shadow:1px 0 0 0 rgba(0,0,0,.05) inset}.ui.toggle.buttons .active.button,.ui.buttons .button.toggle.active,.ui.button.toggle.active{background-color:#5BBD72!important;color:#FFF!important;-webkit-box-shadow:none!important;box-shadow:none!important}.ui.button.toggle.active:hover{background-color:#58CB73!important;color:#FFF!important;-webkit-box-shadow:none!important;box-shadow:none!important}.ui.circular.button{border-radius:10em}.ui.attached.button{display:block;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1)!important;box-shadow:0 0 0 1px rgba(0,0,0,.1)!important}.ui.attached.top.button{border-radius:.25em .25em 0 0}.ui.attached.bottom.button{border-radius:0 0 .25em .25em}.ui.attached.left.button{display:inline-block;border-right:0;padding-left:.75em;text-align:left;border-radius:0 .25em .25em}.ui.attached.right.button{display:inline-block 0;padding-right:.75em;text-align:right;border-radius:0 .25em .25em 0}.ui.buttons .or{position:relative;float:right;width:.3em;height:1.1em;z-index:3}.ui.buttons .or:before{position:absolute;top:50%;right:50%;content:'or';background-color:#FFF;margin-top:-.1em;margin-right:-.9em;width:1.8em;height:1.8em;line-height:1.55;color:#AAA;font-style:normal;font-weight:400;text-align:center;border-radius:500px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.buttons .or[data-text]:before{content:attr(data-text)}.ui.buttons .or:after{position:absolute;top:0;right:0;content:' ';width:.3em;height:1.7em;background-color:transparent;border-top:.5em solid #FFF;border-bottom:.5em solid #FFF}.ui.fluid.buttons .or{width:0!important}.ui.fluid.buttons .or:after{display:none}.attached.ui.buttons{margin:0;border-radius:4px 4px 0 0}.attached.ui.buttons .button:first-child{border-radius:4px 0 0}.attached.ui.buttons .button:last-child{border-radius:0 4px 0 0}.bottom.attached.ui.buttons{margin-top:-1px;border-radius:0 0 4px 4px}.bottom.attached.ui.buttons .button:first-child{border-radius:0 0 0 4px}.bottom.attached.ui.buttons .button:last-child{border-radius:0 0 4px}.left.attached.ui.buttons{margin-right:-1px;border-radius:0 4px 4px 0}.left.attached.ui.buttons .button:first-child{margin-right:-1px;border-radius:0 4px 0 0}.left.attached.ui.buttons .button:last-child{margin-right:-1px;border-radius:0 0 .button{margin-left:-1px 4px}.right.attached.ui.buttons,.right.attached.ui.buttons;border-radius:4px 0 0 4px}.right.attached.ui.buttons .button:first-child{margin-right:-1px;border-radius:0 4px .button:last-child{margin-right:-1px 0}.right.attached.ui.buttons;border-radius:0 0 4px}.ui.fluid.buttons,.ui.button.fluid,.ui.fluid.buttons>.button{display:block 0;width:100%}.ui.\32.buttons>.button,.ui.two.buttons>.button{width:50%}.ui.\33.buttons>.button,.ui.three.buttons>.button{width:33.333%}.ui.\34.buttons>.button,.ui.four.buttons>.button{width:25%}.ui.\35.buttons>.button,.ui.five.buttons>.button{width:20%}.ui.\36.buttons>.button,.ui.six.buttons>.button{width:16.666%}.ui.\37.buttons>.button,.ui.seven.buttons>.button{width:14.285%}.ui.\38.buttons>.button,.ui.eight.buttons>.button{width:12.5%}.ui.\39.buttons>.button,.ui.nine.buttons>.button{width:11.11%}.ui.\31\30.buttons>.button,.ui.ten.buttons>.button{width:10%}.ui.\31\31.buttons>.button,.ui.eleven.buttons>.button{width:9.09%}.ui.\31\32.buttons>.button,.ui.twelve.buttons>.button{width:8.3333%}.ui.fluid.vertical.buttons,.ui.fluid.vertical.buttons>.button{display:block;width:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.\32.vertical.buttons>.button,.ui.two.vertical.buttons>.button{height:50%}.ui.\33.vertical.buttons>.button,.ui.three.vertical.buttons>.button{height:33.333%}.ui.\34.vertical.buttons>.button,.ui.four.vertical.buttons>.button{height:25%}.ui.\35.vertical.buttons>.button,.ui.five.vertical.buttons>.button{height:20%}.ui.\36.vertical.buttons>.button,.ui.six.vertical.buttons>.button{height:16.666%}.ui.\37.vertical.buttons>.button,.ui.seven.vertical.buttons>.button{height:14.285%}.ui.\38.vertical.buttons>.button,.ui.eight.vertical.buttons>.button{height:12.5%}.ui.\39.vertical.buttons>.button,.ui.nine.vertical.buttons>.button{height:11.11%}.ui.\31\30.vertical.buttons>.button,.ui.ten.vertical.buttons>.button{height:10%}.ui.\31\31.vertical.buttons>.button,.ui.eleven.vertical.buttons>.button{height:9.09%}.ui.\31\32.vertical.buttons>.button,.ui.twelve.vertical.buttons>.button{height:8.3333%}.ui.black.buttons .button,.ui.black.button{background-color:#5C6166;color:#FFF}.ui.black.buttons .button:hover,.ui.black.button:hover{background-color:#4C4C4C;color:#FFF}.ui.black.buttons .button:active,.ui.black.button:active{background-color:#333;color:#FFF}.ui.green.buttons .button,.ui.green.button{background-color:#5BBD72;color:#FFF}.ui.green.buttons .button:hover,.ui.green.button:hover,.ui.green.buttons .active.button,.ui.green.button.active{background-color:#58cb73;color:#FFF}.ui.green.buttons .button:active,.ui.green.button:active{background-color:#4CB164;color:#FFF}.ui.red.buttons .button,.ui.red.button{background-color:#D95C5C;color:#FFF}.ui.red.buttons .button:hover,.ui.red.button:hover,.ui.red.buttons .active.button,.ui.red.button.active{background-color:#E75859;color:#FFF}.ui.red.buttons .button:active,.ui.red.button:active{background-color:#D24B4C;color:#FFF}.ui.orange.buttons .button,.ui.orange.button{background-color:#E96633;color:#FFF}.ui.orange.buttons .button:hover,.ui.orange.button:hover,.ui.orange.buttons .active.button,.ui.orange.button.active{background-color:#FF7038;color:#FFF}.ui.orange.buttons .button:active,.ui.orange.button:active{background-color:#DA683B;color:#FFF}.ui.blue.buttons .button,.ui.blue.button{background-color:#6ECFF5;color:#FFF}.ui.blue.buttons .button:hover,.ui.blue.button:hover,.ui.blue.buttons .active.button,.ui.blue.button.active{background-color:#1AB8F3;color:#FFF}.ui.blue.buttons .button:active,.ui.blue.button:active{background-color:#0AA5DF;color:#FFF}.ui.purple.buttons .button,.ui.purple.button{background-color:#564F8A;color:#FFF}.ui.purple.buttons .button:hover,.ui.purple.button:hover,.ui.purple.buttons .active.button,.ui.purple.button.active{background-color:#3E3773;color:#FFF}.ui.purple.buttons .button:active,.ui.purple.button:active{background-color:#2E2860;color:#FFF}.ui.teal.buttons .button,.ui.teal.button{background-color:#00B5AD;color:#FFF}.ui.teal.buttons .button:hover,.ui.teal.button:hover,.ui.teal.buttons .active.button,.ui.teal.button.active{background-color:#009A93;color:#FFF}.ui.teal.buttons .button:active,.ui.teal.button:active{background-color:#00847E;color:#FFF}.ui.positive.buttons .button,.ui.positive.button{background-color:#5BBD72!important;color:#FFF}.ui.positive.buttons .button:hover,.ui.positive.button:hover,.ui.positive.buttons .active.button,.ui.positive.button.active{background-color:#58CB73!important;color:#FFF}.ui.positive.buttons .button:active,.ui.positive.button:active{background-color:#4CB164!important;color:#FFF}.ui.negative.buttons .button,.ui.negative.button{background-color:#D95C5C!important;color:#FFF}.ui.negative.buttons .button:hover,.ui.negative.button:hover,.ui.negative.buttons .active.button,.ui.negative.button.active{background-color:#E75859!important;color:#FFF}.ui.negative.buttons .button:active,.ui.negative.button:active{background-color:#D24B4C!important;color:#FFF}.ui.buttons{display:inline-block;vertical-align:middle}.ui.buttons:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui.buttons .button:first-child{border-right:0}.ui.buttons .button{float:right;border-radius:.button:first-child{margin-right:0 0}.ui.buttons;border-top-right-radius:.25em;border-bottom-right-radius:.25em}.ui.buttons .button:last-child{border-top-left-radius:.25em;border-bottom-left-radius:.25em}.ui.vertical.buttons{display:inline-block}.ui.vertical.buttons .button{display:block;float:none;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset}.ui.vertical.buttons .button:first-child,.ui.vertical.buttons .mini.button:first-child,.ui.vertical.buttons .tiny.button:first-child,.ui.vertical.buttons .small.button:first-child,.ui.vertical.buttons .massive.button:first-child,.ui.vertical.buttons .huge.button:first-child{margin-top:0;border-radius:.25em .25em 0 0}.ui.vertical.buttons .button:last-child,.ui.vertical.buttons .mini.button:last-child,.ui.vertical.buttons .tiny.button:last-child,.ui.vertical.buttons .small.button:last-child,.ui.vertical.buttons .massive.button:last-child,.ui.vertical.buttons .huge.button:last-child,.ui.vertical.buttons .gigantic.button:last-child{border-radius:0 0 .25em .25em}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/elements/divider.min.css b/css/semantic/rtl/minified/elements/divider.min.css
new file mode 100644
index 0000000..33819da
--- /dev/null
+++ b/css/semantic/rtl/minified/elements/divider.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.divider{margin:1rem 0rem;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(255,255,255,.8);line-height:1;height:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ui.vertical.divider,.ui.horizontal.divider{position:absolute;border:0;height:0;margin:0;background-color:transparent;font-size:.875rem;font-weight:700;text-align:center;text-transform:uppercase;color:rgba(0,0,0,.8)}.ui.vertical.divider{position:absolute;z-index:2;top:50%;right:50%;margin:0 -3% 0 0;width:6%;height:50%;line-height:0;padding:0}.ui.vertical.divider:before,.ui.vertical.divider:after{position:absolute;right:50%;content:" ";z-index:3;border-right:1px solid rgba(0,0,0,.1);border-left:1px solid rgba(255,255,255,.8);width:0;height:80%}.ui.vertical.divider:before{top:-100%}.ui.vertical.divider:after{top:auto;bottom:0}.ui.horizontal.divider{position:relative;top:0;right:0;margin:1rem 1.5rem;height:auto;padding:0;line-height:1}.ui.horizontal.divider:before,.ui.horizontal.divider:after{position:absolute;content:" ";z-index:3;width:50%;top:50%;height:0;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(255,255,255,.8)}.ui.horizontal.divider:before{right:0;margin-right:-1.5rem}.ui.horizontal.divider:after{right:auto;left:0;margin-left:-1.5rem}.ui.divider>.icon{margin:0;font-size:1rem;vertical-align:middle}.ui.divider.inverted{color:#fff}.ui.vertical.inverted.divider,.ui.horizontal.inverted.divider{color:rgba(255,255,255,.9)}.ui.divider.inverted,.ui.divider.inverted:after,.ui.divider.inverted:before{border-top-color:rgba(0,0,0,.15);border-bottom-color:rgba(255,255,255,.15);border-right-color:rgba(0,0,0,.15);border-left-color:rgba(255,255,255,.15)}.ui.fitted.divider{margin:0}.ui.clearing.divider{clear:both}.ui.section.divider{margin-top:2rem;margin-bottom:2rem}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/elements/header.min.css b/css/semantic/rtl/minified/elements/header.min.css
new file mode 100644
index 0000000..0f44936
--- /dev/null
+++ b/css/semantic/rtl/minified/elements/header.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.header{border:0;margin:1em 0 1rem;padding:0;font-size:1.33em;font-weight:700;line-height:1.33}.ui.header .sub.header{font-size:1rem;font-weight:400;margin:0;padding:0;line-height:1.2;color:rgba(0,0,0,.5)}.ui.header .icon{display:table-cell;vertical-align:middle;padding-left:.5em}.ui.header .icon:only-child{display:inline-block;vertical-align:baseline}.ui.header .content{display:inline-block;vertical-align:top}.ui.header .icon+.content{padding-right:.5em;display:table-cell}.ui.header:first-child{margin-top:0}.ui.header:last-child{margin-bottom:0}.ui.header+p{margin-top:0}h1.ui.header{min-height:1rem;line-height:1.33;font-size:2rem}h2.ui.header{line-height:1.33;font-size:1.75rem}h3.ui.header{line-height:1.33;font-size:1.33rem}h4.ui.header{line-height:1.33;font-size:1.1rem}h5.ui.header{line-height:1.2;font-size:1rem}.ui.huge.header{min-height:1em;font-size:2em}.ui.large.header{font-size:1.75em}.ui.medium.header{font-size:1.33em}.ui.small.header{font-size:1.1em}.ui.tiny.header{font-size:1em}.ui.icon.header{display:inline-block;text-align:center}.ui.icon.header .icon{float:none;display:block;font-size:3em;margin:0 auto .2em;padding:0}.ui.icon.header .content{display:block}.ui.icon.header .circular.icon,.ui.icon.header .square.icon{font-size:2em}.ui.block.icon.header .icon{margin-bottom:0}.ui.icon.header.aligned{margin-right:auto;margin-left:auto;display:block}.ui.disabled.header{opacity:.5}.ui.blue.header{color:#6ECFF5!important}.ui.black.header{color:#5C6166!important}.ui.green.header{color:#A1CF64!important}.ui.red.header{color:#D95C5C!important}.ui.purple.header{color:#564F8A!important}.ui.teal.header{color:#00B5AD!important}.ui.blue.dividing.header{border-bottom:3px solid #6ECFF5}.ui.black.dividing.header{border-bottom:3px solid #5C6166}.ui.green.dividing.header{border-bottom:3px solid #A1CF64}.ui.red.dividing.header{border-bottom:3px solid #D95C5C}.ui.purple.dividing.header{border-bottom:3px solid #564F8A}.ui.teal.dividing.header{border-bottom:3px solid #00B5AD}.ui.inverted.header{color:#FFF}.ui.inverted.header .sub.header{color:rgba(255,255,255,.85)}.ui.inverted.black.header{background-color:#5C6166!important;color:#FFF!important}.ui.inverted.blue.header{background-color:#6ECFF5!important;color:#FFF!important}.ui.inverted.green.header{background-color:#A1CF64!important;color:#FFF!important}.ui.inverted.red.header{background-color:#D95C5C!important;color:#FFF!important}.ui.inverted.purple.header{background-color:#564F8A!important;color:#FFF!important}.ui.inverted.teal.header{background-color:#00B5AD!important;color:#FFF!important}.ui.inverted.block.header{border-bottom:0}.ui.left.aligned.header{text-align:right}.ui.right.aligned.header{text-align:left}.ui.center.aligned.header{text-align:center}.ui.justified.header{text-align:justify}.ui.justified.header:after{display:inline-block;content:'';width:100%}.ui.floated.header,.ui.left.floated.header{float:right;margin-top:0;margin-left:.5em}.ui.right.floated.header{float:left;margin-top:0;margin-right:.5em}.ui.fitted.header{padding:0}.ui.dividing.header{padding-bottom:.2rem;border-bottom:1px solid rgba(0,0,0,.1)}.ui.dividing.header .sub.header{padding-bottom:.5em}.ui.dividing.header .icon{margin-bottom:.2em}.ui.block.header{background-color:rgba(0,0,0,.05);padding:.5em 1em}.ui.attached.header{background-color:#E0E0E0;padding:.5em 1rem;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1)}.ui.top.attached.header{margin-bottom:0;border-radius:.3125em .3125em 0}.ui.bottom.attached.header{margin-top:0 0;border-radius:0 0 .3125em} .3125em
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/elements/icon.min.css b/css/semantic/rtl/minified/elements/icon.min.css
new file mode 100644
index 0000000..998b291
--- /dev/null
+++ b/css/semantic/rtl/minified/elements/icon.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+@font-face{font-family:Icons;src:url(../fonts/icons.eot);src:url(../fonts/icons.eot?#iefix) format('embedded-opentype'),url(../fonts/icons.svg#icons) format('svg'),url(../fonts/icons.woff) format('woff'),url(../fonts/icons.ttf) format('truetype');font-style:normal;font-weight:400;font-variant:normal;text-decoration:inherit;text-transform:none}i.icon{display:inline-block;opacity:.75;margin:0 0 0 .25em;width:1.23em;height:1em;font-family:Icons;font-style:normal;line-height:1;font-weight:400;text-decoration:inherit;text-align:center;speak:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}i.icon.left:before{content:"\f060"}i.icon.right:before{content:"\f061"}i.icon.add.sign.box:before{content:"\f0fe"}i.icon.add.sign:before{content:"\f055"}i.icon.add:before{content:"\f067"}i.icon.adjust:before{content:"\f042"}i.icon.adn:before{content:"\f170"}i.icon.align.center:before{content:"\f037"}i.icon.align.justify:before{content:"\f039"}i.icon.align.left:before{content:"\f036"}i.icon.align.right:before{content:"\f038"}i.icon.ambulance:before{content:"\f0f9"}i.icon.anchor:before{content:"\f13d"}i.icon.android:before{content:"\f17b"}i.icon.angle.down:before{content:"\f107"}i.icon.angle.left:before{content:"\f104"}i.icon.angle.right:before{content:"\f105"}i.icon.angle.up:before{content:"\f106"}i.icon.apple:before{content:"\f179"}i.icon.archive:before{content:"\f187"}i.icon.arrow.down:before{content:"\f078"}i.icon.arrow.left:before{content:"\f053"}i.icon.arrow.right:before{content:"\f054"}i.icon.arrow.sign.down:before{content:"\f13a"}i.icon.arrow.sign.left:before{content:"\f137"}i.icon.arrow.sign.right:before{content:"\f138"}i.icon.arrow.sign.up:before{content:"\f139"}i.icon.arrow.up:before{content:"\f077"}i.icon.asterisk:before{content:"\f069"}i.icon.attachment:before{content:"\f0c6"}i.icon.attention:before{content:"\f06a"}i.icon.backward:before{content:"\f04a"}i.icon.ban.circle:before{content:"\f05e"}i.icon.bar.chart:before{content:"\f080"}i.icon.barcode:before{content:"\f02a"}i.icon.beer:before{content:"\f0fc"}i.icon.bell.outline:before{content:"\f0a2"}i.icon.bell:before{content:"\f0f3"}i.icon.bitbucket.sign:before{content:"\f172"}i.icon.bitbucket:before{content:"\f171"}i.icon.bitcoin:before{content:"\f15a"}i.icon.bold:before{content:"\f032"}i.icon.bolt:before{content:"\f0e7"}i.icon.book:before{content:"\f02d"}i.icon.bookmark.empty:before{content:"\f097"}i.icon.bookmark:before{content:"\f02e"}i.icon.box.arrow.down:before{content:"\f150"}i.icon.box.arrow.right:before{content:"\f152"}i.icon.box.arrow.up:before{content:"\f151"}i.icon.briefcase:before{content:"\f0b1"}i.icon.browser:before{content:"\f022"}i.icon.bug:before{content:"\f188"}i.icon.building:before{content:"\f0f7"}i.icon.bullhorn:before{content:"\f0a1"}i.icon.bullseye:before{content:"\f140"}i.icon.calendar.empty:before{content:"\f133"}i.icon.calendar:before{content:"\f073"}i.icon.camera.retro:before{content:"\f083"}i.icon.camera:before{content:"\f030"}i.icon.triangle.down:before{content:"\f0d7"}i.icon.triangle.left:before{content:"\f0d9"}i.icon.triangle.right:before{content:"\f0da"}i.icon.triangle.up:before{content:"\f0d8"}i.icon.cart:before{content:"\f07a"}i.icon.certificate:before{content:"\f0a3"}i.icon.chat.outline:before{content:"\f0e6"}i.icon.chat:before{content:"\f086"}i.icon.checkbox.empty:before{content:"\f096"}i.icon.checkbox.minus:before{content:"\f147"}i.icon.checked.checkbox:before{content:"\f046"}i.icon.checkmark.sign:before{content:"\f14a"}i.icon.checkmark:before{content:"\f00c"}i.icon.circle.blank:before{content:"\f10c"}i.icon.circle.down:before{content:"\f0ab"}i.icon.circle.left:before{content:"\f0a8"}i.icon.circle.right:before{content:"\f0a9"}i.icon.circle.up:before{content:"\f0aa"}i.icon.circle:before{content:"\f111"}i.icon.cloud.download:before{content:"\f0ed"}i.icon.cloud.upload:before{content:"\f0ee"}i.icon.cloud:before{content:"\f0c2"}i.icon.code.fork:before{content:"\f126"}i.icon.code:before{content:"\f121"}i.icon.coffee:before{content:"\f0f4"}i.icon.collapse:before{content:"\f117"}i.icon.comment.outline:before{content:"\f0e5"}i.icon.comment:before{content:"\f075"}i.icon.copy:before{content:"\f0c5"}i.icon.crop:before{content:"\f125"}i.icon.css3:before{content:"\f13c"}i.icon.cut:before{content:"\f0c4"}i.icon.dashboard:before{content:"\f0e4"}i.icon.desktop:before{content:"\f108"}i.icon.doctor:before{content:"\f0f0"}i.icon.dollar:before{content:"\f155"}i.icon.double.angle.down:before{content:"\f103"}i.icon.double.angle.left:before{content:"\f100"}i.icon.double.angle.right:before{content:"\f101"}i.icon.double.angle.up:before{content:"\f102"}i.icon.down:before{content:"\f063"}i.icon.download.disk:before{content:"\f019"}i.icon.download:before{content:"\f01a"}i.icon.dribbble:before{content:"\f17d"}i.icon.dropbox:before{content:"\f16b"}i.icon.edit.sign:before{content:"\f14b"}i.icon.edit:before{content:"\f044"}i.icon.eject:before{content:"\f052"}i.icon.ellipsis.horizontal:before{content:"\f141"}i.icon.ellipsis.vertical:before{content:"\f142"}i.icon.eraser:before{content:"\f12d"}i.icon.euro:before{content:"\f153"}i.icon.exchange:before{content:"\f0ec"}i.icon.exclamation:before{content:"\f12a"}i.icon.expand:before{content:"\f116"}i.icon.external.url.sign:before{content:"\f14c"}i.icon.external.url:before{content:"\f08e"}i.icon.facebook.sign:before{content:"\f082"}i.icon.facebook:before{content:"\f09a"}i.icon.facetime.video:before{content:"\f03d"}i.icon.fast.backward:before{content:"\f049"}i.icon.fast.forward:before{content:"\f050"}i.icon.female:before{content:"\f182"}i.icon.fighter.jet:before{content:"\f0fb"}i.icon.file.outline:before{content:"\f016"}i.icon.file.text.outline:before{content:"\f0f6"}i.icon.file.text:before{content:"\f15c"}i.icon.file:before{content:"\f15b"}i.icon.filter:before{content:"\f0b0"}i.icon.fire.extinguisher:before{content:"\f134"}i.icon.fire:before{content:"\f06d"}i.icon.flag.checkered:before{content:"\f11e"}i.icon.flag.empty:before{content:"\f11d"}i.icon.flag:before{content:"\f024"}i.icon.flickr:before{content:"\f16e"}i.icon.folder.open.outline:before{content:"\f115"}i.icon.folder.open:before{content:"\f07c"}i.icon.folder.outline:before{content:"\f114"}i.icon.folder:before{content:"\f07b"}i.icon.font:before{content:"\f031"}i.icon.food:before{content:"\f0f5"}i.icon.forward.mail:before{content:"\f064"}i.icon.forward:before{content:"\f04e"}i.icon.foursquare:before{content:"\f180"}i.icon.frown:before{content:"\f119"}i.icon.fullscreen:before{content:"\f0b2"}i.icon.gamepad:before{content:"\f11b"}i.icon.gift:before{content:"\f06b"}i.icon.github.alternate:before{content:"\f09b"}i.icon.github.sign:before{content:"\f092"}i.icon.github:before{content:"\f113"}i.icon.gittip:before{content:"\f184"}i.icon.glass:before{content:"\f000"}i.icon.globe:before{content:"\f0ac"}i.icon.google.plus.sign:before{content:"\f0d4"}i.icon.google.plus:before{content:"\f0d5"}i.icon.h.sign:before{content:"\f0fd"}i.icon.hand.down:before{content:"\f0a7"}i.icon.hand.left:before{content:"\f0a5"}i.icon.hand.right:before{content:"\f0a4"}i.icon.hand.up:before{content:"\f0a6"}i.icon.hdd:before{content:"\f0a0"}i.icon.headphones:before{content:"\f025"}i.icon.heart.empty:before{content:"\f08a"}i.icon.heart:before{content:"\f004"}i.icon.help:before{content:"\f059"}i.icon.hide:before{content:"\f070"}i.icon.home:before{content:"\f015"}i.icon.hospital:before{content:"\f0f8"}i.icon.html5:before{content:"\f13b"}i.icon.inbox:before{content:"\f01c"}i.icon.indent.left:before{content:"\f03b"}i.icon.indent.right:before{content:"\f03c"}i.icon.info.letter:before{content:"\f129"}i.icon.info:before{content:"\f05a"}i.icon.instagram:before{content:"\f16d"}i.icon.italic:before{content:"\f033"}i.icon.key:before{content:"\f084"}i.icon.keyboard:before{content:"\f11c"}i.icon.lab:before{content:"\f0c3"}i.icon.laptop:before{content:"\f109"}i.icon.layout.block:before{content:"\f009"}i.icon.layout.column:before{content:"\f0db"}i.icon.layout.grid:before{content:"\f00a"}i.icon.layout.list:before{content:"\f00b"}i.icon.leaf:before{content:"\f06c"}i.icon.legal:before{content:"\f0e3"}i.icon.lemon:before{content:"\f094"}i.icon.level.down:before{content:"\f149"}i.icon.level.up:before{content:"\f148"}i.icon.lightbulb:before{content:"\f0eb"}i.icon.linkedin.sign:before{content:"\f08c"}i.icon.linkedin:before{content:"\f0e1"}i.icon.linux:before{content:"\f17c"}i.icon.list.ordered:before{content:"\f0cb"}i.icon.list.unordered:before{content:"\f0ca"}i.icon.list:before{content:"\f03a"}i.icon.loading:before{content:"\f110"}i.icon.location:before{content:"\f124"}i.icon.lock:before{content:"\f023"}i.icon.long.arrow.down:before{content:"\f175"}i.icon.long.arrow.left:before{content:"\f177"}i.icon.long.arrow.right:before{content:"\f178"}i.icon.long.arrow.up:before{content:"\f176"}i.icon.magic:before{content:"\f0d0"}i.icon.magnet:before{content:"\f076"}i.icon.mail.outline:before{content:"\f003"}i.icon.mail.reply:before{content:"\f112"}i.icon.mail:before{content:"\f0e0"}i.icon.male:before{content:"\f183"}i.icon.map.marker:before{content:"\f041"}i.icon.map:before{content:"\f14e"}i.icon.maxcdn:before{content:"\f136"}i.icon.medkit:before{content:"\f0fa"}i.icon.meh:before{content:"\f11a"}i.icon.minus.sign.alternate:before{content:"\f146"}i.icon.minus.sign:before{content:"\f056"}i.icon.minus:before{content:"\f068"}i.icon.mobile:before{content:"\f10b"}i.icon.money:before{content:"\f0d6"}i.icon.moon:before{content:"\f186"}i.icon.move:before{content:"\f047"}i.icon.music:before{content:"\f001"}i.icon.mute:before{content:"\f131"}i.icon.off:before{content:"\f011"}i.icon.ok.circle:before{content:"\f05d"}i.icon.ok.sign:before{content:"\f058"}i.icon.paste:before{content:"\f0ea"}i.icon.pause:before{content:"\f04c"}i.icon.payment:before{content:"\f09d"}i.icon.pencil:before{content:"\f040"}i.icon.phone.sign:before{content:"\f098"}i.icon.phone:before{content:"\f095"}i.icon.photo:before{content:"\f03e"}i.icon.pin:before{content:"\f08d"}i.icon.pinterest.sign:before{content:"\f0d3"}i.icon.pinterest:before{content:"\f0d2"}i.icon.plane:before{content:"\f072"}i.icon.play.circle:before{content:"\f01d"}i.icon.play.sign:before{content:"\f144"}i.icon.play:before{content:"\f04b"}i.icon.pound:before{content:"\f154"}i.icon.print:before{content:"\f02f"}i.icon.puzzle.piece:before{content:"\f12e"}i.icon.qr.code:before{content:"\f029"}i.icon.question:before{content:"\f128"}i.icon.quote.left:before{content:"\f10d"}i.icon.quote.right:before{content:"\f10e"}i.icon.refresh:before{content:"\f021"}i.icon.remove.circle:before{content:"\f05c"}i.icon.remove.sign:before{content:"\f057"}i.icon.remove:before{content:"\f00d"}i.icon.renren:before{content:"\f18b"}i.icon.reorder:before{content:"\f0c9"}i.icon.repeat:before{content:"\f01e"}i.icon.reply.all.mail:before{content:"\f122"}i.icon.resize.full:before{content:"\f065"}i.icon.resize.horizontal:before{content:"\f07e"}i.icon.resize.small:before{content:"\f066"}i.icon.resize.vertical:before{content:"\f07d"}i.icon.retweet:before{content:"\f079"}i.icon.road:before{content:"\f018"}i.icon.rocket:before{content:"\f135"}i.icon.rss.sign:before{content:"\f143"}i.icon.rss:before{content:"\f09e"}i.icon.rupee:before{content:"\f156"}i.icon.save:before{content:"\f0c7"}i.icon.screenshot:before{content:"\f05b"}i.icon.search:before{content:"\f002"}i.icon.setting:before{content:"\f013"}i.icon.settings:before{content:"\f085"}i.icon.share.sign:before{content:"\f14d"}i.icon.share:before{content:"\f045"}i.icon.shield:before{content:"\f132"}i.icon.shuffle:before{content:"\f074"}i.icon.sign.in:before{content:"\f090"}i.icon.sign.out:before{content:"\f08b"}i.icon.sign:before{content:"\f0c8"}i.icon.signal:before{content:"\f012"}i.icon.sitemap:before{content:"\f0e8"}i.icon.skype:before{content:"\f17e"}i.icon.smile:before{content:"\f118"}i.icon.sort.ascending:before{content:"\f0de"}i.icon.sort.descending:before{content:"\f0dd"}i.icon.sort.alphabet.descending:before{content:"\f15e"}i.icon.sort.alphabet:before{content:"\f15d"}i.icon.sort.attributes.descending:before{content:"\f161"}i.icon.sort.attributes:before{content:"\f160"}i.icon.sort.order.descending:before{content:"\f163"}i.icon.sort.order:before{content:"\f162"}i.icon.sort:before{content:"\f0dc"}i.icon.stackexchange:before{content:"\f16c"}i.icon.star.empty:before{content:"\f006"}i.icon.star.half.empty:before{content:"\f123"}i.icon.star.half.full:before,i.icon.star.half:before{content:"\f089"}i.icon.star:before{content:"\f005"}i.icon.step.backward:before{content:"\f048"}i.icon.step.forward:before{content:"\f051"}i.icon.stethoscope:before{content:"\f0f1"}i.icon.stop:before{content:"\f04d"}i.icon.strikethrough:before{content:"\f0cc"}i.icon.subscript:before{content:"\f12c"}i.icon.suitcase:before{content:"\f0f2"}i.icon.sun:before{content:"\f185"}i.icon.superscript:before{content:"\f12b"}i.icon.table:before{content:"\f0ce"}i.icon.tablet:before{content:"\f10a"}i.icon.tag:before{content:"\f02b"}i.icon.tags:before{content:"\f02c"}i.icon.tasks:before{content:"\f0ae"}i.icon.terminal:before{content:"\f120"}i.icon.text.height:before{content:"\f034"}i.icon.text.width:before{content:"\f035"}i.icon.thumbs.down.outline:before{content:"\f088"}i.icon.thumbs.down:before{content:"\f165"}i.icon.thumbs.up.outline:before{content:"\f087"}i.icon.thumbs.up:before{content:"\f164"}i.icon.ticket:before{content:"\f145"}i.icon.time:before{content:"\f017"}i.icon.tint:before{content:"\f043"}i.icon.trash:before{content:"\f014"}i.icon.trello:before{content:"\f181"}i.icon.trophy:before{content:"\f091"}i.icon.truck:before{content:"\f0d1"}i.icon.tumblr.sign:before{content:"\f174"}i.icon.tumblr:before{content:"\f173"}i.icon.twitter.sign:before{content:"\f081"}i.icon.twitter:before{content:"\f099"}i.icon.umbrella:before{content:"\f0e9"}i.icon.underline:before{content:"\f0cd"}i.icon.undo:before{content:"\f0e2"}i.icon.unhide:before{content:"\f06e"}i.icon.unlink:before{content:"\f127"}i.icon.unlock.alternate:before{content:"\f13e"}i.icon.unlock:before{content:"\f09c"}i.icon.unmute:before{content:"\f130"}i.icon.up:before{content:"\f062"}i.icon.upload.disk:before{content:"\f093"}i.icon.upload:before{content:"\f01b"}i.icon.url:before{content:"\f0c1"}i.icon.user:before{content:"\f007"}i.icon.users:before{content:"\f0c0"}i.icon.video:before{content:"\f008"}i.icon.vk:before{content:"\f189"}i.icon.volume.down:before{content:"\f027"}i.icon.volume.off:before{content:"\f026"}i.icon.volume.up:before{content:"\f028"}i.icon.warning:before{content:"\f071"}i.icon.weibo:before{content:"\f18a"}i.icon.windows:before{content:"\f17a"}i.icon.won:before{content:"\f159"}i.icon.wrench:before{content:"\f0ad"}i.icon.xing.sign:before{content:"\f169"}i.icon.xing:before{content:"\f168"}i.icon.yen:before{content:"\f157"}i.icon.youtube.play:before{content:"\f16a"}i.icon.youtube.sign:before{content:"\f166"}i.icon.youtube:before{content:"\f167"}i.icon.yuan:before{content:"\f158"}i.icon.zoom.in:before{content:"\f00e"}i.icon.zoom.out:before{content:"\f010"}i.icon.check:before{content:"\f00c"}i.icon.close:before{content:"\f00d"}i.icon.delete:before{content:"\f00d"}i.icon.like:before{content:"\f004"}i.icon.plus:before{content:"\f067"}i.icon.signup:before{content:"\f044"}i.icon.star{width:auto;margin:0}i.icon.left{width:auto;margin:0 0 0 .5em}i.icon.search,i.icon.right{width:auto;margin:0 .5em 0 0}i.icon.loading{-webkit-animation:icon-loading 2s linear infinite;-moz-animation:icon-loading 2s linear infinite;-ms-animation:icon-loading 2s linear infinite;animation:icon-loading 2s linear infinite}@keyframes icon-loading{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes icon-loading{from{-moz-transform:rotate(0deg);transform:rotate(0deg)}to{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes icon-loading{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes icon-loading{from{-ms-transform:rotate(0deg);transform:rotate(0deg)}to{-ms-transform:rotate(360deg);transform:rotate(360deg)}}i.icon.hover{opacity:1}i.icon.active{opacity:1}i.emphasized.icon{opacity:1}i.icon.disabled{opacity:.3}i.link.icon{cursor:pointer;opacity:.7;-webkit-transition:opacity .3s ease-out;-moz-transition:opacity .3s ease-out;transition:opacity .3s ease-out}i.link.icon:hover{opacity:1!important}i.circular.icon{border-radius:500em!important;padding:.5em .35em!important;-webkit-box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;line-height:1!important;width:2em!important;height:2em!important}i.circular.inverted.icon{border:0;-webkit-box-shadow:none;box-shadow:none}i.flipped.icon,i.horizontally.flipped.icon{-webkit-transform:scale(-1,1);-moz-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}i.vertically.flipped.icon{-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}i.rotated.icon,i.right.rotated.icon,i.clockwise.rotated.icon{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}i.left.rotated.icon,i.counterclockwise.rotated.icon{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}i.square.icon{width:2em;height:2em;padding:.5em .35em!important;-webkit-box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;vertical-align:baseline}i.square.inverted.icon{border:0;-webkit-box-shadow:none;box-shadow:none}i.inverted.icon{background-color:#222;color:#FFF;-moz-osx-font-smoothing:grayscale}i.blue.icon{color:#6ECFF5!important}i.black.icon{color:#5C6166!important}i.green.icon{color:#A1CF64!important}i.red.icon{color:#D95C5C!important}i.purple.icon{color:#564F8A!important}i.orange.icon{color:#F05940!important}i.teal.icon{color:#00B5AD!important}i.inverted.black.icon{background-color:#5C6166!important;color:#FFF!important}i.inverted.blue.icon{background-color:#6ECFF5!important;color:#FFF!important}i.inverted.green.icon{background-color:#A1CF64!important;color:#FFF!important}i.inverted.red.icon{background-color:#D95C5C!important;color:#FFF!important}i.inverted.purple.icon{background-color:#564F8A!important;color:#FFF!important}i.inverted.orange.icon{background-color:#F05940!important;color:#FFF!important}i.inverted.teal.icon{background-color:#00B5AD!important;color:#FFF!important}i.small.icon{font-size:.875em}i.icon{font-size:1em}i.large.icon{font-size:1.5em;vertical-align:middle}i.big.icon{font-size:2em;vertical-align:middle}i.huge.icon{font-size:4em;vertical-align:middle}i.massive.icon{font-size:8em;vertical-align:middle}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/elements/image.min.css b/css/semantic/rtl/minified/elements/image.min.css
new file mode 100644
index 0000000..e5df403
--- /dev/null
+++ b/css/semantic/rtl/minified/elements/image.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.image{position:relative;display:inline-block;vertical-align:middle;max-width:100%;background-color:rgba(0,0,0,.05)}img.ui.image{display:block;background:0 0}.ui.image img{display:block;max-width:100%;height:auto}.ui.disabled.image{cursor:default;opacity:.3}.ui.rounded.images .image,.ui.rounded.images img,.ui.rounded.image img,.ui.rounded.image{border-radius:.3125em}.ui.circular.images .image,.ui.circular.images img,.ui.circular.image img,.ui.circular.image{border-radius:500rem}.ui.fluid.images,.ui.fluid.image,.ui.fluid.images img,.ui.fluid.image img{display:block;width:100%}.ui.avatar.images .image,.ui.avatar.images img,.ui.avatar.image img,.ui.avatar.image{margin-left:.5em;display:inline-block;width:2em;height:2em;border-radius:500rem}.ui.floated.image,.ui.floated.images{float:right;margin-left:1em;margin-bottom:1em}.ui.right.floated.images,.ui.right.floated.image{float:left;margin-bottom:1em;margin-right:1em}.ui.tiny.images .image,.ui.tiny.images img,.ui.tiny.image{width:20px;font-size:.7rem}.ui.mini.images .image,.ui.mini.images img,.ui.mini.image{width:35px;font-size:.8rem}.ui.small.images .image,.ui.small.images img,.ui.small.image{width:80px;font-size:.9rem}.ui.medium.images .image,.ui.medium.images img,.ui.medium.image{width:300px;font-size:1rem}.ui.large.images .image,.ui.large.images img,.ui.large.image{width:450px;font-size:1.1rem}.ui.huge.images .image,.ui.huge.images img,.ui.huge.image{width:600px;font-size:1.2rem}.ui.images{font-size:0;margin:0 -.25rem 0rem}.ui.images .image,.ui.images img{display:inline-block;margin:0 .25em .5em}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/elements/input.min.css b/css/semantic/rtl/minified/elements/input.min.css
new file mode 100644
index 0000000..e3f097b
--- /dev/null
+++ b/css/semantic/rtl/minified/elements/input.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.input{display:inline-block;position:relative;color:rgba(0,0,0,.7)}.ui.input input{width:100%;font-family:"Helvetica Neue",Helvetica,Arial;margin:0;padding:.65em 1em;font-size:1em;background-color:#FFF;border:1px solid rgba(0,0,0,.15);outline:0;color:rgba(0,0,0,.7);border-radius:.3125em;-webkit-transition:background-color .3s ease-out,-webkit-box-shadow .2s ease,border-color .2s ease;-moz-transition:background-color .3s ease-out,box-shadow .2s ease,border-color .2s ease;transition:background-color .3s ease-out,box-shadow .2s ease,border-color .2s ease;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.input::-webkit-input-placeholder{color:#BBB}.ui.input::-moz-placeholder{color:#BBB}.ui.input input:active,.ui.input.down input{border-color:rgba(0,0,0,.3);background-color:#FAFAFA}.ui.loading.input>.icon{background:url(../images/loader-mini.gif) no-repeat 50% 50%}.ui.loading.input>.icon:before,.ui.loading.input>.icon:after{display:none}.ui.input.focus input,.ui.input input:focus{border-color:rgba(0,0,0,.2);color:rgba(0,0,0,.85)}.ui.input.focus input input::-webkit-input-placeholder,.ui.input input:focus input::-webkit-input-placeholder{color:#AAA}.ui.input.focus input input::-moz-placeholder,.ui.input input:focus input::-moz-placeholder{color:#AAA}.ui.input.error input{background-color:snow;border-color:#E7BEBE;color:#D95C5C}.ui.input.error input ::-webkit-input-placeholder{color:rgba(255,80,80,.4)}.ui.input.error input ::-moz-placeholder{color:rgba(255,80,80,.4)}.ui.input.error input :focus::-webkit-input-placeholder{color:rgba(255,80,80,.7)}.ui.input.error input :focus::-moz-placeholder{color:rgba(255,80,80,.7)}.ui.transparent.input input{border:0;background-color:transparent}.ui.icon.input>.icon{cursor:default;position:absolute;opacity:.5;top:0;left:0;margin:0;width:2.6em;height:100%;padding-top:.82em;text-align:center;border-radius:.3125em 0 0 .3125em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:opacity .3s ease-out;-moz-transition:opacity .3s ease-out;transition:opacity .3s ease-out}.ui.icon.input>.link.icon{cursor:pointer}.ui.icon.input input{padding-left:3em!important}.ui.icon.input>.circular.icon{top:.35em;left:.5em}.ui.left.icon.input>.icon{left:auto;right:1px;border-radius:0 .3125em .3125em}.ui.left.icon.input>.circular.icon{left:auto 0;right:.5em}.ui.left.icon.input>input{padding-right:3em!important;padding-left:1.2em!important}.ui.icon.input>input:focus~.icon{opacity:1}.ui.labeled.input .corner.label{font-size:.7em;border-radius:0 .3125em}.ui.labeled.input .left.corner.label{border-radius:.3125em 0}.ui.labeled.input input{padding-left:2.5em!important}.ui.labeled.icon.input:not(.left)>input{padding-left:3.25em!important}.ui.labeled.icon.input:not(.left)>.icon{margin-left:1.25em}.ui.action.input{display:table}.ui.action.input>input{display:table-cell;border-top-left-radius:0!important;border-bottom-left-radius:0!important;border-left:0}.ui.action.input>.button,.ui.action.input>.buttons{display:table-cell;border-top-right-radius:0;border-bottom-right-radius:0;white-space:nowrap}.ui.action.input>.button>.icon,.ui.action.input>.buttons>.button>.icon{display:inline;vertical-align:top}.ui.fluid.action.input{display:table;width:100%}.ui.fluid.action.input>.button{width:.01%}.ui.fluid.input{display:block}.ui.mini.input{font-size:.8125em}.ui.small.input{font-size:.875em}.ui.input{font-size:1em}.ui.large.input{font-size:1.125em}.ui.big.input{font-size:1.25em}.ui.huge.input{font-size:1.375em}.ui.massive.input{font-size:1.5em}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/elements/label.min.css b/css/semantic/rtl/minified/elements/label.min.css
new file mode 100644
index 0000000..9838b5d
--- /dev/null
+++ b/css/semantic/rtl/minified/elements/label.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.label{display:inline-block;vertical-align:middle;margin:-.25em .25em 0;background-color:#E8E8E8;border-color:#E8E8E8;padding:.5em .8em;color:rgba(0,0,0,.65);text-transform:uppercase;font-weight:400;border-radius:.325em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:background .1s linear;-moz-transition:background .1s linear;transition:background .1s linear}.ui.label:first-child{margin-right:0}.ui.label:last-child{margin-left:0}a.ui.label{cursor:pointer}.ui.label a{cursor:pointer;color:inherit;opacity:.8;-webkit-transition:.2s opacity ease;-moz-transition:.2s opacity ease;transition:.2s opacity ease}.ui.label a:hover{opacity:1}.ui.label .detail{display:inline-block;margin-right:.5em;font-weight:700;opacity:.8}.ui.label .icon{width:auto}.ui.label .delete.icon{cursor:pointer;margin:0 .5em 0 0;opacity:.7;-webkit-transition:background .1s linear;-moz-transition:background .1s linear;transition:background .1s linear}.ui.label .delete.icon:hover{opacity:.99}.ui.segment>.attached.label:first-child+*{margin-top:2.5em}.ui.segment>.bottom.attached.label:first-child~:last-child{margin-top:0;margin-bottom:2.5em}.ui.image.label{width:auto!important;margin-top:0;margin-bottom:0;padding-top:.4em;padding-bottom:.4em;line-height:1.5em;vertical-align:baseline;text-transform:none;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset}.ui.image.label img{display:inline-block;height:2.25em;margin:-.4em -.8em -.4em .8em;vertical-align:top;border-radius:.325em 0 0 .325em}.ui.label.disabled{opacity:.5}a.ui.labels .label:hover,a.ui.label:hover{background-color:#E0E0E0;border-color:#E0E0E0;color:rgba(0,0,0,.7)}.ui.labels a.label:hover:before,a.ui.label:hover:before{background-color:#E0E0E0;color:rgba(0,0,0,.7)}.ui.labels.visible .label,.ui.label.visible{display:inline-block!important}.ui.labels.hidden .label,.ui.label.hidden{display:none!important}.ui.tag.labels .label,.ui.tag.label{margin-right:1em;position:relative;padding:.33em 1.4em .33em 1.3em;border-radius:0 3px 3px 0}.ui.tag.labels .label:before,.ui.tag.label:before{position:absolute;top:.3em;right:.3em;content:'';margin-right:-1em;background-image:none;width:1.5em;height:1.5em;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);-webkit-transition:background .1s linear;-moz-transition:background .1s linear;transition:background .1s linear}.ui.tag.labels .label:after,.ui.tag.label:after{position:absolute;content:'';top:50%;right:-.25em;margin-top:-.3em;background-color:#FFF;width:.55em;height:.55em;-webkit-box-shadow:0 -1px 1px 0 rgba(0,0,0,.3);box-shadow:0 -1px 1px 0 rgba(0,0,0,.3);border-radius:100px}.ui.ribbon.label{position:relative;margin:0 .2em;right:-2rem;padding-right:2rem;border-radius:4px 0 0 4px;border-color:rgba(0,0,0,.15)}.ui.ribbon.label:after{position:absolute;content:"";top:100%;right:0;border-top:0 solid transparent;border-left-width:1em;border-left-color:inherit;border-left-style:solid;border-bottom:1em solid transparent;border-right:0 solid transparent;width:0;height:0}.ui.top.attached.label,.ui.attached.label{width:100%;position:absolute;margin:0;top:0;right:0;padding:.75em 1em;border-radius:4px 4px 0}.ui.bottom.attached.label{top:auto 0;bottom:0;border-radius:0 0 4px}.ui.top.left.attached.label{width:auto 4px;margin-top:0!important;border-radius:0}.ui.top.right.attached.label{width:auto 4px;right:auto;left:0;border-radius:4px}.ui.bottom.left.attached.label{width:auto 0;top:auto;bottom:0;border-radius:0 4px 4px}.ui.bottom.right.attached.label{top:auto 0;bottom:0;right:auto;left:0;width:auto;border-radius:0}.ui.corner.label{background-color:transparent 4px;position:absolute;top:0;left:0;z-index:10;margin:0;width:3em;height:3em;padding:0;text-align:center;-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.ui.corner.label:after{position:absolute;content:"";left:0;top:0;z-index:-1;width:0;height:0;border-top:0 solid transparent;border-left:3em solid transparent;border-bottom:3em solid transparent;border-right:0 solid transparent;border-left-color:inherit;-webkit-transition:border-color .2s ease;-moz-transition:border-color .2s ease;transition:border-color .2s ease}.ui.corner.label .icon{font-size:.875em;margin:.5em 1.25em 0 0}.ui.corner.label .text{display:inline-block;font-weight:700;margin:.5em 1em 0 0;width:2.5em;font-size:.875em;text-align:center;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.ui.rounded.image>.ui.corner.label,.ui.input>.ui.corner.label,.ui.segment>.ui.corner.label{overflow:hidden}.ui.segment>.ui.corner.label{top:-1px;left:-1px}.ui.segment>.ui.left.corner.label{left:auto;right:-1px}.ui.input>.ui.corner.label{top:1px;left:1px}.ui.input>.ui.right.corner.label{left:auto;right:1px}.ui.left.corner.label,.ui.left.corner.label:after{left:auto;right:0}.ui.left.corner.label:after{border-top:3em solid transparent;border-left:3em solid transparent;border-bottom:0 solid transparent;border-right:0 solid transparent;border-top-color:inherit}.ui.left.corner.label .icon{margin:.5em -1em 0 0}.ui.left.corner.label .text{margin:.5em -1em 0 0;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.ui.corner.label:hover{background-color:transparent}.ui.label.fluid,.ui.fluid.labels>.label{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.inverted.labels .label,.ui.inverted.label{color:#FFF!important}.ui.black.labels .label,.ui.black.label{background-color:#5C6166!important;border-color:#5C6166!important;color:#FFF!important}.ui.labels .black.label:before,.ui.black.labels .label:before,.ui.black.label:before{background-color:#5C6166!important}a.ui.black.labels .label:hover,a.ui.black.label:hover{background-color:#333!important;border-color:#333!important}.ui.labels a.black.label:hover:before,.ui.black.labels a.label:hover:before,a.ui.black.label:hover:before{background-color:#333!important}.ui.black.corner.label,.ui.black.corner.label:hover{background-color:transparent!important}.ui.black.ribbon.label{border-color:#333!important}.ui.green.labels .label,.ui.green.label{background-color:#A1CF64!important;border-color:#A1CF64!important;color:#FFF!important}.ui.labels .green.label:before,.ui.green.labels .label:before,.ui.green.label:before{background-color:#A1CF64!important}a.ui.green.labels .label:hover,a.ui.green.label:hover{background-color:#89B84C!important;border-color:#89B84C!important}.ui.labels a.green.label:hover:before,.ui.green.labels a.label:hover:before,a.ui.green.label:hover:before{background-color:#89B84C!important}.ui.green.corner.label,.ui.green.corner.label:hover{background-color:transparent!important}.ui.green.ribbon.label{border-color:#89B84C!important}.ui.red.labels .label,.ui.red.label{background-color:#D95C5C!important;border-color:#D95C5C!important;color:#FFF!important}.ui.labels .red.label:before,.ui.red.labels .label:before,.ui.red.label:before{background-color:#D95C5C!important}.ui.red.corner.label,.ui.red.corner.label:hover{background-color:transparent!important}a.ui.red.labels .label:hover,a.ui.red.label:hover{background-color:#DE3859!important;border-color:#DE3859!important;color:#FFF!important}.ui.labels a.red.label:hover:before,.ui.red.labels a.label:hover:before,a.ui.red.label:hover:before{background-color:#DE3859!important}.ui.red.ribbon.label{border-color:#DE3859!important}.ui.blue.labels .label,.ui.blue.label{background-color:#6ECFF5!important;border-color:#6ECFF5!important;color:#FFF!important}.ui.labels .blue.label:before,.ui.blue.labels .label:before,.ui.blue.label:before{background-color:#6ECFF5!important}a.ui.blue.labels .label:hover,.ui.blue.labels a.label:hover,a.ui.blue.label:hover{background-color:#1AB8F3!important;border-color:#1AB8F3!important;color:#FFF!important}.ui.labels a.blue.label:hover:before,.ui.blue.labels a.label:hover:before,a.ui.blue.label:hover:before{background-color:#1AB8F3!important}.ui.blue.corner.label,.ui.blue.corner.label:hover{background-color:transparent!important}.ui.blue.ribbon.label{border-color:#1AB8F3!important}.ui.purple.labels .label,.ui.purple.label{background-color:#564F8A!important;border-color:#564F8A!important;color:#FFF!important}.ui.labels .purple.label:before,.ui.purple.labels .label:before,.ui.purple.label:before{background-color:#564F8A!important}a.ui.purple.labels .label:hover,.ui.purple.labels a.label:hover,a.ui.purple.label:hover{background-color:#3E3773!important;border-color:#3E3773!important;color:#FFF!important}.ui.labels a.purple.label:hover:before,.ui.purple.labels a.label:hover:before,a.ui.purple.label:hover:before{background-color:#3E3773!important}.ui.purple.corner.label,.ui.purple.corner.label:hover{background-color:transparent!important}.ui.purple.ribbon.label{border-color:#3E3773!important}.ui.orange.labels .label,.ui.orange.label{background-color:#F05940!important;border-color:#F05940!important;color:#FFF!important}.ui.labels .orange.label:before,.ui.orange.labels .label:before,.ui.orange.label:before{background-color:#F05940!important}a.ui.orange.labels .label:hover,.ui.orange.labels a.label:hover,a.ui.orange.label:hover{background-color:#FF4121!important;border-color:#FF4121!important;color:#FFF!important}.ui.labels a.orange.label:hover:before,.ui.orange.labels a.label:hover:before,a.ui.orange.label:hover:before{background-color:#FF4121!important}.ui.orange.corner.label,.ui.orange.corner.label:hover{background-color:transparent!important}.ui.orange.ribbon.label{border-color:#FF4121!important}.ui.teal.labels .label,.ui.teal.label{background-color:#00B5AD!important;border-color:#00B5AD!important;color:#FFF!important}.ui.labels .teal.label:before,.ui.teal.labels .label:before,.ui.teal.label:before{background-color:#00B5AD!important}a.ui.teal.labels .label:hover,.ui.teal.labels a.label:hover,a.ui.teal.label:hover{background-color:#009A93!important;border-color:#009A93!important;color:#FFF!important}.ui.labels a.teal.label:hover:before,.ui.teal.labels a.label:hover:before,a.ui.teal.label:hover:before{background-color:#009A93!important}.ui.teal.corner.label,.ui.teal.corner.label:hover{background-color:transparent!important}.ui.teal.ribbon.label{border-color:#009A93!important}.ui.horizontal.labels .label,.ui.horizontal.label{margin:-.125em 0 -.125em .5em;padding:.35em 1em;min-width:6em;text-align:center}.ui.circular.labels .label,.ui.circular.label{min-height:1em;max-height:2em;padding:.5em!important;line-height:1em;text-align:center;border-radius:500rem}.ui.pointing.label{position:relative}.ui.attached.pointing.label{position:absolute}.ui.pointing.label:before{position:absolute;content:"";width:.6em;height:.6em;background-image:none;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);z-index:2;-webkit-transition:background .1s linear;-moz-transition:background .1s linear;transition:background .1s linear}.ui.pointing.label:before{background-color:#E8E8E8}.ui.pointing.label,.ui.pointing.above.label{margin-top:1em}.ui.pointing.label:before,.ui.pointing.above.label:before{margin-right:-.3em;top:-.3em;right:50%}.ui.pointing.below.label{margin-top:0;margin-bottom:1em}.ui.pointing.below.label:before{margin-right:-.3em;top:auto;left:auto;bottom:-.3em;right:50%}.ui.pointing.left.label{margin-top:0;margin-right:1em}.ui.pointing.left.label:before{margin-top:-.3em;bottom:auto;left:auto;top:50%;right:0}.ui.pointing.right.label{margin-top:0;margin-left:1em}.ui.pointing.right.label:before{margin-top:-.3em;left:-.3em;top:50%;bottom:auto;right:auto}.ui.floating.label{position:absolute;z-index:100;top:-1em;right:100%;margin:0 -1.5em 0 0!important}.ui.small.labels .label,.ui.small.label{font-size:.75rem}.ui.label{font-size:.8125rem}.ui.large.labels .label,.ui.large.label{font-size:.875rem}.ui.huge.labels .label,.ui.huge.label{font-size:1rem}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/elements/loader.min.css b/css/semantic/rtl/minified/elements/loader.min.css
new file mode 100644
index 0000000..026ac01
--- /dev/null
+++ b/css/semantic/rtl/minified/elements/loader.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.loader{display:none;position:absolute;top:50%;right:50%;margin:0;z-index:1000;-webkit-transform:translateX(-50%) translateY(-50%);-moz-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.ui.dimmer .loader{display:block}.ui.text.loader{width:auto!important;height:auto!important;text-align:center;font-style:normal}.ui.mini.text.loader{min-width:16px;padding-top:2em;font-size:.875em}.ui.small.text.loader{min-width:24px;padding-top:2.5em;font-size:.875em}.ui.text.loader{min-width:32px;font-size:1em;padding-top:3em}.ui.large.text.loader{min-width:64px;padding-top:5em;font-size:1.2em}.ui.loader.active,.ui.loader.visible{display:block}.ui.loader.disabled,.ui.loader.hidden{display:none}.ui.dimmer .ui.text.loader,.ui.inverted.text.loader{color:rgba(255,255,255,.8)}.ui.inverted.dimmer .ui.text.loader{color:rgba(0,0,0,.8)}.ui.dimmer .mini.ui.loader,.ui.inverted .mini.ui.loader{background-image:url(../images/loader-mini-inverted.gif)}.ui.dimmer .small.ui.loader,.ui.inverted .small.ui.loader{background-image:url(../images/loader-small-inverted.gif)}.ui.dimmer .ui.loader,.ui.inverted.loader{background-image:url(../images/loader-medium-inverted.gif)}.ui.dimmer .large.ui.loader,.ui.inverted .large.ui.loader{background-image:url(../images/loader-large-inverted.gif)}.ui.inverted.dimmer .ui.mini.loader,.ui.mini.loader{width:16px;height:16px;background-image:url(../images/loader-mini.gif)}.ui.inverted.dimmer .ui.small.loader,.ui.small.loader{width:24px;height:24px;background-image:url(../images/loader-small.gif)}.ui.inverted.dimmer .ui.loader,.ui.loader{width:32px;height:32px;background:url(../images/loader-medium.gif) no-repeat;background-position:52% 0}.ui.inverted.dimmer .ui.loader.large,.ui.loader.large{width:64px;height:64px;background-image:url(../images/loader-large.gif)}.ui.inline.loader{position:static;vertical-align:middle;margin:0;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none}.ui.inline.loader.active,.ui.inline.loader.visible{display:inline-block}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/elements/progress.min.css b/css/semantic/rtl/minified/elements/progress.min.css
new file mode 100644
index 0000000..4571ca2
--- /dev/null
+++ b/css/semantic/rtl/minified/elements/progress.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.progress{border:1px solid rgba(0,0,0,.1);width:100%;height:35px;background-color:#FAFAFA;padding:5px;border-radius:.3125em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.progress .bar{display:inline-block;height:100%;background-color:#CCC;border-radius:3px;-webkit-transition:width 1s ease-in-out,background-color 1s ease-out;-moz-transition:width 1s ease-in-out,background-color 1s ease-out;transition:width 1s ease-in-out,background-color 1s ease-out}.ui.successful.progress .bar{background-color:#73E064!important}.ui.successful.progress .bar,.ui.successful.progress .bar::after{-webkit-animation:none!important;-moz-animation:none!important;animation:none!important}.ui.warning.progress .bar{background-color:#E96633!important}.ui.warning.progress .bar,.ui.warning.progress .bar::after{-webkit-animation:none!important;-moz-animation:none!important;animation:none!important}.ui.failed.progress .bar{background-color:#DF9BA4!important}.ui.failed.progress .bar,.ui.failed.progress .bar::after{-webkit-animation:none!important;-moz-animation:none!important;animation:none!important}.ui.active.progress .bar{position:relative}.ui.active.progress .bar::after{content:'';opacity:0;position:absolute;top:0;right:0;left:0;bottom:0;background:#FFF;border-radius:3px;-webkit-animation:progress-active 2s ease-out infinite;-moz-animation:progress-active 2s ease-out infinite;animation:progress-active 2s ease-out infinite}@-webkit-keyframes progress-active{0%{opacity:0;width:0}50%{opacity:.3}100%{opacity:0;width:95%}}@-moz-keyframes progress-active{0%{opacity:0;width:0}50%{opacity:.3}100%{opacity:0;width:100%}}@keyframes progress-active{0%{opacity:0;width:0}50%{opacity:.3}100%{opacity:0;width:100%}}.ui.disabled.progress{opacity:.35}.ui.disabled.progress .bar,.ui.disabled.progress .bar::after{-webkit-animation:none!important;-moz-animation:none!important;animation:none!important}.ui.progress.attached{position:relative;border:0}.ui.progress.attached,.ui.progress.attached .bar{display:block;height:3px;padding:0;overflow:hidden;border-radius:0 0 .3125em .3125em}.ui.progress.attached .bar{border-radius:0}.ui.progress.top.attached,.ui.progress.top.attached .bar{top:-2px;border-radius:.3125em .3125em 0 0}.ui.progress.top.attached .bar{border-radius:0}.ui.blue.progress .bar{background-color:#6ECFF5}.ui.black.progress .bar{background-color:#5C6166}.ui.green.progress .bar{background-color:#A1CF64}.ui.red.progress .bar{background-color:#EF4D6D}.ui.purple.progress .bar{background-color:#564F8A}.ui.teal.progress .bar{background-color:#00B5AD}.ui.progress.striped .bar{-webkit-background-size:30px 30px;background-size:30px 30px;background-image:-webkit-gradient(linear,right top,left bottom,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(135deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(135deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-webkit-linear-gradient(315deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(315deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(135deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.ui.progress.active.striped .bar:after{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}.ui.progress.active.striped .bar{-webkit-animation:progress-striped 3s linear infinite;-moz-animation:progress-striped 3s linear infinite;animation:progress-striped 3s linear infinite}@-webkit-keyframes progress-striped{0%{background-position:0 0}100%{background-position:60px 0}}@-moz-keyframes progress-striped{0%{background-position:0 0}100%{background-position:60px 0}}@keyframes progress-striped{0%{background-position:0 0}100%{background-position:60px 0}}.ui.small.progress .bar{height:14px}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/elements/reveal.min.css b/css/semantic/rtl/minified/elements/reveal.min.css
new file mode 100644
index 0000000..ccfcd9f
--- /dev/null
+++ b/css/semantic/rtl/minified/elements/reveal.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.reveal{display:inline-block;position:relative!important;z-index:2!important;font-size:0!important}.ui.reveal>.content{font-size:1rem!important}.ui.reveal>.visible.content{-webkit-transition:all .8s cubic-bezier(0.175,.885,.32,1) .15s;-moz-transition:all .8s cubic-bezier(0.175,.885,.32,1) .15s;transition:all .8s cubic-bezier(0.175,.885,.32,1) .15s}.ui.reveal>.visible.content{position:absolute!important;top:0!important;right:0!important;z-index:4!important;-webkit-transition:all .8s cubic-bezier(0.175,.885,.32,1) .15s;-moz-transition:all .8s cubic-bezier(0.175,.885,.32,1) .15s;transition:all .8s cubic-bezier(0.175,.885,.32,1) .15s}.ui.reveal>.hidden.content{position:relative!important;z-index:3!important}.ui.reveal.button{overflow:hidden}.ui.slide.reveal{position:relative!important;display:block;overflow:hidden!important;white-space:nowrap}.ui.slide.reveal>.content{display:block;float:right;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;margin:0;-webkit-transition:top .8s cubic-bezier(0.175,.885,.32,1) .15s,right .8s cubic-bezier(0.175,.885,.32,1) .15s,left .8s cubic-bezier(0.175,.885,.32,1) .15s,bottom .8s cubic-bezier(0.175,.885,.32,1) .15s;-moz-transition:top .8s cubic-bezier(0.175,.885,.32,1) .15s,right .8s cubic-bezier(0.175,.885,.32,1) .15s,left .8s cubic-bezier(0.175,.885,.32,1) .15s,bottom .8s cubic-bezier(0.175,.885,.32,1) .15s;transition:top .8s cubic-bezier(0.175,.885,.32,1) .15s,right .8s cubic-bezier(0.175,.885,.32,1) .15s,left .8s cubic-bezier(0.175,.885,.32,1) .15s,bottom .8s cubic-bezier(0.175,.885,.32,1) .15s}.ui.slide.reveal>.visible.content{position:relative!important}.ui.slide.reveal>.hidden.content{position:absolute!important;right:100%!important;width:100%!important}.ui.slide.reveal:hover>.visible.content,.ui.slide.reveal:focus>.visible.content{right:-100%!important}.ui.slide.reveal:hover>.hidden.content,.ui.slide.reveal:focus>.hidden.content{right:0!important}.ui.right.slide.reveal>.visible.content{right:0}.ui.right.slide.reveal>.hidden.content{right:auto!important;left:100%!important}.ui.right.slide.reveal:hover>.visible.content,.ui.right.slide.reveal:focus>.visible.content{right:100%!important;left:auto!important}.ui.right.slide.reveal:hover>.hidden.content,.ui.right.slide.reveal:focus>.hidden.content{right:auto!important;left:0!important}.ui.up.slide.reveal>.visible.content{top:0!important;right:0!important;left:auto!important;bottom:auto!important}.ui.up.slide.reveal>.hidden.content{top:100%!important;right:0!important;left:auto!important;bottom:auto!important}.ui.slide.up.reveal:hover>.visible.content,.ui.slide.up.reveal:focus>.visible.content{top:-100%!important;right:0!important}.ui.slide.up.reveal:hover>.hidden.content,.ui.slide.up.reveal:focus>.hidden.content{top:0!important;right:0!important}.ui.down.slide.reveal>.visible.content{top:auto!important;left:auto!important;bottom:auto!important;bottom:0!important}.ui.down.slide.reveal>.hidden.content{top:auto!important;left:auto!important;bottom:100%!important;right:0!important}.ui.slide.down.reveal:hover>.visible.content,.ui.slide.down.reveal:focus>.visible.content{right:0!important;bottom:-100%!important}.ui.slide.down.reveal:hover>.hidden.content,.ui.slide.down.reveal:focus>.hidden.content{right:0!important;bottom:0!important}.ui.fade.reveal>.visible.content{opacity:1}.ui.fade.reveal:hover>.visible.content,.ui.fade.reveal:focus>.visible.content{opacity:0}.ui.move.reveal>.visible.content,.ui.move.left.reveal>.visible.content{right:auto!important;top:auto!important;bottom:auto!important;left:0!important}.ui.move.reveal:hover>.visible.content,.ui.move.left.reveal:hover>.visible.content,.ui.move.reveal:focus>.visible.content,.ui.move.left.reveal:focus>.visible.content{left:100%!important}.ui.move.right.reveal>.visible.content{left:auto!important;top:auto!important;bottom:auto!important;right:0!important}.ui.move.right.reveal:hover>.visible.content,.ui.move.right.reveal:focus>.visible.content{right:100%!important}.ui.move.up.reveal>.visible.content{left:auto!important;right:auto!important;top:auto!important;bottom:0!important}.ui.move.up.reveal:hover>.visible.content,.ui.move.up.reveal:focus>.visible.content{bottom:100%!important}.ui.move.down.reveal>.visible.content{left:auto!important;right:auto!important;top:0!important;bottom:auto!important}.ui.move.down.reveal:hover>.visible.content,.ui.move.down.reveal:focus>.visible.content{top:100%!important}.ui.rotate.reveal>.visible.content{-webkit-transition-duration:.8s;-moz-transition-duration:.8s;transition-duration:.8s;-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}.ui.rotate.reveal>.visible.content,.ui.rotate.right.reveal>.visible.content{-webkit-transform-origin:bottom left;-moz-transform-origin:bottom left;-ms-transform-origin:bottom left;transform-origin:bottom left}.ui.rotate.reveal:hover>.visible.content,.ui.rotate.right.reveal:hover>.visible.content,.ui.rotate.reveal:focus>.visible.content,.ui.rotate.right.reveal:focus>.visible.content{-webkit-transform:rotate(110deg);-moz-transform:rotate(110deg);-ms-transform:rotate(110deg);transform:rotate(110deg)}.ui.rotate.left.reveal>.visible.content{-webkit-transform-origin:bottom right;-moz-transform-origin:bottom right;-ms-transform-origin:bottom right;transform-origin:bottom right}.ui.rotate.left.reveal:hover>.visible.content,.ui.rotate.left.reveal:focus>.visible.content{-webkit-transform:rotate(-110deg);-moz-transform:rotate(-110deg);-ms-transform:rotate(-110deg);transform:rotate(-110deg)}.ui.disabled.reveal{opacity:1!important}.ui.disabled.reveal>.content{-webkit-transition:none!important;-moz-transition:none!important;transition:none!important}.ui.disabled.reveal:hover>.visible.content,.ui.disabled.reveal:focus>.visible.content{position:static!important;display:block!important;opacity:1!important;top:0!important;right:0!important;left:auto!important;bottom:auto!important;-webkit-transform:none!important;-moz-transform:none!important;-ms-transform:none!important;transform:none!important}.ui.disabled.reveal:hover>.hidden.content,.ui.disabled.reveal:focus>.hidden.content{display:none!important}.ui.masked.reveal{overflow:hidden}.ui.instant.reveal>.content{-webkit-transition-delay:0s!important;-moz-transition-delay:0s!important;transition-delay:0s!important}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/elements/segment.min.css b/css/semantic/rtl/minified/elements/segment.min.css
new file mode 100644
index 0000000..fc6c18d
--- /dev/null
+++ b/css/semantic/rtl/minified/elements/segment.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.segment{position:relative;background-color:#FFF;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1);margin:1em 0;padding:1em;border-radius:5px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.segment:first-child{margin-top:0}.ui.segment:last-child{margin-bottom:0}.ui.segment:after{content:'';display:block;height:0;clear:both;visibility:hidden}.ui.vertical.segment{margin:0;padding-right:0;padding-left:0;background-color:transparent;border-radius:0;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 0 rgba(0,0,0,.1)}.ui.vertical.segment:first-child{padding-top:0}.ui.horizontal.segment{margin:0;padding-top:0;padding-bottom:0;background-color:transparent;border-radius:0;-webkit-box-shadow:1px 0 0 rgba(0,0,0,.1);box-shadow:1px 0 0 rgba(0,0,0,.1)}.ui.horizontal.segment:first-child{padding-right:0}.ui.pointing.menu~.ui.attached.segment{top:1px}.ui.page.grid.segment .ui.grid .ui.segment.column{padding-top:2rem;padding-bottom:2rem}.ui.grid.segment,.ui.grid .ui.segment.row,.ui.grid .ui.segment.column{border-radius:0;-webkit-box-shadow:none;box-shadow:none;border:0}.ui.segment>:first-child{margin-top:0}.ui.segment>:last-child{margin-bottom:0}.ui.piled.segment{margin:2em 0;-webkit-box-shadow:0 0 1px 1px rgba(0,0,0,.15);-ms-box-shadow:0 0 1px 1px rgba(0,0,0,.15);-o-box-shadow:0 0 1px 1px rgba(0,0,0,.15);box-shadow:0 0 1px 1px rgba(0,0,0,.15)}.ui.piled.segment:first-child{margin-top:0}.ui.piled.segment:last-child{margin-bottom:0}.ui.piled.segment:after,.ui.piled.segment:before{background-color:#FFF;visibility:visible;content:"";display:block;height:100%;right:-1px;position:absolute;width:100%;-webkit-box-shadow:0 0 1px 1px rgba(0,0,0,.1);box-shadow:0 0 1px 1px rgba(0,0,0,.1)}.ui.piled.segment:after{-webkit-transform:rotate(1.2deg);-moz-transform:rotate(1.2deg);-ms-transform:rotate(1.2deg);transform:rotate(1.2deg);top:0;z-index:-1}.ui.piled.segment:before{-webkit-transform:rotate(-1.2deg);-moz-transform:rotate(-1.2deg);-ms-transform:rotate(-1.2deg);transform:rotate(-1.2deg);top:0;z-index:-2}.ui.stacked.segment{padding-bottom:1.7em}.ui.stacked.segment:after,.ui.stacked.segment:before{content:'';position:absolute;bottom:-3px;right:0;border-top:1px solid rgba(0,0,0,.1);background-color:rgba(0,0,0,.02);width:100%;height:5px;visibility:visible}.ui.stacked.segment:before{bottom:0}.ui.stacked.inverted.segment:after,.ui.stacked.inverted.segment:before{background-color:rgba(255,255,255,.1);border-top:1px solid rgba(255,255,255,.35)}.ui.circular.segment{display:table-cell;padding:2em;text-align:center;vertical-align:middle;border-radius:500em}.ui.raised.segment{-webkit-box-shadow:0 1px 2px 1px rgba(0,0,0,.1);box-shadow:0 1px 2px 1px rgba(0,0,0,.1)}.ui.disabled.segment{opacity:.8;color:#DDD}.ui.basic.segment{position:relative;background-color:transparent;-webkit-box-shadow:none;box-shadow:none;border-radius:0}.ui.basic.segment:first-child{padding-top:0}.ui.basic.segment:last-child{padding-bottom:0}.ui.fitted.segment{padding:0}.ui.blue.segment{border-top:.2em solid #6ECFF5}.ui.green.segment{border-top:.2em solid #A1CF64}.ui.red.segment{border-top:.2em solid #D95C5C}.ui.orange.segment{border-top:.2em solid #F05940}.ui.purple.segment{border-top:.2em solid #564F8A}.ui.teal.segment{border-top:.2em solid #00B5AD}.ui.inverted.black.segment{background-color:#5C6166!important;color:#FFF!important}.ui.inverted.blue.segment{background-color:#6ECFF5!important;color:#FFF!important}.ui.inverted.green.segment{background-color:#A1CF64!important;color:#FFF!important}.ui.inverted.red.segment{background-color:#D95C5C!important;color:#FFF!important}.ui.inverted.orange.segment{background-color:#F05940!important;color:#FFF!important}.ui.inverted.purple.segment{background-color:#564F8A!important;color:#FFF!important}.ui.inverted.teal.segment{background-color:#00B5AD!important;color:#FFF!important}.ui.left.aligned.segment{text-align:right}.ui.right.aligned.segment{text-align:left}.ui.center.aligned.segment{text-align:center}.ui.justified.segment{text-align:justify;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.ui.floated.segment,.ui.left.floated.segment{float:right}.ui.right.floated.segment{float:left}.ui.inverted.segment{border:0;-webkit-box-shadow:none;box-shadow:none}.ui.inverted.segment .segment{color:rgba(0,0,0,.7)}.ui.inverted.segment .inverted.segment{color:#FFF}.ui.inverted.segment,.ui.primary.inverted.segment{background-color:#222;color:#FFF}.ui.primary.segment{background-color:#FFF;color:#555}.ui.secondary.segment{background-color:#FAF9FA;color:#777}.ui.tertiary.segment{background-color:#EBEBEB;color:#B0B0B0}.ui.secondary.inverted.segment{background-color:#555;background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(255,255,255,.3)),to(rgba(255,255,255,.3)));background-image:-webkit-linear-gradient(rgba(255,255,255,.3) 0,rgba(255,255,255,.3) 100%);background-image:-moz-linear-gradient(rgba(255,255,255,.3) 0,rgba(255,255,255,.3) 100%);background-image:-webkit-gradient(linear,right top,right bottom,from(rgba(255,255,255,.3)),to(rgba(255,255,255,.3)));background-image:linear-gradient(rgba(255,255,255,.3) 0,rgba(255,255,255,.3) 100%);color:#FAFAFA}.ui.tertiary.inverted.segment{background-color:#555;background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(255,255,255,.6)),to(rgba(255,255,255,.6)));background-image:-webkit-linear-gradient(rgba(255,255,255,.6) 0,rgba(255,255,255,.6) 100%);background-image:-moz-linear-gradient(rgba(255,255,255,.6) 0,rgba(255,255,255,.6) 100%);background-image:-webkit-gradient(linear,right top,right bottom,from(rgba(255,255,255,.6)),to(rgba(255,255,255,.6)));background-image:linear-gradient(rgba(255,255,255,.6) 0,rgba(255,255,255,.6) 100%);color:#EEE}.ui.segment.attached{top:-1px;bottom:-1px;border-radius:0;margin:0;-webkit-box-shadow:0 0 0 1px #DDD;box-shadow:0 0 0 1px #DDD}.ui.top.attached.segment{top:0;bottom:-1px;margin-top:1em;margin-bottom:0;border-radius:5px 5px 0}.ui.segment.top.attached:first-child{margin-top:0}.ui.segment.bottom.attached{top:-1px 0;bottom:0;margin-top:0;margin-bottom:1em;border-radius:0 0 5px}.ui.segment.bottom.attached:last-child{margin-bottom:0} 5px
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/elements/step.min.css b/css/semantic/rtl/minified/elements/step.min.css
new file mode 100644
index 0000000..da25d3c
--- /dev/null
+++ b/css/semantic/rtl/minified/elements/step.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.step,.ui.steps .step{display:inline-block;position:relative;padding:1em 3em 1em 2em;vertical-align:top;background-color:#FFF;color:#888;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.step:after,.ui.steps .step:after{position:absolute;z-index:2;content:'';top:.42em;left:-1em;border:medium none;background-color:#FFF;width:2.2em;height:2.2em;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-box-shadow:-1px -1px 0 0 rgba(0,0,0,.15) inset;box-shadow:-1px -1px 0 0 rgba(0,0,0,.15) inset}.ui.step,.ui.steps .step,.ui.steps .step:after{-webkit-transition:background-color .1s ease,opacity .1s ease,color .1s ease,-webkit-box-shadow .1s ease;-moz-transition:background-color .1s ease,opacity .1s ease,color .1s ease,box-shadow .1s ease;transition:background-color .1s ease,opacity .1s ease,color .1s ease,box-shadow .1s ease}.ui.vertical.steps{overflow:visible}.ui.vertical.steps .step{display:block;border-radius:0;padding:1em 2em}.ui.vertical.steps .step:first-child{padding:1em 2em;border-radius:0;border-top-right-radius:.3125rem;border-top-left-radius:.3125rem}.ui.vertical.steps .active.step:first-child{border-top-left-radius:0rem}.ui.vertical.steps .step:last-child{border-radius:0;border-bottom-right-radius:.3125rem;border-bottom-left-radius:.3125rem}.ui.vertical.steps .active.step:last-child{border-bottom-left-radius:0rem}.ui.vertical.steps .step:after{display:none}.ui.vertical.steps .active.step:after{display:block}.ui.vertical.steps .two.line.step{line-height:1.3}.ui.vertical.steps .two.line.active.step:after{position:absolute;z-index:2;content:'';top:0;left:-1.45em;background-color:transparent;border-bottom:2.35em solid transparent;border-right:1.55em solid #555;border-top:2.35em solid transparent;width:0;height:0;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none}.ui.steps{cursor:pointer;display:inline-block;font-size:0;overflow:hidden;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1);line-height:1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;border-radius:.step:first-child{padding-right:1.35em .3125rem}.ui.steps;border-radius:.3125em 0 0 .3125em}.ui.steps .step:last-child{border-radius:0 .3125em .3125em 0}.ui.steps .step:only-child{border-radius:.3125em}.ui.steps .step:last-child{margin-left:0}.ui.steps .step:last-child:after{display:none}.ui.step:hover,.ui.step.hover{background-color:#F7F7F7;color:rgba(0,0,0,.8)}.ui.steps .step.hover:after,.ui.steps .step:hover:after,.ui.step:hover,.ui.step.hover::after{background-color:#F7F7F7}.ui.steps .step.down,.ui.steps .step:active,.ui.step.down,.ui.step:active{background-color:#F0F0F0}.ui.steps .step.down:after,.ui.steps .step:active:after,.ui.steps.down::after,.ui.steps:active::after{background-color:#F0F0F0}.ui.steps .step.active,.ui.active.step{cursor:auto;background-color:#555;color:#FFF;font-weight:700}.ui.steps .step.active:after,.ui.active.steps:after{background-color:#555;-webkit-box-shadow:none;box-shadow:none}.ui.steps .disabled.step,.ui.disabled.step{cursor:auto;background-color:#FFF;color:#CBCBCB}.ui.steps .disabled.step:after,.ui.disabled.step:after{background-color:#FFF}.attached.ui.steps{margin:0;border-radius:.3125em .3125em 0 0}.attached.ui.steps .step:first-child{border-radius:.3125em 0 0}.attached.ui.steps .step:last-child{border-radius:0 .3125em 0 0}.bottom.attached.ui.steps{margin-top:-1px;border-radius:0 0 .3125em .3125em}.bottom.attached.ui.steps .step:first-child{border-radius:0 0 0 .3125em}.bottom.attached.ui.steps .step:last-child{border-radius:0 0 .3125em}.ui.one.steps,.ui.two.steps,.ui.three.steps,.ui.four.steps,.ui.five.steps,.ui.six.steps,.ui.seven.steps,.ui.eight.steps{display:block}.ui.one.steps>.step{width:100%}.ui.two.steps>.step{width:50%}.ui.three.steps>.step{width:33.333%}.ui.four.steps>.step{width:25%}.ui.five.steps>.step{width:20%}.ui.six.steps>.step{width:16.666%}.ui.seven.steps>.step{width:14.285%}.ui.eight.steps>.step{width:12.5%}.ui.small.step,.ui.small.steps .step{font-size:.8rem}.ui.step,.ui.steps .step{font-size:1rem}.ui.large.step,.ui.large.steps .step{font-size:1.25rem}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/fonts/basic.icons.eot b/css/semantic/rtl/minified/fonts/basic.icons.eot
new file mode 100644
index 0000000..25066de
Binary files /dev/null and b/css/semantic/rtl/minified/fonts/basic.icons.eot differ
diff --git a/css/semantic/rtl/minified/fonts/basic.icons.svg b/css/semantic/rtl/minified/fonts/basic.icons.svg
new file mode 100644
index 0000000..b9c54d0
--- /dev/null
+++ b/css/semantic/rtl/minified/fonts/basic.icons.svg
@@ -0,0 +1,450 @@
+
+
+
+
+Created by FontForge 20100429 at Thu Sep 20 22:09:47 2012
+ By root
+Copyright (C) 2012 by original authors @ fontello.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/css/semantic/rtl/minified/fonts/basic.icons.ttf b/css/semantic/rtl/minified/fonts/basic.icons.ttf
new file mode 100644
index 0000000..318a264
Binary files /dev/null and b/css/semantic/rtl/minified/fonts/basic.icons.ttf differ
diff --git a/css/semantic/rtl/minified/fonts/basic.icons.woff b/css/semantic/rtl/minified/fonts/basic.icons.woff
new file mode 100644
index 0000000..baba1b5
Binary files /dev/null and b/css/semantic/rtl/minified/fonts/basic.icons.woff differ
diff --git a/css/semantic/rtl/minified/fonts/icons.eot b/css/semantic/rtl/minified/fonts/icons.eot
new file mode 100644
index 0000000..0662cb9
Binary files /dev/null and b/css/semantic/rtl/minified/fonts/icons.eot differ
diff --git a/css/semantic/rtl/minified/fonts/icons.otf b/css/semantic/rtl/minified/fonts/icons.otf
new file mode 100644
index 0000000..7012545
Binary files /dev/null and b/css/semantic/rtl/minified/fonts/icons.otf differ
diff --git a/css/semantic/rtl/minified/fonts/icons.svg b/css/semantic/rtl/minified/fonts/icons.svg
new file mode 100644
index 0000000..2edb4ec
--- /dev/null
+++ b/css/semantic/rtl/minified/fonts/icons.svg
@@ -0,0 +1,399 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/fonts/icons.ttf b/css/semantic/rtl/minified/fonts/icons.ttf
new file mode 100644
index 0000000..d365924
Binary files /dev/null and b/css/semantic/rtl/minified/fonts/icons.ttf differ
diff --git a/css/semantic/rtl/minified/fonts/icons.woff b/css/semantic/rtl/minified/fonts/icons.woff
new file mode 100644
index 0000000..b9bd17e
Binary files /dev/null and b/css/semantic/rtl/minified/fonts/icons.woff differ
diff --git a/css/semantic/rtl/minified/images/loader-large-inverted.gif b/css/semantic/rtl/minified/images/loader-large-inverted.gif
new file mode 100644
index 0000000..ee5283f
Binary files /dev/null and b/css/semantic/rtl/minified/images/loader-large-inverted.gif differ
diff --git a/css/semantic/rtl/minified/images/loader-large.gif b/css/semantic/rtl/minified/images/loader-large.gif
new file mode 100644
index 0000000..519621c
Binary files /dev/null and b/css/semantic/rtl/minified/images/loader-large.gif differ
diff --git a/css/semantic/rtl/minified/images/loader-medium-inverted.gif b/css/semantic/rtl/minified/images/loader-medium-inverted.gif
new file mode 100644
index 0000000..caa3110
Binary files /dev/null and b/css/semantic/rtl/minified/images/loader-medium-inverted.gif differ
diff --git a/css/semantic/rtl/minified/images/loader-medium.gif b/css/semantic/rtl/minified/images/loader-medium.gif
new file mode 100644
index 0000000..386eb5a
Binary files /dev/null and b/css/semantic/rtl/minified/images/loader-medium.gif differ
diff --git a/css/semantic/rtl/minified/images/loader-mini-inverted.gif b/css/semantic/rtl/minified/images/loader-mini-inverted.gif
new file mode 100644
index 0000000..c7c95b9
Binary files /dev/null and b/css/semantic/rtl/minified/images/loader-mini-inverted.gif differ
diff --git a/css/semantic/rtl/minified/images/loader-mini.gif b/css/semantic/rtl/minified/images/loader-mini.gif
new file mode 100644
index 0000000..7f3e27c
Binary files /dev/null and b/css/semantic/rtl/minified/images/loader-mini.gif differ
diff --git a/css/semantic/rtl/minified/images/loader-small-inverted.gif b/css/semantic/rtl/minified/images/loader-small-inverted.gif
new file mode 100644
index 0000000..bbb0a67
Binary files /dev/null and b/css/semantic/rtl/minified/images/loader-small-inverted.gif differ
diff --git a/css/semantic/rtl/minified/images/loader-small.gif b/css/semantic/rtl/minified/images/loader-small.gif
new file mode 100644
index 0000000..8c9f60e
Binary files /dev/null and b/css/semantic/rtl/minified/images/loader-small.gif differ
diff --git a/css/semantic/rtl/minified/modules/accordion.min.css b/css/semantic/rtl/minified/modules/accordion.min.css
new file mode 100644
index 0000000..557bd63
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/accordion.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.accordion,.ui.accordion .accordion{width:600px;max-width:100%;font-size:1rem;border-radius:.3125em;background-color:#FFF;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1)}.ui.accordion .title,.ui.accordion .accordion .title{cursor:pointer;margin:0;padding:.75em 1em;color:rgba(0,0,0,.6);border-top:1px solid rgba(0,0,0,.05);-webkit-transition:background-color .2s ease-out;-moz-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.ui.accordion .title:first-child,.ui.accordion .accordion .title:first-child{border-top:0}.ui.accordion .content,.ui.accordion .accordion .content{display:none;margin:0;padding:1.3em 1em}.ui.accordion .title .dropdown.icon,.ui.accordion .accordion .title .dropdown.icon{display:inline-block;float:none;margin:0 0 0 .5em;-webkit-transition:-webkit-transform .2s ease,opacity .2s ease;-moz-transition:-moz-transform .2s ease,opacity .2s ease;transition:transform .2s ease,opacity .2s ease;-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}.ui.accordion .title .dropdown.icon:before,.ui.accordion .accordion .title .dropdown.icon:before{content:'\f0da'}.ui.basic.accordion.menu{background-color:#FFF;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1)}.ui.basic.accordion.menu .title,.ui.basic.accordion.menu .content{padding:0}.ui.basic.accordion{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.ui.basic.accordion .title,.ui.basic.accordion .accordion .title{background-color:transparent;border-top:0;padding-right:0;padding-left:0}.ui.basic.accordion .content,.ui.basic.accordion .accordion .content{padding:.5em 0}.ui.basic.accordion .active.title,.ui.basic.accordion .accordion .active.title{background-color:transparent}.ui.accordion .title:hover,.ui.accordion .active.title,.ui.accordion .accordion .title:hover,.ui.accordion .accordion .active.title{color:rgba(0,0,0,.8)}.ui.accordion .active.title,.ui.accordion .accordion .active.title{background-color:rgba(0,0,0,.1);color:rgba(0,0,0,.8)}.ui.accordion .active.title .dropdown.icon,.ui.accordion .accordion .active.title .dropdown.icon{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.ui.accordion .active.content,.ui.accordion .accordion .active.content{display:block}.ui.fluid.accordion,.ui.fluid.accordion .accordion{width:100%}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/accordion.min.js b/css/semantic/rtl/minified/modules/accordion.min.js
new file mode 100644
index 0000000..78f42ca
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/accordion.min.js
@@ -0,0 +1 @@
+!function(a,b,c,d){a.fn.accordion=function(b){var c,e=a(this),f=(new Date).getTime(),g=[],h=arguments[0],i="string"==typeof h,j=[].slice.call(arguments,1);return e.each(function(){var k,l=a.isPlainObject(b)?a.extend(!0,{},a.fn.accordion.settings,b):a.extend({},a.fn.accordion.settings),m=l.className,n=l.namespace,o=l.selector,p=(l.error,"."+n),q="module-"+n,r=e.selector||"",s=a(this),t=s.find(o.title),u=s.find(o.content),v=this,w=s.data(q);k={initialize:function(){k.debug("Initializing accordion with bound events",s),t.on("click"+p,k.event.click),k.instantiate()},instantiate:function(){w=k,s.data(q,k)},destroy:function(){k.debug("Destroying previous accordion for",s),s.removeData(q),t.off(p)},event:{click:function(){k.verbose("Title clicked",this);var b=a(this),c=t.index(b);k.toggle(c)},resetDisplay:function(){a(this).css("display",""),""==a(this).attr("style")&&a(this).attr("style","").removeAttr("style")},resetOpacity:function(){a(this).css("opacity",""),""==a(this).attr("style")&&a(this).attr("style","").removeAttr("style")}},toggle:function(a){k.debug("Toggling content content at index",a);var b=t.eq(a),c=b.next(u),d=c.is(":visible");d?l.collapsible?k.close(a):k.debug("Cannot close accordion content collapsing is disabled"):k.open(a)},open:function(b){var c=t.eq(b),d=c.next(u),e=c.siblings(o.title).filter("."+m.active),f=e.next(t),g=e.size()>0;d.is(":animated")||(k.debug("Opening accordion content",c),l.exclusive&&g&&(e.removeClass(m.active),f.stop().children().stop().animate({opacity:0},l.duration,k.event.resetOpacity).end().slideUp(l.duration,l.easing,function(){f.removeClass(m.active).children(),a.proxy(k.event.resetDisplay,this)()})),c.addClass(m.active),d.stop().children().stop().animate({opacity:1},l.duration).end().slideDown(l.duration,l.easing,function(){d.addClass(m.active),a.proxy(k.event.resetDisplay,this)(),a.proxy(l.onOpen,d)(),a.proxy(l.onChange,d)()}))},close:function(b){var c=t.eq(b),d=c.next(u);k.debug("Closing accordion content",d),c.removeClass(m.active),d.removeClass(m.active).show().stop().children().stop().animate({opacity:0},l.duration,k.event.resetOpacity).end().slideUp(l.duration,l.easing,function(){a.proxy(k.event.resetDisplay,this)(),a.proxy(l.onClose,d)(),a.proxy(l.onChange,d)()})},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,l,b);else{if(c===d)return l[b];l[b]=c}},internal:function(b,c){return k.debug("Changing internal",b,c),c===d?k[b]:void(a.isPlainObject(b)?a.extend(!0,k,b):k[b]=c)},debug:function(){l.debug&&(l.performance?k.performance.log(arguments):(k.debug=Function.prototype.bind.call(console.info,console,l.name+":"),k.debug.apply(console,arguments)))},verbose:function(){l.verbose&&l.debug&&(l.performance?k.performance.log(arguments):(k.verbose=Function.prototype.bind.call(console.info,console,l.name+":"),k.verbose.apply(console,arguments)))},error:function(){k.error=Function.prototype.bind.call(console.error,console,l.name+":"),k.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;l.performance&&(b=(new Date).getTime(),d=f||b,c=b-d,f=b,g.push({Element:v,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(k.performance.timer),k.performance.timer=setTimeout(k.performance.display,100)},display:function(){var b=l.name+":",c=0;f=!1,clearTimeout(k.performance.timer),a.each(g,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",r&&(b+=" '"+r+"'"),(console.group!==d||console.table!==d)&&g.length>0&&(console.groupCollapsed(b),console.table?console.table(g):a.each(g,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),g=[]}},invoke:function(b,e,f){var g,h,i,k=w;return e=e||j,f=v||f,"string"==typeof b&&k!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(k[f])&&c!=g)k=k[f];else{if(k[f]!==d)return h=k[f],!1;if(!a.isPlainObject(k[e])||c==g)return k[e]!==d?(h=k[e],!1):!1;k=k[e]}})),a.isFunction(h)?i=h.apply(f,e):h!==d&&(i=h),a.isArray(c)?c.push(i):c!==d?c=[c,i]:i!==d&&(c=i),h}},i?(w===d&&k.initialize(),k.invoke(h)):(w!==d&&k.destroy(),k.initialize())}),c!==d?c:this},a.fn.accordion.settings={name:"Accordion",namespace:"accordion",debug:!1,verbose:!0,performance:!0,exclusive:!0,collapsible:!0,duration:500,easing:"easeInOutQuint",onOpen:function(){},onClose:function(){},onChange:function(){},error:{method:"The method you called is not defined"},className:{active:"active"},selector:{title:".title",content:".content"}},a.extend(a.easing,{easeInOutQuint:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b*b+c:d/2*((b-=2)*b*b*b*b+2)+c}})}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/behavior/api.min.js b/css/semantic/rtl/minified/modules/behavior/api.min.js
new file mode 100644
index 0000000..bd07165
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/behavior/api.min.js
@@ -0,0 +1 @@
+!function(a,b,c,d){a.api=a.fn.api=function(c){var e,f,g=a.extend(!0,{},a.api.settings,c),h="function"!=typeof this?this:a("
"),i=a(g.stateContext?g.stateContext:h),j="object"==typeof this?a(h):i,k=this,l=(new Date).getTime(),m=[],n=j.selector||"",o=g.namespace+"-module",p=g.className,q=g.metadata,r=g.error,s=j.data(o),t=arguments[0],u=s!==d&&"string"==typeof t,v=[].slice.call(arguments,1);return e={initialize:function(){var c,f,h,k,l,m,n=(new Date).getTime(),o={},s={};return g.serializeForm&&a(this).toJSON()!==d&&(o=e.get.formData(),e.debug("Adding form data to API Request",o),a.extend(!0,g.data,o)),c=a.proxy(g.beforeSend,j)(g),c===d||c?(k=e.get.url(e.get.templateURL()))?(h=a.Deferred().always(function(){g.stateContext&&i.removeClass(p.loading),a.proxy(g.complete,j)()}).done(function(b){e.debug("API request successful"),"json"==g.dataType?b.error!==d?a.proxy(g.failure,i)(b.error,g,j):a.isArray(b.errors)?a.proxy(g.failure,i)(b.errors[0],g,j):a.proxy(g.success,i)(b,g,j):a.proxy(g.success,i)(b,g,j)}).fail(function(b,c,f){var h,j=g.error[c]!==d?g.error[c]:f;if(b!==d)if(b.readyState!==d&&4==b.readyState){if(200!=b.status&&f!==d&&""!==f)e.error(k.statusMessage+f);else if("error"==c&&"json"==g.dataType)try{h=a.parseJSON(b.responseText),h&&h.error!==d&&(j=h.error)}catch(k){e.error(k.JSONParse)}i.removeClass(p.loading).addClass(p.error),g.errorLength>0&&setTimeout(function(){i.removeClass(p.error)},g.errorLength),e.debug("API Request error:",j),a.proxy(g.failure,i)(j,g,this)}else e.debug("Request Aborted (Most likely caused by page change)")}),a.extend(!0,s,g,{success:function(){},failure:function(){},complete:function(){},type:g.method||g.type,data:l,url:k,beforeSend:g.beforeXHR}),g.stateContext&&i.addClass(p.loading),g.progress&&(e.verbose("Adding progress events"),a.extend(!0,s,{xhr:function(){var c=new b.XMLHttpRequest;return c.upload.addEventListener("progress",function(b){var c;b.lengthComputable&&(c=Math.round(b.loaded/b.total*1e4)/100+"%",a.proxy(g.progress,i)(c,b))},!1),c.addEventListener("progress",function(b){var c;b.lengthComputable&&(c=Math.round(b.loaded/b.total*1e4)/100+"%",a.proxy(g.progress,i)(c,b))},!1),c}})),e.verbose("Creating AJAX request with settings: ",s),m=a.ajax(s).always(function(){f=g.loadingLength-((new Date).getTime()-n),g.loadingDelay=0>f?0:f}).done(function(a){var b=this;setTimeout(function(){h.resolveWith(b,[a])},g.loadingDelay)}).fail(function(a,b,c){var d=this;"abort"!=b?setTimeout(function(){h.rejectWith(d,[a,b,c])},g.loadingDelay):i.removeClass(p.error).removeClass(p.loading)}),void(g.stateContext&&j.data(q.promise,h).data(q.xhr,m))):(e.error(r.missingURL),void e.reset()):(e.error(r.beforeSend),void e.reset())},get:{formData:function(){return j.closest("form").toJSON()},templateURL:function(){var a,b=j.data(g.metadata.action)||g.action||!1;return b&&(e.debug("Creating url for: ",b),g.api[b]!==d?a=g.api[b]:e.error(r.missingAction)),g.url&&(a=g.url,e.debug("Getting url",a)),a},url:function(b,c){var f;return b&&(f=b.match(g.regExpTemplate),c=c||g.urlData,f&&(e.debug("Looking for URL variables",f),a.each(f,function(g,h){var i=h.substr(2,h.length-3),k=a.isPlainObject(c)&&c[i]!==d?c[i]:j.data(i)!==d?j.data(i):c[i];if(e.verbose("Looking for variable",i,j,j.data(i),c[i]),k===!1)e.debug("Removing variable from URL",f),b=b.replace("/"+h,"");else{if(k===d||!k)return e.error(r.missingParameter+i),b=!1,!1;b=b.replace(h,k)}}))),b}},reset:function(){j.data(q.promise,!1).data(q.xhr,!1),i.removeClass(p.error).removeClass(p.loading)},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,g,b);else{if(c===d)return g[b];g[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,e,b);else{if(c===d)return e[b];e[b]=c}},debug:function(){g.debug&&(g.performance?e.performance.log(arguments):(e.debug=Function.prototype.bind.call(console.info,console,g.name+":"),e.debug.apply(console,arguments)))},verbose:function(){g.verbose&&g.debug&&(g.performance?e.performance.log(arguments):(e.verbose=Function.prototype.bind.call(console.info,console,g.name+":"),e.verbose.apply(console,arguments)))},error:function(){e.error=Function.prototype.bind.call(console.error,console,g.name+":"),e.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;g.performance&&(b=(new Date).getTime(),d=l||b,c=b-d,l=b,m.push({Element:k,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(e.performance.timer),e.performance.timer=setTimeout(e.performance.display,100)},display:function(){var b=g.name+":",c=0;l=!1,clearTimeout(e.performance.timer),a.each(m,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",n&&(b+=" '"+n+"'"),(console.group!==d||console.table!==d)&&m.length>0&&(console.groupCollapsed(b),console.table?console.table(m):a.each(m,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),m=[]}},invoke:function(b,c,e){var g,h,i,j=s;return c=c||v,e=k||e,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(e,c):h!==d&&(i=h),a.isArray(f)?f.push(i):f!==d?f=[f,i]:i!==d&&(f=i),h}},u?(s===d&&e.initialize(),e.invoke(t)):(s!==d&&e.destroy(),e.initialize()),f!==d?f:this},a.fn.apiButton=function(b){return a(this).each(function(){var c,d=a(this),e=a(this).selector||"",f=a.isFunction(b)?a.extend(!0,{},a.api.settings,a.fn.apiButton.settings,{stateContext:this,success:b}):a.extend(!0,{},a.api.settings,a.fn.apiButton.settings,{stateContext:this},b);c={initialize:function(){f.context&&""!==e?a(f.context).on(e,"click."+f.namespace,c.click):d.on("click."+f.namespace,c.click)},click:function(){f.filter&&0!==a(this).filter(f.filter).size()||a.proxy(a.api,this)(f)}},c.initialize()}),this},a.api.settings={name:"API",namespace:"api",debug:!0,verbose:!0,performance:!0,api:{},beforeSend:function(a){return a},beforeXHR:function(){},success:function(){},complete:function(){},failure:function(){},progress:!1,error:{missingAction:"API action used but no url was defined",missingURL:"URL not specified for the API action",missingParameter:"Missing an essential URL parameter: ",timeout:"Your request timed out",error:"There was an error with your request",parseError:"There was an error parsing your request",JSONParse:"JSON could not be parsed during error handling",statusMessage:"Server gave an error: ",beforeSend:"The before send function has aborted the request",exitConditions:"API Request Aborted. Exit conditions met"},className:{loading:"loading",error:"error"},metadata:{action:"action",promise:"promise",xhr:"xhr"},regExpTemplate:/\{\$([A-z]+)\}/g,action:!1,url:!1,urlData:!1,serializeForm:!1,stateContext:!1,method:"get",data:{},dataType:"json",cache:!0,loadingLength:200,errorLength:2e3},a.fn.apiButton.settings={filter:".disabled, .loading",context:!1,stateContext:!1}}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/behavior/colorize.min.js b/css/semantic/rtl/minified/modules/behavior/colorize.min.js
new file mode 100644
index 0000000..c2ec1be
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/behavior/colorize.min.js
@@ -0,0 +1 @@
+!function(a,b,c,d){a.fn.colorize=function(b){var c=a.extend(!0,{},a.fn.colorize.settings,b),e=arguments||!1;return a(this).each(function(b){var f,g,h,i,j,k,l,m,n=a(this),o=a("
")[0],p=a("
")[0],q=a("
")[0],r=new Image,s=c.colors,t=(c.paths,c.namespace),u=c.error,v=n.data("module-"+t);return m={checkPreconditions:function(){return m.debug("Checking pre-conditions"),!a.isPlainObject(s)||a.isEmptyObject(s)?(m.error(u.undefinedColors),!1):!0},async:function(a){c.async?setTimeout(a,0):a()},getMetadata:function(){m.debug("Grabbing metadata"),i=n.data("image")||c.image||d,j=n.data("name")||c.name||b,k=c.width||n.width(),l=c.height||n.height(),(0===k||0===l)&&m.error(u.undefinedSize)},initialize:function(){m.debug("Initializing with colors",s),m.checkPreconditions()&&m.async(function(){m.getMetadata(),m.canvas.create(),m.draw.image(function(){m.draw.colors(),m.canvas.merge()}),n.data("module-"+t,m)})},redraw:function(){m.debug("Redrawing image"),m.async(function(){m.canvas.clear(),m.draw.colors(),m.canvas.merge()})},change:{color:function(a,b){return m.debug("Changing color",a),s[a]===d?(m.error(u.missingColor),!1):(s[a]=b,void m.redraw())}},canvas:{create:function(){m.debug("Creating canvases"),o.width=k,o.height=l,p.width=k,p.height=l,q.width=k,q.height=l,f=o.getContext("2d"),g=p.getContext("2d"),h=q.getContext("2d"),n.append(o),f=n.children("canvas")[0].getContext("2d")},clear:function(){m.debug("Clearing canvas"),h.fillStyle="#FFFFFF",h.fillRect(0,0,k,l)},merge:function(){return a.isFunction(f.blendOnto)?(f.putImageData(g.getImageData(0,0,k,l),0,0),void h.blendOnto(f,"multiply")):void m.error(u.missingPlugin)}},draw:{image:function(a){m.debug("Drawing image"),a=a||function(){},i?(r.src=i,r.onload=function(){g.drawImage(r,0,0),a()}):(m.error(u.noImage),a())},colors:function(){m.debug("Drawing color overlays",s),a.each(s,function(a,b){c.onDraw(h,j,a,b)})}},debug:function(a,b){c.debug&&(b!==d?console.info(c.name+": "+a,b):console.info(c.name+": "+a))},error:function(a){console.warn(c.name+": "+a)},invoke:function(b,e,f){var g;return f=f||Array.prototype.slice.call(arguments,2),"string"==typeof b&&v!==d&&(b=b.split("."),a.each(b,function(b,d){return a.isPlainObject(v[d])?(v=v[d],!0):a.isFunction(v[d])?(g=v[d],!0):(m.error(c.error.method),!1)})),a.isFunction(g)?g.apply(e,f):!1}},v!==d&&e?("invoke"==e[0]&&(e=Array.prototype.slice.call(e,1)),m.invoke(e[0],this,Array.prototype.slice.call(e,1))):void m.initialize()}),this},a.fn.colorize.settings={name:"Image Colorizer",debug:!0,namespace:"colorize",onDraw:function(){},async:!0,colors:{},metadata:{image:"image",name:"name"},error:{noImage:"No tracing image specified",undefinedColors:"No default colors specified.",missingColor:"Attempted to change color that does not exist",missingPlugin:"Blend onto plug-in must be included",undefinedHeight:"The width or height of image canvas could not be automatically determined. Please specify a height."}}}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/behavior/form.min.js b/css/semantic/rtl/minified/modules/behavior/form.min.js
new file mode 100644
index 0000000..be29188
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/behavior/form.min.js
@@ -0,0 +1 @@
+!function(a,b,c,d){a.fn.form=function(b,e){var f,g=a(this),h=a.extend(!0,{},a.fn.form.settings,e),i=a.extend({},a.fn.form.settings.defaults,b),j=h.namespace,k=h.metadata,l=h.selector,m=h.className,n=(h.error,"."+j),o="module-"+j,p=g.selector||"",q=(new Date).getTime(),r=[],s=arguments[0],t="string"==typeof s,u=[].slice.call(arguments,1);return g.each(function(){var b,e=a(this),j=a(this).find(l.field),v=a(this).find(l.group),w=a(this).find(l.message),x=(a(this).find(l.prompt),a(this).find(l.submit)),y=[],z=this,A=e.data(o);b={initialize:function(){b.verbose("Initializing form validation",e,i,h),b.bindEvents(),b.instantiate()},instantiate:function(){b.verbose("Storing instance of module",b),A=b,e.data(o,b)},destroy:function(){b.verbose("Destroying previous module",A),b.removeEvents(),e.removeData(o)},refresh:function(){b.verbose("Refreshing selector cache"),j=e.find(l.field)},submit:function(){b.verbose("Submitting form",e),e.submit()},bindEvents:function(){h.keyboardShortcuts&&j.on("keydown"+n,b.event.field.keydown),e.on("submit"+n,b.validate.form),j.on("blur"+n,b.event.field.blur),x.on("click"+n,b.submit),j.each(function(){var c=a(this).prop("type"),d=b.get.changeEvent(c);a(this).on(d+n,b.event.field.change)})},removeEvents:function(){e.off(n),j.off(n),x.off(n),j.off(n)},event:{field:{keydown:function(c){var d=a(this),e=c.which,f={enter:13,escape:27};return e==f.escape&&(b.verbose("Escape key pressed blurring field"),d.blur()),!c.ctrlKey&&e==f.enter&&d.is(l.input)?(b.debug("Enter key pressed, submitting form"),x.addClass(m.down),d.one("keyup"+n,b.event.field.keyup),c.preventDefault(),!1):void 0},keyup:function(){b.verbose("Doing keyboard shortcut form submit"),x.removeClass(m.down),b.submit()},blur:function(){var c=a(this),d=c.closest(v);d.hasClass(m.error)?(b.debug("Revalidating field",c,b.get.validation(c)),b.validate.field(b.get.validation(c))):("blur"==h.on||"change"==h.on)&&b.validate.field(b.get.validation(c))},change:function(){var c=a(this),d=c.closest(v);("change"==h.on||d.hasClass(m.error)&&h.revalidate)&&(clearTimeout(b.timer),b.timer=setTimeout(function(){b.debug("Revalidating field",c,b.get.validation(c)),b.validate.field(b.get.validation(c))},h.delay))}}},get:{changeEvent:function(a){return"checkbox"==a||"radio"==a||"hidden"==a?"change":c.createElement("input").oninput!==d?"input":c.createElement("input").onpropertychange!==d?"propertychange":"keyup"},field:function(c){return b.verbose("Finding field with identifier",c),j.filter("#"+c).size()>0?j.filter("#"+c):j.filter('[name="'+c+'"]').size()>0?j.filter('[name="'+c+'"]'):j.filter("[data-"+k.validate+'="'+c+'"]').size()>0?j.filter("[data-"+k.validate+'="'+c+'"]'):a("
")},validation:function(c){var d;return a.each(i,function(a,e){b.get.field(e.identifier).get(0)==c.get(0)&&(d=e)}),d||!1}},has:{field:function(a){return b.verbose("Checking for existence of a field with identifier",a),j.filter("#"+a).size()>0?!0:j.filter('[name="'+a+'"]').size()>0?!0:j.filter("[data-"+k.validate+'="'+a+'"]').size()>0?!0:!1}},add:{prompt:function(c,f){var g=b.get.field(c),i=g.closest(v),j=i.find(l.prompt),k=0!==j.size();f="string"==typeof f?[f]:f,b.verbose("Adding field error state",c),i.addClass(m.error),h.inline&&(k||(j=h.templates.prompt(f),j.appendTo(i)),j.html(f[0]),k?b.verbose("Inline errors are disabled, no inline error added",c):h.transition&&a.fn.transition!==d&&e.transition("is supported")?(b.verbose("Displaying error with css transition",h.transition),j.transition(h.transition+" in",h.duration)):(b.verbose("Displaying error with fallback javascript animation"),j.fadeIn(h.duration)))},errors:function(a){b.debug("Adding form error messages",a),w.html(h.templates.error(a))}},remove:{prompt:function(c){var f=b.get.field(c.identifier),g=f.closest(v),i=g.find(l.prompt);g.removeClass(m.error),h.inline&&i.is(":visible")&&(b.verbose("Removing prompt for field",c),h.transition&&a.fn.transition!==d&&e.transition("is supported")?i.transition(h.transition+" out",h.duration,function(){i.remove()}):i.fadeOut(h.duration,function(){i.remove()}))}},validate:{form:function(c){var d=!0;return y=[],a.each(i,function(a,c){b.validate.field(c)||(d=!1)}),d?(b.debug("Form has no validation errors, submitting"),e.removeClass(m.error).addClass(m.success),a.proxy(h.onSuccess,this)(c)):(b.debug("Form has errors"),e.addClass(m.error),h.inline||b.add.errors(y),a.proxy(h.onFailure,this)(y))},field:function(c){var e=b.get.field(c.identifier),f=!0,g=[];return c.rules!==d&&a.each(c.rules,function(a,d){b.has.field(c.identifier)&&!b.validate.rule(c,d)&&(b.debug("Field is invalid",c.identifier,d.type),g.push(d.prompt),f=!1)}),f?(b.remove.prompt(c,g),a.proxy(h.onValid,e)(),!0):(y=y.concat(g),b.add.prompt(c.identifier,g),a.proxy(h.onInvalid,e)(g),!1)},rule:function(c,f){var g,i,j=b.get.field(c.identifier),k=f.type,l=a.trim(j.val()+""),m=/\[(.*)\]/i,n=m.exec(k),o=!0;return n!==d&&null!==n?(g=""+n[1],i=k.replace(n[0],""),o=a.proxy(h.rules[i],e)(l,g)):o=a.proxy(h.rules[k],j)(l),o}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,h,b);else{if(c===d)return h[b];h[b]=c}},internal:function(c,e){if(a.isPlainObject(c))a.extend(!0,b,c);else{if(e===d)return b[c];b[c]=e}},debug:function(){h.debug&&(h.performance?b.performance.log(arguments):(b.debug=Function.prototype.bind.call(console.info,console,h.name+":"),b.debug.apply(console,arguments)))},verbose:function(){h.verbose&&h.debug&&(h.performance?b.performance.log(arguments):(b.verbose=Function.prototype.bind.call(console.info,console,h.name+":"),b.verbose.apply(console,arguments)))},error:function(){b.error=Function.prototype.bind.call(console.error,console,h.name+":"),b.error.apply(console,arguments)},performance:{log:function(a){var c,d,e;h.performance&&(c=(new Date).getTime(),e=q||c,d=c-e,q=c,r.push({Element:z,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":d})),clearTimeout(b.performance.timer),b.performance.timer=setTimeout(b.performance.display,100)},display:function(){var c=h.name+":",e=0;q=!1,clearTimeout(b.performance.timer),a.each(r,function(a,b){e+=b["Execution Time"]}),c+=" "+e+"ms",p&&(c+=" '"+p+"'"),g.size()>1&&(c+=" ("+g.size()+")"),(console.group!==d||console.table!==d)&&r.length>0&&(console.groupCollapsed(c),console.table?console.table(r):a.each(r,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),r=[]}},invoke:function(b,c,e){var g,h,i,j=A;return c=c||u,e=z||e,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(e,c):h!==d&&(i=h),a.isArray(f)?f.push(i):f!==d?f=[f,i]:i!==d&&(f=i),h}},t?(A===d&&b.initialize(),b.invoke(s)):(A!==d&&b.destroy(),b.initialize())}),f!==d?f:this},a.fn.form.settings={name:"Form",namespace:"form",debug:!0,verbose:!0,performance:!0,keyboardShortcuts:!0,on:"submit",inline:!1,delay:200,revalidate:!0,transition:"scale",duration:150,onValid:function(){},onInvalid:function(){},onSuccess:function(){return!0},onFailure:function(){return!1},metadata:{validate:"validate"},selector:{message:".error.message",field:"input, textarea, select",group:".field",input:"input",prompt:".prompt",submit:".submit"},className:{error:"error",success:"success",down:"down",label:"ui label prompt"},error:{method:"The method you called is not defined."},templates:{error:function(b){var c='
';return a.each(b,function(a,b){c+=""+b+" "}),c+=" ",a(c)},prompt:function(b){return a("
").addClass("ui red pointing prompt label").html(b[0])}},rules:{checked:function(){return a(this).filter(":checked").size()>0},empty:function(a){return!(a===d||""===a)},email:function(a){var b=new RegExp("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?","i");return b.test(a)},length:function(a,b){return a!==d?a.length>=b:!1},not:function(a,b){return a!=b},contains:function(a,b){return b=b.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),-1!==a.search(b)},is:function(a,b){return a==b},maxLength:function(a,b){return a!==d?a.length<=b:!1},match:function(b,c){var e,f=a(this);return f.find("#"+c).size()>0?e=f.find("#"+c).val():f.find("[name="+c+"]").size()>0?e=f.find("[name="+c+"]").val():f.find('[data-validate="'+c+'"]').size()>0&&(e=f.find('[data-validate="'+c+'"]').val()),e!==d?b.toString()==e.toString():!1},url:function(a){var b=/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;return b.test(a)}}}}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/behavior/state.min.js b/css/semantic/rtl/minified/modules/behavior/state.min.js
new file mode 100644
index 0000000..f9a870b
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/behavior/state.min.js
@@ -0,0 +1 @@
+!function(a,b,c,d){a.fn.state=function(b){var c,e=a(this),f=a.extend(!0,{},a.fn.state.settings,b),g=e.selector||"",h=(new Date).getTime(),i=[],j=arguments[0],k="string"==typeof j,l=[].slice.call(arguments,1),m=(f.error,f.metadata),n=f.className,o=f.namespace,p=f.states,q=f.text,r="."+o,s=o+"-module";return e.each(function(){var o,t=a(this),u=this,v=t.data(s);o={initialize:function(){o.verbose("Initializing module"),f.automatic&&o.add.defaults(),f.context&&""!==g?(o.allows("hover")&&a(u,f.context).on(g,"mouseenter"+r,o.enable.hover).on(g,"mouseleave"+r,o.disable.hover),o.allows("down")&&a(u,f.context).on(g,"mousedown"+r,o.enable.down).on(g,"mouseup"+r,o.disable.down),o.allows("focus")&&a(u,f.context).on(g,"focus"+r,o.enable.focus).on(g,"blur"+r,o.disable.focus),a(f.context).on(g,"mouseenter"+r,o.change.text).on(g,"mouseleave"+r,o.reset.text).on(g,"click"+r,o.toggle.state)):(o.allows("hover")&&t.on("mouseenter"+r,o.enable.hover).on("mouseleave"+r,o.disable.hover),o.allows("down")&&t.on("mousedown"+r,o.enable.down).on("mouseup"+r,o.disable.down),o.allows("focus")&&t.on("focus"+r,o.enable.focus).on("blur"+r,o.disable.focus),t.on("mouseenter"+r,o.change.text).on("mouseleave"+r,o.reset.text).on("click"+r,o.toggle.state)),o.instantiate()},instantiate:function(){o.verbose("Storing instance of module",o),v=o,t.data(s,o)},destroy:function(){o.verbose("Destroying previous module",v),t.off(r).removeData(s)},refresh:function(){o.verbose("Refreshing selector cache"),t=a(u)},add:{defaults:function(){var c=b&&a.isPlainObject(b.states)?b.states:{};a.each(f.defaults,function(b,e){o.is[b]!==d&&o.is[b]()&&(o.verbose("Adding default states",b,u),a.extend(f.states,e,c))})}},is:{active:function(){return t.hasClass(n.active)},loading:function(){return t.hasClass(n.loading)},inactive:function(){return!t.hasClass(n.active)},enabled:function(){return!t.is(f.filter.active)},disabled:function(){return t.is(f.filter.active)},textEnabled:function(){return!t.is(f.filter.text)},button:function(){return t.is(".button:not(a, .submit)")},input:function(){return t.is("input")}},allow:function(a){o.debug("Now allowing state",a),p[a]=!0},disallow:function(a){o.debug("No longer allowing",a),p[a]=!1},allows:function(a){return p[a]||!1},enable:{state:function(a){o.allows(a)&&t.addClass(n[a])},focus:function(){t.addClass(n.focus)},hover:function(){t.addClass(n.hover)},down:function(){t.addClass(n.down)}},disable:{state:function(a){o.allows(a)&&t.removeClass(n[a])},focus:function(){t.removeClass(n.focus)},hover:function(){t.removeClass(n.hover)},down:function(){t.removeClass(n.down)}},toggle:{state:function(){var a=t.data(m.promise);o.allows("active")&&o.is.enabled()&&(o.refresh(),a!==d?o.listenTo(a):o.change.state())}},listenTo:function(b){o.debug("API request detected, waiting for state signal",b),b?(q.loading&&o.update.text(q.loading),a.when(b).then(function(){"resolved"==b.state()?(o.debug("API request succeeded"),f.activateTest=function(){return!0},f.deactivateTest=function(){return!0}):(o.debug("API request failed"),f.activateTest=function(){return!1},f.deactivateTest=function(){return!1}),o.change.state()})):(f.activateTest=function(){return!1},f.deactivateTest=function(){return!1})},change:{state:function(){o.debug("Determining state change direction"),o.is.inactive()?o.activate():o.deactivate(),f.sync&&o.sync(),a.proxy(f.onChange,u)()},text:function(){o.is.textEnabled()&&(o.is.active()?q.hover?(o.verbose("Changing text to hover text",q.hover),o.update.text(q.hover)):q.disable&&(o.verbose("Changing text to disable text",q.disable),o.update.text(q.disable)):q.hover?(o.verbose("Changing text to hover text",q.disable),o.update.text(q.hover)):q.enable&&(o.verbose("Changing text to enable text",q.enable),o.update.text(q.enable)))}},activate:function(){a.proxy(f.activateTest,u)()&&(o.debug("Setting state to active"),t.addClass(n.active),o.update.text(q.active)),a.proxy(f.onActivate,u)()},deactivate:function(){a.proxy(f.deactivateTest,u)()&&(o.debug("Setting state to inactive"),t.removeClass(n.active),o.update.text(q.inactive)),a.proxy(f.onDeactivate,u)()},sync:function(){o.verbose("Syncing other buttons to current state"),e.not(t).state(o.is.active()?"activate":"deactivate")},get:{text:function(){return f.selector.text?t.find(f.selector.text).text():t.html()},textFor:function(a){return q[a]||!1}},flash:{text:function(a,b){var c=o.get.text();o.debug("Flashing text message",a,b),a=a||f.text.flash,b=b||f.flashDuration,o.update.text(a),setTimeout(function(){o.update.text(c)},b)}},reset:{text:function(){var a=q.active||t.data(m.storedText),b=q.inactive||t.data(m.storedText);o.is.textEnabled()&&(o.is.active()&&a?(o.verbose("Resetting active text",a),o.update.text(a)):b&&(o.verbose("Resetting inactive text",a),o.update.text(b)))}},update:{text:function(a){var b=o.get.text();a&&a!==b?(o.debug("Updating text",a),f.selector.text?t.data(m.storedText,a).find(f.selector.text).text(a):t.data(m.storedText,a).html(a)):o.debug("Text is already sane, ignoring update",a)}},setting:function(b,c){return o.debug("Changing setting",b,c),c===d?f[b]:void(a.isPlainObject(b)?a.extend(!0,f,b):f[b]=c)},internal:function(b,c){return o.debug("Changing internal",b,c),c===d?o[b]:void(a.isPlainObject(b)?a.extend(!0,o,b):o[b]=c)},debug:function(){f.debug&&(f.performance?o.performance.log(arguments):(o.debug=Function.prototype.bind.call(console.info,console,f.name+":"),o.debug.apply(console,arguments)))},verbose:function(){f.verbose&&f.debug&&(f.performance?o.performance.log(arguments):(o.verbose=Function.prototype.bind.call(console.info,console,f.name+":"),o.verbose.apply(console,arguments)))},error:function(){o.error=Function.prototype.bind.call(console.error,console,f.name+":"),o.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;f.performance&&(b=(new Date).getTime(),d=h||b,c=b-d,h=b,i.push({Element:u,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(o.performance.timer),o.performance.timer=setTimeout(o.performance.display,100)},display:function(){var b=f.name+":",c=0;h=!1,clearTimeout(o.performance.timer),a.each(i,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",g&&(b+=" '"+g+"'"),e.size()>1&&(b+=" ("+e.size()+")"),(console.group!==d||console.table!==d)&&i.length>0&&(console.groupCollapsed(b),console.table?console.table(i):a.each(i,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),i=[]}},invoke:function(b,e,f){var g,h,i,j=v;return e=e||l,f=u||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,e):h!==d&&(i=h),a.isArray(c)?c.push(i):c!==d?c=[c,i]:i!==d&&(c=i),h}},k?(v===d&&o.initialize(),o.invoke(j)):(v!==d&&o.destroy(),o.initialize())}),c!==d?c:this},a.fn.state.settings={name:"State",debug:!0,verbose:!0,namespace:"state",performance:!0,onActivate:function(){},onDeactivate:function(){},onChange:function(){},activateTest:function(){return!0},deactivateTest:function(){return!0},automatic:!0,sync:!1,flashDuration:3e3,filter:{text:".loading, .disabled",active:".disabled"},context:!1,error:{method:"The method you called is not defined."},metadata:{promise:"promise",storedText:"stored-text"},className:{focus:"focus",hover:"hover",down:"down",active:"active",loading:"loading"},selector:{text:!1},defaults:{input:{hover:!0,focus:!0,down:!0,loading:!1,active:!1},button:{hover:!0,focus:!1,down:!0,active:!0,loading:!0}},states:{hover:!0,focus:!0,down:!0,loading:!1,active:!1},text:{flash:!1,hover:!1,active:!1,inactive:!1,enable:!1,disable:!1}}}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/chatroom.min.css b/css/semantic/rtl/minified/modules/chatroom.min.css
new file mode 100644
index 0000000..ff721fb
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/chatroom.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.chatroom{background-color:#F8F8F8;width:330px;height:370px;padding:0}.ui.chatroom .room{position:relative;background-color:#FFF;overflow:hidden;height:286px;border:1px solid rgba(0,0,0,.1);border-top:0;border-bottom:0}.ui.chatroom .room .loader{display:none;margin:-25px -25px 0 0}.ui.chatroom .actions{overflow:hidden;background-color:#EEE;padding:4px;border:1px solid rgba(0,0,0,.1);border-radius:5px 5px 0 0}.ui.chatroom .actions .button{float:left;margin-right:3px}.ui.chatroom .actions .message{float:right;margin-right:6px;font-size:11px;color:#AAA;text-shadow:0 -1px 0 rgba(255,255,255,.8);line-height:28px}.ui.chatroom .actions .message .loader{display:inline-block;margin-left:8px}.ui.chatroom .log{float:right;overflow:auto;overflow-x:hidden;overflow-y:auto}.ui.chatroom .log .message{padding:3px 0;border-top:1px dotted #DADADA}.ui.chatroom .log .message:first-child{border-top:0}.ui.chatroom .status{padding:5px 0;color:#AAA;font-size:12px;font-style:italic;line-height:1.33;border-top:1px dotted #DADADA}.ui.chatroom .log .status:first-child{border-top:0}.ui.chatroom .log .flag{float:right}.ui.chatroom .log p{margin-right:0}.ui.chatroom .log .author{font-weight:700;-webkit-transition:color .3s ease-out;-moz-transition:color .3s ease-out;transition:color .3s ease-out}.ui.chatroom .log a.author:hover{opacity:.8}.ui.chatroom .log .message.admin p{font-weight:700;margin:1px 23px 0 0}.ui.chatroom .log .divider{margin:-1px 0;font-size:11px;padding:10px 0;border-top:1px solid #F8F8F8;border-bottom:1px solid #F8F8F8}.ui.chatroom .log .divider .rule{top:50%;width:15%}.ui.chatroom .log .divider .label{color:#777;margin:0}.ui.chatroom .room .list{position:relative;overflow:auto;overflow-x:hidden;overflow-y:auto;float:right;background-color:#EEE;border-right:1px solid #DDD}.ui.chatroom .room .list .user{display:table;padding:3px 7px;border-bottom:1px solid #DDD}.ui.chatroom .room .list .user:hover{background-color:#F8F8F8}.ui.chatroom .room .list .image{display:table-cell;vertical-align:middle;width:20px}.ui.chatroom .room .list .image img{width:20px;height:20px;vertical-align:middle}.ui.chatroom .room .list p{display:table-cell;vertical-align:middle;padding-right:7px;padding-left:14px;font-size:11px;line-height:1.2;font-weight:700}.ui.chatroom .room .list a:hover{opacity:.8}.ui.chatroom.loading .loader{display:block}.ui.chatroom .talk{border:1px solid rgba(0,0,0,.1);padding:5px 0 0;background-color:#EEE;border-radius:0 0 5px 5px}.ui.chatroom .talk .avatar,.ui.chatroom .talk input,.ui.chatroom .talk .button{float:right}.ui.chatroom .talk .avatar img{display:block;width:30px;height:30px;margin-left:4px;border-radius:500rem}.ui.chatroom .talk input{border:1px solid #CCC;margin:0;width:196px;height:14px;padding:8px 5px;font-size:12px;color:#555}.ui.chatroom .talk input.focus{border:1px solid #AAA}.ui.chatroom .send{width:80px;height:32px;margin-right:-1px;padding:4px 12px;font-size:12px;line-height:23px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;border-radius:0 5px 5px 0}.ui.chatroom .talk .log-in.button{display:block;float:none;margin-top:-6px;height:22px;border-radius:0 0 4px 4px}.ui.chatroom .talk .log-in.button i{vertical-align:text-top}.ui.chatroom .log .team.flag{width:18px}.ui.chatroom.loading .loader{display:block}.ui.chatroom{width:330px;height:370px}.ui.chatroom .room .container{width:3000px}.ui.chatroom .log{width:314px;height:278px;padding:4px 7px}.ui.chatroom .room .list{width:124px;height:278px;padding:4px 0}.ui.chatroom .room .list .user{width:110px}.ui.chatroom .talk{height:40px}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/chatroom.min.js b/css/semantic/rtl/minified/modules/chatroom.min.js
new file mode 100644
index 0000000..f905c69
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/chatroom.min.js
@@ -0,0 +1 @@
+!function(a,b,c,d){a.fn.chatroom=function(b){var c,e=a(this),f=e.selector||"",g=(new Date).getTime(),h=[],i=arguments[0],j="string"==typeof i,k=[].slice.call(arguments,1);return a(this).each(function(){var c,e,l,m,n,o,p,q=a.extend(!0,{},a.fn.chatroom.settings,b),r=q.className,s=q.namespace,t=q.selector,u=q.error,v=a(this),w=v.find(t.expandButton),x=v.find(t.userListButton),y=v.find(t.userList),z=(v.find(t.room),v.find(t.userCount)),A=v.find(t.log),B=(v.find(t.message),v.find(t.messageInput)),C=v.find(t.messageButton),D=v.data("module"),E=this,F="",G={};p={width:{log:A.width(),userList:y.outerWidth()},initialize:function(){return Pusher===d&&p.error(u.pusher),q.key===d||q.channelName===d?(p.error(u.key),!1):q.endpoint.message||q.endpoint.authentication?(o=new Pusher(q.key),Pusher.channel_auth_endpoint=q.endpoint.authentication,c=o.subscribe(q.channelName),c.bind("pusher:subscription_succeeded",p.user.list.create),c.bind("pusher:subscription_error",p.error),c.bind("pusher:member_added",p.user.joined),c.bind("pusher:member_removed",p.user.left),c.bind("update_messages",p.message.receive),a.each(q.customEvents,function(a,b){c.bind(a,b)}),x.on("click."+s,p.event.toggleUserList),w.on("click."+s,p.event.toggleExpand),B.on("keydown."+s,p.event.input.keydown).on("keyup."+s,p.event.input.keyup),C.on("mouseenter."+s,p.event.hover).on("mouseleave."+s,p.event.hover).on("click."+s,p.event.submit),A.animate({scrollTop:A.prop("scrollHeight")},400),void v.data("module",p).addClass(r.loading)):(p.error(u.endpoint),!1)},refresh:function(){x.removeClass(r.active),p.width={log:A.width(),userList:y.outerWidth()},x.hasClass(r.active)&&p.user.list.hide(),v.data("module",p)},user:{updateCount:function(){q.userCount&&(G=v.data("users"),m=0,a.each(G,function(){m++}),z.html(q.templates.userCount(m)))},joined:function(b){G=v.data("users"),"anonymous"!=b.id&&G[b.id]===d&&(G[b.id]=b.info,q.randomColor&&b.info.color===d&&(b.info.color=q.templates.color(b.id)),F=q.templates.userList(b.info),b.info.isAdmin?a(F).prependTo(y):a(F).appendTo(y),q.partingMessages&&(A.append(q.templates.joined(b.info)),p.message.scroll.test()),p.user.updateCount())},left:function(a){G=v.data("users"),a!==d&&"anonymous"!==a.id&&(delete G[a.id],v.data("users",G),y.find("[data-id="+a.id+"]").remove(),q.partingMessages&&(A.append(q.templates.left(a.info)),p.message.scroll.test()),p.user.updateCount())},list:{create:function(b){G={},b.each(function(a){"anonymous"!==a.id&&"undefined"!==a.id&&(q.randomColor&&a.info.color===d&&(a.info.color=q.templates.color(a.id)),F=a.info.isAdmin?q.templates.userList(a.info)+F:F+q.templates.userList(a.info),G[a.id]=a.info)}),v.data("users",G).data("user",G[b.me.id]).removeClass(r.loading),y.html(F),p.user.updateCount(),a.proxy(q.onJoin,y.children())()},show:function(){A.animate({width:p.width.log-p.width.userList},{duration:q.speed,easing:q.easing,complete:p.message.scroll.move})},hide:function(){A.stop().animate({width:p.width.log},{duration:q.speed,easing:q.easing,complete:p.message.scroll.move})}}},message:{scroll:{test:function(){n=A.prop("scrollHeight")-A.height(),Math.abs(A.scrollTop()-n)
0&&(console.groupCollapsed(b),console.table?console.table(h):a.each(h,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),h=[]}},invoke:function(b,c,e){var f,g;return c=c||k,e=E||e,"string"==typeof b&&D!==d&&(b=b.split(/[\. ]/),f=b.length-1,a.each(b,function(c,e){a.isPlainObject(D[e])&&c!=f?D=D[e]:D[e]!==d?g=D[e]:p.error(u.method,b)})),a.isFunction(g)?g.apply(e,c):g||!1}},j?(D===d&&p.initialize(),p.invoke(i)):(D!==d&&p.destroy(),p.initialize())}),c!==d?c:this},a.fn.chatroom.settings={name:"Chat",debug:!1,namespace:"chat",channel:"present-chat",onJoin:function(){},onMessage:function(){},onExpand:function(){},onContract:function(){},customEvents:{},partingMessages:!1,userCount:!0,randomColor:!0,speed:300,easing:"easeOutQuint",scrollArea:9999,endpoint:{message:!1,authentication:!1},error:{method:"The method you called is not defined",endpoint:"Please define a message and authentication endpoint.",key:"You must specify a pusher key and channel.",pusher:"You must include the Pusher library."},className:{expand:"expand",active:"active",hover:"hover",down:"down",loading:"loading"},selector:{userCount:".actions .message",userListButton:".actions .list.button",expandButton:".actions .expand.button",room:".room",userList:".room .list",log:".room .log",message:".room .log .message",author:".room log .message .author",messageInput:".talk input",messageButton:".talk .send.button"},templates:{userCount:function(a){return a+" users in chat"},color:function(){var a=["#000000","#333333","#666666","#999999","#CC9999","#CC6666","#CC3333","#993333","#663333","#CC6633","#CC9966","#CC9933","#999966","#CCCC66","#99CC66","#669933","#669966","#33A3CC","#336633","#33CCCC","#339999","#336666","#336699","#6666CC","#9966CC","#333399","#663366","#996699","#993366","#CC6699"];return a[Math.floor(Math.random()*a.length)]},message:function(a){var b="";return a.user.isAdmin?(a.user.color="#55356A",b+='',b+='
'):b+='
',b+="
",b+=a.user.color!==d?''+a.user.name+" : ":''+a.user.name+" : ",b+=""+a.text+"
"},joined:function(a){return typeof a.name!==d?'
'+a.name+" has joined the chat.
":!1},left:function(a){return typeof a.name!==d?'
'+a.name+" has left the chat.
":!1},userList:function(a){var b="";return a.isAdmin&&(a.color="#55356A"),b+='
"}}}}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/checkbox.min.css b/css/semantic/rtl/minified/modules/checkbox.min.css
new file mode 100644
index 0000000..42e89c0
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/checkbox.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.checkbox{position:relative;display:inline-block;min-width:1em;height:1.25em;line-height:1em;outline:0;vertical-align:middle}.ui.checkbox input{position:absolute;top:0;right:0;opacity:0;outline:0}.ui.checkbox .box,.ui.checkbox label{cursor:pointer;padding-right:2em;outline:0}.ui.checkbox .box:before,.ui.checkbox label:before{position:absolute;top:0;line-height:1;width:1em;height:1em;right:0;content:'';border-radius:4px;background:#FFF;-webkit-transition:background-color .3s ease,-webkit-box-shadow .3s ease;-moz-transition:background-color .3s ease,box-shadow .3s ease;transition:background-color .3s ease,box-shadow .3s ease;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.2)}.ui.checkbox .box:after,.ui.checkbox label:after{-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0);opacity:0;content:'';position:absolute;background:transparent;border:.2em solid #333;border-top:0;border-left:0;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.ui.checkbox .box:after,.ui.checkbox label:after{top:.275em;right:.2em;width:.45em;height:.15em}.ui.checkbox label{color:rgba(0,0,0,.6);-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.ui.checkbox label:hover{color:rgba(0,0,0,.8)}.ui.checkbox input:focus~label{color:rgba(0,0,0,.8)}.ui.checkbox~label{cursor:pointer;opacity:.85;vertical-align:middle}.ui.checkbox~label:hover{opacity:1}.ui.checkbox .box:hover::before,.ui.checkbox label:hover::before{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.3);box-shadow:0 0 0 1px rgba(0,0,0,.3)}.ui.checkbox .box:active::before,.ui.checkbox label:active::before{background-color:#F5F5F5}.ui.checkbox input:focus~.box:before,.ui.checkbox input:focus~label:before{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.3);box-shadow:0 0 0 1px rgba(0,0,0,.3)}.ui.checkbox input:checked~.box:after,.ui.checkbox input:checked~label:after{-ms-filter:"alpha(Opacity=100)";filter:alpha(opacity=100);opacity:1}.ui.disabled.checkbox~.box:after,.ui.checkbox input[disabled]~.box:after,.ui.disabled.checkbox label,.ui.checkbox input[disabled]~label{opacity:.4;color:rgba(0,0,0,.3)}.ui.radio.checkbox .box:before,.ui.radio.checkbox label:before{min-width:1em;height:1em;border-radius:500px;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none}.ui.radio.checkbox .box:after,.ui.radio.checkbox label:after{border:0;top:.2em;right:.2em;width:.6em;height:.6em;background-color:#555;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;border-radius:500px}.ui.slider.checkbox{cursor:pointer;min-width:3em}.ui.slider.checkbox:after{position:absolute;top:.5em;right:0;content:'';width:3em;height:2px;background-color:rgba(0,0,0,.1)}.ui.slider.checkbox .box,.ui.slider.checkbox label{padding-right:4em}.ui.slider.checkbox .box:before,.ui.slider.checkbox label:before{cursor:pointer;display:block;position:absolute;top:-.25em;right:0;z-index:1;width:1.5em;height:1.5em;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;border-radius:50rem;-webkit-transition:right .3s ease 0s;-moz-transition:right .3s ease 0s;transition:right .3s ease 0s}.ui.slider.checkbox .box:after,.ui.slider.checkbox label:after{opacity:1;position:absolute;content:'';top:.15em;right:0;z-index:2;margin-right:.375em;border:0;width:.75em;height:.75em;border-radius:50rem;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;-webkit-transition:background .3s ease 0s,right .3s ease 0s;-moz-transition:background .3s ease 0s,right .3s ease 0s;transition:background .3s ease 0s,right .3s ease 0s}.ui.slider.checkbox input:checked~.box:before,.ui.slider.checkbox input:checked~label:before,.ui.slider.checkbox input:checked~.box:after,.ui.slider.checkbox input:checked~label:after{right:1.75em}.ui.slider.checkbox .box:after,.ui.slider.checkbox label:after{background-color:#D95C5C}.ui.slider.checkbox input:checked~.box:after,.ui.slider.checkbox input:checked~label:after{background-color:#89B84C}.ui.toggle.checkbox{cursor:pointer}.ui.toggle.checkbox .box,.ui.toggle.checkbox label{padding-right:4em}.ui.toggle.checkbox .box:before,.ui.toggle.checkbox label:before{cursor:pointer;display:block;position:absolute;content:'';top:-.25em;right:0;z-index:1;background-color:#FFF;width:3em;height:1.5em;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;border-radius:.box:after,.ui.toggle.checkbox 50rem}.ui.toggle.checkbox label:after{opacity:1;background-color:transparent;-webkit-box-shadow:none;box-shadow:none;content:'';position:absolute;top:.15em;right:.5em;z-index:2;border:0;width:.75em;height:.75em;background-color:#D95C5C;border-radius:50rem;-webkit-transition:background .3s ease 0s,right .3s ease 0s;-moz-transition:background .3s ease 0s,right .3s ease 0s;transition:background .3s ease 0s,right .3s ease 0s}.ui.toggle.checkbox:active .box:before,.ui.toggle.checkbox:active label:before{background-color:#F5F5F5}.ui.toggle.checkbox input:checked~.box:after,.ui.toggle.checkbox input:checked~label:after{right:1.75em;background-color:#89B84C}.ui.checkbox{font-size:1em}.ui.large.checkbox{font-size:1.25em}.ui.huge.checkbox{font-size:1.5em}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/checkbox.min.js b/css/semantic/rtl/minified/modules/checkbox.min.js
new file mode 100644
index 0000000..9a8fe31
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/checkbox.min.js
@@ -0,0 +1 @@
+!function(a,b,c,d){a.fn.checkbox=function(b){var c,e=a(this),f=e.selector||"",g=(new Date).getTime(),h=[],i=arguments[0],j="string"==typeof i,k=[].slice.call(arguments,1);return e.each(function(){var e,l=a.extend(!0,{},a.fn.checkbox.settings,b),m=l.className,n=l.namespace,o=(l.error,"."+n),p="module-"+n,q=a(this),r=a(this).next(l.selector.label).first(),s=a(this).find(l.selector.input),t=q.selector||"",u=q.data(p),v=this;e={initialize:function(){e.verbose("Initializing checkbox",l),l.context&&""!==t?(e.verbose("Adding delegated events"),a(v,l.context).on(t,"click"+o,e.toggle).on(t+" + "+l.selector.label,"click"+o,e.toggle)):(q.on("click"+o,e.toggle).data(p,e),r.on("click"+o,e.toggle)),e.instantiate()},instantiate:function(){e.verbose("Storing instance of module",e),u=e,q.data(p,e)},destroy:function(){e.verbose("Destroying previous module"),q.off(o).removeData(p)},is:{radio:function(){return q.hasClass(m.radio)},enabled:function(){return s.prop("checked")!==d&&s.prop("checked")},disabled:function(){return!e.is.enabled()}},can:{disable:function(){return"boolean"==typeof l.required?l.required:!e.is.radio()}},enable:function(){e.debug("Enabling checkbox",s),s.prop("checked",!0).trigger("change"),a.proxy(l.onChange,s.get())(),a.proxy(l.onEnable,s.get())()},disable:function(){e.debug("Disabling checkbox"),s.prop("checked",!1).trigger("change"),a.proxy(l.onChange,s.get())(),a.proxy(l.onDisable,s.get())()},toggle:function(){e.verbose("Determining new checkbox state"),e.is.disabled()?e.enable():e.is.enabled()&&e.can.disable()&&e.disable()},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,l,b);else{if(c===d)return l[b];l[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,e,b);else{if(c===d)return e[b];e[b]=c}},debug:function(){l.debug&&(l.performance?e.performance.log(arguments):(e.debug=Function.prototype.bind.call(console.info,console,l.name+":"),e.debug.apply(console,arguments)))},verbose:function(){l.verbose&&l.debug&&(l.performance?e.performance.log(arguments):(e.verbose=Function.prototype.bind.call(console.info,console,l.name+":"),e.verbose.apply(console,arguments)))},error:function(){e.error=Function.prototype.bind.call(console.error,console,l.name+":"),e.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;l.performance&&(b=(new Date).getTime(),d=g||b,c=b-d,g=b,h.push({Element:v,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(e.performance.timer),e.performance.timer=setTimeout(e.performance.display,100)},display:function(){var b=l.name+":",c=0;g=!1,clearTimeout(e.performance.timer),a.each(h,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",f&&(b+=" '"+f+"'"),(console.group!==d||console.table!==d)&&h.length>0&&(console.groupCollapsed(b),console.table?console.table(h):a.each(h,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),h=[]}},invoke:function(b,e,f){var g,h,i,j=u;return e=e||k,f=v||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,e):h!==d&&(i=h),a.isArray(c)?c.push(i):c!==d?c=[c,i]:i!==d&&(c=i),h}},j?(u===d&&e.initialize(),e.invoke(i)):(u!==d&&e.destroy(),e.initialize())}),c!==d?c:this},a.fn.checkbox.settings={name:"Checkbox",namespace:"checkbox",debug:!1,verbose:!0,performance:!0,context:!1,required:"auto",onChange:function(){},onEnable:function(){},onDisable:function(){},error:{method:"The method you called is not defined."},selector:{input:"input[type=checkbox], input[type=radio]",label:"label"},className:{radio:"radio"}}}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/dimmer.min.css b/css/semantic/rtl/minified/modules/dimmer.min.css
new file mode 100644
index 0000000..ec4d493
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/dimmer.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.dimmable{position:relative}.ui.dimmer{display:none;position:absolute;top:0!important;right:0!important;width:0;height:0;text-align:center;vertical-align:middle;background-color:rgba(0,0,0,.85);opacity:0;line-height:1;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.5s;-moz-animation-duration:.5s;animation-duration:.5s;-webkit-transition:background-color .5s linear;-moz-transition:background-color .5s linear;transition:background-color .5s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;z-index:1000}.ui.dimmer>.content{width:100%;height:100%;display:table;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.dimmer>.content>div{display:table-cell;vertical-align:middle;color:#FFF}.ui.segment>.ui.dimmer{border-radius:5px}.ui.horizontal.segment>.ui.dimmer,.ui.vertical.segment>.ui.dimmer{border-radius:5px}.ui.dimmed.dimmable:not(body){overflow:hidden}.ui.dimmed.dimmable>.ui.animating.dimmer,.ui.dimmed.dimmable>.ui.visible.dimmer,.ui.active.dimmer{display:block;width:100%;height:100%;opacity:1}.ui.disabled.dimmer{width:0!important;height:0!important}.ui.page.dimmer{position:fixed;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-perspective:2000px;-moz-perspective:2000px;-ms-perspective:2000px;perspective:2000px;-webkit-transform-origin:center center;-moz-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center}.ui.scrolling.dimmable>.dimmer,.ui.scrolling.page.dimmer{position:absolute}.ui.dimmer>.top.aligned.content>*{vertical-align:top}.ui.dimmer>.bottom.aligned.content>*{vertical-align:bottom}.ui.inverted.dimmer{background-color:rgba(255,255,255,.85)}.ui.inverted.dimmer>.content>*{color:rgba(0,0,0,.8)}.ui.simple.dimmer{display:block;overflow:hidden;opacity:1;z-index:-100;background-color:rgba(0,0,0,0)}.ui.dimmed.dimmable>.ui.simple.dimmer{overflow:visible;opacity:1;width:100%;height:100%;background-color:rgba(0,0,0,.85);z-index:1}.ui.simple.inverted.dimmer{background-color:rgba(255,255,255,0)}.ui.dimmed.dimmable>.ui.simple.inverted.dimmer{background-color:rgba(255,255,255,.85)}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/dimmer.min.js b/css/semantic/rtl/minified/modules/dimmer.min.js
new file mode 100644
index 0000000..3bcd1fa
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/dimmer.min.js
@@ -0,0 +1 @@
+!function(a,b,c,d){a.fn.dimmer=function(b){var e,f=a(this),g=(new Date).getTime(),h=[],i=arguments[0],j="string"==typeof i,k=[].slice.call(arguments,1);return f.each(function(){var l,m,n,o=a.isPlainObject(b)?a.extend(!0,{},a.fn.dimmer.settings,b):a.extend({},a.fn.dimmer.settings),p=o.selector,q=o.namespace,r=o.className,s=(o.error,"."+q),t="module-"+q,u=f.selector||"",v="ontouchstart"in c.documentElement?"touchstart":"click",w=a(this),x=this,y=w.data(t);n={preinitialize:function(){n.is.dimmer()?(m=w.parent(),l=w):(m=w,l=n.has.dimmer()?m.children(p.dimmer).first():n.create())},initialize:function(){n.debug("Initializing dimmer",o),"hover"==o.on?m.on("mouseenter"+s,n.show).on("mouseleave"+s,n.hide):"click"==o.on&&m.on(v+s,n.toggle),n.is.page()&&(n.debug("Setting as a page dimmer",m),n.set.pageDimmer()),o.closable&&(n.verbose("Adding dimmer close event",l),l.on(v+s,n.event.click)),n.set.dimmable(),n.instantiate()},instantiate:function(){n.verbose("Storing instance of module",n),y=n,w.data(t,y)},destroy:function(){n.verbose("Destroying previous module",l),w.removeData(t),m.off(s),l.off(s)},event:{click:function(b){n.verbose("Determining if event occured on dimmer",b),(0===l.find(b.target).size()||a(b.target).is(p.content))&&(n.hide(),b.stopImmediatePropagation())}},addContent:function(b){var c=a(b);n.debug("Add content to dimmer",c),c.parent()[0]!==l[0]&&c.detach().appendTo(l)},create:function(){return a(o.template.dimmer()).appendTo(m)},animate:{show:function(b){b=a.isFunction(b)?b:function(){},n.set.dimmed(),"hover"!=o.on&&o.useCSS&&a.fn.transition!==d&&l.transition("is supported")?l.transition({animation:o.transition+" in",queue:!0,duration:n.get.duration(),complete:function(){n.set.active(),b()}}):(n.verbose("Showing dimmer animation with javascript"),l.stop().css({opacity:0,width:"100%",height:"100%"}).fadeTo(n.get.duration(),1,function(){l.removeAttr("style"),n.set.active(),b()}))},hide:function(b){b=a.isFunction(b)?b:function(){},"hover"!=o.on&&o.useCSS&&a.fn.transition!==d&&l.transition("is supported")?(n.verbose("Hiding dimmer with css"),l.transition({animation:o.transition+" out",duration:n.get.duration(),queue:!0,complete:function(){n.remove.dimmed(),n.remove.active(),b()}})):(n.verbose("Hiding dimmer with javascript"),l.stop().fadeOut(n.get.duration(),function(){l.removeAttr("style"),n.remove.dimmed(),n.remove.active(),b()}))}},get:{dimmer:function(){return l},duration:function(){return"object"==typeof o.duration?n.is.active()?o.duration.hide:o.duration.show:o.duration}},has:{dimmer:function(){return w.children(p.dimmer).size()>0}},is:{active:function(){return l.hasClass(r.active)},animating:function(){return l.is(":animated")||l.hasClass(r.transition)},dimmer:function(){return w.is(p.dimmer)},dimmable:function(){return w.is(p.dimmable)},dimmed:function(){return m.hasClass(r.dimmed)},disabled:function(){return m.hasClass(r.disabled)},enabled:function(){return!n.is.disabled()},page:function(){return m.is("body")},pageDimmer:function(){return l.hasClass(r.pageDimmer)}},can:{show:function(){return!l.hasClass(r.disabled)}},set:{active:function(){n.set.dimmed(),l.removeClass(r.transition).addClass(r.active)},dimmable:function(){m.addClass(r.dimmable)},dimmed:function(){m.addClass(r.dimmed)},pageDimmer:function(){l.addClass(r.pageDimmer)},disabled:function(){l.addClass(r.disabled)}},remove:{active:function(){l.removeClass(r.transition).removeClass(r.active)},dimmed:function(){m.removeClass(r.dimmed)},disabled:function(){l.removeClass(r.disabled)}},show:function(b){b=a.isFunction(b)?b:function(){},n.debug("Showing dimmer",l,o),!n.is.active()&&n.is.enabled()?(n.animate.show(b),a.proxy(o.onShow,x)(),a.proxy(o.onChange,x)()):n.debug("Dimmer is already shown or disabled")},hide:function(b){b=a.isFunction(b)?b:function(){},n.is.active()||n.is.animating()?(n.debug("Hiding dimmer",l),n.animate.hide(b),a.proxy(o.onHide,x)(),a.proxy(o.onChange,x)()):n.debug("Dimmer is not visible")},toggle:function(){n.verbose("Toggling dimmer visibility",l),n.is.dimmed()?n.hide():n.show()},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,o,b);else{if(c===d)return o[b];o[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,n,b);else{if(c===d)return n[b];n[b]=c}},debug:function(){o.debug&&(o.performance?n.performance.log(arguments):(n.debug=Function.prototype.bind.call(console.info,console,o.name+":"),n.debug.apply(console,arguments)))},verbose:function(){o.verbose&&o.debug&&(o.performance?n.performance.log(arguments):(n.verbose=Function.prototype.bind.call(console.info,console,o.name+":"),n.verbose.apply(console,arguments)))},error:function(){n.error=Function.prototype.bind.call(console.error,console,o.name+":"),n.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;o.performance&&(b=(new Date).getTime(),d=g||b,c=b-d,g=b,h.push({Element:x,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(n.performance.timer),n.performance.timer=setTimeout(n.performance.display,100)},display:function(){var b=o.name+":",c=0;g=!1,clearTimeout(n.performance.timer),a.each(h,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",u&&(b+=" '"+u+"'"),f.size()>1&&(b+=" ("+f.size()+")"),(console.group!==d||console.table!==d)&&h.length>0&&(console.groupCollapsed(b),console.table?console.table(h):a.each(h,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),h=[]}},invoke:function(b,c,f){var g,h,i,j=y;return c=c||k,f=x||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,c):h!==d&&(i=h),a.isArray(e)?e.push(i):e!==d?e=[e,i]:i!==d&&(e=i),h}},n.preinitialize(),j?(y===d&&n.initialize(),n.invoke(i)):(y!==d&&n.destroy(),n.initialize())}),e!==d?e:this},a.fn.dimmer.settings={name:"Dimmer",namespace:"dimmer",debug:!1,verbose:!0,performance:!0,transition:"fade",useCSS:!0,on:!1,closable:!0,duration:{show:500,hide:500},onChange:function(){},onShow:function(){},onHide:function(){},error:{method:"The method you called is not defined."},selector:{dimmable:".ui.dimmable",dimmer:".ui.dimmer",content:".ui.dimmer > .content, .ui.dimmer > .content > .center"},template:{dimmer:function(){return a("
").attr("class","ui dimmer")}},className:{active:"active",dimmable:"ui dimmable",dimmed:"dimmed",disabled:"disabled",pageDimmer:"page",hide:"hide",show:"show",transition:"transition"}}}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/dropdown.min.css b/css/semantic/rtl/minified/modules/dropdown.min.css
new file mode 100644
index 0000000..221e5ee
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/dropdown.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.dropdown{cursor:pointer;position:relative;display:inline-block;line-height:1;-webkit-transition:border-radius .1s ease,width .2s ease;-moz-transition:border-radius .1s ease,width .2s ease;transition:border-radius .1s ease,width .2s ease;-webkit-tap-highlight-color:rgba(0,0,0,0);-moz-tap-highlight-color:rgba(0,0,0,0);tap-highlight-color:rgba(0,0,0,0)}.ui.dropdown .menu{cursor:auto;position:absolute;display:none;top:100%;margin:0;background-color:#FFF;min-width:100%;white-space:nowrap;font-size:.875em;text-shadow:none;-webkit-box-shadow:0 0 1px 1px rgba(0,0,0,.1);box-shadow:0 0 1px 1px rgba(0,0,0,.1);border-radius:0 0 .325em .325em;-webkit-transition:opacity .2s ease;-moz-transition:opacity .2s ease;transition:opacity .2s ease;z-index:11}.ui.dropdown>.dropdown.icon{width:auto;margin:0 1em 0 0}.ui.dropdown>.dropdown.icon:before{content:"\f0d7"}.ui.dropdown .menu .item .dropdown.icon{width:auto;float:left;margin:0 .5em 0 0}.ui.dropdown .menu .item .dropdown.icon:before{content:"\f0da"}.ui.dropdown>.text{display:inline-block;-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.ui.dropdown .menu{right:0}.ui.dropdown .menu .menu{top:0!important;right:100%!important;margin:0!important;border-radius:0 .325em .325em 0!important}.ui.dropdown .menu .menu:after{display:none}.ui.dropdown .menu .item{cursor:pointer;border:0;border-top:1px solid rgba(0,0,0,.05);height:auto;font-size:.875em;display:block;color:rgba(0,0,0,.75);padding:.85em 1em!important;font-size:.875rem;text-transform:none;font-weight:400;text-align:right;-webkit-touch-callout:none}.ui.dropdown .menu .item:before{display:none}.ui.dropdown .menu .item .icon{margin-left:.75em}.ui.dropdown .menu .item:first-child{border-top:0}.ui.menu .right.menu .dropdown:last-child .menu,.ui.buttons>.ui.dropdown:last-child .menu{right:auto;left:0}.ui.vertical.menu .dropdown.item>.dropdown.icon:before{content:"\f0da"}.ui.dropdown.icon.button>.dropdown.icon{margin:0}.ui.visible.dropdown>.menu{display:block}.ui.dropdown .menu .item:hover{background-color:rgba(0,0,0,.02);z-index:12}.ui.dropdown .menu .active.item{background-color:rgba(0,0,0,.06)!important;border-right:0;border-color:transparent!important;-webkit-box-shadow:none;-moz-shadow:none;box-shadow:none;z-index:12}.ui.dropdown>.default.text,.ui.default.dropdown>.text{color:rgba(0,0,0,.5)}.ui.dropdown:hover>.default.text,.ui.default.dropdown:hover>.text{color:rgba(0,0,0,.8)}.ui.dropdown.error,.ui.dropdown.error>.text,.ui.dropdown.error>.default.text{color:#D95C5C!important}.ui.selection.dropdown.error{background-color:snow;-webkit-box-shadow:0 0 0 1px #e7bebe!important;box-shadow:0 0 0 1px #e7bebe!important}.ui.selection.dropdown.error:hover{-webkit-box-shadow:0 0 0 1px #e7bebe!important;box-shadow:0 0 0 1px #e7bebe!important}.ui.dropdown.error>.menu,.ui.dropdown.error>.menu .menu{-webkit-box-shadow:0 0 1px 1px #E7BEBE!important;box-shadow:0 0 1px 1px #E7BEBE!important}.ui.dropdown.error>.menu .item{color:#D95C5C!important}.ui.dropdown.error>.menu .item:hover{background-color:#FFF2F2!important}.ui.dropdown.error>.menu .active.item{background-color:#FDCFCF!important}.ui.simple.dropdown .menu:before,.ui.simple.dropdown .menu:after{display:none}.ui.simple.dropdown .menu{display:block;overflow:hidden;top:-9999px!important;position:absolute;opacity:0;width:0;height:0;-webkit-transition:opacity .2s ease-out;-moz-transition:opacity .2s ease-out;transition:opacity .2s ease-out}.ui.simple.active.dropdown,.ui.simple.dropdown:hover{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.ui.simple.active.dropdown>.menu,.ui.simple.dropdown:hover>.menu{overflow:visible;width:auto;height:auto;top:100%!important;opacity:1}.ui.simple.dropdown>.menu .item:active>.menu,.ui.simple.dropdown:hover>.menu .item:hover>.menu{overflow:visible;width:auto;height:auto;top:0!important;right:100%!important;opacity:1}.ui.simple.disabled.dropdown:hover .menu{display:none;height:0;width:0;overflow:hidden}.ui.selection.dropdown{cursor:pointer;display:inline-block;word-wrap:break-word;white-space:normal;background-color:#FFF;padding:.65em 1em;line-height:1.33;color:rgba(0,0,0,.8);-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1)!important;box-shadow:0 0 0 1px rgba(0,0,0,.1)!important;border-radius:select{display:none}.ui.selection.dropdown>.dropdown.icon{opacity:.7 .3125em!important}.ui.selection.dropdown;margin:.2em 1.25em .2em 0;-webkit-transition:opacity .2s ease-out;-moz-transition:opacity .2s ease-out;transition:opacity .2s ease-out}.ui.selection.dropdown,.ui.selection.dropdown .menu{-webkit-transition:-webkit-box-shadow .2s ease-out;-moz-transition:box-shadow .2s ease-out;transition:box-shadow .2s ease-out}.ui.selection.dropdown .menu{top:100%;max-height:312px;overflow-x:hidden;overflow-y:auto;-webkit-box-shadow:0 1px 0 1px #E0E0E0;box-shadow:0 1px 0 1px #E0E0E0;border-radius:0 0 .325em .325em}.ui.selection.dropdown .menu:after,.ui.selection.dropdown .menu:before{display:none}.ui.selection.dropdown .menu img{height:2.5em;display:inline-block;vertical-align:middle;margin-left:.5em}.ui.visible.selection.dropdown{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.ui.active.selection.dropdown{border-radius:.3125em .3125em 0!important}.ui.active.selection.dropdown>.dropdown.icon{opacity:1}.ui.fluid.dropdown{display:block}.ui.fluid.dropdown>.dropdown.icon{float:left}.ui.inline.dropdown{cursor:pointer 0;display:inline-block;color:inherit}.ui.inline.dropdown .dropdown.icon{margin:0 .25em 0 .5em}.ui.inline.dropdown .text{font-weight:700}.ui.inline.dropdown .menu{cursor:auto;margin-top:.25em;border-radius:.menu{right:0 .325em}.ui.floating.dropdown;left:auto;margin-top:.5em!important;border-radius:.menu{top:100% .325em}.ui.pointing.dropdown;margin-top:.75em;border-radius:.menu:after{display:block .325em}.ui.pointing.dropdown;position:absolute;pointer-events:none;content:" ";visibility:visible;width:.5em;height:.5em;-webkit-box-shadow:-1px -1px 0 1px rgba(0,0,0,.05);box-shadow:-1px -1px 0 1px rgba(0,0,0,.05);background-image:none;background-color:#FFF;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);z-index:2}.ui.pointing.dropdown .menu .active.item:first-child{background:transparent -webkit-linear-gradient(transparent,rgba(0,0,0,.03));background:transparent -moz-linear-gradient(transparent,rgba(0,0,0,.03));background:transparent-webkit-gradient(linear,right top,right bottom,from(transparent),to(rgba(0,0,0,.03)));background:transparent linear-gradient(transparent,rgba(0,0,0,.03))}.ui.pointing.dropdown .menu:after{top:-.25em;right:50%;margin:0 -.25em 0 0}.ui.top.left.pointing.dropdown .menu{top:100%;bottom:auto;right:0;left:auto;margin:.75em 0 0}.ui.top.left.pointing.dropdown .menu:after{top:-.25em;right:1.25em;left:auto;margin:0;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.ui.top.right.pointing.dropdown .menu{top:100%;bottom:auto;left:0;right:auto;margin:.75em 0 0}.ui.top.right.pointing.dropdown .menu:after{top:-.25em;right:auto;left:1.25em;margin:0;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.ui.left.pointing.dropdown .menu{top:0;right:100%;left:auto;margin:0 .75em 0 0}.ui.left.pointing.dropdown .menu:after{top:1em;right:-.25em;margin:0;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.ui.right.pointing.dropdown .menu{top:0;right:auto;left:100%;margin:0 0 0 .75em}.ui.right.pointing.dropdown .menu:after{top:1em;right:auto;left:-.25em;margin:0;-webkit-transform:rotate(135deg);-moz-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg)}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/dropdown.min.js b/css/semantic/rtl/minified/modules/dropdown.min.js
new file mode 100644
index 0000000..d8d4f78
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/dropdown.min.js
@@ -0,0 +1 @@
+!function(a,b,c,d){a.fn.dropdown=function(b){var e,f=a(this),g=a(c),h=f.selector||"",i="ontouchstart"in c.documentElement,j=(new Date).getTime(),k=[],l=arguments[0],m="string"==typeof l,n=[].slice.call(arguments,1);return f.each(function(){var c,o=a.isPlainObject(b)?a.extend(!0,{},a.fn.dropdown.settings,b):a.extend({},a.fn.dropdown.settings),p=o.className,q=o.metadata,r=o.namespace,s=o.selector,t=o.error,u="."+r,v="module-"+r,w=a(this),x=w.find(s.item),y=w.find(s.text),z=w.find(s.input),A=w.children(s.menu),B=this,C=w.data(v);c={initialize:function(){c.debug("Initializing dropdown",o),c.save.defaults(),c.set.selected(),i&&c.bind.touchEvents(),c.bind.mouseEvents(),c.instantiate()},instantiate:function(){c.verbose("Storing instance of dropdown",c),C=c,w.data(v,c)},destroy:function(){c.verbose("Destroying previous dropdown for",w),x.off(u),w.off(u).removeData(v)},bind:{touchEvents:function(){c.debug("Touch device detected binding touch events"),w.on("touchstart"+u,c.event.test.toggle),x.on("touchstart"+u,c.event.item.mouseenter).on("touchstart"+u,c.event.item.click)},mouseEvents:function(){c.verbose("Mouse detected binding mouse events"),"click"==o.on?w.on("click"+u,c.event.test.toggle):"hover"==o.on?w.on("mouseenter"+u,c.delay.show).on("mouseleave"+u,c.delay.hide):w.on(o.on+u,c.toggle),x.on("mouseenter"+u,c.event.item.mouseenter).on("mouseleave"+u,c.event.item.mouseleave).on("click"+u,c.event.item.click)},intent:function(){c.verbose("Binding hide intent event to document"),i&&g.on("touchstart"+u,c.event.test.touch).on("touchmove"+u,c.event.test.touch),g.on("click"+u,c.event.test.hide)}},unbind:{intent:function(){c.verbose("Removing hide intent event from document"),i&&g.off("touchstart"+u).off("touchmove"+u),g.off("click"+u)}},event:{test:{toggle:function(a){c.determine.intent(a,c.toggle)&&a.preventDefault()},touch:function(a){c.determine.intent(a,function(){"touchstart"==a.type?c.timer=setTimeout(c.hide,o.delay.touch):"touchmove"==a.type&&clearTimeout(c.timer)}),a.stopPropagation()},hide:function(a){c.determine.intent(a,c.hide)}},item:{mouseenter:function(b){var d=a(this).find(s.submenu),e=a(this).siblings(s.item).children(s.menu);(d.length>0||e.length>0)&&(clearTimeout(c.itemTimer),c.itemTimer=setTimeout(function(){e.length>0&&c.animate.hide(!1,e.filter(":visible")),d.length>0&&(c.verbose("Showing sub-menu",d),c.animate.show(!1,d))},2*o.delay.show),b.preventDefault(),b.stopPropagation())},mouseleave:function(){var b=a(this).find(s.menu);b.size()>0&&(clearTimeout(c.itemTimer),c.itemTimer=setTimeout(function(){c.verbose("Hiding sub-menu",b),c.animate.hide(!1,b)},o.delay.hide))},click:function(b){var e=a(this),f=e.data(q.text)!==d?e.data(q.text):e.text(),g=e.data(q.value)!==d?e.data(q.value):"string"==typeof f?f.toLowerCase():f,h=function(){c.determine.selectAction(f,g),a.proxy(o.onChange,B)(g,f)};0===e.find(s.menu).size()&&("touchstart"==b.type?e.one("click",h):h())}},resetStyle:function(){a(this).removeAttr("style")}},determine:{selectAction:function(b,d){c.verbose("Determining action",o.action),a.isFunction(c.action[o.action])?(c.verbose("Triggering preset action",o.action,b,d),c.action[o.action](b,d)):a.isFunction(o.action)?(c.verbose("Triggering user action",o.action,b,d),o.action(b,d)):c.error(t.action,o.action)},intent:function(b,d){return c.debug("Determining whether event occurred in dropdown",b.target),d=d||function(){},0===a(b.target).closest(A).size()?(c.verbose("Triggering event",d),d(),!0):(c.verbose("Event occurred in dropdown, canceling callback"),!1)}},action:{nothing:function(){},hide:function(){c.hide()},activate:function(a,b){b=b!==d?b:a,c.set.selected(b),c.set.value(b),c.hide()},auto:function(a,b){b=b!==d?b:a,c.set.selected(b),c.set.value(b),c.hide()},changeText:function(a,b){b=b!==d?b:a,c.set.selected(b),c.hide()},updateForm:function(a,b){b=b!==d?b:a,c.set.selected(b),c.set.value(b),c.hide()}},get:{text:function(){return y.text()},value:function(){return z.size()>0?z.val():w.data(q.value)},item:function(b,e){var f=!1;return b=b!==d?b:c.get.value()!==d?c.get.value():c.get.text(),e===d&&""===b?(c.debug("Ambiguous dropdown value using strict type check",b),e=!0):e=e||!1,b!==d?x.each(function(){var c=a(this),g=c.data(q.text)!==d?c.data(q.text):c.text(),h=c.data(q.value)!==d?c.data(q.value):"string"==typeof g?g.toLowerCase():g;e?h===b?f=a(this):f||g!==b||(f=a(this)):h==b?f=a(this):f||g!=b||(f=a(this))}):b=c.get.text(),f||!1}},restore:{defaults:function(){c.restore.defaultText(),c.restore.defaultValue()},defaultText:function(){var a=w.data(q.defaultText);c.debug("Restoring default text",a),c.set.text(a)},defaultValue:function(){var a=w.data(q.defaultValue);a!==d&&(c.debug("Restoring default value",a),c.set.selected(a),c.set.value(a))}},save:{defaults:function(){c.save.defaultText(),c.save.defaultValue()},defaultValue:function(){w.data(q.defaultValue,c.get.value())},defaultText:function(){w.data(q.defaultText,y.text())}},set:{text:function(a){c.debug("Changing text",a,y),y.removeClass(p.placeholder),y.text(a)},value:function(a){c.debug("Adding selected value to hidden input",a,z),z.size()>0?z.val(a).trigger("change"):w.data(q.value,a)},active:function(){w.addClass(p.active)},visible:function(){w.addClass(p.visible)},selected:function(a){var b,e=c.get.item(a);e&&(c.debug("Setting selected menu item to",e),b=e.data(q.text)!==d?e.data(q.text):e.text(),x.removeClass(p.active),e.addClass(p.active),c.set.text(b))}},remove:{active:function(){w.removeClass(p.active)},visible:function(){w.removeClass(p.visible)}},is:{selection:function(){return w.hasClass(p.selection)},animated:function(a){return a?a.is(":animated")||a.transition("is animating"):A.is(":animated")||A.transition("is animating")},visible:function(a){return a?a.is(":visible"):A.is(":visible")},hidden:function(a){return a?a.is(":not(:visible)"):A.is(":not(:visible)")}},can:{click:function(){return i||"click"==o.on},show:function(){return!w.hasClass(p.disabled)}},animate:{show:function(b,e){var f=e||A;b=b||function(){},c.is.hidden(f)&&(c.verbose("Doing menu show animation",f),"none"==o.transition?b():a.fn.transition!==d&&w.transition("is supported")?f.transition({animation:o.transition+" in",duration:o.duration,complete:b,queue:!1}):"slide down"==o.transition?f.hide().clearQueue().children().clearQueue().css("opacity",0).delay(50).animate({opacity:1},o.duration,"easeOutQuad",c.event.resetStyle).end().slideDown(100,"easeOutQuad",function(){a.proxy(c.event.resetStyle,this)(),b()}):"fade"==o.transition?f.hide().clearQueue().fadeIn(o.duration,function(){a.proxy(c.event.resetStyle,this)(),b()}):c.error(t.transition,o.transition))},hide:function(b,e){var f=e||A;b=b||function(){},c.is.visible(f)&&(c.verbose("Doing menu hide animation",f),a.fn.transition!==d&&w.transition("is supported")?f.transition({animation:o.transition+" out",duration:o.duration,complete:b,queue:!1}):"none"==o.transition?b():"slide down"==o.transition?f.show().clearQueue().children().clearQueue().css("opacity",1).animate({opacity:0},100,"easeOutQuad",c.event.resetStyle).end().delay(50).slideUp(100,"easeOutQuad",function(){a.proxy(c.event.resetStyle,this)(),b()}):"fade"==o.transition?f.show().clearQueue().fadeOut(150,function(){a.proxy(c.event.resetStyle,this)(),b()}):c.error(t.transition))}},show:function(){c.debug("Checking if dropdown can show"),c.is.hidden()&&(c.hideOthers(),c.set.active(),c.animate.show(function(){c.can.click()&&c.bind.intent(),c.set.visible()}),a.proxy(o.onShow,B)())},hide:function(){!c.is.animated()&&c.is.visible()&&(c.debug("Hiding dropdown"),c.can.click()&&c.unbind.intent(),c.remove.active(),c.animate.hide(c.remove.visible),a.proxy(o.onHide,B)())},delay:{show:function(){c.verbose("Delaying show event to ensure user intent"),clearTimeout(c.timer),c.timer=setTimeout(c.show,o.delay.show)},hide:function(){c.verbose("Delaying hide event to ensure user intent"),clearTimeout(c.timer),c.timer=setTimeout(c.hide,o.delay.hide)}},hideOthers:function(){c.verbose("Finding other dropdowns to hide"),f.not(w).has(s.menu+":visible").dropdown("hide")},toggle:function(){c.verbose("Toggling menu visibility"),c.is.hidden()?c.show():c.hide()},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,o,b);else{if(c===d)return o[b];o[b]=c}},internal:function(b,e){if(a.isPlainObject(b))a.extend(!0,c,b);else{if(e===d)return c[b];c[b]=e}},debug:function(){o.debug&&(o.performance?c.performance.log(arguments):(c.debug=Function.prototype.bind.call(console.info,console,o.name+":"),c.debug.apply(console,arguments)))},verbose:function(){o.verbose&&o.debug&&(o.performance?c.performance.log(arguments):(c.verbose=Function.prototype.bind.call(console.info,console,o.name+":"),c.verbose.apply(console,arguments)))},error:function(){c.error=Function.prototype.bind.call(console.error,console,o.name+":"),c.error.apply(console,arguments)},performance:{log:function(a){var b,d,e;o.performance&&(b=(new Date).getTime(),e=j||b,d=b-e,j=b,k.push({Element:B,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":d})),clearTimeout(c.performance.timer),c.performance.timer=setTimeout(c.performance.display,100)},display:function(){var b=o.name+":",e=0;j=!1,clearTimeout(c.performance.timer),a.each(k,function(a,b){e+=b["Execution Time"]}),b+=" "+e+"ms",h&&(b+=" '"+h+"'"),(console.group!==d||console.table!==d)&&k.length>0&&(console.groupCollapsed(b),console.table?console.table(k):a.each(k,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),k=[]}},invoke:function(b,f,g){var h,i,j,k=C;return f=f||n,g=B||g,"string"==typeof b&&k!==d&&(b=b.split(/[\. ]/),h=b.length-1,a.each(b,function(e,f){var g=e!=h?f+b[e+1].charAt(0).toUpperCase()+b[e+1].slice(1):b;if(a.isPlainObject(k[g])&&e!=h)k=k[g];else{if(k[g]!==d)return i=k[g],!1;if(!a.isPlainObject(k[f])||e==h)return k[f]!==d?(i=k[f],!1):(c.error(t.method,b),!1);k=k[f]}})),a.isFunction(i)?j=i.apply(g,f):i!==d&&(j=i),a.isArray(e)?e.push(j):e!==d?e=[e,j]:j!==d&&(e=j),i}},m?(C===d&&c.initialize(),c.invoke(l)):(C!==d&&c.destroy(),c.initialize())}),e!==d?e:this},a.fn.dropdown.settings={name:"Dropdown",namespace:"dropdown",debug:!1,verbose:!0,performance:!0,on:"click",action:"activate",delay:{show:200,hide:300,touch:50},transition:"slide down",duration:250,onChange:function(){},onShow:function(){},onHide:function(){},error:{action:"You called a dropdown action that was not defined",method:"The method you called is not defined.",transition:"The requested transition was not found"},metadata:{defaultText:"defaultText",defaultValue:"defaultValue",text:"text",value:"value"},selector:{menu:".menu",submenu:"> .menu",item:".menu > .item",text:"> .text",input:'> input[type="hidden"]'},className:{active:"active",placeholder:"default",disabled:"disabled",visible:"visible",selection:"selection"}},a.extend(a.easing,{easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c}})}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/modal.min.css b/css/semantic/rtl/minified/modules/modal.min.css
new file mode 100644
index 0000000..d2a8cae
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/modal.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.modal{display:none;position:fixed;z-index:1001;top:50%;right:50%;text-align:right;width:90%;margin-right:-45%;background-color:#FFF;border:1px solid #DDD;border-radius:5px;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.modal>.close{cursor:pointer;position:absolute;z-index:1;opacity:.8;font-size:1.25em;top:-1.75em;left:-1.75em;color:#FFF}.ui.modal>.close:hover{opacity:1}.ui.modal>.header{margin:0;padding:1.5rem 2rem;font-size:1.6em;font-weight:700;border-radius:.325em .325em 0}.ui.modal>.content{display:table 0;width:100%;position:relative;padding:2em;background-color:#F4F4F4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.modal>.content>.left:not(.ui){display:table-cell;padding-left:1.5%;min-width:25%}.ui.modal>.content>.right:not(.ui){display:table-cell;padding-right:1.5%;vertical-align:top}.ui.modal>.content>.left:not(.ui)>i.icon{font-size:8em;margin:0}.ui.modal>.content p{line-height:1.6}.ui.modal .actions{padding:1rem 2rem;text-align:left}.ui.modal .actions>.button{margin-right:.75em}@media only screen and (max-width:768px){.ui.modal .content>.left:not(.ui){display:block;padding:0 0 1em}.ui.modal .content>.right:not(.ui){display:block;padding:1em 0 0;-webkit-box-shadow:none;box-shadow:none}.ui.modal .content .image{width:auto!important;max-width:100%}.ui.modal .actions{padding-bottom:0}.ui.modal .actions>.buttons,.ui.modal .actions>.button{margin-bottom:1em}}@media only screen and (max-width:998px){.ui.modal{width:92%;margin-right:-46%}.ui.modal>.close{color:rgba(0,0,0,.8);top:1.5rem;left:1rem}}@media only screen and (min-width:998px){.ui.modal{width:74%;margin-right:-37%}}@media only screen and (min-width:1500px){.ui.modal{width:56%;margin-right:-28%}}@media only screen and (min-width:1750px){.ui.modal{width:42%;margin-right:-21%}}@media only screen and (min-width:2000px){.ui.modal{width:36%;margin-right:-18%}}.ui.basic.modal{background-color:transparent;border:0;color:#FFF}.ui.basic.modal>.close{top:1.5rem;left:1rem}.ui.basic.modal .content{background-color:transparent}.ui.modal.scrolling{position:absolute;margin-top:10px}.ui.active.modal{display:block}.ui.small.modal>.header{font-size:1.3em}@media only screen and (min-width:998px){.ui.small.modal{width:58%;margin-right:-29%}}@media only screen and (min-width:1500px){.ui.small.modal{width:40%;margin-right:-20%}}@media only screen and (min-width:1750px){.ui.small.modal{width:26%;margin-right:-13%}}@media only screen and (min-width:2000px){.ui.small.modal{width:20%;margin-right:-10%}}@media only screen and (min-width:998px){.ui.large.modal{width:74%;margin-right:-37%}}@media only screen and (min-width:1500px){.ui.large.modal{width:64%;margin-right:-32%}}@media only screen and (min-width:1750px){.ui.large.modal{width:54%;margin-right:-27%}}@media only screen and (min-width:2000px){.ui.large.modal{width:44%;margin-right:-22%}}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/modal.min.js b/css/semantic/rtl/minified/modules/modal.min.js
new file mode 100644
index 0000000..c328063
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/modal.min.js
@@ -0,0 +1 @@
+!function(a,b,c,d){a.fn.modal=function(e){var f,g=a(this),h=a(b),i=a(c),j=a("body"),k=(new Date).getTime(),l=[],m=arguments[0],n="string"==typeof m,o=[].slice.call(arguments,1),p=b.requestAnimationFrame||b.mozRequestAnimationFrame||b.webkitRequestAnimationFrame||b.msRequestAnimationFrame||function(a){setTimeout(a,0)};return g.each(function(){var q,r,s,t,u,v,w=a.isPlainObject(e)?a.extend(!0,{},a.fn.modal.settings,e):a.extend({},a.fn.modal.settings),x=w.selector,y=w.className,z=w.namespace,A=w.error,B="."+z,C="module-"+z,D=g.selector||"",E=a(this),F=a(w.context),G=E.find(x.close),H=this,I=E.data(C);v={initialize:function(){return v.verbose("Initializing dimmer",F),a.fn.dimmer===d?void v.error(A.dimmer):(t=F.dimmer({closable:!1,useCSS:!0,duration:{show:.9*w.duration,hide:1.1*w.duration}}),w.detachable&&t.dimmer("add content",E),u=t.dimmer("get dimmer"),r=E.siblings(x.modal),q=r.add(E),v.verbose("Attaching close events",G),G.on("click"+B,v.event.close),h.on("resize"+B,v.event.resize),void v.instantiate())},instantiate:function(){v.verbose("Storing instance of modal"),I=v,E.data(C,I)},destroy:function(){v.verbose("Destroying previous modal"),E.removeData(C).off(B),G.off(B),F.dimmer("destroy")},refresh:function(){v.remove.scrolling(),v.cacheSizes(),v.set.screenHeight(),v.set.type(),v.set.position()},attachEvents:function(b,c){var d=a(b);c=a.isFunction(v[c])?v[c]:v.toggle,d.size()>0?(v.debug("Attaching modal events to element",b,c),d.off(B).on("click"+B,c)):v.error(A.notFound)},event:{close:function(){v.verbose("Closing element pressed"),a(this).is(x.approve)?a.proxy(w.onApprove,H)()!==!1?v.hide():v.verbose("Approve callback returned false cancelling hide"):a(this).is(x.deny)?a.proxy(w.onDeny,H)()!==!1?v.hide():v.verbose("Deny callback returned false cancelling hide"):v.hide()},click:function(b){0===a(b.target).closest(x.modal).size()&&(v.debug("Dimmer clicked, hiding all modals"),w.allowMultiple?v.hide():v.hideAll(),b.stopImmediatePropagation())},debounce:function(a,b){clearTimeout(v.timer),v.timer=setTimeout(a,b)},keyboard:function(a){var b=a.which,c=27;b==c&&(w.closable?(v.debug("Escape key pressed hiding modal"),v.hide()):v.debug("Escape key pressed, but closable is set to false"),a.preventDefault())},resize:function(){t.dimmer("is active")&&p(v.refresh)}},toggle:function(){v.is.active()?v.hide():v.show()},show:function(b){b=a.isFunction(b)?b:function(){},v.showDimmer(),v.showModal(b)},showModal:function(b){b=a.isFunction(b)?b:function(){},v.is.active()?v.debug("Modal is already visible"):(v.cacheSizes(),v.set.position(),v.set.screenHeight(),v.set.type(),r.filter(":visible").size()>0&&!w.allowMultiple?(v.debug("Other modals visible, queueing show animation"),v.hideOthers(v.showModal)):(a.proxy(w.onShow,H)(),w.transition&&a.fn.transition!==d&&E.transition("is supported")?(v.debug("Showing modal with css animations"),E.transition(w.transition+" in",w.duration,function(){a.proxy(w.onVisible,H)(),v.set.active(),b()})):(v.debug("Showing modal with javascript"),E.fadeIn(w.duration,w.easing,function(){a.proxy(w.onVisible,H)(),v.set.active(),b()}))))},showDimmer:function(){t.dimmer("is active")?v.debug("Dimmer already visible"):(v.debug("Showing dimmer"),t.dimmer("show"))},hide:function(b){b=a.isFunction(b)?b:function(){},q.filter(":visible").size()<=1&&v.hideDimmer(),v.hideModal(b)},hideDimmer:function(){return v.is.active()?(v.debug("Hiding dimmer"),w.closable&&u.off("click"+B),void t.dimmer("hide",function(){w.transition&&a.fn.transition!==d&&E.transition("is supported")&&(E.transition("reset"),v.remove.screenHeight()),v.remove.active()})):void v.debug("Dimmer is not visible cannot hide")},hideModal:function(b){return b=a.isFunction(b)?b:function(){},v.is.active()?(v.debug("Hiding modal"),v.remove.keyboardShortcuts(),a.proxy(w.onHide,H)(),void(w.transition&&a.fn.transition!==d&&E.transition("is supported")?E.transition(w.transition+" out",w.duration,function(){a.proxy(w.onHidden,H)(),v.remove.active(),v.restore.focus(),b()}):E.fadeOut(w.duration,w.easing,function(){a.proxy(w.onHidden,H)(),v.remove.active(),v.restore.focus(),b()}))):void v.debug("Cannot hide modal it is not active")},hideAll:function(b){b=a.isFunction(b)?b:function(){},q.is(":visible")&&(v.debug("Hiding all visible modals"),v.hideDimmer(),q.filter(":visible").modal("hide modal",b))},hideOthers:function(b){b=a.isFunction(b)?b:function(){},r.is(":visible")&&(v.debug("Hiding other modals"),r.filter(":visible").modal("hide modal",b))},add:{keyboardShortcuts:function(){v.verbose("Adding keyboard shortcuts"),i.on("keyup"+B,v.event.keyboard)}},save:{focus:function(){s=a(c.activeElement).blur()}},restore:{focus:function(){s&&s.size()>0&&s.focus()}},remove:{active:function(){E.removeClass(y.active)},screenHeight:function(){v.cache.height>v.cache.pageHeight&&(v.debug("Removing page height"),j.css("height",""))},keyboardShortcuts:function(){v.verbose("Removing keyboard shortcuts"),i.off("keyup"+B)},scrolling:function(){t.removeClass(y.scrolling),E.removeClass(y.scrolling)}},cacheSizes:function(){v.cache={pageHeight:j.outerHeight(),height:E.outerHeight()+w.offset,contextHeight:"body"==w.context?a(b).height():t.height()},v.debug("Caching modal and container sizes",v.cache)},can:{fit:function(){return v.cache.height
v.cache.pageHeight&&(v.debug("Modal is taller than page content, resizing page height"),j.css("height",v.cache.height+w.padding))},active:function(){v.add.keyboardShortcuts(),v.save.focus(),E.addClass(y.active),w.closable&&u.off("click"+B).on("click"+B,v.event.click)},scrolling:function(){t.addClass(y.scrolling),E.addClass(y.scrolling)},type:function(){v.can.fit()?(v.verbose("Modal fits on screen"),v.remove.scrolling()):(v.verbose("Modal cannot fit on screen setting to scrolling"),v.set.scrolling())},position:function(){v.verbose("Centering modal on page",v.cache),E.css(v.can.fit()?{top:"",marginTop:-(v.cache.height/2)}:{marginTop:"1em",top:i.scrollTop()})}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,w,b);else{if(c===d)return w[b];w[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,v,b);else{if(c===d)return v[b];v[b]=c}},debug:function(){w.debug&&(w.performance?v.performance.log(arguments):(v.debug=Function.prototype.bind.call(console.info,console,w.name+":"),v.debug.apply(console,arguments)))},verbose:function(){w.verbose&&w.debug&&(w.performance?v.performance.log(arguments):(v.verbose=Function.prototype.bind.call(console.info,console,w.name+":"),v.verbose.apply(console,arguments)))},error:function(){v.error=Function.prototype.bind.call(console.error,console,w.name+":"),v.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;w.performance&&(b=(new Date).getTime(),d=k||b,c=b-d,k=b,l.push({Element:H,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(v.performance.timer),v.performance.timer=setTimeout(v.performance.display,100)},display:function(){var b=w.name+":",c=0;k=!1,clearTimeout(v.performance.timer),a.each(l,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",D&&(b+=" '"+D+"'"),(console.group!==d||console.table!==d)&&l.length>0&&(console.groupCollapsed(b),console.table?console.table(l):a.each(l,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),l=[]}},invoke:function(b,c,e){var g,h,i,j=I;return c=c||o,e=H||e,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(e,c):h!==d&&(i=h),a.isArray(f)?f.push(i):f!==d?f=[f,i]:i!==d&&(f=i),h}},n?(I===d&&v.initialize(),v.invoke(m)):(I!==d&&v.destroy(),v.initialize())}),f!==d?f:this},a.fn.modal.settings={name:"Modal",namespace:"modal",debug:!1,verbose:!0,performance:!0,allowMultiple:!0,detachable:!0,closable:!0,context:"body",duration:500,easing:"easeOutExpo",offset:0,transition:"scale",padding:30,onShow:function(){},onHide:function(){},onVisible:function(){},onHidden:function(){},onApprove:function(){return!0},onDeny:function(){return!0},selector:{close:".close, .actions .button",approve:".actions .positive, .actions .approve, .actions .ok",deny:".actions .negative, .actions .deny, .actions .cancel",modal:".ui.modal"},error:{dimmer:"UI Dimmer, a required component is not included in this page",method:"The method you called is not defined."},className:{active:"active",scrolling:"scrolling"}}}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/nag.min.css b/css/semantic/rtl/minified/modules/nag.min.css
new file mode 100644
index 0000000..3573846
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/nag.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.nag{display:none;opacity:.95;position:relative;top:0;right:0;z-index:101;min-height:0;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;margin:0;line-height:3em;padding:0 1em;background-color:#555;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.2);box-shadow:0 1px 2px 0 rgba(0,0,0,.2);font-size:1em;text-align:center;color:rgba(255,255,255,.8);border-radius:0 0 5px 5px;-webkit-transition:.2s background;-moz-transition:.2s background;transition:.2s background}a.ui.nag{cursor:pointer}.ui.nag>.title{display:inline-block;margin:0 .5em;color:#FFF}.ui.nag>.close.icon{cursor:pointer;opacity:.4;position:absolute;top:50%;left:1em;margin-top:-.5em;color:#FFF;-webkit-transition:.1s opacity;-moz-transition:.1s opacity;transition:.1s opacity}.ui.nag:hover{opacity:1}.ui.nag .close:hover{opacity:1}.ui.overlay.nag{position:absolute;display:block}.ui.fixed.nag{position:fixed}.ui.bottom.nag{border-radius:5px 5px 0}.ui.fixed.bottom.nags,.ui.fixed.bottom.nag{top:auto 0;bottom:0}.ui.white.nags .nag,.ui.white.nag{background-color:#F1F1F1;text-shadow:0 1px 0 rgba(255,255,255,.8);color:#ACACAC}.ui.white.nags .nag .close,.ui.white.nags .nag .title,.ui.white.nag .close,.ui.white.nag .title{color:#333}.ui.nags .nag{border-radius:0}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/nag.min.js b/css/semantic/rtl/minified/modules/nag.min.js
new file mode 100644
index 0000000..8144c94
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/nag.min.js
@@ -0,0 +1 @@
+!function(a,b,c,d){a.fn.nag=function(c){var e,f=a(this),g=f.selector||"",h=(new Date).getTime(),i=[],j=arguments[0],k="string"==typeof j,l=[].slice.call(arguments,1);return a(this).each(function(){var m,n,o,p,q,r,s,t,u,v=a.extend(!0,{},a.fn.nag.settings,c),w=v.className,x=v.selector,y=v.error,z=v.namespace,A="."+z,B=z+"-module",C=a(this),D=C.find(x.close),E=a(v.context),F=this,G=C.data(B),H=b.requestAnimationFrame||b.mozRequestAnimationFrame||b.webkitRequestAnimationFrame||b.msRequestAnimationFrame||function(a){setTimeout(a,0)};u={initialize:function(){u.verbose("Initializing element"),m=C.offset(),n=C.outerHeight(),o=E.outerWidth(),p=E.outerHeight(),q=E.offset(),C.data(B,u),D.on("click"+A,u.dismiss),v.context==b&&"fixed"==v.position&&C.addClass(w.fixed),v.sticky&&(u.verbose("Adding scroll events"),"absolute"==v.position?E.on("scroll"+A,u.event.scroll).on("resize"+A,u.event.scroll):a(b).on("scroll"+A,u.event.scroll).on("resize"+A,u.event.scroll),a.proxy(u.event.scroll,this)()),v.displayTime>0&&setTimeout(u.hide,v.displayTime),u.should.show()?C.is(":visible")||u.show():u.hide()},destroy:function(){u.verbose("Destroying instance"),C.removeData(B).off(A),v.sticky&&E.off(A)},refresh:function(){u.debug("Refreshing cached calculations"),m=C.offset(),n=C.outerHeight(),o=E.outerWidth(),p=E.outerHeight(),q=E.offset()},show:function(){u.debug("Showing nag",v.animation.show),"fade"==v.animation.show?C.fadeIn(v.duration,v.easing):C.slideDown(v.duration,v.easing)},hide:function(){u.debug("Showing nag",v.animation.hide),"fade"==v.animation.show?C.fadeIn(v.duration,v.easing):C.slideUp(v.duration,v.easing)},onHide:function(){u.debug("Removing nag",v.animation.hide),C.remove(),v.onHide&&v.onHide()},stick:function(){if(u.refresh(),"fixed"==v.position){var c=a(b).prop("pageYOffset")||a(b).scrollTop(),d=C.hasClass(w.bottom)?q.top+(p-n)-c:q.top-c;C.css({position:"fixed",top:d,left:q.left,width:o-v.scrollBarWidth})}else C.css({top:s})},unStick:function(){C.css({top:""})},dismiss:function(a){v.storageMethod&&u.storage.set(v.storedKey,v.storedValue),u.hide(),a.stopImmediatePropagation(),a.preventDefault()},should:{show:function(){return v.persist?(u.debug("Persistent nag is set, can show nag"),!0):u.storage.get(v.storedKey)!=v.storedValue?(u.debug("Stored value is not set, can show nag",u.storage.get(v.storedKey)),!0):(u.debug("Stored value is set, cannot show nag",u.storage.get(v.storedKey)),!1)},stick:function(){return r=E.prop("pageYOffset")||E.scrollTop(),s=C.hasClass(w.bottom)?p-C.outerHeight()+r:r,s>m.top?!0:"fixed"==v.position?!0:!1}},storage:{set:function(c,e){u.debug("Setting stored value",c,e,v.storageMethod),"local"==v.storageMethod&&b.store!==d?b.store.set(c,e):a.cookie!==d?a.cookie(c,e):u.error(y.noStorage)},get:function(c){return u.debug("Getting stored value",c,v.storageMethod),"local"==v.storageMethod&&b.store!==d?b.store.get(c):a.cookie!==d?a.cookie(c):void u.error(y.noStorage)}},event:{scroll:function(){t!==d&&clearTimeout(t),t=setTimeout(function(){u.should.stick()?H(u.stick):u.unStick()},v.lag)}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,v,b);else{if(c===d)return v[b];v[b]=c}},internal:function(b,c){return u.debug("Changing internal",b,c),c===d?u[b]:void(a.isPlainObject(b)?a.extend(!0,u,b):u[b]=c)},debug:function(){v.debug&&(v.performance?u.performance.log(arguments):(u.debug=Function.prototype.bind.call(console.info,console,v.name+":"),u.debug.apply(console,arguments)))},verbose:function(){v.verbose&&v.debug&&(v.performance?u.performance.log(arguments):(u.verbose=Function.prototype.bind.call(console.info,console,v.name+":"),u.verbose.apply(console,arguments)))},error:function(){u.error=Function.prototype.bind.call(console.error,console,v.name+":"),u.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;v.performance&&(b=(new Date).getTime(),d=h||b,c=b-d,h=b,i.push({Element:F,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(u.performance.timer),u.performance.timer=setTimeout(u.performance.display,100)},display:function(){var b=v.name+":",c=0;h=!1,clearTimeout(u.performance.timer),a.each(i,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",g&&(b+=" '"+g+"'"),f.size()>1&&(b+=" ("+f.size()+")"),(console.group!==d||console.table!==d)&&i.length>0&&(console.groupCollapsed(b),console.table?console.table(i):a.each(i,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),i=[]}},invoke:function(b,c,f){var g,h,i,j=G;return c=c||l,f=F||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,c):h!==d&&(i=h),a.isArray(e)?e.push(i):e!==d?e=[e,i]:i!==d&&(e=i),h}},k?(G===d&&u.initialize(),u.invoke(j)):(G!==d&&u.destroy(),u.initialize())}),e!==d?e:this},a.fn.nag.settings={name:"Nag",debug:!1,verbose:!0,performance:!0,namespace:"Nag",persist:!1,displayTime:0,animation:{show:"slide",hide:"slide"},position:"fixed",scrollBarWidth:18,storageMethod:"cookie",storedKey:"nag",storedValue:"dismiss",sticky:!1,lag:0,context:b,error:{noStorage:"Neither $.cookie or store is defined. A storage solution is required for storing state",method:"The method you called is not defined."},className:{bottom:"bottom",fixed:"fixed"},selector:{close:".icon.close"},speed:500,easing:"easeOutQuad",onHide:function(){}}}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/popup.min.css b/css/semantic/rtl/minified/modules/popup.min.css
new file mode 100644
index 0000000..b20a616
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/popup.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.popup{display:none;position:absolute;top:0;left:0;z-index:900;border:1px solid rgba(0,0,0,.1);max-width:250px;background-color:#FFF;padding:.8em 1.2em;font-size:.875rem;font-weight:400;font-style:normal;color:rgba(0,0,0,.7);border-radius:.2em;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.1);box-shadow:0 1px 2px rgba(0,0,0,.1)}.ui.popup .header{padding:0 0 .5em;font-size:1.125em;line-height:1.2;font-weight:700}.ui.popup:before{position:absolute;content:"";width:.75em;height:.75rem;background-image:none;background-color:#FFF;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);z-index:2;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:1px 1px 1px rgba(0,0,0,.1);box-shadow:1px 1px 1px rgba(0,0,0,.1)}.ui.popup .ui.button{width:100%}.ui.popup{margin:0}.ui.popup.bottom{margin:.75em 0 0}.ui.popup.top{margin:0 0 .75em}.ui.popup.left.center{margin:0 0 0 .75em}.ui.popup.right.center{margin:0 .75em 0 0}.ui.popup.center{margin-right:-1.25em}.ui.bottom.center.popup:before{margin-right:-.4em;top:-.4em;right:50%;left:auto;bottom:auto;-webkit-box-shadow:-1px -1px 1px rgba(0,0,0,.2);box-shadow:-1px -1px 1px rgba(0,0,0,.2)}.ui.bottom.left.popup{margin-left:-2em}.ui.bottom.left.popup:before{top:-.4em;left:1em;bottom:auto;right:auto;margin-right:0;-webkit-box-shadow:-1px -1px 1px rgba(0,0,0,.2);box-shadow:-1px -1px 1px rgba(0,0,0,.2)}.ui.bottom.right.popup{margin-right:-2em}.ui.bottom.right.popup:before{top:-.4em;right:1em;left:auto;bottom:auto;margin-right:0;-webkit-box-shadow:-1px -1px 1px rgba(0,0,0,.2);box-shadow:-1px -1px 1px rgba(0,0,0,.2)}.ui.top.center.popup:before{top:auto;left:auto;bottom:-.4em;right:50%;margin-right:-.4em}.ui.top.left.popup{margin-left:-2em}.ui.top.left.popup:before{bottom:-.4em;left:1em;top:auto;right:auto;margin-right:0}.ui.top.right.popup{margin-right:-2em}.ui.top.right.popup:before{bottom:-.4em;right:1em;top:auto;left:auto;margin-right:0}.ui.left.center.popup:before{top:50%;left:-.35em;bottom:auto;right:auto;margin-top:-.4em;-webkit-box-shadow:1px -1px 1px rgba(0,0,0,.2);box-shadow:1px -1px 1px rgba(0,0,0,.2)}.ui.right.center.popup:before{top:50%;right:-.35em;bottom:auto;left:auto;margin-top:-.4em;-webkit-box-shadow:-1px 1px 1px rgba(0,0,0,.2);box-shadow:-1px 1px 1px rgba(0,0,0,.2)}.ui.loading.popup{display:block;visibility:hidden}.ui.animating.popup,.ui.visible.popup{display:block}.ui.small.popup{font-size:.75rem}.ui.large.popup{font-size:1rem}.ui.inverted.popup{background-color:#333;border:0;color:#FFF;-webkit-box-shadow:none;box-shadow:none}.ui.inverted.popup .header{background-color:rgba(0,0,0,.2);color:#FFF}.ui.inverted.popup:before{background-color:#333;-webkit-box-shadow:none;box-shadow:none}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/popup.min.js b/css/semantic/rtl/minified/modules/popup.min.js
new file mode 100644
index 0000000..ad38e42
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/popup.min.js
@@ -0,0 +1 @@
+!function(a,b,c,d){a.fn.popup=function(e){var f,g=a(this),h=a(c),i=g.selector||"",j=(new Date).getTime(),k=[],l=arguments[0],m="string"==typeof l,n=[].slice.call(arguments,1);return g.each(function(){var c,g=a.isPlainObject(e)?a.extend(!0,{},a.fn.popup.settings,e):a.extend({},a.fn.popup.settings),o=g.selector,p=g.className,q=g.error,r=g.metadata,s=g.namespace,t="."+g.namespace,u="module-"+s,v=a(this),w=a(g.context),x=g.target?a(g.target):v,y=a(b),z=g.inline?x.offsetParent():y,A=g.inline?x.next(g.selector.popup):y.children(g.selector.popup).last(),B=0,C=this,D=v.data(u);c={initialize:function(){c.debug("Initializing module",v),"click"==g.on?v.on("click",c.toggle):v.on(c.get.startEvent()+t,c.event.start).on(c.get.endEvent()+t,c.event.end),g.target&&c.debug("Target set to element",x),y.on("resize"+t,c.event.resize),c.instantiate()},instantiate:function(){c.verbose("Storing instance of module",c),D=c,v.data(u,D)},refresh:function(){g.inline?(A=x.next(o.popup),z=x.offsetParent()):A=y.children(o.popup).last()},destroy:function(){c.debug("Destroying previous module"),y.off(t),A.remove(),v.off(t).removeData(u)},event:{start:function(){c.timer=setTimeout(function(){c.is.hidden()&&c.show()},g.delay)},end:function(){clearTimeout(c.timer),c.is.visible()&&c.hide()},resize:function(){c.is.visible()&&c.set.position()}},create:function(){c.debug("Creating pop-up html");var b=v.data(r.html)||g.html,d=v.data(r.variation)||g.variation,e=v.data(r.title)||g.title,f=v.data(r.content)||v.attr("title")||g.content;b||f||e?(b||(b=g.template({title:e,content:f})),A=a("
").addClass(p.popup).addClass(d).html(b),g.inline?(c.verbose("Inserting popup element inline",A),A.data(u,D).insertAfter(v)):(c.verbose("Appending popup element to body",A),A.data(u,D).appendTo(w)),a.proxy(g.onCreate,A)()):c.error(q.content)},toggle:function(){c.debug("Toggling pop-up"),c.is.hidden()?(c.debug("Popup is hidden, showing pop-up"),c.unbind.close(),c.hideAll(),c.show()):(c.debug("Popup is visible, hiding pop-up"),c.hide())},show:function(a){a=a||function(){},c.debug("Showing pop-up",g.transition),g.preserve||c.refresh(),c.exists()||c.create(),c.save.conditions(),c.set.position(),c.animate.show(a)},hide:function(a){a=a||function(){},v.removeClass(p.visible),c.restore.conditions(),c.unbind.close(),c.is.visible()&&c.animate.hide(a)},hideAll:function(){a(o.popup).filter(":visible").popup("hide")},hideGracefully:function(b){b&&0===a(b.target).closest(o.popup).size()?(c.debug("Click occurred outside popup hiding popup"),c.hide()):c.debug("Click was inside popup, keeping popup open")},exists:function(){return g.inline?0!==A.size():A.parent(w).size()},remove:function(){c.debug("Removing popup"),A.remove()},save:{conditions:function(){c.cache={title:v.attr("title")},c.cache.title&&v.removeAttr("title"),c.verbose("Saving original attributes",c.cache.title)}},restore:{conditions:function(){return c.cache&&c.cache.title&&(v.attr("title",c.cache.title),c.verbose("Restoring original attributes",c.cache.title)),!0}},animate:{show:function(b){b=b||function(){},v.addClass(p.visible),g.transition&&a.fn.transition!==d&&v.transition("is supported")?A.transition(g.transition+" in",g.duration,function(){c.bind.close(),a.proxy(b,C)()}):A.stop().fadeIn(g.duration,g.easing,function(){c.bind.close(),a.proxy(b,C)()}),a.proxy(g.onShow,C)()},hide:function(b){b=b||function(){},c.debug("Hiding pop-up"),g.transition&&a.fn.transition!==d&&v.transition("is supported")?A.transition(g.transition+" out",g.duration,function(){c.reset(),b()}):A.stop().fadeOut(g.duration,g.easing,function(){c.reset(),b()}),a.proxy(g.onHide,C)()}},get:{startEvent:function(){return"hover"==g.on?"mouseenter":"focus"==g.on?"focus":void 0},endEvent:function(){return"hover"==g.on?"mouseleave":"focus"==g.on?"blur":void 0},offstagePosition:function(){var d={top:a(b).scrollTop(),bottom:a(b).scrollTop()+a(b).height(),left:0,right:a(b).width()},e={width:A.width(),height:A.outerHeight(),position:A.offset()},f={},g=[];return e.position&&(f={top:e.position.topd.bottom,right:e.position.left+e.width>d.right,left:e.position.left0?g.join(" "):!1},nextPosition:function(a){switch(a){case"top left":a="bottom left";break;case"bottom left":a="top right";break;case"top right":a="bottom right";break;case"bottom right":a="top center";break;case"top center":a="bottom center";break;case"bottom center":a="right center";break;case"right center":a="left center";break;case"left center":a="top center"}return a}},set:{position:function(d,e){var f,h,i=(a(b).width(),a(b).height(),x.outerWidth()),j=x.outerHeight(),k=A.width(),l=A.outerHeight(),m=z.outerWidth(),n=z.outerHeight(),o=g.distanceAway,s=g.inline?x.position():x.offset();switch(d=d||v.data(r.position)||g.position,e=e||v.data(r.offset)||g.offset,g.inline&&("left center"==d||"right center"==d?(e+=parseInt(b.getComputedStyle(C).getPropertyValue("margin-top"),10),o+=-parseInt(b.getComputedStyle(C).getPropertyValue("margin-left"),10)):(e+=parseInt(b.getComputedStyle(C).getPropertyValue("margin-left"),10),o+=parseInt(b.getComputedStyle(C).getPropertyValue("margin-top"),10))),c.debug("Calculating offset for position",d),d){case"top left":f={bottom:n-s.top+o,right:m-s.left-e,top:"auto",left:"auto"};break;case"top center":f={bottom:n-s.top+o,left:s.left+i/2-k/2+e,top:"auto",right:"auto"};break;case"top right":f={top:"auto",bottom:n-s.top+o,left:s.left+i+e,right:"auto"};break;case"left center":f={top:s.top+j/2-l/2+e,right:m-s.left+o,left:"auto",bottom:"auto"};break;case"right center":f={top:s.top+j/2-l/2+e,left:s.left+i+o,bottom:"auto",right:"auto"};break;case"bottom left":f={top:s.top+j+o,right:m-s.left-e,left:"auto",bottom:"auto"};break;case"bottom center":f={top:s.top+j+o,left:s.left+i/2-k/2+e,bottom:"auto",right:"auto"};break;case"bottom right":f={top:s.top+j+o,left:s.left+i+e,bottom:"auto",right:"auto"}}return A.css(f).removeClass(p.position).addClass(d).addClass(p.loading),h=c.get.offstagePosition(),h?(c.debug("Element is outside boundaries",h),B0&&(console.groupCollapsed(b),console.table?console.table(k):a.each(k,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),k=[]}},invoke:function(b,c,e){var g,h,i,j=D;return c=c||n,e=C||e,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(e,c):h!==d&&(i=h),a.isArray(f)?f.push(i):f!==d?f=[f,i]:i!==d&&(f=i),h}},m?(D===d&&c.initialize(),c.invoke(l)):(D!==d&&c.destroy(),c.initialize())}),f!==d?f:this},a.fn.popup.settings={name:"Popup",debug:!1,verbose:!0,performance:!0,namespace:"popup",onCreate:function(){},onShow:function(){},onHide:function(){},variation:"",content:!1,html:!1,title:!1,on:"hover",target:!1,closable:!0,context:"body",position:"top center",delay:150,inline:!1,preserve:!1,duration:250,easing:"easeOutQuint",transition:"scale",distanceAway:0,offset:0,maxSearchDepth:10,error:{content:"Your popup has no content specified",method:"The method you called is not defined.",recursion:"Popup attempted to reposition element to fit, but could not find an adequate position."},metadata:{content:"content",html:"html",offset:"offset",position:"position",title:"title",variation:"variation"},className:{animating:"animating",loading:"loading",popup:"ui popup",position:"top left center bottom right",visible:"visible"},selector:{popup:".ui.popup"},template:function(a){var b="";return typeof a!==d&&(typeof a.title!==d&&a.title&&(b+=''),typeof a.content!==d&&a.content&&(b+=''+a.content+"
")),b}}}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/rating.min.css b/css/semantic/rtl/minified/modules/rating.min.css
new file mode 100644
index 0000000..2861f08
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/rating.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.rating{display:inline-block;font-size:0;vertical-align:middle;margin:0 0 0 .5rem}.ui.rating:last-child{margin-left:0}.ui.rating:before{display:block;content:'';visibility:hidden;clear:both;height:0}.ui.rating .icon{cursor:pointer;margin:0;width:1em;height:auto;padding:0;color:rgba(0,0,0,.15);font-weight:400;font-style:normal}.ui.rating .icon:before{content:"\2605"}.ui.star.rating .icon{width:1.2em}.ui.star.rating .icon:before{content:'\f006';font-family:Icons}.ui.star.rating .active.icon:before{content:'\f005';font-family:Icons}.ui.heart.rating .icon{width:1.2em}.ui.heart.rating .icon:before{content:'\f08a';font-family:Icons}.ui.heart.rating .active.icon:before{content:'\f004';font-family:Icons}.ui.heart.rating .active.icon{color:#EF404A!important}.ui.heart.rating .hover.icon,.ui.heart.rating .active.hover.icon{color:#FF2733!important}.ui.disabled.rating .icon{cursor:default}.ui.rating .active.icon{color:#FFCB08!important}.ui.rating.hover .active.icon{opacity:.5}.ui.rating .icon.hover,.ui.rating .icon.hover.active{opacity:1;color:#FFB70A!important}.ui.small.rating .icon{font-size:.75rem}.ui.rating .icon{font-size:1rem}.ui.large.rating .icon{font-size:1.5rem;vertical-align:middle}.ui.huge.rating .icon{font-size:2rem;vertical-align:middle}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/rating.min.js b/css/semantic/rtl/minified/modules/rating.min.js
new file mode 100644
index 0000000..b25697d
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/rating.min.js
@@ -0,0 +1 @@
+!function(a,b,c,d){a.fn.rating=function(b){var c,e=a(this),f=e.selector||"",g=(new Date).getTime(),h=[],i=arguments[0],j="string"==typeof i,k=[].slice.call(arguments,1);return e.each(function(){var l,m=a.isPlainObject(b)?a.extend(!0,{},a.fn.rating.settings,b):a.extend({},a.fn.rating.settings),n=m.namespace,o=m.className,p=m.metadata,q=m.selector,r=(m.error,"."+n),s="module-"+n,t=this,u=a(this).data(s),v=a(this),w=v.find(q.icon);l={initialize:function(){l.verbose("Initializing rating module",m),m.interactive?l.enable():l.disable(),m.initialRating&&(l.debug("Setting initial rating"),l.setRating(m.initialRating)),v.data(p.rating)&&(l.debug("Rating found in metadata"),l.setRating(v.data(p.rating))),l.instantiate()},instantiate:function(){l.verbose("Instantiating module",m),u=l,v.data(s,l)},destroy:function(){l.verbose("Destroying previous instance",u),v.removeData(s),w.off(r)},event:{mouseenter:function(){var b=a(this);b.nextAll().removeClass(o.hover),v.addClass(o.hover),b.addClass(o.hover).prevAll().addClass(o.hover)},mouseleave:function(){v.removeClass(o.hover),w.removeClass(o.hover)},click:function(){var b=a(this),c=l.getRating(),d=w.index(b)+1;m.clearable&&c==d?l.clearRating():l.setRating(d)}},clearRating:function(){l.debug("Clearing current rating"),l.setRating(0)},getRating:function(){var a=w.filter("."+o.active).size();return l.verbose("Current rating retrieved",a),a},enable:function(){l.debug("Setting rating to interactive mode"),w.on("mouseenter"+r,l.event.mouseenter).on("mouseleave"+r,l.event.mouseleave).on("click"+r,l.event.click),v.removeClass(o.disabled)},disable:function(){l.debug("Setting rating to read-only mode"),w.off(r),v.addClass(o.disabled)},setRating:function(b){var c=b-1>=0?b-1:0,d=w.eq(c);v.removeClass(o.hover),w.removeClass(o.hover).removeClass(o.active),b>0&&(l.verbose("Setting current rating to",b),d.addClass(o.active).prevAll().addClass(o.active)),a.proxy(m.onRate,t)(b)},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,m,b);else{if(c===d)return m[b];m[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,l,b);else{if(c===d)return l[b];l[b]=c}},debug:function(){m.debug&&(m.performance?l.performance.log(arguments):(l.debug=Function.prototype.bind.call(console.info,console,m.name+":"),l.debug.apply(console,arguments)))},verbose:function(){m.verbose&&m.debug&&(m.performance?l.performance.log(arguments):(l.verbose=Function.prototype.bind.call(console.info,console,m.name+":"),l.verbose.apply(console,arguments)))},error:function(){l.error=Function.prototype.bind.call(console.error,console,m.name+":"),l.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;m.performance&&(b=(new Date).getTime(),d=g||b,c=b-d,g=b,h.push({Element:t,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(l.performance.timer),l.performance.timer=setTimeout(l.performance.display,100)},display:function(){var b=m.name+":",c=0;g=!1,clearTimeout(l.performance.timer),a.each(h,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",f&&(b+=" '"+f+"'"),e.size()>1&&(b+=" ("+e.size()+")"),(console.group!==d||console.table!==d)&&h.length>0&&(console.groupCollapsed(b),console.table?console.table(h):a.each(h,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),h=[]}},invoke:function(b,e,f){var g,h,i,j=u;return e=e||k,f=t||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,e):h!==d&&(i=h),a.isArray(c)?c.push(i):c!==d?c=[c,i]:i!==d&&(c=i),h}},j?(u===d&&l.initialize(),l.invoke(i)):(u!==d&&l.destroy(),l.initialize())}),c!==d?c:this},a.fn.rating.settings={name:"Rating",namespace:"rating",verbose:!0,debug:!1,performance:!0,initialRating:0,interactive:!0,clearable:!1,onRate:function(){},error:{method:"The method you called is not defined"},metadata:{rating:"rating"},className:{active:"active",disabled:"disabled",hover:"hover",loading:"loading"},selector:{icon:".icon"}}}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/search.min.css b/css/semantic/rtl/minified/modules/search.min.css
new file mode 100644
index 0000000..ba9e605
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/search.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.search{position:relative;text-shadow:none;font-style:normal;font-weight:400}.ui.search input{border-radius:500rem}.ui.search>.button{position:relative;z-index:2;float:left;margin:0 -15px 0 0;padding:6px 15px 7px;border-radius:15px 0 0 15px;-webkit-box-shadow:none;box-shadow:none}.ui.search .results{display:none;position:absolute;z-index:999;top:100%;right:0;overflow:hidden;background-color:#FFF;margin-top:.5em;width:380px;font-size:.875em;line-height:1.2;color:#555;border-radius:3px;-webkit-box-shadow:0 0 1px 1px rgba(0,0,0,.1),0 -2px 0 0 rgba(0,0,0,.1) inset;box-shadow:0 0 1px 1px rgba(0,0,0,.1),0 -2px 0 0 rgba(0,0,0,.1) inset}.ui.search .result{cursor:pointer;overflow:hidden;padding:.5em 1em}.ui.search .result:first-child{border-top:0}.ui.search .result .image{background:#F0F0F0;margin-left:10px;float:right;overflow:hidden;border-radius:3px;width:38px;height:38px}.ui.search .result .image img{display:block;width:38px;height:38px}.ui.search .result .image~.info{float:none;margin-right:50px}.ui.search .result .info{float:right}.ui.search .result .title{font-weight:700;color:rgba(0,0,0,.8)}.ui.search .result .description{color:rgba(0,0,0,.6)}.ui.search .result .price{float:left;color:#5BBD72;font-weight:700}.ui.search .message{padding:1em}.ui.search .message .text .title{margin:0 0 .5rem;font-size:1.25rem;font-weight:700;color:rgba(0,0,0,.8)}.ui.search .message .text .description{margin:0;font-size:1rem;color:rgba(0,0,0,.5)}.ui.search .results .category{background-color:#FAFAFA;border-top:1px solid rgba(0,0,0,.1);-webkit-transition:background .2s ease-in;-moz-transition:background .2s ease-in;transition:background .2s ease-in}.ui.search .results .category:first-child{border-top:0}.ui.search .results .category>.name{float:right;padding:12px 8px 0 0;font-weight:700;color:#777;text-shadow:0 1px 0 rgba(255,255,255,.8)}.ui.search .results .category .result{background-color:#FFF;margin-right:80px;border-right:1px solid rgba(0,0,0,.1)}.ui.search .all{display:block;border-top:1px solid rgba(0,0,0,.1);background-color:#FAFAFA;height:2em;line-height:2em;color:rgba(0,0,0,.6);font-weight:700;text-align:center}.ui.search .result:hover,.ui.search .category .result:hover{background-color:#F8F8F8}.ui.search .all:hover{background-color:#F0F0F0}.ui.search.loading .input .icon{background:url(../images/loader-mini.gif) no-repeat 50% 50%}.ui.search.loading .input .icon:before,.ui.search.loading .input .icon:after{display:none}.ui.search .results .category.active{background-color:#F1F1F1}.ui.search .results .category.active>.name{color:#333}.ui.search .result.active,.ui.search .category .result.active{background-color:#FBFBFB}.ui.search .result.active .title{color:#000}.ui.search .result.active .description{color:#555}.ui.search .large.result .image,.ui.search .large.result .image img{width:50px;height:50px}.ui.search .large.results .indented.info{margin-right:65px}.ui.search .large.results .info .title{font-size:16px}.ui.search .large.results .info .description{font-size:11px}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/search.min.js b/css/semantic/rtl/minified/modules/search.min.js
new file mode 100644
index 0000000..b169582
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/search.min.js
@@ -0,0 +1 @@
+!function(a,b,c,d){a.fn.search=function(c,e){var f,g=a(this),h=g.selector||"",i=(new Date).getTime(),j=[],k=arguments[0],l="string"==typeof k,m=[].slice.call(arguments,1);return a(this).each(function(){var n,o=a.extend(!0,{},a.fn.search.settings,e),p=o.className,q=o.selector,r=o.error,s=o.namespace,t="."+s,u=s+"-module",v=a(this),w=v.find(q.prompt),x=v.find(q.searchButton),y=v.find(q.results),z=(v.find(q.result),v.find(q.category),this),A=v.data(u);n={initialize:function(){n.verbose("Initializing module");var a=w[0],b=a.oninput!==d?"input":a.onpropertychange!==d?"propertychange":"keyup";w.on("focus"+t,n.event.focus).on("blur"+t,n.event.blur).on("keydown"+t,n.handleKeyboard),o.automatic&&w.on(b+t,n.search.throttle),x.on("click"+t,n.search.query),y.on("click"+t,q.result,n.results.select),n.instantiate()},instantiate:function(){n.verbose("Storing instance of module",n),A=n,v.data(u,n)},destroy:function(){n.verbose("Destroying instance"),v.removeData(u)},event:{focus:function(){v.addClass(p.focus),n.results.show()},blur:function(){n.search.cancel(),v.removeClass(p.focus),n.results.hide()}},handleKeyboard:function(b){var c,d=v.find(q.result),e=v.find(q.category),f=b.which,g={backspace:8,enter:13,escape:27,upArrow:38,downArrow:40},h=p.active,i=d.index(d.filter("."+h)),j=d.size();if(f==g.escape&&(n.verbose("Escape key pressed, blurring search field"),w.trigger("blur")),y.filter(":visible").size()>0)if(f==g.enter){if(n.verbose("Enter key pressed, selecting active result"),d.filter("."+h).exists())return a.proxy(n.results.select,d.filter("."+h))(),b.preventDefault(),!1}else f==g.upArrow?(n.verbose("Up key pressed, changing active result"),c=0>i-1?i:i-1,e.removeClass(h),d.removeClass(h).eq(c).addClass(h).closest(e).addClass(h),b.preventDefault()):f==g.downArrow&&(n.verbose("Down key pressed, changing active result"),c=i+1>=j?i:i+1,e.removeClass(h),d.removeClass(h).eq(c).addClass(h).closest(e).addClass(h),b.preventDefault());else f==g.enter&&(n.verbose("Enter key pressed, executing query"),n.search.query(),x.addClass(p.down),w.one("keyup",function(){x.removeClass(p.down)}))},search:{cancel:function(){var a=v.data("xhr")||!1;a&&"resolved"!=a.state()&&(n.debug("Cancelling last search"),a.abort())},throttle:function(){var a=w.val(),b=a.length;clearTimeout(n.timer),b>=o.minCharacters?n.timer=setTimeout(n.search.query,o.searchThrottle):n.results.hide()},query:function(){var b=w.val(),d=n.search.cache.read(b);d?(n.debug("Reading result for '"+b+"' from cache"),n.results.add(d)):(n.debug("Querying for '"+b+"'"),"object"==typeof c?n.search.local(b):n.search.remote(b),a.proxy(o.onSearchQuery,v)(b))},local:function(b){var d,e=[],f=[],g=a.isArray(o.searchFields)?o.searchFields:[o.searchFields],h=new RegExp("(?:s|^)"+b,"i"),i=new RegExp(b,"i");v.addClass(p.loading),a.each(g,function(b,d){a.each(c,function(b,c){"string"==typeof c[d]&&-1==a.inArray(c,e)&&-1==a.inArray(c,f)&&(h.test(c[d])?e.push(c):i.test(c[d])&&f.push(c))})}),d=n.results.generate({results:a.merge(e,f)}),v.removeClass(p.loading),n.search.cache.write(b,d),n.results.add(d)},remote:function(b){var d,e={stateContext:v,url:c,urlData:{query:b},success:function(a){d=n.results.generate(a),n.search.cache.write(b,d),n.results.add(d)},failure:n.error};n.search.cancel(),n.debug("Executing search"),a.extend(!0,e,o.apiSettings),a.api(e)},cache:{read:function(a){var b=v.data("cache");return o.cache&&"object"==typeof b&&b[a]!==d?b[a]:!1},write:function(a,b){var c=v.data("cache")!==d?v.data("cache"):{};c[a]=b,v.data("cache",c)}}},results:{generate:function(b){n.debug("Generating html from response",b);var c=o.templates[o.type],d="";return a.isPlainObject(b.results)&&!a.isEmptyObject(b.results)||a.isArray(b.results)&&b.results.length>0?(o.maxResults>0&&(b.results=a.makeArray(b.results).slice(0,o.maxResults)),b.results.length>0&&(a.isFunction(c)?d=c(b):n.error(r.noTemplate,!1))):d=n.message(r.noResults,"empty"),a.proxy(o.onResults,v)(b),d},add:function(b){("default"==o.onResultsAdd||"default"==a.proxy(o.onResultsAdd,y)(b))&&y.html(b),n.results.show()},show:function(){0===y.filter(":visible").size()&&w.filter(":focus").size()>0&&""!==y.html()&&(y.stop().fadeIn(200),a.proxy(o.onResultsOpen,y)())},hide:function(){y.filter(":visible").size()>0&&(y.stop().fadeOut(200),a.proxy(o.onResultsClose,y)())},select:function(c){n.debug("Search result selected");var d=a(this),e=d.find(".title"),f=e.html();if("default"==o.onSelect||"default"==a.proxy(o.onSelect,this)(c)){var g=d.find("a[href]").eq(0),h=g.attr("href")||!1,i=g.attr("target")||!1;n.results.hide(),w.val(f),h&&("_blank"==i||c.ctrlKey?b.open(h):b.location.href=h)}}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,o,b);else{if(c===d)return o[b];o[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,n,b);else{if(c===d)return n[b];n[b]=c}},debug:function(){o.debug&&(o.performance?n.performance.log(arguments):(n.debug=Function.prototype.bind.call(console.info,console,o.name+":"),n.debug.apply(console,arguments)))},verbose:function(){o.verbose&&o.debug&&(o.performance?n.performance.log(arguments):(n.verbose=Function.prototype.bind.call(console.info,console,o.name+":"),n.verbose.apply(console,arguments)))},error:function(){n.error=Function.prototype.bind.call(console.error,console,o.name+":"),n.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;o.performance&&(b=(new Date).getTime(),d=i||b,c=b-d,i=b,j.push({Element:z,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(n.performance.timer),n.performance.timer=setTimeout(n.performance.display,100)},display:function(){var b=o.name+":",c=0;i=!1,clearTimeout(n.performance.timer),a.each(j,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",h&&(b+=" '"+h+"'"),g.size()>1&&(b+=" ("+g.size()+")"),(console.group!==d||console.table!==d)&&j.length>0&&(console.groupCollapsed(b),console.table?console.table(j):a.each(j,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),j=[]}},invoke:function(b,c,e){var g,h,i,j=A;return c=c||m,e=z||e,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(e,c):h!==d&&(i=h),a.isArray(f)?f.push(i):f!==d?f=[f,i]:i!==d&&(f=i),h}},l?(A===d&&n.initialize(),n.invoke(k)):(A!==d&&n.destroy(),n.initialize())}),f!==d?f:this},a.fn.search.settings={name:"Search Module",namespace:"search",debug:!1,verbose:!0,performance:!0,onSelect:"default",onResultsAdd:"default",onSearchQuery:function(){},onResults:function(){},onResultsOpen:function(){},onResultsClose:function(){},automatic:"true",type:"simple",minCharacters:3,searchThrottle:300,maxResults:7,cache:!0,searchFields:["title","description"],apiSettings:{},className:{active:"active",down:"down",focus:"focus",empty:"empty",loading:"loading"},error:{noResults:"Your search returned no results",logging:"Error in debug logging, exiting.",noTemplate:"A valid template name was not specified.",serverError:"There was an issue with querying the server.",method:"The method you called is not defined."},selector:{prompt:".prompt",searchButton:".search.button",results:".results",category:".category",result:".result"},templates:{message:function(a,b){var c="";return a!==d&&b!==d&&(c+='',c+="empty"==b?'
'+a+'
':'
'+a+"
",c+="
"),c},categories:function(b){var c="";return b.results!==d?(a.each(b.results,function(b,e){e.results!==d&&e.results.length>0&&(c+=''+e.name+"
",a.each(e.results,function(a,b){c+='
',c+='
',b.image!==d&&(c+='
'),c+='
',b.price!==d&&(c+='
'+b.price+"
"),b.title!==d&&(c+='
'+b.title+"
"),b.description!==d&&(c+='
'+b.description+"
"),c+="
"}),c+="
")}),b.resultPage&&(c+=''+b.resultPage.text+" "),c):!1},simple:function(b){var c="";return b.results!==d?(a.each(b.results,function(a,b){c+='',b.image!==d&&(c+=''),c+='',b.price!==d&&(c+='
'+b.price+"
"),b.title!==d&&(c+='
'+b.title+"
"),b.description!==d&&(c+='
'+b.description+"
"),c+="
"}),b.resultPage&&(c+=''+b.resultPage.text+" "),c):!1}}}}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/shape.min.css b/css/semantic/rtl/minified/modules/shape.min.css
new file mode 100644
index 0000000..cb0f188
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/shape.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.shape{display:inline-block;position:relative;-webkit-perspective:2000px;-moz-perspective:2000px;-ms-perspective:2000px;perspective:2000px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.shape .sides{-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d}.ui.shape .side{opacity:1;width:100%;margin:0!important;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.shape .side{display:none}.ui.cube.shape .side{min-width:15em;height:15em;padding:2em;background-color:#E6E6E6;color:rgba(0,0,0,.6);-webkit-box-shadow:0 0 2px rgba(0,0,0,.3);box-shadow:0 0 2px rgba(0,0,0,.3)}.ui.cube.shape .side>.content{width:100%;height:100%;display:table;text-align:center;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.cube.shape .side>.content>div{display:table-cell;vertical-align:middle;font-size:2em}.ui.text.shape.animating .sides{position:static}.ui.text.shape .side{white-space:nowrap}.ui.text.shape .side>*{white-space:normal}.ui.loading.shape{position:absolute;top:-9999px;right:-9999px}.ui.shape .animating.side{position:absolute;top:0;right:0;z-index:100}.ui.shape .hidden.side{opacity:.4}.ui.shape.animating{-webkit-transition:all .6s ease-in-out;-moz-transition:all .6s ease-in-out;transition:all .6s ease-in-out}.ui.shape.animating .sides{position:absolute}.ui.shape.animating .sides{-webkit-transition:all .6s ease-in-out;-moz-transition:all .6s ease-in-out;transition:all .6s ease-in-out}.ui.shape.animating .side{-webkit-transition:opacity .6s ease-in-out;-moz-transition:opacity .6s ease-in-out;transition:opacity .6s ease-in-out}.ui.shape .active.side{display:block}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/shape.min.js b/css/semantic/rtl/minified/modules/shape.min.js
new file mode 100644
index 0000000..643a671
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/shape.min.js
@@ -0,0 +1 @@
+!function(a,b,c,d){a.fn.shape=function(b){var e,f=a(this),g=a("body"),h=(new Date).getTime(),i=[],j=arguments[0],k="string"==typeof j,l=[].slice.call(arguments,1);return f.each(function(){var m,n,o,p=f.selector||"",q=a.extend(!0,{},a.fn.shape.settings,b),r=q.namespace,s=q.selector,t=q.error,u=q.className,v="."+r,w="module-"+r,x=a(this),y=x.find(s.sides),z=x.find(s.side),A=!1,B=this,C=x.data(w);o={initialize:function(){o.verbose("Initializing module for",B),o.set.defaultSide(),o.instantiate()},instantiate:function(){o.verbose("Storing instance of module",o),C=o,x.data(w,C)},destroy:function(){o.verbose("Destroying previous module for",B),x.removeData(w).off(v)},refresh:function(){o.verbose("Refreshing selector cache for",B),x=a(B),y=a(this).find(s.shape),z=a(this).find(s.side)},repaint:function(){o.verbose("Forcing repaint event");{var a=y.get(0)||c.createElement("div");a.offsetWidth}},animate:function(b,c){o.verbose("Animating box with properties",b),c=c||function(a){o.verbose("Executing animation callback"),a!==d&&a.stopPropagation(),o.reset(),o.set.active()},a.proxy(q.beforeChange,n[0])(),o.get.transitionEvent()?(o.verbose("Starting CSS animation"),x.addClass(u.animating),o.repaint(),x.addClass(u.animating),m.addClass(u.hidden),y.css(b).one(o.get.transitionEvent(),c),o.set.duration(q.duration)):c()},queue:function(a){o.debug("Queueing animation of",a),y.one(o.get.transitionEvent(),function(){o.debug("Executing queued animation"),setTimeout(function(){x.shape(a)},0)})},reset:function(){o.verbose("Animating states reset"),x.removeClass(u.animating).attr("style","").removeAttr("style"),y.attr("style","").removeAttr("style"),z.attr("style","").removeAttr("style").removeClass(u.hidden),n.removeClass(u.animating).attr("style","").removeAttr("style")},is:{animating:function(){return x.hasClass(u.animating)}},set:{defaultSide:function(){m=x.find("."+q.className.active),n=m.next(s.side).size()>0?m.next(s.side):x.find(s.side).first(),A=!1,o.verbose("Active side set to",m),o.verbose("Next side set to",n)},duration:function(a){a=a||q.duration,a="number"==typeof a?a+"ms":a,o.verbose("Setting animation duration",a),y.add(z).css({"-webkit-transition-duration":a,"-moz-transition-duration":a,"-ms-transition-duration":a,"-o-transition-duration":a,"transition-duration":a})},stageSize:function(){var a=x.clone().addClass(u.loading),b=a.find("."+q.className.active),c=A?a.find(A):b.next(s.side).size()>0?b.next(s.side):a.find(s.side).first(),d={};b.removeClass(u.active),c.addClass(u.active),a.prependTo(g),d={width:c.outerWidth(),height:c.outerHeight()},a.remove(),x.css(d),o.verbose("Resizing stage to fit new content",d)},nextSide:function(a){A=a,n=x.find(a),0===n.size()&&o.error(t.side),o.verbose("Next side manually set to",n)},active:function(){o.verbose("Setting new side to active",n),z.removeClass(u.active),n.addClass(u.active),a.proxy(q.onChange,n[0])(),o.set.defaultSide()}},flip:{up:function(){o.debug("Flipping up",n),o.is.animating()?o.queue("flip up"):(o.set.stageSize(),o.stage.above(),o.animate(o.get.transform.up()))},down:function(){o.debug("Flipping down",n),o.is.animating()?o.queue("flip down"):(o.set.stageSize(),o.stage.below(),o.animate(o.get.transform.down()))},left:function(){o.debug("Flipping left",n),o.is.animating()?o.queue("flip left"):(o.set.stageSize(),o.stage.left(),o.animate(o.get.transform.left()))},right:function(){o.debug("Flipping right",n),o.is.animating()?o.queue("flip right"):(o.set.stageSize(),o.stage.right(),o.animate(o.get.transform.right()))},over:function(){o.debug("Flipping over",n),o.is.animating()?o.queue("flip over"):(o.set.stageSize(),o.stage.behind(),o.animate(o.get.transform.over()))},back:function(){o.debug("Flipping back",n),o.is.animating()?o.queue("flip back"):(o.set.stageSize(),o.stage.behind(),o.animate(o.get.transform.back()))}},get:{transform:{up:function(){var a={y:-((m.outerHeight()-n.outerHeight())/2),z:-(m.outerHeight()/2)};return{transform:"translateY("+a.y+"px) translateZ("+a.z+"px) rotateX(-90deg)"}},down:function(){var a={y:-((m.outerHeight()-n.outerHeight())/2),z:-(m.outerHeight()/2)};return{transform:"translateY("+a.y+"px) translateZ("+a.z+"px) rotateX(90deg)"}},left:function(){var a={x:-((m.outerWidth()-n.outerWidth())/2),z:-(m.outerWidth()/2)};return{transform:"translateX("+a.x+"px) translateZ("+a.z+"px) rotateY(90deg)"}},right:function(){var a={x:-((m.outerWidth()-n.outerWidth())/2),z:-(m.outerWidth()/2)};return{transform:"translateX("+a.x+"px) translateZ("+a.z+"px) rotateY(-90deg)"}},over:function(){var a={x:-((m.outerWidth()-n.outerWidth())/2)};return{transform:"translateX("+a.x+"px) rotateY(180deg)"}},back:function(){var a={x:-((m.outerWidth()-n.outerWidth())/2)};return{transform:"translateX("+a.x+"px) rotateY(-180deg)"}}},transitionEvent:function(){var a,b=c.createElement("element"),e={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(a in e)if(b.style[a]!==d)return e[a]},nextSide:function(){return m.next(s.side).size()>0?m.next(s.side):x.find(s.side).first()}},stage:{above:function(){var a={origin:(m.outerHeight()-n.outerHeight())/2,depth:{active:n.outerHeight()/2,next:m.outerHeight()/2}};o.verbose("Setting the initial animation position as above",n,a),m.css({transform:"rotateY(0deg) translateZ("+a.depth.active+"px)"}),n.addClass(u.animating).css({display:"block",top:a.origin+"px",transform:"rotateX(90deg) translateZ("+a.depth.next+"px)"})},below:function(){var a={origin:(m.outerHeight()-n.outerHeight())/2,depth:{active:n.outerHeight()/2,next:m.outerHeight()/2}};o.verbose("Setting the initial animation position as below",n,a),m.css({transform:"rotateY(0deg) translateZ("+a.depth.active+"px)"}),n.addClass(u.animating).css({display:"block",top:a.origin+"px",transform:"rotateX(-90deg) translateZ("+a.depth.next+"px)"})},left:function(){var a={origin:(m.outerWidth()-n.outerWidth())/2,depth:{active:n.outerWidth()/2,next:m.outerWidth()/2}};o.verbose("Setting the initial animation position as left",n,a),m.css({transform:"rotateY(0deg) translateZ("+a.depth.active+"px)"}),n.addClass(u.animating).css({display:"block",left:a.origin+"px",transform:"rotateY(-90deg) translateZ("+a.depth.next+"px)"})},right:function(){var a={origin:(m.outerWidth()-n.outerWidth())/2,depth:{active:n.outerWidth()/2,next:m.outerWidth()/2}};o.verbose("Setting the initial animation position as left",n,a),m.css({transform:"rotateY(0deg) translateZ("+a.depth.active+"px)"}),n.addClass(u.animating).css({display:"block",left:a.origin+"px",transform:"rotateY(90deg) translateZ("+a.depth.next+"px)"})},behind:function(){var a={origin:(m.outerWidth()-n.outerWidth())/2,depth:{active:n.outerWidth()/2,next:m.outerWidth()/2}};o.verbose("Setting the initial animation position as behind",n,a),m.css({transform:"rotateY(0deg)"}),n.addClass(u.animating).css({display:"block",left:a.origin+"px",transform:"rotateY(-180deg)"})}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,q,b);else{if(c===d)return q[b];q[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,o,b);else{if(c===d)return o[b];o[b]=c}},debug:function(){q.debug&&(q.performance?o.performance.log(arguments):(o.debug=Function.prototype.bind.call(console.info,console,q.name+":"),o.debug.apply(console,arguments)))},verbose:function(){q.verbose&&q.debug&&(q.performance?o.performance.log(arguments):(o.verbose=Function.prototype.bind.call(console.info,console,q.name+":"),o.verbose.apply(console,arguments)))},error:function(){o.error=Function.prototype.bind.call(console.error,console,q.name+":"),o.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;q.performance&&(b=(new Date).getTime(),d=h||b,c=b-d,h=b,i.push({Element:B,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(o.performance.timer),o.performance.timer=setTimeout(o.performance.display,100)},display:function(){var b=q.name+":",c=0;h=!1,clearTimeout(o.performance.timer),a.each(i,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",p&&(b+=" '"+p+"'"),f.size()>1&&(b+=" ("+f.size()+")"),(console.group!==d||console.table!==d)&&i.length>0&&(console.groupCollapsed(b),console.table?console.table(i):a.each(i,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),i=[]}},invoke:function(b,c,f){var g,h,i,j=C;return c=c||l,f=B||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,c):h!==d&&(i=h),a.isArray(e)?e.push(i):e!==d?e=[e,i]:i!==d&&(e=i),h}},k?(C===d&&o.initialize(),o.invoke(j)):(C!==d&&o.destroy(),o.initialize())}),e!==d?e:this},a.fn.shape.settings={name:"Shape",debug:!1,verbose:!0,performance:!0,namespace:"shape",beforeChange:function(){},onChange:function(){},duration:700,error:{side:"You tried to switch to a side that does not exist.",method:"The method you called is not defined"},className:{animating:"animating",hidden:"hidden",loading:"loading",active:"active"},selector:{sides:".sides",side:".side"}}}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/sidebar.min.css b/css/semantic/rtl/minified/modules/sidebar.min.css
new file mode 100644
index 0000000..4fe0c50
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/sidebar.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+body{-webkit-transition:margin .3s ease,-webkit-transform .3s ease;-moz-transition:margin .3s ease,-moz-transform .3s ease;transition:margin .3s ease,transform .3s ease}.ui.sidebar{position:fixed;margin:0!important;height:100%!important;border-radius:0!important;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-ms-overflow-y:auto;overflow-y:auto;top:0;right:0;z-index:999;-webkit-transition:margin-right .3s ease,margin-top .3s ease;-moz-transition:margin-right .3s ease,margin-top .3s ease;transition:margin-right .3s ease,margin-top .3s ease}body.pushed.scrolling.ui.dimmable{position:static}.ui.right.very.thin.sidebar,.ui.right.thin.sidebar,.ui.right.sidebar,.ui.right.wide.sidebar,.ui.right.very.wide.sidebar{right:100%;margin:0!important}.ui.top.sidebar{width:100%!important}.ui.bottom.sidebar{width:100%!important;top:100%;margin:0!important}.ui.active.sidebar{margin-right:0!important}.ui.active.top.sidebar,.ui.active.bottom.sidebar{margin-top:0!important}.ui.styled.sidebar{padding:1em 1.5em;background-color:#FFF;-webkit-box-shadow:1px 0 0 rgba(0,0,0,.1);box-shadow:1px 0 0 rgba(0,0,0,.1)}.ui.styled.very.thin.sidebar{padding:.5em}.ui.styled.thin.sidebar{padding:1em}.ui.floating.sidebar{-webkit-box-shadow:2px 0 2px rgba(0,0,0,.2);box-shadow:2px 0 2px rgba(0,0,0,.2)}.ui.right.floating.sidebar{-webkit-box-shadow:-2px 0 2px rgba(0,0,0,.2);box-shadow:-2px 0 2px rgba(0,0,0,.2)}.ui.top.floating.sidebar{-webkit-box-shadow:0 4px 4px rgba(0,0,0,.2);box-shadow:0 4px 4px rgba(0,0,0,.2)}.ui.bottom.floating.sidebar{-webkit-box-shadow:0 -4px 4px rgba(0,0,0,.2);box-shadow:0 -4px 4px rgba(0,0,0,.2)}.ui.very.thin.sidebar{width:60px!important;margin-right:-60px!important}.ui.active.very.thin.sidebar{margin-right:0!important}.ui.active.right.very.thin.sidebar{margin-right:-60px!important}.ui.thin.sidebar{width:200px!important;margin-right:-200px!important}.ui.active.thin.sidebar{margin-right:0!important}.ui.active.right.thin.sidebar{margin-right:-200px!important}.ui.sidebar{width:275px!important;margin-right:-275px!important}.ui.active.sidebar{margin-right:0!important}.ui.active.right.sidebar{margin-right:-275px!important}.ui.wide.sidebar{width:350px!important;margin-right:-350px!important}.ui.active.wide.sidebar{margin-right:0!important}.ui.active.right.wide.sidebar{margin-right:-350px!important}.ui.very.wide.sidebar{width:475px!important;margin-right:-475px!important}.ui.active.very.wide.sidebar{margin-right:0!important}.ui.active.right.very.wide.sidebar{margin-right:-475px!important}.ui.top.sidebar{margin:-40px 0 0 0!important}.ui.top.sidebar,.ui.bottom.sidebar{height:40px!important}.ui.active.bottom.sidebar{margin-top:-40px!important}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/sidebar.min.js b/css/semantic/rtl/minified/modules/sidebar.min.js
new file mode 100644
index 0000000..79abd0c
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/sidebar.min.js
@@ -0,0 +1 @@
+!function(a,b,c,d){a.fn.sidebar=function(b){var e,f=a(this),g=a("body"),h=a("head"),i=f.selector||"",j=(new Date).getTime(),k=[],l=arguments[0],m="string"==typeof l,n=[].slice.call(arguments,1);return f.each(function(){var o,p=a.isPlainObject(b)?a.extend(!0,{},a.fn.sidebar.settings,b):a.extend({},a.fn.sidebar.settings),q=p.selector,r=p.className,s=p.namespace,t=p.error,u="."+s,v="module-"+s,w=a(this),x=a("style[title="+s+"]"),y=this,z=w.data(v);o={initialize:function(){o.debug("Initializing sidebar",w),o.instantiate()},instantiate:function(){o.verbose("Storing instance of module",o),z=o,w.data(v,o)},destroy:function(){o.verbose("Destroying previous module for",w),w.off(u).removeData(v)},refresh:function(){o.verbose("Refreshing selector cache"),x=a("style[title="+s+"]")},attachEvents:function(b,c){var d=a(b);c=a.isFunction(o[c])?o[c]:o.toggle,d.size()>0?(o.debug("Attaching sidebar events to element",b,c),d.off(u).on("click"+u,c)):o.error(t.notFound)},show:function(b){b=a.isFunction(b)?b:function(){},o.debug("Showing sidebar",b),o.is.closed()?(p.overlay||(p.exclusive&&o.hideAll(),o.pushPage()),o.set.active(),b(),a.proxy(p.onChange,y)(),a.proxy(p.onShow,y)()):o.debug("Sidebar is already visible")},hide:function(b){b=a.isFunction(b)?b:function(){},o.debug("Hiding sidebar",b),o.is.open()&&(p.overlay||(o.pullPage(),o.remove.pushed()),o.remove.active(),b(),a.proxy(p.onChange,y)(),a.proxy(p.onHide,y)())},hideAll:function(){a(q.sidebar).filter(":visible").sidebar("hide")},toggle:function(){o.is.closed()?o.show():o.hide()},pushPage:function(){var a=o.get.direction(),b=o.is.vertical()?w.outerHeight():w.outerWidth();p.useCSS?(o.debug("Using CSS to animate body"),o.add.bodyCSS(a,b),o.set.pushed()):o.animatePage(a,b,o.set.pushed)},pullPage:function(){var a=o.get.direction();p.useCSS?(o.debug("Resetting body position css"),o.remove.bodyCSS()):(o.debug("Resetting body position using javascript"),o.animatePage(a,0)),o.remove.pushed()},animatePage:function(a,b){var c={};c["padding-"+a]=b,o.debug("Using javascript to animate body",c),g.animate(c,p.duration,o.set.pushed)},add:{bodyCSS:function(a,b){var c;a!==r.bottom&&(c='"),h.append(c),o.debug("Adding body css to head",x)}},remove:{bodyCSS:function(){o.debug("Removing body css styles",x),o.refresh(),x.remove()},active:function(){w.removeClass(r.active)},pushed:function(){o.verbose("Removing body push state",o.get.direction()),g.removeClass(r[o.get.direction()]).removeClass(r.pushed)}},set:{active:function(){w.addClass(r.active)},pushed:function(){o.verbose("Adding body push state",o.get.direction()),g.addClass(r[o.get.direction()]).addClass(r.pushed)}},get:{direction:function(){return w.hasClass(r.top)?r.top:w.hasClass(r.right)?r.right:w.hasClass(r.bottom)?r.bottom:r.left},transitionEvent:function(){var a,b=c.createElement("element"),e={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(a in e)if(b.style[a]!==d)return e[a]}},is:{open:function(){return w.is(":animated")||w.hasClass(r.active)},closed:function(){return!o.is.open()},vertical:function(){return w.hasClass(r.top)}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,p,b);else{if(c===d)return p[b];p[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,o,b);else{if(c===d)return o[b];o[b]=c}},debug:function(){p.debug&&(p.performance?o.performance.log(arguments):(o.debug=Function.prototype.bind.call(console.info,console,p.name+":"),o.debug.apply(console,arguments)))},verbose:function(){p.verbose&&p.debug&&(p.performance?o.performance.log(arguments):(o.verbose=Function.prototype.bind.call(console.info,console,p.name+":"),o.verbose.apply(console,arguments)))},error:function(){o.error=Function.prototype.bind.call(console.error,console,p.name+":"),o.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;p.performance&&(b=(new Date).getTime(),d=j||b,c=b-d,j=b,k.push({Element:y,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(o.performance.timer),o.performance.timer=setTimeout(o.performance.display,100)},display:function(){var b=p.name+":",c=0;j=!1,clearTimeout(o.performance.timer),a.each(k,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",i&&(b+=" '"+i+"'"),f.size()>1&&(b+=" ("+f.size()+")"),(console.group!==d||console.table!==d)&&k.length>0&&(console.groupCollapsed(b),console.table?console.table(k):a.each(k,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),k=[]}},invoke:function(b,c,f){var g,h,i,j=z;return c=c||n,f=y||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,c):h!==d&&(i=h),a.isArray(e)?e.push(i):e!==d?e=[e,i]:i!==d&&(e=i),h}},m?(z===d&&o.initialize(),o.invoke(l)):(z!==d&&o.destroy(),o.initialize())}),e!==d?e:this},a.fn.sidebar.settings={name:"Sidebar",namespace:"sidebar",debug:!1,verbose:!0,performance:!0,useCSS:!0,exclusive:!0,overlay:!1,duration:300,onChange:function(){},onShow:function(){},onHide:function(){},className:{active:"active",pushed:"pushed",top:"top",left:"left",right:"right",bottom:"bottom"},selector:{sidebar:".ui.sidebar"},error:{method:"The method you called is not defined.",notFound:"There were no elements that matched the specified selector"}}}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/tab.min.css b/css/semantic/rtl/minified/modules/tab.min.css
new file mode 100644
index 0000000..8c3dc41
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/tab.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.tab{display:none}.ui.tab.active,.ui.tab.open{display:block}.ui.tab.loading{position:relative;overflow:hidden;display:block;min-height:250px;text-indent:-10000px}.ui.tab.loading *{position:relative!important;right:-10000px!important}.ui.tab.loading:after{position:absolute;top:50px;right:50%;content:'Loading...';margin-right:-32px;text-indent:5px;color:rgba(0,0,0,.4);width:100%;height:100%;padding-top:75px;background:url(../images/loader-large.gif) no-repeat 0 0;visibility:visible}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/tab.min.js b/css/semantic/rtl/minified/modules/tab.min.js
new file mode 100644
index 0000000..0c7897b
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/tab.min.js
@@ -0,0 +1 @@
+!function(a,b,c,d){a.fn.tab=function(c){var e,f,g,h,i,j=a.extend(!0,{},a.fn.tab.settings,c),k=a(this),l=a(j.context).find(j.selector.tabs),m=k.selector||"",n={},o=!0,p=0,q=this,r=(new Date).getTime(),s=[],t=j.className,u=j.metadata,v=j.error,w="."+j.namespace,x="module-"+j.namespace,y=k.data(x),z=arguments[0],A=y!==d&&"string"==typeof z,B=[].slice.call(arguments,1);return h={initialize:function(){if(h.debug("Initializing Tabs",k),j.auto&&(h.verbose("Setting up automatic tab retrieval from server"),j.apiSettings={url:j.path+"/{$tab}"}),j.history){if(h.debug("Initializing page state"),a.address===d)return h.error(v.state),!1;if("hash"==j.historyType&&h.debug("Using hash state change to manage state"),"html5"==j.historyType){if(h.debug("Using HTML5 to manage state"),j.path===!1)return h.error(v.path),!1;a.address.history(!0).state(j.path)}a.address.unbind("change").bind("change",h.event.history.change)}a.isWindow(q)||(h.debug("Attaching tab activation events to element",k),k.on("click"+w,h.event.click)),h.instantiate()},instantiate:function(){h.verbose("Storing instance of module",h),k.data(x,h)},destroy:function(){h.debug("Destroying tabs",k),k.removeData(x).off(w)},event:{click:function(b){var c=a(this).data(u.tab);c!==d?(j.history?(h.verbose("Updating page state",b),a.address.value(c)):(h.verbose("Changing tab without state management",b),h.changeTab(c)),b.preventDefault()):h.debug("No tab specified")},history:{change:function(b){var c=b.pathNames.join("/")||h.get.initialPath(),e=j.templates.determineTitle(c)||!1;h.debug("History change event",c,b),g=b,c!==d&&h.changeTab(c),e&&a.address.title(e)}}},refresh:function(){e&&(h.debug("Refreshing tab",e),h.changeTab(e))},cache:{read:function(a){return a!==d?n[a]:!1},add:function(a,b){a=a||e,h.debug("Adding cached content for",a),n[a]=b},remove:function(a){a=a||e,h.debug("Removing cached content for",a),delete n[a]}},set:{state:function(b){a.address.value(b)}},changeTab:function(c){var d=b.history&&b.history.pushState,i=d&&j.ignoreFirstLoad&&o,k=j.auto||a.isPlainObject(j.apiSettings),l=k&&!i?h.utilities.pathToArray(c):h.get.defaultPathArray(c);c=h.utilities.arrayToPath(l),h.deactivate.all(),a.each(l,function(b,d){var m,n,p,q=l.slice(0,b+1),r=h.utilities.arrayToPath(q),s=h.is.tab(r),t=b+1==l.length,u=h.get.tabElement(r);return h.verbose("Looking for tab",d),s?(h.verbose("Tab was found",d),e=r,f=h.utilities.filterArray(l,q),t?p=!0:(m=l.slice(0,b+2),n=h.utilities.arrayToPath(m),p=!h.is.tab(n),p&&h.verbose("Tab parameters found",m)),p&&k?(i?(h.debug("Ignoring remote content on first tab load",r),o=!1,h.cache.add(c,u.html()),h.activate.all(r),a.proxy(j.onTabInit,u)(r,f,g),a.proxy(j.onTabLoad,u)(r,f,g)):(h.activate.navigation(r),h.content.fetch(r,c)),!1):(h.debug("Opened local tab",r),h.activate.all(r),h.cache.read(r)||(h.cache.add(r,!0),h.debug("First time tab loaded calling tab init"),a.proxy(j.onTabInit,u)(r,f,g)),a.proxy(j.onTabLoad,u)(r,f,g),void 0)):(h.error(v.missingTab,d),!1)})},content:{fetch:function(b,c){var i,k,l=h.get.tabElement(b),m={dataType:"html",stateContext:l,success:function(d){h.cache.add(c,d),h.content.update(b,d),b==e?(h.debug("Content loaded",b),h.activate.tab(b)):h.debug("Content loaded in background",b),a.proxy(j.onTabInit,l)(b,f,g),a.proxy(j.onTabLoad,l)(b,f,g)},urlData:{tab:c}},n=l.data(u.promise)||!1,o=n&&"pending"===n.state();c=c||b,k=h.cache.read(c),j.cache&&k?(h.debug("Showing existing content",c),h.content.update(b,k),h.activate.tab(b),a.proxy(j.onTabLoad,l)(b,f,g)):o?(h.debug("Content is already loading",c),l.addClass(t.loading)):a.api!==d?(console.log(j.apiSettings),i=a.extend(!0,{headers:{"X-Remote":!0}},j.apiSettings,m),h.debug("Retrieving remote content",c,i),a.api(i)):h.error(v.api)},update:function(a,b){h.debug("Updating html for",a);var c=h.get.tabElement(a);c.html(b)}},activate:{all:function(a){h.activate.tab(a),h.activate.navigation(a)},tab:function(a){var b=h.get.tabElement(a);h.verbose("Showing tab content for",b),b.addClass(t.active)},navigation:function(a){var b=h.get.navElement(a);h.verbose("Activating tab navigation for",b,a),b.addClass(t.active)}},deactivate:{all:function(){h.deactivate.navigation(),h.deactivate.tabs()},navigation:function(){k.removeClass(t.active)},tabs:function(){l.removeClass(t.active+" "+t.loading)}},is:{tab:function(a){return a!==d?h.get.tabElement(a).size()>0:!1}},get:{initialPath:function(){return k.eq(0).data(u.tab)||l.eq(0).data(u.tab)},path:function(){return a.address.value()},defaultPathArray:function(a){return h.utilities.pathToArray(h.get.defaultPath(a))},defaultPath:function(a){var b=k.filter("[data-"+u.tab+'^="'+a+'/"]').eq(0),c=b.data(u.tab)||!1;if(c){if(h.debug("Found default tab",c),p0?b:c},tab:function(){return e}},utilities:{filterArray:function(b,c){return a.grep(b,function(b){return-1==a.inArray(b,c)})},last:function(b){return a.isArray(b)?b[b.length-1]:!1},pathToArray:function(a){return a===d&&(a=e),"string"==typeof a?a.split("/"):[a]},arrayToPath:function(b){return a.isArray(b)?b.join("/"):!1}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,j,b);else{if(c===d)return j[b];j[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,h,b);else{if(c===d)return h[b];h[b]=c}},debug:function(){j.debug&&(j.performance?h.performance.log(arguments):(h.debug=Function.prototype.bind.call(console.info,console,j.name+":"),h.debug.apply(console,arguments)))},verbose:function(){j.verbose&&j.debug&&(j.performance?h.performance.log(arguments):(h.verbose=Function.prototype.bind.call(console.info,console,j.name+":"),h.verbose.apply(console,arguments)))},error:function(){h.error=Function.prototype.bind.call(console.error,console,j.name+":"),h.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;j.performance&&(b=(new Date).getTime(),d=r||b,c=b-d,r=b,s.push({Element:q,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(h.performance.timer),h.performance.timer=setTimeout(h.performance.display,100)},display:function(){var b=j.name+":",c=0;r=!1,clearTimeout(h.performance.timer),a.each(s,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",m&&(b+=" '"+m+"'"),(console.group!==d||console.table!==d)&&s.length>0&&(console.groupCollapsed(b),console.table?console.table(s):a.each(s,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),s=[]}},invoke:function(b,c,e){var f,g,h,j=y;return c=c||B,e=q||e,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),f=b.length-1,a.each(b,function(c,e){var h=c!=f?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[h])&&c!=f)j=j[h];else{if(j[h]!==d)return g=j[h],!1;if(!a.isPlainObject(j[e])||c==f)return j[e]!==d?(g=j[e],!1):!1;j=j[e]}})),a.isFunction(g)?h=g.apply(e,c):g!==d&&(h=g),a.isArray(i)?i.push(h):i!==d?i=[i,h]:h!==d&&(i=h),g}},A?(y===d&&h.initialize(),h.invoke(z)):(y!==d&&h.destroy(),h.initialize()),i!==d?i:this},a.tab=function(c){a(b).tab(c)},a.fn.tab.settings={name:"Tab",debug:!1,verbose:!0,performance:!0,namespace:"tab",onTabInit:function(){},onTabLoad:function(){},templates:{determineTitle:function(){}},auto:!1,history:!0,historyType:"hash",path:!1,context:"body",maxDepth:25,ignoreFirstLoad:!1,alwaysRefresh:!1,cache:!0,apiSettings:!1,error:{api:"You attempted to load content without API module",method:"The method you called is not defined",missingTab:"Tab cannot be found",noContent:"The tab you specified is missing a content url.",path:"History enabled, but no path was specified",recursion:"Max recursive depth reached",state:"The state library has not been initialized"},metadata:{tab:"tab",loaded:"loaded",promise:"promise"},className:{loading:"loading",active:"active"},selector:{tabs:".ui.tab"}}}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/transition.min.css b/css/semantic/rtl/minified/modules/transition.min.css
new file mode 100644
index 0000000..4abe04b
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/transition.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.transition{-webkit-animation-iteration-count:1;-moz-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:1s;-moz-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:ease;-moz-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.ui.animating.transition{display:block;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0)}.ui.loading.transition{position:absolute;top:-999999px;right:-99999px}.ui.hidden.transition{display:none}.ui.visible.transition{display:block;visibility:visible}.ui.disabled.transition{-webkit-animation-play-state:paused;-moz-animation-play-state:paused;animation-play-state:paused}.ui.looping.transition{-webkit-animation-iteration-count:infinite;-moz-animation-iteration-count:infinite;animation-iteration-count:infinite}.ui.flash.transition{-webkit-animation-name:flash;-moz-animation-name:flash;animation-name:flash}.ui.shake.transition{-webkit-animation-name:shake;-moz-animation-name:shake;animation-name:shake}.ui.bounce.transition{-webkit-animation-name:bounce;-moz-animation-name:bounce;animation-name:bounce}.ui.tada.transition{-webkit-animation-name:tada;-moz-animation-name:tada;animation-name:tada}.ui.pulse.transition{-webkit-animation-name:pulse;-moz-animation-name:pulse;animation-name:pulse}.ui.flip.transition.in,.ui.flip.transition.out{-webkit-perspective:2000px;-moz-perspective:2000px;-ms-perspective:2000px;perspective:2000px}.ui.horizontal.flip.transition.in,.ui.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlip;-moz-animation-name:horizontalFlip;animation-name:horizontalFlip}.ui.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;-moz-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.ui.vertical.flip.transition.in,.ui.vertical.flip.transition.out{-webkit-animation-name:verticalFlip;-moz-animation-name:verticalFlip;animation-name:verticalFlip}.ui.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;-moz-animation-name:verticalFlipOut;animation-name:verticalFlipOut}.ui.fade.transition.in{-webkit-animation-name:fade;-moz-animation-name:fade;animation-name:fade}.ui.fade.transition.out{-webkit-animation-name:fadeOut;-moz-animation-name:fadeOut;animation-name:fadeOut}.ui.fade.up.transition.in{-webkit-animation-name:fadeUp;-moz-animation-name:fadeUp;animation-name:fadeUp}.ui.fade.up.transition.out{-webkit-animation-name:fadeUpOut;-moz-animation-name:fadeUpOut;animation-name:fadeUpOut}.ui.fade.down.transition.in{-webkit-animation-name:fadeDown;-moz-animation-name:fadeDown;animation-name:fadeDown}.ui.fade.down.transition.out{-webkit-animation-name:fadeDownOut;-moz-animation-name:fadeDownOut;animation-name:fadeDownOut}.ui.scale.transition.in{-webkit-animation-name:scale;-moz-animation-name:scale;animation-name:scale}.ui.scale.transition.out{-webkit-animation-name:scaleOut;-moz-animation-name:scaleOut;animation-name:scaleOut}.ui.slide.down.transition.in{-webkit-animation-name:slide;-moz-animation-name:slide;animation-name:slide;-moz-transform-origin:50% 0;transform-origin:50% 0;-ms-transform-origin:50% 0;-webkit-transform-origin:50% 0}.ui.slide.down.transition.out{-webkit-animation-name:slideOut;-moz-animation-name:slideOut;animation-name:slideOut;-webkit-transform-origin:50% 0;-moz-transform-origin:50% 0;-ms-transform-origin:50% 0;transform-origin:50% 0}.ui.slide.up.transition.in{-webkit-animation-name:slide;-moz-animation-name:slide;animation-name:slide;-webkit-transform-origin:50% 100%;-moz-transform-origin:50% 100%;-ms-transform-origin:50% 100%;transform-origin:50% 100%}.ui.slide.up.transition.out{-webkit-animation-name:slideOut;-moz-animation-name:slideOut;animation-name:slideOut;-webkit-transform-origin:50% 100%;-moz-transform-origin:50% 100%;-ms-transform-origin:50% 100%;transform-origin:50% 100%}@-webkit-keyframes slide{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}100%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-moz-keyframes slide{0%{opacity:0;-moz-transform:scaleY(0);transform:scaleY(0)}100%{opacity:1;-moz-transform:scaleY(1);transform:scaleY(1)}}@keyframes slide{0%{opacity:0;-webkit-transform:scaleY(0);-moz-transform:scaleY(0);-ms-transform:scaleY(0);transform:scaleY(0)}100%{opacity:1;-webkit-transform:scaleY(1);-moz-transform:scaleY(1);-ms-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideOut{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}100%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-moz-keyframes slideOut{0%{opacity:1;-moz-transform:scaleY(1);transform:scaleY(1)}100%{opacity:0;-moz-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOut{0%{opacity:1;-webkit-transform:scaleY(1);-moz-transform:scaleY(1);-ms-transform:scaleY(1);transform:scaleY(1)}100%{opacity:0;-webkit-transform:scaleY(0);-moz-transform:scaleY(0);-ms-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes flash{0%,50%,100%{opacity:1}25%,75%{opacity:0}}@-moz-keyframes flash{0%,50%,100%{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,100%{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-moz-keyframes shake{0%,100%{-moz-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-moz-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-moz-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,100%{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-moz-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);-moz-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,100%{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-moz-keyframes bounce{0%,20%,50%,80%,100%{-moz-transform:translateY(0);transform:translateY(0)}40%{-moz-transform:translateY(-30px);transform:translateY(-30px)}60%{-moz-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,100%{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);-moz-transform:translateY(-30px);-ms-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);-moz-transform:translateY(-15px);-ms-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(0.9) rotate(-3deg);transform:scale(0.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}100%{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-moz-keyframes tada{0%{-moz-transform:scale(1);transform:scale(1)}10%,20%{-moz-transform:scale(0.9) rotate(-3deg);transform:scale(0.9) rotate(-3deg)}30%,50%,70%,90%{-moz-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-moz-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}100%{-moz-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(0.9) rotate(-3deg);-moz-transform:scale(0.9) rotate(-3deg);-ms-transform:scale(0.9) rotate(-3deg);transform:scale(0.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);-moz-transform:scale(1.1) rotate(3deg);-ms-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);-moz-transform:scale(1.1) rotate(-3deg);-ms-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}100%{-webkit-transform:scale(1) rotate(0);-moz-transform:scale(1) rotate(0);-ms-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(0.9);transform:scale(0.9);opacity:.7}100%{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-moz-keyframes pulse{0%{-moz-transform:scale(1);transform:scale(1);opacity:1}50%{-moz-transform:scale(0.9);transform:scale(0.9);opacity:.7}100%{-moz-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(0.9);-moz-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9);opacity:.7}100%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes horizontalFlip{0%{-webkit-transform:rotateY(-90deg);transform:rotateY(-90deg);opacity:0}100%{-webkit-transform:rotateY(0deg);transform:rotateY(0deg);opacity:1}}@-moz-keyframes horizontalFlip{0%{-moz-transform:rotateY(-90deg);transform:rotateY(-90deg);opacity:0}100%{-moz-transform:rotateY(0deg);transform:rotateY(0deg);opacity:1}}@keyframes horizontalFlip{0%{-webkit-transform:rotateY(-90deg);-moz-transform:rotateY(-90deg);-ms-transform:rotateY(-90deg);transform:rotateY(-90deg);opacity:0}100%{-webkit-transform:rotateY(0deg);-moz-transform:rotateY(0deg);-ms-transform:rotateY(0deg);transform:rotateY(0deg);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:rotateY(0deg);transform:rotateY(0deg);opacity:1}100%{-webkit-transform:rotateY(90deg);transform:rotateY(90deg);opacity:0}}@-moz-keyframes horizontalFlipOut{0%{-moz-transform:rotateY(0deg);transform:rotateY(0deg);opacity:1}100%{-moz-transform:rotateY(90deg);transform:rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:rotateY(0deg);-moz-transform:rotateY(0deg);-ms-transform:rotateY(0deg);transform:rotateY(0deg);opacity:1}100%{-webkit-transform:rotateY(90deg);-moz-transform:rotateY(90deg);-ms-transform:rotateY(90deg);transform:rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlip{0%{-webkit-transform:rotateX(-90deg);transform:rotateX(-90deg);opacity:0}100%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@-moz-keyframes verticalFlip{0%{-moz-transform:rotateX(-90deg);transform:rotateX(-90deg);opacity:0}100%{-moz-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@keyframes verticalFlip{0%{-webkit-transform:rotateX(-90deg);-moz-transform:rotateX(-90deg);-ms-transform:rotateX(-90deg);transform:rotateX(-90deg);opacity:0}100%{-webkit-transform:rotateX(0deg);-moz-transform:rotateX(0deg);-ms-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}100%{-webkit-transform:rotateX(-90deg);transform:rotateX(-90deg);opacity:0}}@-moz-keyframes verticalFlipOut{0%{-moz-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}100%{-moz-transform:rotateX(-90deg);transform:rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:rotateX(0deg);-moz-transform:rotateX(0deg);-ms-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}100%{-webkit-transform:rotateX(-90deg);-moz-transform:rotateX(-90deg);-ms-transform:rotateX(-90deg);transform:rotateX(-90deg);opacity:0}}@-webkit-keyframes fade{0%{opacity:0}100%{opacity:1}}@-moz-keyframes fade{0%{opacity:0}100%{opacity:1}}@keyframes fade{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@-moz-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes fadeUp{0%{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-moz-keyframes fadeUp{0%{opacity:0;-moz-transform:translateY(20px);transform:translateY(20px)}100%{opacity:1;-moz-transform:translateY(0);transform:translateY(0)}}@keyframes fadeUp{0%{opacity:0;-webkit-transform:translateY(20px);-moz-transform:translateY(20px);-ms-transform:translateY(20px);transform:translateY(20px)}100%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeUpOut{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}}@-moz-keyframes fadeUpOut{0%{opacity:1;-moz-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-moz-transform:translateY(20px);transform:translateY(20px)}}@keyframes fadeUpOut{0%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(20px);-moz-transform:translateY(20px);-ms-transform:translateY(20px);transform:translateY(20px)}}@-webkit-keyframes fadeDown{0%{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-moz-keyframes fadeDown{0%{opacity:0;-moz-transform:translateY(-20px);transform:translateY(-20px)}100%{opacity:1;-moz-transform:translateY(0);transform:translateY(0)}}@keyframes fadeDown{0%{opacity:0;-webkit-transform:translateY(-20px);-moz-transform:translateY(-20px);-ms-transform:translateY(-20px);transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeDownOut{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}}@-moz-keyframes fadeDownOut{0%{opacity:1;-moz-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-moz-transform:translateY(-20px);transform:translateY(-20px)}}@keyframes fadeDownOut{0%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-20px);-moz-transform:translateY(-20px);-ms-transform:translateY(-20px);transform:translateY(-20px)}}@-webkit-keyframes scale{0%{opacity:0;-webkit-transform:scale(0.7);transform:scale(0.7)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-moz-keyframes scale{0%{opacity:0;-moz-transform:scale(0.7);transform:scale(0.7)}100%{opacity:1;-moz-transform:scale(1);transform:scale(1)}}@keyframes scale{0%{opacity:0;-webkit-transform:scale(0.7);-moz-transform:scale(0.7);-ms-transform:scale(0.7);transform:scale(0.7)}100%{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}100%{opacity:0;-webkit-transform:scale(0.7);transform:scale(0.7)}}@-moz-keyframes scaleOut{0%{opacity:1;-moz-transform:scale(1);transform:scale(1)}100%{opacity:0;-moz-transform:scale(0.7);transform:scale(0.7)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}100%{opacity:0;-webkit-transform:scale(0.7);-moz-transform:scale(0.7);-ms-transform:scale(0.7);transform:scale(0.7)}}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/transition.min.js b/css/semantic/rtl/minified/modules/transition.min.js
new file mode 100644
index 0000000..7505827
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/transition.min.js
@@ -0,0 +1 @@
+!function(a,b,c,d){a.fn.transition=function(){{var e,f=a(this),g=f.selector||"",h=(new Date).getTime(),i=[],j=arguments,k=j[0],l=[].slice.call(arguments,1),m="string"==typeof k;b.requestAnimationFrame||b.mozRequestAnimationFrame||b.webkitRequestAnimationFrame||b.msRequestAnimationFrame||function(a){setTimeout(a,0)}}return f.each(function(){var b,n,o,p,q,r,s,t,u,v,w=a(this),x=this;v={initialize:function(){b=v.get.settings.apply(x,j),v.verbose("Converted arguments into settings object",b),o=b.error,p=b.className,t=b.namespace,q=b.metadata,u="module-"+t,r=v.get.animationEvent(),s=v.get.animationName(),n=w.data(u)||v,m&&(m=v.invoke(k)),m===!1&&v.animate(),v.instantiate()},instantiate:function(){v.verbose("Storing instance of module",v),w.data(u,n)},destroy:function(){v.verbose("Destroying previous module for",x),w.removeData(u)},refresh:function(){v.verbose("Refreshing display type on next animation"),delete n.displayType},forceRepaint:function(){v.verbose("Forcing element repaint");var a=w.parent(),b=w.next();0===b.size()?w.detach().appendTo(a):w.detach().insertBefore(b)},repaint:function(){v.verbose("Repainting element");x.offsetWidth},animate:function(a){return b=a||b,v.is.supported()?(v.debug("Preparing animation",b.animation),v.is.animating()&&b.queue?(!b.allowRepeats&&v.has.direction()&&v.is.occuring()&&n.queuing!==!0?v.error(o.repeated):v.queue(b.animation),!1):void(v.can.animate?v.set.animating(b.animation):v.error(o.noAnimation,b.animation))):(v.error(o.support),!1)},reset:function(){v.debug("Resetting animation to beginning conditions"),w.off(r),v.restore.conditions(),v.hide(),v.remove.animating()},queue:function(a){v.debug("Queueing animation of",a),n.queuing=!0,w.one(r,function(){n.queuing=!1,v.repaint(),v.animate.apply(this,b)})},complete:function(){v.verbose("CSS animation complete",b.animation),v.is.looping()||(v.is.outward()?(v.verbose("Animation is outward, hiding element"),v.restore.conditions(),v.remove.display(),v.hide(),a.proxy(b.onHide,this)()):v.is.inward()?(v.verbose("Animation is outward, showing element"),v.restore.conditions(),v.show(),a.proxy(b.onShow,this)()):v.restore.conditions(),v.remove.duration(),v.remove.animating()),a.proxy(b.complete,this)()},has:{direction:function(a){return a=a||b.animation,-1!==a.search(p.inward)||-1!==a.search(p.outward)?(v.debug("Direction already set in animation"),!0):!1}},set:{animating:function(a){a=a||b.animation,v.save.conditions(),v.can.transition()&&!v.has.direction()&&v.set.direction(),v.remove.hidden(),v.set.display(),w.addClass(p.animating).addClass(p.transition).addClass(a).one(r,v.complete),v.set.duration(b.duration),v.debug("Starting tween",b.animation,w.attr("class"))},display:function(){var a=v.get.displayType();"block"!==a&&(v.verbose("Setting final visibility to",a),w.css({display:a}))},direction:function(){w.is(":visible")?(v.debug("Automatically determining the direction of animation","Outward"),w.removeClass(p.inward).addClass(p.outward)):(v.debug("Automatically determining the direction of animation","Inward"),w.removeClass(p.outward).addClass(p.inward))},looping:function(){v.debug("Transition set to loop"),w.addClass(p.looping)},duration:function(a){a=a||b.duration,a="number"==typeof a?a+"ms":a,v.verbose("Setting animation duration",a),w.css({"-webkit-animation-duration":a,"-moz-animation-duration":a,"-ms-animation-duration":a,"-o-animation-duration":a,"animation-duration":a})},hidden:function(){w.addClass(p.transition).addClass(p.hidden)},visible:function(){w.addClass(p.transition).addClass(p.visible)}},save:{displayType:function(a){n.displayType=a},transitionExists:function(b,c){a.fn.transition.exists[b]=c,v.verbose("Saving existence of transition",b,c)},conditions:function(){n.cache={className:w.attr("class"),style:w.attr("style")},v.verbose("Saving original attributes",n.cache)}},restore:{conditions:function(){return n.cache===d?!1:(n.cache.className?w.attr("class",n.cache.className):w.removeAttr("class"),n.cache.style?w.attr("style",n.cache.style):"block"===v.get.displayType()&&w.removeAttr("style"),v.is.looping()&&v.remove.looping(),void v.verbose("Restoring original attributes",n.cache))}},remove:{animating:function(){w.removeClass(p.animating)},display:function(){n.displayType!==d&&w.css("display","")},duration:function(){w.css({"-webkit-animation-duration":"","-moz-animation-duration":"","-ms-animation-duration":"","-o-animation-duration":"","animation-duration":""})},hidden:function(){w.removeClass(p.hidden)},visible:function(){w.removeClass(p.visible)},looping:function(){v.debug("Transitions are no longer looping"),w.removeClass(p.looping),v.forceRepaint()}},get:{settings:function(b,c,d){return"object"==typeof b?a.extend(!0,{},a.fn.transition.settings,b):"function"==typeof d?a.extend({},a.fn.transition.settings,{animation:b,complete:d,duration:c}):"string"==typeof c||"number"==typeof c?a.extend({},a.fn.transition.settings,{animation:b,duration:c}):"object"==typeof c?a.extend({},a.fn.transition.settings,c,{animation:b}):"function"==typeof c?a.extend({},a.fn.transition.settings,{animation:b,complete:c}):a.extend({},a.fn.transition.settings,{animation:b})},displayType:function(){return n.displayType===d&&v.can.transition(),n.displayType},transitionExists:function(b){return a.fn.transition.exists[b]},animationName:function(){var a,b=c.createElement("div"),e={animation:"animationName",OAnimation:"oAnimationName",MozAnimation:"mozAnimationName",WebkitAnimation:"webkitAnimationName"};for(a in e)if(b.style[a]!==d)return v.verbose("Determined animation vendor name property",e[a]),e[a];return!1},animationEvent:function(){var a,b=c.createElement("div"),e={animation:"animationend",OAnimation:"oAnimationEnd",MozAnimation:"animationend",WebkitAnimation:"webkitAnimationEnd"};for(a in e)if(b.style[a]!==d)return v.verbose("Determined animation vendor end event",e[a]),e[a];return!1}},can:{animate:function(){return"none"!==w.css(b.animation)?(v.debug("CSS definition found",w.css(b.animation)),!0):(v.debug("Unable to find css definition",w.attr("class")),!1)},transition:function(){var c,e,f,g,h=w.attr("class"),i=b.animation,j=v.get.transitionExists(b.animation);return(j===d||n.displayType===d)&&(v.verbose("Determining whether animation exists"),c=a("").addClass(h).appendTo(a("body")),e=c.removeClass(p.inward).removeClass(p.outward).addClass(p.animating).addClass(p.transition).addClass(i).css(s),f=c.addClass(p.inward).css(s),g=c.attr("class",h).show().css("display"),v.verbose("Determining final display state",g),e!=f?(v.debug("Transition exists for animation",i),j=!0):(v.debug("Static animation found",i,g),j=!1),c.remove(),v.save.displayType(g),v.save.transitionExists(i,j)),j}},is:{animating:function(){return w.hasClass(p.animating)},inward:function(){return w.hasClass(p.inward)},outward:function(){return w.hasClass(p.outward)},looping:function(){return w.hasClass(p.looping)},occuring:function(a){return a=a||b.animation,w.hasClass(a)},visible:function(){return w.is(":visible")},supported:function(){return s!==!1&&r!==!1}},hide:function(){v.verbose("Hiding element"),v.remove.visible(),v.set.hidden(),v.repaint()},show:function(a){v.verbose("Showing element",a),v.remove.hidden(),v.set.visible(),v.repaint()},start:function(){v.verbose("Starting animation"),w.removeClass(p.disabled)},stop:function(){v.debug("Stopping animation"),w.addClass(p.disabled)},toggle:function(){v.debug("Toggling play status"),w.toggleClass(p.disabled)},setting:function(c,e){if(a.isPlainObject(c))a.extend(!0,b,c);else{if(e===d)return b[c];b[c]=e}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,v,b);else{if(c===d)return v[b];v[b]=c}},debug:function(){b.debug&&(b.performance?v.performance.log(arguments):(v.debug=Function.prototype.bind.call(console.info,console,b.name+":"),v.debug.apply(console,arguments)))},verbose:function(){b.verbose&&b.debug&&(b.performance?v.performance.log(arguments):(v.verbose=Function.prototype.bind.call(console.info,console,b.name+":"),v.verbose.apply(console,arguments)))},error:function(){v.error=Function.prototype.bind.call(console.error,console,b.name+":"),v.error.apply(console,arguments)},performance:{log:function(a){var c,d,e;b.performance&&(c=(new Date).getTime(),e=h||c,d=c-e,h=c,i.push({Element:x,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":d})),clearTimeout(v.performance.timer),v.performance.timer=setTimeout(v.performance.display,100)},display:function(){var c=b.name+":",e=0;h=!1,clearTimeout(v.performance.timer),a.each(i,function(a,b){e+=b["Execution Time"]}),c+=" "+e+"ms",g&&(c+=" '"+g+"'"),f.size()>1&&(c+=" ("+f.size()+")"),(console.group!==d||console.table!==d)&&i.length>0&&(console.groupCollapsed(c),console.table?console.table(i):a.each(i,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),i=[]}},invoke:function(b,c,f){var g,h,i,j=n;return c=c||l,f=x||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,c):h!==d&&(i=h),a.isArray(e)?e.push(i):e!==d?e=[e,i]:i!==d&&(e=i),h||!1}},v.initialize()}),e!==d?e:this},a.fn.transition.exists={},a.fn.transition.settings={name:"Transition",debug:!1,verbose:!0,performance:!0,namespace:"transition",complete:function(){},onShow:function(){},onHide:function(){},allowRepeats:!1,animation:"fade",duration:"700ms",queue:!0,className:{animating:"animating",disabled:"disabled",hidden:"hidden",inward:"in",loading:"loading",looping:"looping",outward:"out",transition:"ui transition",visible:"visible"},error:{noAnimation:"There is no css animation matching the one you specified.",repeated:"That animation is already occurring, cancelling repeated animation",method:"The method you called is not defined",support:"This browser does not support CSS animations"}}}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/video.min.css b/css/semantic/rtl/minified/modules/video.min.css
new file mode 100644
index 0000000..4b4006d
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/video.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.video{position:relative;max-width:100%}.ui.video .placeholder{background-color:#333}.ui.video .play{cursor:pointer;position:absolute;top:0;right:0;z-index:10;width:100%;height:100%;-ms-filter:"alpha(Opacity=60)";filter:alpha(opacity=60);opacity:.6;-webkit-transition:opacity .3s;-moz-transition:opacity .3s;transition:opacity .3s}.ui.video .play.icon:before{position:absolute;top:50%;right:50%;z-index:11;font-size:6rem;margin:-3rem -3rem 0 0;color:#FFF;text-shadow:0 3px 3px rgba(0,0,0,.4)}.ui.video .placeholder{display:block;width:100%;height:100%}.ui.video .embed{display:none}.ui.video .play:hover{opacity:1}.ui.video.active .play,.ui.video.active .placeholder{display:none}.ui.video.active .embed{display:block}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/modules/video.min.js b/css/semantic/rtl/minified/modules/video.min.js
new file mode 100644
index 0000000..e4d650d
--- /dev/null
+++ b/css/semantic/rtl/minified/modules/video.min.js
@@ -0,0 +1 @@
+!function(a,b,c,d){a.fn.video=function(b){var c,e=a(this),f=e.selector||"",g=(new Date).getTime(),h=[],i=arguments[0],j="string"==typeof i,k=[].slice.call(arguments,1);return e.each(function(){var l,m=a.isPlainObject(b)?a.extend(!0,{},a.fn.video.settings,b):a.extend({},a.fn.video.settings),n=m.selector,o=m.className,p=m.error,q=m.metadata,r=m.namespace,s="."+r,t="module-"+r,u=a(this),v=u.find(n.placeholder),w=u.find(n.playButton),x=u.find(n.embed),y=this,z=u.data(t);l={initialize:function(){l.debug("Initializing video"),v.on("click"+s,l.play),w.on("click"+s,l.play),l.instantiate()},instantiate:function(){l.verbose("Storing instance of module",l),z=l,u.data(t,l)},destroy:function(){l.verbose("Destroying previous instance of video"),u.removeData(t).off(s),v.off(s),w.off(s)},change:function(a,b,c){l.debug("Changing video to ",a,b,c),u.data(q.source,a).data(q.id,b).data(q.url,c),m.onChange()},reset:function(){l.debug("Clearing video embed and showing placeholder"),u.removeClass(o.active),x.html(" "),v.show(),m.onReset()},play:function(){l.debug("Playing video");var a=u.data(q.source)||!1,b=u.data(q.url)||!1,c=u.data(q.id)||!1;x.html(l.generate.html(a,c,b)),u.addClass(o.active),m.onPlay()},generate:{html:function(a,b,c){l.debug("Generating embed html");var d,e="auto"==m.width?u.width():m.width,f="auto"==m.height?u.height():m.height;return a&&b?"vimeo"==a?d='
':"youtube"==a&&(d='
VIDEO '):c?d='
':l.error(p.noVideo),d},url:function(a){var b=m.api?1:0,c=m.autoplay?1:0,d=m.hd?1:0,e=m.showUI?1:0,f=m.showUI?0:1,g="";return"vimeo"==a&&(g="api="+b+"&title="+e+"&byline="+e+"&portrait="+e+"&autoplay="+c,m.color&&(g+="&color="+m.color)),"ustream"==a?(g="autoplay="+c,m.color&&(g+="&color="+m.color)):"youtube"==a&&(g="enablejsapi="+b+"&autoplay="+c+"&autohide="+f+"&hq="+d+"&modestbranding=1",m.color&&(g+="&color="+m.color)),g}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,m,b);else{if(c===d)return m[b];m[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,l,b);else{if(c===d)return l[b];l[b]=c}},debug:function(){m.debug&&(m.performance?l.performance.log(arguments):(l.debug=Function.prototype.bind.call(console.info,console,m.name+":"),l.debug.apply(console,arguments)))},verbose:function(){m.verbose&&m.debug&&(m.performance?l.performance.log(arguments):(l.verbose=Function.prototype.bind.call(console.info,console,m.name+":"),l.verbose.apply(console,arguments)))},error:function(){l.error=Function.prototype.bind.call(console.error,console,m.name+":"),l.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;m.performance&&(b=(new Date).getTime(),d=g||b,c=b-d,g=b,h.push({Element:y,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(l.performance.timer),l.performance.timer=setTimeout(l.performance.display,100)},display:function(){var b=m.name+":",c=0;g=!1,clearTimeout(l.performance.timer),a.each(h,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",f&&(b+=" '"+f+"'"),e.size()>1&&(b+=" ("+e.size()+")"),(console.group!==d||console.table!==d)&&h.length>0&&(console.groupCollapsed(b),console.table?console.table(h):a.each(h,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),h=[]}},invoke:function(b,e,f){var g,h,i,j=z;return e=e||k,f=y||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,e):h!==d&&(i=h),a.isArray(c)?c.push(i):c!==d?c=[c,i]:i!==d&&(c=i),h}},j?(z===d&&l.initialize(),l.invoke(i)):(z!==d&&l.destroy(),l.initialize())}),c!==d?c:this},a.fn.video.settings={name:"Video",namespace:"video",debug:!1,verbose:!0,performance:!0,metadata:{source:"source",id:"id",url:"url"},onPlay:function(){},onReset:function(){},onChange:function(){},onPause:function(){},onStop:function(){},width:"auto",height:"auto",autoplay:!1,color:"#442359",hd:!0,showUI:!1,api:!0,error:{noVideo:"No video specified",method:"The method you called is not defined"},className:{active:"active"},selector:{embed:".embed",placeholder:".placeholder",playButton:".play"}}}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/views/comment.min.css b/css/semantic/rtl/minified/views/comment.min.css
new file mode 100644
index 0000000..2f14a79
--- /dev/null
+++ b/css/semantic/rtl/minified/views/comment.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.comments a{cursor:pointer}.ui.comments .comment{position:relative;margin-top:.5em;padding-top:.5em}.ui.comments .comment:first-child{margin-top:0;padding-top:0}.ui.comments .comment .avatar{display:block;float:right;width:4em}.ui.comments .comment .avatar img{display:block;margin:0 auto;width:3em;height:3em;border-radius:500px}.ui.comments .comment>.content,.ui.comments .comment>.avatar{display:block}.ui.comments .comment .avatar~.content{padding:0 1em}.ui.comments .comment>.avatar~.content{padding-top:.25em;margin-right:3.5em}.ui.comments .comment .metadata{display:inline-block;margin-right:.3em;color:rgba(0,0,0,.4)}.ui.comments .comment .metadata>*{display:inline-block;margin:0 0 0 .3em}.ui.comments .comment .text{margin:.25em 0 .5em;word-wrap:break-word}.ui.comments .comment .actions{font-size:.9em}.ui.comments .comment .actions a{display:inline-block;margin:0 0 0 .3em;color:rgba(0,0,0,.3)}.ui.comments .comment .actions a.active,.ui.comments .comment .actions a:hover{color:rgba(0,0,0,.6)}.ui.comments .reply.form{margin-top:.75em;width:100%;max-width:30em}.ui.comments .comment .reply.form{margin-right:2em}.ui.comments>.reply.form{margin-top:1.5em;max-width:40em}.ui.comments .reply.form textarea{height:12em}.ui.comments .comment .comments{margin-top:.5em;padding-top:.5em;padding-bottom:1em}.ui.comments .comment .comments:before{position:absolute;top:0;right:0}.ui.comments>.comment .comments{margin-right:2em}.ui.comments>.comment>.comments>.comment>.comments{margin-right:1.75em}.ui.comments>.comment>.comments>.comment>.comments>.comment>.comments{margin-right:1.5em}.ui.comments>.comment>.comments>.comment>.comments>.comment>.comments>.comment .comments{margin-right:.5em}.ui.threaded.comments .comment .comments{margin-right:2em!important;padding-right:2em!important;-webkit-box-shadow:-1px 0 0 rgba(0,0,0,.05);box-shadow:-1px 0 0 rgba(0,0,0,.05)}.ui.minimal.comments .comment .actions{opacity:0;-webkit-transition:opacity .1s ease-out;-moz-transition:opacity .1s ease-out;transition:opacity .1s ease-out;-webkit-transition-delay:.1s;-moz-transition-delay:.1s;transition-delay:.1s}.ui.minimal.comments .comment>.content:hover>.actions{opacity:1}.ui.small.comments{font-size:.875em}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/views/feed.min.css b/css/semantic/rtl/minified/views/feed.min.css
new file mode 100644
index 0000000..dd0716c
--- /dev/null
+++ b/css/semantic/rtl/minified/views/feed.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.feed a{cursor:pointer}.ui.feed,.ui.feed .event,.ui.feed .label,.ui.feed .content,.ui.feed .extra{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.feed .event{width:100%;display:table;padding:1em}.ui.feed .event:first-child{border-top:0}.ui.feed .event:last-child{margin-bottom:1em}.ui.feed .label{width:3em;display:table-cell;vertical-align:top;text-align:right}.ui.feed .label .icon{font-size:1.5em;padding:.5em;margin:0}.ui.feed .label img{width:3em;margin:0;border-radius:50em}.ui.feed .label+.content{padding:.75em 1em 0}.ui.feed .content{display:table-cell;vertical-align:top;text-align:right;word-wrap:break-word}.ui.feed .content .date{float:left;padding-right:1em;color:rgba(0,0,0,.4)}.ui.feed .content .summary{color:rgba(0,0,0,.75)}.ui.feed .content .summary img{display:inline-block;margin-left:.25em;width:4em;border-radius:500px}.ui.feed .content .extra{margin:1em 0 0;padding:.5em 0 0;color:rgba(0,0,0,.5)}.ui.feed .content .extra.images img{display:inline-block;margin-left:.25em;width:6em}.ui.feed .content .extra.text{padding:.5em 1em;border-right:.2em solid rgba(0,0,0,.1)}.ui.small.feed{font-size:.875em}.ui.small.feed .label img{width:2.5em}.ui.small.feed .label .icon{font-size:1.25em}.ui.feed .event{padding:.75em 0}.ui.small.feed .label+.content{padding:.5em .5em 0}.ui.small.feed .content .extra.images img{width:5em}.ui.small.feed .content .extra{margin:.5em 0 0}.ui.small.feed .content .extra.text{padding:.25em .5em}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/views/item.min.css b/css/semantic/rtl/minified/views/item.min.css
new file mode 100644
index 0000000..c99d087
--- /dev/null
+++ b/css/semantic/rtl/minified/views/item.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.items{margin:1em 0 0}.ui.items:first-child{margin-top:0}.ui.items:last-child{margin-bottom:-1em}.ui.items:after{display:block;content:' ';height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.row>.item,.ui.items>.item{display:block;float:right;position:relative;top:0;width:316px;min-height:375px;margin:0 .5em 2.5em;padding:0;background-color:#FFF;line-height:1.2;font-size:1em;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1);border-bottom:.2em solid rgba(0,0,0,.2);border-radius:.33em;-webkit-transition:-webkit-box-shadow .2s ease;-moz-transition:box-shadow .2s ease;transition:box-shadow .2s ease;padding:.5em}.ui.items a.item,.ui.items .item a{cursor:pointer}.ui.items .item,.ui.items .item>.image,.ui.items .item>.image .overlay,.ui.items .item>.content,.ui.items .item>.content>.meta,.ui.items .item>.content>.extra{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.items .item>.image{display:block;position:relative;background-color:rgba(0,0,0,.05);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;border-radius:.item>.image>img{display:block .2em}.ui.items;width:100%}.ui.items .item>.content{padding:.75em .5em}.ui.items .item>.content>.name{display:block;font-size:1.25em;font-weight:700;margin-bottom:.2em;color:rgba(0,0,0,.7)}.ui.items .item>.content>.description{clear:both;margin:0;color:rgba(0,0,0,.45)}.ui.items .item>.content>.description p{margin:0 0 .2em}.ui.items .item>.content>.description p:last-child{margin-bottom:0}.ui.items .item .meta{float:left;color:rgba(0,0,0,.35)}.ui.items .item>.content>.meta+.name{float:right}.ui.items .item .star.label:hover::after{border-left-color:#F6EFC3}.ui.items .item .star.label:hover::after{border-top-color:#F6EFC3}.ui.items .item .star.label:hover .icon{color:#ac9400}.ui.items .item .star.label.active::after{border-left-color:#F6EFC3}.ui.items .item .star.label.active::after{border-top-color:#F6EFC3}.ui.items .item .star.label.active .icon{color:#ac9400}.ui.items .item .like.label:hover::after{border-left-color:#F5E1E2}.ui.items .item .like.label.active::after{border-top-color:#F5E1E2}.ui.items .item .like.label:hover .icon{color:#ef404a}.ui.items .item .like.label.active::after{border-left-color:#F5E1E2}.ui.items .item .like.label.active::after{border-top-color:#F5E1E2}.ui.items .item .like.label.active .icon{color:#ef404a}.ui.items .item .extra{position:absolute;width:100%;padding:0 .5em;bottom:-2em;right:0;height:1.5em;color:rgba(0,0,0,.25);-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.ui.items .item .extra>img{display:inline-block;border-radius:500px;margin-left:.25em;vertical-align:middle;width:2em}.ui.items .item .extra .left{float:right}.ui.items .item .extra .right{float:left}.ui.items .item:hover{cursor:pointer;z-index:5;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.2)}.ui.items .item:hover .extra{color:rgba(0,0,0,.5)}.ui.items .item:nth-of-type(6n+1):hover{border-bottom-color:#6ECFF5!important}.ui.items .item:nth-of-type(6n+2):hover{border-bottom-color:#5C6166!important}.ui.items .item:nth-of-type(6n+3):hover{border-bottom-color:#A1CF64!important}.ui.items .item:nth-of-type(6n+4):hover{border-bottom-color:#D95C5C!important}.ui.items .item:nth-of-type(6n+5):hover{border-bottom-color:#00B5AD!important}.ui.items .item:nth-of-type(6n+6):hover{border-bottom-color:#564F8A!important}.ui.connected.items{display:table;width:100%;margin-right:0!important;margin-left:0!important}.ui.connected.items>.row>.item,.ui.connected.items>.item{float:none;display:table-cell;vertical-align:top;height:auto;border-radius:0;margin:0;width:33.33%}.ui.connected.items>.row{display:table;margin:.5em 0}.ui.connected.items>.row:first-child{margin-top:0}.ui.connected.items>.item,.ui.connected.items>.row:last-child>.item{border-bottom:.2em solid rgba(0,0,0,.2)}.ui.connected.items>.row:last-child>.item:first-child,.ui.connected.items>.item:first-child{border-radius:0 0 0 .33em}.ui.connected.items>.row:last-child>.item:last-child,.ui.connected.items>.item:last-child{border-radius:0 0 .33em}.ui.connected.items .item:hover{border-bottom-width:.2em}.ui.one.connected.items>.row>.item,.ui.one.connected.items>.item{width:50%;padding-right:2%;padding-left:2%}.ui.two.connected.items>.row>.item,.ui.two.connected.items>.item{width:50%;padding-right:1%;padding-left:1%}.ui.three.connected.items>.row>.item,.ui.three.connected.items>.item{width:33.333%;padding-right:1%;padding-left:1%}.ui.four.connected.items>.row>.item,.ui.four.connected.items>.item{width:25%;padding-right:.5%;padding-left:.5%}.ui.five.connected.items>.row>.item,.ui.five.connected.items>.item{width:20%;padding-right:.5%;padding-left:.5%}.ui.six.connected.items>.row>.item,.ui.six.connected.items>.item{width:16.66%;padding-right:.5%;padding-left:.5%}.ui.seven.connected.items>.row>.item,.ui.seven.connected.items>.item{width:14.28%;padding-right:.5%;padding-left:.5%}.ui.eight.connected.items>.row>.item,.ui.eight.connected.items>.item{width:12.5%;padding-right:.25%;padding-left:.25%}.ui.nine.connected.items>.row>.item,.ui.nine.connected.items>.item{width:11.11%;padding-right:.25%;padding-left:.25%}.ui.ten.connected.items>.row>.item,.ui.ten.connected.items>.item{width:10%;padding-right:.2%;padding-left:.2%}.ui.eleven.connected.items>.row>.item,.ui.eleven.connected.items>.item{width:9.09%;padding-right:.2%;padding-left:.2%}.ui.twelve.connected.items>.row>.item,.ui.twelve.connected.items>.item{width:8.3333%;padding-right:.1%;padding-left:.1%}@media only screen and (max-width:768px){.ui.stackable.items{display:block!important}.ui.stackable.items>.item,.ui.stackable.items>.row>.item{display:block!important;height:auto!important;width:auto!important;padding:0!important}}.ui.horizontal.items>.item,.ui.items>.horizontal.item{display:table}.ui.horizontal.items>.item>.image,.ui.items>.horizontal.item>.image{display:table-cell;width:50%}.ui.horizontal.items>.item>.image+.content,.ui.items>.horizontal.item>.image+.content{width:50%;display:table-cell}.ui.horizontal.items>.item>.content,.ui.items>.horizontal.item>.content{padding:1% 3% 11% 1.7%;vertical-align:top}.ui.horizontal.items>.item>.meta,.ui.items>.horizontal.item>.meta{position:absolute;padding:0;bottom:7%;right:3%;width:94%}.ui.horizontal.items>.item>.image+.content+.meta,.ui.items>.horizontal.item>.image+.content+.meta{bottom:7%;right:53%;width:44%}.ui.horizontal.items>.item .avatar,.ui.items>.horizontal.item .avatar{width:11.5%}.ui.items>.item .avatar{max-width:25px}.ui.one.items{margin-right:-2%;margin-left:-2%}.ui.one.items>.item{width:100%;margin-right:2%;margin-left:2%}.ui.two.items{margin-right:-1%;margin-left:-1%}.ui.two.items>.item{width:48%;margin-right:1%;margin-left:1%}.ui.two.items>.item:nth-child(2n+1){clear:right}.ui.three.items{margin-right:-1%;margin-left:-1%}.ui.three.items>.item{width:31.333%;margin-right:1%;margin-left:1%}.ui.three.items>.item:nth-child(3n+1){clear:right}.ui.four.items{margin-right:-.5%;margin-left:-.5%}.ui.four.items>.item{width:24%;margin-right:.5%;margin-left:.5%}.ui.four.items>.item:nth-child(4n+1){clear:right}.ui.five.items{margin-right:-.5%;margin-left:-.5%}.ui.five.items>.item{width:19%;margin-right:.5%;margin-left:.5%}.ui.five.items>.item:nth-child(5n+1){clear:right}.ui.six.items{margin-right:-.5%;margin-left:-.5%}.ui.six.items>.item{width:15.66%;margin-right:.5%;margin-left:.5%}.ui.six.items>.item:nth-child(6n+1){clear:right}.ui.seven.items{margin-right:-.5%;margin-left:-.5%}.ui.seven.items>.item{width:13.28%;margin-right:.5%;margin-left:.5%;font-size:11px}.ui.seven.items>.item:nth-child(7n+1){clear:right}.ui.eight.items{margin-right:-.25%;margin-left:-.25%}.ui.eight.items>.item{width:12%;margin-right:.25%;margin-left:.25%;font-size:11px}.ui.eight.items>.item:nth-child(8n+1){clear:right}.ui.nine.items{margin-right:-.25%;margin-left:-.25%}.ui.nine.items>.item{width:10.61%;margin-right:.25%;margin-left:.25%;font-size:10px}.ui.nine.items>.item:nth-child(9n+1){clear:right}.ui.ten.items{margin-right:-.2%;margin-left:-.2%}.ui.ten.items>.item{width:9.6%;margin-right:.2%;margin-left:.2%;font-size:10px}.ui.ten.items>.item:nth-child(10n+1){clear:right}.ui.eleven.items{margin-right:-.2%;margin-left:-.2%}.ui.eleven.items>.item{width:8.69%;margin-right:.2%;margin-left:.2%;font-size:9px}.ui.eleven.items>.item:nth-child(11n+1){clear:right}.ui.twelve.items{margin-right:-.1%;margin-left:-.1%}.ui.twelve.items>.item{width:8.1333%;margin-right:.1%;margin-left:.1%;font-size:9px}.ui.twelve.items>.item:nth-child(12n+1){clear:right}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/views/list.min.css b/css/semantic/rtl/minified/views/list.min.css
new file mode 100644
index 0000000..b87d08d
--- /dev/null
+++ b/css/semantic/rtl/minified/views/list.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+ul.ui.list,ol.ui.list,.ui.list{list-style-type:none;margin:1em 0;padding:0}ul.ui.list ul,ol.ui.list ol,.ui.list .list{margin:0;padding:.5em 1em .5em 0}ul.ui.list:first-child,ol.ui.list:first-child,.ui.list:first-child{margin-top:0}ul.ui.list:last-child,ol.ui.list:last-child,.ui.list:last-child{margin-bottom:0}ul.ui.list li,ol.ui.list li,.ui.list .item{display:list-item;list-style-type:none;list-style-position:inside;padding:.3em 0;line-height:1.2em}.ui.list .item:after{content:'';display:block;height:0;clear:both;visibility:hidden}.ui.list .list{clear:both}.ui.list .item>.icon{display:block;float:right;margin:0 0 0 1em;padding:.1em 0 0}.ui.list .item>.icon:only-child{display:inline-block}.ui.horizontal.list .item>.icon{margin:0;padding:0 0 0 .25em}.ui.horizontal.list .item>.icon,.ui.horizontal.list .item>.icon+.content{float:none;display:inline-block}.ui.list .item>img{display:block;float:right;margin-left:1em;vertical-align:middle}.ui.list .item>.content{display:inline-block;vertical-align:middle;line-height:1.2em}.ui.list .item>.icon+.content{display:table-cell;vertical-align:top}.ui.list a{cursor:pointer}.ui.list a .icon{color:rgba(0,0,0,.6);-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.ui.list .header{font-weight:700}.ui.list .description{color:rgba(0,0,0,.5)}.ui.list .item>.left.floated{margin-left:1em;float:right}.ui.list .item>.right.floated{margin-right:1em;float:left}.ui.horizontal.list{display:inline-block;font-size:0}.ui.horizontal.list>.item{display:inline-block;margin-right:1em;font-size:1rem}.ui.horizontal.list>.item:first-child{margin-right:0}.ui.horizontal.list .list{padding-right:0;padding-bottom:0}.ui.list a:hover .icon{color:rgba(0,0,0,.8)}.ui.inverted.list a .icon{color:rgba(255,255,255,.6)}.ui.inverted.list .description{color:rgba(255,255,255,.8)}.ui.inverted.link.list .item{color:rgba(255,255,255,.4)}.ui.link.list .item{color:rgba(0,0,0,.3)}.ui.link.list a.item,.ui.link.list .item a{color:rgba(0,0,0,.5)}.ui.link.list a.item:hover,.ui.link.list .item a:hover{color:rgba(0,0,0,.8)}.ui.link.list a.item:active,.ui.link.list .item a:active{color:rgba(0,0,0,.8)}.ui.link.list a.active.item,.ui.link.list .active.item a{color:rgba(0,0,0,.8)}.ui.inverted.link.list a.item,.ui.inverted.link.list .item a{color:rgba(255,255,255,.6)}.ui.inverted.link.list a.item:hover,.ui.inverted.link.list .item a:hover{color:rgba(255,255,255,.8)}.ui.inverted.link.list a.item:active,.ui.inverted.link.list .item a:active{color:rgba(255,255,255,.9)}.ui.inverted.link.list a.active.item,.ui.inverted.link.list .active.item a{color:rgba(255,255,255,.8)}.ui.selection.list .item{cursor:pointer;color:rgba(0,0,0,.4);padding:.5em;-webkit-transition:.2s color ease,.2s padding-right ease,.2s background-color ease;-moz-transition:.2s color ease,.2s padding-right ease,.2s background-color ease;transition:.2s color ease,.2s padding-right ease,.2s background-color ease}.ui.selection.list .item:hover{background-color:rgba(0,0,0,.02);color:rgba(0,0,0,.7)}.ui.selection.list .item:active{background-color:rgba(0,0,0,.05);color:rgba(0,0,0,.7)}.ui.selection.list .item.active{background-color:rgba(0,0,0,.04);color:rgba(0,0,0,.7)}.ui.animated.list .item{-webkit-transition:.2s color ease,.2s padding-right ease,.2s background-color ease;-moz-transition:.2s color ease,.2s padding-right ease,.2s background-color ease;transition:.2s color ease,.2s padding-right ease,.2s background-color ease}.ui.animated.list:not(.horizontal) .item:hover{padding-right:1em}.ui.animated.list:not(.horizontal) .item:hover .item:hover{padding-right:.5em}.ui.inverted.selection.list .item{color:rgba(255,255,255,.6)}.ui.inverted.selection.list .item:hover{background-color:rgba(255,255,255,.04);color:rgba(255,255,255,.8)}.ui.inverted.selection.list .item:active{background-color:rgba(255,255,255,.1);color:rgba(255,255,255,.7)}.ui.inverted.selection.list .item.active{background-color:rgba(255,255,255,.08);color:#FFF}ul.ui.list,.ui.bulleted.list{margin-right:1.5em}ul.ui.list li,.ui.bulleted.list .item{position:relative}ul.ui.list li:before,.ui.bulleted.list .item:before{position:absolute;right:-1.5em;content:'•'}ul.ui.list ul,.ui.bulleted.list .list{padding-right:1.5em}ul.ui.horizontal.bulleted.list,.ui.horizontal.bulleted.list{margin-right:0}ul.ui.horizontal.bulleted.list li,.ui.horizontal.bulleted.list .item{margin-right:1.5em}ul.ui.horizontal.bulleted.list li:before,.ui.horizontal.bulleted.list .item:before{right:-.9em}ul.ui.horizontal.bulleted.list li:first-child,.ui.horizontal.bulleted.list .item:first-child{margin-right:0}ul.ui.horizontal.bulleted.list li:first-child::before,.ui.horizontal.bulleted.list .item:first-child::before{display:none}ol.ui.list,.ui.ordered.list{counter-reset:ordered;margin-right:2em;list-style-type:none}ol.ui.list li,.ui.ordered.list .item{list-style-type:none;position:relative}ol.ui.list li:before,.ui.ordered.list .item:before{position:absolute;right:-2em;counter-increment:ordered;content:counters(ordered,".");text-align:left;vertical-align:top;opacity:.75}ol.ui.list ol,.ui.ordered.list .list{counter-reset:ordered;padding-right:2.5em}ol.ui.list ol li:before,.ui.ordered.list .list .item:before{right:-2.5em}ol.ui.horizontal.list,.ui.ordered.horizontal.list{margin-right:0}ol.ui.horizontal.list li:before,.ui.ordered.horizontal.list .item:before{position:static;right:0;margin:0 0 0 .5em}.ui.divided.list>.item,.ui.divided.list:not(.horizontal)>.list{border-top:1px solid rgba(0,0,0,.1);padding-right:.5em;padding-left:.5em}.ui.divided.list .item .menu .item{border-width:0}.ui.divided.list .item:first-child{border-top-width:0}.ui.divided.list:not(.horizontal) .list{margin-right:-.5em;margin-left:-.5em}.ui.divided.list:not(.horizontal) .list .item{padding-right:1em;padding-left:1em}.ui.divided.list:not(.horizontal) .list .item:first-child{border-top-width:1px}.ui.divided.bulleted.list{margin-right:0}.ui.divided.bulleted.list .item{padding-right:1.5em}.ui.divided.bulleted.list .item:before{right:.5em}.ui.divided.ordered.list{margin-right:0}.ui.divided.ordered.list>.item{padding-right:2em;padding-left:2em}.ui.divided.ordered.list>.item:before{right:.5em}.ui.divided.ordered.list .item .list{margin-right:-2em;margin-left:-2em}.ui.divided.horizontal.list{margin-right:0}.ui.divided.horizontal.list>.item{border-top:0;border-right:1px solid rgba(0,0,0,.1);margin:0;padding-right:.75em;padding-left:.75em;line-height:.6em}.ui.horizontal.divided.list>.item:first-child{border-right:0;padding-right:0}.ui.divided.inverted.list>.item,.ui.divided.inverted.list>.list{border-color:rgba(255,255,255,.2)}.ui.divided.inverted.horizontal.list .item{border-color:rgba(255,255,255,.2)}.ui.celled.list>.item,.ui.celled.list>.list{border-top:1px solid rgba(0,0,0,.1);padding-right:.5em;padding-left:.5em}.ui.celled.list>.item:last-child{border-bottom:1px solid rgba(0,0,0,.1)}.ui.celled.list .item .list{margin-right:-.5em;margin-left:-.5em}.ui.celled.list .item .list .item{border-width:0}.ui.celled.list .list .item:first-child{border-top-width:0}.ui.celled.bulleted.list{margin-right:0}.ui.celled.bulleted.list>.item{padding-right:1.5em}.ui.celled.bulleted.list>.item:before{right:.5em}.ui.celled.ordered.list{margin-right:0}.ui.celled.ordered.list .item{padding-right:2em;padding-left:2em}.ui.celled.ordered.list .item:before{right:.5em}.ui.celled.ordered.list .item .list{margin-right:-2em;margin-left:-2em}.ui.horizontal.celled.list{margin-right:0}.ui.horizontal.celled.list .item{border-top:0;border-right:1px solid rgba(0,0,0,.1);margin:0;padding-right:.75em;padding-left:.75em;line-height:.6em}.ui.horizontal.celled.list .item:last-child{border-bottom:0;border-left:1px solid rgba(0,0,0,.1)}.ui.celled.inverted.list>.item,.ui.celled.inverted.list>.list{border-color:rgba(255,255,255,.2)}.ui.celled.inverted.horizontal.list .item{border-color:rgba(255,255,255,.2)}.ui.relaxed.list:not(.horizontal) .item{padding-top:.5em;padding-bottom:.5em}.ui.relaxed.list .header{margin-bottom:.25em}.ui.horizontal.relaxed.list .item{padding-right:1.25em;padding-left:1.25em}.ui.very.relaxed.list:not(.horizontal) .item{padding-top:1em;padding-bottom:1em}.ui.very.relaxed.list .header{margin-bottom:.5em}.ui.horizontal.very.relaxed.list .item{padding-right:2em;padding-left:2em}.ui.mini.list .item{font-size:.7rem}.ui.tiny.list .item{font-size:.8125rem}.ui.small.list .item{font-size:.875rem}.ui.list .item{font-size:1em}.ui.large.list .item{font-size:1.125rem}.ui.big.list .item{font-size:1.25rem}.ui.huge.list .item{font-size:1.375rem}.ui.massive.list .item{font-size:1.5rem}
\ No newline at end of file
diff --git a/css/semantic/rtl/minified/views/statistic.min.css b/css/semantic/rtl/minified/views/statistic.min.css
new file mode 100644
index 0000000..bcb0e38
--- /dev/null
+++ b/css/semantic/rtl/minified/views/statistic.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.statistic{text-align:center}.ui.statistic>.number{font-size:4em;font-weight:700;color:rgba(0,0,0,.7)}.ui.statistic>.description{opacity:.8}
\ No newline at end of file
diff --git a/css/semantic/rtl/packaged/css/semantic.css b/css/semantic/rtl/packaged/css/semantic.css
new file mode 100644
index 0000000..bccbbcc
--- /dev/null
+++ b/css/semantic/rtl/packaged/css/semantic.css
@@ -0,0 +1,18577 @@
+/*
+ * # Semantic - Breadcrumb
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Breadcrumb
+*******************************/
+
+.ui.breadcrumb {
+ margin: 1em 0em;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.ui.breadcrumb:first-child {
+ margin-top: 0em;
+}
+
+.ui.breadcrumb:last-child {
+ margin-bottom: 0em;
+}
+
+/*******************************
+ Content
+*******************************/
+
+.ui.breadcrumb .divider {
+ display: inline-block;
+ opacity: 0.5;
+ margin: 0em 0.15em 0em;
+ font-size: 1em;
+ color: rgba(0, 0, 0, 0.3);
+}
+
+.ui.breadcrumb a.section {
+ cursor: pointer;
+}
+
+.ui.breadcrumb .section {
+ display: inline-block;
+ margin: 0em;
+ padding: 0em;
+}
+
+/* Loose Coupling */
+
+.ui.breadcrumb.segment {
+ display: inline-block;
+ padding: 0.5em 1em;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.breadcrumb .active.section {
+ font-weight: bold;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.small.breadcrumb {
+ font-size: 0.75em;
+}
+
+.ui.large.breadcrumb {
+ font-size: 1.1em;
+}
+
+.ui.huge.breadcrumb {
+ font-size: 1.3em;
+}
+/*
+ * # Semantic - Form
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------------
+ Form
+---------------------*/
+
+.ui.form {
+ position: relative;
+ max-width: 100%;
+}
+
+.ui.form :first-child {
+ margin-top: 0em;
+}
+
+.ui.form :last-child {
+ margin-bottom: 0em;
+}
+
+/*--------------------
+ Content
+---------------------*/
+
+.ui.form > p {
+ margin: 1em 0;
+}
+
+/*--------------------
+ Field
+---------------------*/
+
+.ui.form .field {
+ clear: both;
+ margin: 0em 0em 1em;
+}
+
+/*--------------------
+ Labels
+---------------------*/
+
+.ui.form .field > label {
+ margin: 0em 0em 0.3em;
+ display: block;
+ color: #555555;
+ font-size: 0.875em;
+}
+
+/*--------------------
+ Standard Inputs
+---------------------*/
+
+.ui.form textarea,
+.ui.form input[type="text"],
+.ui.form input[type="email"],
+.ui.form input[type="date"],
+.ui.form input[type="password"],
+.ui.form input[type="number"],
+.ui.form input[type="url"],
+.ui.form input[type="tel"],
+.ui.form .ui.input {
+ width: 100%;
+}
+
+.ui.form textarea,
+.ui.form input[type="text"],
+.ui.form input[type="email"],
+.ui.form input[type="date"],
+.ui.form input[type="password"],
+.ui.form input[type="number"],
+.ui.form input[type="url"],
+.ui.form input[type="tel"] {
+ margin: 0em;
+ padding: 0.65em 1em;
+ font-size: 1em;
+ background-color: #FFFFFF;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ outline: none;
+ color: rgba(0, 0, 0, 0.7);
+ border-radius: 0.3125em;
+ -webkit-transition: background-color 0.3s ease-out, -webkit-box-shadow 0.2s ease, border-color 0.2s ease;
+ -moz-transition: background-color 0.3s ease-out, box-shadow 0.2s ease, border-color 0.2s ease;
+ transition: background-color 0.3s ease-out, box-shadow 0.2s ease, border-color 0.2s ease;
+ -webkit-box-shadow: 0em 0em 0em 0em rgba(0, 0, 0, 0.3) inset;
+ box-shadow: 0em 0em 0em 0em rgba(0, 0, 0, 0.3) inset;
+ -webkit-appearance: none;
+ -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.textarea,
+.ui.form textarea {
+ line-height: 1.33;
+ min-height: 8em;
+ height: 12em;
+ max-height: 24em;
+ resize: vertical;
+}
+
+.ui.form textarea,
+.ui.form input[type="checkbox"] {
+ vertical-align: top;
+}
+
+/*--------------------
+ Dividers
+---------------------*/
+
+.ui.form .divider {
+ clear: both;
+ margin: 1em 0em;
+}
+
+/*--------------------
+ Types of Messages
+---------------------*/
+
+.ui.form .info.message,
+.ui.form .warning.message,
+.ui.form .error.message {
+ display: none;
+}
+
+/* Assumptions */
+
+.ui.form .message:first-child {
+ margin-top: 0px;
+}
+
+/*--------------------
+ Validation Prompt
+---------------------*/
+
+.ui.form .field .prompt.label {
+ white-space: nowrap;
+}
+
+.ui.form .inline.field .prompt {
+ margin-top: 0em;
+ margin-right: 1em;
+}
+
+.ui.form .inline.field .prompt:before {
+ margin-top: -0.3em;
+ bottom: auto;
+ left: auto;
+ top: 50%;
+ right: 0em;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------------
+ Focus
+---------------------*/
+
+.ui.form input[type="text"]:focus,
+.ui.form input[type="email"]:focus,
+.ui.form input[type="date"]:focus,
+.ui.form input[type="password"]:focus,
+.ui.form input[type="number"]:focus,
+.ui.form input[type="url"]:focus,
+.ui.form input[type="tel"]:focus,
+.ui.form textarea:focus {
+ color: rgba(0, 0, 0, 0.85);
+ border-color: rgba(0, 0, 0, 0.2);
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ -webkit-appearance: none;
+ -webkit-box-shadow: 0.3em 0em 0em 0em rgba(0, 0, 0, 0.2) inset;
+ box-shadow: 0.3em 0em 0em 0em rgba(0, 0, 0, 0.2) inset;
+}
+
+/*--------------------
+ Error
+---------------------*/
+
+/* On Form */
+
+.ui.form.warning .warning.message {
+ display: block;
+}
+
+/*--------------------
+ Warning
+---------------------*/
+
+/* On Form */
+
+.ui.form.error .error.message {
+ display: block;
+}
+
+/* On Field(s) */
+
+.ui.form .fields.error .field label,
+.ui.form .field.error label,
+.ui.form .fields.error .field .input,
+.ui.form .field.error .input {
+ color: #D95C5C;
+}
+
+.ui.form .fields.error .field .corner.label,
+.ui.form .field.error .corner.label {
+ border-color: #D95C5C;
+ color: #FFFFFF;
+}
+
+.ui.form .fields.error .field textarea,
+.ui.form .fields.error .field input[type="text"],
+.ui.form .fields.error .field input[type="email"],
+.ui.form .fields.error .field input[type="date"],
+.ui.form .fields.error .field input[type="password"],
+.ui.form .fields.error .field input[type="number"],
+.ui.form .fields.error .field input[type="url"],
+.ui.form .fields.error .field input[type="tel"],
+.ui.form .field.error textarea,
+.ui.form .field.error input[type="text"],
+.ui.form .field.error input[type="email"],
+.ui.form .field.error input[type="date"],
+.ui.form .field.error input[type="password"],
+.ui.form .field.error input[type="number"],
+.ui.form .field.error input[type="url"],
+.ui.form .field.error input[type="tel"] {
+ background-color: #FFFAFA;
+ border-color: #E7BEBE;
+ border-right: none;
+ color: #D95C5C;
+ padding-right: 1.2em;
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ -webkit-box-shadow: 0.3em 0em 0em 0em #D95C5C inset;
+ box-shadow: 0.3em 0em 0em 0em #D95C5C inset;
+}
+
+.ui.form .field.error textarea:focus,
+.ui.form .field.error input[type="text"]:focus,
+.ui.form .field.error input[type="email"]:focus,
+.ui.form .field.error input[type="date"]:focus,
+.ui.form .field.error input[type="password"]:focus,
+.ui.form .field.error input[type="number"]:focus,
+.ui.form .field.error input[type="url"]:focus,
+.ui.form .field.error input[type="tel"]:focus {
+ border-color: #ff5050;
+ color: #ff5050;
+ -webkit-appearance: none;
+ -webkit-box-shadow: 0.3em 0em 0em 0em #FF5050 inset;
+ box-shadow: 0.3em 0em 0em 0em #FF5050 inset;
+}
+
+/*----------------------------
+ Dropdown Selection Warning
+-----------------------------*/
+
+.ui.form .fields.error .field .ui.dropdown,
+.ui.form .fields.error .field .ui.dropdown .item,
+.ui.form .field.error .ui.dropdown,
+.ui.form .field.error .ui.dropdown .item {
+ background-color: #FFFAFA;
+ color: #D95C5C;
+}
+
+.ui.form .fields.error .field .ui.dropdown,
+.ui.form .field.error .ui.dropdown {
+ -webkit-box-shadow: 0px 0px 0px 1px #E7BEBE !important;
+ box-shadow: 0px 0px 0px 1px #E7BEBE !important;
+}
+
+.ui.form .fields.error .field .ui.dropdown:hover,
+.ui.form .field.error .ui.dropdown:hover {
+ -webkit-box-shadow: 0px 0px 0px 1px #E7BEBE !important;
+ box-shadow: 0px 0px 0px 1px #E7BEBE !important;
+}
+
+.ui.form .fields.error .field .ui.dropdown:hover .menu,
+.ui.form .field.error .ui.dropdown:hover .menu {
+ -webkit-box-shadow: 0px 1px 0px 1px #E7BEBE;
+ box-shadow: 0px 1px 0px 1px #E7BEBE;
+}
+
+.ui.form .fields.error .field .ui.dropdown .menu .item:hover,
+.ui.form .field.error .ui.dropdown .menu .item:hover {
+ background-color: #FFF2F2;
+}
+
+.ui.form .fields.error .field .ui.dropdown .menu .active.item,
+.ui.form .field.error .ui.dropdown .menu .active.item {
+ background-color: #FDCFCF !important;
+}
+
+/*--------------------
+ Empty (Placeholder)
+---------------------*/
+
+/* browsers require these rules separate */
+
+.ui.form ::-webkit-input-placeholder {
+ color: #AAAAAA;
+}
+
+.ui.form ::-moz-placeholder {
+ color: #AAAAAA;
+}
+
+.ui.form :focus::-webkit-input-placeholder {
+ color: #999999;
+}
+
+.ui.form :focus::-moz-placeholder {
+ color: #999999;
+}
+
+/* Error Placeholder */
+
+.ui.form .error ::-webkit-input-placeholder {
+ color: rgba(255, 80, 80, 0.4);
+}
+
+.ui.form .error ::-moz-placeholder {
+ color: rgba(255, 80, 80, 0.4);
+}
+
+.ui.form .error :focus::-webkit-input-placeholder {
+ color: rgba(255, 80, 80, 0.7);
+}
+
+.ui.form .error :focus::-moz-placeholder {
+ color: rgba(255, 80, 80, 0.7);
+}
+
+/*--------------------
+ Disabled
+---------------------*/
+
+.ui.form .field :disabled,
+.ui.form .field.disabled {
+ opacity: 0.5;
+}
+
+.ui.form .field.disabled label {
+ opacity: 0.5;
+}
+
+.ui.form .field.disabled :disabled {
+ opacity: 1;
+}
+
+/*--------------------
+ Loading State
+---------------------*/
+
+/* On Form */
+
+.ui.form.loading {
+ position: relative;
+}
+
+.ui.form.loading:after {
+ position: absolute;
+ top: 0%;
+ right: 0%;
+ content: '';
+ width: 100%;
+ height: 100%;
+ background: rgba(255, 255, 255, 0.8) url(../images/loader-large.gif) no-repeat 50% 50%;
+ visibility: visible;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------------
+ Fluid Width
+---------------------*/
+
+.ui.form.fluid {
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*--------------------------
+ Input w/ attached Button
+---------------------------*/
+
+.ui.form input.attached {
+ width: auto;
+}
+
+/*--------------------
+ Date Input
+---------------------*/
+
+.ui.form .date.field > label {
+ position: relative;
+}
+
+.ui.form .date.field > label:after {
+ position: absolute;
+ top: 2em;
+ left: 0.5em;
+ font-family: 'Icons';
+ content: '\f133';
+ font-size: 1.2em;
+ font-weight: normal;
+ color: #CCCCCC;
+}
+
+/*--------------------
+ Inverted Colors
+---------------------*/
+
+.ui.inverted.form label {
+ color: #FFFFFF;
+}
+
+.ui.inverted.form .field.error textarea,
+.ui.inverted.form .field.error input[type="text"],
+.ui.inverted.form .field.error input[type="email"],
+.ui.inverted.form .field.error input[type="date"],
+.ui.inverted.form .field.error input[type="password"],
+.ui.inverted.form .field.error input[type="number"],
+.ui.inverted.form .field.error input[type="url"],
+.ui.inverted.form .field.error input[type="tel"] {
+ background-color: #FFCCCC;
+}
+
+.ui.inverted.form .ui.checkbox label {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.form .ui.checkbox label:hover,
+.ui.inverted.form .ui.checkbox .box:hover {
+ color: #FFFFFF;
+}
+
+/*--------------------
+ Field Groups
+---------------------*/
+
+/* Grouped Vertically */
+
+.ui.form .grouped.fields {
+ margin: 0em 0em 1em;
+}
+
+.ui.form .grouped.fields .field {
+ display: block;
+ float: none;
+ margin: 0.5em 0em;
+ padding: 0em;
+}
+
+/*--------------------
+ Fields
+---------------------*/
+
+/* Split fields */
+
+.ui.form .fields {
+ clear: both;
+}
+
+.ui.form .fields:after {
+ content: ' ';
+ display: block;
+ clear: both;
+ visibility: hidden;
+ line-height: 0;
+ height: 0;
+}
+
+.ui.form .fields > .field {
+ clear: none;
+ float: right;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.form .fields > .field:first-child {
+ border-right: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* Other Combinations */
+
+.ui.form .two.fields > .fields,
+.ui.form .two.fields > .field {
+ width: 50%;
+ padding-right: 1%;
+ padding-left: 1%;
+}
+
+.ui.form .three.fields > .fields,
+.ui.form .three.fields > .field {
+ width: 33.333%;
+ padding-right: 1%;
+ padding-left: 1%;
+}
+
+.ui.form .four.fields > .fields,
+.ui.form .four.fields > .field {
+ width: 25%;
+ padding-right: 1%;
+ padding-left: 1%;
+}
+
+.ui.form .five.fields > .fields,
+.ui.form .five.fields > .field {
+ width: 20%;
+ padding-right: 1%;
+ padding-left: 1%;
+}
+
+/* Swap to full width on mobile */
+
+@media only screen and (max-width: 767px) {
+ .ui.form .two.fields > .fields,
+ .ui.form .two.fields > .field,
+ .ui.form .three.fields > .fields,
+ .ui.form .three.fields > .field,
+ .ui.form .four.fields > .fields,
+ .ui.form .four.fields > .field,
+ .ui.form .five.fields > .fields,
+ .ui.form .five.fields > .field {
+ width: 100%;
+ padding-right: 0%;
+ padding-left: 0%;
+ }
+}
+
+.ui.form .fields .field:first-child {
+ padding-right: 0%;
+}
+
+.ui.form .fields .field:last-child {
+ padding-left: 0%;
+}
+
+/*--------------------
+ Inline Fields
+---------------------*/
+
+.ui.form .inline.fields .field {
+ min-height: 1.3em;
+ margin-left: 0.5em;
+}
+
+.ui.form .inline.fields .field > label,
+.ui.form .inline.fields .field > p,
+.ui.form .inline.fields .field > input,
+.ui.form .inline.field > label,
+.ui.form .inline.field > p,
+.ui.form .inline.field > input {
+ display: inline-block;
+ width: auto;
+ margin-top: 0em;
+ margin-bottom: 0em;
+ vertical-align: middle;
+ font-size: 1em;
+}
+
+.ui.form .inline.fields .field > input,
+.ui.form .inline.field > input {
+ font-size: 0.875em;
+}
+
+.ui.form .inline.fields .field > :first-child,
+.ui.form .inline.field > :first-child {
+ margin: 0em 0em 0em 0.5em;
+}
+
+.ui.form .inline.fields .field > :only-child,
+.ui.form .inline.field > :only-child {
+ margin: 0em;
+}
+
+/*--------------------
+ Sizes
+---------------------*/
+
+/* Standard */
+
+.ui.small.form {
+ font-size: 0.875em;
+}
+
+.ui.small.form textarea,
+.ui.small.form input[type="text"],
+.ui.small.form input[type="email"],
+.ui.small.form input[type="date"],
+.ui.small.form input[type="password"],
+.ui.small.form input[type="number"],
+.ui.small.form input[type="url"],
+.ui.small.form input[type="tel"],
+.ui.small.form label {
+ font-size: 1em;
+}
+
+/* Large */
+
+.ui.large.form {
+ font-size: 1.125em;
+}
+/*
+ * # Semantic - Grid
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Grid
+*******************************/
+
+.ui.grid {
+ display: block;
+ text-align: right;
+ font-size: 0em;
+ margin: 0% -1.5%;
+ padding: 0%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+body > .ui.grid {
+ margin-right: 0% !important;
+ margin-left: 0% !important;
+}
+
+.ui.grid:after,
+.ui.row:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+/*-------------------
+ Columns
+--------------------*/
+
+/* Standard 16 column */
+
+.ui.grid > .column,
+.ui.grid > .row > .column {
+ display: inline-block;
+ text-align: right;
+ font-size: 1rem;
+ width: 6.25%;
+ padding-right: 1.5%;
+ padding-left: 1.5%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ vertical-align: top;
+}
+
+/* Vertical padding when no rows */
+
+.ui.grid > .column {
+ margin-top: 1rem;
+ margin-bottom: 1rem;
+}
+
+/*-------------------
+ Rows
+--------------------*/
+
+.ui.grid > .row {
+ display: block;
+ width: 100% !important;
+ margin-top: 1.5%;
+ padding: 1rem 0% 0%;
+ font-size: 0rem;
+}
+
+.ui.grid > .row:first-child {
+ padding-top: 0rem;
+ margin-top: 0rem;
+}
+
+/*-------------------
+ Content
+--------------------*/
+
+.ui.grid > .row > img,
+.ui.grid > .row > .column > img {
+ max-width: 100%;
+}
+
+.ui.grid .column > .ui.segment:only-child {
+ margin: 0em;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-----------------------
+ Page Grid (Responsive)
+-------------------------*/
+
+.ui.page.grid {
+ min-width: 320px;
+ margin-right: 0%;
+ margin-left: 0%;
+}
+
+@media only screen and (max-width: 991px) {
+ .ui.page.grid {
+ padding: 0% 4%;
+ }
+}
+
+@media only screen and (min-width: 992px) {
+ .ui.page.grid {
+ padding: 0% 8%;
+ }
+}
+
+@media only screen and (min-width: 1500px) {
+ .ui.page.grid {
+ padding: 0% 13%;
+ }
+}
+
+@media only screen and (min-width: 1750px) {
+ .ui.page.grid {
+ padding: 0% 18%;
+ }
+}
+
+@media only screen and (min-width: 2000px) {
+ .ui.page.grid {
+ padding: 0% 23%;
+ }
+}
+
+/*-------------------
+ Column Width
+--------------------*/
+
+/* Sizing Combinations */
+
+.ui.grid > .row > .one.wide.column,
+.ui.grid > .column.row > .one.wide.column,
+.ui.grid > .one.wide.column,
+.ui.column.grid > .one.wide.column {
+ width: 6.25%;
+}
+
+.ui.grid > .row > .two.wide.column,
+.ui.grid > .column.row > .two.wide.column,
+.ui.grid > .two.wide.column,
+.ui.column.grid > .two.wide.column {
+ width: 12.5%;
+}
+
+.ui.grid > .row > .three.wide.column,
+.ui.grid > .column.row > .three.wide.column,
+.ui.grid > .three.wide.column,
+.ui.column.grid > .three.wide.column {
+ width: 18.75%;
+}
+
+.ui.grid > .row > .four.wide.column,
+.ui.grid > .column.row > .four.wide.column,
+.ui.grid > .four.wide.column,
+.ui.column.grid > .four.wide.column {
+ width: 25%;
+}
+
+.ui.grid > .row > .five.wide.column,
+.ui.grid > .column.row > .five.wide.column,
+.ui.grid > .five.wide.column,
+.ui.column.grid > .five.wide.column {
+ width: 31.25%;
+}
+
+.ui.grid > .row > .six.wide.column,
+.ui.grid > .column.row > .six.wide.column,
+.ui.grid > .six.wide.column,
+.ui.column.grid > .six.wide.column {
+ width: 37.5%;
+}
+
+.ui.grid > .row > .seven.wide.column,
+.ui.grid > .column.row > .seven.wide.column,
+.ui.grid > .seven.wide.column,
+.ui.column.grid > .seven.wide.column {
+ width: 43.75%;
+}
+
+.ui.grid > .row > .eight.wide.column,
+.ui.grid > .column.row > .eight.wide.column,
+.ui.grid > .eight.wide.column,
+.ui.column.grid > .eight.wide.column {
+ width: 50%;
+}
+
+.ui.grid > .row > .nine.wide.column,
+.ui.grid > .column.row > .nine.wide.column,
+.ui.grid > .nine.wide.column,
+.ui.column.grid > .nine.wide.column {
+ width: 56.25%;
+}
+
+.ui.grid > .row > .ten.wide.column,
+.ui.grid > .column.row > .ten.wide.column,
+.ui.grid > .ten.wide.column,
+.ui.column.grid > .ten.wide.column {
+ width: 62.5%;
+}
+
+.ui.grid > .row > .eleven.wide.column,
+.ui.grid > .column.row > .eleven.wide.column,
+.ui.grid > .eleven.wide.column,
+.ui.column.grid > .eleven.wide.column {
+ width: 68.75%;
+}
+
+.ui.grid > .row > .twelve.wide.column,
+.ui.grid > .column.row > .twelve.wide.column,
+.ui.grid > .twelve.wide.column,
+.ui.column.grid > .twelve.wide.column {
+ width: 75%;
+}
+
+.ui.grid > .row > .thirteen.wide.column,
+.ui.grid > .column.row > .thirteen.wide.column,
+.ui.grid > .thirteen.wide.column,
+.ui.column.grid > .thirteen.wide.column {
+ width: 81.25%;
+}
+
+.ui.grid > .row > .fourteen.wide.column,
+.ui.grid > .column.row > .fourteen.wide.column,
+.ui.grid > .fourteen.wide.column,
+.ui.column.grid > .fourteen.wide.column {
+ width: 87.5%;
+}
+
+.ui.grid > .row > .fifteen.wide.column,
+.ui.grid > .column.row > .fifteen.wide.column,
+.ui.grid > .fifteen.wide.column,
+.ui.column.grid > .fifteen.wide.column {
+ width: 93.75%;
+}
+
+.ui.grid > .row > .sixteen.wide.column,
+.ui.grid > .column.row > .sixteen.wide.column,
+.ui.grid > .sixteen.wide.column,
+.ui.column.grid > .sixteen.wide.column {
+ width: 100%;
+}
+
+/*-------------------
+ Column Count
+--------------------*/
+
+/* Assume full width with one column */
+
+.ui.one.column.grid > .row > .column,
+.ui.one.column.grid > .column,
+.ui.grid > .one.column.row > .column {
+ width: 100%;
+}
+
+.ui.two.column.grid > .row > .column,
+.ui.two.column.grid > .column,
+.ui.grid > .two.column.row > .column {
+ width: 50%;
+}
+
+.ui.three.column.grid > .row > .column,
+.ui.three.column.grid > .column,
+.ui.grid > .three.column.row > .column {
+ width: 33.3333%;
+}
+
+.ui.four.column.grid > .row > .column,
+.ui.four.column.grid > .column,
+.ui.grid > .four.column.row > .column {
+ width: 25%;
+}
+
+.ui.five.column.grid > .row > .column,
+.ui.five.column.grid > .column,
+.ui.grid > .five.column.row > .column {
+ width: 20%;
+}
+
+.ui.six.column.grid > .row > .column,
+.ui.six.column.grid > .column,
+.ui.grid > .six.column.row > .column {
+ width: 16.66667%;
+}
+
+.ui.seven.column.grid > .row > .column,
+.ui.seven.column.grid > .column,
+.ui.grid > .seven.column.row > .column {
+ width: 14.2857%;
+}
+
+.ui.eight.column.grid > .row > .column,
+.ui.eight.column.grid > .column,
+.ui.grid > .eight.column.row > .column {
+ width: 12.5%;
+}
+
+.ui.nine.column.grid > .row > .column,
+.ui.nine.column.grid > .column,
+.ui.grid > .nine.column.row > .column {
+ width: 11.1111%;
+}
+
+.ui.ten.column.grid > .row > .column,
+.ui.ten.column.grid > .column,
+.ui.grid > .ten.column.row > .column {
+ width: 10%;
+}
+
+.ui.eleven.column.grid > .row > .column,
+.ui.eleven.column.grid > .column,
+.ui.grid > .eleven.column.row > .column {
+ width: 9.0909%;
+}
+
+.ui.twelve.column.grid > .row > .column,
+.ui.twelve.column.grid > .column,
+.ui.grid > .twelve.column.row > .column {
+ width: 8.3333%;
+}
+
+.ui.thirteen.column.grid > .row > .column,
+.ui.thirteen.column.grid > .column,
+.ui.grid > .thirteen.column.row > .column {
+ width: 7.6923%;
+}
+
+.ui.fourteen.column.grid > .row > .column,
+.ui.fourteen.column.grid > .column,
+.ui.grid > .fourteen.column.row > .column {
+ width: 7.1428%;
+}
+
+.ui.fifteen.column.grid > .row > .column,
+.ui.fifteen.column.grid > .column,
+.ui.grid > .fifteen.column.row > .column {
+ width: 6.6666%;
+}
+
+.ui.sixteen.column.grid > .row > .column,
+.ui.sixteen.column.grid > .column,
+.ui.grid > .sixteen.column.row > .column {
+ width: 6.25%;
+}
+
+/* Assume full width with one column */
+
+.ui.grid > .column:only-child,
+.ui.grid > .row > .column:only-child {
+ width: 100%;
+}
+
+/*----------------------
+ Relaxed
+-----------------------*/
+
+.ui.relaxed.grid {
+ margin: 0% -2.5%;
+}
+
+.ui.relaxed.grid > .column,
+.ui.relaxed.grid > .row > .column {
+ padding-right: 2.5%;
+ padding-left: 2.5%;
+}
+
+/*----------------------
+ "Floated"
+-----------------------*/
+
+.ui.grid .left.floated.column {
+ float: right;
+}
+
+.ui.grid .right.floated.column {
+ float: left;
+}
+
+/*----------------------
+ Divided
+-----------------------*/
+
+.ui.divided.grid,
+.ui.divided.grid > .row {
+ display: table;
+ width: 100%;
+ margin-right: 0% !important;
+ margin-left: 0% !important;
+}
+
+.ui.divided.grid > .column:not(.row),
+.ui.divided.grid > .row > .column {
+ display: table-cell;
+ -webkit-box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.1), -2px 0px 0px 0px rgba(255, 255, 255, 0.8);
+ box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.1), -2px 0px 0px 0px rgba(255, 255, 255, 0.8);
+}
+
+.ui.divided.grid > .column.row {
+ display: table;
+}
+
+.ui.divided.grid > .column:first-child,
+.ui.divided.grid > .row > .column:first-child {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* Vertically Divided */
+
+.ui.vertically.divided.grid > .row {
+ -webkit-box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1), 0px -2px 0px 0px rgba(255, 255, 255, 0.8) !important;
+ box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1), 0px -2px 0px 0px rgba(255, 255, 255, 0.8) !important;
+}
+
+.ui.vertically.divided.grid > .row > .column,
+.ui.vertically.divided.grid > .column:not(.row),
+.ui.vertically.divided.grid > .row:first-child {
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+/*----------------------
+ Celled
+-----------------------*/
+
+.ui.celled.grid {
+ display: table;
+ width: 100%;
+ margin-right: 0% !important;
+ margin-left: 0% !important;
+ -webkit-box-shadow: 0px 0px 0px 1px #DFDFDF;
+ box-shadow: 0px 0px 0px 1px #DFDFDF;
+}
+
+.ui.celled.grid > .row,
+.ui.celled.grid > .column.row,
+.ui.celled.grid > .column.row:first-child {
+ display: table;
+ width: 100%;
+ margin-top: 0em;
+ padding-top: 0em;
+ -webkit-box-shadow: 0px -1px 0px 0px #dfdfdf;
+ box-shadow: 0px -1px 0px 0px #dfdfdf;
+}
+
+.ui.celled.grid > .column:not(.row),
+.ui.celled.grid > .row > .column {
+ display: table-cell;
+ padding: 0.75em;
+ -webkit-box-shadow: -1px 0px 0px 0px #dfdfdf;
+ box-shadow: -1px 0px 0px 0px #dfdfdf;
+}
+
+.ui.celled.grid > .column:first-child,
+.ui.celled.grid > .row > .column:first-child {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.celled.page.grid {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*----------------------
+ Horizontally Centered
+-----------------------*/
+
+/* Vertical Centered */
+
+.ui.left.aligned.grid,
+.ui.left.aligned.grid > .row > .column,
+.ui.left.aligned.grid > .column,
+.ui.grid .left.aligned.column,
+.ui.grid > .left.aligned.row > .column {
+ text-align: right;
+}
+
+.ui.center.aligned.grid,
+.ui.center.aligned.grid > .row > .column,
+.ui.center.aligned.grid > .column,
+.ui.grid .center.aligned.column,
+.ui.grid > .center.aligned.row > .column {
+ text-align: center;
+}
+
+.ui.right.aligned.grid,
+.ui.right.aligned.grid > .row > .column,
+.ui.right.aligned.grid > .column,
+.ui.grid .right.aligned.column,
+.ui.grid > .right.aligned.row > .column {
+ text-align: left;
+}
+
+.ui.justified.grid,
+.ui.justified.grid > .row > .column,
+.ui.justified.grid > .column,
+.ui.grid .justified.column,
+.ui.grid > .justified.row > .column {
+ text-align: justify;
+ -webkit-hyphens: auto;
+ -moz-hyphens: auto;
+ -ms-hyphens: auto;
+ hyphens: auto;
+}
+
+/*----------------------
+ Vertically Centered
+-----------------------*/
+
+/* Vertical Centered */
+
+.ui.top.aligned.grid,
+.ui.top.aligned.grid > .row > .column,
+.ui.top.aligned.grid > .column,
+.ui.grid .top.aligned.column,
+.ui.grid > .top.aligned.row > .column {
+ vertical-align: top;
+}
+
+.ui.middle.aligned.grid,
+.ui.middle.aligned.grid > .row > .column,
+.ui.middle.aligned.grid > .column,
+.ui.grid .middle.aligned.column,
+.ui.grid > .middle.aligned.row > .column {
+ vertical-align: middle;
+}
+
+.ui.bottom.aligned.grid,
+.ui.bottom.aligned.grid > .row > .column,
+.ui.bottom.aligned.grid > .column,
+.ui.grid .bottom.aligned.column,
+.ui.grid > .bottom.aligned.row > .column {
+ vertical-align: bottom;
+}
+
+/*----------------------
+ Equal Height Columns
+-----------------------*/
+
+.ui.grid > .equal.height.row {
+ display: table;
+ width: 100%;
+}
+
+.ui.grid > .equal.height.row > .column {
+ display: table-cell;
+}
+
+/*----------------------
+ Only (Device)
+-----------------------*/
+
+/* Mobile Only */
+
+@media only screen and (max-width: 767px) {
+ .ui.mobile.only.grid,
+ .ui.grid > .mobile.only.row {
+ display: block !important;
+ }
+
+ .ui.grid > .row > .mobile.only.column {
+ display: inline-block !important;
+ }
+
+ .ui.divided.mobile.only.grid,
+ .ui.celled.mobile.only.grid,
+ .ui.divided.mobile.only.grid .row,
+ .ui.celled.mobile.only.grid .row,
+ .ui.divided.grid .mobile.only.row,
+ .ui.celled.grid .mobile.only.row,
+ .ui.grid .mobile.only.equal.height.row,
+ .ui.mobile.only.grid .equal.height.row {
+ display: table !important;
+ }
+
+ .ui.divided.grid > .row > .mobile.only.column,
+ .ui.celled.grid > .row > .mobile.only.column,
+ .ui.divided.mobile.only.grid > .row > .column,
+ .ui.celled.mobile.only.grid > .row > .column,
+ .ui.divided.mobile.only.grid > .column,
+ .ui.celled.mobile.only.grid > .column {
+ display: table-cell !important;
+ }
+}
+
+@media only screen and (min-width: 768px) {
+ .ui.mobile.only.grid,
+ .ui.grid > .mobile.only.row,
+ .ui.grid > .mobile.only.column,
+ .ui.grid > .row > .mobile.only.column {
+ display: none;
+ }
+}
+
+/* Tablet Only */
+
+@media only screen and (min-width: 768px) and (max-width: 991px) {
+ .ui.tablet.only.grid,
+ .ui.grid > .tablet.only.row {
+ display: block !important;
+ }
+
+ .ui.grid > .row > .tablet.only.column {
+ display: inline-block !important;
+ }
+
+ .ui.divided.tablet.only.grid,
+ .ui.celled.tablet.only.grid,
+ .ui.divided.tablet.only.grid .row,
+ .ui.celled.tablet.only.grid .row,
+ .ui.divided.grid .tablet.only.row,
+ .ui.celled.grid .tablet.only.row,
+ .ui.grid .tablet.only.equal.height.row,
+ .ui.tablet.only.grid .equal.height.row {
+ display: table !important;
+ }
+
+ .ui.divided.grid > .row > .tablet.only.column,
+ .ui.celled.grid > .row > .tablet.only.column,
+ .ui.divided.tablet.only.grid > .row > .column,
+ .ui.celled.tablet.only.grid > .row > .column,
+ .ui.divided.tablet.only.grid > .column,
+ .ui.celled.tablet.only.grid > .column {
+ display: table-cell !important;
+ }
+}
+
+@media only screen and (max-width: 767px), (min-width: 992px) {
+ .ui.tablet.only.grid,
+ .ui.grid > .tablet.only.row,
+ .ui.grid > .tablet.only.column,
+ .ui.grid > .row > .tablet.only.column {
+ display: none;
+ }
+}
+
+/* Computer Only */
+
+@media only screen and (min-width: 992px) {
+ .ui.computer.only.grid,
+ .ui.grid > .computer.only.row {
+ display: block !important;
+ }
+
+ .ui.grid > .row > .computer.only.column {
+ display: inline-block !important;
+ }
+
+ .ui.divided.computer.only.grid,
+ .ui.celled.computer.only.grid,
+ .ui.divided.computer.only.grid .row,
+ .ui.celled.computer.only.grid .row,
+ .ui.divided.grid .computer.only.row,
+ .ui.celled.grid .computer.only.row,
+ .ui.grid .computer.only.equal.height.row,
+ .ui.computer.only.grid .equal.height.row {
+ display: table !important;
+ }
+
+ .ui.divided.grid > .row > .computer.only.column,
+ .ui.celled.grid > .row > .computer.only.column,
+ .ui.divided.computer.only.grid > .row > .column,
+ .ui.celled.computer.only.grid > .row > .column,
+ .ui.divided.computer.only.grid > .column,
+ .ui.celled.computer.only.grid > .column {
+ display: table-cell !important;
+ }
+}
+
+@media only screen and (max-width: 991px) {
+ .ui.computer.only.grid,
+ .ui.grid > .computer.only.row,
+ .ui.grid > .computer.only.column,
+ .ui.grid > .row > .computer.only.column {
+ display: none;
+ }
+}
+
+/*-------------------
+ Doubling
+--------------------*/
+
+/* Mobily Only */
+
+@media only screen and (max-width: 767px) {
+ .ui.two.column.doubling.grid > .row > .column,
+ .ui.two.column.doubling.grid > .column,
+ .ui.grid > .two.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.three.column.doubling.grid > .row > .column,
+ .ui.three.column.doubling.grid > .column,
+ .ui.grid > .three.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.four.column.doubling.grid > .row > .column,
+ .ui.four.column.doubling.grid > .column,
+ .ui.grid > .four.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.five.column.doubling.grid > .row > .column,
+ .ui.five.column.doubling.grid > .column,
+ .ui.grid > .five.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.six.column.doubling.grid > .row > .column,
+ .ui.six.column.doubling.grid > .column,
+ .ui.grid > .six.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.seven.column.doubling.grid > .row > .column,
+ .ui.seven.column.doubling.grid > .column,
+ .ui.grid > .seven.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.eight.column.doubling.grid > .row > .column,
+ .ui.eight.column.doubling.grid > .column,
+ .ui.grid > .eight.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.nine.column.doubling.grid > .row > .column,
+ .ui.nine.column.doubling.grid > .column,
+ .ui.grid > .nine.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.ten.column.doubling.grid > .row > .column,
+ .ui.ten.column.doubling.grid > .column,
+ .ui.grid > .ten.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.twelve.column.doubling.grid > .row > .column,
+ .ui.twelve.column.doubling.grid > .column,
+ .ui.grid > .twelve.column.doubling.row > .column {
+ width: 33.3333333333333%;
+ }
+
+ .ui.fourteen.column.doubling.grid > .row > .column,
+ .ui.fourteen.column.doubling.grid > .column,
+ .ui.grid > .fourteen.column.doubling.row > .column {
+ width: 33.3333333333333%;
+ }
+
+ .ui.sixteen.column.doubling.grid > .row > .column,
+ .ui.sixteen.column.doubling.grid > .column,
+ .ui.grid > .sixteen.column.doubling.row > .column {
+ width: 25%;
+ }
+}
+
+/* Tablet Only */
+
+@media only screen and (min-width: 768px) and (max-width: 991px) {
+ .ui.two.column.doubling.grid > .row > .column,
+ .ui.two.column.doubling.grid > .column,
+ .ui.grid > .two.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.three.column.doubling.grid > .row > .column,
+ .ui.three.column.doubling.grid > .column,
+ .ui.grid > .three.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.four.column.doubling.grid > .row > .column,
+ .ui.four.column.doubling.grid > .column,
+ .ui.grid > .four.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.five.column.doubling.grid > .row > .column,
+ .ui.five.column.doubling.grid > .column,
+ .ui.grid > .five.column.doubling.row > .column {
+ width: 33.3333333%;
+ }
+
+ .ui.six.column.doubling.grid > .row > .column,
+ .ui.six.column.doubling.grid > .column,
+ .ui.grid > .six.column.doubling.row > .column {
+ width: 33.3333333%;
+ }
+
+ .ui.eight.column.doubling.grid > .row > .column,
+ .ui.eight.column.doubling.grid > .column,
+ .ui.grid > .eight.column.doubling.row > .column {
+ width: 33.3333333%;
+ }
+
+ .ui.eight.column.doubling.grid > .row > .column,
+ .ui.eight.column.doubling.grid > .column,
+ .ui.grid > .eight.column.doubling.row > .column {
+ width: 25%;
+ }
+
+ .ui.nine.column.doubling.grid > .row > .column,
+ .ui.nine.column.doubling.grid > .column,
+ .ui.grid > .nine.column.doubling.row > .column {
+ width: 25%;
+ }
+
+ .ui.ten.column.doubling.grid > .row > .column,
+ .ui.ten.column.doubling.grid > .column,
+ .ui.grid > .ten.column.doubling.row > .column {
+ width: 20%;
+ }
+
+ .ui.twelve.column.doubling.grid > .row > .column,
+ .ui.twelve.column.doubling.grid > .column,
+ .ui.grid > .twelve.column.doubling.row > .column {
+ width: 16.6666666%;
+ }
+
+ .ui.fourteen.column.doubling.grid > .row > .column,
+ .ui.fourteen.column.doubling.grid > .column,
+ .ui.grid > .fourteen.column.doubling.row > .column {
+ width: 14.28571428571429%;
+ }
+
+ .ui.sixteen.column.doubling.grid > .row > .column,
+ .ui.sixteen.column.doubling.grid > .column,
+ .ui.grid > .sixteen.column.doubling.row > .column {
+ width: 12.5%;
+ }
+}
+
+/*-------------------
+ Stackable
+--------------------*/
+
+@media only screen and (max-width: 767px) {
+ .ui.stackable.grid {
+ display: block !important;
+ padding: 0em;
+ margin: 0em;
+ }
+
+ .ui.stackable.grid > .row > .column,
+ .ui.stackable.grid > .column {
+ display: block !important;
+ width: auto !important;
+ margin: 1em 0em 0em !important;
+ padding: 1em 0em 0em !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+ }
+
+ .ui.stackable.divided.grid .column,
+ .ui.stackable.celled.grid .column {
+ border-top: 1px dotted rgba(0, 0, 0, 0.1);
+ }
+
+ .ui.stackable.grid > .row:first-child > .column:first-child,
+ .ui.stackable.grid > .column:first-child {
+ margin-top: 0em !important;
+ padding-top: 0em !important;
+ }
+
+ .ui.stackable.divided.grid > .row:first-child > .column:first-child,
+ .ui.stackable.celled.grid > .row:first-child > .column:first-child,
+ .ui.stackable.divided.grid > .column:first-child,
+ .ui.stackable.celled.grid > .column:first-child {
+ border-top: none !important;
+ }
+
+ .ui.stackable.page.grid > .row > .column,
+ .ui.stackable.page.grid > .column {
+ padding-right: 1em !important;
+ padding-left: 1em !important;
+ }
+
+ /* Remove pointers from vertical menus */
+
+ .ui.stackable.grid .vertical.pointing.menu .item:after {
+ display: none;
+ }
+}
+/*
+ * # Semantic - Menu
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------
+ Menu
+---------------*/
+
+.ui.menu {
+ margin: 1rem 0rem;
+ background-color: #FFFFFF;
+ font-size: 0px;
+ font-weight: normal;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ border-radius: 0.1875rem;
+}
+
+.ui.menu:first-child {
+ margin-top: 0rem;
+}
+
+.ui.menu:last-child {
+ margin-bottom: 0rem;
+}
+
+.ui.menu:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+.ui.menu > .item:first-child {
+ border-radius: 0px 0.1875em 0.1875em 0px;
+}
+
+.ui.menu > .item:last-child {
+ border-radius: 0.1875em 0px 0px 0.1875em;
+}
+
+.ui.menu .item {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ vertical-align: middle;
+ line-height: 1;
+ text-decoration: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-transition: opacity 0.2s ease, background 0.2s ease, -webkit-box-shadow 0.2s ease;
+ -moz-transition: opacity 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
+ transition: opacity 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
+}
+
+/*--------------
+ Colors
+---------------*/
+
+/* Text Color */
+
+.ui.menu .item,
+.ui.menu .item > a:not(.button) {
+ color: rgba(0, 0, 0, 0.75);
+}
+
+.ui.menu .item .item,
+.ui.menu .item .item > a:not(.button) {
+ color: rgba(30, 30, 30, 0.7);
+}
+
+.ui.menu .item .item .item,
+.ui.menu .item .item .item > a:not(.button) {
+ color: rgba(30, 30, 30, 0.6);
+}
+
+.ui.menu .dropdown .menu .item,
+.ui.menu .dropdown .menu .item a:not(.button) {
+ color: rgba(0, 0, 0, 0.75);
+}
+
+/* Hover */
+
+.ui.menu .item .menu a.item:hover,
+.ui.menu .item .menu .link.item:hover {
+ color: rgba(0, 0, 0, 0.85);
+}
+
+.ui.menu .dropdown .menu .item a:not(.button):hover {
+ color: rgba(0, 0, 0, 0.85);
+}
+
+/* Active */
+
+.ui.menu .active.item,
+.ui.menu .active.item a:not(.button) {
+ color: rgba(0, 0, 0, 0.85);
+ border-radius: 0px;
+}
+
+/*--------------
+ Items
+---------------*/
+
+.ui.menu .item {
+ position: relative;
+ display: inline-block;
+ padding: 0.83em 0.95em;
+ border-top: 0em solid rgba(0, 0, 0, 0);
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -moz-user-select: -moz-none;
+ -khtml-user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.ui.menu .menu {
+ margin: 0em;
+}
+
+.ui.menu .item.left,
+.ui.menu .menu.left {
+ float: right;
+}
+
+.ui.menu .item.right,
+.ui.menu .menu.right {
+ float: left;
+}
+
+/*--------------
+ Borders
+---------------*/
+
+.ui.menu .item:before {
+ position: absolute;
+ content: '';
+ top: 0%;
+ right: 0px;
+ width: 1px;
+ height: 100%;
+ background-image: -webkit-gradient(linear, right top, right bottom, from(rgba(0, 0, 0, 0.05)), color-stop(50%, rgba(0, 0, 0, 0.1)), to(rgba(0, 0, 0, 0.05)));
+ background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.1) 50%, rgba(0, 0, 0, 0.05) 100%);
+ background-image: -moz-linear-gradient(rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.1) 50%, rgba(0, 0, 0, 0.05) 100%);
+ background-image: linear-gradient(rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.1) 50%, rgba(0, 0, 0, 0.05) 100%);
+}
+
+.ui.menu > .menu:not(.right):first-child > .item:first-child:before,
+.ui.menu .item:first-child:before {
+ display: none;
+}
+
+.ui.menu .menu.right .item:before,
+.ui.menu .item.right:before {
+ left: auto;
+ right: 0px;
+}
+
+/*--------------
+ Text Content
+---------------*/
+
+.ui.menu .text.item > *,
+.ui.menu .item > p:only-child {
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+ line-height: 1.3;
+ color: rgba(0, 0, 0, 0.6);
+}
+
+.ui.menu .item > p:first-child {
+ margin-top: 0px;
+}
+
+.ui.menu .item > p:last-child {
+ margin-bottom: 0px;
+}
+
+/*--------------
+ Button
+---------------*/
+
+.ui.menu:not(.vertical) .item > .button {
+ position: relative;
+ top: -0.05em;
+ margin: -0.55em 0;
+ padding-bottom: 0.55em;
+ padding-top: 0.55em;
+ font-size: 0.875em;
+}
+
+/*--------------
+ Inputs
+---------------*/
+
+.ui.menu:not(.vertical) .item > .input {
+ margin-top: -0.85em;
+ margin-bottom: -0.85em;
+ padding-top: 0.3em;
+ padding-bottom: 0.3em;
+ width: 100%;
+ vertical-align: top;
+}
+
+.ui.menu .item > .input input {
+ padding-top: 0.35em;
+ padding-bottom: 0.35em;
+}
+
+.ui.vertical.menu .item > .input input {
+ margin: 0em;
+ padding-top: 0.63em;
+ padding-bottom: 0.63em;
+}
+
+/* Action Input */
+
+.ui.menu:not(.vertical) .item > .button.labeled > .icon {
+ padding-top: 0.6em;
+}
+
+.ui.menu:not(.vertical) .item .action.input > .button {
+ font-size: 0.8em;
+ padding: 0.55em 0.8em;
+}
+
+/* Resizes */
+
+.ui.small.menu:not(.vertical) .item > .input input {
+ padding-top: 0.4em;
+ padding-bottom: 0.4em;
+}
+
+.ui.large.menu:not(.vertical) .item > .input input {
+ top: -0.125em;
+ padding-bottom: 0.6em;
+ padding-top: 0.6em;
+}
+
+.ui.large.menu:not(.vertical) .item .action.input > .button {
+ font-size: 0.8em;
+ padding: 0.9em;
+}
+
+.ui.large.menu:not(.vertical) .item .action.input > .button > .icon {
+ padding-top: 0.8em;
+}
+
+/*--------------
+ Header
+---------------*/
+
+.ui.menu .header.item {
+ background-color: rgba(0, 0, 0, 0.04);
+ margin: 0em;
+}
+
+.ui.vertical.menu .header.item {
+ font-weight: bold;
+}
+
+/*--------------
+ Dropdowns
+---------------*/
+
+.ui.menu .dropdown .menu .item .icon {
+ float: none;
+ margin: 0em 0em 0em 0.75em;
+}
+
+.ui.menu .dropdown.item .menu {
+ right: 1px;
+ margin: 0px;
+ min-width: -webkit-calc(99%);
+ min-width: -moz-calc(99%);
+ min-width: calc(99%);
+ -webkit-box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.secondary.menu .dropdown.item .menu {
+ right: 0px;
+ min-width: 100%;
+}
+
+.ui.menu .pointing.dropdown.item .menu {
+ margin-top: 0.75em;
+}
+
+.ui.menu .simple.dropdown.item .menu {
+ margin: 0px !important;
+}
+
+.ui.menu .dropdown.item .menu .item {
+ width: 100%;
+ color: rgba(0, 0, 0, 0.75);
+}
+
+.ui.menu .dropdown.item .menu .active.item {
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.ui.menu .ui.dropdown .menu .item:before {
+ display: none;
+}
+
+/*--------------
+ Labels
+---------------*/
+
+.ui.menu .item > .label {
+ background-color: rgba(0, 0, 0, 0.35);
+ color: #FFFFFF;
+ margin: -0.15em 0.5em -0.15em 0em;
+ padding: 0.3em 0.8em;
+ vertical-align: baseline;
+}
+
+.ui.menu .item > .floating.label {
+ padding: 0.3em 0.8em;
+}
+
+/*--------------
+ Images
+---------------*/
+
+.ui.menu .item > img:only-child {
+ display: block;
+ max-width: 100%;
+ margin: 0em auto;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.link.menu .item:hover,
+.ui.menu .link.item:hover,
+.ui.menu a.item:hover,
+.ui.menu .ui.dropdown .menu .item:hover {
+ cursor: pointer;
+ background-color: rgba(0, 0, 0, 0.02);
+}
+
+.ui.menu .ui.dropdown.item.active {
+ background-color: rgba(0, 0, 0, 0.02);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border-bottom-left-radius: 0em;
+ border-bottom-right-radius: 0em;
+}
+
+/*--------------
+ Down
+---------------*/
+
+.ui.link.menu .item:active,
+.ui.menu .link.item:active,
+.ui.menu a.item:active,
+.ui.menu .ui.dropdown .menu .item:active {
+ background-color: rgba(0, 0, 0, 0.05);
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.menu .active.item {
+ background-color: rgba(0, 0, 0, 0.01);
+ color: rgba(0, 0, 0, 0.95);
+ -webkit-box-shadow: 0em 0.2em 0em inset;
+ box-shadow: 0em 0.2em 0em inset;
+}
+
+.ui.vertical.menu .active.item {
+ border-radius: 0em;
+ -webkit-box-shadow: 0.2em 0em 0em inset;
+ box-shadow: 0.2em 0em 0em inset;
+}
+
+.ui.vertical.menu > .active.item:first-child {
+ border-radius: 0.1875em 0em 0em 0em;
+}
+
+.ui.vertical.menu > .active.item:last-child {
+ border-radius: 0em 0em 0em 0.1875em;
+}
+
+.ui.vertical.menu > .active.item:only-child {
+ border-radius: 0.1875em 0em 0em 0.1875em;
+}
+
+.ui.vertical.menu .active.item .menu .active.item {
+ border-right: none;
+}
+
+.ui.vertical.menu .active.item .menu .active.item {
+ padding-right: 1.5rem;
+}
+
+.ui.vertical.menu .item .menu .active.item {
+ background-color: rgba(0, 0, 0, 0.03);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*--------------
+ Disabled
+---------------*/
+
+.ui.menu .item.disabled,
+.ui.menu .item.disabled:hover {
+ cursor: default;
+ color: rgba(0, 0, 0, 0.2);
+ background-color: transparent !important;
+}
+
+/*--------------------
+ Loading
+---------------------*/
+
+/* On Form */
+
+.ui.menu.loading {
+ position: relative;
+}
+
+.ui.menu.loading:after {
+ position: absolute;
+ top: 0%;
+ right: 0%;
+ content: '';
+ width: 100%;
+ height: 100%;
+ background: rgba(255, 255, 255, 0.8) url(../images/loader-large.gif) no-repeat 50% 50%;
+ visibility: visible;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Vertical
+---------------*/
+
+.ui.vertical.menu .item {
+ display: block;
+ height: auto !important;
+ border-top: none;
+ border-right: 0em solid rgba(0, 0, 0, 0);
+ border-left: none;
+}
+
+.ui.vertical.menu > .item:first-child {
+ border-radius: 0.1875em 0.1875em 0px 0px;
+}
+
+.ui.vertical.menu > .item:last-child {
+ border-radius: 0px 0px 0.1875em 0.1875em;
+}
+
+.ui.vertical.menu .item > .label {
+ float: left;
+ text-align: center;
+}
+
+.ui.vertical.menu .item > i.icon {
+ float: left;
+ width: 1.22em;
+ margin: 0em 0.5em 0em 0em;
+}
+
+.ui.vertical.menu .item > .label + i.icon {
+ float: none;
+ margin: 0em 0em 0em 0.25em;
+}
+
+/*--- Border ---*/
+
+.ui.vertical.menu .item:before {
+ position: absolute;
+ content: '';
+ top: 0%;
+ right: 0px;
+ width: 100%;
+ height: 1px;
+ background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.03) 0%, rgba(0, 0, 0, 0.1) 1.5em, rgba(0, 0, 0, 0.03) 100%);
+ background-image: -moz-linear-gradient(right, rgba(0, 0, 0, 0.03) 0%, rgba(0, 0, 0, 0.1) 1.5em, rgba(0, 0, 0, 0.03) 100%);
+ background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.03)), color-stop(1.5em, rgba(0, 0, 0, 0.1)), to(rgba(0, 0, 0, 0.03)));
+ background-image: linear-gradient(to left, rgba(0, 0, 0, 0.03) 0%, rgba(0, 0, 0, 0.1) 1.5em, rgba(0, 0, 0, 0.03) 100%);
+}
+
+.ui.vertical.menu .item:first-child:before {
+ background-image: none !important;
+}
+
+/*--- Dropdown ---*/
+
+.ui.vertical.menu .dropdown.item > i {
+ float: left;
+ content: "\f0da";
+}
+
+.ui.vertical.menu .dropdown.item .menu {
+ top: 0% !important;
+ right: 100%;
+ margin: 0px 1px 0px 0px;
+ -webkit-box-shadow: 0 0px 1px 1px #DDDDDD;
+ box-shadow: 0 0px 1px 1px #DDDDDD;
+}
+
+.ui.vertical.menu .dropdown.item.active {
+ border-top-left-radius: 0em;
+ border-bottom-left-radius: 0em;
+}
+
+.ui.vertical.menu .dropdown.item .menu .item {
+ font-size: 1rem;
+}
+
+.ui.vertical.menu .dropdown.item .menu .item i.icon {
+ margin-left: 0em;
+}
+
+.ui.vertical.menu .dropdown.item.active {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*--- Sub Menu ---*/
+
+.ui.vertical.menu .item > .menu {
+ margin: 0.5em -0.95em 0em;
+}
+
+.ui.vertical.menu .item > .menu > .item {
+ padding: 0.5rem 1.5rem;
+ font-size: 0.875em;
+}
+
+.ui.vertical.menu .item > .menu > .item:before {
+ display: none;
+}
+
+/*--------------
+ Tiered
+---------------*/
+
+.ui.tiered.menu > .sub.menu > .item {
+ color: rgba(0, 0, 0, 0.4);
+}
+
+.ui.tiered.menu > .menu > .item:hover {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.tiered.menu .item.active {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.tiered.menu > .menu .item.active:after {
+ position: absolute;
+ content: '';
+ margin-top: -1px;
+ top: 100%;
+ right: 0px;
+ width: 100%;
+ height: 2px;
+ background-color: #FBFBFB;
+}
+
+.ui.tiered.menu .sub.menu {
+ background-color: rgba(0, 0, 0, 0.01);
+ border-radius: 0em;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ color: #FFFFFF;
+}
+
+.ui.tiered.menu .sub.menu .item {
+ font-size: 0.875rem;
+}
+
+.ui.tiered.menu .sub.menu .item:before {
+ background-image: none;
+}
+
+.ui.tiered.menu .sub.menu .active.item {
+ padding-top: 0.83em;
+ background-color: transparent;
+ border-radius: 0 0 0 0;
+ border-top: medium none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ color: rgba(0, 0, 0, 0.7) !important;
+}
+
+.ui.tiered.menu .sub.menu .active.item:after {
+ display: none;
+}
+
+/* Inverted */
+
+.ui.inverted.tiered.menu > .menu > .item {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+.ui.inverted.tiered.menu .sub.menu {
+ background-color: rgba(0, 0, 0, 0.2);
+}
+
+.ui.inverted.tiered.menu .sub.menu .item {
+ color: rgba(255, 255, 255, 0.6);
+}
+
+.ui.inverted.tiered.menu > .menu > .item:hover {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.inverted.tiered.menu .active.item:after {
+ display: none;
+}
+
+.ui.inverted.tiered.menu > .sub.menu > .active.item,
+.ui.inverted.tiered.menu > .menu > .active.item {
+ color: #ffffff !important;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* Tiered pointing */
+
+.ui.pointing.tiered.menu > .menu > .item:after {
+ display: none;
+}
+
+.ui.pointing.tiered.menu > .sub.menu > .item:after {
+ display: block;
+}
+
+/*--------------
+ Tabular
+---------------*/
+
+.ui.tabular.menu {
+ background-color: transparent;
+ border-bottom: 1px solid #DCDDDE;
+ border-radius: 0em;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.ui.tabular.menu .item {
+ background-color: transparent;
+ border-right: 1px solid transparent;
+ border-left: 1px solid transparent;
+ border-top: 1px solid transparent;
+ padding-right: 1.4em;
+ padding-left: 1.4em;
+ color: rgba(0, 0, 0, 0.6);
+}
+
+.ui.tabular.menu .item:before {
+ display: none;
+}
+
+/* Hover */
+
+.ui.tabular.menu .item:hover {
+ background-color: transparent;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/* Active */
+
+.ui.tabular.menu .active.item {
+ position: relative;
+ background-color: #FFFFFF;
+ color: rgba(0, 0, 0, 0.8);
+ border-color: #DCDDDE;
+ font-weight: bold;
+ margin-bottom: -1px;
+ border-bottom: 1px solid #FFFFFF;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border-radius: 5px 5px 0 0;
+}
+
+/* Coupling with segment for attachment */
+
+.ui.attached.tabular.menu {
+ position: relative;
+ z-index: 2;
+}
+
+.ui.tabular.menu ~ .bottom.attached.segment {
+ margin: 1px 1px 0px 0px;
+}
+
+/*--------------
+ Pagination
+---------------*/
+
+.ui.pagination.menu {
+ margin: 0em;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.ui.pagination.menu .item {
+ min-width: 3em;
+ text-align: center;
+}
+
+.ui.pagination.menu .icon.item i.icon {
+ vertical-align: top;
+}
+
+.ui.pagination.menu.floated {
+ display: block;
+}
+
+/* active */
+
+.ui.pagination.menu .active.item {
+ border-top: none;
+ padding-top: 0.83em;
+ background-color: rgba(0, 0, 0, 0.05);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*--------------
+ Secondary
+---------------*/
+
+.ui.secondary.menu {
+ background-color: transparent;
+ border-radius: 0px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.secondary.menu > .menu > .item,
+.ui.secondary.menu > .item {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border: none;
+ height: auto !important;
+ margin: 0em 0.25em;
+ padding: 0.5em 1em;
+ border-radius: 0.3125em;
+}
+
+.ui.secondary.menu > .menu > .item:before,
+.ui.secondary.menu > .item:before {
+ display: none !important;
+}
+
+.ui.secondary.menu .item > .input input {
+ background-color: transparent;
+ border: none;
+}
+
+.ui.secondary.menu .link.item,
+.ui.secondary.menu a.item {
+ opacity: 0.8;
+ -webkit-transition: none;
+ -moz-transition: none;
+ transition: none;
+}
+
+.ui.secondary.menu .header.item {
+ border-left: 0.1em solid rgba(0, 0, 0, 0.1);
+ background-color: transparent;
+ border-radius: 0em;
+}
+
+/* hover */
+
+.ui.secondary.menu .link.item:hover,
+.ui.secondary.menu a.item:hover {
+ opacity: 1;
+}
+
+/* active */
+
+.ui.secondary.menu > .menu > .active.item,
+.ui.secondary.menu > .active.item {
+ background-color: rgba(0, 0, 0, 0.08);
+ opacity: 1;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.secondary.vertical.menu > .active.item {
+ border-radius: 0.3125em;
+}
+
+/* inverted */
+
+.ui.secondary.inverted.menu .link.item,
+.ui.secondary.inverted.menu a.item {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+.ui.secondary.inverted.menu .link.item:hover,
+.ui.secondary.inverted.menu a.item:hover {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.secondary.inverted.menu .active.item {
+ background-color: rgba(255, 255, 255, 0.1);
+}
+
+/* disable variations */
+
+.ui.secondary.item.menu > .item {
+ margin: 0em;
+}
+
+.ui.secondary.attached.menu {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*---------------------
+ Secondary Pointing
+-----------------------*/
+
+.ui.secondary.pointing.menu {
+ border-bottom: 3px solid rgba(0, 0, 0, 0.1);
+}
+
+.ui.secondary.pointing.menu > .menu > .item,
+.ui.secondary.pointing.menu > .item {
+ margin: 0em 0em -3px;
+ padding: 0.6em 0.95em;
+ border-bottom: 3px solid rgba(0, 0, 0, 0);
+ border-radius: 0em;
+ -webkit-transition: color 0.2s;
+ -moz-transition: color 0.2s;
+ transition: color 0.2s;
+}
+
+/* Item Types */
+
+.ui.secondary.pointing.menu .header.item {
+ margin-bottom: -3px;
+ background-color: transparent !important;
+ border-left-width: 0px !important;
+ font-weight: bold !important;
+ color: rgba(0, 0, 0, 0.8) !important;
+}
+
+.ui.secondary.pointing.menu .text.item {
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.ui.secondary.pointing.menu > .menu > .item:after,
+.ui.secondary.pointing.menu > .item:after {
+ display: none;
+}
+
+/* Hover */
+
+.ui.secondary.pointing.menu > .menu > .link.item:hover,
+.ui.secondary.pointing.menu > .link.item:hover,
+.ui.secondary.pointing.menu > .menu > a.item:hover,
+.ui.secondary.pointing.menu > a.item:hover {
+ background-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+/* Down */
+
+.ui.secondary.pointing.menu > .menu > .link.item:active,
+.ui.secondary.pointing.menu > .link.item:active,
+.ui.secondary.pointing.menu > .menu > a.item:active,
+.ui.secondary.pointing.menu > a.item:active {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.2);
+}
+
+/* Active */
+
+.ui.secondary.pointing.menu > .menu > .item.active,
+.ui.secondary.pointing.menu > .item.active {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.4);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*---------------------
+ Secondary Vertical
+-----------------------*/
+
+.ui.secondary.vertical.pointing.menu {
+ border: none;
+ border-left: 3px solid rgba(0, 0, 0, 0.1);
+}
+
+.ui.secondary.vertical.menu > .item {
+ border: none;
+ margin: 0em 0em 0.3em;
+ padding: 0.6em 0.8em;
+ border-radius: 0.1875em;
+}
+
+.ui.secondary.vertical.menu > .header.item {
+ border-radius: 0em;
+}
+
+.ui.secondary.vertical.pointing.menu > .item {
+ margin: 0em 0em 0em -3px;
+ border-bottom: none;
+ border-left: 3px solid transparent;
+ border-radius: 0em;
+}
+
+/* Hover */
+
+.ui.secondary.vertical.pointing.menu > .item:hover {
+ background-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+/* Down */
+
+.ui.secondary.vertical.pointing.menu > .item:active {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.2);
+}
+
+/* Active */
+
+.ui.secondary.vertical.pointing.menu > .item.active {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.4);
+ color: rgba(0, 0, 0, 0.85);
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.secondary.inverted.menu {
+ background-color: transparent;
+}
+
+.ui.secondary.inverted.pointing.menu {
+ border-bottom: 3px solid rgba(255, 255, 255, 0.1);
+}
+
+.ui.secondary.inverted.pointing.menu > .item {
+ color: rgba(255, 255, 255, 0.7);
+}
+
+.ui.secondary.inverted.pointing.menu > .header.item {
+ color: #FFFFFF !important;
+}
+
+/* Hover */
+
+.ui.secondary.inverted.pointing.menu > .menu > .item:hover,
+.ui.secondary.inverted.pointing.menu > .item:hover {
+ color: rgba(255, 255, 255, 0.85);
+}
+
+/* Down */
+
+.ui.secondary.inverted.pointing.menu > .menu > .item:active,
+.ui.secondary.inverted.pointing.menu > .item:active {
+ border-color: rgba(255, 255, 255, 0.4);
+}
+
+/* Active */
+
+.ui.secondary.inverted.pointing.menu > .menu > .item.active,
+.ui.secondary.inverted.pointing.menu > .item.active {
+ border-color: rgba(255, 255, 255, 0.8);
+ color: #ffffff;
+}
+
+/*---------------------
+ Inverted Vertical
+----------------------*/
+
+.ui.secondary.inverted.vertical.pointing.menu {
+ border-left: 3px solid rgba(255, 255, 255, 0.1);
+ border-bottom: none;
+}
+
+/*--------------
+ Text Menu
+---------------*/
+
+.ui.text.menu {
+ background-color: transparent;
+ margin: 1rem -1rem;
+ border-radius: 0px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.text.menu > .item {
+ opacity: 0.8;
+ margin: 0em 1em;
+ padding: 0em;
+ height: auto !important;
+ border-radius: 0px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ -webkit-transition: opacity 0.2s ease;
+ -moz-transition: opacity 0.2s ease;
+ transition: opacity 0.2s ease;
+}
+
+.ui.text.menu > .item:before {
+ display: none !important;
+}
+
+.ui.text.menu .header.item {
+ background-color: transparent;
+ opacity: 1;
+ color: rgba(50, 50, 50, 0.8);
+ font-size: 0.875rem;
+ padding: 0em;
+ text-transform: uppercase;
+ font-weight: bold;
+}
+
+/*--- fluid text ---*/
+
+.ui.text.item.menu .item {
+ margin: 0em;
+}
+
+/*--- vertical text ---*/
+
+.ui.vertical.text.menu {
+ margin: 1rem 0em;
+}
+
+.ui.vertical.text.menu:first-child {
+ margin-top: 0rem;
+}
+
+.ui.vertical.text.menu:last-child {
+ margin-bottom: 0rem;
+}
+
+.ui.vertical.text.menu .item {
+ float: right;
+ clear: right;
+ margin: 0.5em 0em;
+}
+
+.ui.vertical.text.menu .item > i.icon {
+ float: none;
+ margin: 0em 0em 0em 0.83em;
+}
+
+.ui.vertical.text.menu .header.item {
+ margin: 0.8em 0em;
+}
+
+/*--- hover ---*/
+
+.ui.text.menu .item:hover {
+ opacity: 1;
+ background-color: transparent;
+}
+
+/*--- active ---*/
+
+.ui.text.menu .active.item {
+ background-color: transparent;
+ padding: 0em;
+ border: none;
+ opacity: 1;
+ font-weight: bold;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* disable variations */
+
+.ui.text.pointing.menu .active.item:after {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.text.attached.menu {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.text.menu,
+.ui.inverted.text.menu .item,
+.ui.inverted.text.menu .item:hover,
+.ui.inverted.text.menu .item.active {
+ background-color: transparent;
+}
+
+/*--------------
+ Icon Only
+---------------*/
+
+.ui.icon.menu,
+.ui.vertical.icon.menu {
+ width: auto;
+ display: inline-block;
+ height: auto;
+}
+
+.ui.icon.menu > .item {
+ height: auto;
+ text-align: center;
+ color: rgba(60, 60, 60, 0.7);
+}
+
+.ui.icon.menu > .item > .icon {
+ display: block;
+ float: none !important;
+ opacity: 1;
+ margin: 0em auto !important;
+}
+
+.ui.icon.menu .icon:before {
+ opacity: 1;
+}
+
+/* Item Icon Only */
+
+.ui.menu .icon.item .icon {
+ margin: 0em;
+}
+
+.ui.vertical.icon.menu {
+ float: none;
+}
+
+/*--- inverted ---*/
+
+.ui.inverted.icon.menu .item {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.icon.menu .icon {
+ color: #ffffff;
+}
+
+/*--------------
+ Labeled Icon
+---------------*/
+
+.ui.labeled.icon.menu {
+ text-align: center;
+}
+
+.ui.labeled.icon.menu > .item > .icon {
+ display: block;
+ font-size: 1.5em !important;
+ margin: 0em auto 0.3em !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Colors
+---------------*/
+
+/*--- Light Colors ---*/
+
+.ui.menu .green.active.item,
+.ui.green.menu .active.item {
+ border-color: #A1CF64 !important;
+ color: #A1CF64 !important;
+}
+
+.ui.menu .red.active.item,
+.ui.red.menu .active.item {
+ border-color: #D95C5C !important;
+ color: #D95C5C !important;
+}
+
+.ui.menu .blue.active.item,
+.ui.blue.menu .active.item {
+ border-color: #6ECFF5 !important;
+ color: #6ECFF5 !important;
+}
+
+.ui.menu .purple.active.item,
+.ui.purple.menu .active.item {
+ border-color: #564F8A !important;
+ color: #564F8A !important;
+}
+
+.ui.menu .orange.active.item,
+.ui.orange.menu .active.item {
+ border-color: #F05940 !important;
+ color: #F05940 !important;
+}
+
+.ui.menu .teal.active.item,
+.ui.teal.menu .active.item {
+ border-color: #00B5AD !important;
+ color: #00B5AD !important;
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.inverted.menu {
+ background-color: #333333;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.menu .header.item {
+ margin: 0em;
+ background-color: rgba(0, 0, 0, 0.3);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.menu .item,
+.ui.inverted.menu .item > a {
+ color: #FFFFFF;
+}
+
+.ui.inverted.menu .item .item,
+.ui.inverted.menu .item .item > a {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.menu .dropdown .menu .item,
+.ui.inverted.menu .dropdown .menu .item a {
+ color: rgba(0, 0, 0, 0.75) !important;
+}
+
+.ui.inverted.menu .item.disabled,
+.ui.inverted.menu .item.disabled:hover {
+ color: rgba(255, 255, 255, 0.2);
+}
+
+/*--- Border ---*/
+
+.ui.inverted.menu .item:before {
+ background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+ background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+ background-image: -webkit-gradient(linear, right top, right bottom, from(rgba(255, 255, 255, 0.03)), color-stop(50%, rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0.03)));
+ background-image: linear-gradient(rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+}
+
+.ui.vertical.inverted.menu .item:before {
+ background-image: -webkit-linear-gradient(right, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+ background-image: -moz-linear-gradient(right, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+ background-image: -webkit-gradient(linear, right top, left top, from(rgba(255, 255, 255, 0.03)), color-stop(50%, rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0.03)));
+ background-image: linear-gradient(to left, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+}
+
+/*--- Hover ---*/
+
+.ui.link.inverted.menu .item:hover,
+.ui.inverted.menu .link.item:hover,
+.ui.inverted.menu a.item:hover,
+.ui.inverted.menu .dropdown.item:hover {
+ background-color: rgba(255, 255, 255, 0.1);
+}
+
+.ui.inverted.menu a.item:hover,
+.ui.inverted.menu .item > a:hover,
+.ui.inverted.menu .item .menu a.item:hover,
+.ui.inverted.menu .item .menu .link.item:hover {
+ color: #ffffff;
+}
+
+/*--- Down ---*/
+
+.ui.inverted.menu a.item:active,
+.ui.inverted.menu .dropdown.item:active,
+.ui.inverted.menu .link.item:active,
+.ui.inverted.menu a.item:active {
+ background-color: rgba(255, 255, 255, 0.15);
+}
+
+/*--- Active ---*/
+
+.ui.inverted.menu .active.item {
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+ background-color: rgba(255, 255, 255, 0.2);
+}
+
+.ui.inverted.menu .active.item,
+.ui.inverted.menu .active.item a {
+ color: #ffffff !important;
+}
+
+.ui.inverted.vertical.menu .item .menu .active.item {
+ background-color: rgba(255, 255, 255, 0.2);
+ color: #ffffff;
+}
+
+/*--- Pointers ---*/
+
+.ui.inverted.pointing.menu .active.item:after {
+ background-color: #5B5B5B;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.pointing.menu .active.item:hover:after {
+ background-color: #4A4A4A;
+}
+
+/*--------------
+ Selection
+---------------*/
+
+.ui.selection.menu > .item {
+ color: rgba(0, 0, 0, 0.4);
+}
+
+.ui.selection.menu > .item:hover {
+ color: rgba(0, 0, 0, 0.6);
+}
+
+.ui.selection.menu > .item.active {
+ color: rgba(0, 0, 0, 0.85);
+}
+
+.ui.inverted.selection.menu > .item {
+ color: rgba(255, 255, 255, 0.4);
+}
+
+.ui.inverted.selection.menu > .item:hover {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.inverted.selection.menu > .item.active {
+ color: #FFFFFF;
+}
+
+/*--------------
+ Floated
+---------------*/
+
+.ui.floated.menu {
+ float: right;
+ margin: 0rem 0rem 0rem 0.5rem;
+}
+
+.ui.right.floated.menu {
+ float: left;
+ margin: 0rem 0.5rem 0rem 0rem;
+}
+
+/*--------------
+ Inverted Colors
+---------------*/
+
+/*--- Light Colors ---*/
+
+.ui.grey.menu {
+ background-color: #F0F0F0;
+}
+
+/*--- Inverted Colors ---*/
+
+.ui.inverted.green.menu {
+ background-color: #A1CF64;
+}
+
+.ui.inverted.green.pointing.menu .active.item:after {
+ background-color: #A1CF64;
+}
+
+.ui.inverted.red.menu {
+ background-color: #D95C5C;
+}
+
+.ui.inverted.red.pointing.menu .active.item:after {
+ background-color: #F16883;
+}
+
+.ui.inverted.blue.menu {
+ background-color: #6ECFF5;
+}
+
+.ui.inverted.blue.pointing.menu .active.item:after {
+ background-color: #6ECFF5;
+}
+
+.ui.inverted.purple.menu {
+ background-color: #564F8A;
+}
+
+.ui.inverted.purple.pointing.menu .active.item:after {
+ background-color: #564F8A;
+}
+
+.ui.inverted.orange.menu {
+ background-color: #F05940;
+}
+
+.ui.inverted.orange.pointing.menu .active.item:after {
+ background-color: #F05940;
+}
+
+.ui.inverted.teal.menu {
+ background-color: #00B5AD;
+}
+
+.ui.inverted.teal.pointing.menu .active.item:after {
+ background-color: #00B5AD;
+}
+
+/*--------------
+ Fitted
+---------------*/
+
+.ui.fitted.menu .item,
+.ui.fitted.menu .item .menu .item,
+.ui.menu .fitted.item {
+ padding: 0em;
+}
+
+.ui.horizontally.fitted.menu .item,
+.ui.horizontally.fitted.menu .item .menu .item,
+.ui.menu .horizontally.fitted.item {
+ padding-top: 0.83em;
+ padding-bottom: 0.83em;
+}
+
+.ui.vertically.fitted.menu .item,
+.ui.vertically.fitted.menu .item .menu .item,
+.ui.menu .vertically.fitted.item {
+ padding-right: 0.95em;
+ padding-left: 0.95em;
+}
+
+/*--------------
+ Borderless
+---------------*/
+
+.ui.borderless.menu .item:before,
+.ui.borderless.menu .item .menu .item:before,
+.ui.menu .borderless.item:before {
+ background-image: none;
+}
+
+/*-------------------
+ Compact
+--------------------*/
+
+.ui.compact.menu {
+ display: inline-block;
+ margin: 0em;
+ vertical-align: middle;
+}
+
+.ui.compact.vertical.menu {
+ width: auto !important;
+}
+
+.ui.compact.vertical.menu .item:last-child::before {
+ display: block;
+}
+
+/*-------------------
+ Fluid
+--------------------*/
+
+.ui.menu.fluid,
+.ui.vertical.menu.fluid {
+ display: block;
+ width: 100% !important;
+}
+
+/*-------------------
+ Evenly Sized
+--------------------*/
+
+.ui.item.menu,
+.ui.item.menu .item {
+ width: 100%;
+ padding-right: 0px !important;
+ padding-left: 0px !important;
+ text-align: center;
+}
+
+.ui.menu.two.item .item {
+ width: 50%;
+}
+
+.ui.menu.three.item .item {
+ width: 33.333%;
+}
+
+.ui.menu.four.item .item {
+ width: 25%;
+}
+
+.ui.menu.five.item .item {
+ width: 20%;
+}
+
+.ui.menu.six.item .item {
+ width: 16.666%;
+}
+
+.ui.menu.seven.item .item {
+ width: 14.285%;
+}
+
+.ui.menu.eight.item .item {
+ width: 12.500%;
+}
+
+.ui.menu.nine.item .item {
+ width: 11.11%;
+}
+
+.ui.menu.ten.item .item {
+ width: 10.0%;
+}
+
+.ui.menu.eleven.item .item {
+ width: 9.09%;
+}
+
+.ui.menu.twelve.item .item {
+ width: 8.333%;
+}
+
+/*--------------
+ Fixed
+---------------*/
+
+.ui.menu.fixed {
+ position: fixed;
+ z-index: 999;
+ margin: 0em;
+ border: none;
+ width: 100%;
+}
+
+.ui.menu.fixed,
+.ui.menu.fixed .item:first-child,
+.ui.menu.fixed .item:last-child {
+ border-radius: !important 0px;
+}
+
+.ui.menu.fixed.top {
+ top: 0px;
+ right: 0px;
+ left: auto;
+ bottom: auto;
+}
+
+.ui.menu.fixed.right {
+ top: 0px;
+ left: 0px;
+ right: auto;
+ bottom: auto;
+ width: auto;
+ height: 100%;
+}
+
+.ui.menu.fixed.bottom {
+ bottom: 0px;
+ right: 0px;
+ top: auto;
+ left: auto;
+}
+
+.ui.menu.fixed.left {
+ top: 0px;
+ right: 0px;
+ left: auto;
+ bottom: auto;
+ width: auto;
+ height: 100%;
+}
+
+/* Coupling with Grid */
+
+.ui.fixed.menu + .ui.grid {
+ padding-top: 2.75rem;
+}
+
+/*-------------------
+ Pointing
+--------------------*/
+
+.ui.pointing.menu .active.item:after {
+ position: absolute;
+ bottom: -0.3em;
+ right: 50%;
+ content: "";
+ margin-right: -0.3em;
+ width: 0.6em;
+ height: 0.6em;
+ border: none;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+ border-left: 1px solid rgba(0, 0, 0, 0.1);
+ background-image: none;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ z-index: 2;
+ -webkit-transition: background 0.2s ease;
+ -moz-transition: background 0.2s ease;
+ transition: background 0.2s ease;
+}
+
+/* Don't double up pointers */
+
+.ui.pointing.menu .active.item .menu .active.item:after {
+ display: none;
+}
+
+.ui.vertical.pointing.menu .active.item:after {
+ position: absolute;
+ top: 50%;
+ margin-top: -0.3em;
+ left: -0.4em;
+ bottom: auto;
+ right: auto;
+ border: none;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ border-left: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* Colors */
+
+.ui.pointing.menu .active.item:after {
+ background-color: #FCFCFC;
+}
+
+.ui.pointing.menu .active.item:hover:after {
+ background-color: #FAFAFA;
+}
+
+.ui.vertical.pointing.menu .menu .active.item:after {
+ background-color: #F4F4F4;
+}
+
+.ui.pointing.menu a.active.item:active:after {
+ background-color: #F0F0F0;
+}
+
+/*--------------
+ Attached
+---------------*/
+
+.ui.menu.attached {
+ margin: 0rem;
+ border-radius: 0px;
+ /* avoid rgba multiplying */
+ -webkit-box-shadow: 0px 0px 0px 1px #DDDDDD;
+ box-shadow: 0px 0px 0px 1px #DDDDDD;
+}
+
+.ui.top.attached.menu {
+ border-radius: 0.1875em 0.1875em 0px 0px;
+}
+
+.ui.menu.bottom.attached {
+ border-radius: 0px 0px 0.1875em 0.1875em;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.small.menu .item {
+ font-size: 0.875rem;
+}
+
+.ui.small.vertical.menu {
+ width: 13rem;
+}
+
+.ui.menu .item {
+ font-size: 1rem;
+}
+
+.ui.vertical.menu {
+ width: 15rem;
+}
+
+.ui.large.menu .item {
+ font-size: 1.125rem;
+}
+
+.ui.large.menu .item .item {
+ font-size: 0.875rem;
+}
+
+.ui.large.menu .dropdown .item {
+ font-size: 1rem;
+}
+
+.ui.large.vertical.menu {
+ width: 18rem;
+}
+/*
+ * # Semantic - Message
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Message
+*******************************/
+
+.ui.message {
+ position: relative;
+ min-height: 18px;
+ margin: 1em 0em;
+ height: auto;
+ background-color: #EFEFEF;
+ padding: 1em;
+ line-height: 1.33;
+ color: rgba(0, 0, 0, 0.6);
+ -webkit-transition: opacity 0.1s ease, color 0.1s ease, background 0.1s ease, -webkit-box-shadow 0.1s ease;
+ -moz-transition: opacity 0.1s ease, color 0.1s ease, background 0.1s ease, box-shadow 0.1s ease;
+ transition: opacity 0.1s ease, color 0.1s ease, background 0.1s ease, box-shadow 0.1s ease;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ border-radius: 0.325em 0.325em 0.325em 0.325em;
+}
+
+.ui.message:first-child {
+ margin-top: 0em;
+}
+
+.ui.message:last-child {
+ margin-bottom: 0em;
+}
+
+/*--------------
+ Content
+---------------*/
+
+/* block with headers */
+
+.ui.message .header {
+ margin: 0em;
+ font-size: 1.33em;
+ font-weight: bold;
+}
+
+/* block with paragraphs */
+
+.ui.message p {
+ opacity: 0.85;
+ margin: 1em 0em;
+}
+
+.ui.message p:first-child {
+ margin-top: 0em;
+}
+
+.ui.message p:last-child {
+ margin-bottom: 0em;
+}
+
+.ui.message .header + p {
+ margin-top: 0.3em;
+}
+
+.ui.message > :first-child {
+ margin-top: 0em;
+}
+
+.ui.message > :last-child {
+ margin-bottom: 0em;
+}
+
+/* block with child list */
+
+.ui.message ul.list {
+ opacity: 0.85;
+ list-style-position: inside;
+ margin: 0.2em 0em;
+ padding: 0em;
+}
+
+.ui.message ul.list li {
+ position: relative;
+ list-style-type: none;
+ margin: 0em 1em 0.3em 0em;
+ padding: 0em;
+}
+
+.ui.message ul.list li:before {
+ position: absolute;
+ content: '\2022';
+ top: -0.05em;
+ right: -0.8em;
+ height: 100%;
+ vertical-align: baseline;
+ opacity: 0.5;
+}
+
+.ui.message ul.list li:first-child {
+ margin-top: 0em;
+}
+
+/* dismissable block */
+
+.ui.message > .close.icon {
+ cursor: pointer;
+ position: absolute;
+ top: 1em;
+ left: 0.5em;
+ opacity: 0.7;
+ -webkit-transition: opacity 0.1s linear;
+ -moz-transition: opacity 0.1s linear;
+ transition: opacity 0.1s linear;
+}
+
+.ui.message > .close.icon:hover {
+ opacity: 1;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.message.visible,
+.ui.header.visible {
+ display: block !important;
+}
+
+.ui.message.hidden,
+.ui.header.hidden {
+ display: none;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Compact
+---------------*/
+
+.ui.compact.message {
+ display: inline-block;
+}
+
+/*--------------
+ Attached
+---------------*/
+
+.ui.attached.message {
+ margin-right: -1px;
+ margin-left: -1px;
+ margin-bottom: -1px;
+ border-radius: 0.325em 0.325em 0em 0em;
+ -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.attached + .ui.attached.message:not(.top):not(.bottom) {
+ margin-top: -1px;
+ border-radius: 0em;
+}
+
+.ui.bottom.attached.message {
+ margin-top: -1px;
+ border-radius: 0em 0em 0.325em 0.325em;
+}
+
+.ui.bottom.attached.message:not(:last-child) {
+ margin-bottom: 1em;
+}
+
+.ui.attached.icon.message {
+ display: block;
+ width: auto;
+}
+
+/*--------------
+ Icon
+---------------*/
+
+.ui.icon.message {
+ display: table;
+ width: 100%;
+}
+
+.ui.icon.message > .icon:not(.close) {
+ display: table-cell;
+ vertical-align: middle;
+ font-size: 3.8em;
+ opacity: 0.5;
+}
+
+.ui.icon.message > .icon + .content {
+ padding-right: 1em;
+}
+
+.ui.icon.message > .content {
+ display: table-cell;
+ vertical-align: middle;
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.inverted.message {
+ background-color: rgba(255, 255, 255, 0.05);
+ color: rgba(255, 255, 255, 0.95);
+}
+
+/*--------------
+ Floating
+---------------*/
+
+.ui.floating.message {
+ -webkit-box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.1), 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset;
+ box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.1), 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset;
+}
+
+/*--------------
+ Colors
+---------------*/
+
+.ui.black.message {
+ background-color: #333333;
+ color: rgba(255, 255, 255, 0.95);
+}
+
+/*--------------
+ Types
+---------------*/
+
+.ui.blue.message,
+.ui.info.message {
+ background-color: #E6F4F9;
+ color: #4D8796;
+}
+
+/* Green Text Block */
+
+.ui.green.message {
+ background-color: #DEFCD5;
+ color: #52A954;
+}
+
+/* Yellow Text Block */
+
+.ui.yellow.message,
+.ui.warning.message {
+ background-color: #F6F3D5;
+ color: #96904D;
+}
+
+/* Red Text Block */
+
+.ui.red.message {
+ background-color: #F1D7D7;
+ color: #A95252;
+}
+
+/* Success Text Block */
+
+.ui.success.message,
+.ui.positive.message {
+ background-color: #DEFCD5;
+ color: #52A954;
+}
+
+/* Error Text Block */
+
+.ui.error.message,
+.ui.negative.message {
+ background-color: #F1D7D7;
+ color: #A95252;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.small.message {
+ font-size: 0.875em;
+}
+
+.ui.message {
+ font-size: 1em;
+}
+
+.ui.large.message {
+ font-size: 1.125em;
+}
+
+.ui.huge.message {
+ font-size: 1.5em;
+}
+
+.ui.massive.message {
+ font-size: 2em;
+}
+/*
+ * # Semantic - Table
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Table
+*******************************/
+
+/* Prototype */
+
+.ui.table {
+ width: 100%;
+ border-collapse: collapse;
+}
+
+/* Table Content */
+
+.ui.table th,
+.ui.table tr,
+.ui.table td {
+ border-collapse: collapse;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-transition: all 0.1s ease-out;
+ -moz-transition: all 0.1s ease-out;
+ transition: all 0.1s ease-out;
+}
+
+/* Headers */
+
+.ui.table thead {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.03);
+}
+
+.ui.table tfoot th {
+ background-color: rgba(0, 0, 0, 0.03);
+}
+
+.ui.table th {
+ cursor: auto;
+ background-color: rgba(0, 0, 0, 0.05);
+ text-align: right;
+ color: rgba(0, 0, 0, 0.8);
+ padding: 0.5em 0.7em;
+ vertical-align: middle;
+}
+
+.ui.table thead th:first-child {
+ border-radius: 0px 5px 0px 0px;
+}
+
+.ui.table thead th:last-child {
+ border-radius: 5px 0px 0px 0px;
+}
+
+.ui.table tfoot th:first-child {
+ border-radius: 0px 0px 5px 0px;
+}
+
+.ui.table tfoot th:last-child {
+ border-radius: 0px 0px 0px 5px;
+}
+
+.ui.table tfoot th:only-child {
+ border-radius: 0px 0px 5px 5px;
+}
+
+/* Table Cells */
+
+.ui.table td {
+ padding: 0.40em 0.7em;
+ vertical-align: middle;
+}
+
+/* Footer */
+
+.ui.table tfoot {
+ border-top: 1px solid rgba(0, 0, 0, 0.03);
+}
+
+.ui.table tfoot th {
+ font-weight: normal;
+ font-style: italic;
+}
+
+/* Table Striping */
+
+.ui.table tbody tr:nth-child(2n) {
+ background-color: rgba(0, 0, 50, 0.02);
+}
+
+/* Icons */
+
+.ui.table > .icon {
+ vertical-align: baseline;
+}
+
+.ui.table > .icon:only-child {
+ margin: 0em;
+}
+
+/* Table Segment */
+
+.ui.table.segment:after {
+ display: none;
+}
+
+.ui.table.segment.stacked:after {
+ display: block;
+}
+
+/* Responsive */
+
+@media only screen and (max-width: 768px) {
+ .ui.table {
+ display: block;
+ padding: 0em;
+ }
+
+ .ui.table thead,
+ .ui.table tfoot {
+ display: none;
+ }
+
+ .ui.table tbody {
+ display: block;
+ }
+
+ .ui.table tr {
+ display: block;
+ }
+
+ .ui.table tr > td {
+ width: 100% !important;
+ display: block;
+ border: none !important;
+ padding: 0.25em 0.75em;
+ -webkit-box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05) !important;
+ box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05) !important;
+ }
+
+ .ui.table td:first-child {
+ font-weight: bold;
+ padding-top: 1em;
+ }
+
+ .ui.table td:last-child {
+ -webkit-box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1) inset !important;
+ box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1) inset !important;
+ padding-bottom: 1em;
+ }
+
+ /* Clear BG Colors */
+
+ .ui.table tr > td.warning,
+ .ui.table tr > td.error,
+ .ui.table tr > td.active,
+ .ui.table tr > td.positive,
+ .ui.table tr > td.negative {
+ background-color: transparent !important;
+ }
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+/* Sortable */
+
+.ui.sortable.table th.disabled:hover {
+ cursor: auto;
+ text-align: right;
+ font-weight: bold;
+ color: #333333;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.sortable.table thead th:hover {
+ background-color: rgba(0, 0, 0, 0.13);
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/* Inverted Sortable */
+
+.ui.inverted.sortable.table thead th:hover {
+ background-color: rgba(255, 255, 255, 0.13);
+ color: #ffffff;
+}
+
+/*--------------
+ Positive
+---------------*/
+
+.ui.table tr.positive,
+.ui.table td.positive {
+ -webkit-box-shadow: 2px 0px 0px #119000 inset;
+ box-shadow: 2px 0px 0px #119000 inset;
+}
+
+.ui.table tr.positive td,
+.ui.table td.positive {
+ background-color: #F2F8F0 !important;
+ color: #119000 !important;
+}
+
+.ui.celled.table tr.positive:hover td,
+.ui.celled.table tr:hover td.positive,
+.ui.table tr.positive:hover td,
+.ui.table td:hover.positive,
+.ui.table th:hover.positive {
+ background-color: #ECF5E9 !important;
+ color: #119000 !important;
+}
+
+/*--------------
+ Negative
+---------------*/
+
+.ui.table tr.negative,
+.ui.table td.negative {
+ -webkit-box-shadow: 2px 0px 0px #CD2929 inset;
+ box-shadow: 2px 0px 0px #CD2929 inset;
+}
+
+.ui.table tr.negative td,
+.ui.table td.negative {
+ background-color: #F9F4F4;
+ color: #CD2929 !important;
+}
+
+.ui.celled.table tr.negative:hover td,
+.ui.celled.table tr:hover td.negative,
+.ui.table tr.negative:hover td,
+.ui.table td:hover.negative,
+.ui.table th:hover.negative {
+ background-color: #F2E8E8;
+ color: #CD2929;
+}
+
+/*--------------
+ Error
+---------------*/
+
+.ui.table tr.error,
+.ui.table td.error {
+ -webkit-box-shadow: 2px 0px 0px #CD2929 inset;
+ box-shadow: 2px 0px 0px #CD2929 inset;
+}
+
+.ui.table tr.error td,
+.ui.table td.error,
+.ui.table th.error {
+ background-color: #F9F4F4;
+ color: #CD2929;
+}
+
+.ui.celled.table tr.error:hover td,
+.ui.celled.table tr:hover td.error,
+.ui.table tr.error:hover td,
+.ui.table td:hover.error,
+.ui.table th:hover.error {
+ background-color: #F2E8E8;
+ color: #CD2929;
+}
+
+/*--------------
+ Warning
+---------------*/
+
+.ui.table tr.warning,
+.ui.table td.warning {
+ -webkit-box-shadow: 2px 0px 0px #7D6C00 inset;
+ box-shadow: 2px 0px 0px #7D6C00 inset;
+}
+
+.ui.table tr.warning td,
+.ui.table td.warning,
+.ui.table th.warning {
+ background-color: #FBF6E9;
+ color: #7D6C00;
+}
+
+.ui.celled.table tr.warning:hover td,
+.ui.celled.table tr:hover td.warning,
+.ui.table tr.warning:hover td,
+.ui.table td:hover.warning,
+.ui.table th:hover.warning {
+ background-color: #F3EDDC;
+ color: #7D6C00;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.table tr.active,
+.ui.table td.active {
+ -webkit-box-shadow: 2px 0px 0px rgba(50, 50, 50, 0.9) inset;
+ box-shadow: 2px 0px 0px rgba(50, 50, 50, 0.9) inset;
+}
+
+.ui.table tr.active td,
+.ui.table tr td.active {
+ background-color: #E0E0E0;
+ color: rgba(50, 50, 50, 0.9);
+ /* border-color: rgba(0, 0, 0, 0.15) !important; */
+}
+
+/*--------------
+ Disabled
+---------------*/
+
+.ui.table tr.disabled td,
+.ui.table tr td.disabled,
+.ui.table tr.disabled:hover td,
+.ui.table tr:hover td.disabled {
+ color: rgba(150, 150, 150, 0.3);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Column Count
+---------------*/
+
+.ui.two.column.table td {
+ width: 50%;
+}
+
+.ui.three.column.table td {
+ width: 33.3333%;
+}
+
+.ui.four.column.table td {
+ width: 25%;
+}
+
+.ui.five.column.table td {
+ width: 20%;
+}
+
+.ui.six.column.table td {
+ width: 16.66667%;
+}
+
+.ui.seven.column.table td {
+ width: 14.2857%;
+}
+
+.ui.eight.column.table td {
+ width: 12.5%;
+}
+
+.ui.nine.column.table td {
+ width: 11.1111%;
+}
+
+.ui.ten.column.table td {
+ width: 10%;
+}
+
+.ui.eleven.column.table td {
+ width: 9.0909%;
+}
+
+.ui.twelve.column.table td {
+ width: 8.3333%;
+}
+
+.ui.thirteen.column.table td {
+ width: 7.6923%;
+}
+
+.ui.fourteen.column.table td {
+ width: 7.1428%;
+}
+
+.ui.fifteen.column.table td {
+ width: 6.6666%;
+}
+
+.ui.sixteen.column.table td {
+ width: 6.25%;
+}
+
+/* Column Width */
+
+.ui.table th.one.wide,
+.ui.table td.one.wide {
+ width: 6.25%;
+}
+
+.ui.table th.two.wide,
+.ui.table td.two.wide {
+ width: 12.5%;
+}
+
+.ui.table th.three.wide,
+.ui.table td.three.wide {
+ width: 18.75%;
+}
+
+.ui.table th.four.wide,
+.ui.table td.four.wide {
+ width: 25%;
+}
+
+.ui.table th.five.wide,
+.ui.table td.five.wide {
+ width: 31.25%;
+}
+
+.ui.table th.six.wide,
+.ui.table td.six.wide {
+ width: 37.5%;
+}
+
+.ui.table th.seven.wide,
+.ui.table td.seven.wide {
+ width: 43.75%;
+}
+
+.ui.table th.eight.wide,
+.ui.table td.eight.wide {
+ width: 50%;
+}
+
+.ui.table th.nine.wide,
+.ui.table td.nine.wide {
+ width: 56.25%;
+}
+
+.ui.table th.ten.wide,
+.ui.table td.ten.wide {
+ width: 62.5%;
+}
+
+.ui.table th.eleven.wide,
+.ui.table td.eleven.wide {
+ width: 68.75%;
+}
+
+.ui.table th.twelve.wide,
+.ui.table td.twelve.wide {
+ width: 75%;
+}
+
+.ui.table th.thirteen.wide,
+.ui.table td.thirteen.wide {
+ width: 81.25%;
+}
+
+.ui.table th.fourteen.wide,
+.ui.table td.fourteen.wide {
+ width: 87.5%;
+}
+
+.ui.table th.fifteen.wide,
+.ui.table td.fifteen.wide {
+ width: 93.75%;
+}
+
+.ui.table th.sixteen.wide,
+.ui.table td.sixteen.wide {
+ width: 100%;
+}
+
+/*--------------
+ Celled
+---------------*/
+
+.ui.celled.table {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.celled.table tbody tr,
+.ui.celled.table tfoot tr {
+ border: none;
+}
+
+.ui.celled.table th,
+.ui.celled.table td {
+ border: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* Coupling with segment */
+
+.ui.celled.table.segment th:first-child,
+.ui.celled.table.segment td:first-child {
+ border-right: none;
+}
+
+.ui.celled.table.segment th:last-child,
+.ui.celled.table.segment td:last-child {
+ border-left: none;
+}
+
+/*--------------
+ Sortable
+---------------*/
+
+.ui.sortable.table thead th {
+ cursor: pointer;
+ white-space: nowrap;
+}
+
+.ui.sortable.table thead th.sorted,
+.ui.sortable.table thead th.sorted:hover {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.ui.sortable.table thead th:after {
+ display: inline-block;
+ content: '';
+ width: 1em;
+ opacity: 0.8;
+ margin: 0em 0.5em 0em 0em;
+ font-family: 'Icons';
+ font-style: normal;
+ font-weight: normal;
+ text-decoration: inherit;
+}
+
+.ui.sortable.table thead th.ascending:after {
+ content: '\25b4';
+}
+
+.ui.sortable.table thead th.descending:after {
+ content: '\25be';
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+/* Text Color */
+
+.ui.inverted.table td {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.inverted.table th {
+ background-color: rgba(0, 0, 0, 0.15);
+ color: rgba(255, 255, 255, 0.9);
+}
+
+/* Stripes */
+
+.ui.inverted.table tbody tr:nth-child(2n) {
+ background-color: rgba(255, 255, 255, 0.06);
+}
+
+/*--------------
+ Definition
+---------------*/
+
+.ui.definition.table td:first-child {
+ font-weight: bold;
+}
+
+/*--------------
+ Collapsing
+---------------*/
+
+.ui.collapsing.table {
+ width: auto;
+}
+
+/*--------------
+ Basic
+---------------*/
+
+.ui.basic.table th {
+ background-color: transparent;
+ padding: 0.5em;
+}
+
+.ui.basic.table tbody tr {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.03);
+}
+
+.ui.basic.table td {
+ padding: 0.8em 0.5em;
+}
+
+.ui.basic.table tbody tr:nth-child(2n) {
+ background-color: transparent !important;
+}
+
+/*--------------
+ Padded
+---------------*/
+
+.ui.padded.table th,
+.ui.padded.table td {
+ padding: 0.8em 1em;
+}
+
+.ui.compact.table th {
+ padding: 0.3em 0.5em;
+}
+
+.ui.compact.table td {
+ padding: 0.2em 0.5em;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+/* Small */
+
+.ui.small.table {
+ font-size: 0.875em;
+}
+
+/* Standard */
+
+.ui.table {
+ font-size: 1em;
+}
+
+/* Large */
+
+.ui.large.table {
+ font-size: 1.1em;
+}
+/*
+ * # Semantic - basic.Icon (Basic)
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Basic Icon
+*******************************/
+
+@font-face {
+ font-family: 'Basic Icons';
+ src: url(../fonts/basic.icons.eot);
+ src: url(../fonts/basic.icons.eot?#iefix) format('embedded-opentype'), url(../fonts/basic.icons.svg#basic.icons) format('svg'), url(../fonts/basic.icons.woff) format('woff'), url(../fonts/basic.icons.ttf) format('truetype');
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-decoration: inherit;
+ text-transform: none;
+}
+
+i.basic.icon {
+ display: inline-block;
+ opacity: 0.75;
+ margin: 0em 0em 0em 0.25em;
+ width: 1.23em;
+ height: 1em;
+ font-family: 'Basic Icons';
+ font-style: normal;
+ line-height: 1;
+ font-weight: normal;
+ text-decoration: inherit;
+ text-align: center;
+ speak: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-font-smoothing: antialiased;
+ -moz-font-smoothing: antialiased;
+ font-smoothing: antialiased;
+}
+
+/* basic.icons available */
+
+i.basic.icon.circle.attention:before {
+ content: '\2757';
+}
+
+/* '❗' */
+
+i.basic.icon.circle.help:before {
+ content: '\e704';
+}
+
+/* '' */
+
+i.basic.icon.circle.info:before {
+ content: '\e705';
+}
+
+/* '' */
+
+i.basic.icon.add:before {
+ content: '\2795';
+}
+
+/* '➕' */
+
+i.basic.icon.chart:before {
+ content: '📈';
+}
+
+/* '\1f4c8' */
+
+i.basic.icon.chart.bar:before {
+ content: '📊';
+}
+
+/* '\1f4ca' */
+
+i.basic.icon.chart.pie:before {
+ content: '\e7a2';
+}
+
+/* '' */
+
+i.basic.icon.resize.full:before {
+ content: '\e744';
+}
+
+/* '' */
+
+i.basic.icon.resize.horizontal:before {
+ content: '\2b0d';
+}
+
+/* '⬍' */
+
+i.basic.icon.resize.small:before {
+ content: '\e746';
+}
+
+/* '' */
+
+i.basic.icon.resize.vertical:before {
+ content: '\2b0c';
+}
+
+/* '⬌' */
+
+i.basic.icon.down:before {
+ content: '\2193';
+}
+
+/* '↓' */
+
+i.basic.icon.down.triangle:before {
+ content: '\25be';
+}
+
+/* '▾' */
+
+i.basic.icon.down.arrow:before {
+ content: '\e75c';
+}
+
+/* '' */
+
+i.basic.icon.left:before {
+ content: '\2190';
+}
+
+/* '←' */
+
+i.basic.icon.left.triangle:before {
+ content: '\25c2';
+}
+
+/* '◂' */
+
+i.basic.icon.left.arrow:before {
+ content: '\e75d';
+}
+
+/* '' */
+
+i.basic.icon.right:before {
+ content: '\2192';
+}
+
+/* '→' */
+
+i.basic.icon.right.triangle:before {
+ content: '\25b8';
+}
+
+/* '▸' */
+
+i.basic.icon.right.arrow:before {
+ content: '\e75e';
+}
+
+/* '' */
+
+i.basic.icon.up:before {
+ content: '\2191';
+}
+
+/* '↑' */
+
+i.basic.icon.up.triangle:before {
+ content: '\25b4';
+}
+
+/* '▴' */
+
+i.basic.icon.up.arrow:before {
+ content: '\e75f';
+}
+
+/* '' */
+
+i.basic.icon.folder:before {
+ content: '\e810';
+}
+
+/* '' */
+
+i.basic.icon.open.folder:before {
+ content: '📂';
+}
+
+/* '\1f4c2' */
+
+i.basic.icon.globe:before {
+ content: '𝌍';
+}
+
+/* '\1d30d' */
+
+i.basic.icon.desk.globe:before {
+ content: '🌐';
+}
+
+/* '\1f310' */
+
+i.basic.icon.star:before {
+ content: '\e801';
+}
+
+/* '' */
+
+i.basic.icon.star.empty:before {
+ content: '\e800';
+}
+
+/* '' */
+
+i.basic.icon.star.half:before {
+ content: '\e701';
+}
+
+/* '' */
+
+i.basic.icon.lock:before {
+ content: '🔒';
+}
+
+/* '\1f512' */
+
+i.basic.icon.unlock:before {
+ content: '🔓';
+}
+
+/* '\1f513' */
+
+i.basic.icon.layout.grid:before {
+ content: '\e80c';
+}
+
+/* '' */
+
+i.basic.icon.layout.block:before {
+ content: '\e708';
+}
+
+/* '' */
+
+i.basic.icon.layout.list:before {
+ content: '\e80b';
+}
+
+/* '' */
+
+i.basic.icon.heart.empty:before {
+ content: '\2661';
+}
+
+/* '♡' */
+
+i.basic.icon.heart:before {
+ content: '\2665';
+}
+
+/* '♥' */
+
+i.basic.icon.asterisk:before {
+ content: '\2731';
+}
+
+/* '✱' */
+
+i.basic.icon.attachment:before {
+ content: '📎';
+}
+
+/* '\1f4ce' */
+
+i.basic.icon.attention:before {
+ content: '\26a0';
+}
+
+/* '⚠' */
+
+i.basic.icon.trophy:before {
+ content: '🏉';
+}
+
+/* '\1f3c9' */
+
+i.basic.icon.barcode:before {
+ content: '\e792';
+}
+
+/* '' */
+
+i.basic.icon.cart:before {
+ content: '\e813';
+}
+
+/* '' */
+
+i.basic.icon.block:before {
+ content: '🚫';
+}
+
+/* '\1f6ab' */
+
+i.basic.icon.book:before {
+ content: '📖';
+}
+
+i.basic.icon.bookmark:before {
+ content: '🔖';
+}
+
+/* '\1f516' */
+
+i.basic.icon.calendar:before {
+ content: '📅';
+}
+
+/* '\1f4c5' */
+
+i.basic.icon.cancel:before {
+ content: '\2716';
+}
+
+/* '✖' */
+
+i.basic.icon.close:before {
+ content: '\e80d';
+}
+
+/* '' */
+
+i.basic.icon.color:before {
+ content: '\e794';
+}
+
+/* '' */
+
+i.basic.icon.chat:before {
+ content: '\e720';
+}
+
+/* '' */
+
+i.basic.icon.check:before {
+ content: '\2611';
+}
+
+/* '☑' */
+
+i.basic.icon.time:before {
+ content: '🕔';
+}
+
+/* '\1f554' */
+
+i.basic.icon.cloud:before {
+ content: '\2601';
+}
+
+/* '☁' */
+
+i.basic.icon.code:before {
+ content: '\e714';
+}
+
+/* '' */
+
+i.basic.icon.email:before {
+ content: '\40';
+}
+
+/* '@' */
+
+i.basic.icon.settings:before {
+ content: '\26ef';
+}
+
+/* '⛯' */
+
+i.basic.icon.setting:before {
+ content: '\2699';
+}
+
+/* '⚙' */
+
+i.basic.icon.comment:before {
+ content: '\e802';
+}
+
+/* '' */
+
+i.basic.icon.clockwise.counter:before {
+ content: '\27f2';
+}
+
+/* '⟲' */
+
+i.basic.icon.clockwise:before {
+ content: '\27f3';
+}
+
+/* '⟳' */
+
+i.basic.icon.cube:before {
+ content: '\e807';
+}
+
+/* '' */
+
+i.basic.icon.direction:before {
+ content: '\27a2';
+}
+
+/* '➢' */
+
+i.basic.icon.doc:before {
+ content: '📄';
+}
+
+/* '\1f4c4' */
+
+i.basic.icon.docs:before {
+ content: '\e736';
+}
+
+/* '' */
+
+i.basic.icon.dollar:before {
+ content: '💵';
+}
+
+/* '\1f4b5' */
+
+i.basic.icon.paint:before {
+ content: '\e7b5';
+}
+
+/* '' */
+
+i.basic.icon.edit:before {
+ content: '\270d';
+}
+
+/* '✍' */
+
+i.basic.icon.eject:before {
+ content: '\2ecf';
+}
+
+/* '⻏' */
+
+i.basic.icon.export:before {
+ content: '\e715';
+}
+
+/* '' */
+
+i.basic.icon.hide:before {
+ content: '\e70b';
+}
+
+/* '' */
+
+i.basic.icon.unhide:before {
+ content: '\e80f';
+}
+
+/* '' */
+
+i.basic.icon.facebook:before {
+ content: '\f301';
+}
+
+/* '' */
+
+i.basic.icon.fast-forward:before {
+ content: '\e804';
+}
+
+/* '' */
+
+i.basic.icon.fire:before {
+ content: '🔥';
+}
+
+/* '\1f525' */
+
+i.basic.icon.flag:before {
+ content: '\2691';
+}
+
+/* '⚑' */
+
+i.basic.icon.lightning:before {
+ content: '\26a1';
+}
+
+/* '⚡' */
+
+i.basic.icon.lab:before {
+ content: '\68';
+}
+
+/* 'h' */
+
+i.basic.icon.flight:before {
+ content: '\2708';
+}
+
+/* '✈' */
+
+i.basic.icon.forward:before {
+ content: '\27a6';
+}
+
+/* '➦' */
+
+i.basic.icon.gift:before {
+ content: '🎁';
+}
+
+/* '\1f381' */
+
+i.basic.icon.github:before {
+ content: '\f308';
+}
+
+/* '' */
+
+i.basic.icon.globe:before {
+ content: '\e817';
+}
+
+/* '' */
+
+i.basic.icon.headphones:before {
+ content: '🎧';
+}
+
+/* '\1f3a7' */
+
+i.basic.icon.question:before {
+ content: '\2753';
+}
+
+/* '❓' */
+
+i.basic.icon.home:before {
+ content: '\2302';
+}
+
+/* '⌂' */
+
+i.basic.icon.i:before {
+ content: '\2139';
+}
+
+/* 'ℹ' */
+
+i.basic.icon.idea:before {
+ content: '💡';
+}
+
+/* '\1f4a1' */
+
+i.basic.icon.open:before {
+ content: '🔗';
+}
+
+/* '\1f517' */
+
+i.basic.icon.content:before {
+ content: '\e782';
+}
+
+/* '' */
+
+i.basic.icon.location:before {
+ content: '\e724';
+}
+
+/* '' */
+
+i.basic.icon.mail:before {
+ content: '\2709';
+}
+
+/* '✉' */
+
+i.basic.icon.mic:before {
+ content: '🎤';
+}
+
+/* '\1f3a4' */
+
+i.basic.icon.minus:before {
+ content: '\2d';
+}
+
+/* '-' */
+
+i.basic.icon.money:before {
+ content: '💰';
+}
+
+/* '\1f4b0' */
+
+i.basic.icon.off:before {
+ content: '\e78e';
+}
+
+/* '' */
+
+i.basic.icon.pause:before {
+ content: '\e808';
+}
+
+/* '' */
+
+i.basic.icon.photos:before {
+ content: '\e812';
+}
+
+/* '' */
+
+i.basic.icon.photo:before {
+ content: '🌄';
+}
+
+/* '\1f304' */
+
+i.basic.icon.pin:before {
+ content: '📌';
+}
+
+/* '\1f4cc' */
+
+i.basic.icon.play:before {
+ content: '\e809';
+}
+
+/* '' */
+
+i.basic.icon.plus:before {
+ content: '\2b';
+}
+
+/* '+' */
+
+i.basic.icon.print:before {
+ content: '\e716';
+}
+
+/* '' */
+
+i.basic.icon.rss:before {
+ content: '\e73a';
+}
+
+/* '' */
+
+i.basic.icon.search:before {
+ content: '🔍';
+}
+
+/* '\1f50d' */
+
+i.basic.icon.shuffle:before {
+ content: '\e803';
+}
+
+/* '' */
+
+i.basic.icon.tag:before {
+ content: '\e80a';
+}
+
+/* '' */
+
+i.basic.icon.tags:before {
+ content: '\e70d';
+}
+
+/* '' */
+
+i.basic.icon.terminal:before {
+ content: '\e7ac';
+}
+
+/* '' */
+
+i.basic.icon.thumbs.down:before {
+ content: '👎';
+}
+
+/* '\1f44e' */
+
+i.basic.icon.thumbs.up:before {
+ content: '👍';
+}
+
+/* '\1f44d' */
+
+i.basic.icon.to-end:before {
+ content: '\e806';
+}
+
+/* '' */
+
+i.basic.icon.to-start:before {
+ content: '\e805';
+}
+
+/* '' */
+
+i.basic.icon.top.list:before {
+ content: '🏆';
+}
+
+/* '\1f3c6' */
+
+i.basic.icon.trash:before {
+ content: '\e729';
+}
+
+/* '' */
+
+i.basic.icon.twitter:before {
+ content: '\f303';
+}
+
+/* '' */
+
+i.basic.icon.upload:before {
+ content: '\e711';
+}
+
+/* '' */
+
+i.basic.icon.user.add:before {
+ content: '\e700';
+}
+
+/* '' */
+
+i.basic.icon.user:before {
+ content: '👤';
+}
+
+/* '\1f464' */
+
+i.basic.icon.community:before {
+ content: '\e814';
+}
+
+/* '' */
+
+i.basic.icon.users:before {
+ content: '👥';
+}
+
+/* '\1f465' */
+
+i.basic.icon.id:before {
+ content: '\e722';
+}
+
+/* '' */
+
+i.basic.icon.url:before {
+ content: '🔗';
+}
+
+/* '\1f517' */
+
+i.basic.icon.zoom.in:before {
+ content: '\e750';
+}
+
+/* '' */
+
+i.basic.icon.zoom.out:before {
+ content: '\e751';
+}
+
+/* '' */
+
+/*--------------
+ Spacing Fix
+---------------*/
+
+/* dropdown arrows are to the right */
+
+i.dropdown.basic.icon {
+ margin: 0em 0.5em 0em 0em;
+}
+
+/* stars are usually consecutive */
+
+i.basic.icon.star {
+ width: auto;
+ margin: 0em;
+}
+
+/* left side basic.icons */
+
+i.basic.icon.left,
+i.basic.icon.left,
+i.basic.icon.left {
+ width: auto;
+ margin: 0em 0em 0em 0.5em;
+}
+
+/* right side basic.icons */
+
+i.basic.icon.search,
+i.basic.icon.up,
+i.basic.icon.down,
+i.basic.icon.right {
+ width: auto;
+ margin: 0em 0.5em 0em 0em;
+}
+
+/*--------------
+ Aliases
+---------------*/
+
+/* aliases for convenience */
+
+i.basic.icon.delete:before {
+ content: '\e80d';
+}
+
+/* '' */
+
+i.basic.icon.dropdown:before {
+ content: '\25be';
+}
+
+/* '▾' */
+
+i.basic.icon.help:before {
+ content: '\e704';
+}
+
+/* '' */
+
+i.basic.icon.info:before {
+ content: '\e705';
+}
+
+/* '' */
+
+i.basic.icon.error:before {
+ content: '\e80d';
+}
+
+/* '' */
+
+i.basic.icon.dislike:before {
+ content: '\2661';
+}
+
+/* '♡' */
+
+i.basic.icon.like:before {
+ content: '\2665';
+}
+
+/* '♥' */
+
+i.basic.icon.eye:before {
+ content: '\e80f';
+}
+
+/* '' */
+
+i.basic.icon.eye.hidden:before {
+ content: '\e70b';
+}
+
+/* '' */
+
+i.basic.icon.date:before {
+ content: '📅';
+}
+
+/* '\1f4c5' */
+
+/*******************************
+ States
+*******************************/
+
+i.basic.icon.hover {
+ opacity: 1;
+}
+
+i.basic.icon.active {
+ opacity: 1;
+}
+
+i.emphasized.basic.icon {
+ opacity: 1;
+}
+
+i.basic.icon.disabled {
+ opacity: 0.3;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Link
+--------------------*/
+
+i.link.basic.icon {
+ cursor: pointer;
+ opacity: 0.7;
+ -webkit-transition: opacity 0.3s ease-out;
+ -moz-transition: opacity 0.3s ease-out;
+ transition: opacity 0.3s ease-out;
+}
+
+.link.basic.icon:hover {
+ opacity: 1 !important;
+}
+
+/*-------------------
+ Circular
+--------------------*/
+
+i.circular.basic.icon {
+ border-radius: !important 500px;
+ padding: 0.5em 0em !important;
+ -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ line-height: 1 !important;
+ width: 2em !important;
+ height: 2em !important;
+}
+
+i.circular.inverted.basic.icon {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Flipped
+--------------------*/
+
+i.vertically.flipped.basic.icon {
+ -webkit-transform: scale(1, -1);
+ -moz-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+
+i.horizontally.flipped.basic.icon {
+ -webkit-transform: scale(-1, 1);
+ -moz-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+
+/*-------------------
+ Rotated
+--------------------*/
+
+i.left.rotated.basic.icon {
+ -webkit-transform: rotate(-90deg);
+ -moz-transform: rotate(-90deg);
+ -ms-transform: rotate(-90deg);
+ transform: rotate(-90deg);
+}
+
+i.right.rotated.basic.icon {
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+
+/*-------------------
+ Square
+--------------------*/
+
+i.square.basic.icon {
+ width: 2em;
+ height: 2em;
+ padding: 0.5em 0.35em !important;
+ -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ vertical-align: baseline;
+}
+
+i.square.basic.icon:before {
+ vertical-align: middle;
+}
+
+i.square.inverted.basic.icon {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+i.inverted.basic.icon {
+ background-color: #222222;
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+i.blue.basic.icon {
+ color: #6ECFF5 !important;
+}
+
+i.black.basic.icon {
+ color: #5C6166 !important;
+}
+
+i.green.basic.icon {
+ color: #A1CF64 !important;
+}
+
+i.red.basic.icon {
+ color: #D95C5C !important;
+}
+
+i.purple.basic.icon {
+ color: #564F8A !important;
+}
+
+i.teal.basic.icon {
+ color: #00B5AD !important;
+}
+
+/*-------------------
+ Inverted Colors
+--------------------*/
+
+i.inverted.black.basic.icon {
+ background-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.blue.basic.icon {
+ background-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.green.basic.icon {
+ background-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.red.basic.icon {
+ background-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.purple.basic.icon {
+ background-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.teal.basic.icon {
+ background-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+i.small.basic.icon {
+ font-size: 0.875em;
+}
+
+i.basic.icon {
+ font-size: 1em;
+}
+
+i.large.basic.icon {
+ font-size: 1.5em;
+ margin-left: 0.2em;
+ vertical-align: middle;
+}
+
+i.big.basic.icon {
+ font-size: 2em;
+ margin-left: 0.5em;
+ vertical-align: middle;
+}
+
+i.huge.basic.icon {
+ font-size: 4em;
+ margin-left: 0.75em;
+ vertical-align: middle;
+}
+
+i.massive.basic.icon {
+ font-size: 8em;
+ margin-left: 1em;
+ vertical-align: middle;
+}
+/*
+ * # Semantic - Button
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Button
+*******************************/
+
+/* Prototype */
+
+.ui.button {
+ cursor: pointer;
+ display: inline-block;
+ vertical-align: middle;
+ min-height: 1em;
+ outline: none;
+ border: none;
+ background-color: #FAFAFA;
+ color: #808080;
+ margin: 0em;
+ padding: 0.8em 1.5em;
+ font-size: 1rem;
+ text-transform: uppercase;
+ line-height: 1;
+ font-weight: bold;
+ font-style: normal;
+ text-align: center;
+ text-decoration: none;
+ background-image: -webkit-gradient(linear, right top, right bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.05)));
+ background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
+ background-image: -moz-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
+ background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
+ border-radius: 0.25em;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.08) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.08) inset;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -webkit-transition: opacity 0.25s ease, background-color 0.25s ease, color 0.25s ease, background 0.25s ease, -webkit-box-shadow 0.25s ease;
+ -moz-transition: opacity 0.25s ease, background-color 0.25s ease, color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
+ transition: opacity 0.25s ease, background-color 0.25s ease, color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Active
+---------------*/
+
+.ui.buttons .active.button,
+.ui.active.button {
+ background-color: #EAEAEA;
+ background-image: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.button:hover {
+ background-image: -webkit-gradient(linear, right top, right bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.08)));
+ background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.08));
+ background-image: -moz-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.08));
+ background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.08));
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.button.active:hover {
+ background-image: none;
+}
+
+.ui.button:hover .icon,
+.ui.button.hover .icon {
+ opacity: 0.85;
+}
+
+/*--------------
+ Down
+---------------*/
+
+.ui.button:active,
+.ui.active.button:active {
+ background-color: #F1F1F1;
+ color: rgba(0, 0, 0, 0.7);
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important;
+}
+
+/*--------------
+ Loading
+---------------*/
+
+.ui.loading.button {
+ position: relative;
+ cursor: default;
+ background-color: #FFFFFF !important;
+ color: transparent !important;
+ -webkit-transition: all 0s linear;
+ -moz-transition: all 0s linear;
+ transition: all 0s linear;
+}
+
+.ui.loading.button:after {
+ position: absolute;
+ top: 0em;
+ right: 0em;
+ width: 100%;
+ height: 100%;
+ content: '';
+ background: transparent url(../images/loader-mini.gif) no-repeat 50% 50%;
+}
+
+.ui.labeled.icon.loading.button .icon {
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Disabled
+--------------------*/
+
+.ui.disabled.button,
+.ui.disabled.button:hover,
+.ui.disabled.button.active {
+ background-color: #DDDDDD !important;
+ cursor: default;
+ color: rgba(0, 0, 0, 0.5) !important;
+ opacity: 0.3 !important;
+ background-image: none !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Animated
+--------------------*/
+
+.ui.animated.button {
+ position: relative;
+ overflow: hidden;
+}
+
+.ui.animated.button .visible.content {
+ position: relative;
+}
+
+.ui.animated.button .hidden.content {
+ position: absolute;
+ width: 100%;
+}
+
+/* Horizontal */
+
+.ui.animated.button .visible.content,
+.ui.animated.button .hidden.content {
+ -webkit-transition: left 0.3s ease 0s;
+ -moz-transition: left 0.3s ease 0s;
+ transition: left 0.3s ease 0s;
+}
+
+.ui.animated.button .visible.content {
+ right: auto;
+ left: 0%;
+}
+
+.ui.animated.button .hidden.content {
+ top: 50%;
+ right: auto;
+ left: -100%;
+ margin-top: -0.55em;
+}
+
+.ui.animated.button:hover .visible.content {
+ right: auto;
+ left: 200%;
+}
+
+.ui.animated.button:hover .hidden.content {
+ right: auto;
+ left: 0%;
+}
+
+/* Vertical */
+
+.ui.vertical.animated.button .visible.content,
+.ui.vertical.animated.button .hidden.content {
+ -webkit-transition: top 0.3s ease 0s, -webkit-transform 0.3s ease 0s;
+ -moz-transition: top 0.3s ease 0s, -moz-transform 0.3s ease 0s;
+ transition: top 0.3s ease 0s, transform 0.3s ease 0s;
+}
+
+.ui.vertical.animated.button .visible.content {
+ -webkit-transform: translateY(0%);
+ -moz-transform: translateY(0%);
+ -ms-transform: translateY(0%);
+ transform: translateY(0%);
+ left: auto;
+}
+
+.ui.vertical.animated.button .hidden.content {
+ top: -100%;
+ right: 0%;
+ left: auto;
+}
+
+.ui.vertical.animated.button:hover .visible.content {
+ -webkit-transform: translateY(200%);
+ -moz-transform: translateY(200%);
+ -ms-transform: translateY(200%);
+ transform: translateY(200%);
+ left: auto;
+}
+
+.ui.vertical.animated.button:hover .hidden.content {
+ top: 50%;
+ left: auto;
+}
+
+/* Fade */
+
+.ui.fade.animated.button .visible.content,
+.ui.fade.animated.button .hidden.content {
+ -webkit-transition: opacity 0.3s ease 0s, -webkit-transform 0.3s ease 0s;
+ -moz-transition: opacity 0.3s ease 0s, -moz-transform 0.3s ease 0s;
+ transition: opacity 0.3s ease 0s, transform 0.3s ease 0s;
+}
+
+.ui.fade.animated.button .visible.content {
+ right: auto;
+ left: auto;
+ opacity: 1;
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+}
+
+.ui.fade.animated.button .hidden.content {
+ opacity: 0;
+ right: 0%;
+ left: auto;
+ -webkit-transform: scale(1.2);
+ -moz-transform: scale(1.2);
+ -ms-transform: scale(1.2);
+ transform: scale(1.2);
+}
+
+.ui.fade.animated.button:hover .visible.content {
+ right: auto;
+ left: auto;
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ -moz-transform: scale(0.7);
+ -ms-transform: scale(0.7);
+ transform: scale(0.7);
+}
+
+.ui.fade.animated.button:hover .hidden.content {
+ right: 0%;
+ left: auto;
+ opacity: 1;
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+}
+
+/*-------------------
+ Primary
+--------------------*/
+
+.ui.primary.buttons .button,
+.ui.primary.button {
+ background-color: #D95C5C;
+ color: #FFFFFF;
+}
+
+.ui.primary.buttons .button:hover,
+.ui.primary.button:hover,
+.ui.primary.buttons .active.button,
+.ui.primary.button.active {
+ background-color: #E75859;
+ color: #FFFFFF;
+}
+
+.ui.primary.buttons .button:active,
+.ui.primary.button:active {
+ background-color: #D24B4C;
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Secondary
+--------------------*/
+
+.ui.secondary.buttons .button,
+.ui.secondary.button {
+ background-color: #00B5AD;
+ color: #FFFFFF;
+}
+
+.ui.secondary.buttons .button:hover,
+.ui.secondary.button:hover,
+.ui.secondary.buttons .active.button,
+.ui.secondary.button.active {
+ background-color: #009A93;
+ color: #FFFFFF;
+}
+
+.ui.secondary.buttons .button:active,
+.ui.secondary.button:active {
+ background-color: #00847E;
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Social
+--------------------*/
+
+/* Facebook */
+
+.ui.facebook.button {
+ background-color: #3B579D;
+ color: #FFFFFF;
+}
+
+.ui.facebook.button:hover {
+ background-color: #3A59A9;
+ color: #FFFFFF;
+}
+
+.ui.facebook.button:active {
+ background-color: #334F95;
+ color: #FFFFFF;
+}
+
+/* Twitter */
+
+.ui.twitter.button {
+ background-color: #4092CC;
+ color: #FFFFFF;
+}
+
+.ui.twitter.button:hover {
+ background-color: #399ADE;
+ color: #FFFFFF;
+}
+
+.ui.twitter.button:active {
+ background-color: #3283BC;
+ color: #FFFFFF;
+}
+
+/* Google Plus */
+
+.ui.google.plus.button {
+ background-color: #D34836;
+ color: #FFFFFF;
+}
+
+.ui.google.plus.button:hover {
+ background-color: #E3432E;
+ color: #FFFFFF;
+}
+
+.ui.google.plus.button:active {
+ background-color: #CA3A27;
+ color: #FFFFFF;
+}
+
+/* Linked In */
+
+.ui.linkedin.button {
+ background-color: #1F88BE;
+ color: #FFFFFF;
+}
+
+.ui.linkedin.button:hover {
+ background-color: #1394D6;
+ color: #FFFFFF;
+}
+
+.ui.linkedin.button:active {
+ background-color: #1179AE;
+ color: #FFFFFF;
+}
+
+/* YouTube */
+
+.ui.youtube.button {
+ background-color: #CC181E;
+ color: #FFFFFF;
+}
+
+.ui.youtube.button:hover {
+ background-color: #DF0209;
+ color: #FFFFFF;
+}
+
+.ui.youtube.button:active {
+ background-color: #A50006;
+ color: #FFFFFF;
+}
+
+/* Instagram */
+
+.ui.instagram.button {
+ background-color: #49769C;
+ color: #FFFFFF;
+}
+
+.ui.instagram.button:hover {
+ background-color: #4781B1;
+ color: #FFFFFF;
+}
+
+.ui.instagram.button:active {
+ background-color: #38658A;
+ color: #FFFFFF;
+}
+
+/* Pinterest */
+
+.ui.pinterest.button {
+ background-color: #00ACED;
+ color: #FFFFFF;
+}
+
+.ui.pinterest.button:hover {
+ background-color: #00B9FF;
+ color: #FFFFFF;
+}
+
+.ui.pinterest.button:active {
+ background-color: #009EDA;
+ color: #FFFFFF;
+}
+
+/* vk.com */
+
+.ui.vk.button {
+ background-color: #4D7198;
+ color: #FFFFFF;
+}
+
+.ui.vk.button:hover {
+ background-color: #537AA5;
+ color: #FFFFFF;
+}
+
+.ui.vk.button:active {
+ background-color: #405E7E;
+ color: #FFFFFF;
+}
+
+/*--------------
+ Icon
+---------------*/
+
+.ui.button > .icon {
+ margin-left: 0.6em;
+ line-height: 1;
+ -webkit-transition: opacity 0.1s ease;
+ -moz-transition: opacity 0.1s ease;
+ transition: opacity 0.1s ease;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Floated
+--------------------*/
+
+.ui.left.floated.buttons,
+.ui.left.floated.button {
+ float: right;
+ margin-left: 0.25em;
+}
+
+.ui.right.floated.buttons,
+.ui.right.floated.button {
+ float: left;
+ margin-right: 0.25em;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+.ui.buttons .button,
+.ui.button {
+ font-size: 1rem;
+}
+
+.ui.mini.buttons .button,
+.ui.mini.buttons .or,
+.ui.mini.button {
+ font-size: 0.8rem;
+}
+
+.ui.mini.buttons .button,
+.ui.mini.button {
+ padding: 0.6em 0.8em;
+}
+
+.ui.mini.icon.buttons .button,
+.ui.mini.buttons .icon.button {
+ padding: 0.6em 0.6em;
+}
+
+.ui.tiny.buttons .button,
+.ui.tiny.buttons .or,
+.ui.tiny.button {
+ font-size: 0.875em;
+}
+
+.ui.tiny.buttons .button,
+.ui.tiny.buttons .button,
+.ui.tiny.button {
+ padding: 0.6em 0.8em;
+}
+
+.ui.tiny.icon.buttons .button,
+.ui.tiny.buttons .icon.button {
+ padding: 0.6em 0.6em;
+}
+
+.ui.small.buttons .button,
+.ui.small.buttons .or,
+.ui.small.button {
+ font-size: 0.875rem;
+}
+
+.ui.large.buttons .button,
+.ui.large.buttons .or,
+.ui.large.button {
+ font-size: 1.125rem;
+}
+
+.ui.big.buttons .button,
+.ui.big.buttons .or,
+.ui.big.button {
+ font-size: 1.25rem;
+}
+
+.ui.huge.buttons .button,
+.ui.huge.buttons .or,
+.ui.huge.button {
+ font-size: 1.375rem;
+}
+
+.ui.massive.buttons .button,
+.ui.massive.buttons .or,
+.ui.massive.button {
+ font-size: 1.5rem;
+ font-weight: bold;
+}
+
+/* Or resize */
+
+.ui.tiny.buttons .or:before,
+.ui.mini.buttons .or:before {
+ width: 1.45em;
+ height: 1.55em;
+ line-height: 1.4;
+ margin-right: -0.725em;
+ margin-top: -0.25em;
+}
+
+.ui.tiny.buttons .or:after,
+.ui.mini.buttons .or:after {
+ height: 1.45em;
+}
+
+/* loading */
+
+.ui.huge.loading.button:after {
+ background-image: url(../images/loader-small.gif);
+}
+
+.ui.massive.buttons .loading.button:after,
+.ui.gigantic.buttons .loading.button:after,
+.ui.massive.loading.button:after,
+.ui.gigantic.loading.button:after {
+ background-image: url(../images/loader-medium.gif);
+}
+
+.ui.huge.loading.button:after,
+.ui.huge.loading.button.active:after {
+ background-image: url(../images/loader-small.gif);
+}
+
+.ui.massive.buttons .loading.button:after,
+.ui.gigantic.buttons .loading.button:after,
+.ui.massive.loading.button:after,
+.ui.gigantic.loading.button:after,
+.ui.massive.buttons .loading.button.active:after,
+.ui.gigantic.buttons .loading.button.active:after,
+.ui.massive.loading.button.active:after,
+.ui.gigantic.loading.button.active:after {
+ background-image: url(../images/loader-medium.gif);
+}
+
+/*--------------
+ Icon Only
+---------------*/
+
+.ui.icon.buttons .button,
+.ui.icon.button {
+ padding: 0.8em;
+}
+
+.ui.icon.buttons .button > .icon,
+.ui.icon.button > .icon {
+ opacity: 0.9;
+ margin: 0em;
+ vertical-align: top;
+}
+
+/*-------------------
+ Basic
+--------------------*/
+
+.ui.basic.buttons .button,
+.ui.basic.button {
+ background-color: transparent !important;
+ background-image: none;
+ color: #808080 !important;
+ font-weight: normal;
+ text-transform: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.basic.buttons {
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ border-radius: 0.25em;
+}
+
+.ui.basic.buttons .button:hover,
+.ui.basic.button:hover {
+ background-image: none;
+ color: #7F7F7F !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.18) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.18) inset;
+}
+
+.ui.basic.buttons .button:active,
+.ui.basic.button:active {
+ background-color: rgba(0, 0, 0, 0.02) !important;
+ color: #7F7F7F !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.basic.buttons .button.active,
+.ui.basic.button.active {
+ background-color: rgba(0, 0, 0, 0.05);
+ color: #7F7F7F;
+ -webkit-box-shadow: 0px 0px 0px 1px #BDBDBD inset;
+ box-shadow: 0px 0px 0px 1px #BDBDBD inset;
+}
+
+.ui.basic.buttons .button.active:hover,
+.ui.basic.button.active:hover {
+ background-color: rgba(0, 0, 0, 0.1);
+}
+
+/* Inverted */
+
+.ui.basic.inverted.buttons .button,
+.ui.basic.inverted.button {
+ color: #FAFAFA !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.3) inset;
+ box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.3) inset;
+}
+
+.ui.basic.inverted.buttons .button:hover,
+.ui.basic.inverted.button:hover {
+ background-image: none;
+ color: #FFFFFF !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.5) inset;
+ box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.5) inset;
+}
+
+.ui.basic.inverted.buttons .button:active,
+.ui.basic.inverted.button:active {
+ background-color: rgba(255, 255, 255, 0.05) !important;
+ color: #FFFFFF !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.8) inset !important;
+ box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.8) inset !important;
+}
+
+.ui.basic.inverted.buttons .button.active,
+.ui.basic.inverted.button.active {
+ background-color: rgba(255, 255, 255, 0.5);
+ color: #FFFFFF;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.basic.inverted.buttons .button.active:hover,
+.ui.basic.inverted.button.active:hover {
+ background-color: rgba(0, 0, 0, 0.1);
+}
+
+/* Basic Group */
+
+.ui.basic.buttons .button {
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.basic.buttons .button:hover,
+.ui.basic.buttons .button:active {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.basic.buttons .button.active,
+.ui.basic.buttons .button.active:hover {
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2) inset;
+}
+
+/*--------------
+ Labeled Icon
+---------------*/
+
+.ui.labeled.icon.buttons .button,
+.ui.labeled.icon.button {
+ position: relative;
+ padding-right: 4em !important;
+ padding-left: 1.4em !important;
+}
+
+.ui.labeled.icon.buttons > .button > .icon,
+.ui.labeled.icon.button > .icon {
+ position: absolute;
+ top: 0em;
+ right: 0em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 2.75em;
+ height: 100%;
+ padding-top: 0.8em;
+ background-color: rgba(0, 0, 0, 0.05);
+ text-align: center;
+ border-radius: 0px 0.25em 0.25em 0px;
+ line-height: 1;
+ -webkit-box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset;
+ box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset;
+}
+
+.ui.labeled.icon.buttons .button > .icon {
+ border-radius: 0em;
+}
+
+.ui.labeled.icon.buttons .button:first-child > .icon {
+ border-top-right-radius: 0.25em;
+ border-bottom-right-radius: 0.25em;
+}
+
+.ui.labeled.icon.buttons .button:last-child > .icon {
+ border-top-left-radius: 0.25em;
+ border-bottom-left-radius: 0.25em;
+}
+
+.ui.vertical.labeled.icon.buttons .button:first-child > .icon {
+ border-radius: 0em;
+ border-top-right-radius: 0.25em;
+}
+
+.ui.vertical.labeled.icon.buttons .button:last-child > .icon {
+ border-radius: 0em;
+ border-bottom-right-radius: 0.25em;
+}
+
+.ui.right.labeled.icon.button {
+ padding-right: 1.4em !important;
+ padding-left: 4em !important;
+}
+
+.ui.left.fluid.labeled.icon.button,
+.ui.right.fluid.labeled.icon.button {
+ padding-right: 1.4em !important;
+ padding-left: 1.4em !important;
+}
+
+.ui.right.labeled.icon.button .icon {
+ right: auto;
+ left: 0em;
+ border-radius: 0.25em 0em 0em 0.25em;
+ -webkit-box-shadow: 1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset;
+ box-shadow: 1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset;
+}
+
+/*--------------
+ Toggle
+---------------*/
+
+/* Toggle (Modifies active state to give affordances) */
+
+.ui.toggle.buttons .active.button,
+.ui.buttons .button.toggle.active,
+.ui.button.toggle.active {
+ background-color: #5BBD72 !important;
+ color: #FFFFFF !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.ui.button.toggle.active:hover {
+ background-color: #58CB73 !important;
+ color: #FFFFFF !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+/*--------------
+ Circular
+---------------*/
+
+.ui.circular.button {
+ border-radius: 10em;
+}
+
+/*--------------
+ Attached
+---------------*/
+
+.ui.attached.button {
+ display: block;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important;
+}
+
+.ui.attached.top.button {
+ border-radius: 0.25em 0.25em 0em 0em;
+}
+
+.ui.attached.bottom.button {
+ border-radius: 0em 0em 0.25em 0.25em;
+}
+
+.ui.attached.left.button {
+ display: inline-block;
+ border-right: none;
+ padding-left: 0.75em;
+ text-align: left;
+ border-radius: 0em 0.25em 0.25em 0em;
+}
+
+.ui.attached.right.button {
+ display: inline-block;
+ padding-right: 0.75em;
+ text-align: right;
+ border-radius: 0.25em 0em 0em 0.25em;
+}
+
+/*-------------------
+ Or Buttons
+--------------------*/
+
+.ui.buttons .or {
+ position: relative;
+ float: right;
+ width: 0.3em;
+ height: 1.1em;
+ z-index: 3;
+}
+
+.ui.buttons .or:before {
+ position: absolute;
+ top: 50%;
+ right: 50%;
+ content: 'or';
+ background-color: #FFFFFF;
+ margin-top: -0.1em;
+ margin-right: -0.9em;
+ width: 1.8em;
+ height: 1.8em;
+ line-height: 1.55;
+ color: #AAAAAA;
+ font-style: normal;
+ font-weight: normal;
+ text-align: center;
+ border-radius: 500px;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.buttons .or[data-text]:before {
+ content: attr(data-text);
+}
+
+.ui.buttons .or:after {
+ position: absolute;
+ top: 0em;
+ right: 0em;
+ content: ' ';
+ width: 0.3em;
+ height: 1.7em;
+ background-color: transparent;
+ border-top: 0.5em solid #FFFFFF;
+ border-bottom: 0.5em solid #FFFFFF;
+}
+
+/* Fluid Or */
+
+.ui.fluid.buttons .or {
+ width: 0em !important;
+}
+
+.ui.fluid.buttons .or:after {
+ display: none;
+}
+
+/*-------------------
+ Attached
+--------------------*/
+
+/* Plural Attached */
+
+.attached.ui.buttons {
+ margin: 0px;
+ border-radius: 4px 4px 0px 0px;
+}
+
+.attached.ui.buttons .button:first-child {
+ border-radius: 0px 4px 0px 0px;
+}
+
+.attached.ui.buttons .button:last-child {
+ border-radius: 4px 0px 0px 0px;
+}
+
+/* Bottom Side */
+
+.bottom.attached.ui.buttons {
+ margin-top: -1px;
+ border-radius: 0px 0px 4px 4px;
+}
+
+.bottom.attached.ui.buttons .button:first-child {
+ border-radius: 0px 0px 4px 0px;
+}
+
+.bottom.attached.ui.buttons .button:last-child {
+ border-radius: 0px 0px 0px 4px;
+}
+
+/* Left Side */
+
+.left.attached.ui.buttons {
+ margin-right: -1px;
+ border-radius: 4px 0px 0px 4px;
+}
+
+.left.attached.ui.buttons .button:first-child {
+ margin-right: -1px;
+ border-radius: 4px 0px 0px 0px;
+}
+
+.left.attached.ui.buttons .button:last-child {
+ margin-right: -1px;
+ border-radius: 0px 0px 0px 4px;
+}
+
+/* Right Side */
+
+.right.attached.ui.buttons,
+.right.attached.ui.buttons .button {
+ margin-left: -1px;
+ border-radius: 0px 4px 4px 0px;
+}
+
+.right.attached.ui.buttons .button:first-child {
+ margin-right: -1px;
+ border-radius: 0px 4px 0px 0px;
+}
+
+.right.attached.ui.buttons .button:last-child {
+ margin-right: -1px;
+ border-radius: 0px 0px 4px 0px;
+}
+
+/* Fluid */
+
+.ui.fluid.buttons,
+.ui.button.fluid,
+.ui.fluid.buttons > .button {
+ display: block;
+ width: 100%;
+}
+
+.ui.\32.buttons > .button,
+.ui.two.buttons > .button {
+ width: 50%;
+}
+
+.ui.\33.buttons > .button,
+.ui.three.buttons > .button {
+ width: 33.333%;
+}
+
+.ui.\34.buttons > .button,
+.ui.four.buttons > .button {
+ width: 25%;
+}
+
+.ui.\35.buttons > .button,
+.ui.five.buttons > .button {
+ width: 20%;
+}
+
+.ui.\36.buttons > .button,
+.ui.six.buttons > .button {
+ width: 16.666%;
+}
+
+.ui.\37.buttons > .button,
+.ui.seven.buttons > .button {
+ width: 14.285%;
+}
+
+.ui.\38.buttons > .button,
+.ui.eight.buttons > .button {
+ width: 12.500%;
+}
+
+.ui.\39.buttons > .button,
+.ui.nine.buttons > .button {
+ width: 11.11%;
+}
+
+.ui.\31\30.buttons > .button,
+.ui.ten.buttons > .button {
+ width: 10%;
+}
+
+.ui.\31\31.buttons > .button,
+.ui.eleven.buttons > .button {
+ width: 9.09%;
+}
+
+.ui.\31\32.buttons > .button,
+.ui.twelve.buttons > .button {
+ width: 8.3333%;
+}
+
+/* Fluid Vertical Buttons */
+
+.ui.fluid.vertical.buttons,
+.ui.fluid.vertical.buttons > .button {
+ display: block;
+ width: auto;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.\32.vertical.buttons > .button,
+.ui.two.vertical.buttons > .button {
+ height: 50%;
+}
+
+.ui.\33.vertical.buttons > .button,
+.ui.three.vertical.buttons > .button {
+ height: 33.333%;
+}
+
+.ui.\34.vertical.buttons > .button,
+.ui.four.vertical.buttons > .button {
+ height: 25%;
+}
+
+.ui.\35.vertical.buttons > .button,
+.ui.five.vertical.buttons > .button {
+ height: 20%;
+}
+
+.ui.\36.vertical.buttons > .button,
+.ui.six.vertical.buttons > .button {
+ height: 16.666%;
+}
+
+.ui.\37.vertical.buttons > .button,
+.ui.seven.vertical.buttons > .button {
+ height: 14.285%;
+}
+
+.ui.\38.vertical.buttons > .button,
+.ui.eight.vertical.buttons > .button {
+ height: 12.500%;
+}
+
+.ui.\39.vertical.buttons > .button,
+.ui.nine.vertical.buttons > .button {
+ height: 11.11%;
+}
+
+.ui.\31\30.vertical.buttons > .button,
+.ui.ten.vertical.buttons > .button {
+ height: 10%;
+}
+
+.ui.\31\31.vertical.buttons > .button,
+.ui.eleven.vertical.buttons > .button {
+ height: 9.09%;
+}
+
+.ui.\31\32.vertical.buttons > .button,
+.ui.twelve.vertical.buttons > .button {
+ height: 8.3333%;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+/*--- Black ---*/
+
+.ui.black.buttons .button,
+.ui.black.button {
+ background-color: #5C6166;
+ color: #FFFFFF;
+}
+
+.ui.black.buttons .button:hover,
+.ui.black.button:hover {
+ background-color: #4C4C4C;
+ color: #FFFFFF;
+}
+
+.ui.black.buttons .button:active,
+.ui.black.button:active {
+ background-color: #333333;
+ color: #FFFFFF;
+}
+
+/*--- Green ---*/
+
+.ui.green.buttons .button,
+.ui.green.button {
+ background-color: #5BBD72;
+ color: #FFFFFF;
+}
+
+.ui.green.buttons .button:hover,
+.ui.green.button:hover,
+.ui.green.buttons .active.button,
+.ui.green.button.active {
+ background-color: #58cb73;
+ color: #FFFFFF;
+}
+
+.ui.green.buttons .button:active,
+.ui.green.button:active {
+ background-color: #4CB164;
+ color: #FFFFFF;
+}
+
+/*--- Red ---*/
+
+.ui.red.buttons .button,
+.ui.red.button {
+ background-color: #D95C5C;
+ color: #FFFFFF;
+}
+
+.ui.red.buttons .button:hover,
+.ui.red.button:hover,
+.ui.red.buttons .active.button,
+.ui.red.button.active {
+ background-color: #E75859;
+ color: #FFFFFF;
+}
+
+.ui.red.buttons .button:active,
+.ui.red.button:active {
+ background-color: #D24B4C;
+ color: #FFFFFF;
+}
+
+/*--- Orange ---*/
+
+.ui.orange.buttons .button,
+.ui.orange.button {
+ background-color: #E96633;
+ color: #FFFFFF;
+}
+
+.ui.orange.buttons .button:hover,
+.ui.orange.button:hover,
+.ui.orange.buttons .active.button,
+.ui.orange.button.active {
+ background-color: #FF7038;
+ color: #FFFFFF;
+}
+
+.ui.orange.buttons .button:active,
+.ui.orange.button:active {
+ background-color: #DA683B;
+ color: #FFFFFF;
+}
+
+/*--- Blue ---*/
+
+.ui.blue.buttons .button,
+.ui.blue.button {
+ background-color: #6ECFF5;
+ color: #FFFFFF;
+}
+
+.ui.blue.buttons .button:hover,
+.ui.blue.button:hover,
+.ui.blue.buttons .active.button,
+.ui.blue.button.active {
+ background-color: #1AB8F3;
+ color: #FFFFFF;
+}
+
+.ui.blue.buttons .button:active,
+.ui.blue.button:active {
+ background-color: #0AA5DF;
+ color: #FFFFFF;
+}
+
+/*--- Purple ---*/
+
+.ui.purple.buttons .button,
+.ui.purple.button {
+ background-color: #564F8A;
+ color: #FFFFFF;
+}
+
+.ui.purple.buttons .button:hover,
+.ui.purple.button:hover,
+.ui.purple.buttons .active.button,
+.ui.purple.button.active {
+ background-color: #3E3773;
+ color: #FFFFFF;
+}
+
+.ui.purple.buttons .button:active,
+.ui.purple.button:active {
+ background-color: #2E2860;
+ color: #FFFFFF;
+}
+
+/*--- Teal ---*/
+
+.ui.teal.buttons .button,
+.ui.teal.button {
+ background-color: #00B5AD;
+ color: #FFFFFF;
+}
+
+.ui.teal.buttons .button:hover,
+.ui.teal.button:hover,
+.ui.teal.buttons .active.button,
+.ui.teal.button.active {
+ background-color: #009A93;
+ color: #FFFFFF;
+}
+
+.ui.teal.buttons .button:active,
+.ui.teal.button:active {
+ background-color: #00847E;
+ color: #FFFFFF;
+}
+
+/*---------------
+ Positive
+----------------*/
+
+.ui.positive.buttons .button,
+.ui.positive.button {
+ background-color: #5BBD72 !important;
+ color: #FFFFFF;
+}
+
+.ui.positive.buttons .button:hover,
+.ui.positive.button:hover,
+.ui.positive.buttons .active.button,
+.ui.positive.button.active {
+ background-color: #58CB73 !important;
+ color: #FFFFFF;
+}
+
+.ui.positive.buttons .button:active,
+.ui.positive.button:active {
+ background-color: #4CB164 !important;
+ color: #FFFFFF;
+}
+
+/*---------------
+ Negative
+----------------*/
+
+.ui.negative.buttons .button,
+.ui.negative.button {
+ background-color: #D95C5C !important;
+ color: #FFFFFF;
+}
+
+.ui.negative.buttons .button:hover,
+.ui.negative.button:hover,
+.ui.negative.buttons .active.button,
+.ui.negative.button.active {
+ background-color: #E75859 !important;
+ color: #FFFFFF;
+}
+
+.ui.negative.buttons .button:active,
+.ui.negative.button:active {
+ background-color: #D24B4C !important;
+ color: #FFFFFF;
+}
+
+/*******************************
+ Groups
+*******************************/
+
+.ui.buttons {
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.ui.buttons:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+.ui.buttons .button:first-child {
+ border-right: none;
+}
+
+.ui.buttons .button {
+ float: right;
+ border-radius: 0em;
+}
+
+.ui.buttons .button:first-child {
+ margin-right: 0em;
+ border-top-right-radius: 0.25em;
+ border-bottom-right-radius: 0.25em;
+}
+
+.ui.buttons .button:last-child {
+ border-top-left-radius: 0.25em;
+ border-bottom-left-radius: 0.25em;
+}
+
+/* Vertical Style */
+
+.ui.vertical.buttons {
+ display: inline-block;
+}
+
+.ui.vertical.buttons .button {
+ display: block;
+ float: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.vertical.buttons .button:first-child,
+.ui.vertical.buttons .mini.button:first-child,
+.ui.vertical.buttons .tiny.button:first-child,
+.ui.vertical.buttons .small.button:first-child,
+.ui.vertical.buttons .massive.button:first-child,
+.ui.vertical.buttons .huge.button:first-child {
+ margin-top: 0px;
+ border-radius: 0.25em 0.25em 0px 0px;
+}
+
+.ui.vertical.buttons .button:last-child,
+.ui.vertical.buttons .mini.button:last-child,
+.ui.vertical.buttons .tiny.button:last-child,
+.ui.vertical.buttons .small.button:last-child,
+.ui.vertical.buttons .massive.button:last-child,
+.ui.vertical.buttons .huge.button:last-child,
+.ui.vertical.buttons .gigantic.button:last-child {
+ border-radius: 0px 0px 0.25em 0.25em;
+}
+/*
+ * # Semantic - Divider
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Divider
+*******************************/
+
+.ui.divider {
+ margin: 1rem 0rem;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ border-bottom: 1px solid rgba(255, 255, 255, 0.8);
+ line-height: 1;
+ height: 0em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+
+.ui.vertical.divider,
+.ui.horizontal.divider {
+ position: absolute;
+ border: none;
+ height: 0em;
+ margin: 0em;
+ background-color: transparent;
+ font-size: 0.875rem;
+ font-weight: bold;
+ text-align: center;
+ text-transform: uppercase;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--------------
+ Vertical
+---------------*/
+
+.ui.vertical.divider {
+ position: absolute;
+ z-index: 2;
+ top: 50%;
+ right: 50%;
+ margin: 0% -3% 0% 0%;
+ width: 6%;
+ height: 50%;
+ line-height: 0;
+ padding: 0em;
+}
+
+.ui.vertical.divider:before,
+.ui.vertical.divider:after {
+ position: absolute;
+ right: 50%;
+ content: " ";
+ z-index: 3;
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
+ border-left: 1px solid rgba(255, 255, 255, 0.8);
+ width: 0%;
+ height: 80%;
+}
+
+.ui.vertical.divider:before {
+ top: -100%;
+}
+
+.ui.vertical.divider:after {
+ top: auto;
+ bottom: 0px;
+}
+
+/*--------------
+ Horizontal
+---------------*/
+
+.ui.horizontal.divider {
+ position: relative;
+ top: 0%;
+ right: 0%;
+ margin: 1rem 1.5rem;
+ height: auto;
+ padding: 0em;
+ line-height: 1;
+}
+
+.ui.horizontal.divider:before,
+.ui.horizontal.divider:after {
+ position: absolute;
+ content: " ";
+ z-index: 3;
+ width: 50%;
+ top: 50%;
+ height: 0%;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ border-bottom: 1px solid rgba(255, 255, 255, 0.8);
+}
+
+.ui.horizontal.divider:before {
+ right: 0%;
+ margin-right: -1.5rem;
+}
+
+.ui.horizontal.divider:after {
+ right: auto;
+ left: 0%;
+ margin-left: -1.5rem;
+}
+
+/*--------------
+ Icon
+---------------*/
+
+.ui.divider > .icon {
+ margin: 0em;
+ font-size: 1rem;
+ vertical-align: middle;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.divider.inverted {
+ color: #ffffff;
+}
+
+.ui.vertical.inverted.divider,
+.ui.horizontal.inverted.divider {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.divider.inverted,
+.ui.divider.inverted:after,
+.ui.divider.inverted:before {
+ border-top-color: rgba(0, 0, 0, 0.15);
+ border-bottom-color: rgba(255, 255, 255, 0.15);
+ border-right-color: rgba(0, 0, 0, 0.15);
+ border-left-color: rgba(255, 255, 255, 0.15);
+}
+
+/*--------------
+ Fitted
+---------------*/
+
+.ui.fitted.divider {
+ margin: 0em;
+}
+
+/*--------------
+ Clearing
+---------------*/
+
+.ui.clearing.divider {
+ clear: both;
+}
+
+/*--------------
+ Section
+---------------*/
+
+.ui.section.divider {
+ margin-top: 2rem;
+ margin-bottom: 2rem;
+}
+/*
+ * # Semantic - Header
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Header
+*******************************/
+
+/* Standard */
+
+.ui.header {
+ border: none;
+ margin: 1em 0em 1rem;
+ padding: 0em;
+ font-size: 1.33em;
+ font-weight: bold;
+ line-height: 1.33;
+}
+
+.ui.header .sub.header {
+ font-size: 1rem;
+ font-weight: normal;
+ margin: 0em;
+ padding: 0em;
+ line-height: 1.2;
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.header .icon {
+ display: table-cell;
+ vertical-align: middle;
+ padding-left: 0.5em;
+}
+
+.ui.header .icon:only-child {
+ display: inline-block;
+ vertical-align: baseline;
+}
+
+.ui.header .content {
+ display: inline-block;
+ vertical-align: top;
+}
+
+.ui.header .icon + .content {
+ padding-right: 0.5em;
+ display: table-cell;
+}
+
+/* Positioning */
+
+.ui.header:first-child {
+ margin-top: 0em;
+}
+
+.ui.header:last-child {
+ margin-bottom: 0em;
+}
+
+.ui.header + p {
+ margin-top: 0em;
+}
+
+/*--------------
+ Page Heading
+---------------*/
+
+h1.ui.header {
+ min-height: 1rem;
+ line-height: 1.33;
+ font-size: 2rem;
+}
+
+h2.ui.header {
+ line-height: 1.33;
+ font-size: 1.75rem;
+}
+
+h3.ui.header {
+ line-height: 1.33;
+ font-size: 1.33rem;
+}
+
+h4.ui.header {
+ line-height: 1.33;
+ font-size: 1.1rem;
+}
+
+h5.ui.header {
+ line-height: 1.2;
+ font-size: 1rem;
+}
+
+/*--------------
+ Content Heading
+---------------*/
+
+.ui.huge.header {
+ min-height: 1em;
+ font-size: 2em;
+}
+
+.ui.large.header {
+ font-size: 1.75em;
+}
+
+.ui.medium.header {
+ font-size: 1.33em;
+}
+
+.ui.small.header {
+ font-size: 1.1em;
+}
+
+.ui.tiny.header {
+ font-size: 1em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Icon
+--------------------*/
+
+.ui.icon.header {
+ display: inline-block;
+ text-align: center;
+}
+
+.ui.icon.header .icon {
+ float: none;
+ display: block;
+ font-size: 3em;
+ margin: 0em auto 0.2em;
+ padding: 0em;
+}
+
+.ui.icon.header .content {
+ display: block;
+}
+
+.ui.icon.header .circular.icon,
+.ui.icon.header .square.icon {
+ font-size: 2em;
+}
+
+.ui.block.icon.header .icon {
+ margin-bottom: 0em;
+}
+
+.ui.icon.header.aligned {
+ margin-right: auto;
+ margin-left: auto;
+ display: block;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.disabled.header {
+ opacity: 0.5;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Colors
+--------------------*/
+
+.ui.blue.header {
+ color: #6ECFF5 !important;
+}
+
+.ui.black.header {
+ color: #5C6166 !important;
+}
+
+.ui.green.header {
+ color: #A1CF64 !important;
+}
+
+.ui.red.header {
+ color: #D95C5C !important;
+}
+
+.ui.purple.header {
+ color: #564F8A !important;
+}
+
+.ui.teal.header {
+ color: #00B5AD !important;
+}
+
+.ui.blue.dividing.header {
+ border-bottom: 3px solid #6ECFF5;
+}
+
+.ui.black.dividing.header {
+ border-bottom: 3px solid #5C6166;
+}
+
+.ui.green.dividing.header {
+ border-bottom: 3px solid #A1CF64;
+}
+
+.ui.red.dividing.header {
+ border-bottom: 3px solid #D95C5C;
+}
+
+.ui.purple.dividing.header {
+ border-bottom: 3px solid #564F8A;
+}
+
+.ui.teal.dividing.header {
+ border-bottom: 3px solid #00B5AD;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.inverted.header {
+ color: #FFFFFF;
+}
+
+.ui.inverted.header .sub.header {
+ color: rgba(255, 255, 255, 0.85);
+}
+
+/*-------------------
+ Inverted Colors
+--------------------*/
+
+.ui.inverted.black.header {
+ background-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.blue.header {
+ background-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.green.header {
+ background-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.red.header {
+ background-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.purple.header {
+ background-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.teal.header {
+ background-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.block.header {
+ border-bottom: none;
+}
+
+/*-------------------
+ Aligned
+--------------------*/
+
+.ui.left.aligned.header {
+ text-align: right;
+}
+
+.ui.right.aligned.header {
+ text-align: left;
+}
+
+.ui.center.aligned.header {
+ text-align: center;
+}
+
+.ui.justified.header {
+ text-align: justify;
+}
+
+.ui.justified.header:after {
+ display: inline-block;
+ content: '';
+ width: 100%;
+}
+
+/*-------------------
+ Floated
+--------------------*/
+
+.ui.floated.header,
+.ui.left.floated.header {
+ float: right;
+ margin-top: 0em;
+ margin-left: 0.5em;
+}
+
+.ui.right.floated.header {
+ float: left;
+ margin-top: 0em;
+ margin-right: 0.5em;
+}
+
+/*-------------------
+ Fittted
+--------------------*/
+
+.ui.fitted.header {
+ padding: 0em;
+}
+
+/*-------------------
+ Dividing
+--------------------*/
+
+.ui.dividing.header {
+ padding-bottom: 0.2rem;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+.ui.dividing.header .sub.header {
+ padding-bottom: 0.5em;
+}
+
+.ui.dividing.header .icon {
+ margin-bottom: 0.2em;
+}
+
+/*-------------------
+ Block
+--------------------*/
+
+.ui.block.header {
+ background-color: rgba(0, 0, 0, 0.05);
+ padding: 0.5em 1em;
+}
+
+/*-------------------
+ Attached
+--------------------*/
+
+.ui.attached.header {
+ background-color: #E0E0E0;
+ padding: 0.5em 1rem;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.top.attached.header {
+ margin-bottom: 0em;
+ border-radius: 0.3125em 0.3125em 0em 0em;
+}
+
+.ui.bottom.attached.header {
+ margin-top: 0em;
+ border-radius: 0em 0em 0.3125em 0.3125em;
+}
+/*
+ * # Semantic - Icon
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*!
+ * Font Awesome 3.2.1
+ * the iconic font designed for Bootstrap
+ * ------------------------------------------------------------------------------
+ * The full suite of pictographic icons, examples, and documentation can be
+ * found at http://fon.io. Stay up to date on Twitter at
+ * http://twitter.com/fon.
+ *
+ * License
+ * ------------------------------------------------------------------------------
+ * - The Font Awesome font is licensed under SIL OFL 1.1 -
+ * http://scripts.sil.org/OFL
+
+/*******************************
+ Icon
+*******************************/
+
+@font-face {
+ font-family: 'Icons';
+ src: url(../fonts/icons.eot);
+ src: url(../fonts/icons.eot?#iefix) format('embedded-opentype'), url(../fonts/icons.svg#icons) format('svg'), url(../fonts/icons.woff) format('woff'), url(../fonts/icons.ttf) format('truetype');
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-decoration: inherit;
+ text-transform: none;
+}
+
+i.icon {
+ display: inline-block;
+ opacity: 0.75;
+ margin: 0em 0em 0em 0.25em;
+ width: 1.23em;
+ height: 1em;
+ font-family: 'Icons';
+ font-style: normal;
+ line-height: 1;
+ font-weight: normal;
+ text-decoration: inherit;
+ text-align: center;
+ speak: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+i.icon.left:before {
+ content: "\f060";
+}
+
+i.icon.right:before {
+ content: "\f061";
+}
+
+i.icon.add.sign.box:before {
+ content: "\f0fe";
+}
+
+i.icon.add.sign:before {
+ content: "\f055";
+}
+
+i.icon.add:before {
+ content: "\f067";
+}
+
+i.icon.adjust:before {
+ content: "\f042";
+}
+
+i.icon.adn:before {
+ content: "\f170";
+}
+
+i.icon.align.center:before {
+ content: "\f037";
+}
+
+i.icon.align.justify:before {
+ content: "\f039";
+}
+
+i.icon.align.left:before {
+ content: "\f036";
+}
+
+i.icon.align.right:before {
+ content: "\f038";
+}
+
+i.icon.ambulance:before {
+ content: "\f0f9";
+}
+
+i.icon.anchor:before {
+ content: "\f13d";
+}
+
+i.icon.android:before {
+ content: "\f17b";
+}
+
+i.icon.angle.down:before {
+ content: "\f107";
+}
+
+i.icon.angle.left:before {
+ content: "\f104";
+}
+
+i.icon.angle.right:before {
+ content: "\f105";
+}
+
+i.icon.angle.up:before {
+ content: "\f106";
+}
+
+i.icon.apple:before {
+ content: "\f179";
+}
+
+i.icon.archive:before {
+ content: "\f187";
+}
+
+i.icon.arrow.down:before {
+ content: "\f078";
+}
+
+i.icon.arrow.left:before {
+ content: "\f053";
+}
+
+i.icon.arrow.right:before {
+ content: "\f054";
+}
+
+i.icon.arrow.sign.down:before {
+ content: "\f13a";
+}
+
+i.icon.arrow.sign.left:before {
+ content: "\f137";
+}
+
+i.icon.arrow.sign.right:before {
+ content: "\f138";
+}
+
+i.icon.arrow.sign.up:before {
+ content: "\f139";
+}
+
+i.icon.arrow.up:before {
+ content: "\f077";
+}
+
+i.icon.asterisk:before {
+ content: "\f069";
+}
+
+i.icon.attachment:before {
+ content: "\f0c6";
+}
+
+i.icon.attention:before {
+ content: "\f06a";
+}
+
+i.icon.backward:before {
+ content: "\f04a";
+}
+
+i.icon.ban.circle:before {
+ content: "\f05e";
+}
+
+i.icon.bar.chart:before {
+ content: "\f080";
+}
+
+i.icon.barcode:before {
+ content: "\f02a";
+}
+
+i.icon.beer:before {
+ content: "\f0fc";
+}
+
+i.icon.bell.outline:before {
+ content: "\f0a2";
+}
+
+i.icon.bell:before {
+ content: "\f0f3";
+}
+
+i.icon.bitbucket.sign:before {
+ content: "\f172";
+}
+
+i.icon.bitbucket:before {
+ content: "\f171";
+}
+
+i.icon.bitcoin:before {
+ content: "\f15a";
+}
+
+i.icon.bold:before {
+ content: "\f032";
+}
+
+i.icon.bolt:before {
+ content: "\f0e7";
+}
+
+i.icon.book:before {
+ content: "\f02d";
+}
+
+i.icon.bookmark.empty:before {
+ content: "\f097";
+}
+
+i.icon.bookmark:before {
+ content: "\f02e";
+}
+
+i.icon.box.arrow.down:before {
+ content: "\f150";
+}
+
+/*rtl:ignore*/
+
+i.icon.box.arrow.right:before {
+ content: "\f152";
+}
+
+i.icon.box.arrow.up:before {
+ content: "\f151";
+}
+
+i.icon.briefcase:before {
+ content: "\f0b1";
+}
+
+i.icon.browser:before {
+ content: "\f022";
+}
+
+i.icon.bug:before {
+ content: "\f188";
+}
+
+i.icon.building:before {
+ content: "\f0f7";
+}
+
+i.icon.bullhorn:before {
+ content: "\f0a1";
+}
+
+i.icon.bullseye:before {
+ content: "\f140";
+}
+
+i.icon.calendar.empty:before {
+ content: "\f133";
+}
+
+i.icon.calendar:before {
+ content: "\f073";
+}
+
+i.icon.camera.retro:before {
+ content: "\f083";
+}
+
+i.icon.camera:before {
+ content: "\f030";
+}
+
+i.icon.triangle.down:before {
+ content: "\f0d7";
+}
+
+i.icon.triangle.left:before {
+ content: "\f0d9";
+}
+
+i.icon.triangle.right:before {
+ content: "\f0da";
+}
+
+i.icon.triangle.up:before {
+ content: "\f0d8";
+}
+
+i.icon.cart:before {
+ content: "\f07a";
+}
+
+i.icon.certificate:before {
+ content: "\f0a3";
+}
+
+i.icon.chat.outline:before {
+ content: "\f0e6";
+}
+
+i.icon.chat:before {
+ content: "\f086";
+}
+
+i.icon.checkbox.empty:before {
+ content: "\f096";
+}
+
+i.icon.checkbox.minus:before {
+ content: "\f147";
+}
+
+i.icon.checked.checkbox:before {
+ content: "\f046";
+}
+
+i.icon.checkmark.sign:before {
+ content: "\f14a";
+}
+
+i.icon.checkmark:before {
+ content: "\f00c";
+}
+
+i.icon.circle.blank:before {
+ content: "\f10c";
+}
+
+i.icon.circle.down:before {
+ content: "\f0ab";
+}
+
+i.icon.circle.left:before {
+ content: "\f0a8";
+}
+
+i.icon.circle.right:before {
+ content: "\f0a9";
+}
+
+i.icon.circle.up:before {
+ content: "\f0aa";
+}
+
+i.icon.circle:before {
+ content: "\f111";
+}
+
+i.icon.cloud.download:before {
+ content: "\f0ed";
+}
+
+i.icon.cloud.upload:before {
+ content: "\f0ee";
+}
+
+i.icon.cloud:before {
+ content: "\f0c2";
+}
+
+i.icon.code.fork:before {
+ content: "\f126";
+}
+
+i.icon.code:before {
+ content: "\f121";
+}
+
+i.icon.coffee:before {
+ content: "\f0f4";
+}
+
+i.icon.collapse:before {
+ content: "\f117";
+}
+
+i.icon.comment.outline:before {
+ content: "\f0e5";
+}
+
+i.icon.comment:before {
+ content: "\f075";
+}
+
+i.icon.copy:before {
+ content: "\f0c5";
+}
+
+i.icon.crop:before {
+ content: "\f125";
+}
+
+i.icon.css3:before {
+ content: "\f13c";
+}
+
+i.icon.cut:before {
+ content: "\f0c4";
+}
+
+i.icon.dashboard:before {
+ content: "\f0e4";
+}
+
+i.icon.desktop:before {
+ content: "\f108";
+}
+
+i.icon.doctor:before {
+ content: "\f0f0";
+}
+
+i.icon.dollar:before {
+ content: "\f155";
+}
+
+i.icon.double.angle.down:before {
+ content: "\f103";
+}
+
+i.icon.double.angle.left:before {
+ content: "\f100";
+}
+
+i.icon.double.angle.right:before {
+ content: "\f101";
+}
+
+i.icon.double.angle.up:before {
+ content: "\f102";
+}
+
+i.icon.down:before {
+ content: "\f063";
+}
+
+i.icon.download.disk:before {
+ content: "\f019";
+}
+
+i.icon.download:before {
+ content: "\f01a";
+}
+
+i.icon.dribbble:before {
+ content: "\f17d";
+}
+
+i.icon.dropbox:before {
+ content: "\f16b";
+}
+
+i.icon.edit.sign:before {
+ content: "\f14b";
+}
+
+i.icon.edit:before {
+ content: "\f044";
+}
+
+i.icon.eject:before {
+ content: "\f052";
+}
+
+i.icon.ellipsis.horizontal:before {
+ content: "\f141";
+}
+
+i.icon.ellipsis.vertical:before {
+ content: "\f142";
+}
+
+i.icon.eraser:before {
+ content: "\f12d";
+}
+
+i.icon.euro:before {
+ content: "\f153";
+}
+
+i.icon.exchange:before {
+ content: "\f0ec";
+}
+
+i.icon.exclamation:before {
+ content: "\f12a";
+}
+
+i.icon.expand:before {
+ content: "\f116";
+}
+
+i.icon.external.url.sign:before {
+ content: "\f14c";
+}
+
+i.icon.external.url:before {
+ content: "\f08e";
+}
+
+i.icon.facebook.sign:before {
+ content: "\f082";
+}
+
+i.icon.facebook:before {
+ content: "\f09a";
+}
+
+i.icon.facetime.video:before {
+ content: "\f03d";
+}
+
+i.icon.fast.backward:before {
+ content: "\f049";
+}
+
+i.icon.fast.forward:before {
+ content: "\f050";
+}
+
+i.icon.female:before {
+ content: "\f182";
+}
+
+i.icon.fighter.jet:before {
+ content: "\f0fb";
+}
+
+i.icon.file.outline:before {
+ content: "\f016";
+}
+
+i.icon.file.text.outline:before {
+ content: "\f0f6";
+}
+
+i.icon.file.text:before {
+ content: "\f15c";
+}
+
+i.icon.file:before {
+ content: "\f15b";
+}
+
+i.icon.filter:before {
+ content: "\f0b0";
+}
+
+i.icon.fire.extinguisher:before {
+ content: "\f134";
+}
+
+i.icon.fire:before {
+ content: "\f06d";
+}
+
+i.icon.flag.checkered:before {
+ content: "\f11e";
+}
+
+i.icon.flag.empty:before {
+ content: "\f11d";
+}
+
+i.icon.flag:before {
+ content: "\f024";
+}
+
+i.icon.flickr:before {
+ content: "\f16e";
+}
+
+i.icon.folder.open.outline:before {
+ content: "\f115";
+}
+
+i.icon.folder.open:before {
+ content: "\f07c";
+}
+
+i.icon.folder.outline:before {
+ content: "\f114";
+}
+
+i.icon.folder:before {
+ content: "\f07b";
+}
+
+i.icon.font:before {
+ content: "\f031";
+}
+
+i.icon.food:before {
+ content: "\f0f5";
+}
+
+i.icon.forward.mail:before {
+ content: "\f064";
+}
+
+i.icon.forward:before {
+ content: "\f04e";
+}
+
+i.icon.foursquare:before {
+ content: "\f180";
+}
+
+i.icon.frown:before {
+ content: "\f119";
+}
+
+i.icon.fullscreen:before {
+ content: "\f0b2";
+}
+
+i.icon.gamepad:before {
+ content: "\f11b";
+}
+
+i.icon.gift:before {
+ content: "\f06b";
+}
+
+i.icon.github.alternate:before {
+ content: "\f09b";
+}
+
+i.icon.github.sign:before {
+ content: "\f092";
+}
+
+i.icon.github:before {
+ content: "\f113";
+}
+
+i.icon.gittip:before {
+ content: "\f184";
+}
+
+i.icon.glass:before {
+ content: "\f000";
+}
+
+i.icon.globe:before {
+ content: "\f0ac";
+}
+
+i.icon.google.plus.sign:before {
+ content: "\f0d4";
+}
+
+i.icon.google.plus:before {
+ content: "\f0d5";
+}
+
+i.icon.h.sign:before {
+ content: "\f0fd";
+}
+
+i.icon.hand.down:before {
+ content: "\f0a7";
+}
+
+i.icon.hand.left:before {
+ content: "\f0a5";
+}
+
+i.icon.hand.right:before {
+ content: "\f0a4";
+}
+
+i.icon.hand.up:before {
+ content: "\f0a6";
+}
+
+i.icon.hdd:before {
+ content: "\f0a0";
+}
+
+i.icon.headphones:before {
+ content: "\f025";
+}
+
+i.icon.heart.empty:before {
+ content: "\f08a";
+}
+
+i.icon.heart:before {
+ content: "\f004";
+}
+
+i.icon.help:before {
+ content: "\f059";
+}
+
+i.icon.hide:before {
+ content: "\f070";
+}
+
+i.icon.home:before {
+ content: "\f015";
+}
+
+i.icon.hospital:before {
+ content: "\f0f8";
+}
+
+i.icon.html5:before {
+ content: "\f13b";
+}
+
+i.icon.inbox:before {
+ content: "\f01c";
+}
+
+i.icon.indent.left:before {
+ content: "\f03b";
+}
+
+i.icon.indent.right:before {
+ content: "\f03c";
+}
+
+i.icon.info.letter:before {
+ content: "\f129";
+}
+
+i.icon.info:before {
+ content: "\f05a";
+}
+
+i.icon.instagram:before {
+ content: "\f16d";
+}
+
+i.icon.italic:before {
+ content: "\f033";
+}
+
+i.icon.key:before {
+ content: "\f084";
+}
+
+i.icon.keyboard:before {
+ content: "\f11c";
+}
+
+i.icon.lab:before {
+ content: "\f0c3";
+}
+
+i.icon.laptop:before {
+ content: "\f109";
+}
+
+i.icon.layout.block:before {
+ content: "\f009";
+}
+
+i.icon.layout.column:before {
+ content: "\f0db";
+}
+
+i.icon.layout.grid:before {
+ content: "\f00a";
+}
+
+i.icon.layout.list:before {
+ content: "\f00b";
+}
+
+i.icon.leaf:before {
+ content: "\f06c";
+}
+
+i.icon.legal:before {
+ content: "\f0e3";
+}
+
+i.icon.lemon:before {
+ content: "\f094";
+}
+
+i.icon.level.down:before {
+ content: "\f149";
+}
+
+i.icon.level.up:before {
+ content: "\f148";
+}
+
+i.icon.lightbulb:before {
+ content: "\f0eb";
+}
+
+i.icon.linkedin.sign:before {
+ content: "\f08c";
+}
+
+i.icon.linkedin:before {
+ content: "\f0e1";
+}
+
+i.icon.linux:before {
+ content: "\f17c";
+}
+
+i.icon.list.ordered:before {
+ content: "\f0cb";
+}
+
+i.icon.list.unordered:before {
+ content: "\f0ca";
+}
+
+i.icon.list:before {
+ content: "\f03a";
+}
+
+i.icon.loading:before {
+ content: "\f110";
+}
+
+i.icon.location:before {
+ content: "\f124";
+}
+
+i.icon.lock:before {
+ content: "\f023";
+}
+
+i.icon.long.arrow.down:before {
+ content: "\f175";
+}
+
+i.icon.long.arrow.left:before {
+ content: "\f177";
+}
+
+i.icon.long.arrow.right:before {
+ content: "\f178";
+}
+
+i.icon.long.arrow.up:before {
+ content: "\f176";
+}
+
+i.icon.magic:before {
+ content: "\f0d0";
+}
+
+i.icon.magnet:before {
+ content: "\f076";
+}
+
+i.icon.mail.outline:before {
+ content: "\f003";
+}
+
+i.icon.mail.reply:before {
+ content: "\f112";
+}
+
+i.icon.mail:before {
+ content: "\f0e0";
+}
+
+i.icon.male:before {
+ content: "\f183";
+}
+
+i.icon.map.marker:before {
+ content: "\f041";
+}
+
+i.icon.map:before {
+ content: "\f14e";
+}
+
+i.icon.maxcdn:before {
+ content: "\f136";
+}
+
+i.icon.medkit:before {
+ content: "\f0fa";
+}
+
+i.icon.meh:before {
+ content: "\f11a";
+}
+
+i.icon.minus.sign.alternate:before {
+ content: "\f146";
+}
+
+i.icon.minus.sign:before {
+ content: "\f056";
+}
+
+i.icon.minus:before {
+ content: "\f068";
+}
+
+i.icon.mobile:before {
+ content: "\f10b";
+}
+
+i.icon.money:before {
+ content: "\f0d6";
+}
+
+i.icon.moon:before {
+ content: "\f186";
+}
+
+i.icon.move:before {
+ content: "\f047";
+}
+
+i.icon.music:before {
+ content: "\f001";
+}
+
+i.icon.mute:before {
+ content: "\f131";
+}
+
+i.icon.off:before {
+ content: "\f011";
+}
+
+i.icon.ok.circle:before {
+ content: "\f05d";
+}
+
+i.icon.ok.sign:before {
+ content: "\f058";
+}
+
+i.icon.paste:before {
+ content: "\f0ea";
+}
+
+i.icon.pause:before {
+ content: "\f04c";
+}
+
+i.icon.payment:before {
+ content: "\f09d";
+}
+
+i.icon.pencil:before {
+ content: "\f040";
+}
+
+i.icon.phone.sign:before {
+ content: "\f098";
+}
+
+i.icon.phone:before {
+ content: "\f095";
+}
+
+i.icon.photo:before {
+ content: "\f03e";
+}
+
+i.icon.pin:before {
+ content: "\f08d";
+}
+
+i.icon.pinterest.sign:before {
+ content: "\f0d3";
+}
+
+i.icon.pinterest:before {
+ content: "\f0d2";
+}
+
+i.icon.plane:before {
+ content: "\f072";
+}
+
+i.icon.play.circle:before {
+ content: "\f01d";
+}
+
+i.icon.play.sign:before {
+ content: "\f144";
+}
+
+i.icon.play:before {
+ content: "\f04b";
+}
+
+i.icon.pound:before {
+ content: "\f154";
+}
+
+i.icon.print:before {
+ content: "\f02f";
+}
+
+i.icon.puzzle.piece:before {
+ content: "\f12e";
+}
+
+i.icon.qr.code:before {
+ content: "\f029";
+}
+
+i.icon.question:before {
+ content: "\f128";
+}
+
+i.icon.quote.left:before {
+ content: "\f10d";
+}
+
+i.icon.quote.right:before {
+ content: "\f10e";
+}
+
+i.icon.refresh:before {
+ content: "\f021";
+}
+
+i.icon.remove.circle:before {
+ content: "\f05c";
+}
+
+i.icon.remove.sign:before {
+ content: "\f057";
+}
+
+i.icon.remove:before {
+ content: "\f00d";
+}
+
+i.icon.renren:before {
+ content: "\f18b";
+}
+
+i.icon.reorder:before {
+ content: "\f0c9";
+}
+
+i.icon.repeat:before {
+ content: "\f01e";
+}
+
+i.icon.reply.all.mail:before {
+ content: "\f122";
+}
+
+i.icon.resize.full:before {
+ content: "\f065";
+}
+
+i.icon.resize.horizontal:before {
+ content: "\f07e";
+}
+
+i.icon.resize.small:before {
+ content: "\f066";
+}
+
+i.icon.resize.vertical:before {
+ content: "\f07d";
+}
+
+i.icon.retweet:before {
+ content: "\f079";
+}
+
+i.icon.road:before {
+ content: "\f018";
+}
+
+i.icon.rocket:before {
+ content: "\f135";
+}
+
+i.icon.rss.sign:before {
+ content: "\f143";
+}
+
+i.icon.rss:before {
+ content: "\f09e";
+}
+
+i.icon.rupee:before {
+ content: "\f156";
+}
+
+i.icon.save:before {
+ content: "\f0c7";
+}
+
+i.icon.screenshot:before {
+ content: "\f05b";
+}
+
+i.icon.search:before {
+ content: "\f002";
+}
+
+i.icon.setting:before {
+ content: "\f013";
+}
+
+i.icon.settings:before {
+ content: "\f085";
+}
+
+i.icon.share.sign:before {
+ content: "\f14d";
+}
+
+i.icon.share:before {
+ content: "\f045";
+}
+
+i.icon.shield:before {
+ content: "\f132";
+}
+
+i.icon.shuffle:before {
+ content: "\f074";
+}
+
+i.icon.sign.in:before {
+ content: "\f090";
+}
+
+i.icon.sign.out:before {
+ content: "\f08b";
+}
+
+i.icon.sign:before {
+ content: "\f0c8";
+}
+
+i.icon.signal:before {
+ content: "\f012";
+}
+
+i.icon.sitemap:before {
+ content: "\f0e8";
+}
+
+i.icon.skype:before {
+ content: "\f17e";
+}
+
+i.icon.smile:before {
+ content: "\f118";
+}
+
+i.icon.sort.ascending:before {
+ content: "\f0de";
+}
+
+i.icon.sort.descending:before {
+ content: "\f0dd";
+}
+
+i.icon.sort.alphabet.descending:before {
+ content: "\f15e";
+}
+
+i.icon.sort.alphabet:before {
+ content: "\f15d";
+}
+
+i.icon.sort.attributes.descending:before {
+ content: "\f161";
+}
+
+i.icon.sort.attributes:before {
+ content: "\f160";
+}
+
+i.icon.sort.order.descending:before {
+ content: "\f163";
+}
+
+i.icon.sort.order:before {
+ content: "\f162";
+}
+
+i.icon.sort:before {
+ content: "\f0dc";
+}
+
+i.icon.stackexchange:before {
+ content: "\f16c";
+}
+
+i.icon.star.empty:before {
+ content: "\f006";
+}
+
+i.icon.star.half.empty:before {
+ content: "\f123";
+}
+
+i.icon.star.half.full:before,
+i.icon.star.half:before {
+ content: "\f089";
+}
+
+i.icon.star:before {
+ content: "\f005";
+}
+
+i.icon.step.backward:before {
+ content: "\f048";
+}
+
+i.icon.step.forward:before {
+ content: "\f051";
+}
+
+i.icon.stethoscope:before {
+ content: "\f0f1";
+}
+
+i.icon.stop:before {
+ content: "\f04d";
+}
+
+i.icon.strikethrough:before {
+ content: "\f0cc";
+}
+
+i.icon.subscript:before {
+ content: "\f12c";
+}
+
+i.icon.suitcase:before {
+ content: "\f0f2";
+}
+
+i.icon.sun:before {
+ content: "\f185";
+}
+
+i.icon.superscript:before {
+ content: "\f12b";
+}
+
+i.icon.table:before {
+ content: "\f0ce";
+}
+
+i.icon.tablet:before {
+ content: "\f10a";
+}
+
+i.icon.tag:before {
+ content: "\f02b";
+}
+
+i.icon.tags:before {
+ content: "\f02c";
+}
+
+i.icon.tasks:before {
+ content: "\f0ae";
+}
+
+i.icon.terminal:before {
+ content: "\f120";
+}
+
+i.icon.text.height:before {
+ content: "\f034";
+}
+
+i.icon.text.width:before {
+ content: "\f035";
+}
+
+i.icon.thumbs.down.outline:before {
+ content: "\f088";
+}
+
+i.icon.thumbs.down:before {
+ content: "\f165";
+}
+
+i.icon.thumbs.up.outline:before {
+ content: "\f087";
+}
+
+i.icon.thumbs.up:before {
+ content: "\f164";
+}
+
+i.icon.ticket:before {
+ content: "\f145";
+}
+
+i.icon.time:before {
+ content: "\f017";
+}
+
+i.icon.tint:before {
+ content: "\f043";
+}
+
+i.icon.trash:before {
+ content: "\f014";
+}
+
+i.icon.trello:before {
+ content: "\f181";
+}
+
+i.icon.trophy:before {
+ content: "\f091";
+}
+
+i.icon.truck:before {
+ content: "\f0d1";
+}
+
+i.icon.tumblr.sign:before {
+ content: "\f174";
+}
+
+i.icon.tumblr:before {
+ content: "\f173";
+}
+
+i.icon.twitter.sign:before {
+ content: "\f081";
+}
+
+i.icon.twitter:before {
+ content: "\f099";
+}
+
+i.icon.umbrella:before {
+ content: "\f0e9";
+}
+
+i.icon.underline:before {
+ content: "\f0cd";
+}
+
+i.icon.undo:before {
+ content: "\f0e2";
+}
+
+i.icon.unhide:before {
+ content: "\f06e";
+}
+
+i.icon.unlink:before {
+ content: "\f127";
+}
+
+i.icon.unlock.alternate:before {
+ content: "\f13e";
+}
+
+i.icon.unlock:before {
+ content: "\f09c";
+}
+
+i.icon.unmute:before {
+ content: "\f130";
+}
+
+i.icon.up:before {
+ content: "\f062";
+}
+
+i.icon.upload.disk:before {
+ content: "\f093";
+}
+
+i.icon.upload:before {
+ content: "\f01b";
+}
+
+i.icon.url:before {
+ content: "\f0c1";
+}
+
+i.icon.user:before {
+ content: "\f007";
+}
+
+i.icon.users:before {
+ content: "\f0c0";
+}
+
+i.icon.video:before {
+ content: "\f008";
+}
+
+i.icon.vk:before {
+ content: "\f189";
+}
+
+i.icon.volume.down:before {
+ content: "\f027";
+}
+
+i.icon.volume.off:before {
+ content: "\f026";
+}
+
+i.icon.volume.up:before {
+ content: "\f028";
+}
+
+i.icon.warning:before {
+ content: "\f071";
+}
+
+i.icon.weibo:before {
+ content: "\f18a";
+}
+
+i.icon.windows:before {
+ content: "\f17a";
+}
+
+i.icon.won:before {
+ content: "\f159";
+}
+
+i.icon.wrench:before {
+ content: "\f0ad";
+}
+
+i.icon.xing.sign:before {
+ content: "\f169";
+}
+
+i.icon.xing:before {
+ content: "\f168";
+}
+
+i.icon.yen:before {
+ content: "\f157";
+}
+
+i.icon.youtube.play:before {
+ content: "\f16a";
+}
+
+i.icon.youtube.sign:before {
+ content: "\f166";
+}
+
+i.icon.youtube:before {
+ content: "\f167";
+}
+
+i.icon.yuan:before {
+ content: "\f158";
+}
+
+i.icon.zoom.in:before {
+ content: "\f00e";
+}
+
+i.icon.zoom.out:before {
+ content: "\f010";
+}
+
+/*--------------
+ Aliases
+---------------*/
+
+i.icon.check:before {
+ content: "\f00c";
+}
+
+i.icon.close:before {
+ content: "\f00d";
+}
+
+i.icon.delete:before {
+ content: "\f00d";
+}
+
+i.icon.like:before {
+ content: "\f004";
+}
+
+i.icon.plus:before {
+ content: "\f067";
+}
+
+i.icon.signup:before {
+ content: "\f044";
+}
+
+/*--------------
+ Spacing Fix
+---------------*/
+
+/* stars are usually consecutive */
+
+i.icon.star {
+ width: auto;
+ margin: 0em;
+}
+
+/* left side icons */
+
+i.icon.left {
+ width: auto;
+ margin: 0em 0em 0em 0.5em;
+}
+
+/* right side icons */
+
+i.icon.search,
+i.icon.right {
+ width: auto;
+ margin: 0em 0.5em 0em 0em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Loading
+---------------*/
+
+i.icon.loading {
+ -webkit-animation: icon-loading 2s linear infinite;
+ -moz-animation: icon-loading 2s linear infinite;
+ -ms-animation: icon-loading 2s linear infinite;
+ animation: icon-loading 2s linear infinite;
+}
+
+@keyframes icon-loading {
+ from {
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ to {
+ -webkit-transform: rotate(360deg);
+ -moz-transform: rotate(360deg);
+ -ms-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-moz-keyframes icon-loading {
+ from {
+ -moz-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ to {
+ -moz-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-webkit-keyframes icon-loading {
+ from {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ to {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-ms-keyframes icon-loading {
+ from {
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ to {
+ -ms-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+/*******************************
+ States
+*******************************/
+
+i.icon.hover {
+ opacity: 1;
+}
+
+i.icon.active {
+ opacity: 1;
+}
+
+i.emphasized.icon {
+ opacity: 1;
+}
+
+i.icon.disabled {
+ opacity: 0.3;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Link
+--------------------*/
+
+i.link.icon {
+ cursor: pointer;
+ opacity: 0.7;
+ -webkit-transition: opacity 0.3s ease-out;
+ -moz-transition: opacity 0.3s ease-out;
+ transition: opacity 0.3s ease-out;
+}
+
+i.link.icon:hover {
+ opacity: 1 !important;
+}
+
+/*-------------------
+ Circular
+--------------------*/
+
+i.circular.icon {
+ border-radius: !important 500em;
+ padding: 0.5em 0.35em !important;
+ -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ line-height: 1 !important;
+ width: 2em !important;
+ height: 2em !important;
+}
+
+i.circular.inverted.icon {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Flipped
+--------------------*/
+
+i.flipped.icon,
+i.horizontally.flipped.icon {
+ -webkit-transform: scale(-1, 1);
+ -moz-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+
+i.vertically.flipped.icon {
+ -webkit-transform: scale(1, -1);
+ -moz-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+
+/*-------------------
+ Rotated
+--------------------*/
+
+i.rotated.icon,
+i.right.rotated.icon,
+i.clockwise.rotated.icon {
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+
+i.left.rotated.icon,
+i.counterclockwise.rotated.icon {
+ -webkit-transform: rotate(-90deg);
+ -moz-transform: rotate(-90deg);
+ -ms-transform: rotate(-90deg);
+ transform: rotate(-90deg);
+}
+
+/*-------------------
+ Square
+--------------------*/
+
+i.square.icon {
+ width: 2em;
+ height: 2em;
+ padding: 0.5em 0.35em !important;
+ -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ vertical-align: baseline;
+}
+
+i.square.inverted.icon {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+i.inverted.icon {
+ background-color: #222222;
+ color: #FFFFFF;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+i.blue.icon {
+ color: #6ECFF5 !important;
+}
+
+i.black.icon {
+ color: #5C6166 !important;
+}
+
+i.green.icon {
+ color: #A1CF64 !important;
+}
+
+i.red.icon {
+ color: #D95C5C !important;
+}
+
+i.purple.icon {
+ color: #564F8A !important;
+}
+
+i.orange.icon {
+ color: #F05940 !important;
+}
+
+i.teal.icon {
+ color: #00B5AD !important;
+}
+
+/*-------------------
+ Inverted Colors
+--------------------*/
+
+i.inverted.black.icon {
+ background-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.blue.icon {
+ background-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.green.icon {
+ background-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.red.icon {
+ background-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.purple.icon {
+ background-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.orange.icon {
+ background-color: #F05940 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.teal.icon {
+ background-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+i.small.icon {
+ font-size: 0.875em;
+}
+
+i.icon {
+ font-size: 1em;
+}
+
+i.large.icon {
+ font-size: 1.5em;
+ vertical-align: middle;
+}
+
+i.big.icon {
+ font-size: 2em;
+ vertical-align: middle;
+}
+
+i.huge.icon {
+ font-size: 4em;
+ vertical-align: middle;
+}
+
+i.massive.icon {
+ font-size: 8em;
+ vertical-align: middle;
+}
+/*
+ * # Semantic - Image
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Image
+*******************************/
+
+.ui.image {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+ max-width: 100%;
+ background-color: rgba(0, 0, 0, 0.05);
+}
+
+img.ui.image {
+ display: block;
+ background: none;
+}
+
+.ui.image img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.disabled.image {
+ cursor: default;
+ opacity: 0.3;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Rounded
+---------------*/
+
+.ui.rounded.images .image,
+.ui.rounded.images img,
+.ui.rounded.image img,
+.ui.rounded.image {
+ border-radius: 0.3125em;
+}
+
+/*--------------
+ Circular
+---------------*/
+
+.ui.circular.images .image,
+.ui.circular.images img,
+.ui.circular.image img,
+.ui.circular.image {
+ border-radius: 500rem;
+}
+
+/*--------------
+ Fluid
+---------------*/
+
+.ui.fluid.images,
+.ui.fluid.image,
+.ui.fluid.images img,
+.ui.fluid.image img {
+ display: block;
+ width: 100%;
+}
+
+/*--------------
+ Avatar
+---------------*/
+
+.ui.avatar.images .image,
+.ui.avatar.images img,
+.ui.avatar.image img,
+.ui.avatar.image {
+ margin-left: 0.5em;
+ display: inline-block;
+ width: 2em;
+ height: 2em;
+ border-radius: 500rem;
+}
+
+/*-------------------
+ Floated
+--------------------*/
+
+.ui.floated.image,
+.ui.floated.images {
+ float: right;
+ margin-left: 1em;
+ margin-bottom: 1em;
+}
+
+.ui.right.floated.images,
+.ui.right.floated.image {
+ float: left;
+ margin-bottom: 1em;
+ margin-right: 1em;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.tiny.images .image,
+.ui.tiny.images img,
+.ui.tiny.image {
+ width: 20px;
+ font-size: 0.7rem;
+}
+
+.ui.mini.images .image,
+.ui.mini.images img,
+.ui.mini.image {
+ width: 35px;
+ font-size: 0.8rem;
+}
+
+.ui.small.images .image,
+.ui.small.images img,
+.ui.small.image {
+ width: 80px;
+ font-size: 0.9rem;
+}
+
+.ui.medium.images .image,
+.ui.medium.images img,
+.ui.medium.image {
+ width: 300px;
+ font-size: 1rem;
+}
+
+.ui.large.images .image,
+.ui.large.images img,
+.ui.large.image {
+ width: 450px;
+ font-size: 1.1rem;
+}
+
+.ui.huge.images .image,
+.ui.huge.images img,
+.ui.huge.image {
+ width: 600px;
+ font-size: 1.2rem;
+}
+
+/*******************************
+ Groups
+*******************************/
+
+.ui.images {
+ font-size: 0em;
+ margin: 0em -0.25rem 0rem;
+}
+
+.ui.images .image,
+.ui.images img {
+ display: inline-block;
+ margin: 0em 0.25em 0.5em;
+}
+/*
+ * # Semantic - Input
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------------
+ Inputs
+---------------------*/
+
+.ui.input {
+ display: inline-block;
+ position: relative;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.input input {
+ width: 100%;
+ font-family: "Helvetica Neue", "Helvetica", Arial;
+ margin: 0em;
+ padding: 0.65em 1em;
+ font-size: 1em;
+ background-color: #FFFFFF;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ outline: none;
+ color: rgba(0, 0, 0, 0.7);
+ border-radius: 0.3125em;
+ -webkit-transition: background-color 0.3s ease-out, -webkit-box-shadow 0.2s ease, border-color 0.2s ease;
+ -moz-transition: background-color 0.3s ease-out, box-shadow 0.2s ease, border-color 0.2s ease;
+ transition: background-color 0.3s ease-out, box-shadow 0.2s ease, border-color 0.2s ease;
+ -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*--------------------
+ Placeholder
+---------------------*/
+
+/* browsers require these rules separate */
+
+.ui.input::-webkit-input-placeholder {
+ color: #BBBBBB;
+}
+
+.ui.input::-moz-placeholder {
+ color: #BBBBBB;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------------
+ Active
+---------------------*/
+
+.ui.input input:active,
+.ui.input.down input {
+ border-color: rgba(0, 0, 0, 0.3);
+ background-color: #FAFAFA;
+}
+
+/*--------------------
+ Loading
+---------------------*/
+
+.ui.loading.input > .icon {
+ background: url(../images/loader-mini.gif) no-repeat 50% 50%;
+}
+
+.ui.loading.input > .icon:before,
+.ui.loading.input > .icon:after {
+ display: none;
+}
+
+/*--------------------
+ Focus
+---------------------*/
+
+.ui.input.focus input,
+.ui.input input:focus {
+ border-color: rgba(0, 0, 0, 0.2);
+ color: rgba(0, 0, 0, 0.85);
+}
+
+.ui.input.focus input input::-webkit-input-placeholder,
+.ui.input input:focus input::-webkit-input-placeholder {
+ color: #AAAAAA;
+}
+
+.ui.input.focus input input::-moz-placeholder,
+.ui.input input:focus input::-moz-placeholder {
+ color: #AAAAAA;
+}
+
+/*--------------------
+ Error
+---------------------*/
+
+.ui.input.error input {
+ background-color: #FFFAFA;
+ border-color: #E7BEBE;
+ color: #D95C5C;
+}
+
+/* Error Placeholder */
+
+.ui.input.error input ::-webkit-input-placeholder {
+ color: rgba(255, 80, 80, 0.4);
+}
+
+.ui.input.error input ::-moz-placeholder {
+ color: rgba(255, 80, 80, 0.4);
+}
+
+.ui.input.error input :focus::-webkit-input-placeholder {
+ color: rgba(255, 80, 80, 0.7);
+}
+
+.ui.input.error input :focus::-moz-placeholder {
+ color: rgba(255, 80, 80, 0.7);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------------
+ Transparent
+---------------------*/
+
+.ui.transparent.input input {
+ border: none;
+ background-color: transparent;
+}
+
+/*--------------------
+ Icon
+---------------------*/
+
+.ui.icon.input > .icon {
+ cursor: default;
+ position: absolute;
+ opacity: 0.5;
+ top: 0px;
+ left: 0px;
+ margin: 0em;
+ width: 2.6em;
+ height: 100%;
+ padding-top: 0.82em;
+ text-align: center;
+ border-radius: 0.3125em 0em 0em 0.3125em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-transition: opacity 0.3s ease-out;
+ -moz-transition: opacity 0.3s ease-out;
+ transition: opacity 0.3s ease-out;
+}
+
+.ui.icon.input > .link.icon {
+ cursor: pointer;
+}
+
+.ui.icon.input input {
+ padding-left: 3em !important;
+}
+
+.ui.icon.input > .circular.icon {
+ top: 0.35em;
+ left: 0.5em;
+}
+
+/* Left Side */
+
+.ui.left.icon.input > .icon {
+ left: auto;
+ right: 1px;
+ border-radius: 0em 0.3125em 0.3125em 0em;
+}
+
+.ui.left.icon.input > .circular.icon {
+ left: auto;
+ right: 0.5em;
+}
+
+.ui.left.icon.input > input {
+ padding-right: 3em !important;
+ padding-left: 1.2em !important;
+}
+
+/* Focus */
+
+.ui.icon.input > input:focus ~ .icon {
+ opacity: 1;
+}
+
+/*--------------------
+ Labeled
+---------------------*/
+
+.ui.labeled.input .corner.label {
+ font-size: 0.7em;
+ border-radius: 0.3125em 0;
+}
+
+.ui.labeled.input .left.corner.label {
+ border-radius: 0 0.3125em;
+}
+
+.ui.labeled.input input {
+ padding-left: 2.5em !important;
+}
+
+/* Spacing with corner label */
+
+.ui.labeled.icon.input:not(.left) > input {
+ padding-left: 3.25em !important;
+}
+
+.ui.labeled.icon.input:not(.left) > .icon {
+ margin-left: 1.25em;
+}
+
+/*--------------------
+ Action
+---------------------*/
+
+.ui.action.input {
+ display: table;
+}
+
+.ui.action.input > input {
+ display: table-cell;
+ border-top-left-radius: 0px !important;
+ border-bottom-left-radius: 0px !important;
+ border-left: none;
+}
+
+.ui.action.input > .button,
+.ui.action.input > .buttons {
+ display: table-cell;
+ border-top-right-radius: 0px;
+ border-bottom-right-radius: 0px;
+ white-space: nowrap;
+}
+
+.ui.action.input > .button > .icon,
+.ui.action.input > .buttons > .button > .icon {
+ display: inline;
+ vertical-align: top;
+}
+
+.ui.fluid.action.input {
+ display: table;
+ width: 100%;
+}
+
+.ui.fluid.action.input > .button {
+ width: 0.01%;
+}
+
+/*--------------------
+ Fluid
+---------------------*/
+
+.ui.fluid.input {
+ display: block;
+}
+
+/*--------------------
+ Size
+---------------------*/
+
+.ui.mini.input {
+ font-size: 0.8125em;
+}
+
+.ui.small.input {
+ font-size: 0.875em;
+}
+
+.ui.input {
+ font-size: 1em;
+}
+
+.ui.large.input {
+ font-size: 1.125em;
+}
+
+.ui.big.input {
+ font-size: 1.25em;
+}
+
+.ui.huge.input {
+ font-size: 1.375em;
+}
+
+.ui.massive.input {
+ font-size: 1.5em;
+}
+/*
+ * # Semantic - Label
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Label
+*******************************/
+
+.ui.label {
+ display: inline-block;
+ vertical-align: middle;
+ margin: -0.25em 0.25em 0em;
+ background-color: #E8E8E8;
+ border-color: #E8E8E8;
+ padding: 0.5em 0.8em;
+ color: rgba(0, 0, 0, 0.65);
+ text-transform: uppercase;
+ font-weight: normal;
+ border-radius: 0.325em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-transition: background 0.1s linear;
+ -moz-transition: background 0.1s linear;
+ transition: background 0.1s linear;
+}
+
+.ui.label:first-child {
+ margin-right: 0em;
+}
+
+.ui.label:last-child {
+ margin-left: 0em;
+}
+
+/* Link */
+
+a.ui.label {
+ cursor: pointer;
+}
+
+/* Inside Link */
+
+.ui.label a {
+ cursor: pointer;
+ color: inherit;
+ opacity: 0.8;
+ -webkit-transition: 0.2s opacity ease;
+ -moz-transition: 0.2s opacity ease;
+ transition: 0.2s opacity ease;
+}
+
+.ui.label a:hover {
+ opacity: 1;
+}
+
+/* Detail */
+
+.ui.label .detail {
+ display: inline-block;
+ margin-right: 0.5em;
+ font-weight: bold;
+ opacity: 0.8;
+}
+
+/* Icon */
+
+.ui.label .icon {
+ width: auto;
+}
+
+/* Removable label */
+
+.ui.label .delete.icon {
+ cursor: pointer;
+ margin: 0em 0.5em 0em 0em;
+ opacity: 0.7;
+ -webkit-transition: background 0.1s linear;
+ -moz-transition: background 0.1s linear;
+ transition: background 0.1s linear;
+}
+
+.ui.label .delete.icon:hover {
+ opacity: 0.99;
+}
+
+/*-------------------
+ Coupling
+--------------------*/
+
+/* Padding on next content after a label */
+
+.ui.segment > .attached.label:first-child + * {
+ margin-top: 2.5em;
+}
+
+.ui.segment > .bottom.attached.label:first-child ~ :last-child {
+ margin-top: 0em;
+ margin-bottom: 2.5em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+.ui.image.label {
+ width: auto !important;
+ margin-top: 0em;
+ margin-bottom: 0em;
+ padding-top: 0.4em;
+ padding-bottom: 0.4em;
+ line-height: 1.5em;
+ vertical-align: baseline;
+ text-transform: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.image.label img {
+ display: inline-block;
+ height: 2.25em;
+ margin: -0.4em -0.8em -0.4em 0.8em;
+ vertical-align: top;
+ border-radius: 0em 0.325em 0.325em 0em;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*-------------------
+ Disabled
+--------------------*/
+
+.ui.label.disabled {
+ opacity: 0.5;
+}
+
+/*-------------------
+ Hover
+--------------------*/
+
+a.ui.labels .label:hover,
+a.ui.label:hover {
+ background-color: #E0E0E0;
+ border-color: #E0E0E0;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.labels a.label:hover:before,
+a.ui.label:hover:before {
+ background-color: #E0E0E0;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+/*-------------------
+ Visible
+--------------------*/
+
+.ui.labels.visible .label,
+.ui.label.visible {
+ display: inline-block !important;
+}
+
+/*-------------------
+ Hidden
+--------------------*/
+
+.ui.labels.hidden .label,
+.ui.label.hidden {
+ display: none !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Tag
+--------------------*/
+
+.ui.tag.labels .label,
+.ui.tag.label {
+ margin-right: 1em;
+ position: relative;
+ padding: 0.33em 1.4em 0.33em 1.3em;
+ border-radius: 3px 0px 0px 3px;
+}
+
+.ui.tag.labels .label:before,
+.ui.tag.label:before {
+ position: absolute;
+ top: 0.3em;
+ right: 0.3em;
+ content: '';
+ margin-right: -1em;
+ background-image: none;
+ width: 1.5em;
+ height: 1.5em;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ -webkit-transition: background 0.1s linear;
+ -moz-transition: background 0.1s linear;
+ transition: background 0.1s linear;
+}
+
+.ui.tag.labels .label:after,
+.ui.tag.label:after {
+ position: absolute;
+ content: '';
+ top: 50%;
+ right: -0.25em;
+ margin-top: -0.3em;
+ background-color: #FFFFFF;
+ width: 0.55em;
+ height: 0.55em;
+ -webkit-box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.3);
+ box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.3);
+ border-radius: 100px 100px 100px 100px;
+}
+
+/*-------------------
+ Ribbon
+--------------------*/
+
+.ui.ribbon.label {
+ position: relative;
+ margin: 0em 0.2em;
+ right: -2rem;
+ padding-right: 2rem;
+ border-radius: 4px 0px 0px 4px;
+ border-color: rgba(0, 0, 0, 0.15);
+}
+
+.ui.ribbon.label:after {
+ position: absolute;
+ content: "";
+ top: 100%;
+ right: 0%;
+ border-top: 0em solid transparent;
+ border-left-width: 1em;
+ border-left-color: inherit;
+ border-left-style: solid;
+ border-bottom: 1em solid transparent;
+ border-right: 0em solid transparent;
+ width: 0em;
+ height: 0em;
+}
+
+/*-------------------
+ Attached
+--------------------*/
+
+.ui.top.attached.label,
+.ui.attached.label {
+ width: 100%;
+ position: absolute;
+ margin: 0em;
+ top: 0em;
+ right: 0em;
+ padding: 0.75em 1em;
+ border-radius: 4px 4px 0em 0em;
+}
+
+.ui.bottom.attached.label {
+ top: auto;
+ bottom: 0em;
+ border-radius: 0em 0em 4px 4px;
+}
+
+.ui.top.left.attached.label {
+ width: auto;
+ margin-top: 0em !important;
+ border-radius: 0em 4px 0em 4px;
+}
+
+.ui.top.right.attached.label {
+ width: auto;
+ right: auto;
+ left: 0em;
+ border-radius: 4px 0em 4px 0em;
+}
+
+.ui.bottom.left.attached.label {
+ width: auto;
+ top: auto;
+ bottom: 0em;
+ border-radius: 0em 4px 4px 0em;
+}
+
+.ui.bottom.right.attached.label {
+ top: auto;
+ bottom: 0em;
+ right: auto;
+ left: 0em;
+ width: auto;
+ border-radius: 0em 4px 0em 4px;
+}
+
+/*-------------------
+ Corner Label
+--------------------*/
+
+.ui.corner.label {
+ background-color: transparent;
+ position: absolute;
+ top: 0em;
+ left: 0em;
+ z-index: 10;
+ margin: 0em;
+ width: 3em;
+ height: 3em;
+ padding: 0em;
+ text-align: center;
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+.ui.corner.label:after {
+ position: absolute;
+ content: "";
+ left: 0em;
+ top: 0em;
+ z-index: -1;
+ width: 0em;
+ height: 0em;
+ border-top: 0em solid transparent;
+ border-left: 3em solid transparent;
+ border-bottom: 3em solid transparent;
+ border-right: 0em solid transparent;
+ border-left-color: inherit;
+ -webkit-transition: border-color 0.2s ease;
+ -moz-transition: border-color 0.2s ease;
+ transition: border-color 0.2s ease;
+}
+
+.ui.corner.label .icon {
+ font-size: 0.875em;
+ margin: 0.5em 1.25em 0em 0em;
+}
+
+.ui.corner.label .text {
+ display: inline-block;
+ font-weight: bold;
+ margin: 0.5em 1em 0em 0em;
+ width: 2.5em;
+ font-size: 0.875em;
+ text-align: center;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+}
+
+/* Coupling */
+
+.ui.rounded.image > .ui.corner.label,
+.ui.input > .ui.corner.label,
+.ui.segment > .ui.corner.label {
+ overflow: hidden;
+}
+
+.ui.segment > .ui.corner.label {
+ top: -1px;
+ left: -1px;
+}
+
+.ui.segment > .ui.left.corner.label {
+ left: auto;
+ right: -1px;
+}
+
+.ui.input > .ui.corner.label {
+ top: 1px;
+ left: 1px;
+}
+
+.ui.input > .ui.right.corner.label {
+ left: auto;
+ right: 1px;
+}
+
+/* Left Corner */
+
+.ui.left.corner.label,
+.ui.left.corner.label:after {
+ left: auto;
+ right: 0em;
+}
+
+.ui.left.corner.label:after {
+ border-top: 3em solid transparent;
+ border-left: 3em solid transparent;
+ border-bottom: 0em solid transparent;
+ border-right: 0em solid transparent;
+ border-top-color: inherit;
+}
+
+.ui.left.corner.label .icon {
+ margin: 0.5em -1em 0em 0em;
+}
+
+.ui.left.corner.label .text {
+ margin: 0.5em -1em 0em 0em;
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+}
+
+/* Hover */
+
+.ui.corner.label:hover {
+ background-color: transparent;
+}
+
+/*-------------------
+ Fluid
+--------------------*/
+
+.ui.label.fluid,
+.ui.fluid.labels > .label {
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.inverted.labels .label,
+.ui.inverted.label {
+ color: #FFFFFF !important;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+/*--- Black ---*/
+
+.ui.black.labels .label,
+.ui.black.label {
+ background-color: #5C6166 !important;
+ border-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .black.label:before,
+.ui.black.labels .label:before,
+.ui.black.label:before {
+ background-color: #5C6166 !important;
+}
+
+/* Hover */
+
+a.ui.black.labels .label:hover,
+a.ui.black.label:hover {
+ background-color: #333333 !important;
+ border-color: #333333 !important;
+}
+
+.ui.labels a.black.label:hover:before,
+.ui.black.labels a.label:hover:before,
+a.ui.black.label:hover:before {
+ background-color: #333333 !important;
+}
+
+/* Corner */
+
+.ui.black.corner.label,
+.ui.black.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.black.ribbon.label {
+ border-color: #333333 !important;
+}
+
+/*--- Green ---*/
+
+.ui.green.labels .label,
+.ui.green.label {
+ background-color: #A1CF64 !important;
+ border-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .green.label:before,
+.ui.green.labels .label:before,
+.ui.green.label:before {
+ background-color: #A1CF64 !important;
+}
+
+/* Hover */
+
+a.ui.green.labels .label:hover,
+a.ui.green.label:hover {
+ background-color: #89B84C !important;
+ border-color: #89B84C !important;
+}
+
+.ui.labels a.green.label:hover:before,
+.ui.green.labels a.label:hover:before,
+a.ui.green.label:hover:before {
+ background-color: #89B84C !important;
+}
+
+/* Corner */
+
+.ui.green.corner.label,
+.ui.green.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.green.ribbon.label {
+ border-color: #89B84C !important;
+}
+
+/*--- Red ---*/
+
+.ui.red.labels .label,
+.ui.red.label {
+ background-color: #D95C5C !important;
+ border-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .red.label:before,
+.ui.red.labels .label:before,
+.ui.red.label:before {
+ background-color: #D95C5C !important;
+}
+
+/* Corner */
+
+.ui.red.corner.label,
+.ui.red.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Hover */
+
+a.ui.red.labels .label:hover,
+a.ui.red.label:hover {
+ background-color: #DE3859 !important;
+ border-color: #DE3859 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.red.label:hover:before,
+.ui.red.labels a.label:hover:before,
+a.ui.red.label:hover:before {
+ background-color: #DE3859 !important;
+}
+
+/* Ribbon */
+
+.ui.red.ribbon.label {
+ border-color: #DE3859 !important;
+}
+
+/*--- Blue ---*/
+
+.ui.blue.labels .label,
+.ui.blue.label {
+ background-color: #6ECFF5 !important;
+ border-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .blue.label:before,
+.ui.blue.labels .label:before,
+.ui.blue.label:before {
+ background-color: #6ECFF5 !important;
+}
+
+/* Hover */
+
+a.ui.blue.labels .label:hover,
+.ui.blue.labels a.label:hover,
+a.ui.blue.label:hover {
+ background-color: #1AB8F3 !important;
+ border-color: #1AB8F3 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.blue.label:hover:before,
+.ui.blue.labels a.label:hover:before,
+a.ui.blue.label:hover:before {
+ background-color: #1AB8F3 !important;
+}
+
+/* Corner */
+
+.ui.blue.corner.label,
+.ui.blue.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.blue.ribbon.label {
+ border-color: #1AB8F3 !important;
+}
+
+/*--- Purple ---*/
+
+.ui.purple.labels .label,
+.ui.purple.label {
+ background-color: #564F8A !important;
+ border-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .purple.label:before,
+.ui.purple.labels .label:before,
+.ui.purple.label:before {
+ background-color: #564F8A !important;
+}
+
+/* Hover */
+
+a.ui.purple.labels .label:hover,
+.ui.purple.labels a.label:hover,
+a.ui.purple.label:hover {
+ background-color: #3E3773 !important;
+ border-color: #3E3773 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.purple.label:hover:before,
+.ui.purple.labels a.label:hover:before,
+a.ui.purple.label:hover:before {
+ background-color: #3E3773 !important;
+}
+
+/* Corner */
+
+.ui.purple.corner.label,
+.ui.purple.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.purple.ribbon.label {
+ border-color: #3E3773 !important;
+}
+
+/*--- Orange ---*/
+
+.ui.orange.labels .label,
+.ui.orange.label {
+ background-color: #F05940 !important;
+ border-color: #F05940 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .orange.label:before,
+.ui.orange.labels .label:before,
+.ui.orange.label:before {
+ background-color: #F05940 !important;
+}
+
+/* Hover */
+
+a.ui.orange.labels .label:hover,
+.ui.orange.labels a.label:hover,
+a.ui.orange.label:hover {
+ background-color: #FF4121 !important;
+ border-color: #FF4121 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.orange.label:hover:before,
+.ui.orange.labels a.label:hover:before,
+a.ui.orange.label:hover:before {
+ background-color: #FF4121 !important;
+}
+
+/* Corner */
+
+.ui.orange.corner.label,
+.ui.orange.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.orange.ribbon.label {
+ border-color: #FF4121 !important;
+}
+
+/*--- Teal ---*/
+
+.ui.teal.labels .label,
+.ui.teal.label {
+ background-color: #00B5AD !important;
+ border-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .teal.label:before,
+.ui.teal.labels .label:before,
+.ui.teal.label:before {
+ background-color: #00B5AD !important;
+}
+
+/* Hover */
+
+a.ui.teal.labels .label:hover,
+.ui.teal.labels a.label:hover,
+a.ui.teal.label:hover {
+ background-color: #009A93 !important;
+ border-color: #009A93 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.teal.label:hover:before,
+.ui.teal.labels a.label:hover:before,
+a.ui.teal.label:hover:before {
+ background-color: #009A93 !important;
+}
+
+/* Corner */
+
+.ui.teal.corner.label,
+.ui.teal.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.teal.ribbon.label {
+ border-color: #009A93 !important;
+}
+
+/*-------------------
+ Horizontal
+--------------------*/
+
+.ui.horizontal.labels .label,
+.ui.horizontal.label {
+ margin: -0.125em 0em -0.125em 0.5em;
+ padding: 0.35em 1em;
+ min-width: 6em;
+ text-align: center;
+}
+
+/*-------------------
+ Circular
+--------------------*/
+
+.ui.circular.labels .label,
+.ui.circular.label {
+ min-height: 1em;
+ max-height: 2em;
+ padding: 0.5em !important;
+ line-height: 1em;
+ text-align: center;
+ border-radius: 500rem;
+}
+
+/*-------------------
+ Pointing
+--------------------*/
+
+.ui.pointing.label {
+ position: relative;
+}
+
+.ui.attached.pointing.label {
+ position: absolute;
+}
+
+.ui.pointing.label:before {
+ position: absolute;
+ content: "";
+ width: 0.6em;
+ height: 0.6em;
+ background-image: none;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ z-index: 2;
+ -webkit-transition: background 0.1s linear;
+ -moz-transition: background 0.1s linear;
+ transition: background 0.1s linear;
+}
+
+/*--- Above ---*/
+
+.ui.pointing.label:before {
+ background-color: #E8E8E8;
+}
+
+.ui.pointing.label,
+.ui.pointing.above.label {
+ margin-top: 1em;
+}
+
+.ui.pointing.label:before,
+.ui.pointing.above.label:before {
+ margin-right: -0.3em;
+ top: -0.3em;
+ right: 50%;
+}
+
+/*--- Below ---*/
+
+.ui.pointing.below.label {
+ margin-top: 0em;
+ margin-bottom: 1em;
+}
+
+.ui.pointing.below.label:before {
+ margin-right: -0.3em;
+ top: auto;
+ left: auto;
+ bottom: -0.3em;
+ right: 50%;
+}
+
+/*--- Left ---*/
+
+.ui.pointing.left.label {
+ margin-top: 0em;
+ margin-right: 1em;
+}
+
+.ui.pointing.left.label:before {
+ margin-top: -0.3em;
+ bottom: auto;
+ left: auto;
+ top: 50%;
+ right: 0em;
+}
+
+/*--- Right ---*/
+
+.ui.pointing.right.label {
+ margin-top: 0em;
+ margin-left: 1em;
+}
+
+.ui.pointing.right.label:before {
+ margin-top: -0.3em;
+ left: -0.3em;
+ top: 50%;
+ bottom: auto;
+ right: auto;
+}
+
+/*------------------
+ Floating Label
+-------------------*/
+
+.ui.floating.label {
+ position: absolute;
+ z-index: 100;
+ top: -1em;
+ right: 100%;
+ margin: 0em -1.5em 0em 0em !important;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+.ui.small.labels .label,
+.ui.small.label {
+ font-size: 0.75rem;
+}
+
+.ui.label {
+ font-size: 0.8125rem;
+}
+
+.ui.large.labels .label,
+.ui.large.label {
+ font-size: 0.875rem;
+}
+
+.ui.huge.labels .label,
+.ui.huge.label {
+ font-size: 1rem;
+}
+/*
+ * # Semantic - Loader
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Loader
+*******************************/
+
+/* Standard Size */
+
+.ui.loader {
+ display: none;
+ position: absolute;
+ top: 50%;
+ right: 50%;
+ margin: 0px;
+ z-index: 1000;
+ -webkit-transform: translateX(-50%) translateY(-50%);
+ -moz-transform: translateX(-50%) translateY(-50%);
+ -ms-transform: translateX(-50%) translateY(-50%);
+ transform: translateX(-50%) translateY(-50%);
+}
+
+.ui.dimmer .loader {
+ display: block;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Text
+--------------------*/
+
+.ui.text.loader {
+ width: auto !important;
+ height: auto !important;
+ text-align: center;
+ font-style: normal;
+}
+
+.ui.mini.text.loader {
+ min-width: 16px;
+ padding-top: 2em;
+ font-size: 0.875em;
+}
+
+.ui.small.text.loader {
+ min-width: 24px;
+ padding-top: 2.5em;
+ font-size: 0.875em;
+}
+
+.ui.text.loader {
+ min-width: 32px;
+ font-size: 1em;
+ padding-top: 3em;
+}
+
+.ui.large.text.loader {
+ min-width: 64px;
+ padding-top: 5em;
+ font-size: 1.2em;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.loader.active,
+.ui.loader.visible {
+ display: block;
+}
+
+.ui.loader.disabled,
+.ui.loader.hidden {
+ display: none;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.dimmer .ui.text.loader,
+.ui.inverted.text.loader {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.dimmer .ui.text.loader {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/* Tiny Size */
+
+.ui.dimmer .mini.ui.loader,
+.ui.inverted .mini.ui.loader {
+ background-image: url(../images/loader-mini-inverted.gif);
+}
+
+/* Small Size */
+
+.ui.dimmer .small.ui.loader,
+.ui.inverted .small.ui.loader {
+ background-image: url(../images/loader-small-inverted.gif);
+}
+
+/* Standard Size */
+
+.ui.dimmer .ui.loader,
+.ui.inverted.loader {
+ background-image: url(../images/loader-medium-inverted.gif);
+}
+
+/* Large Size */
+
+.ui.dimmer .large.ui.loader,
+.ui.inverted .large.ui.loader {
+ background-image: url(../images/loader-large-inverted.gif);
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+/* Tiny Size */
+
+.ui.inverted.dimmer .ui.mini.loader,
+.ui.mini.loader {
+ width: 16px;
+ height: 16px;
+ background-image: url(../images/loader-mini.gif);
+}
+
+/* Small Size */
+
+.ui.inverted.dimmer .ui.small.loader,
+.ui.small.loader {
+ width: 24px;
+ height: 24px;
+ background-image: url(../images/loader-small.gif);
+}
+
+.ui.inverted.dimmer .ui.loader,
+.ui.loader {
+ width: 32px;
+ height: 32px;
+ background: url(../images/loader-medium.gif) no-repeat;
+ background-position: 52% 0px;
+}
+
+/* Large Size */
+
+.ui.inverted.dimmer .ui.loader.large,
+.ui.loader.large {
+ width: 64px;
+ height: 64px;
+ background-image: url(../images/loader-large.gif);
+}
+
+/*-------------------
+ Inline
+--------------------*/
+
+.ui.inline.loader {
+ position: static;
+ vertical-align: middle;
+ margin: 0em;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+}
+
+.ui.inline.loader.active,
+.ui.inline.loader.visible {
+ display: inline-block;
+}
+/*
+ * # Semantic - Progress Bar
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Progress Bar
+*******************************/
+
+.ui.progress {
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ width: 100%;
+ height: 35px;
+ background-color: #FAFAFA;
+ padding: 5px;
+ border-radius: 0.3125em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.progress .bar {
+ display: inline-block;
+ height: 100%;
+ background-color: #CCCCCC;
+ border-radius: 3px;
+ -webkit-transition: width 1s ease-in-out, background-color 1s ease-out;
+ -moz-transition: width 1s ease-in-out, background-color 1s ease-out;
+ transition: width 1s ease-in-out, background-color 1s ease-out;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Successful
+---------------*/
+
+.ui.successful.progress .bar {
+ background-color: #73E064 !important;
+}
+
+.ui.successful.progress .bar,
+.ui.successful.progress .bar::after {
+ -webkit-animation: none !important;
+ -moz-animation: none !important;
+ animation: none !important;
+}
+
+.ui.warning.progress .bar {
+ background-color: #E96633 !important;
+}
+
+.ui.warning.progress .bar,
+.ui.warning.progress .bar::after {
+ -webkit-animation: none !important;
+ -moz-animation: none !important;
+ animation: none !important;
+}
+
+/*--------------
+ Failed
+---------------*/
+
+.ui.failed.progress .bar {
+ background-color: #DF9BA4 !important;
+}
+
+.ui.failed.progress .bar,
+.ui.failed.progress .bar::after {
+ -webkit-animation: none !important;
+ -moz-animation: none !important;
+ animation: none !important;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.active.progress .bar {
+ position: relative;
+}
+
+.ui.active.progress .bar::after {
+ content: '';
+ opacity: 0;
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ left: 0px;
+ bottom: 0px;
+ background: #FFFFFF;
+ border-radius: 3px;
+ -webkit-animation: progress-active 2s ease-out infinite;
+ -moz-animation: progress-active 2s ease-out infinite;
+ animation: progress-active 2s ease-out infinite;
+}
+
+@-webkit-keyframes progress-active {
+ 0% {
+ opacity: 0;
+ width: 0;
+ }
+
+ 50% {
+ opacity: 0.3;
+ }
+
+ 100% {
+ opacity: 0;
+ width: 95%;
+ }
+}
+
+@-moz-keyframes progress-active {
+ 0% {
+ opacity: 0;
+ width: 0;
+ }
+
+ 50% {
+ opacity: 0.3;
+ }
+
+ 100% {
+ opacity: 0;
+ width: 100%;
+ }
+}
+
+@keyframes progress-active {
+ 0% {
+ opacity: 0;
+ width: 0;
+ }
+
+ 50% {
+ opacity: 0.3;
+ }
+
+ 100% {
+ opacity: 0;
+ width: 100%;
+ }
+}
+
+/*--------------
+ Disabled
+---------------*/
+
+.ui.disabled.progress {
+ opacity: 0.35;
+}
+
+.ui.disabled.progress .bar,
+.ui.disabled.progress .bar::after {
+ -webkit-animation: none !important;
+ -moz-animation: none !important;
+ animation: none !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Attached
+---------------*/
+
+/* bottom attached */
+
+.ui.progress.attached {
+ position: relative;
+ border: none;
+}
+
+.ui.progress.attached,
+.ui.progress.attached .bar {
+ display: block;
+ height: 3px;
+ padding: 0px;
+ overflow: hidden;
+ border-radius: 0em 0em 0.3125em 0.3125em;
+}
+
+.ui.progress.attached .bar {
+ border-radius: 0em;
+}
+
+/* top attached */
+
+.ui.progress.top.attached,
+.ui.progress.top.attached .bar {
+ top: -2px;
+ border-radius: 0.3125em 0.3125em 0em 0em;
+}
+
+.ui.progress.top.attached .bar {
+ border-radius: 0em;
+}
+
+/*--------------
+ Colors
+---------------*/
+
+.ui.blue.progress .bar {
+ background-color: #6ECFF5;
+}
+
+.ui.black.progress .bar {
+ background-color: #5C6166;
+}
+
+.ui.green.progress .bar {
+ background-color: #A1CF64;
+}
+
+.ui.red.progress .bar {
+ background-color: #EF4D6D;
+}
+
+.ui.purple.progress .bar {
+ background-color: #564F8A;
+}
+
+.ui.teal.progress .bar {
+ background-color: #00B5AD;
+}
+
+/*--------------
+ Striped
+---------------*/
+
+.ui.progress.striped .bar {
+ -webkit-background-size: 30px 30px;
+ background-size: 30px 30px;
+ background-image: -webkit-gradient(linear, right top, left bottom, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+ background-image: -webkit-linear-gradient(135deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -moz-linear-gradient(135deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -webkit-linear-gradient(315deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -moz-linear-gradient(315deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+
+.ui.progress.active.striped .bar:after {
+ -webkit-animation: none;
+ -moz-animation: none;
+ -ms-animation: none;
+ animation: none;
+}
+
+.ui.progress.active.striped .bar {
+ -webkit-animation: progress-striped 3s linear infinite;
+ -moz-animation: progress-striped 3s linear infinite;
+ animation: progress-striped 3s linear infinite;
+}
+
+@-webkit-keyframes progress-striped {
+ 0% {
+ background-position: 0px 0;
+ }
+
+ 100% {
+ background-position: 60px 0;
+ }
+}
+
+@-moz-keyframes progress-striped {
+ 0% {
+ background-position: 0px 0;
+ }
+
+ 100% {
+ background-position: 60px 0;
+ }
+}
+
+@keyframes progress-striped {
+ 0% {
+ background-position: 0px 0;
+ }
+
+ 100% {
+ background-position: 60px 0;
+ }
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.small.progress .bar {
+ height: 14px;
+}
+/*
+ * # Semantic - Reveal
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Reveal
+*******************************/
+
+.ui.reveal {
+ display: inline-block;
+ position: relative !important;
+ z-index: 2 !important;
+ font-size: 0em !important;
+}
+
+.ui.reveal > .content {
+ font-size: 1rem !important;
+}
+
+.ui.reveal > .visible.content {
+ -webkit-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ -moz-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+}
+
+.ui.reveal > .visible.content {
+ position: absolute !important;
+ top: 0em !important;
+ right: 0em !important;
+ z-index: 4 !important;
+ -webkit-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ -moz-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+}
+
+.ui.reveal > .hidden.content {
+ position: relative !important;
+ z-index: 3 !important;
+}
+
+/*------------------
+ Loose Coupling
+-------------------*/
+
+.ui.reveal.button {
+ overflow: hidden;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Slide
+---------------*/
+
+.ui.slide.reveal {
+ position: relative !important;
+ display: block;
+ overflow: hidden !important;
+ white-space: nowrap;
+}
+
+.ui.slide.reveal > .content {
+ display: block;
+ float: right;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 0em;
+ -webkit-transition: top 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, right 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, left 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, bottom 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ -moz-transition: top 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, right 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, left 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, bottom 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ transition: top 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, right 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, left 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, bottom 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+}
+
+.ui.slide.reveal > .visible.content {
+ position: relative !important;
+}
+
+.ui.slide.reveal > .hidden.content {
+ position: absolute !important;
+ right: 100% !important;
+ width: 100% !important;
+}
+
+.ui.slide.reveal:hover > .visible.content,
+.ui.slide.reveal:focus > .visible.content {
+ right: -100% !important;
+}
+
+.ui.slide.reveal:hover > .hidden.content,
+.ui.slide.reveal:focus > .hidden.content {
+ right: 0% !important;
+}
+
+.ui.right.slide.reveal > .visible.content {
+ right: 0%;
+}
+
+.ui.right.slide.reveal > .hidden.content {
+ right: auto !important;
+ left: 100% !important;
+}
+
+.ui.right.slide.reveal:hover > .visible.content,
+.ui.right.slide.reveal:focus > .visible.content {
+ right: 100% !important;
+ left: auto !important;
+}
+
+.ui.right.slide.reveal:hover > .hidden.content,
+.ui.right.slide.reveal:focus > .hidden.content {
+ right: auto !important;
+ left: 0% !important;
+}
+
+.ui.up.slide.reveal > .visible.content {
+ top: 0% !important;
+ right: 0% !important;
+ left: auto !important;
+ bottom: auto !important;
+}
+
+.ui.up.slide.reveal > .hidden.content {
+ top: 100% !important;
+ right: 0% !important;
+ left: auto !important;
+ bottom: auto !important;
+}
+
+.ui.slide.up.reveal:hover > .visible.content,
+.ui.slide.up.reveal:focus > .visible.content {
+ top: -100% !important;
+ right: 0% !important;
+}
+
+.ui.slide.up.reveal:hover > .hidden.content,
+.ui.slide.up.reveal:focus > .hidden.content {
+ top: 0% !important;
+ right: 0% !important;
+}
+
+.ui.down.slide.reveal > .visible.content {
+ top: auto !important;
+ left: auto !important;
+ bottom: auto !important;
+ bottom: 0% !important;
+}
+
+.ui.down.slide.reveal > .hidden.content {
+ top: auto !important;
+ left: auto !important;
+ bottom: 100% !important;
+ right: 0% !important;
+}
+
+.ui.slide.down.reveal:hover > .visible.content,
+.ui.slide.down.reveal:focus > .visible.content {
+ right: 0% !important;
+ bottom: -100% !important;
+}
+
+.ui.slide.down.reveal:hover > .hidden.content,
+.ui.slide.down.reveal:focus > .hidden.content {
+ right: 0% !important;
+ bottom: 0% !important;
+}
+
+/*--------------
+ Fade
+---------------*/
+
+.ui.fade.reveal > .visible.content {
+ opacity: 1;
+}
+
+.ui.fade.reveal:hover > .visible.content,
+.ui.fade.reveal:focus > .visible.content {
+ opacity: 0;
+}
+
+/*--------------
+ Move
+---------------*/
+
+.ui.move.reveal > .visible.content,
+.ui.move.left.reveal > .visible.content {
+ right: auto !important;
+ top: auto !important;
+ bottom: auto !important;
+ left: 0% !important;
+}
+
+.ui.move.reveal:hover > .visible.content,
+.ui.move.left.reveal:hover > .visible.content,
+.ui.move.reveal:focus > .visible.content,
+.ui.move.left.reveal:focus > .visible.content {
+ left: 100% !important;
+}
+
+.ui.move.right.reveal > .visible.content {
+ left: auto !important;
+ top: auto !important;
+ bottom: auto !important;
+ right: 0% !important;
+}
+
+.ui.move.right.reveal:hover > .visible.content,
+.ui.move.right.reveal:focus > .visible.content {
+ right: 100% !important;
+}
+
+.ui.move.up.reveal > .visible.content {
+ left: auto !important;
+ right: auto !important;
+ top: auto !important;
+ bottom: 0% !important;
+}
+
+.ui.move.up.reveal:hover > .visible.content,
+.ui.move.up.reveal:focus > .visible.content {
+ bottom: 100% !important;
+}
+
+.ui.move.down.reveal > .visible.content {
+ left: auto !important;
+ right: auto !important;
+ top: 0% !important;
+ bottom: auto !important;
+}
+
+.ui.move.down.reveal:hover > .visible.content,
+.ui.move.down.reveal:focus > .visible.content {
+ top: 100% !important;
+}
+
+/*--------------
+ Rotate
+---------------*/
+
+.ui.rotate.reveal > .visible.content {
+ -webkit-transition-duration: 0.8s;
+ -moz-transition-duration: 0.8s;
+ transition-duration: 0.8s;
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+}
+
+.ui.rotate.reveal > .visible.content,
+.ui.rotate.right.reveal > .visible.content {
+ -webkit-transform-origin: bottom left;
+ -moz-transform-origin: bottom left;
+ -ms-transform-origin: bottom left;
+ transform-origin: bottom left;
+}
+
+.ui.rotate.reveal:hover > .visible.content,
+.ui.rotate.right.reveal:hover > .visible.content,
+.ui.rotate.reveal:focus > .visible.content,
+.ui.rotate.right.reveal:focus > .visible.content {
+ -webkit-transform: rotate(110deg);
+ -moz-transform: rotate(110deg);
+ -ms-transform: rotate(110deg);
+ transform: rotate(110deg);
+}
+
+.ui.rotate.left.reveal > .visible.content {
+ -webkit-transform-origin: bottom right;
+ -moz-transform-origin: bottom right;
+ -ms-transform-origin: bottom right;
+ transform-origin: bottom right;
+}
+
+.ui.rotate.left.reveal:hover > .visible.content,
+.ui.rotate.left.reveal:focus > .visible.content {
+ -webkit-transform: rotate(-110deg);
+ -moz-transform: rotate(-110deg);
+ -ms-transform: rotate(-110deg);
+ transform: rotate(-110deg);
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.disabled.reveal {
+ opacity: 1 !important;
+}
+
+.ui.disabled.reveal > .content {
+ -webkit-transition: none !important;
+ -moz-transition: none !important;
+ transition: none !important;
+}
+
+.ui.disabled.reveal:hover > .visible.content,
+.ui.disabled.reveal:focus > .visible.content {
+ position: static !important;
+ display: block !important;
+ opacity: 1 !important;
+ top: 0 !important;
+ right: 0 !important;
+ left: auto !important;
+ bottom: auto !important;
+ -webkit-transform: none !important;
+ -moz-transform: none !important;
+ -ms-transform: none !important;
+ transform: none !important;
+}
+
+.ui.disabled.reveal:hover > .hidden.content,
+.ui.disabled.reveal:focus > .hidden.content {
+ display: none !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Masked
+---------------*/
+
+.ui.masked.reveal {
+ overflow: hidden;
+}
+
+/*--------------
+ Instant
+---------------*/
+
+.ui.instant.reveal > .content {
+ -webkit-transition-delay: 0s !important;
+ -moz-transition-delay: 0s !important;
+ transition-delay: 0s !important;
+}
+/*
+ * # Semantic - Segment
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Segment
+*******************************/
+
+.ui.segment {
+ position: relative;
+ background-color: #FFFFFF;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ margin: 1em 0em;
+ padding: 1em;
+ border-radius: 5px 5px 5px 5px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.segment:first-child {
+ margin-top: 0em;
+}
+
+.ui.segment:last-child {
+ margin-bottom: 0em;
+}
+
+.ui.segment:after {
+ content: '';
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+.ui.vertical.segment {
+ margin: 0em;
+ padding-right: 0em;
+ padding-left: 0em;
+ background-color: transparent;
+ border-radius: 0px;
+ -webkit-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.1);
+}
+
+.ui.vertical.segment:first-child {
+ padding-top: 0em;
+}
+
+.ui.horizontal.segment {
+ margin: 0em;
+ padding-top: 0em;
+ padding-bottom: 0em;
+ background-color: transparent;
+ border-radius: 0px;
+ -webkit-box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1);
+ box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1);
+}
+
+.ui.horizontal.segment:first-child {
+ padding-right: 0em;
+}
+
+/*-------------------
+ Loose Coupling
+--------------------*/
+
+.ui.pointing.menu ~ .ui.attached.segment {
+ top: 1px;
+}
+
+.ui.page.grid.segment .ui.grid .ui.segment.column {
+ padding-top: 2rem;
+ padding-bottom: 2rem;
+}
+
+.ui.grid.segment,
+.ui.grid .ui.segment.row,
+.ui.grid .ui.segment.column {
+ border-radius: 0em;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border: none;
+}
+
+/* No padding on edge content */
+
+.ui.segment > :first-child {
+ margin-top: 0em;
+}
+
+.ui.segment > :last-child {
+ margin-bottom: 0em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Piled
+--------------------*/
+
+.ui.piled.segment {
+ margin: 2em 0em;
+ -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15);
+ -ms-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15);
+ -o-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15);
+ box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15);
+}
+
+.ui.piled.segment:first-child {
+ margin-top: 0em;
+}
+
+.ui.piled.segment:last-child {
+ margin-bottom: 0em;
+}
+
+.ui.piled.segment:after,
+.ui.piled.segment:before {
+ background-color: #FFFFFF;
+ visibility: visible;
+ content: "";
+ display: block;
+ height: 100%;
+ right: -1px;
+ position: absolute;
+ width: 100%;
+ -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.piled.segment:after {
+ -webkit-transform: rotate(1.2deg);
+ -moz-transform: rotate(1.2deg);
+ -ms-transform: rotate(1.2deg);
+ transform: rotate(1.2deg);
+ top: 0;
+ z-index: -1;
+}
+
+.ui.piled.segment:before {
+ -webkit-transform: rotate(-1.2deg);
+ -moz-transform: rotate(-1.2deg);
+ -ms-transform: rotate(-1.2deg);
+ transform: rotate(-1.2deg);
+ top: 0;
+ z-index: -2;
+}
+
+/*-------------------
+ Stacked
+--------------------*/
+
+.ui.stacked.segment {
+ padding-bottom: 1.7em;
+}
+
+.ui.stacked.segment:after,
+.ui.stacked.segment:before {
+ content: '';
+ position: absolute;
+ bottom: -3px;
+ right: 0%;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ background-color: rgba(0, 0, 0, 0.02);
+ width: 100%;
+ height: 5px;
+ visibility: visible;
+}
+
+.ui.stacked.segment:before {
+ bottom: 0px;
+}
+
+/* Inverted */
+
+.ui.stacked.inverted.segment:after,
+.ui.stacked.inverted.segment:before {
+ background-color: rgba(255, 255, 255, 0.1);
+ border-top: 1px solid rgba(255, 255, 255, 0.35);
+}
+
+/*-------------------
+ Circular
+--------------------*/
+
+.ui.circular.segment {
+ display: table-cell;
+ padding: 2em;
+ text-align: center;
+ vertical-align: middle;
+ border-radius: 500em;
+}
+
+/*-------------------
+ Raised
+--------------------*/
+
+.ui.raised.segment {
+ -webkit-box-shadow: 0px 1px 2px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 1px 2px 1px rgba(0, 0, 0, 0.1);
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.disabled.segment {
+ opacity: 0.8;
+ color: #DDDDDD;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Basic
+--------------------*/
+
+.ui.basic.segment {
+ position: relative;
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border-radius: 0px;
+}
+
+.ui.basic.segment:first-child {
+ padding-top: 0em;
+}
+
+.ui.basic.segment:last-child {
+ padding-bottom: 0em;
+}
+
+/*-------------------
+ Fittted
+--------------------*/
+
+.ui.fitted.segment {
+ padding: 0em;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+.ui.blue.segment {
+ border-top: 0.2em solid #6ECFF5;
+}
+
+.ui.green.segment {
+ border-top: 0.2em solid #A1CF64;
+}
+
+.ui.red.segment {
+ border-top: 0.2em solid #D95C5C;
+}
+
+.ui.orange.segment {
+ border-top: 0.2em solid #F05940;
+}
+
+.ui.purple.segment {
+ border-top: 0.2em solid #564F8A;
+}
+
+.ui.teal.segment {
+ border-top: 0.2em solid #00B5AD;
+}
+
+/*-------------------
+ Inverted Colors
+--------------------*/
+
+.ui.inverted.black.segment {
+ background-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.blue.segment {
+ background-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.green.segment {
+ background-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.red.segment {
+ background-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.orange.segment {
+ background-color: #F05940 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.purple.segment {
+ background-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.teal.segment {
+ background-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+/*-------------------
+ Aligned
+--------------------*/
+
+.ui.left.aligned.segment {
+ text-align: right;
+}
+
+.ui.right.aligned.segment {
+ text-align: left;
+}
+
+.ui.center.aligned.segment {
+ text-align: center;
+}
+
+.ui.justified.segment {
+ text-align: justify;
+ -webkit-hyphens: auto;
+ -moz-hyphens: auto;
+ -ms-hyphens: auto;
+ hyphens: auto;
+}
+
+/*-------------------
+ Floated
+--------------------*/
+
+.ui.floated.segment,
+.ui.left.floated.segment {
+ float: right;
+}
+
+.ui.right.floated.segment {
+ float: left;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.inverted.segment {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.segment .segment {
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.inverted.segment .inverted.segment {
+ color: #FFFFFF;
+}
+
+.ui.inverted.segment,
+.ui.primary.inverted.segment {
+ background-color: #222222;
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Ordinality
+--------------------*/
+
+.ui.primary.segment {
+ background-color: #FFFFFF;
+ color: #555555;
+}
+
+.ui.secondary.segment {
+ background-color: #FAF9FA;
+ color: #777777;
+}
+
+.ui.tertiary.segment {
+ background-color: #EBEBEB;
+ color: #B0B0B0;
+}
+
+.ui.secondary.inverted.segment {
+ background-color: #555555;
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(rgba(255, 255, 255, 0.3)), to(rgba(255, 255, 255, 0.3)));
+ background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.3) 100%);
+ background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.3) 100%);
+ background-image: -webkit-gradient(linear, right top, right bottom, from(rgba(255, 255, 255, 0.3)), to(rgba(255, 255, 255, 0.3)));
+ background-image: linear-gradient(rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.3) 100%);
+ color: #FAFAFA;
+}
+
+.ui.tertiary.inverted.segment {
+ background-color: #555555;
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(rgba(255, 255, 255, 0.6)), to(rgba(255, 255, 255, 0.6)));
+ background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.6) 100%);
+ background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.6) 100%);
+ background-image: -webkit-gradient(linear, right top, right bottom, from(rgba(255, 255, 255, 0.6)), to(rgba(255, 255, 255, 0.6)));
+ background-image: linear-gradient(rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.6) 100%);
+ color: #EEEEEE;
+}
+
+/*-------------------
+ Attached
+--------------------*/
+
+.ui.segment.attached {
+ top: -1px;
+ bottom: -1px;
+ border-radius: 0px;
+ margin: 0em;
+ -webkit-box-shadow: 0px 0px 0px 1px #DDDDDD;
+ box-shadow: 0px 0px 0px 1px #DDDDDD;
+}
+
+.ui.top.attached.segment {
+ top: 0px;
+ bottom: -1px;
+ margin-top: 1em;
+ margin-bottom: 0em;
+ border-radius: 5px 5px 0px 0px;
+}
+
+.ui.segment.top.attached:first-child {
+ margin-top: 0em;
+}
+
+.ui.segment.bottom.attached {
+ top: -1px;
+ bottom: 0px;
+ margin-top: 0em;
+ margin-bottom: 1em;
+ border-radius: 0px 0px 5px 5px;
+}
+
+.ui.segment.bottom.attached:last-child {
+ margin-bottom: 0em;
+}
+/*
+ * # Semantic - Steps
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Step
+*******************************/
+
+.ui.step,
+.ui.steps .step {
+ display: inline-block;
+ position: relative;
+ padding: 1em 3em 1em 2em;
+ vertical-align: top;
+ background-color: #FFFFFF;
+ color: #888888;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.step:after,
+.ui.steps .step:after {
+ position: absolute;
+ z-index: 2;
+ content: '';
+ top: 0.42em;
+ left: -1em;
+ border: medium none;
+ background-color: #FFFFFF;
+ width: 2.2em;
+ height: 2.2em;
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+ -webkit-box-shadow: -1px -1px 0 0 rgba(0, 0, 0, 0.15) inset;
+ box-shadow: -1px -1px 0 0 rgba(0, 0, 0, 0.15) inset;
+}
+
+.ui.step,
+.ui.steps .step,
+.ui.steps .step:after {
+ -webkit-transition: background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, -webkit-box-shadow 0.1s ease;
+ -moz-transition: background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, box-shadow 0.1s ease;
+ transition: background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, box-shadow 0.1s ease;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/* Vertical */
+
+.ui.vertical.steps {
+ overflow: visible;
+}
+
+.ui.vertical.steps .step {
+ display: block;
+ border-radius: 0em;
+ padding: 1em 2em;
+}
+
+.ui.vertical.steps .step:first-child {
+ padding: 1em 2em;
+ border-radius: 0em;
+ border-top-right-radius: 0.3125rem;
+ border-top-left-radius: 0.3125rem;
+}
+
+.ui.vertical.steps .active.step:first-child {
+ border-top-left-radius: 0rem;
+}
+
+.ui.vertical.steps .step:last-child {
+ border-radius: 0em;
+ border-bottom-right-radius: 0.3125rem;
+ border-bottom-left-radius: 0.3125rem;
+}
+
+.ui.vertical.steps .active.step:last-child {
+ border-bottom-left-radius: 0rem;
+}
+
+/* Arrow */
+
+.ui.vertical.steps .step:after {
+ display: none;
+}
+
+/* Active Arrow */
+
+.ui.vertical.steps .active.step:after {
+ display: block;
+}
+
+/* Two Line */
+
+.ui.vertical.steps .two.line.step {
+ line-height: 1.3;
+}
+
+.ui.vertical.steps .two.line.active.step:after {
+ position: absolute;
+ z-index: 2;
+ content: '';
+ top: 0em;
+ left: -1.45em;
+ background-color: transparent;
+ border-bottom: 2.35em solid transparent;
+ border-right: 1.55em solid #555555;
+ border-top: 2.35em solid transparent;
+ width: 0em;
+ height: 0em;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+}
+
+/*******************************
+ Group
+*******************************/
+
+.ui.steps {
+ cursor: pointer;
+ display: inline-block;
+ font-size: 0em;
+ overflow: hidden;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ line-height: 1;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ border-radius: 0.3125rem;
+}
+
+.ui.steps .step:first-child {
+ padding-right: 1.35em;
+ border-radius: 0em 0.3125em 0.3125em 0em;
+}
+
+.ui.steps .step:last-child {
+ border-radius: 0.3125em 0em 0em 0.3125em;
+}
+
+.ui.steps .step:only-child {
+ border-radius: 0.3125em;
+}
+
+.ui.steps .step:last-child {
+ margin-left: 0em;
+}
+
+.ui.steps .step:last-child:after {
+ display: none;
+}
+
+/*******************************
+ States
+*******************************/
+
+/* Hover */
+
+.ui.step:hover,
+.ui.step.hover {
+ background-color: #F7F7F7;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.steps .step.hover:after,
+.ui.steps .step:hover:after,
+.ui.step:hover,
+.ui.step.hover::after {
+ background-color: #F7F7F7;
+}
+
+/* Hover */
+
+.ui.steps .step.down,
+.ui.steps .step:active,
+.ui.step.down,
+.ui.step:active {
+ background-color: #F0F0F0;
+}
+
+.ui.steps .step.down:after,
+.ui.steps .step:active:after,
+.ui.steps.down::after,
+.ui.steps:active::after {
+ background-color: #F0F0F0;
+}
+
+/* Active */
+
+.ui.steps .step.active,
+.ui.active.step {
+ cursor: auto;
+ background-color: #555555;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+
+.ui.steps .step.active:after,
+.ui.active.steps:after {
+ background-color: #555555;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* Disabled */
+
+.ui.steps .disabled.step,
+.ui.disabled.step {
+ cursor: auto;
+ background-color: #FFFFFF;
+ color: #CBCBCB;
+}
+
+.ui.steps .disabled.step:after,
+.ui.disabled.step:after {
+ background-color: #FFFFFF;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/* Attached */
+
+.attached.ui.steps {
+ margin: 0em;
+ border-radius: 0.3125em 0.3125em 0em 0em;
+}
+
+.attached.ui.steps .step:first-child {
+ border-radius: 0em 0.3125em 0em 0em;
+}
+
+.attached.ui.steps .step:last-child {
+ border-radius: 0.3125em 0em 0em 0em;
+}
+
+/* Bottom Side */
+
+.bottom.attached.ui.steps {
+ margin-top: -1px;
+ border-radius: 0em 0em 0.3125em 0.3125em;
+}
+
+.bottom.attached.ui.steps .step:first-child {
+ border-radius: 0em 0em 0.3125em 0em;
+}
+
+.bottom.attached.ui.steps .step:last-child {
+ border-radius: 0em 0em 0em 0.3125em;
+}
+
+/* Evenly divided */
+
+.ui.one.steps,
+.ui.two.steps,
+.ui.three.steps,
+.ui.four.steps,
+.ui.five.steps,
+.ui.six.steps,
+.ui.seven.steps,
+.ui.eight.steps {
+ display: block;
+}
+
+.ui.one.steps > .step {
+ width: 100%;
+}
+
+.ui.two.steps > .step {
+ width: 50%;
+}
+
+.ui.three.steps > .step {
+ width: 33.333%;
+}
+
+.ui.four.steps > .step {
+ width: 25%;
+}
+
+.ui.five.steps > .step {
+ width: 20%;
+}
+
+.ui.six.steps > .step {
+ width: 16.666%;
+}
+
+.ui.seven.steps > .step {
+ width: 14.285%;
+}
+
+.ui.eight.steps > .step {
+ width: 12.500%;
+}
+
+/*******************************
+ Sizes
+*******************************/
+
+.ui.small.step,
+.ui.small.steps .step {
+ font-size: 0.8rem;
+}
+
+.ui.step,
+.ui.steps .step {
+ font-size: 1rem;
+}
+
+.ui.large.step,
+.ui.large.steps .step {
+ font-size: 1.25rem;
+}
+/*
+ * # Semantic - Accordion
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Accordion
+*******************************/
+
+.ui.accordion,
+.ui.accordion .accordion {
+ width: 600px;
+ max-width: 100%;
+ font-size: 1rem;
+ border-radius: 0.3125em;
+ background-color: #FFFFFF;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.accordion .title,
+.ui.accordion .accordion .title {
+ cursor: pointer;
+ margin: 0em;
+ padding: 0.75em 1em;
+ color: rgba(0, 0, 0, 0.6);
+ border-top: 1px solid rgba(0, 0, 0, 0.05);
+ -webkit-transition: background-color 0.2s ease-out;
+ -moz-transition: background-color 0.2s ease-out;
+ transition: background-color 0.2s ease-out;
+}
+
+.ui.accordion .title:first-child,
+.ui.accordion .accordion .title:first-child {
+ border-top: none;
+}
+
+/* Content */
+
+.ui.accordion .content,
+.ui.accordion .accordion .content {
+ display: none;
+ margin: 0em;
+ padding: 1.3em 1em;
+}
+
+/* Arrow */
+
+.ui.accordion .title .dropdown.icon,
+.ui.accordion .accordion .title .dropdown.icon {
+ display: inline-block;
+ float: none;
+ margin: 0em 0em 0em 0.5em;
+ -webkit-transition: -webkit-transform 0.2s ease, opacity 0.2s ease;
+ -moz-transition: -moz-transform 0.2s ease, opacity 0.2s ease;
+ transition: transform 0.2s ease,
+ opacity 0.2s ease;
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+}
+
+.ui.accordion .title .dropdown.icon:before,
+.ui.accordion .accordion .title .dropdown.icon:before {
+ content: '\f0da' /*rtl:'\f0d9'*/;
+}
+
+/*--------------
+ Loose Coupling
+---------------*/
+
+.ui.basic.accordion.menu {
+ background-color: #FFFFFF;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.basic.accordion.menu .title,
+.ui.basic.accordion.menu .content {
+ padding: 0em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Basic
+---------------*/
+
+.ui.basic.accordion {
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.basic.accordion .title,
+.ui.basic.accordion .accordion .title {
+ background-color: transparent;
+ border-top: none;
+ padding-right: 0em;
+ padding-left: 0em;
+}
+
+.ui.basic.accordion .content,
+.ui.basic.accordion .accordion .content {
+ padding: 0.5em 0em;
+}
+
+.ui.basic.accordion .active.title,
+.ui.basic.accordion .accordion .active.title {
+ background-color: transparent;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.accordion .title:hover,
+.ui.accordion .active.title,
+.ui.accordion .accordion .title:hover,
+.ui.accordion .accordion .active.title {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.accordion .active.title,
+.ui.accordion .accordion .active.title {
+ background-color: rgba(0, 0, 0, 0.1);
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.accordion .active.title .dropdown.icon,
+.ui.accordion .accordion .active.title .dropdown.icon {
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+
+.ui.accordion .active.content,
+.ui.accordion .accordion .active.content {
+ display: block;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Fluid
+---------------*/
+
+.ui.fluid.accordion,
+.ui.fluid.accordion .accordion {
+ width: 100%;
+}
+/*
+ * # Semantic - Chat Room
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Chat Room
+*******************************/
+
+.ui.chatroom {
+ background-color: #F8F8F8;
+ width: 330px;
+ height: 370px;
+ padding: 0px;
+}
+
+.ui.chatroom .room {
+ position: relative;
+ background-color: #FFFFFF;
+ overflow: hidden;
+ height: 286px;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ border-top: none;
+ border-bottom: none;
+}
+
+.ui.chatroom .room .loader {
+ display: none;
+ margin: -25px -25px 0px 0px;
+}
+
+/* Chat Room Actions */
+
+.ui.chatroom .actions {
+ overflow: hidden;
+ background-color: #EEEEEE;
+ padding: 4px;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ border-radius: 5px 5px 0px 0px;
+}
+
+.ui.chatroom .actions .button {
+ float: left;
+ margin-right: 3px;
+}
+
+/* Online User Count */
+
+.ui.chatroom .actions .message {
+ float: right;
+ margin-right: 6px;
+ font-size: 11px;
+ color: #AAAAAA;
+ text-shadow: 0px -1px 0px rgba(255, 255, 255, 0.8);
+ line-height: 28px;
+}
+
+.ui.chatroom .actions .message .loader {
+ display: inline-block;
+ margin-left: 8px;
+}
+
+/* Chat Room Text Log */
+
+.ui.chatroom .log {
+ float: right;
+ overflow: auto;
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+
+.ui.chatroom .log .message {
+ padding: 3px 0px;
+ border-top: 1px dotted #DADADA;
+}
+
+.ui.chatroom .log .message:first-child {
+ border-top: none;
+}
+
+/* status event */
+
+.ui.chatroom .status {
+ padding: 5px 0px;
+ color: #AAAAAA;
+ font-size: 12px;
+ font-style: italic;
+ line-height: 1.33;
+ border-top: 1px dotted #DADADA;
+}
+
+.ui.chatroom .log .status:first-child {
+ border-top: none;
+}
+
+.ui.chatroom .log .flag {
+ float: right;
+}
+
+.ui.chatroom .log p {
+ margin-right: 0px;
+}
+
+.ui.chatroom .log .author {
+ font-weight: bold;
+ -webkit-transition: color 0.3s ease-out;
+ -moz-transition: color 0.3s ease-out;
+ transition: color 0.3s ease-out;
+}
+
+.ui.chatroom .log a.author:hover {
+ opacity: 0.8;
+}
+
+.ui.chatroom .log .message.admin p {
+ font-weight: bold;
+ margin: 1px 23px 0px 0px;
+}
+
+.ui.chatroom .log .divider {
+ margin: -1px 0px;
+ font-size: 11px;
+ padding: 10px 0px;
+ border-top: 1px solid #F8F8F8;
+ border-bottom: 1px solid #F8F8F8;
+}
+
+.ui.chatroom .log .divider .rule {
+ top: 50%;
+ width: 15%;
+}
+
+.ui.chatroom .log .divider .label {
+ color: #777777;
+ margin: 0px;
+}
+
+/* Chat Room User List */
+
+.ui.chatroom .room .list {
+ position: relative;
+ overflow: auto;
+ overflow-x: hidden;
+ overflow-y: auto;
+ float: right;
+ background-color: #EEEEEE;
+ border-right: 1px solid #DDDDDD;
+}
+
+.ui.chatroom .room .list .user {
+ display: table;
+ padding: 3px 7px;
+ border-bottom: 1px solid #DDDDDD;
+}
+
+.ui.chatroom .room .list .user:hover {
+ background-color: #F8F8F8;
+}
+
+.ui.chatroom .room .list .image {
+ display: table-cell;
+ vertical-align: middle;
+ width: 20px;
+}
+
+.ui.chatroom .room .list .image img {
+ width: 20px;
+ height: 20px;
+ vertical-align: middle;
+}
+
+.ui.chatroom .room .list p {
+ display: table-cell;
+ vertical-align: middle;
+ padding-right: 7px;
+ padding-left: 14px;
+ font-size: 11px;
+ line-height: 1.2;
+ font-weight: bold;
+}
+
+.ui.chatroom .room .list a:hover {
+ opacity: 0.8;
+}
+
+/* User List Loading */
+
+.ui.chatroom.loading .loader {
+ display: block;
+}
+
+/* Chat Room Talk Input */
+
+.ui.chatroom .talk {
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ padding: 5px 0px 0px;
+ background-color: #EEEEEE;
+ border-radius: 0px 0px 5px 5px;
+}
+
+.ui.chatroom .talk .avatar,
+.ui.chatroom .talk input,
+.ui.chatroom .talk .button {
+ float: right;
+}
+
+.ui.chatroom .talk .avatar img {
+ display: block;
+ width: 30px;
+ height: 30px;
+ margin-left: 4px;
+ border-radius: 500rem;
+}
+
+.ui.chatroom .talk input {
+ border: 1px solid #CCCCCC;
+ margin: 0px;
+ width: 196px;
+ height: 14px;
+ padding: 8px 5px;
+ font-size: 12px;
+ color: #555555;
+}
+
+.ui.chatroom .talk input.focus {
+ border: 1px solid #AAAAAA;
+}
+
+.ui.chatroom .send {
+ width: 80px;
+ height: 32px;
+ margin-right: -1px;
+ padding: 4px 12px;
+ font-size: 12px;
+ line-height: 23px;
+ -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset;
+ border-radius: 5px 0 0 5px;
+}
+
+.ui.chatroom .talk .log-in.button {
+ display: block;
+ float: none;
+ margin-top: -6px;
+ height: 22px;
+ border-radius: 0px 0px 4px 4px;
+}
+
+.ui.chatroom .talk .log-in.button i {
+ vertical-align: text-top;
+}
+
+/* Quirky Flags */
+
+.ui.chatroom .log .team.flag {
+ width: 18px;
+}
+
+/* Chat room Loaded */
+
+.ui.chatroom.loading .loader {
+ display: block;
+}
+
+/* Standard Size */
+
+.ui.chatroom {
+ width: 330px;
+ height: 370px;
+}
+
+.ui.chatroom .room .container {
+ width: 3000px;
+}
+
+.ui.chatroom .log {
+ width: 314px;
+ height: 278px;
+ padding: 4px 7px;
+}
+
+.ui.chatroom .room .list {
+ width: 124px;
+ height: 278px;
+ padding: 4px 0px;
+}
+
+.ui.chatroom .room .list .user {
+ width: 110px;
+}
+
+.ui.chatroom .talk {
+ height: 40px;
+}
+/*
+ * # Semantic - Checkbox
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Checkbox
+*******************************/
+
+/*--------------
+ Standard
+---------------*/
+
+/*--- Content ---*/
+
+.ui.checkbox {
+ position: relative;
+ display: inline-block;
+ min-width: 1em;
+ height: 1.25em;
+ line-height: 1em;
+ outline: none;
+ vertical-align: middle;
+}
+
+.ui.checkbox input {
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ opacity: 0;
+ outline: none;
+}
+
+/*--- Box ---*/
+
+.ui.checkbox .box,
+.ui.checkbox label {
+ cursor: pointer;
+ padding-right: 2em;
+ outline: none;
+}
+
+.ui.checkbox .box:before,
+.ui.checkbox label:before {
+ position: absolute;
+ top: 0em;
+ line-height: 1;
+ width: 1em;
+ height: 1em;
+ right: 0em;
+ content: '';
+ border-radius: 4px;
+ background: #FFFFFF;
+ -webkit-transition: background-color 0.3s ease, -webkit-box-shadow 0.3s ease;
+ -moz-transition: background-color 0.3s ease, box-shadow 0.3s ease;
+ transition: background-color 0.3s ease, box-shadow 0.3s ease;
+ -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.2);
+ box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.2);
+}
+
+/*--- Checkbox ---*/
+
+.ui.checkbox .box:after,
+.ui.checkbox label:after {
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
+ filter: alpha(opacity=0);
+ opacity: 0;
+ content: '';
+ position: absolute;
+ background: transparent;
+ border: 0.2em solid #333333;
+ border-top: none;
+ border-left: none;
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+}
+
+.ui.checkbox .box:after,
+.ui.checkbox label:after {
+ top: 0.275em;
+ right: 0.2em;
+ width: 0.45em;
+ height: 0.15em;
+}
+
+/*--- Inside Label ---*/
+
+.ui.checkbox label {
+ color: rgba(0, 0, 0, 0.6);
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+.ui.checkbox label:hover {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.checkbox input:focus ~ label {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--- Outside Label ---*/
+
+.ui.checkbox ~ label {
+ cursor: pointer;
+ opacity: 0.85;
+ vertical-align: middle;
+}
+
+.ui.checkbox ~ label:hover {
+ opacity: 1;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--- Hover ---*/
+
+.ui.checkbox .box:hover::before,
+.ui.checkbox label:hover::before {
+ -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
+ box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
+}
+
+/*--- Down ---*/
+
+.ui.checkbox .box:active::before,
+.ui.checkbox label:active::before {
+ background-color: #F5F5F5;
+}
+
+/*--- Focus ---*/
+
+.ui.checkbox input:focus ~ .box:before,
+.ui.checkbox input:focus ~ label:before {
+ -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
+ box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
+}
+
+/*--- Active ---*/
+
+.ui.checkbox input:checked ~ .box:after,
+.ui.checkbox input:checked ~ label:after {
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
+ filter: alpha(opacity=100);
+ opacity: 1;
+}
+
+/*--- Disabled ---*/
+
+.ui.disabled.checkbox ~ .box:after,
+.ui.checkbox input[disabled] ~ .box:after,
+.ui.disabled.checkbox label,
+.ui.checkbox input[disabled] ~ label {
+ opacity: 0.4;
+ color: rgba(0, 0, 0, 0.3);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Radio
+---------------*/
+
+.ui.radio.checkbox .box:before,
+.ui.radio.checkbox label:before {
+ min-width: 1em;
+ height: 1em;
+ border-radius: 500px;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+}
+
+.ui.radio.checkbox .box:after,
+.ui.radio.checkbox label:after {
+ border: none;
+ top: 0.2em;
+ right: 0.2em;
+ width: 0.6em;
+ height: 0.6em;
+ background-color: #555555;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+ border-radius: 500px;
+}
+
+/*--------------
+ Slider
+---------------*/
+
+.ui.slider.checkbox {
+ cursor: pointer;
+ min-width: 3em;
+}
+
+/* Line */
+
+.ui.slider.checkbox:after {
+ position: absolute;
+ top: 0.5em;
+ right: 0em;
+ content: '';
+ width: 3em;
+ height: 2px;
+ background-color: rgba(0, 0, 0, 0.1);
+}
+
+/* Button */
+
+.ui.slider.checkbox .box,
+.ui.slider.checkbox label {
+ padding-right: 4em;
+}
+
+.ui.slider.checkbox .box:before,
+.ui.slider.checkbox label:before {
+ cursor: pointer;
+ display: block;
+ position: absolute;
+ top: -0.25em;
+ right: 0em;
+ z-index: 1;
+ width: 1.5em;
+ height: 1.5em;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ border-radius: 50rem;
+ -webkit-transition: right 0.3s ease 0s;
+ -moz-transition: right 0.3s ease 0s;
+ transition: right 0.3s ease 0s;
+}
+
+/* Button Activation Light */
+
+.ui.slider.checkbox .box:after,
+.ui.slider.checkbox label:after {
+ opacity: 1;
+ position: absolute;
+ content: '';
+ top: 0.15em;
+ right: 0em;
+ z-index: 2;
+ margin-right: 0.375em;
+ border: none;
+ width: 0.75em;
+ height: 0.75em;
+ border-radius: 50rem;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+ -webkit-transition: background 0.3s ease 0s,
+ right 0.3s ease 0s;
+ -moz-transition: background 0.3s ease 0s,
+ right 0.3s ease 0s;
+ transition: background 0.3s ease 0s,
+ right 0.3s ease 0s;
+}
+
+/* Selected Slider Toggle */
+
+.ui.slider.checkbox input:checked ~ .box:before,
+.ui.slider.checkbox input:checked ~ label:before,
+.ui.slider.checkbox input:checked ~ .box:after,
+.ui.slider.checkbox input:checked ~ label:after {
+ right: 1.75em;
+}
+
+/* Off Color */
+
+.ui.slider.checkbox .box:after,
+.ui.slider.checkbox label:after {
+ background-color: #D95C5C;
+}
+
+/* On Color */
+
+.ui.slider.checkbox input:checked ~ .box:after,
+.ui.slider.checkbox input:checked ~ label:after {
+ background-color: #89B84C;
+}
+
+/*--------------
+ Toggle
+---------------*/
+
+.ui.toggle.checkbox {
+ cursor: pointer;
+}
+
+.ui.toggle.checkbox .box,
+.ui.toggle.checkbox label {
+ padding-right: 4em;
+}
+
+/* Switch */
+
+.ui.toggle.checkbox .box:before,
+.ui.toggle.checkbox label:before {
+ cursor: pointer;
+ display: block;
+ position: absolute;
+ content: '';
+ top: -0.25em;
+ right: 0em;
+ z-index: 1;
+ background-color: #FFFFFF;
+ width: 3em;
+ height: 1.5em;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ border-radius: 50rem;
+}
+
+/* Activation Light */
+
+.ui.toggle.checkbox .box:after,
+.ui.toggle.checkbox label:after {
+ opacity: 1;
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ content: '';
+ position: absolute;
+ top: 0.15em;
+ right: 0.5em;
+ z-index: 2;
+ border: none;
+ width: 0.75em;
+ height: 0.75em;
+ background-color: #D95C5C;
+ border-radius: 50rem;
+ -webkit-transition: background 0.3s ease 0s,
+ right 0.3s ease 0s;
+ -moz-transition: background 0.3s ease 0s,
+ right 0.3s ease 0s;
+ transition: background 0.3s ease 0s,
+ right 0.3s ease 0s;
+}
+
+/* Active */
+
+.ui.toggle.checkbox:active .box:before,
+.ui.toggle.checkbox:active label:before {
+ background-color: #F5F5F5;
+}
+
+/* Active */
+
+.ui.toggle.checkbox input:checked ~ .box:after,
+.ui.toggle.checkbox input:checked ~ label:after {
+ right: 1.75em;
+ background-color: #89B84C;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.checkbox {
+ font-size: 1em;
+}
+
+.ui.large.checkbox {
+ font-size: 1.25em;
+}
+
+.ui.huge.checkbox {
+ font-size: 1.5em;
+}
+/*
+ * # Semantic - Dimmer
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Dimmer
+*******************************/
+
+.ui.dimmable {
+ position: relative;
+}
+
+.ui.dimmer {
+ display: none;
+ position: absolute;
+ top: 0em !important;
+ right: 0em !important;
+ width: 0%;
+ height: 0%;
+ text-align: center;
+ vertical-align: middle;
+ background-color: rgba(0, 0, 0, 0.85);
+ opacity: 0;
+ line-height: 1;
+ -webkit-animation-fill-mode: both;
+ -moz-animation-fill-mode: both;
+ animation-fill-mode: both;
+ -webkit-animation-duration: 0.5s;
+ -moz-animation-duration: 0.5s;
+ animation-duration: 0.5s;
+ -webkit-transition: background-color 0.5s linear;
+ -moz-transition: background-color 0.5s linear;
+ transition: background-color 0.5s linear;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ z-index: 1000;
+}
+
+/* Dimmer Content */
+
+.ui.dimmer > .content {
+ width: 100%;
+ height: 100%;
+ display: table;
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+}
+
+.ui.dimmer > .content > div {
+ display: table-cell;
+ vertical-align: middle;
+ color: #FFFFFF;
+}
+
+/* Loose Coupling */
+
+.ui.segment > .ui.dimmer {
+ border-radius: 5px;
+}
+
+.ui.horizontal.segment > .ui.dimmer,
+.ui.vertical.segment > .ui.dimmer {
+ border-radius: 5px;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.dimmed.dimmable:not(body) {
+ overflow: hidden;
+}
+
+.ui.dimmed.dimmable > .ui.animating.dimmer,
+.ui.dimmed.dimmable > .ui.visible.dimmer,
+.ui.active.dimmer {
+ display: block;
+ width: 100%;
+ height: 100%;
+ opacity: 1;
+}
+
+.ui.disabled.dimmer {
+ width: 0em !important;
+ height: 0em !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Page
+---------------*/
+
+.ui.page.dimmer {
+ position: fixed;
+ -webkit-transform-style: preserve-3d;
+ -moz-transform-style: preserve-3d;
+ -ms-transform-style: preserve-3d;
+ transform-style: preserve-3d;
+ -webkit-perspective: 2000px;
+ -moz-perspective: 2000px;
+ -ms-perspective: 2000px;
+ perspective: 2000px;
+ -webkit-transform-origin: center center;
+ -moz-transform-origin: center center;
+ -ms-transform-origin: center center;
+ transform-origin: center center;
+}
+
+.ui.scrolling.dimmable > .dimmer,
+.ui.scrolling.page.dimmer {
+ position: absolute;
+}
+
+/*--------------
+ Aligned
+---------------*/
+
+.ui.dimmer > .top.aligned.content > * {
+ vertical-align: top;
+}
+
+.ui.dimmer > .bottom.aligned.content > * {
+ vertical-align: bottom;
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.inverted.dimmer {
+ background-color: rgba(255, 255, 255, 0.85);
+}
+
+.ui.inverted.dimmer > .content > * {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--------------
+ Simple
+---------------*/
+
+/* Displays without javascript */
+
+.ui.simple.dimmer {
+ display: block;
+ overflow: hidden;
+ opacity: 1;
+ z-index: -100;
+ background-color: rgba(0, 0, 0, 0);
+}
+
+.ui.dimmed.dimmable > .ui.simple.dimmer {
+ overflow: visible;
+ opacity: 1;
+ width: 100%;
+ height: 100%;
+ background-color: rgba(0, 0, 0, 0.85);
+ z-index: 1;
+}
+
+.ui.simple.inverted.dimmer {
+ background-color: rgba(255, 255, 255, 0);
+}
+
+.ui.dimmed.dimmable > .ui.simple.inverted.dimmer {
+ background-color: rgba(255, 255, 255, 0.85);
+}
+/*
+ * # Semantic - Dropdown
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Dropdown
+*******************************/
+
+.ui.dropdown {
+ cursor: pointer;
+ position: relative;
+ display: inline-block;
+ line-height: 1;
+ -webkit-transition: border-radius 0.1s ease, width 0.2s ease;
+ -moz-transition: border-radius 0.1s ease, width 0.2s ease;
+ transition: border-radius 0.1s ease, width 0.2s ease;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -moz-tap-highlight-color: rgba(0, 0, 0, 0);
+ tap-highlight-color: rgba(0, 0, 0, 0);
+}
+
+/*******************************
+ Content
+*******************************/
+
+/*--------------
+ Menu
+---------------*/
+
+.ui.dropdown .menu {
+ cursor: auto;
+ position: absolute;
+ display: none;
+ top: 100%;
+ margin: 0em;
+ background-color: #FFFFFF;
+ min-width: 100%;
+ white-space: nowrap;
+ font-size: 0.875em;
+ text-shadow: none;
+ -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1);
+ border-radius: 0px 0px 0.325em 0.325em;
+ -webkit-transition: opacity 0.2s ease;
+ -moz-transition: opacity 0.2s ease;
+ transition: opacity 0.2s ease;
+ z-index: 11;
+}
+
+/*--------------
+ Icon
+---------------*/
+
+.ui.dropdown > .dropdown.icon {
+ width: auto;
+ margin: 0em 1em 0em 0em;
+}
+
+.ui.dropdown > .dropdown.icon:before {
+ content: "\f0d7";
+}
+
+.ui.dropdown .menu .item .dropdown.icon {
+ width: auto;
+ float: left;
+ margin: 0em 0.5em 0em 0em;
+}
+
+.ui.dropdown .menu .item .dropdown.icon:before {
+ content: "\f0da" /*rtl:"\f0d9"*/;
+}
+
+/*--------------
+ Text
+---------------*/
+
+.ui.dropdown > .text {
+ display: inline-block;
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+/* Flyout Direction */
+
+.ui.dropdown .menu {
+ right: 0px;
+}
+
+/*--------------
+ Sub Menu
+---------------*/
+
+.ui.dropdown .menu .menu {
+ top: 0% !important;
+ right: 100% !important;
+ margin: 0em !important;
+ border-radius: 0 0.325em 0.325em 0em !important;
+}
+
+.ui.dropdown .menu .menu:after {
+ display: none;
+}
+
+.ui.dropdown .menu .item {
+ cursor: pointer;
+ border: none;
+ border-top: 1px solid rgba(0, 0, 0, 0.05);
+ height: auto;
+ font-size: 0.875em;
+ display: block;
+ color: rgba(0, 0, 0, 0.75);
+ padding: 0.85em 1em !important;
+ font-size: 0.875rem;
+ text-transform: none;
+ font-weight: normal;
+ text-align: right;
+ -webkit-touch-callout: none;
+}
+
+.ui.dropdown .menu .item:before {
+ display: none;
+}
+
+.ui.dropdown .menu .item .icon {
+ margin-left: 0.75em;
+}
+
+.ui.dropdown .menu .item:first-child {
+ border-top: none;
+}
+
+/*******************************
+ Coupling
+*******************************/
+
+/* Opposite on last menu on right */
+
+.ui.menu .right.menu .dropdown:last-child .menu,
+.ui.buttons > .ui.dropdown:last-child .menu {
+ right: auto;
+ left: 0px;
+}
+
+.ui.vertical.menu .dropdown.item > .dropdown.icon:before {
+ content: "\f0da" /*rtl:"\f0d9"*/;
+}
+
+.ui.dropdown.icon.button > .dropdown.icon {
+ margin: 0em;
+}
+
+/*******************************
+ States
+*******************************/
+
+/* Dropdown Visible */
+
+.ui.visible.dropdown > .menu {
+ display: block;
+}
+
+/*--------------------
+ Hover
+----------------------*/
+
+/* Menu Item Hover */
+
+.ui.dropdown .menu .item:hover {
+ background-color: rgba(0, 0, 0, 0.02);
+ z-index: 12;
+}
+
+/*--------------------
+ Active
+----------------------*/
+
+/* Menu Item Active */
+
+.ui.dropdown .menu .active.item {
+ background-color: rgba(0, 0, 0, 0.06) !important;
+ border-right: none;
+ border-color: transparent !important;
+ -webkit-box-shadow: none;
+ -moz-shadow: none;
+ box-shadow: none;
+ z-index: 12;
+}
+
+/*--------------------
+ Default Text
+----------------------*/
+
+.ui.dropdown > .default.text,
+.ui.default.dropdown > .text {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.dropdown:hover > .default.text,
+.ui.default.dropdown:hover > .text {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--------------------
+ Error
+----------------------*/
+
+.ui.dropdown.error,
+.ui.dropdown.error > .text,
+.ui.dropdown.error > .default.text {
+ color: #D95C5C !important;
+}
+
+.ui.selection.dropdown.error {
+ background-color: #FFFAFA;
+ -webkit-box-shadow: 0px 0px 0px 1px #e7bebe !important;
+ box-shadow: 0px 0px 0px 1px #e7bebe !important;
+}
+
+.ui.selection.dropdown.error:hover {
+ -webkit-box-shadow: 0px 0px 0px 1px #e7bebe !important;
+ box-shadow: 0px 0px 0px 1px #e7bebe !important;
+}
+
+.ui.dropdown.error > .menu,
+.ui.dropdown.error > .menu .menu {
+ -webkit-box-shadow: 0px 0px 1px 1px #E7BEBE !important;
+ box-shadow: 0px 0px 1px 1px #E7BEBE !important;
+}
+
+.ui.dropdown.error > .menu .item {
+ color: #D95C5C !important;
+}
+
+/* Item Hover */
+
+.ui.dropdown.error > .menu .item:hover {
+ background-color: #FFF2F2 !important;
+}
+
+/* Item Active */
+
+.ui.dropdown.error > .menu .active.item {
+ background-color: #FDCFCF !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Simple
+---------------*/
+
+/* Displays without javascript */
+
+.ui.simple.dropdown .menu:before,
+.ui.simple.dropdown .menu:after {
+ display: none;
+}
+
+.ui.simple.dropdown .menu {
+ display: block;
+ overflow: hidden;
+ top: -9999px !important;
+ position: absolute;
+ opacity: 0;
+ width: 0;
+ height: 0;
+ -webkit-transition: opacity 0.2s ease-out;
+ -moz-transition: opacity 0.2s ease-out;
+ transition: opacity 0.2s ease-out;
+}
+
+.ui.simple.active.dropdown,
+.ui.simple.dropdown:hover {
+ border-bottom-right-radius: 0em !important;
+ border-bottom-left-radius: 0em !important;
+}
+
+.ui.simple.active.dropdown > .menu,
+.ui.simple.dropdown:hover > .menu {
+ overflow: visible;
+ width: auto;
+ height: auto;
+ top: 100% !important;
+ opacity: 1;
+}
+
+.ui.simple.dropdown > .menu .item:active > .menu,
+.ui.simple.dropdown:hover > .menu .item:hover > .menu {
+ overflow: visible;
+ width: auto;
+ height: auto;
+ top: 0% !important;
+ right: 100% !important;
+ opacity: 1;
+}
+
+.ui.simple.disabled.dropdown:hover .menu {
+ display: none;
+ height: 0px;
+ width: 0px;
+ overflow: hidden;
+}
+
+/*--------------
+ Selection
+---------------*/
+
+/* Displays like a select box */
+
+.ui.selection.dropdown {
+ cursor: pointer;
+ display: inline-block;
+ word-wrap: break-word;
+ white-space: normal;
+ background-color: #FFFFFF;
+ padding: 0.65em 1em;
+ line-height: 1.33;
+ color: rgba(0, 0, 0, 0.8);
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important;
+ border-radius: !important 0.3125em;
+}
+
+.ui.selection.dropdown select {
+ display: none;
+}
+
+.ui.selection.dropdown > .dropdown.icon {
+ opacity: 0.7;
+ margin: 0.2em 1.25em 0.2em 0em;
+ -webkit-transition: opacity 0.2s ease-out;
+ -moz-transition: opacity 0.2s ease-out;
+ transition: opacity 0.2s ease-out;
+}
+
+.ui.selection.dropdown,
+.ui.selection.dropdown .menu {
+ -webkit-transition: -webkit-box-shadow 0.2s ease-out;
+ -moz-transition: box-shadow 0.2s ease-out;
+ transition: box-shadow 0.2s ease-out;
+}
+
+.ui.selection.dropdown .menu {
+ top: 100%;
+ max-height: 312px;
+ overflow-x: hidden;
+ overflow-y: auto;
+ -webkit-box-shadow: 0px 1px 0px 1px #E0E0E0;
+ box-shadow: 0px 1px 0px 1px #E0E0E0;
+ border-radius: 0px 0px 0.325em 0.325em;
+}
+
+.ui.selection.dropdown .menu:after,
+.ui.selection.dropdown .menu:before {
+ display: none;
+}
+
+.ui.selection.dropdown .menu img {
+ height: 2.5em;
+ display: inline-block;
+ vertical-align: middle;
+ margin-left: 0.5em;
+}
+
+/* Visible */
+
+.ui.visible.selection.dropdown {
+ border-bottom-right-radius: 0em !important;
+ border-bottom-left-radius: 0em !important;
+}
+
+/* Active */
+
+.ui.active.selection.dropdown {
+ border-radius: 0.3125em 0.3125em 0em 0em !important;
+}
+
+.ui.active.selection.dropdown > .dropdown.icon {
+ opacity: 1;
+}
+
+/*--------------
+ Fluid
+---------------*/
+
+.ui.fluid.dropdown {
+ display: block;
+}
+
+.ui.fluid.dropdown > .dropdown.icon {
+ float: left;
+}
+
+/*--------------
+ Inline
+---------------*/
+
+.ui.inline.dropdown {
+ cursor: pointer;
+ display: inline-block;
+ color: inherit;
+}
+
+.ui.inline.dropdown .dropdown.icon {
+ margin: 0em 0.25em 0em 0.5em;
+}
+
+.ui.inline.dropdown .text {
+ font-weight: bold;
+}
+
+.ui.inline.dropdown .menu {
+ cursor: auto;
+ margin-top: 0.25em;
+ border-radius: 0.325em;
+}
+
+/*--------------
+ Floating
+---------------*/
+
+.ui.floating.dropdown .menu {
+ right: 0;
+ left: auto;
+ margin-top: 0.5em !important;
+ border-radius: 0.325em;
+}
+
+/*--------------
+ Pointing
+---------------*/
+
+.ui.pointing.dropdown .menu {
+ top: 100%;
+ margin-top: 0.75em;
+ border-radius: 0.325em;
+}
+
+.ui.pointing.dropdown .menu:after {
+ display: block;
+ position: absolute;
+ pointer-events: none;
+ content: " ";
+ visibility: visible;
+ width: 0.5em;
+ height: 0.5em;
+ -webkit-box-shadow: -1px -1px 0px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: -1px -1px 0px 1px rgba(0, 0, 0, 0.05);
+ background-image: none;
+ background-color: #FFFFFF;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ z-index: 2;
+}
+
+.ui.pointing.dropdown .menu .active.item:first-child {
+ background: transparent -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.03));
+ background: transparent -moz-linear-gradient(transparent, rgba(0, 0, 0, 0.03));
+ background: transparent-webkit-gradient(linear, right top, right bottom, from(transparent), to(rgba(0, 0, 0, 0.03)));
+ background: transparent linear-gradient(transparent, rgba(0, 0, 0, 0.03));
+}
+
+/* Directions */
+
+.ui.pointing.dropdown .menu:after {
+ top: -0.25em;
+ right: 50%;
+ margin: 0em -0.25em 0em 0em;
+}
+
+.ui.top.left.pointing.dropdown .menu {
+ top: 100%;
+ bottom: auto;
+ right: 0%;
+ left: auto;
+ margin: 0.75em 0em 0em;
+}
+
+.ui.top.left.pointing.dropdown .menu:after {
+ top: -0.25em;
+ right: 1.25em;
+ left: auto;
+ margin: 0em;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+}
+
+.ui.top.right.pointing.dropdown .menu {
+ top: 100%;
+ bottom: auto;
+ left: 0%;
+ right: auto;
+ margin: 0.75em 0em 0em;
+}
+
+.ui.top.right.pointing.dropdown .menu:after {
+ top: -0.25em;
+ right: auto;
+ left: 1.25em;
+ margin: 0em;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+}
+
+.ui.left.pointing.dropdown .menu {
+ top: 0%;
+ right: 100%;
+ left: auto;
+ margin: 0em 0.75em 0em 0em;
+}
+
+.ui.left.pointing.dropdown .menu:after {
+ top: 1em;
+ right: -0.25em;
+ margin: 0em 0em 0em 0em;
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+}
+
+.ui.right.pointing.dropdown .menu {
+ top: 0%;
+ right: auto;
+ left: 100%;
+ margin: 0em 0em 0em 0.75em;
+}
+
+.ui.right.pointing.dropdown .menu:after {
+ top: 1em;
+ right: auto;
+ left: -0.25em;
+ margin: 0em 0em 0em 0em;
+ -webkit-transform: rotate(135deg);
+ -moz-transform: rotate(135deg);
+ -ms-transform: rotate(135deg);
+ transform: rotate(135deg);
+}
+/*
+ * # Semantic - Modal
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Modal
+*******************************/
+
+.ui.modal {
+ display: none;
+ position: fixed;
+ z-index: 1001;
+ top: 50%;
+ right: 50%;
+ text-align: right;
+ width: 90%;
+ margin-right: -45%;
+ background-color: #FFFFFF;
+ border: 1px solid #DDDDDD;
+ border-radius: 5px;
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+}
+
+/*******************************
+ Content
+*******************************/
+
+/*--------------
+ Close
+---------------*/
+
+.ui.modal > .close {
+ cursor: pointer;
+ position: absolute;
+ z-index: 1;
+ opacity: 0.8;
+ font-size: 1.25em;
+ top: -1.75em;
+ left: -1.75em;
+ color: #FFFFFF;
+}
+
+.ui.modal > .close:hover {
+ opacity: 1;
+}
+
+/*--------------
+ Header
+---------------*/
+
+.ui.modal > .header {
+ margin: 0em;
+ padding: 1.5rem 2rem;
+ font-size: 1.6em;
+ font-weight: bold;
+ border-radius: 0.325em 0.325em 0px 0px;
+}
+
+/*--------------
+ Content
+---------------*/
+
+.ui.modal > .content {
+ display: table;
+ width: 100%;
+ position: relative;
+ padding: 2em;
+ background-color: #F4F4F4;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.modal > .content > .left:not(.ui) {
+ display: table-cell;
+ padding-left: 1.5%;
+ min-width: 25%;
+}
+
+.ui.modal > .content > .right:not(.ui) {
+ display: table-cell;
+ padding-right: 1.5%;
+ vertical-align: top;
+}
+
+/*rtl:ignore*/
+
+.ui.modal > .content > .left:not(.ui) > i.icon {
+ font-size: 8em;
+ margin: 0em;
+}
+
+.ui.modal > .content p {
+ line-height: 1.6;
+}
+
+/*--------------
+ Actions
+---------------*/
+
+.ui.modal .actions {
+ padding: 1rem 2rem;
+ text-align: left;
+}
+
+.ui.modal .actions > .button {
+ margin-right: 0.75em;
+}
+
+/*-------------------
+ Sizing
+--------------------*/
+
+/* Mobile Only */
+
+@media only screen and (max-width: 768px) {
+ /*rtl:ignore*/
+
+ .ui.modal .content > .left:not(.ui) {
+ display: block;
+ padding: 0em 0em 1em;
+ }
+
+ /*rtl:ignore*/
+
+ .ui.modal .content > .right:not(.ui) {
+ display: block;
+ padding: 1em 0em 0em;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+
+ .ui.modal .content .image {
+ width: auto !important;
+ max-width: 100%;
+ }
+
+ .ui.modal .actions {
+ padding-bottom: 0em;
+ }
+
+ .ui.modal .actions > .buttons,
+ .ui.modal .actions > .button {
+ margin-bottom: 1em;
+ }
+}
+
+/* Tablet and Mobile */
+
+@media only screen and (max-width: 998px) {
+ .ui.modal {
+ width: 92%;
+ margin-right: -46%;
+ }
+
+ .ui.modal > .close {
+ color: rgba(0, 0, 0, 0.8);
+ top: 1.5rem;
+ left: 1rem;
+ }
+}
+
+/* Computer / Responsive */
+
+@media only screen and (min-width: 998px) {
+ .ui.modal {
+ width: 74%;
+ margin-right: -37%;
+ }
+}
+
+@media only screen and (min-width: 1500px) {
+ .ui.modal {
+ width: 56%;
+ margin-right: -28%;
+ }
+}
+
+@media only screen and (min-width: 1750px) {
+ .ui.modal {
+ width: 42%;
+ margin-right: -21%;
+ }
+}
+
+@media only screen and (min-width: 2000px) {
+ .ui.modal {
+ width: 36%;
+ margin-right: -18%;
+ }
+}
+
+/*******************************
+ Types
+*******************************/
+
+.ui.basic.modal {
+ background-color: transparent;
+ border: none;
+ color: #FFFFFF;
+}
+
+.ui.basic.modal > .close {
+ top: 1.5rem;
+ left: 1rem;
+}
+
+.ui.basic.modal .content {
+ background-color: transparent;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/* A modal that cannot fit on the page */
+
+.ui.modal.scrolling {
+ position: absolute;
+ margin-top: 10px;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.active.modal {
+ display: block;
+}
+
+/*--------------
+ Size
+---------------*/
+
+/* Small */
+
+.ui.small.modal > .header {
+ font-size: 1.3em;
+}
+
+@media only screen and (min-width: 998px) {
+ .ui.small.modal {
+ width: 58%;
+ margin-right: -29%;
+ }
+}
+
+@media only screen and (min-width: 1500px) {
+ .ui.small.modal {
+ width: 40%;
+ margin-right: -20%;
+ }
+}
+
+@media only screen and (min-width: 1750px) {
+ .ui.small.modal {
+ width: 26%;
+ margin-right: -13%;
+ }
+}
+
+@media only screen and (min-width: 2000px) {
+ .ui.small.modal {
+ width: 20%;
+ margin-right: -10%;
+ }
+}
+
+/* Large */
+
+@media only screen and (min-width: 998px) {
+ .ui.large.modal {
+ width: 74%;
+ margin-right: -37%;
+ }
+}
+
+@media only screen and (min-width: 1500px) {
+ .ui.large.modal {
+ width: 64%;
+ margin-right: -32%;
+ }
+}
+
+@media only screen and (min-width: 1750px) {
+ .ui.large.modal {
+ width: 54%;
+ margin-right: -27%;
+ }
+}
+
+@media only screen and (min-width: 2000px) {
+ .ui.large.modal {
+ width: 44%;
+ margin-right: -22%;
+ }
+}
+/*
+ * # Semantic - Nag
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Nag
+*******************************/
+
+.ui.nag {
+ display: none;
+ opacity: 0.95;
+ position: relative;
+ top: 0px;
+ right: 0%;
+ z-index: 101;
+ min-height: 0;
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 0em;
+ line-height: 3em;
+ padding: 0em 1em;
+ background-color: #555555;
+ -webkit-box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2);
+ box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2);
+ font-size: 1em;
+ text-align: center;
+ color: rgba(255, 255, 255, 0.8);
+ border-radius: 0px 0px 5px 5px;
+ -webkit-transition: 0.2s background;
+ -moz-transition: 0.2s background;
+ transition: 0.2s background;
+}
+
+a.ui.nag {
+ cursor: pointer;
+}
+
+.ui.nag > .title {
+ display: inline-block;
+ margin: 0em 0.5em;
+ color: #FFFFFF;
+}
+
+.ui.nag > .close.icon {
+ cursor: pointer;
+ opacity: 0.4;
+ position: absolute;
+ top: 50%;
+ left: 1em;
+ margin-top: -0.5em;
+ color: #FFFFFF;
+ -webkit-transition: 0.1s opacity;
+ -moz-transition: 0.1s opacity;
+ transition: 0.1s opacity;
+}
+
+/*******************************
+ States
+*******************************/
+
+/* Hover */
+
+.ui.nag:hover {
+ opacity: 1;
+}
+
+.ui.nag .close:hover {
+ opacity: 1;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Static
+---------------*/
+
+.ui.overlay.nag {
+ position: absolute;
+ display: block;
+}
+
+/*--------------
+ Fixed
+---------------*/
+
+.ui.fixed.nag {
+ position: fixed;
+}
+
+/*--------------
+ Bottom
+---------------*/
+
+.ui.bottom.nag {
+ border-radius: 5px 5px 0px 0px;
+}
+
+.ui.fixed.bottom.nags,
+.ui.fixed.bottom.nag {
+ top: auto;
+ bottom: 0px;
+}
+
+/*--------------
+ White
+---------------*/
+
+.ui.white.nags .nag,
+.ui.white.nag {
+ background-color: #F1F1F1;
+ text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.8);
+ color: #ACACAC;
+}
+
+.ui.white.nags .nag .close,
+.ui.white.nags .nag .title,
+.ui.white.nag .close,
+.ui.white.nag .title {
+ color: #333333;
+}
+
+/*******************************
+ Groups
+*******************************/
+
+.ui.nags .nag {
+ border-radius: 0px;
+}
+/*
+ * # Semantic - Popup
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Popup
+*******************************/
+
+.ui.popup {
+ display: none;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ z-index: 900;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ max-width: 250px;
+ background-color: #FFFFFF;
+ padding: 0.8em 1.2em;
+ font-size: 0.875rem;
+ font-weight: normal;
+ font-style: normal;
+ color: rgba(0, 0, 0, 0.7);
+ border-radius: 0.2em;
+ -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
+}
+
+.ui.popup .header {
+ padding: 0em 0em 0.5em;
+ font-size: 1.125em;
+ line-height: 1.2;
+ font-weight: bold;
+}
+
+.ui.popup:before {
+ position: absolute;
+ content: "";
+ width: 0.75em;
+ height: 0.75rem;
+ background-image: none;
+ background-color: #FFFFFF;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ z-index: 2;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.popup .ui.button {
+ width: 100%;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Spacing
+---------------*/
+
+.ui.popup {
+ margin: 0em;
+}
+
+.ui.popup.bottom {
+ margin: 0.75em 0em 0em;
+}
+
+.ui.popup.top {
+ margin: 0em 0em 0.75em;
+}
+
+.ui.popup.left.center {
+ margin: 0em 0em 0em 0.75em;
+}
+
+.ui.popup.right.center {
+ margin: 0em 0.75em 0em 0em;
+}
+
+.ui.popup.center {
+ margin-right: -1.25em;
+}
+
+/*--------------
+ Pointer
+---------------*/
+
+/*--- Below ---*/
+
+.ui.bottom.center.popup:before {
+ margin-right: -0.4em;
+ top: -0.4em;
+ right: 50%;
+ left: auto;
+ bottom: auto;
+ -webkit-box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+}
+
+.ui.bottom.left.popup {
+ margin-left: -2em;
+}
+
+.ui.bottom.left.popup:before {
+ top: -0.4em;
+ left: 1em;
+ bottom: auto;
+ right: auto;
+ margin-right: 0em;
+ -webkit-box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+}
+
+.ui.bottom.right.popup {
+ margin-right: -2em;
+}
+
+.ui.bottom.right.popup:before {
+ top: -0.4em;
+ right: 1em;
+ left: auto;
+ bottom: auto;
+ margin-right: 0em;
+ -webkit-box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+}
+
+/*--- Above ---*/
+
+.ui.top.center.popup:before {
+ top: auto;
+ left: auto;
+ bottom: -0.4em;
+ right: 50%;
+ margin-right: -0.4em;
+}
+
+.ui.top.left.popup {
+ margin-left: -2em;
+}
+
+.ui.top.left.popup:before {
+ bottom: -0.4em;
+ left: 1em;
+ top: auto;
+ right: auto;
+ margin-right: 0em;
+}
+
+.ui.top.right.popup {
+ margin-right: -2em;
+}
+
+.ui.top.right.popup:before {
+ bottom: -0.4em;
+ right: 1em;
+ top: auto;
+ left: auto;
+ margin-right: 0em;
+}
+
+/*--- Left Center ---*/
+
+.ui.left.center.popup:before {
+ top: 50%;
+ left: -0.35em;
+ bottom: auto;
+ right: auto;
+ margin-top: -0.4em;
+ -webkit-box-shadow: 1px -1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: 1px -1px 1px rgba(0, 0, 0, 0.2);
+}
+
+/*--- Right Center ---*/
+
+.ui.right.center.popup:before {
+ top: 50%;
+ right: -0.35em;
+ bottom: auto;
+ left: auto;
+ margin-top: -0.4em;
+ -webkit-box-shadow: -1px 1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: -1px 1px 1px rgba(0, 0, 0, 0.2);
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.loading.popup {
+ display: block;
+ visibility: hidden;
+}
+
+.ui.animating.popup,
+.ui.visible.popup {
+ display: block;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Size
+---------------*/
+
+.ui.small.popup {
+ font-size: 0.75rem;
+}
+
+.ui.large.popup {
+ font-size: 1rem;
+}
+
+/*--------------
+ Colors
+---------------*/
+
+/* Inverted colors */
+
+.ui.inverted.popup {
+ background-color: #333333;
+ border: none;
+ color: #FFFFFF;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.popup .header {
+ background-color: rgba(0, 0, 0, 0.2);
+ color: #FFFFFF;
+}
+
+.ui.inverted.popup:before {
+ background-color: #333333;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+/*
+ * # Semantic - Rating
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Rating
+*******************************/
+
+.ui.rating {
+ display: inline-block;
+ font-size: 0em;
+ vertical-align: middle;
+ margin: 0em 0em 0em 0.5rem;
+}
+
+.ui.rating:last-child {
+ margin-left: 0em;
+}
+
+.ui.rating:before {
+ display: block;
+ content: '';
+ visibility: hidden;
+ clear: both;
+ height: 0;
+}
+
+/* Icon */
+
+.ui.rating .icon {
+ cursor: pointer;
+ margin: 0em;
+ width: 1em;
+ height: auto;
+ padding: 0em;
+ color: rgba(0, 0, 0, 0.15);
+ font-weight: normal;
+ font-style: normal;
+}
+
+.ui.rating .icon:before {
+ content: "\2605";
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Star
+--------------------*/
+
+.ui.star.rating .icon {
+ width: 1.2em;
+}
+
+/* Star */
+
+.ui.star.rating .icon:before {
+ content: '\f006';
+ font-family: 'Icons';
+}
+
+/* Active Star */
+
+.ui.star.rating .active.icon:before {
+ content: '\f005';
+ font-family: 'Icons';
+}
+
+/*-------------------
+ Heart
+--------------------*/
+
+.ui.heart.rating .icon {
+ width: 1.2em;
+}
+
+.ui.heart.rating .icon:before {
+ content: '\f08a';
+ font-family: 'Icons';
+}
+
+/* Active */
+
+.ui.heart.rating .active.icon:before {
+ content: '\f004';
+ font-family: 'Icons';
+}
+
+.ui.heart.rating .active.icon {
+ color: #EF404A !important;
+}
+
+/* Hovered */
+
+.ui.heart.rating .hover.icon,
+.ui.heart.rating .active.hover.icon {
+ color: #FF2733 !important;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*-------------------
+ Active
+--------------------*/
+
+/* disabled rating */
+
+.ui.disabled.rating .icon {
+ cursor: default;
+}
+
+/* active icons */
+
+.ui.rating .active.icon {
+ color: #FFCB08 !important;
+}
+
+/*-------------------
+ Hover
+--------------------*/
+
+/* rating */
+
+.ui.rating.hover .active.icon {
+ opacity: 0.5;
+}
+
+/* icon */
+
+.ui.rating .icon.hover,
+.ui.rating .icon.hover.active {
+ opacity: 1;
+ color: #FFB70A !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.small.rating .icon {
+ font-size: 0.75rem;
+}
+
+.ui.rating .icon {
+ font-size: 1rem;
+}
+
+.ui.large.rating .icon {
+ font-size: 1.5rem;
+ vertical-align: middle;
+}
+
+.ui.huge.rating .icon {
+ font-size: 2rem;
+ vertical-align: middle;
+}
+/*
+ * # Semantic - Search
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Search
+*******************************/
+
+.ui.search {
+ position: relative;
+ text-shadow: none;
+ font-style: normal;
+ font-weight: normal;
+}
+
+.ui.search input {
+ border-radius: 500rem;
+}
+
+/*--------------
+ Button
+---------------*/
+
+.ui.search > .button {
+ position: relative;
+ z-index: 2;
+ float: left;
+ margin: 0px -15px 0px 0px;
+ padding: 6px 15px 7px;
+ border-radius: 15px 0px 0px 15px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*--------------
+ Results
+---------------*/
+
+.ui.search .results {
+ display: none;
+ position: absolute;
+ z-index: 999;
+ top: 100%;
+ right: 0px;
+ overflow: hidden;
+ background-color: #FFFFFF;
+ margin-top: 0.5em;
+ width: 380px;
+ font-size: 0.875em;
+ line-height: 1.2;
+ color: #555555;
+ border-radius: 3px;
+ -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1), 0px -2px 0px 0px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1), 0px -2px 0px 0px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.search .result {
+ cursor: pointer;
+ overflow: hidden;
+ padding: 0.5em 1em;
+}
+
+.ui.search .result:first-child {
+ border-top: none;
+}
+
+.ui.search .result .image {
+ background: #F0F0F0;
+ margin-left: 10px;
+ float: right;
+ overflow: hidden;
+ border-radius: 3px;
+ width: 38px;
+ height: 38px;
+}
+
+.ui.search .result .image img {
+ display: block;
+ width: 38px;
+ height: 38px;
+}
+
+.ui.search .result .image ~ .info {
+ float: none;
+ margin-right: 50px;
+}
+
+.ui.search .result .info {
+ float: right;
+}
+
+.ui.search .result .title {
+ font-weight: bold;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.search .result .description {
+ color: rgba(0, 0, 0, 0.6);
+}
+
+.ui.search .result .price {
+ float: left;
+ color: #5BBD72;
+ font-weight: bold;
+}
+
+/*--------------
+ Message
+---------------*/
+
+.ui.search .message {
+ padding: 1em;
+}
+
+.ui.search .message .text .title {
+ margin: 0em 0em 0.5rem;
+ font-size: 1.25rem;
+ font-weight: bold;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.search .message .text .description {
+ margin: 0em;
+ font-size: 1rem;
+ color: rgba(0, 0, 0, 0.5);
+}
+
+/*--------------
+ Categories
+---------------*/
+
+.ui.search .results .category {
+ background-color: #FAFAFA;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ -webkit-transition: background 0.2s ease-in;
+ -moz-transition: background 0.2s ease-in;
+ transition: background 0.2s ease-in;
+}
+
+.ui.search .results .category:first-child {
+ border-top: none;
+}
+
+.ui.search .results .category > .name {
+ float: right;
+ padding: 12px 8px 0px 0px;
+ font-weight: bold;
+ color: #777777;
+ text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.8);
+}
+
+.ui.search .results .category .result {
+ background-color: #FFFFFF;
+ margin-right: 80px;
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* View All Results */
+
+.ui.search .all {
+ display: block;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ background-color: #FAFAFA;
+ height: 2em;
+ line-height: 2em;
+ color: rgba(0, 0, 0, 0.6);
+ font-weight: bold;
+ text-align: center;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.search .result:hover,
+.ui.search .category .result:hover {
+ background-color: #F8F8F8;
+}
+
+.ui.search .all:hover {
+ background-color: #F0F0F0;
+}
+
+/*--------------
+ Loading
+---------------*/
+
+.ui.search.loading .input .icon {
+ background: url(../images/loader-mini.gif) no-repeat 50% 50%;
+}
+
+.ui.search.loading .input .icon:before,
+.ui.search.loading .input .icon:after {
+ display: none;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.search .results .category.active {
+ background-color: #F1F1F1;
+}
+
+.ui.search .results .category.active > .name {
+ color: #333333;
+}
+
+.ui.search .result.active,
+.ui.search .category .result.active {
+ background-color: #FBFBFB;
+}
+
+.ui.search .result.active .title {
+ color: #000000;
+}
+
+.ui.search .result.active .description {
+ color: #555555;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/* Large */
+
+.ui.search .large.result .image,
+.ui.search .large.result .image img {
+ width: 50px;
+ height: 50px;
+}
+
+.ui.search .large.results .indented.info {
+ margin-right: 65px;
+}
+
+.ui.search .large.results .info .title {
+ font-size: 16px;
+}
+
+.ui.search .large.results .info .description {
+ font-size: 11px;
+}
+/*
+ * # Semantic - Shape
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Shape
+*******************************/
+
+.ui.shape {
+ display: inline-block;
+ position: relative;
+ -webkit-perspective: 2000px;
+ -moz-perspective: 2000px;
+ -ms-perspective: 2000px;
+ perspective: 2000px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.shape .sides {
+ -webkit-transform-style: preserve-3d;
+ -moz-transform-style: preserve-3d;
+ -ms-transform-style: preserve-3d;
+ transform-style: preserve-3d;
+}
+
+.ui.shape .side {
+ opacity: 1;
+ width: 100%;
+ margin: 0em !important;
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ -ms-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.shape .side {
+ display: none;
+}
+
+/*******************************
+ Types
+*******************************/
+
+.ui.cube.shape .side {
+ min-width: 15em;
+ height: 15em;
+ padding: 2em;
+ background-color: #E6E6E6;
+ color: rgba(0, 0, 0, 0.6);
+ -webkit-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.3);
+ box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.3);
+}
+
+.ui.cube.shape .side > .content {
+ width: 100%;
+ height: 100%;
+ display: table;
+ text-align: center;
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+}
+
+.ui.cube.shape .side > .content > div {
+ display: table-cell;
+ vertical-align: middle;
+ font-size: 2em;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.text.shape.animating .sides {
+ position: static;
+}
+
+.ui.text.shape .side {
+ white-space: nowrap;
+}
+
+.ui.text.shape .side > * {
+ white-space: normal;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Loading
+---------------*/
+
+.ui.loading.shape {
+ position: absolute;
+ top: -9999px;
+ right: -9999px;
+}
+
+/*--------------
+ Animating
+---------------*/
+
+.ui.shape .animating.side {
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ z-index: 100;
+}
+
+.ui.shape .hidden.side {
+ opacity: 0.4;
+}
+
+/*--------------
+ CSS
+---------------*/
+
+.ui.shape.animating {
+ -webkit-transition: all 0.6s ease-in-out;
+ -moz-transition: all 0.6s ease-in-out;
+ transition: all 0.6s ease-in-out;
+}
+
+.ui.shape.animating .sides {
+ position: absolute;
+}
+
+.ui.shape.animating .sides {
+ -webkit-transition: all 0.6s ease-in-out;
+ -moz-transition: all 0.6s ease-in-out;
+ transition: all 0.6s ease-in-out;
+}
+
+.ui.shape.animating .side {
+ -webkit-transition: opacity 0.6s ease-in-out;
+ -moz-transition: opacity 0.6s ease-in-out;
+ transition: opacity 0.6s ease-in-out;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.shape .active.side {
+ display: block;
+}
+/*
+ * # Semantic - Sidebar
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Sidebar
+*******************************/
+
+body {
+ -webkit-transition: margin 0.3s ease, -webkit-transform 0.3s ease /*rtl:append:,
+ padding 0.3s ease*/;
+ -moz-transition: margin 0.3s ease, -moz-transform 0.3s ease /*rtl:append:,
+ padding 0.3s ease*/;
+ transition: margin 0.3s ease, transform 0.3s ease /*rtl:append:,
+ padding 0.3s ease*/;
+}
+
+.ui.sidebar {
+ position: fixed;
+ margin: 0 !important;
+ height: 100% !important;
+ border-radius: !important 0px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -ms-overflow-y: auto;
+ overflow-y: auto;
+ top: 0px;
+ right: 0px;
+ z-index: 999;
+ -webkit-transition: margin-right 0.3s ease, margin-top 0.3s ease;
+ -moz-transition: margin-right 0.3s ease, margin-top 0.3s ease;
+ transition: margin-right 0.3s ease, margin-top 0.3s ease;
+}
+
+/*-------------------
+ Coupling
+--------------------*/
+
+body.pushed.scrolling.ui.dimmable {
+ position: static;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Direction
+--------------------*/
+
+.ui.right.very.thin.sidebar,
+.ui.right.thin.sidebar,
+.ui.right.sidebar,
+.ui.right.wide.sidebar,
+.ui.right.very.wide.sidebar {
+ right: 100%;
+ margin: 0px !important;
+}
+
+.ui.top.sidebar {
+ width: 100% !important;
+}
+
+.ui.bottom.sidebar {
+ width: 100% !important;
+ top: 100%;
+ margin: 0px !important;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.active.sidebar {
+ margin-right: 0px !important;
+}
+
+.ui.active.top.sidebar,
+.ui.active.bottom.sidebar {
+ margin-top: 0px !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Formatted
+--------------------*/
+
+.ui.styled.sidebar {
+ padding: 1em 1.5em;
+ background-color: #FFFFFF;
+ -webkit-box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1);
+ box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1);
+}
+
+.ui.styled.very.thin.sidebar {
+ padding: 0.5em;
+}
+
+.ui.styled.thin.sidebar {
+ padding: 1em;
+}
+
+/*-------------------
+ Floating
+--------------------*/
+
+.ui.floating.sidebar {
+ -webkit-box-shadow: 2px 0px 2px rgba(0, 0, 0, 0.2);
+ box-shadow: 2px 0px 2px rgba(0, 0, 0, 0.2);
+}
+
+.ui.right.floating.sidebar {
+ -webkit-box-shadow: -2px 0px 2px rgba(0, 0, 0, 0.2);
+ box-shadow: -2px 0px 2px rgba(0, 0, 0, 0.2);
+}
+
+.ui.top.floating.sidebar {
+ -webkit-box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.2);
+ box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.2);
+}
+
+.ui.bottom.floating.sidebar {
+ -webkit-box-shadow: 0px -4px 4px rgba(0, 0, 0, 0.2);
+ box-shadow: 0px -4px 4px rgba(0, 0, 0, 0.2);
+}
+
+/*-------------------
+ Width
+--------------------*/
+
+/* Very Thin */
+
+.ui.very.thin.sidebar {
+ width: 60px !important;
+ margin-right: -60px !important;
+}
+
+.ui.active.very.thin.sidebar {
+ margin-right: 0px !important;
+}
+
+.ui.active.right.very.thin.sidebar {
+ margin-right: -60px !important;
+}
+
+/* Thin */
+
+.ui.thin.sidebar {
+ width: 200px !important;
+ margin-right: -200px !important;
+}
+
+.ui.active.thin.sidebar {
+ margin-right: 0px !important;
+}
+
+.ui.active.right.thin.sidebar {
+ margin-right: -200px !important;
+}
+
+/* Standard */
+
+.ui.sidebar {
+ width: 275px !important;
+ margin-right: -275px !important;
+}
+
+.ui.active.sidebar {
+ margin-right: 0px !important;
+}
+
+.ui.active.right.sidebar {
+ margin-right: -275px !important;
+}
+
+/* Wide */
+
+.ui.wide.sidebar {
+ width: 350px !important;
+ margin-right: -350px !important;
+}
+
+.ui.active.wide.sidebar {
+ margin-right: 0px !important;
+}
+
+.ui.active.right.wide.sidebar {
+ margin-right: -350px !important;
+}
+
+/* Very Wide */
+
+.ui.very.wide.sidebar {
+ width: 475px !important;
+ margin-right: -475px !important;
+}
+
+.ui.active.very.wide.sidebar {
+ margin-right: 0px !important;
+}
+
+.ui.active.right.very.wide.sidebar {
+ margin-right: -475px !important;
+}
+
+/*-------------------
+ Height
+--------------------*/
+
+/* Standard */
+
+.ui.top.sidebar {
+ margin: -40px 0px 0px 0px !important;
+}
+
+.ui.top.sidebar,
+.ui.bottom.sidebar {
+ height: 40px !important;
+}
+
+.ui.active.bottom.sidebar {
+ margin-top: -40px !important;
+}
+/*
+ * # Semantic - Tab
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ UI Tabs
+*******************************/
+
+.ui.tab {
+ display: none;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------------
+ Active
+---------------------*/
+
+.ui.tab.active,
+.ui.tab.open {
+ display: block;
+}
+
+/*--------------------
+ Loading
+---------------------*/
+
+.ui.tab.loading {
+ position: relative;
+ overflow: hidden;
+ display: block;
+ min-height: 250px;
+ text-indent: -10000px;
+}
+
+.ui.tab.loading * {
+ position: relative !important;
+ right: -10000px !important;
+}
+
+.ui.tab.loading:after {
+ position: absolute;
+ top: 50px;
+ right: 50%;
+ content: 'Loading...';
+ margin-right: -32px;
+ text-indent: 5px;
+ color: rgba(0, 0, 0, 0.4);
+ width: 100%;
+ height: 100%;
+ padding-top: 75px;
+ background: url(../images/loader-large.gif) no-repeat 0px 0px;
+ visibility: visible;
+}
+/*******************************
+ Semantic - Transition
+ Author: Jack Lukic
+
+ CSS animation definitions for
+ transition module
+
+*******************************/
+
+/*
+ Some transitions adapted from Animate CSS
+ https://github.com/daneden/animate.css
+*/
+
+.ui.transition {
+ -webkit-animation-iteration-count: 1;
+ -moz-animation-iteration-count: 1;
+ animation-iteration-count: 1;
+ -webkit-animation-duration: 1s;
+ -moz-animation-duration: 1s;
+ animation-duration: 1s;
+ -webkit-animation-timing-function: ease;
+ -moz-animation-timing-function: ease;
+ animation-timing-function: ease;
+ -webkit-animation-fill-mode: both;
+ -moz-animation-fill-mode: both;
+ animation-fill-mode: both;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.animating.transition {
+ display: block;
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ -ms-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-transform: translateZ(0);
+ -moz-transform: translateZ(0);
+ -ms-transform: translateZ(0);
+ transform: translateZ(0);
+}
+
+/* Loading */
+
+.ui.loading.transition {
+ position: absolute;
+ top: -999999px;
+ right: -99999px;
+}
+
+/* Hidden */
+
+.ui.hidden.transition {
+ display: none;
+}
+
+/* Visible */
+
+.ui.visible.transition {
+ display: block;
+ visibility: visible;
+}
+
+/* Disabled */
+
+.ui.disabled.transition {
+ -webkit-animation-play-state: paused;
+ -moz-animation-play-state: paused;
+ animation-play-state: paused;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.looping.transition {
+ -webkit-animation-iteration-count: infinite;
+ -moz-animation-iteration-count: infinite;
+ animation-iteration-count: infinite;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Emphasis
+---------------*/
+
+.ui.flash.transition {
+ -webkit-animation-name: flash;
+ -moz-animation-name: flash;
+ animation-name: flash;
+}
+
+.ui.shake.transition {
+ -webkit-animation-name: shake;
+ -moz-animation-name: shake;
+ animation-name: shake;
+}
+
+.ui.bounce.transition {
+ -webkit-animation-name: bounce;
+ -moz-animation-name: bounce;
+ animation-name: bounce;
+}
+
+.ui.tada.transition {
+ -webkit-animation-name: tada;
+ -moz-animation-name: tada;
+ animation-name: tada;
+}
+
+/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
+
+.ui.pulse.transition {
+ -webkit-animation-name: pulse;
+ -moz-animation-name: pulse;
+ animation-name: pulse;
+}
+
+/*--------------
+ Flips
+---------------*/
+
+.ui.flip.transition.in,
+.ui.flip.transition.out {
+ -webkit-perspective: 2000px;
+ -moz-perspective: 2000px;
+ -ms-perspective: 2000px;
+ perspective: 2000px;
+}
+
+.ui.horizontal.flip.transition.in,
+.ui.horizontal.flip.transition.out {
+ -webkit-animation-name: horizontalFlip;
+ -moz-animation-name: horizontalFlip;
+ animation-name: horizontalFlip;
+}
+
+.ui.horizontal.flip.transition.out {
+ -webkit-animation-name: horizontalFlipOut;
+ -moz-animation-name: horizontalFlipOut;
+ animation-name: horizontalFlipOut;
+}
+
+.ui.vertical.flip.transition.in,
+.ui.vertical.flip.transition.out {
+ -webkit-animation-name: verticalFlip;
+ -moz-animation-name: verticalFlip;
+ animation-name: verticalFlip;
+}
+
+.ui.vertical.flip.transition.out {
+ -webkit-animation-name: verticalFlipOut;
+ -moz-animation-name: verticalFlipOut;
+ animation-name: verticalFlipOut;
+}
+
+/*--------------
+ Fades
+---------------*/
+
+.ui.fade.transition.in {
+ -webkit-animation-name: fade;
+ -moz-animation-name: fade;
+ animation-name: fade;
+}
+
+.ui.fade.transition.out {
+ -webkit-animation-name: fadeOut;
+ -moz-animation-name: fadeOut;
+ animation-name: fadeOut;
+}
+
+.ui.fade.up.transition.in {
+ -webkit-animation-name: fadeUp;
+ -moz-animation-name: fadeUp;
+ animation-name: fadeUp;
+}
+
+.ui.fade.up.transition.out {
+ -webkit-animation-name: fadeUpOut;
+ -moz-animation-name: fadeUpOut;
+ animation-name: fadeUpOut;
+}
+
+.ui.fade.down.transition.in {
+ -webkit-animation-name: fadeDown;
+ -moz-animation-name: fadeDown;
+ animation-name: fadeDown;
+}
+
+.ui.fade.down.transition.out {
+ -webkit-animation-name: fadeDownOut;
+ -moz-animation-name: fadeDownOut;
+ animation-name: fadeDownOut;
+}
+
+/*--------------
+ Scale
+---------------*/
+
+.ui.scale.transition.in {
+ -webkit-animation-name: scale;
+ -moz-animation-name: scale;
+ animation-name: scale;
+}
+
+.ui.scale.transition.out {
+ -webkit-animation-name: scaleOut;
+ -moz-animation-name: scaleOut;
+ animation-name: scaleOut;
+}
+
+/*--------------
+ Slide
+---------------*/
+
+.ui.slide.down.transition.in {
+ -webkit-animation-name: slide;
+ -moz-animation-name: slide;
+ animation-name: slide;
+ -moz-transform-origin: 50% 0%;
+ transform-origin: 50% 0%;
+ -ms-transform-origin: 50% 0%;
+ -webkit-transform-origin: 50% 0%;
+}
+
+.ui.slide.down.transition.out {
+ -webkit-animation-name: slideOut;
+ -moz-animation-name: slideOut;
+ animation-name: slideOut;
+ -webkit-transform-origin: 50% 0%;
+ -moz-transform-origin: 50% 0%;
+ -ms-transform-origin: 50% 0%;
+ transform-origin: 50% 0%;
+}
+
+.ui.slide.up.transition.in {
+ -webkit-animation-name: slide;
+ -moz-animation-name: slide;
+ animation-name: slide;
+ -webkit-transform-origin: 50% 100%;
+ -moz-transform-origin: 50% 100%;
+ -ms-transform-origin: 50% 100%;
+ transform-origin: 50% 100%;
+}
+
+.ui.slide.up.transition.out {
+ -webkit-animation-name: slideOut;
+ -moz-animation-name: slideOut;
+ animation-name: slideOut;
+ -webkit-transform-origin: 50% 100%;
+ -moz-transform-origin: 50% 100%;
+ -ms-transform-origin: 50% 100%;
+ transform-origin: 50% 100%;
+}
+
+@-webkit-keyframes slide {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+}
+
+@-moz-keyframes slide {
+ 0% {
+ opacity: 0;
+ -moz-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+}
+
+@keyframes slide {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ -moz-transform: scaleY(0);
+ -ms-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ -moz-transform: scaleY(1);
+ -ms-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+}
+
+@-webkit-keyframes slideOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+}
+
+@-moz-keyframes slideOut {
+ 0% {
+ opacity: 1;
+ -moz-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+}
+
+@keyframes slideOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ -moz-transform: scaleY(1);
+ -ms-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ -moz-transform: scaleY(0);
+ -ms-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+}
+
+/*******************************
+ Animations
+*******************************/
+
+/*--------------
+ Emphasis
+---------------*/
+
+/* Flash */
+
+@-webkit-keyframes flash {
+ 0%, 50%, 100% {
+ opacity: 1;
+ }
+
+ 25%, 75% {
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes flash {
+ 0%, 50%, 100% {
+ opacity: 1;
+ }
+
+ 25%, 75% {
+ opacity: 0;
+ }
+}
+
+@keyframes flash {
+ 0%, 50%, 100% {
+ opacity: 1;
+ }
+
+ 25%, 75% {
+ opacity: 0;
+ }
+}
+
+/* Shake */
+
+@-webkit-keyframes shake {
+ 0%, 100% {
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ }
+
+ 10%, 30%, 50%, 70%, 90% {
+ -webkit-transform: translateX(-10px);
+ transform: translateX(-10px);
+ }
+
+ 20%, 40%, 60%, 80% {
+ -webkit-transform: translateX(10px);
+ transform: translateX(10px);
+ }
+}
+
+@-moz-keyframes shake {
+ 0%, 100% {
+ -moz-transform: translateX(0);
+ transform: translateX(0);
+ }
+
+ 10%, 30%, 50%, 70%, 90% {
+ -moz-transform: translateX(-10px);
+ transform: translateX(-10px);
+ }
+
+ 20%, 40%, 60%, 80% {
+ -moz-transform: translateX(10px);
+ transform: translateX(10px);
+ }
+}
+
+@keyframes shake {
+ 0%, 100% {
+ -webkit-transform: translateX(0);
+ -moz-transform: translateX(0);
+ -ms-transform: translateX(0);
+ transform: translateX(0);
+ }
+
+ 10%, 30%, 50%, 70%, 90% {
+ -webkit-transform: translateX(-10px);
+ -moz-transform: translateX(-10px);
+ -ms-transform: translateX(-10px);
+ transform: translateX(-10px);
+ }
+
+ 20%, 40%, 60%, 80% {
+ -webkit-transform: translateX(10px);
+ -moz-transform: translateX(10px);
+ -ms-transform: translateX(10px);
+ transform: translateX(10px);
+ }
+}
+
+/* Bounce */
+
+@-webkit-keyframes bounce {
+ 0%, 20%, 50%, 80%, 100% {
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 40% {
+ -webkit-transform: translateY(-30px);
+ transform: translateY(-30px);
+ }
+
+ 60% {
+ -webkit-transform: translateY(-15px);
+ transform: translateY(-15px);
+ }
+}
+
+@-moz-keyframes bounce {
+ 0%, 20%, 50%, 80%, 100% {
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 40% {
+ -moz-transform: translateY(-30px);
+ transform: translateY(-30px);
+ }
+
+ 60% {
+ -moz-transform: translateY(-15px);
+ transform: translateY(-15px);
+ }
+}
+
+@keyframes bounce {
+ 0%, 20%, 50%, 80%, 100% {
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 40% {
+ -webkit-transform: translateY(-30px);
+ -moz-transform: translateY(-30px);
+ -ms-transform: translateY(-30px);
+ transform: translateY(-30px);
+ }
+
+ 60% {
+ -webkit-transform: translateY(-15px);
+ -moz-transform: translateY(-15px);
+ -ms-transform: translateY(-15px);
+ transform: translateY(-15px);
+ }
+}
+
+/* Tada */
+
+@-webkit-keyframes tada {
+ 0% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 10%, 20% {
+ -webkit-transform: scale(0.9) rotate(-3deg);
+ transform: scale(0.9) rotate(-3deg);
+ }
+
+ 30%, 50%, 70%, 90% {
+ -webkit-transform: scale(1.1) rotate(3deg);
+ transform: scale(1.1) rotate(3deg);
+ }
+
+ 40%, 60%, 80% {
+ -webkit-transform: scale(1.1) rotate(-3deg);
+ transform: scale(1.1) rotate(-3deg);
+ }
+
+ 100% {
+ -webkit-transform: scale(1) rotate(0);
+ transform: scale(1) rotate(0);
+ }
+}
+
+@-moz-keyframes tada {
+ 0% {
+ -moz-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 10%, 20% {
+ -moz-transform: scale(0.9) rotate(-3deg);
+ transform: scale(0.9) rotate(-3deg);
+ }
+
+ 30%, 50%, 70%, 90% {
+ -moz-transform: scale(1.1) rotate(3deg);
+ transform: scale(1.1) rotate(3deg);
+ }
+
+ 40%, 60%, 80% {
+ -moz-transform: scale(1.1) rotate(-3deg);
+ transform: scale(1.1) rotate(-3deg);
+ }
+
+ 100% {
+ -moz-transform: scale(1) rotate(0);
+ transform: scale(1) rotate(0);
+ }
+}
+
+@keyframes tada {
+ 0% {
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 10%, 20% {
+ -webkit-transform: scale(0.9) rotate(-3deg);
+ -moz-transform: scale(0.9) rotate(-3deg);
+ -ms-transform: scale(0.9) rotate(-3deg);
+ transform: scale(0.9) rotate(-3deg);
+ }
+
+ 30%, 50%, 70%, 90% {
+ -webkit-transform: scale(1.1) rotate(3deg);
+ -moz-transform: scale(1.1) rotate(3deg);
+ -ms-transform: scale(1.1) rotate(3deg);
+ transform: scale(1.1) rotate(3deg);
+ }
+
+ 40%, 60%, 80% {
+ -webkit-transform: scale(1.1) rotate(-3deg);
+ -moz-transform: scale(1.1) rotate(-3deg);
+ -ms-transform: scale(1.1) rotate(-3deg);
+ transform: scale(1.1) rotate(-3deg);
+ }
+
+ 100% {
+ -webkit-transform: scale(1) rotate(0);
+ -moz-transform: scale(1) rotate(0);
+ -ms-transform: scale(1) rotate(0);
+ transform: scale(1) rotate(0);
+ }
+}
+
+/* Pulse */
+
+@-webkit-keyframes pulse {
+ 0% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+
+ 50% {
+ -webkit-transform: scale(0.9);
+ transform: scale(0.9);
+ opacity: 0.7;
+ }
+
+ 100% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes pulse {
+ 0% {
+ -moz-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+
+ 50% {
+ -moz-transform: scale(0.9);
+ transform: scale(0.9);
+ opacity: 0.7;
+ }
+
+ 100% {
+ -moz-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+@keyframes pulse {
+ 0% {
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+
+ 50% {
+ -webkit-transform: scale(0.9);
+ -moz-transform: scale(0.9);
+ -ms-transform: scale(0.9);
+ transform: scale(0.9);
+ opacity: 0.7;
+ }
+
+ 100% {
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+/*--------------
+ Flips
+---------------*/
+
+/* Horizontal */
+
+@-webkit-keyframes horizontalFlip {
+ 0% {
+ -webkit-transform: rotateY(-90deg);
+ transform: rotateY(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes horizontalFlip {
+ 0% {
+ -moz-transform: rotateY(-90deg);
+ transform: rotateY(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+}
+
+@keyframes horizontalFlip {
+ 0% {
+ -webkit-transform: rotateY(-90deg);
+ -moz-transform: rotateY(-90deg);
+ -ms-transform: rotateY(-90deg);
+ transform: rotateY(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: rotateY(0deg);
+ -moz-transform: rotateY(0deg);
+ -ms-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+}
+
+/* Horizontal */
+
+@-webkit-keyframes horizontalFlipOut {
+ 0% {
+ -webkit-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: rotateY(90deg);
+ transform: rotateY(90deg);
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes horizontalFlipOut {
+ 0% {
+ -moz-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -moz-transform: rotateY(90deg);
+ transform: rotateY(90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes horizontalFlipOut {
+ 0% {
+ -webkit-transform: rotateY(0deg);
+ -moz-transform: rotateY(0deg);
+ -ms-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: rotateY(90deg);
+ -moz-transform: rotateY(90deg);
+ -ms-transform: rotateY(90deg);
+ transform: rotateY(90deg);
+ opacity: 0;
+ }
+}
+
+/* Vertical */
+
+@-webkit-keyframes verticalFlip {
+ 0% {
+ -webkit-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes verticalFlip {
+ 0% {
+ -moz-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+}
+
+@keyframes verticalFlip {
+ 0% {
+ -webkit-transform: rotateX(-90deg);
+ -moz-transform: rotateX(-90deg);
+ -ms-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: rotateX(0deg);
+ -moz-transform: rotateX(0deg);
+ -ms-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+}
+
+@-webkit-keyframes verticalFlipOut {
+ 0% {
+ -webkit-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes verticalFlipOut {
+ 0% {
+ -moz-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -moz-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes verticalFlipOut {
+ 0% {
+ -webkit-transform: rotateX(0deg);
+ -moz-transform: rotateX(0deg);
+ -ms-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: rotateX(-90deg);
+ -moz-transform: rotateX(-90deg);
+ -ms-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+}
+
+/*--------------
+ Fades
+---------------*/
+
+/* Fade */
+
+@-webkit-keyframes fade {
+ 0% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes fade {
+ 0% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ }
+}
+
+@keyframes fade {
+ 0% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ }
+}
+
+@-webkit-keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+}
+
+@keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+}
+
+/* Fade Up */
+
+@-webkit-keyframes fadeUp {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@-moz-keyframes fadeUp {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@keyframes fadeUp {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ -moz-transform: translateY(20px);
+ -ms-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@-webkit-keyframes fadeUpOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+}
+
+@-moz-keyframes fadeUpOut {
+ 0% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+}
+
+@keyframes fadeUpOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ -moz-transform: translateY(20px);
+ -ms-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+}
+
+/* Fade Down */
+
+@-webkit-keyframes fadeDown {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@-moz-keyframes fadeDown {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@keyframes fadeDown {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ -moz-transform: translateY(-20px);
+ -ms-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@-webkit-keyframes fadeDownOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+}
+
+@-moz-keyframes fadeDownOut {
+ 0% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+}
+
+@keyframes fadeDownOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ -moz-transform: translateY(-20px);
+ -ms-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+}
+
+/*--------------
+ Scale
+---------------*/
+
+/* Scale */
+
+@-webkit-keyframes scale {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+@-moz-keyframes scale {
+ 0% {
+ opacity: 0;
+ -moz-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+@keyframes scale {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ -moz-transform: scale(0.7);
+ -ms-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+@-webkit-keyframes scaleOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+}
+
+@-moz-keyframes scaleOut {
+ 0% {
+ opacity: 1;
+ -moz-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+}
+
+@keyframes scaleOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ -moz-transform: scale(0.7);
+ -ms-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+}
+/*
+ * # Semantic - Video
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Video
+*******************************/
+
+.ui.video {
+ position: relative;
+ max-width: 100%;
+}
+
+/*--------------
+ Content
+---------------*/
+
+/* Placeholder Image */
+
+.ui.video .placeholder {
+ background-color: #333333;
+}
+
+/* Play Icon Overlay */
+
+.ui.video .play {
+ cursor: pointer;
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ z-index: 10;
+ width: 100%;
+ height: 100%;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
+ filter: alpha(opacity=60);
+ opacity: 0.6;
+ -webkit-transition: opacity 0.3s;
+ -moz-transition: opacity 0.3s;
+ transition: opacity 0.3s;
+}
+
+.ui.video .play.icon:before {
+ position: absolute;
+ top: 50%;
+ right: 50%;
+ z-index: 11;
+ font-size: 6rem;
+ margin: -3rem -3rem 0em 0em;
+ color: #FFFFFF;
+ text-shadow: 0px 3px 3px rgba(0, 0, 0, 0.4);
+}
+
+.ui.video .placeholder {
+ display: block;
+ width: 100%;
+ height: 100%;
+}
+
+/* IFrame Embed */
+
+.ui.video .embed {
+ display: none;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.video .play:hover {
+ opacity: 1;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.video.active .play,
+.ui.video.active .placeholder {
+ display: none;
+}
+
+.ui.video.active .embed {
+ display: block;
+}
+/*
+ * # Semantic Comment View
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: April 17 2013
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------
+ Comments
+---------------*/
+
+.ui.comments a {
+ cursor: pointer;
+}
+
+/*--------------
+ Comment
+---------------*/
+
+.ui.comments .comment {
+ position: relative;
+ margin-top: 0.5em;
+ padding-top: 0.5em;
+}
+
+.ui.comments .comment:first-child {
+ margin-top: 0em;
+ padding-top: 0em;
+}
+
+/*--------------------
+ Avatar (Optional)
+---------------------*/
+
+.ui.comments .comment .avatar {
+ display: block;
+ float: right;
+ width: 4em;
+}
+
+.ui.comments .comment .avatar img {
+ display: block;
+ margin: 0em auto;
+ width: 3em;
+ height: 3em;
+ border-radius: 500px;
+}
+
+/*--------------
+ Content
+---------------*/
+
+.ui.comments .comment > .content,
+.ui.comments .comment > .avatar {
+ display: block;
+}
+
+.ui.comments .comment .avatar ~ .content {
+ padding: 0em 1em;
+}
+
+/* If there is an avatar move content over */
+
+.ui.comments .comment > .avatar ~ .content {
+ padding-top: 0.25em;
+ margin-right: 3.5em;
+}
+
+.ui.comments .comment .metadata {
+ display: inline-block;
+ margin-right: 0.3em;
+ color: rgba(0, 0, 0, 0.4);
+}
+
+.ui.comments .comment .metadata > * {
+ display: inline-block;
+ margin: 0em 0em 0em 0.3em;
+}
+
+/*--------------------
+ Comment Text
+---------------------*/
+
+.ui.comments .comment .text {
+ margin: 0.25em 0em 0.5em;
+ word-wrap: break-word;
+}
+
+/*--------------------
+ User Actions
+---------------------*/
+
+.ui.comments .comment .actions {
+ font-size: 0.9em;
+}
+
+.ui.comments .comment .actions a {
+ display: inline-block;
+ margin: 0em 0em 0em 0.3em;
+ color: rgba(0, 0, 0, 0.3);
+}
+
+.ui.comments .comment .actions a.active,
+.ui.comments .comment .actions a:hover {
+ color: rgba(0, 0, 0, 0.6);
+}
+
+/*--------------------
+ Reply Form
+---------------------*/
+
+.ui.comments .reply.form {
+ margin-top: 0.75em;
+ width: 100%;
+ max-width: 30em;
+}
+
+.ui.comments .comment .reply.form {
+ margin-right: 2em;
+}
+
+.ui.comments > .reply.form {
+ margin-top: 1.5em;
+ max-width: 40em;
+}
+
+.ui.comments .reply.form textarea {
+ height: 12em;
+}
+
+/*--------------------
+ Nested Comments
+---------------------*/
+
+.ui.comments .comment .comments {
+ margin-top: 0.5em;
+ padding-top: 0.5em;
+ padding-bottom: 1em;
+}
+
+.ui.comments .comment .comments:before {
+ position: absolute;
+ top: 0px;
+ right: 0px;
+}
+
+/* One Deep */
+
+.ui.comments > .comment .comments {
+ margin-right: 2em;
+}
+
+/* Two Deep */
+
+.ui.comments > .comment > .comments > .comment > .comments {
+ margin-right: 1.75em;
+}
+
+/* Three Deep */
+
+.ui.comments > .comment > .comments > .comment > .comments > .comment > .comments {
+ margin-right: 1.5em;
+}
+
+/* Four Deep or more */
+
+.ui.comments > .comment > .comments > .comment > .comments > .comment > .comments > .comment .comments {
+ margin-right: 0.5em;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------------
+ Threaded
+---------------------*/
+
+.ui.threaded.comments .comment .comments {
+ margin-right: 2em !important;
+ padding-right: 2em !important;
+ -webkit-box-shadow: -1px 0px 0px rgba(0, 0, 0, 0.05);
+ box-shadow: -1px 0px 0px rgba(0, 0, 0, 0.05);
+}
+
+/*--------------------
+ Minimal
+---------------------*/
+
+.ui.minimal.comments .comment .actions {
+ opacity: 0;
+ -webkit-transition: opacity 0.1s ease-out;
+ -moz-transition: opacity 0.1s ease-out;
+ transition: opacity 0.1s ease-out;
+ -webkit-transition-delay: 0.1s;
+ -moz-transition-delay: 0.1s;
+ transition-delay: 0.1s;
+}
+
+.ui.minimal.comments .comment > .content:hover > .actions {
+ opacity: 1;
+}
+
+/*--------------------
+ Sizes
+---------------------*/
+
+.ui.small.comments {
+ font-size: 0.875em;
+}
+/*
+ * # Activity Feed View
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: May 22, 2013
+ */
+
+/*******************************
+ Activity Feed
+*******************************/
+
+.ui.feed a {
+ cursor: pointer;
+}
+
+.ui.feed,
+.ui.feed .event,
+.ui.feed .label,
+.ui.feed .content,
+.ui.feed .extra {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*******************************
+ Content
+*******************************/
+
+/* Event */
+
+.ui.feed .event {
+ width: 100%;
+ display: table;
+ padding: 1em;
+}
+
+.ui.feed .event:first-child {
+ border-top: 0px;
+}
+
+.ui.feed .event:last-child {
+ margin-bottom: 1em;
+}
+
+/* Event Label */
+
+.ui.feed .label {
+ width: 3em;
+ display: table-cell;
+ vertical-align: top;
+ text-align: right;
+}
+
+.ui.feed .label .icon {
+ font-size: 1.5em;
+ padding: 0.5em;
+ margin: 0em;
+}
+
+.ui.feed .label img {
+ width: 3em;
+ margin: 0em;
+ border-radius: 50em;
+}
+
+.ui.feed .label + .content {
+ padding: 0.75em 1em 0em;
+}
+
+/* Content */
+
+.ui.feed .content {
+ display: table-cell;
+ vertical-align: top;
+ text-align: right;
+ word-wrap: break-word;
+}
+
+/* Date */
+
+.ui.feed .content .date {
+ float: left;
+ padding-right: 1em;
+ color: rgba(0, 0, 0, 0.4);
+}
+
+/* Summary */
+
+.ui.feed .content .summary {
+ color: rgba(0, 0, 0, 0.75);
+}
+
+.ui.feed .content .summary img {
+ display: inline-block;
+ margin-left: 0.25em;
+ width: 4em;
+ border-radius: 500px;
+}
+
+/* Additional Information */
+
+.ui.feed .content .extra {
+ margin: 1em 0em 0em;
+ padding: 0.5em 0em 0em;
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.feed .content .extra.images img {
+ display: inline-block;
+ margin-left: 0.25em;
+ width: 6em;
+}
+
+.ui.feed .content .extra.text {
+ padding: 0.5em 1em;
+ border-right: 0.2em solid rgba(0, 0, 0, 0.1);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.small.feed {
+ font-size: 0.875em;
+}
+
+.ui.small.feed .label img {
+ width: 2.5em;
+}
+
+.ui.small.feed .label .icon {
+ font-size: 1.25em;
+}
+
+.ui.feed .event {
+ padding: 0.75em 0em;
+}
+
+.ui.small.feed .label + .content {
+ padding: 0.5em 0.5em 0;
+}
+
+.ui.small.feed .content .extra.images img {
+ width: 5em;
+}
+
+.ui.small.feed .content .extra {
+ margin: 0.5em 0em 0em;
+}
+
+.ui.small.feed .content .extra.text {
+ padding: 0.25em 0.5em;
+}
+/*
+ * # Semantic Item View
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: April 17 2013
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------
+ Items
+---------------*/
+
+.ui.items {
+ margin: 1em 0em 0em;
+}
+
+.ui.items:first-child {
+ margin-top: 0em;
+}
+
+.ui.items:last-child {
+ margin-bottom: -1em;
+}
+
+/* Force Clearing */
+
+.ui.items:after {
+ display: block;
+ content: ' ';
+ height: 0px;
+ clear: both;
+ overflow: hidden;
+ visibility: hidden;
+}
+
+/*--------------
+ Item
+---------------*/
+
+.ui.items > .row > .item,
+.ui.items > .item {
+ display: block;
+ float: right;
+ position: relative;
+ top: 0px;
+ width: 316px;
+ min-height: 375px;
+ margin: 0em 0.5em 2.5em;
+ padding: 0em;
+ background-color: #FFFFFF;
+ line-height: 1.2;
+ font-size: 1em;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ border-bottom: 0.2em solid rgba(0, 0, 0, 0.2);
+ border-radius: 0.33em;
+ -webkit-transition: -webkit-box-shadow 0.2s ease;
+ -moz-transition: box-shadow 0.2s ease;
+ transition: box-shadow 0.2s ease;
+ padding: 0.5em;
+}
+
+.ui.items a.item,
+.ui.items .item a {
+ cursor: pointer;
+}
+
+.ui.items .item,
+.ui.items .item > .image,
+.ui.items .item > .image .overlay,
+.ui.items .item > .content,
+.ui.items .item > .content > .meta,
+.ui.items .item > .content > .extra {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*--------------
+ Images
+---------------*/
+
+.ui.items .item > .image {
+ display: block;
+ position: relative;
+ background-color: rgba(0, 0, 0, 0.05);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ border-radius: 0.2em;
+}
+
+.ui.items .item > .image > img {
+ display: block;
+ width: 100%;
+}
+
+/*--------------
+ Content
+---------------*/
+
+.ui.items .item > .content {
+ padding: 0.75em 0.5em;
+}
+
+.ui.items .item > .content > .name {
+ display: block;
+ font-size: 1.25em;
+ font-weight: bold;
+ margin-bottom: 0.2em;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.items .item > .content > .description {
+ clear: both;
+ margin: 0em 0em;
+ color: rgba(0, 0, 0, 0.45);
+}
+
+.ui.items .item > .content > .description p {
+ margin: 0em 0em 0.2em;
+}
+
+.ui.items .item > .content > .description p:last-child {
+ margin-bottom: 0em;
+}
+
+/*--------------
+ Meta
+---------------*/
+
+.ui.items .item .meta {
+ float: left;
+ color: rgba(0, 0, 0, 0.35);
+}
+
+.ui.items .item > .content > .meta + .name {
+ float: right;
+}
+
+/*--------------
+ Labels
+---------------*/
+
+/*-----star----- */
+
+/* hover */
+
+.ui.items .item .star.label:hover::after {
+ border-left-color: #F6EFC3;
+}
+
+.ui.items .item .star.label:hover::after {
+ border-top-color: #F6EFC3;
+}
+
+.ui.items .item .star.label:hover .icon {
+ color: #ac9400;
+}
+
+/* active */
+
+.ui.items .item .star.label.active::after {
+ border-left-color: #F6EFC3;
+}
+
+.ui.items .item .star.label.active::after {
+ border-top-color: #F6EFC3;
+}
+
+.ui.items .item .star.label.active .icon {
+ color: #ac9400;
+}
+
+/*-----like----- */
+
+/* hover */
+
+.ui.items .item .like.label:hover::after {
+ border-left-color: #F5E1E2;
+}
+
+.ui.items .item .like.label.active::after {
+ border-top-color: #F5E1E2;
+}
+
+.ui.items .item .like.label:hover .icon {
+ color: #ef404a;
+}
+
+/* active */
+
+.ui.items .item .like.label.active::after {
+ border-left-color: #F5E1E2;
+}
+
+.ui.items .item .like.label.active::after {
+ border-top-color: #F5E1E2;
+}
+
+.ui.items .item .like.label.active .icon {
+ color: #ef404a;
+}
+
+/*--------------
+ Extra
+---------------*/
+
+.ui.items .item .extra {
+ position: absolute;
+ width: 100%;
+ padding: 0em 0.5em;
+ bottom: -2em;
+ right: 0em;
+ height: 1.5em;
+ color: rgba(0, 0, 0, 0.25);
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+.ui.items .item .extra > img {
+ display: inline-block;
+ border-radius: 500px 500px 500px 500px;
+ margin-left: 0.25em;
+ vertical-align: middle;
+ width: 2em;
+}
+
+.ui.items .item .extra .left {
+ float: right;
+}
+
+.ui.items .item .extra .right {
+ float: left;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.items .item:hover {
+ cursor: pointer;
+ z-index: 5;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2);
+}
+
+.ui.items .item:hover .extra {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.items .item:nth-of-type(6n+1):hover {
+ border-bottom-color: #6ECFF5 !important;
+}
+
+.ui.items .item:nth-of-type(6n+2):hover {
+ border-bottom-color: #5C6166 !important;
+}
+
+.ui.items .item:nth-of-type(6n+3):hover {
+ border-bottom-color: #A1CF64 !important;
+}
+
+.ui.items .item:nth-of-type(6n+4):hover {
+ border-bottom-color: #D95C5C !important;
+}
+
+.ui.items .item:nth-of-type(6n+5):hover {
+ border-bottom-color: #00B5AD !important;
+}
+
+.ui.items .item:nth-of-type(6n+6):hover {
+ border-bottom-color: #564F8A !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Connected
+---------------*/
+
+.ui.connected.items {
+ display: table;
+ width: 100%;
+ margin-right: 0em !important;
+ margin-left: 0em !important;
+}
+
+.ui.connected.items > .row > .item,
+.ui.connected.items > .item {
+ float: none;
+ display: table-cell;
+ vertical-align: top;
+ height: auto;
+ border-radius: 0px;
+ margin: 0em;
+ width: 33.33%;
+}
+
+.ui.connected.items > .row {
+ display: table;
+ margin: 0.5em 0em;
+}
+
+.ui.connected.items > .row:first-child {
+ margin-top: 0em;
+}
+
+/* Borders */
+
+.ui.connected.items > .item,
+.ui.connected.items > .row:last-child > .item {
+ border-bottom: 0.2em solid rgba(0, 0, 0, 0.2);
+}
+
+.ui.connected.items > .row:last-child > .item:first-child,
+.ui.connected.items > .item:first-child {
+ border-radius: 0em 0em 0.33em 0em;
+}
+
+.ui.connected.items > .row:last-child > .item:last-child,
+.ui.connected.items > .item:last-child {
+ border-radius: 0em 0em 0em 0.33em;
+}
+
+/* Hover */
+
+.ui.connected.items .item:hover {
+ border-bottom-width: 0.2em;
+}
+
+/* Item Count */
+
+.ui.one.connected.items > .row > .item,
+.ui.one.connected.items > .item {
+ width: 50%;
+ padding-right: 2%;
+ padding-left: 2%;
+}
+
+.ui.two.connected.items > .row > .item,
+.ui.two.connected.items > .item {
+ width: 50%;
+ padding-right: 1%;
+ padding-left: 1%;
+}
+
+.ui.three.connected.items > .row > .item,
+.ui.three.connected.items > .item {
+ width: 33.333%;
+ padding-right: 1%;
+ padding-left: 1%;
+}
+
+.ui.four.connected.items > .row > .item,
+.ui.four.connected.items > .item {
+ width: 25%;
+ padding-right: 0.5%;
+ padding-left: 0.5%;
+}
+
+.ui.five.connected.items > .row > .item,
+.ui.five.connected.items > .item {
+ width: 20%;
+ padding-right: 0.5%;
+ padding-left: 0.5%;
+}
+
+.ui.six.connected.items > .row > .item,
+.ui.six.connected.items > .item {
+ width: 16.66%;
+ padding-right: 0.5%;
+ padding-left: 0.5%;
+}
+
+.ui.seven.connected.items > .row > .item,
+.ui.seven.connected.items > .item {
+ width: 14.28%;
+ padding-right: 0.5%;
+ padding-left: 0.5%;
+}
+
+.ui.eight.connected.items > .row > .item,
+.ui.eight.connected.items > .item {
+ width: 12.5%;
+ padding-right: 0.25%;
+ padding-left: 0.25%;
+}
+
+.ui.nine.connected.items > .row > .item,
+.ui.nine.connected.items > .item {
+ width: 11.11%;
+ padding-right: 0.25%;
+ padding-left: 0.25%;
+}
+
+.ui.ten.connected.items > .row > .item,
+.ui.ten.connected.items > .item {
+ width: 10%;
+ padding-right: 0.2%;
+ padding-left: 0.2%;
+}
+
+.ui.eleven.connected.items > .row > .item,
+.ui.eleven.connected.items > .item {
+ width: 9.09%;
+ padding-right: 0.2%;
+ padding-left: 0.2%;
+}
+
+.ui.twelve.connected.items > .row > .item,
+.ui.twelve.connected.items > .item {
+ width: 8.3333%;
+ padding-right: 0.1%;
+ padding-left: 0.1%;
+}
+
+/*-------------------
+ Responsive
+--------------------*/
+
+@media only screen and (max-width: 768px) {
+ .ui.stackable.items {
+ display: block !important;
+ }
+
+ .ui.stackable.items > .item,
+ .ui.stackable.items > .row > .item {
+ display: block !important;
+ height: auto !important;
+ width: auto !important;
+ padding: 0% !important;
+ }
+}
+
+/*--------------------
+ Horizontal
+---------------------*/
+
+.ui.horizontal.items > .item,
+.ui.items > .horizontal.item {
+ display: table;
+}
+
+.ui.horizontal.items > .item > .image,
+.ui.items > .horizontal.item > .image {
+ display: table-cell;
+ width: 50%;
+}
+
+.ui.horizontal.items > .item > .image + .content,
+.ui.items > .horizontal.item > .image + .content {
+ width: 50%;
+ display: table-cell;
+}
+
+.ui.horizontal.items > .item > .content,
+.ui.items > .horizontal.item > .content {
+ padding: 1% 3% 11% 1.7%;
+ vertical-align: top;
+}
+
+.ui.horizontal.items > .item > .meta,
+.ui.items > .horizontal.item > .meta {
+ position: absolute;
+ padding: 0%;
+ bottom: 7%;
+ right: 3%;
+ width: 94%;
+}
+
+.ui.horizontal.items > .item > .image + .content + .meta,
+.ui.items > .horizontal.item > .image + .content + .meta {
+ bottom: 7%;
+ right: 53%;
+ width: 44%;
+}
+
+.ui.horizontal.items > .item .avatar,
+.ui.items > .horizontal.item .avatar {
+ width: 11.5%;
+}
+
+.ui.items > .item .avatar {
+ max-width: 25px;
+}
+
+/*--------------
+ Item Count
+---------------*/
+
+.ui.one.items {
+ margin-right: -2%;
+ margin-left: -2%;
+}
+
+.ui.one.items > .item {
+ width: 100%;
+ margin-right: 2%;
+ margin-left: 2%;
+}
+
+.ui.two.items {
+ margin-right: -1%;
+ margin-left: -1%;
+}
+
+.ui.two.items > .item {
+ width: 48%;
+ margin-right: 1%;
+ margin-left: 1%;
+}
+
+.ui.two.items > .item:nth-child(2n+1) {
+ clear: right;
+}
+
+.ui.three.items {
+ margin-right: -1%;
+ margin-left: -1%;
+}
+
+.ui.three.items > .item {
+ width: 31.333%;
+ margin-right: 1%;
+ margin-left: 1%;
+}
+
+.ui.three.items > .item:nth-child(3n+1) {
+ clear: right;
+}
+
+.ui.four.items {
+ margin-right: -0.5%;
+ margin-left: -0.5%;
+}
+
+.ui.four.items > .item {
+ width: 24%;
+ margin-right: 0.5%;
+ margin-left: 0.5%;
+}
+
+.ui.four.items > .item:nth-child(4n+1) {
+ clear: right;
+}
+
+.ui.five.items {
+ margin-right: -0.5%;
+ margin-left: -0.5%;
+}
+
+.ui.five.items > .item {
+ width: 19%;
+ margin-right: 0.5%;
+ margin-left: 0.5%;
+}
+
+.ui.five.items > .item:nth-child(5n+1) {
+ clear: right;
+}
+
+.ui.six.items {
+ margin-right: -0.5%;
+ margin-left: -0.5%;
+}
+
+.ui.six.items > .item {
+ width: 15.66%;
+ margin-right: 0.5%;
+ margin-left: 0.5%;
+}
+
+.ui.six.items > .item:nth-child(6n+1) {
+ clear: right;
+}
+
+.ui.seven.items {
+ margin-right: -0.5%;
+ margin-left: -0.5%;
+}
+
+.ui.seven.items > .item {
+ width: 13.28%;
+ margin-right: 0.5%;
+ margin-left: 0.5%;
+ font-size: 11px;
+}
+
+.ui.seven.items > .item:nth-child(7n+1) {
+ clear: right;
+}
+
+.ui.eight.items {
+ margin-right: -0.25%;
+ margin-left: -0.25%;
+}
+
+.ui.eight.items > .item {
+ width: 12.0%;
+ margin-right: 0.25%;
+ margin-left: 0.25%;
+ font-size: 11px;
+}
+
+.ui.eight.items > .item:nth-child(8n+1) {
+ clear: right;
+}
+
+.ui.nine.items {
+ margin-right: -0.25%;
+ margin-left: -0.25%;
+}
+
+.ui.nine.items > .item {
+ width: 10.61%;
+ margin-right: 0.25%;
+ margin-left: 0.25%;
+ font-size: 10px;
+}
+
+.ui.nine.items > .item:nth-child(9n+1) {
+ clear: right;
+}
+
+.ui.ten.items {
+ margin-right: -0.2%;
+ margin-left: -0.2%;
+}
+
+.ui.ten.items > .item {
+ width: 9.6%;
+ margin-right: 0.2%;
+ margin-left: 0.2%;
+ font-size: 10px;
+}
+
+.ui.ten.items > .item:nth-child(10n+1) {
+ clear: right;
+}
+
+.ui.eleven.items {
+ margin-right: -0.2%;
+ margin-left: -0.2%;
+}
+
+.ui.eleven.items > .item {
+ width: 8.69%;
+ margin-right: 0.2%;
+ margin-left: 0.2%;
+ font-size: 9px;
+}
+
+.ui.eleven.items > .item:nth-child(11n+1) {
+ clear: right;
+}
+
+.ui.twelve.items {
+ margin-right: -0.1%;
+ margin-left: -0.1%;
+}
+
+.ui.twelve.items > .item {
+ width: 8.1333%;
+ margin-right: 0.1%;
+ margin-left: 0.1%;
+ font-size: 9px;
+}
+
+.ui.twelve.items > .item:nth-child(12n+1) {
+ clear: right;
+}
+/*
+ * # Semantic List - Flat
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: April 26 2013
+ */
+
+/*******************************
+ List
+*******************************/
+
+ul.ui.list,
+ol.ui.list,
+.ui.list {
+ list-style-type: none;
+ margin: 1em 0em;
+ padding: 0em;
+}
+
+ul.ui.list ul,
+ol.ui.list ol,
+.ui.list .list {
+ margin: 0em;
+ padding: 0.5em 1em 0.5em 0em;
+}
+
+ul.ui.list:first-child,
+ol.ui.list:first-child,
+.ui.list:first-child {
+ margin-top: 0em;
+}
+
+ul.ui.list:last-child,
+ol.ui.list:last-child,
+.ui.list:last-child {
+ margin-bottom: 0em;
+}
+
+/*******************************
+ Content
+*******************************/
+
+/* List Item */
+
+ul.ui.list li,
+ol.ui.list li,
+.ui.list .item {
+ display: list-item;
+ list-style-type: none;
+ list-style-position: inside;
+ padding: 0.3em 0em;
+ line-height: 1.2em;
+}
+
+.ui.list .item:after {
+ content: '';
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+/* Sub-List */
+
+.ui.list .list {
+ clear: both;
+}
+
+/* Icon */
+
+.ui.list .item > .icon {
+ display: block;
+ float: right;
+ margin: 0em 0em 0em 1em;
+ padding: 0.1em 0em 0em 0em;
+}
+
+.ui.list .item > .icon:only-child {
+ display: inline-block;
+}
+
+.ui.horizontal.list .item > .icon {
+ margin: 0em;
+ padding: 0em 0em 0em 0.25em;
+}
+
+.ui.horizontal.list .item > .icon,
+.ui.horizontal.list .item > .icon + .content {
+ float: none;
+ display: inline-block;
+}
+
+/* Image */
+
+.ui.list .item > img {
+ display: block;
+ float: right;
+ margin-left: 1em;
+ vertical-align: middle;
+}
+
+/* Content */
+
+.ui.list .item > .content {
+ display: inline-block;
+ vertical-align: middle;
+ line-height: 1.2em;
+}
+
+.ui.list .item > .icon + .content {
+ display: table-cell;
+ vertical-align: top;
+}
+
+/* Link */
+
+.ui.list a {
+ cursor: pointer;
+}
+
+.ui.list a .icon {
+ color: rgba(0, 0, 0, 0.6);
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+/* Header */
+
+.ui.list .header {
+ font-weight: bold;
+}
+
+.ui.list .description {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+/* Floated Content */
+
+.ui.list .item > .left.floated {
+ margin-left: 1em;
+ float: right;
+}
+
+.ui.list .item > .right.floated {
+ margin-right: 1em;
+ float: left;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Horizontal
+--------------------*/
+
+.ui.horizontal.list {
+ display: inline-block;
+ font-size: 0em;
+}
+
+.ui.horizontal.list > .item {
+ display: inline-block;
+ margin-right: 1em;
+ font-size: 1rem;
+}
+
+.ui.horizontal.list > .item:first-child {
+ margin-right: 0em;
+}
+
+.ui.horizontal.list .list {
+ padding-right: 0em;
+ padding-bottom: 0em;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*-------------------
+ Hover
+--------------------*/
+
+.ui.list a:hover .icon {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.inverted.list a .icon {
+ color: rgba(255, 255, 255, 0.6);
+}
+
+.ui.inverted.list .description {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.link.list .item {
+ color: rgba(255, 255, 255, 0.4);
+}
+
+/*-------------------
+ Link
+--------------------*/
+
+.ui.link.list .item {
+ color: rgba(0, 0, 0, 0.3);
+}
+
+.ui.link.list a.item,
+.ui.link.list .item a {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.link.list a.item:hover,
+.ui.link.list .item a:hover {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.link.list a.item:active,
+.ui.link.list .item a:active {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.link.list a.active.item,
+.ui.link.list .active.item a {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/* Inverted */
+
+.ui.inverted.link.list a.item,
+.ui.inverted.link.list .item a {
+ color: rgba(255, 255, 255, 0.6);
+}
+
+.ui.inverted.link.list a.item:hover,
+.ui.inverted.link.list .item a:hover {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.link.list a.item:active,
+.ui.inverted.link.list .item a:active {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.inverted.link.list a.active.item,
+.ui.inverted.link.list .active.item a {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+/*-------------------
+ Selection
+--------------------*/
+
+.ui.selection.list .item {
+ cursor: pointer;
+ color: rgba(0, 0, 0, 0.4);
+ padding: 0.5em;
+ -webkit-transition: 0.2s color ease, 0.2s padding-right ease, 0.2s background-color ease;
+ -moz-transition: 0.2s color ease, 0.2s padding-right ease, 0.2s background-color ease;
+ transition: 0.2s color ease, 0.2s padding-right ease, 0.2s background-color ease;
+}
+
+.ui.selection.list .item:hover {
+ background-color: rgba(0, 0, 0, 0.02);
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.selection.list .item:active {
+ background-color: rgba(0, 0, 0, 0.05);
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.selection.list .item.active {
+ background-color: rgba(0, 0, 0, 0.04);
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.animated.list .item {
+ -webkit-transition: 0.2s color ease, 0.2s padding-right ease, 0.2s background-color ease;
+ -moz-transition: 0.2s color ease, 0.2s padding-right ease, 0.2s background-color ease;
+ transition: 0.2s color ease, 0.2s padding-right ease, 0.2s background-color ease;
+}
+
+.ui.animated.list:not(.horizontal) .item:hover {
+ padding-right: 1em;
+}
+
+.ui.animated.list:not(.horizontal) .item:hover .item:hover {
+ padding-right: 0.5em;
+}
+
+/* Inverted */
+
+.ui.inverted.selection.list .item {
+ color: rgba(255, 255, 255, 0.6);
+}
+
+.ui.inverted.selection.list .item:hover {
+ background-color: rgba(255, 255, 255, 0.04);
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.selection.list .item:active {
+ background-color: rgba(255, 255, 255, 0.1);
+ color: rgba(255, 255, 255, 0.7);
+}
+
+.ui.inverted.selection.list .item.active {
+ background-color: rgba(255, 255, 255, 0.08);
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Bulleted
+--------------------*/
+
+ul.ui.list,
+.ui.bulleted.list {
+ margin-right: 1.5em;
+}
+
+ul.ui.list li,
+.ui.bulleted.list .item {
+ position: relative;
+}
+
+ul.ui.list li:before,
+.ui.bulleted.list .item:before {
+ position: absolute;
+ right: -1.5em;
+ content: '•';
+}
+
+ul.ui.list ul,
+.ui.bulleted.list .list {
+ padding-right: 1.5em;
+}
+
+/* Horizontal Bulleted */
+
+ul.ui.horizontal.bulleted.list,
+.ui.horizontal.bulleted.list {
+ margin-right: 0em;
+}
+
+ul.ui.horizontal.bulleted.list li,
+.ui.horizontal.bulleted.list .item {
+ margin-right: 1.5em;
+}
+
+ul.ui.horizontal.bulleted.list li:before,
+.ui.horizontal.bulleted.list .item:before {
+ right: -0.9em;
+}
+
+ul.ui.horizontal.bulleted.list li:first-child,
+.ui.horizontal.bulleted.list .item:first-child {
+ margin-right: 0em;
+}
+
+ul.ui.horizontal.bulleted.list li:first-child::before,
+.ui.horizontal.bulleted.list .item:first-child::before {
+ display: none;
+}
+
+/*-------------------
+ Ordered
+--------------------*/
+
+ol.ui.list,
+.ui.ordered.list {
+ counter-reset: ordered;
+ margin-right: 2em;
+ list-style-type: none;
+}
+
+ol.ui.list li,
+.ui.ordered.list .item {
+ list-style-type: none;
+ position: relative;
+}
+
+ol.ui.list li:before,
+.ui.ordered.list .item:before {
+ position: absolute;
+ right: -2em;
+ counter-increment: ordered;
+ content: counters(ordered, ".");
+ text-align: left;
+ vertical-align: top;
+ opacity: 0.75;
+}
+
+ol.ui.list ol,
+.ui.ordered.list .list {
+ counter-reset: ordered;
+ padding-right: 2.5em;
+}
+
+ol.ui.list ol li:before,
+.ui.ordered.list .list .item:before {
+ right: -2.5em;
+}
+
+/* Horizontal Ordered */
+
+ol.ui.horizontal.list,
+.ui.ordered.horizontal.list {
+ margin-right: 0em;
+}
+
+ol.ui.horizontal.list li:before,
+.ui.ordered.horizontal.list .item:before {
+ position: static;
+ right: 0em;
+ margin: 0em 0em 0em 0.5em;
+}
+
+/*-------------------
+ Divided
+--------------------*/
+
+.ui.divided.list > .item,
+.ui.divided.list:not(.horizontal) > .list {
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ padding-right: 0.5em;
+ padding-left: 0.5em;
+}
+
+.ui.divided.list .item .menu .item {
+ border-width: 0px;
+}
+
+.ui.divided.list .item:first-child {
+ border-top-width: 0px;
+}
+
+/* Sub Menu */
+
+.ui.divided.list:not(.horizontal) .list {
+ margin-right: -0.5em;
+ margin-left: -0.5em;
+}
+
+.ui.divided.list:not(.horizontal) .list .item {
+ padding-right: 1em;
+ padding-left: 1em;
+}
+
+.ui.divided.list:not(.horizontal) .list .item:first-child {
+ border-top-width: 1px;
+}
+
+/* Divided bulleted */
+
+.ui.divided.bulleted.list {
+ margin-right: 0em;
+}
+
+.ui.divided.bulleted.list .item {
+ padding-right: 1.5em;
+}
+
+.ui.divided.bulleted.list .item:before {
+ right: 0.5em;
+}
+
+/* Divided ordered */
+
+.ui.divided.ordered.list {
+ margin-right: 0em;
+}
+
+.ui.divided.ordered.list > .item {
+ padding-right: 2em;
+ padding-left: 2em;
+}
+
+.ui.divided.ordered.list > .item:before {
+ right: 0.5em;
+}
+
+.ui.divided.ordered.list .item .list {
+ margin-right: -2em;
+ margin-left: -2em;
+}
+
+/* Divided horizontal */
+
+.ui.divided.horizontal.list {
+ margin-right: 0em;
+}
+
+.ui.divided.horizontal.list > .item {
+ border-top: none;
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
+ margin: 0em;
+ padding-right: 0.75em;
+ padding-left: 0.75em;
+ line-height: 0.6em;
+}
+
+.ui.horizontal.divided.list > .item:first-child {
+ border-right: none;
+ padding-right: 0em;
+}
+
+/* Inverted */
+
+.ui.divided.inverted.list > .item,
+.ui.divided.inverted.list > .list {
+ border-color: rgba(255, 255, 255, 0.2);
+}
+
+.ui.divided.inverted.horizontal.list .item {
+ border-color: rgba(255, 255, 255, 0.2);
+}
+
+/*-------------------
+ Celled
+--------------------*/
+
+.ui.celled.list > .item,
+.ui.celled.list > .list {
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ padding-right: 0.5em;
+ padding-left: 0.5em;
+}
+
+.ui.celled.list > .item:last-child {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* Sub Menu */
+
+.ui.celled.list .item .list {
+ margin-right: -0.5em;
+ margin-left: -0.5em;
+}
+
+.ui.celled.list .item .list .item {
+ border-width: 0px;
+}
+
+.ui.celled.list .list .item:first-child {
+ border-top-width: 0px;
+}
+
+/* Celled Bulleted */
+
+.ui.celled.bulleted.list {
+ margin-right: 0em;
+}
+
+.ui.celled.bulleted.list > .item {
+ padding-right: 1.5em;
+}
+
+.ui.celled.bulleted.list > .item:before {
+ right: 0.5em;
+}
+
+/* Celled Ordered */
+
+.ui.celled.ordered.list {
+ margin-right: 0em;
+}
+
+.ui.celled.ordered.list .item {
+ padding-right: 2em;
+ padding-left: 2em;
+}
+
+.ui.celled.ordered.list .item:before {
+ right: 0.5em;
+}
+
+.ui.celled.ordered.list .item .list {
+ margin-right: -2em;
+ margin-left: -2em;
+}
+
+/* Celled Horizontal */
+
+.ui.horizontal.celled.list {
+ margin-right: 0em;
+}
+
+.ui.horizontal.celled.list .item {
+ border-top: none;
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
+ margin: 0em;
+ padding-right: 0.75em;
+ padding-left: 0.75em;
+ line-height: 0.6em;
+}
+
+.ui.horizontal.celled.list .item:last-child {
+ border-bottom: none;
+ border-left: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* Inverted */
+
+.ui.celled.inverted.list > .item,
+.ui.celled.inverted.list > .list {
+ border-color: rgba(255, 255, 255, 0.2);
+}
+
+.ui.celled.inverted.horizontal.list .item {
+ border-color: rgba(255, 255, 255, 0.2);
+}
+
+/*-------------------
+ Relaxed
+--------------------*/
+
+.ui.relaxed.list:not(.horizontal) .item {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+}
+
+.ui.relaxed.list .header {
+ margin-bottom: 0.25em;
+}
+
+.ui.horizontal.relaxed.list .item {
+ padding-right: 1.25em;
+ padding-left: 1.25em;
+}
+
+.ui.very.relaxed.list:not(.horizontal) .item {
+ padding-top: 1em;
+ padding-bottom: 1em;
+}
+
+.ui.very.relaxed.list .header {
+ margin-bottom: 0.5em;
+}
+
+.ui.horizontal.very.relaxed.list .item {
+ padding-right: 2em;
+ padding-left: 2em;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+.ui.mini.list .item {
+ font-size: 0.7rem;
+}
+
+.ui.tiny.list .item {
+ font-size: 0.8125rem;
+}
+
+.ui.small.list .item {
+ font-size: 0.875rem;
+}
+
+.ui.list .item {
+ font-size: 1em;
+}
+
+.ui.large.list .item {
+ font-size: 1.125rem;
+}
+
+.ui.big.list .item {
+ font-size: 1.25rem;
+}
+
+.ui.huge.list .item {
+ font-size: 1.375rem;
+}
+
+.ui.massive.list .item {
+ font-size: 1.5rem;
+}
+/*
+ * # Statistic
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: Aug 20, 2013
+ */
+
+/*******************************
+ Statistic
+*******************************/
+
+.ui.statistic {
+ text-align: center;
+}
+
+/*******************************
+ Content
+*******************************/
+
+.ui.statistic > .number {
+ font-size: 4em;
+ font-weight: bold;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.statistic > .description {
+ opacity: 0.8;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/packaged/css/semantic.min.css b/css/semantic/rtl/packaged/css/semantic.min.css
new file mode 100644
index 0000000..6b027b2
--- /dev/null
+++ b/css/semantic/rtl/packaged/css/semantic.min.css
@@ -0,0 +1,14 @@
+/*
+* # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Released: 04/04/2014
+*/
+
+.ui.breadcrumb{margin:1em 0;display:inline-block;vertical-align:middle}.ui.breadcrumb:first-child{margin-top:0}.ui.breadcrumb:last-child{margin-bottom:0}.ui.breadcrumb .divider{display:inline-block;opacity:.5;margin:0 .15em;font-size:1em;color:rgba(0,0,0,.3)}.ui.breadcrumb a.section{cursor:pointer}.ui.breadcrumb .section{display:inline-block;margin:0;padding:0}.ui.breadcrumb.segment{display:inline-block;padding:.5em 1em}.ui.breadcrumb .active.section{font-weight:700}.ui.small.breadcrumb{font-size:.75em}.ui.large.breadcrumb{font-size:1.1em}.ui.huge.breadcrumb{font-size:1.3em}.ui.form{position:relative;max-width:100%}.ui.form :first-child{margin-top:0}.ui.form :last-child{margin-bottom:0}.ui.form>p{margin:1em 0}.ui.form .field{clear:both;margin:0 0 1em}.ui.form .field>label{margin:0 0 .3em;display:block;color:#555;font-size:.875em}.ui.form textarea,.ui.form input[type=text],.ui.form input[type=email],.ui.form input[type=date],.ui.form input[type=password],.ui.form input[type=number],.ui.form input[type=url],.ui.form input[type=tel],.ui.form .ui.input{width:100%}.ui.form textarea,.ui.form input[type=text],.ui.form input[type=email],.ui.form input[type=date],.ui.form input[type=password],.ui.form input[type=number],.ui.form input[type=url],.ui.form input[type=tel]{margin:0;padding:.65em 1em;font-size:1em;background-color:#FFF;border:1px solid rgba(0,0,0,.15);outline:0;color:rgba(0,0,0,.7);border-radius:.3125em;-webkit-transition:background-color .3s ease-out,-webkit-box-shadow .2s ease,border-color .2s ease;-moz-transition:background-color .3s ease-out,box-shadow .2s ease,border-color .2s ease;transition:background-color .3s ease-out,box-shadow .2s ease,border-color .2s ease;-webkit-box-shadow:0 0 rgba(0,0,0,.3) inset;box-shadow:0 0 rgba(0,0,0,.3) inset;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.textarea,.ui.form textarea{line-height:1.33;min-height:8em;height:12em;max-height:24em;resize:vertical}.ui.form textarea,.ui.form input[type=checkbox]{vertical-align:top}.ui.form .divider{clear:both;margin:1em 0}.ui.form .info.message,.ui.form .warning.message,.ui.form .error.message{display:none}.ui.form .message:first-child{margin-top:0}.ui.form .field .prompt.label{white-space:nowrap}.ui.form .inline.field .prompt{margin-top:0;margin-right:1em}.ui.form .inline.field .prompt:before{margin-top:-.3em;bottom:auto;left:auto;top:50%;right:0}.ui.form input[type=text]:focus,.ui.form input[type=email]:focus,.ui.form input[type=date]:focus,.ui.form input[type=password]:focus,.ui.form input[type=number]:focus,.ui.form input[type=url]:focus,.ui.form input[type=tel]:focus,.ui.form textarea:focus{color:rgba(0,0,0,.85);border-color:rgba(0,0,0,.2);border-bottom-right-radius:0;border-top-right-radius:0;-webkit-appearance:none;-webkit-box-shadow:.3em 0 0 0 rgba(0,0,0,.2) inset;box-shadow:.3em 0 0 0 rgba(0,0,0,.2) inset}.ui.form.warning .warning.message{display:block}.ui.form.error .error.message{display:block}.ui.form .fields.error .field label,.ui.form .field.error label,.ui.form .fields.error .field .input,.ui.form .field.error .input{color:#D95C5C}.ui.form .fields.error .field .corner.label,.ui.form .field.error .corner.label{border-color:#D95C5C;color:#FFF}.ui.form .fields.error .field textarea,.ui.form .fields.error .field input[type=text],.ui.form .fields.error .field input[type=email],.ui.form .fields.error .field input[type=date],.ui.form .fields.error .field input[type=password],.ui.form .fields.error .field input[type=number],.ui.form .fields.error .field input[type=url],.ui.form .fields.error .field input[type=tel],.ui.form .field.error textarea,.ui.form .field.error input[type=text],.ui.form .field.error input[type=email],.ui.form .field.error input[type=date],.ui.form .field.error input[type=password],.ui.form .field.error input[type=number],.ui.form .field.error input[type=url],.ui.form .field.error input[type=tel]{background-color:snow;border-color:#E7BEBE;border-right:0;color:#D95C5C;padding-right:1.2em;border-bottom-right-radius:0;border-top-right-radius:0;-webkit-box-shadow:.3em 0 0 0 #D95C5C inset;box-shadow:.3em 0 0 0 #D95C5C inset}.ui.form .field.error textarea:focus,.ui.form .field.error input[type=text]:focus,.ui.form .field.error input[type=email]:focus,.ui.form .field.error input[type=date]:focus,.ui.form .field.error input[type=password]:focus,.ui.form .field.error input[type=number]:focus,.ui.form .field.error input[type=url]:focus,.ui.form .field.error input[type=tel]:focus{border-color:#ff5050;color:#ff5050;-webkit-appearance:none;-webkit-box-shadow:.3em 0 0 0 #FF5050 inset;box-shadow:.3em 0 0 0 #FF5050 inset}.ui.form .fields.error .field .ui.dropdown,.ui.form .fields.error .field .ui.dropdown .item,.ui.form .field.error .ui.dropdown,.ui.form .field.error .ui.dropdown .item{background-color:snow;color:#D95C5C}.ui.form .fields.error .field .ui.dropdown,.ui.form .field.error .ui.dropdown{-webkit-box-shadow:0 0 0 1px #E7BEBE!important;box-shadow:0 0 0 1px #E7BEBE!important}.ui.form .fields.error .field .ui.dropdown:hover,.ui.form .field.error .ui.dropdown:hover{-webkit-box-shadow:0 0 0 1px #E7BEBE!important;box-shadow:0 0 0 1px #E7BEBE!important}.ui.form .fields.error .field .ui.dropdown:hover .menu,.ui.form .field.error .ui.dropdown:hover .menu{-webkit-box-shadow:0 1px 0 1px #E7BEBE;box-shadow:0 1px 0 1px #E7BEBE}.ui.form .fields.error .field .ui.dropdown .menu .item:hover,.ui.form .field.error .ui.dropdown .menu .item:hover{background-color:#FFF2F2}.ui.form .fields.error .field .ui.dropdown .menu .active.item,.ui.form .field.error .ui.dropdown .menu .active.item{background-color:#FDCFCF!important}.ui.form ::-webkit-input-placeholder{color:#AAA}.ui.form ::-moz-placeholder{color:#AAA}.ui.form :focus::-webkit-input-placeholder{color:#999}.ui.form :focus::-moz-placeholder{color:#999}.ui.form .error ::-webkit-input-placeholder{color:rgba(255,80,80,.4)}.ui.form .error ::-moz-placeholder{color:rgba(255,80,80,.4)}.ui.form .error :focus::-webkit-input-placeholder{color:rgba(255,80,80,.7)}.ui.form .error :focus::-moz-placeholder{color:rgba(255,80,80,.7)}.ui.form .field :disabled,.ui.form .field.disabled{opacity:.5}.ui.form .field.disabled label{opacity:.5}.ui.form .field.disabled :disabled{opacity:1}.ui.form.loading{position:relative}.ui.form.loading:after{position:absolute;top:0;right:0;content:'';width:100%;height:100%;background:rgba(255,255,255,.8) url(../images/loader-large.gif) no-repeat 50% 50%;visibility:visible}.ui.form.fluid{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.form input.attached{width:auto}.ui.form .date.field>label{position:relative}.ui.form .date.field>label:after{position:absolute;top:2em;left:.5em;font-family:Icons;content:'\f133';font-size:1.2em;font-weight:400;color:#CCC}.ui.inverted.form label{color:#FFF}.ui.inverted.form .field.error textarea,.ui.inverted.form .field.error input[type=text],.ui.inverted.form .field.error input[type=email],.ui.inverted.form .field.error input[type=date],.ui.inverted.form .field.error input[type=password],.ui.inverted.form .field.error input[type=number],.ui.inverted.form .field.error input[type=url],.ui.inverted.form .field.error input[type=tel]{background-color:#FCC}.ui.inverted.form .ui.checkbox label{color:rgba(255,255,255,.8)}.ui.inverted.form .ui.checkbox label:hover,.ui.inverted.form .ui.checkbox .box:hover{color:#FFF}.ui.form .grouped.fields{margin:0 0 1em}.ui.form .grouped.fields .field{display:block;float:none;margin:.5em 0;padding:0}.ui.form .fields{clear:both}.ui.form .fields:after{content:' ';display:block;clear:both;visibility:hidden;line-height:0;height:0}.ui.form .fields>.field{clear:none;float:right;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.form .fields>.field:first-child{border-right:0;-webkit-box-shadow:none;box-shadow:none}.ui.form .two.fields>.fields,.ui.form .two.fields>.field{width:50%;padding-right:1%;padding-left:1%}.ui.form .three.fields>.fields,.ui.form .three.fields>.field{width:33.333%;padding-right:1%;padding-left:1%}.ui.form .four.fields>.fields,.ui.form .four.fields>.field{width:25%;padding-right:1%;padding-left:1%}.ui.form .five.fields>.fields,.ui.form .five.fields>.field{width:20%;padding-right:1%;padding-left:1%}@media only screen and (max-width:767px){.ui.form .two.fields>.fields,.ui.form .two.fields>.field,.ui.form .three.fields>.fields,.ui.form .three.fields>.field,.ui.form .four.fields>.fields,.ui.form .four.fields>.field,.ui.form .five.fields>.fields,.ui.form .five.fields>.field{width:100%;padding-right:0;padding-left:0}}.ui.form .fields .field:first-child{padding-right:0}.ui.form .fields .field:last-child{padding-left:0}.ui.form .inline.fields .field{min-height:1.3em;margin-left:.5em}.ui.form .inline.fields .field>label,.ui.form .inline.fields .field>p,.ui.form .inline.fields .field>input,.ui.form .inline.field>label,.ui.form .inline.field>p,.ui.form .inline.field>input{display:inline-block;width:auto;margin-top:0;margin-bottom:0;vertical-align:middle;font-size:1em}.ui.form .inline.fields .field>input,.ui.form .inline.field>input{font-size:.875em}.ui.form .inline.fields .field>:first-child,.ui.form .inline.field>:first-child{margin:0 0 0 .5em}.ui.form .inline.fields .field>:only-child,.ui.form .inline.field>:only-child{margin:0}.ui.small.form{font-size:.875em}.ui.small.form textarea,.ui.small.form input[type=text],.ui.small.form input[type=email],.ui.small.form input[type=date],.ui.small.form input[type=password],.ui.small.form input[type=number],.ui.small.form input[type=url],.ui.small.form input[type=tel],.ui.small.form label{font-size:1em}.ui.large.form{font-size:1.125em}.ui.grid{display:block;text-align:right;font-size:0;margin:0 -1.5%;padding:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body>.ui.grid{margin-right:0!important;margin-left:0!important}.ui.grid:after,.ui.row:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui.grid>.column,.ui.grid>.row>.column{display:inline-block;text-align:right;font-size:1rem;width:6.25%;padding-right:1.5%;padding-left:1.5%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;vertical-align:top}.ui.grid>.column{margin-top:1rem;margin-bottom:1rem}.ui.grid>.row{display:block;width:100%!important;margin-top:1.5%;padding:1rem 0 0;font-size:0rem}.ui.grid>.row:first-child{padding-top:0rem;margin-top:0rem}.ui.grid>.row>img,.ui.grid>.row>.column>img{max-width:100%}.ui.grid .column>.ui.segment:only-child{margin:0}.ui.page.grid{min-width:320px;margin-right:0;margin-left:0}@media only screen and (max-width:991px){.ui.page.grid{padding:0 4%}}@media only screen and (min-width:992px){.ui.page.grid{padding:0 8%}}@media only screen and (min-width:1500px){.ui.page.grid{padding:0 13%}}@media only screen and (min-width:1750px){.ui.page.grid{padding:0 18%}}@media only screen and (min-width:2000px){.ui.page.grid{padding:0 23%}}.ui.grid>.row>.one.wide.column,.ui.grid>.column.row>.one.wide.column,.ui.grid>.one.wide.column,.ui.column.grid>.one.wide.column{width:6.25%}.ui.grid>.row>.two.wide.column,.ui.grid>.column.row>.two.wide.column,.ui.grid>.two.wide.column,.ui.column.grid>.two.wide.column{width:12.5%}.ui.grid>.row>.three.wide.column,.ui.grid>.column.row>.three.wide.column,.ui.grid>.three.wide.column,.ui.column.grid>.three.wide.column{width:18.75%}.ui.grid>.row>.four.wide.column,.ui.grid>.column.row>.four.wide.column,.ui.grid>.four.wide.column,.ui.column.grid>.four.wide.column{width:25%}.ui.grid>.row>.five.wide.column,.ui.grid>.column.row>.five.wide.column,.ui.grid>.five.wide.column,.ui.column.grid>.five.wide.column{width:31.25%}.ui.grid>.row>.six.wide.column,.ui.grid>.column.row>.six.wide.column,.ui.grid>.six.wide.column,.ui.column.grid>.six.wide.column{width:37.5%}.ui.grid>.row>.seven.wide.column,.ui.grid>.column.row>.seven.wide.column,.ui.grid>.seven.wide.column,.ui.column.grid>.seven.wide.column{width:43.75%}.ui.grid>.row>.eight.wide.column,.ui.grid>.column.row>.eight.wide.column,.ui.grid>.eight.wide.column,.ui.column.grid>.eight.wide.column{width:50%}.ui.grid>.row>.nine.wide.column,.ui.grid>.column.row>.nine.wide.column,.ui.grid>.nine.wide.column,.ui.column.grid>.nine.wide.column{width:56.25%}.ui.grid>.row>.ten.wide.column,.ui.grid>.column.row>.ten.wide.column,.ui.grid>.ten.wide.column,.ui.column.grid>.ten.wide.column{width:62.5%}.ui.grid>.row>.eleven.wide.column,.ui.grid>.column.row>.eleven.wide.column,.ui.grid>.eleven.wide.column,.ui.column.grid>.eleven.wide.column{width:68.75%}.ui.grid>.row>.twelve.wide.column,.ui.grid>.column.row>.twelve.wide.column,.ui.grid>.twelve.wide.column,.ui.column.grid>.twelve.wide.column{width:75%}.ui.grid>.row>.thirteen.wide.column,.ui.grid>.column.row>.thirteen.wide.column,.ui.grid>.thirteen.wide.column,.ui.column.grid>.thirteen.wide.column{width:81.25%}.ui.grid>.row>.fourteen.wide.column,.ui.grid>.column.row>.fourteen.wide.column,.ui.grid>.fourteen.wide.column,.ui.column.grid>.fourteen.wide.column{width:87.5%}.ui.grid>.row>.fifteen.wide.column,.ui.grid>.column.row>.fifteen.wide.column,.ui.grid>.fifteen.wide.column,.ui.column.grid>.fifteen.wide.column{width:93.75%}.ui.grid>.row>.sixteen.wide.column,.ui.grid>.column.row>.sixteen.wide.column,.ui.grid>.sixteen.wide.column,.ui.column.grid>.sixteen.wide.column{width:100%}.ui.one.column.grid>.row>.column,.ui.one.column.grid>.column,.ui.grid>.one.column.row>.column{width:100%}.ui.two.column.grid>.row>.column,.ui.two.column.grid>.column,.ui.grid>.two.column.row>.column{width:50%}.ui.three.column.grid>.row>.column,.ui.three.column.grid>.column,.ui.grid>.three.column.row>.column{width:33.3333%}.ui.four.column.grid>.row>.column,.ui.four.column.grid>.column,.ui.grid>.four.column.row>.column{width:25%}.ui.five.column.grid>.row>.column,.ui.five.column.grid>.column,.ui.grid>.five.column.row>.column{width:20%}.ui.six.column.grid>.row>.column,.ui.six.column.grid>.column,.ui.grid>.six.column.row>.column{width:16.66667%}.ui.seven.column.grid>.row>.column,.ui.seven.column.grid>.column,.ui.grid>.seven.column.row>.column{width:14.2857%}.ui.eight.column.grid>.row>.column,.ui.eight.column.grid>.column,.ui.grid>.eight.column.row>.column{width:12.5%}.ui.nine.column.grid>.row>.column,.ui.nine.column.grid>.column,.ui.grid>.nine.column.row>.column{width:11.1111%}.ui.ten.column.grid>.row>.column,.ui.ten.column.grid>.column,.ui.grid>.ten.column.row>.column{width:10%}.ui.eleven.column.grid>.row>.column,.ui.eleven.column.grid>.column,.ui.grid>.eleven.column.row>.column{width:9.0909%}.ui.twelve.column.grid>.row>.column,.ui.twelve.column.grid>.column,.ui.grid>.twelve.column.row>.column{width:8.3333%}.ui.thirteen.column.grid>.row>.column,.ui.thirteen.column.grid>.column,.ui.grid>.thirteen.column.row>.column{width:7.6923%}.ui.fourteen.column.grid>.row>.column,.ui.fourteen.column.grid>.column,.ui.grid>.fourteen.column.row>.column{width:7.1428%}.ui.fifteen.column.grid>.row>.column,.ui.fifteen.column.grid>.column,.ui.grid>.fifteen.column.row>.column{width:6.6666%}.ui.sixteen.column.grid>.row>.column,.ui.sixteen.column.grid>.column,.ui.grid>.sixteen.column.row>.column{width:6.25%}.ui.grid>.column:only-child,.ui.grid>.row>.column:only-child{width:100%}.ui.relaxed.grid{margin:0 -2.5%}.ui.relaxed.grid>.column,.ui.relaxed.grid>.row>.column{padding-right:2.5%;padding-left:2.5%}.ui.grid .left.floated.column{float:right}.ui.grid .right.floated.column{float:left}.ui.divided.grid,.ui.divided.grid>.row{display:table;width:100%;margin-right:0!important;margin-left:0!important}.ui.divided.grid>.column:not(.row),.ui.divided.grid>.row>.column{display:table-cell;-webkit-box-shadow:-1px 0 0 0 rgba(0,0,0,.1),-2px 0 0 0 rgba(255,255,255,.8);box-shadow:-1px 0 0 0 rgba(0,0,0,.1),-2px 0 0 0 rgba(255,255,255,.8)}.ui.divided.grid>.column.row{display:table}.ui.divided.grid>.column:first-child,.ui.divided.grid>.row>.column:first-child{-webkit-box-shadow:none;box-shadow:none}.ui.vertically.divided.grid>.row{-webkit-box-shadow:0 -1px 0 0 rgba(0,0,0,.1),0 -2px 0 0 rgba(255,255,255,.8)!important;box-shadow:0 -1px 0 0 rgba(0,0,0,.1),0 -2px 0 0 rgba(255,255,255,.8)!important}.ui.vertically.divided.grid>.row>.column,.ui.vertically.divided.grid>.column:not(.row),.ui.vertically.divided.grid>.row:first-child{-webkit-box-shadow:none!important;box-shadow:none!important}.ui.celled.grid{display:table;width:100%;margin-right:0!important;margin-left:0!important;-webkit-box-shadow:0 0 0 1px #DFDFDF;box-shadow:0 0 0 1px #DFDFDF}.ui.celled.grid>.row,.ui.celled.grid>.column.row,.ui.celled.grid>.column.row:first-child{display:table;width:100%;margin-top:0;padding-top:0;-webkit-box-shadow:0 -1px 0 0 #dfdfdf;box-shadow:0 -1px 0 0 #dfdfdf}.ui.celled.grid>.column:not(.row),.ui.celled.grid>.row>.column{display:table-cell;padding:.75em;-webkit-box-shadow:-1px 0 0 0 #dfdfdf;box-shadow:-1px 0 0 0 #dfdfdf}.ui.celled.grid>.column:first-child,.ui.celled.grid>.row>.column:first-child{-webkit-box-shadow:none;box-shadow:none}.ui.celled.page.grid{-webkit-box-shadow:none;box-shadow:none}.ui.left.aligned.grid,.ui.left.aligned.grid>.row>.column,.ui.left.aligned.grid>.column,.ui.grid .left.aligned.column,.ui.grid>.left.aligned.row>.column{text-align:right}.ui.center.aligned.grid,.ui.center.aligned.grid>.row>.column,.ui.center.aligned.grid>.column,.ui.grid .center.aligned.column,.ui.grid>.center.aligned.row>.column{text-align:center}.ui.right.aligned.grid,.ui.right.aligned.grid>.row>.column,.ui.right.aligned.grid>.column,.ui.grid .right.aligned.column,.ui.grid>.right.aligned.row>.column{text-align:left}.ui.justified.grid,.ui.justified.grid>.row>.column,.ui.justified.grid>.column,.ui.grid .justified.column,.ui.grid>.justified.row>.column{text-align:justify;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.ui.top.aligned.grid,.ui.top.aligned.grid>.row>.column,.ui.top.aligned.grid>.column,.ui.grid .top.aligned.column,.ui.grid>.top.aligned.row>.column{vertical-align:top}.ui.middle.aligned.grid,.ui.middle.aligned.grid>.row>.column,.ui.middle.aligned.grid>.column,.ui.grid .middle.aligned.column,.ui.grid>.middle.aligned.row>.column{vertical-align:middle}.ui.bottom.aligned.grid,.ui.bottom.aligned.grid>.row>.column,.ui.bottom.aligned.grid>.column,.ui.grid .bottom.aligned.column,.ui.grid>.bottom.aligned.row>.column{vertical-align:bottom}.ui.grid>.equal.height.row{display:table;width:100%}.ui.grid>.equal.height.row>.column{display:table-cell}@media only screen and (max-width:767px){.ui.mobile.only.grid,.ui.grid>.mobile.only.row{display:block!important}.ui.grid>.row>.mobile.only.column{display:inline-block!important}.ui.divided.mobile.only.grid,.ui.celled.mobile.only.grid,.ui.divided.mobile.only.grid .row,.ui.celled.mobile.only.grid .row,.ui.divided.grid .mobile.only.row,.ui.celled.grid .mobile.only.row,.ui.grid .mobile.only.equal.height.row,.ui.mobile.only.grid .equal.height.row{display:table!important}.ui.divided.grid>.row>.mobile.only.column,.ui.celled.grid>.row>.mobile.only.column,.ui.divided.mobile.only.grid>.row>.column,.ui.celled.mobile.only.grid>.row>.column,.ui.divided.mobile.only.grid>.column,.ui.celled.mobile.only.grid>.column{display:table-cell!important}}@media only screen and (min-width:768px){.ui.mobile.only.grid,.ui.grid>.mobile.only.row,.ui.grid>.mobile.only.column,.ui.grid>.row>.mobile.only.column{display:none}}@media only screen and (min-width:768px) and (max-width:991px){.ui.tablet.only.grid,.ui.grid>.tablet.only.row{display:block!important}.ui.grid>.row>.tablet.only.column{display:inline-block!important}.ui.divided.tablet.only.grid,.ui.celled.tablet.only.grid,.ui.divided.tablet.only.grid .row,.ui.celled.tablet.only.grid .row,.ui.divided.grid .tablet.only.row,.ui.celled.grid .tablet.only.row,.ui.grid .tablet.only.equal.height.row,.ui.tablet.only.grid .equal.height.row{display:table!important}.ui.divided.grid>.row>.tablet.only.column,.ui.celled.grid>.row>.tablet.only.column,.ui.divided.tablet.only.grid>.row>.column,.ui.celled.tablet.only.grid>.row>.column,.ui.divided.tablet.only.grid>.column,.ui.celled.tablet.only.grid>.column{display:table-cell!important}}@media only screen and (max-width:767px),(min-width:992px){.ui.tablet.only.grid,.ui.grid>.tablet.only.row,.ui.grid>.tablet.only.column,.ui.grid>.row>.tablet.only.column{display:none}}@media only screen and (min-width:992px){.ui.computer.only.grid,.ui.grid>.computer.only.row{display:block!important}.ui.grid>.row>.computer.only.column{display:inline-block!important}.ui.divided.computer.only.grid,.ui.celled.computer.only.grid,.ui.divided.computer.only.grid .row,.ui.celled.computer.only.grid .row,.ui.divided.grid .computer.only.row,.ui.celled.grid .computer.only.row,.ui.grid .computer.only.equal.height.row,.ui.computer.only.grid .equal.height.row{display:table!important}.ui.divided.grid>.row>.computer.only.column,.ui.celled.grid>.row>.computer.only.column,.ui.divided.computer.only.grid>.row>.column,.ui.celled.computer.only.grid>.row>.column,.ui.divided.computer.only.grid>.column,.ui.celled.computer.only.grid>.column{display:table-cell!important}}@media only screen and (max-width:991px){.ui.computer.only.grid,.ui.grid>.computer.only.row,.ui.grid>.computer.only.column,.ui.grid>.row>.computer.only.column{display:none}}@media only screen and (max-width:767px){.ui.two.column.doubling.grid>.row>.column,.ui.two.column.doubling.grid>.column,.ui.grid>.two.column.doubling.row>.column{width:100%}.ui.three.column.doubling.grid>.row>.column,.ui.three.column.doubling.grid>.column,.ui.grid>.three.column.doubling.row>.column{width:100%}.ui.four.column.doubling.grid>.row>.column,.ui.four.column.doubling.grid>.column,.ui.grid>.four.column.doubling.row>.column{width:100%}.ui.five.column.doubling.grid>.row>.column,.ui.five.column.doubling.grid>.column,.ui.grid>.five.column.doubling.row>.column{width:100%}.ui.six.column.doubling.grid>.row>.column,.ui.six.column.doubling.grid>.column,.ui.grid>.six.column.doubling.row>.column{width:50%}.ui.seven.column.doubling.grid>.row>.column,.ui.seven.column.doubling.grid>.column,.ui.grid>.seven.column.doubling.row>.column{width:50%}.ui.eight.column.doubling.grid>.row>.column,.ui.eight.column.doubling.grid>.column,.ui.grid>.eight.column.doubling.row>.column{width:50%}.ui.nine.column.doubling.grid>.row>.column,.ui.nine.column.doubling.grid>.column,.ui.grid>.nine.column.doubling.row>.column{width:50%}.ui.ten.column.doubling.grid>.row>.column,.ui.ten.column.doubling.grid>.column,.ui.grid>.ten.column.doubling.row>.column{width:50%}.ui.twelve.column.doubling.grid>.row>.column,.ui.twelve.column.doubling.grid>.column,.ui.grid>.twelve.column.doubling.row>.column{width:33.3333333333333%}.ui.fourteen.column.doubling.grid>.row>.column,.ui.fourteen.column.doubling.grid>.column,.ui.grid>.fourteen.column.doubling.row>.column{width:33.3333333333333%}.ui.sixteen.column.doubling.grid>.row>.column,.ui.sixteen.column.doubling.grid>.column,.ui.grid>.sixteen.column.doubling.row>.column{width:25%}}@media only screen and (min-width:768px) and (max-width:991px){.ui.two.column.doubling.grid>.row>.column,.ui.two.column.doubling.grid>.column,.ui.grid>.two.column.doubling.row>.column{width:100%}.ui.three.column.doubling.grid>.row>.column,.ui.three.column.doubling.grid>.column,.ui.grid>.three.column.doubling.row>.column{width:50%}.ui.four.column.doubling.grid>.row>.column,.ui.four.column.doubling.grid>.column,.ui.grid>.four.column.doubling.row>.column{width:50%}.ui.five.column.doubling.grid>.row>.column,.ui.five.column.doubling.grid>.column,.ui.grid>.five.column.doubling.row>.column{width:33.3333333%}.ui.six.column.doubling.grid>.row>.column,.ui.six.column.doubling.grid>.column,.ui.grid>.six.column.doubling.row>.column{width:33.3333333%}.ui.eight.column.doubling.grid>.row>.column,.ui.eight.column.doubling.grid>.column,.ui.grid>.eight.column.doubling.row>.column{width:33.3333333%}.ui.eight.column.doubling.grid>.row>.column,.ui.eight.column.doubling.grid>.column,.ui.grid>.eight.column.doubling.row>.column{width:25%}.ui.nine.column.doubling.grid>.row>.column,.ui.nine.column.doubling.grid>.column,.ui.grid>.nine.column.doubling.row>.column{width:25%}.ui.ten.column.doubling.grid>.row>.column,.ui.ten.column.doubling.grid>.column,.ui.grid>.ten.column.doubling.row>.column{width:20%}.ui.twelve.column.doubling.grid>.row>.column,.ui.twelve.column.doubling.grid>.column,.ui.grid>.twelve.column.doubling.row>.column{width:16.6666666%}.ui.fourteen.column.doubling.grid>.row>.column,.ui.fourteen.column.doubling.grid>.column,.ui.grid>.fourteen.column.doubling.row>.column{width:14.28571428571429%}.ui.sixteen.column.doubling.grid>.row>.column,.ui.sixteen.column.doubling.grid>.column,.ui.grid>.sixteen.column.doubling.row>.column{width:12.5%}}@media only screen and (max-width:767px){.ui.stackable.grid{display:block!important;padding:0;margin:0}.ui.stackable.grid>.row>.column,.ui.stackable.grid>.column{display:block!important;width:auto!important;margin:1em 0 0!important;padding:1em 0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}.ui.stackable.divided.grid .column,.ui.stackable.celled.grid .column{border-top:1px dotted rgba(0,0,0,.1)}.ui.stackable.grid>.row:first-child>.column:first-child,.ui.stackable.grid>.column:first-child{margin-top:0!important;padding-top:0!important}.ui.stackable.divided.grid>.row:first-child>.column:first-child,.ui.stackable.celled.grid>.row:first-child>.column:first-child,.ui.stackable.divided.grid>.column:first-child,.ui.stackable.celled.grid>.column:first-child{border-top:0!important}.ui.stackable.page.grid>.row>.column,.ui.stackable.page.grid>.column{padding-right:1em!important;padding-left:1em!important}.ui.stackable.grid .vertical.pointing.menu .item:after{display:none}}.ui.menu{margin:1rem 0rem;background-color:#FFF;font-size:0;font-weight:400;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1);border-radius:.1875rem}.ui.menu:first-child{margin-top:0rem}.ui.menu:last-child{margin-bottom:0rem}.ui.menu:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui.menu>.item:first-child{border-radius:.1875em 0 0 .1875em}.ui.menu>.item:last-child{border-radius:0 .1875em .1875em 0}.ui.menu .item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);vertical-align:middle;line-height:1;text-decoration:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:opacity .2s ease,background .2s ease,-webkit-box-shadow .2s ease;-moz-transition:opacity .2s ease,background .2s ease,box-shadow .2s ease;transition:opacity .2s ease,background .2s ease,box-shadow .2s ease}.ui.menu .item,.ui.menu .item>a:not(.button){color:rgba(0,0,0,.75)}.ui.menu .item .item,.ui.menu .item .item>a:not(.button){color:rgba(30,30,30,.7)}.ui.menu .item .item .item,.ui.menu .item .item .item>a:not(.button){color:rgba(30,30,30,.6)}.ui.menu .dropdown .menu .item,.ui.menu .dropdown .menu .item a:not(.button){color:rgba(0,0,0,.75)}.ui.menu .item .menu a.item:hover,.ui.menu .item .menu .link.item:hover{color:rgba(0,0,0,.85)}.ui.menu .dropdown .menu .item a:not(.button):hover{color:rgba(0,0,0,.85)}.ui.menu .active.item,.ui.menu .active.item a:not(.button){color:rgba(0,0,0,.85);border-radius:.item{position:relative 0}.ui.menu;display:inline-block;padding:.83em .95em;border-top:0 solid rgba(0,0,0,0);-webkit-tap-highlight-color:rgba(0,0,0,0);-moz-user-select:-moz-none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ui.menu .menu{margin:0}.ui.menu .item.left,.ui.menu .menu.left{float:right}.ui.menu .item.right,.ui.menu .menu.right{float:left}.ui.menu .item:before{position:absolute;content:'';top:0;right:0;width:1px;height:100%;background-image:-webkit-gradient(linear,right top,right bottom,from(rgba(0,0,0,.05)),color-stop(50%,rgba(0,0,0,.1)),to(rgba(0,0,0,.05)));background-image:-webkit-linear-gradient(rgba(0,0,0,.05) 0,rgba(0,0,0,.1) 50%,rgba(0,0,0,.05) 100%);background-image:-moz-linear-gradient(rgba(0,0,0,.05) 0,rgba(0,0,0,.1) 50%,rgba(0,0,0,.05) 100%);background-image:linear-gradient(rgba(0,0,0,.05) 0,rgba(0,0,0,.1) 50%,rgba(0,0,0,.05) 100%)}.ui.menu>.menu:not(.right):first-child>.item:first-child:before,.ui.menu .item:first-child:before{display:none}.ui.menu .menu.right .item:before,.ui.menu .item.right:before{left:auto;right:0}.ui.menu .text.item>*,.ui.menu .item>p:only-child{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;line-height:1.3;color:rgba(0,0,0,.6)}.ui.menu .item>p:first-child{margin-top:0}.ui.menu .item>p:last-child{margin-bottom:0}.ui.menu:not(.vertical) .item>.button{position:relative;top:-.05em;margin:-.55em 0;padding-bottom:.55em;padding-top:.55em;font-size:.875em}.ui.menu:not(.vertical) .item>.input{margin-top:-.85em;margin-bottom:-.85em;padding-top:.3em;padding-bottom:.3em;width:100%;vertical-align:top}.ui.menu .item>.input input{padding-top:.35em;padding-bottom:.35em}.ui.vertical.menu .item>.input input{margin:0;padding-top:.63em;padding-bottom:.63em}.ui.menu:not(.vertical) .item>.button.labeled>.icon{padding-top:.6em}.ui.menu:not(.vertical) .item .action.input>.button{font-size:.8em;padding:.55em .8em}.ui.small.menu:not(.vertical) .item>.input input{padding-top:.4em;padding-bottom:.4em}.ui.large.menu:not(.vertical) .item>.input input{top:-.125em;padding-bottom:.6em;padding-top:.6em}.ui.large.menu:not(.vertical) .item .action.input>.button{font-size:.8em;padding:.9em}.ui.large.menu:not(.vertical) .item .action.input>.button>.icon{padding-top:.8em}.ui.menu .header.item{background-color:rgba(0,0,0,.04);margin:0}.ui.vertical.menu .header.item{font-weight:700}.ui.menu .dropdown .menu .item .icon{float:none;margin:0 0 0 .75em}.ui.menu .dropdown.item .menu{right:1px;margin:0;min-width:-webkit-calc(99%);min-width:-moz-calc(99%);min-width:calc(99%);-webkit-box-shadow:0 1px 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px 1px rgba(0,0,0,.1)}.ui.secondary.menu .dropdown.item .menu{right:0;min-width:100%}.ui.menu .pointing.dropdown.item .menu{margin-top:.75em}.ui.menu .simple.dropdown.item .menu{margin:0!important}.ui.menu .dropdown.item .menu .item{width:100%;color:rgba(0,0,0,.75)}.ui.menu .dropdown.item .menu .active.item{-webkit-box-shadow:none!important;box-shadow:none!important}.ui.menu .ui.dropdown .menu .item:before{display:none}.ui.menu .item>.label{background-color:rgba(0,0,0,.35);color:#FFF;margin:-.15em .5em -.15em 0;padding:.3em .8em;vertical-align:baseline}.ui.menu .item>.floating.label{padding:.3em .8em}.ui.menu .item>img:only-child{display:block;max-width:100%;margin:0 auto}.ui.link.menu .item:hover,.ui.menu .link.item:hover,.ui.menu a.item:hover,.ui.menu .ui.dropdown .menu .item:hover{cursor:pointer;background-color:rgba(0,0,0,.02)}.ui.menu .ui.dropdown.item.active{background-color:rgba(0,0,0,.02);-webkit-box-shadow:none;box-shadow:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.ui.link.menu .item:active,.ui.menu .link.item:active,.ui.menu a.item:active,.ui.menu .ui.dropdown .menu .item:active{background-color:rgba(0,0,0,.05)}.ui.menu .active.item{background-color:rgba(0,0,0,.01);color:rgba(0,0,0,.95);-webkit-box-shadow:0 .2em 0 inset;box-shadow:0 .2em 0 inset}.ui.vertical.menu .active.item{border-radius:0;-webkit-box-shadow:.2em 0 0 inset;box-shadow:.2em 0 0 inset}.ui.vertical.menu>.active.item:first-child{border-radius:0 .1875em 0 0}.ui.vertical.menu>.active.item:last-child{border-radius:0 0 .1875em}.ui.vertical.menu>.active.item:only-child{border-radius:0 .1875em .1875em 0}.ui.vertical.menu .active.item .menu .active.item{border-right:0}.ui.vertical.menu .active.item .menu .active.item{padding-right:1.5rem}.ui.vertical.menu .item .menu .active.item{background-color:rgba(0,0,0,.03);-webkit-box-shadow:none;box-shadow:none}.ui.menu .item.disabled,.ui.menu .item.disabled:hover{cursor:default;color:rgba(0,0,0,.2);background-color:transparent!important}.ui.menu.loading{position:relative}.ui.menu.loading:after{position:absolute;top:0;right:0;content:'';width:100%;height:100%;background:rgba(255,255,255,.8) url(../images/loader-large.gif) no-repeat 50% 50%;visibility:visible}.ui.vertical.menu .item{display:block;height:auto!important;border-top:0;border-right:0 solid rgba(0,0,0,0);border-left:0}.ui.vertical.menu>.item:first-child{border-radius:.1875em .1875em 0 0}.ui.vertical.menu>.item:last-child{border-radius:0 0 .1875em .1875em}.ui.vertical.menu .item>.label{float:left;text-align:center}.ui.vertical.menu .item>i.icon{float:left;width:1.22em;margin:0 .5em 0 0}.ui.vertical.menu .item>.label+i.icon{float:none;margin:0 0 0 .25em}.ui.vertical.menu .item:before{position:absolute;content:'';top:0;right:0;width:100%;height:1px;background-image:-webkit-linear-gradient(right,rgba(0,0,0,.03) 0,rgba(0,0,0,.1) 1.5em,rgba(0,0,0,.03) 100%);background-image:-moz-linear-gradient(right,rgba(0,0,0,.03) 0,rgba(0,0,0,.1) 1.5em,rgba(0,0,0,.03) 100%);background-image:-webkit-gradient(linear,right top,left top,from(rgba(0,0,0,.03)),color-stop(1.5em,rgba(0,0,0,.1)),to(rgba(0,0,0,.03)));background-image:linear-gradient(to left,rgba(0,0,0,.03) 0,rgba(0,0,0,.1) 1.5em,rgba(0,0,0,.03) 100%)}.ui.vertical.menu .item:first-child:before{background-image:none!important}.ui.vertical.menu .dropdown.item>i{float:left;content:"\f0da"}.ui.vertical.menu .dropdown.item .menu{top:0!important;right:100%;margin:0 1px 0 0;-webkit-box-shadow:0 0 1px 1px #DDD;box-shadow:0 0 1px 1px #DDD}.ui.vertical.menu .dropdown.item.active{border-top-left-radius:0;border-bottom-left-radius:0}.ui.vertical.menu .dropdown.item .menu .item{font-size:1rem}.ui.vertical.menu .dropdown.item .menu .item i.icon{margin-left:0}.ui.vertical.menu .dropdown.item.active{-webkit-box-shadow:none;box-shadow:none}.ui.vertical.menu .item>.menu{margin:.5em -.95em 0}.ui.vertical.menu .item>.menu>.item{padding:.5rem 1.5rem;font-size:.875em}.ui.vertical.menu .item>.menu>.item:before{display:none}.ui.tiered.menu>.sub.menu>.item{color:rgba(0,0,0,.4)}.ui.tiered.menu>.menu>.item:hover{color:rgba(0,0,0,.8)}.ui.tiered.menu .item.active{color:rgba(0,0,0,.8)}.ui.tiered.menu>.menu .item.active:after{position:absolute;content:'';margin-top:-1px;top:100%;right:0;width:100%;height:2px;background-color:#FBFBFB}.ui.tiered.menu .sub.menu{background-color:rgba(0,0,0,.01);border-radius:0;border-top:1px solid rgba(0,0,0,.1);-webkit-box-shadow:none;box-shadow:none;color:#FFF}.ui.tiered.menu .sub.menu .item{font-size:.875rem}.ui.tiered.menu .sub.menu .item:before{background-image:none}.ui.tiered.menu .sub.menu .active.item{padding-top:.83em;background-color:transparent;border-radius:0;border-top:medium none;-webkit-box-shadow:none;box-shadow:none;color:rgba(0,0,0,.7)!important}.ui.tiered.menu .sub.menu .active.item:after{display:none}.ui.inverted.tiered.menu>.menu>.item{color:rgba(255,255,255,.5)}.ui.inverted.tiered.menu .sub.menu{background-color:rgba(0,0,0,.2)}.ui.inverted.tiered.menu .sub.menu .item{color:rgba(255,255,255,.6)}.ui.inverted.tiered.menu>.menu>.item:hover{color:rgba(255,255,255,.9)}.ui.inverted.tiered.menu .active.item:after{display:none}.ui.inverted.tiered.menu>.sub.menu>.active.item,.ui.inverted.tiered.menu>.menu>.active.item{color:#fff!important;-webkit-box-shadow:none;box-shadow:none}.ui.pointing.tiered.menu>.menu>.item:after{display:none}.ui.pointing.tiered.menu>.sub.menu>.item:after{display:block}.ui.tabular.menu{background-color:transparent;border-bottom:1px solid #DCDDDE;border-radius:0;-webkit-box-shadow:none!important;box-shadow:none!important}.ui.tabular.menu .item{background-color:transparent;border-right:1px solid transparent;border-left:1px solid transparent;border-top:1px solid transparent;padding-right:1.4em;padding-left:1.4em;color:rgba(0,0,0,.6)}.ui.tabular.menu .item:before{display:none}.ui.tabular.menu .item:hover{background-color:transparent;color:rgba(0,0,0,.8)}.ui.tabular.menu .active.item{position:relative;background-color:#FFF;color:rgba(0,0,0,.8);border-color:#DCDDDE;font-weight:700;margin-bottom:-1px;border-bottom:1px solid #FFF;-webkit-box-shadow:none;box-shadow:none;border-radius:5px 5px 0}.ui.attached.tabular.menu{position:relative 0;z-index:2}.ui.tabular.menu~.bottom.attached.segment{margin:1px 1px 0 0}.ui.pagination.menu{margin:0;display:inline-block;vertical-align:middle}.ui.pagination.menu .item{min-width:3em;text-align:center}.ui.pagination.menu .icon.item i.icon{vertical-align:top}.ui.pagination.menu.floated{display:block}.ui.pagination.menu .active.item{border-top:0;padding-top:.83em;background-color:rgba(0,0,0,.05);-webkit-box-shadow:none;box-shadow:none}.ui.secondary.menu{background-color:transparent;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.ui.secondary.menu>.menu>.item,.ui.secondary.menu>.item{-webkit-box-shadow:none;box-shadow:none;border:0;height:auto!important;margin:0 .25em;padding:.5em 1em;border-radius:.item>.input .3125em}.ui.secondary.menu>.menu>.item:before,.ui.secondary.menu>.item:before{display:none!important}.ui.secondary.menu input{background-color:transparent;border:0}.ui.secondary.menu .link.item,.ui.secondary.menu a.item{opacity:.8;-webkit-transition:none;-moz-transition:none;transition:none}.ui.secondary.menu .header.item{border-left:.1em solid rgba(0,0,0,.1);background-color:transparent;border-radius:.link.item:hover,.ui.secondary.menu 0}.ui.secondary.menu a.item:hover{opacity:1}.ui.secondary.menu>.menu>.active.item,.ui.secondary.menu>.active.item{background-color:rgba(0,0,0,.08);opacity:1;-webkit-box-shadow:none;box-shadow:none}.ui.secondary.vertical.menu>.active.item{border-radius:.3125em}.ui.secondary.inverted.menu .link.item,.ui.secondary.inverted.menu a.item{color:rgba(255,255,255,.5)}.ui.secondary.inverted.menu .link.item:hover,.ui.secondary.inverted.menu a.item:hover{color:rgba(255,255,255,.9)}.ui.secondary.inverted.menu .active.item{background-color:rgba(255,255,255,.1)}.ui.secondary.item.menu>.item{margin:0}.ui.secondary.attached.menu{-webkit-box-shadow:none;box-shadow:none}.ui.secondary.pointing.menu{border-bottom:3px solid rgba(0,0,0,.1)}.ui.secondary.pointing.menu>.menu>.item,.ui.secondary.pointing.menu>.item{margin:0 0 -3px;padding:.6em .95em;border-bottom:3px solid rgba(0,0,0,0);border-radius:0;-webkit-transition:color .2s;-moz-transition:color .2s;transition:color .2s}.ui.secondary.pointing.menu .header.item{margin-bottom:-3px;background-color:transparent!important;border-left-width:0!important;font-weight:700!important;color:rgba(0,0,0,.8)!important}.ui.secondary.pointing.menu .text.item{-webkit-box-shadow:none!important;box-shadow:none!important}.ui.secondary.pointing.menu>.menu>.item:after,.ui.secondary.pointing.menu>.item:after{display:none}.ui.secondary.pointing.menu>.menu>.link.item:hover,.ui.secondary.pointing.menu>.link.item:hover,.ui.secondary.pointing.menu>.menu>a.item:hover,.ui.secondary.pointing.menu>a.item:hover{background-color:transparent;color:rgba(0,0,0,.7)}.ui.secondary.pointing.menu>.menu>.link.item:active,.ui.secondary.pointing.menu>.link.item:active,.ui.secondary.pointing.menu>.menu>a.item:active,.ui.secondary.pointing.menu>a.item:active{background-color:transparent;border-color:rgba(0,0,0,.2)}.ui.secondary.pointing.menu>.menu>.item.active,.ui.secondary.pointing.menu>.item.active{background-color:transparent;border-color:rgba(0,0,0,.4);-webkit-box-shadow:none;box-shadow:none}.ui.secondary.vertical.pointing.menu{border:0;border-left:3px solid rgba(0,0,0,.1)}.ui.secondary.vertical.menu>.item{border:0;margin:0 0 .3em;padding:.6em .8em;border-radius:-3px .1875em}.ui.secondary.vertical.menu>.header.item{border-radius:0}.ui.secondary.vertical.pointing.menu>.item{margin:0 0 0;border-bottom:0;border-left:3px solid transparent;border-radius:0}.ui.secondary.vertical.pointing.menu>.item:hover{background-color:transparent;color:rgba(0,0,0,.7)}.ui.secondary.vertical.pointing.menu>.item:active{background-color:transparent;border-color:rgba(0,0,0,.2)}.ui.secondary.vertical.pointing.menu>.item.active{background-color:transparent;border-color:rgba(0,0,0,.4);color:rgba(0,0,0,.85)}.ui.secondary.inverted.menu{background-color:transparent}.ui.secondary.inverted.pointing.menu{border-bottom:3px solid rgba(255,255,255,.1)}.ui.secondary.inverted.pointing.menu>.item{color:rgba(255,255,255,.7)}.ui.secondary.inverted.pointing.menu>.header.item{color:#FFF!important}.ui.secondary.inverted.pointing.menu>.menu>.item:hover,.ui.secondary.inverted.pointing.menu>.item:hover{color:rgba(255,255,255,.85)}.ui.secondary.inverted.pointing.menu>.menu>.item:active,.ui.secondary.inverted.pointing.menu>.item:active{border-color:rgba(255,255,255,.4)}.ui.secondary.inverted.pointing.menu>.menu>.item.active,.ui.secondary.inverted.pointing.menu>.item.active{border-color:rgba(255,255,255,.8);color:#fff}.ui.secondary.inverted.vertical.pointing.menu{border-left:3px solid rgba(255,255,255,.1);border-bottom:0}.ui.text.menu{background-color:transparent;margin:1rem -1rem;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.ui.text.menu>.item{opacity:.8;margin:0 1em;padding:0;height:auto!important;border-radius:0;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:opacity .2s ease;-moz-transition:opacity .2s ease;transition:opacity .2s ease}.ui.text.menu>.item:before{display:none!important}.ui.text.menu .header.item{background-color:transparent;opacity:1;color:rgba(50,50,50,.8);font-size:.875rem;padding:0;text-transform:uppercase;font-weight:700}.ui.text.item.menu .item{margin:0}.ui.vertical.text.menu{margin:1rem 0}.ui.vertical.text.menu:first-child{margin-top:0rem}.ui.vertical.text.menu:last-child{margin-bottom:0rem}.ui.vertical.text.menu .item{float:right;clear:right;margin:.5em 0}.ui.vertical.text.menu .item>i.icon{float:none;margin:0 0 0 .83em}.ui.vertical.text.menu .header.item{margin:.8em 0}.ui.text.menu .item:hover{opacity:1;background-color:transparent}.ui.text.menu .active.item{background-color:transparent;padding:0;border:0;opacity:1;font-weight:700;-webkit-box-shadow:none;box-shadow:none}.ui.text.pointing.menu .active.item:after{-webkit-box-shadow:none;box-shadow:none}.ui.text.attached.menu{-webkit-box-shadow:none;box-shadow:none}.ui.inverted.text.menu,.ui.inverted.text.menu .item,.ui.inverted.text.menu .item:hover,.ui.inverted.text.menu .item.active{background-color:transparent}.ui.icon.menu,.ui.vertical.icon.menu{width:auto;display:inline-block;height:auto}.ui.icon.menu>.item{height:auto;text-align:center;color:rgba(60,60,60,.7)}.ui.icon.menu>.item>.icon{display:block;float:none!important;opacity:1;margin:0 auto!important}.ui.icon.menu .icon:before{opacity:1}.ui.menu .icon.item .icon{margin:0}.ui.vertical.icon.menu{float:none}.ui.inverted.icon.menu .item{color:rgba(255,255,255,.8)}.ui.inverted.icon.menu .icon{color:#fff}.ui.labeled.icon.menu{text-align:center}.ui.labeled.icon.menu>.item>.icon{display:block;font-size:1.5em!important;margin:0 auto .3em!important}.ui.menu .green.active.item,.ui.green.menu .active.item{border-color:#A1CF64!important;color:#A1CF64!important}.ui.menu .red.active.item,.ui.red.menu .active.item{border-color:#D95C5C!important;color:#D95C5C!important}.ui.menu .blue.active.item,.ui.blue.menu .active.item{border-color:#6ECFF5!important;color:#6ECFF5!important}.ui.menu .purple.active.item,.ui.purple.menu .active.item{border-color:#564F8A!important;color:#564F8A!important}.ui.menu .orange.active.item,.ui.orange.menu .active.item{border-color:#F05940!important;color:#F05940!important}.ui.menu .teal.active.item,.ui.teal.menu .active.item{border-color:#00B5AD!important;color:#00B5AD!important}.ui.inverted.menu{background-color:#333;-webkit-box-shadow:none;box-shadow:none}.ui.inverted.menu .header.item{margin:0;background-color:rgba(0,0,0,.3);-webkit-box-shadow:none;box-shadow:none}.ui.inverted.menu .item,.ui.inverted.menu .item>a{color:#FFF}.ui.inverted.menu .item .item,.ui.inverted.menu .item .item>a{color:rgba(255,255,255,.8)}.ui.inverted.menu .dropdown .menu .item,.ui.inverted.menu .dropdown .menu .item a{color:rgba(0,0,0,.75)!important}.ui.inverted.menu .item.disabled,.ui.inverted.menu .item.disabled:hover{color:rgba(255,255,255,.2)}.ui.inverted.menu .item:before{background-image:-webkit-linear-gradient(rgba(255,255,255,.03) 0,rgba(255,255,255,.1) 50%,rgba(255,255,255,.03) 100%);background-image:-moz-linear-gradient(rgba(255,255,255,.03) 0,rgba(255,255,255,.1) 50%,rgba(255,255,255,.03) 100%);background-image:-webkit-gradient(linear,right top,right bottom,from(rgba(255,255,255,.03)),color-stop(50%,rgba(255,255,255,.1)),to(rgba(255,255,255,.03)));background-image:linear-gradient(rgba(255,255,255,.03) 0,rgba(255,255,255,.1) 50%,rgba(255,255,255,.03) 100%)}.ui.vertical.inverted.menu .item:before{background-image:-webkit-linear-gradient(right,rgba(255,255,255,.03) 0,rgba(255,255,255,.1) 50%,rgba(255,255,255,.03) 100%);background-image:-moz-linear-gradient(right,rgba(255,255,255,.03) 0,rgba(255,255,255,.1) 50%,rgba(255,255,255,.03) 100%);background-image:-webkit-gradient(linear,right top,left top,from(rgba(255,255,255,.03)),color-stop(50%,rgba(255,255,255,.1)),to(rgba(255,255,255,.03)));background-image:linear-gradient(to left,rgba(255,255,255,.03) 0,rgba(255,255,255,.1) 50%,rgba(255,255,255,.03) 100%)}.ui.link.inverted.menu .item:hover,.ui.inverted.menu .link.item:hover,.ui.inverted.menu a.item:hover,.ui.inverted.menu .dropdown.item:hover{background-color:rgba(255,255,255,.1)}.ui.inverted.menu a.item:hover,.ui.inverted.menu .item>a:hover,.ui.inverted.menu .item .menu a.item:hover,.ui.inverted.menu .item .menu .link.item:hover{color:#fff}.ui.inverted.menu a.item:active,.ui.inverted.menu .dropdown.item:active,.ui.inverted.menu .link.item:active,.ui.inverted.menu a.item:active{background-color:rgba(255,255,255,.15)}.ui.inverted.menu .active.item{-webkit-box-shadow:none!important;box-shadow:none!important;background-color:rgba(255,255,255,.2)}.ui.inverted.menu .active.item,.ui.inverted.menu .active.item a{color:#fff!important}.ui.inverted.vertical.menu .item .menu .active.item{background-color:rgba(255,255,255,.2);color:#fff}.ui.inverted.pointing.menu .active.item:after{background-color:#5B5B5B;-webkit-box-shadow:none;box-shadow:none}.ui.inverted.pointing.menu .active.item:hover:after{background-color:#4A4A4A}.ui.selection.menu>.item{color:rgba(0,0,0,.4)}.ui.selection.menu>.item:hover{color:rgba(0,0,0,.6)}.ui.selection.menu>.item.active{color:rgba(0,0,0,.85)}.ui.inverted.selection.menu>.item{color:rgba(255,255,255,.4)}.ui.inverted.selection.menu>.item:hover{color:rgba(255,255,255,.9)}.ui.inverted.selection.menu>.item.active{color:#FFF}.ui.floated.menu{float:right;margin:0rem 0rem 0rem .5rem}.ui.right.floated.menu{float:left;margin:0rem .5rem 0rem 0rem}.ui.grey.menu{background-color:#F0F0F0}.ui.inverted.green.menu{background-color:#A1CF64}.ui.inverted.green.pointing.menu .active.item:after{background-color:#A1CF64}.ui.inverted.red.menu{background-color:#D95C5C}.ui.inverted.red.pointing.menu .active.item:after{background-color:#F16883}.ui.inverted.blue.menu{background-color:#6ECFF5}.ui.inverted.blue.pointing.menu .active.item:after{background-color:#6ECFF5}.ui.inverted.purple.menu{background-color:#564F8A}.ui.inverted.purple.pointing.menu .active.item:after{background-color:#564F8A}.ui.inverted.orange.menu{background-color:#F05940}.ui.inverted.orange.pointing.menu .active.item:after{background-color:#F05940}.ui.inverted.teal.menu{background-color:#00B5AD}.ui.inverted.teal.pointing.menu .active.item:after{background-color:#00B5AD}.ui.fitted.menu .item,.ui.fitted.menu .item .menu .item,.ui.menu .fitted.item{padding:0}.ui.horizontally.fitted.menu .item,.ui.horizontally.fitted.menu .item .menu .item,.ui.menu .horizontally.fitted.item{padding-top:.83em;padding-bottom:.83em}.ui.vertically.fitted.menu .item,.ui.vertically.fitted.menu .item .menu .item,.ui.menu .vertically.fitted.item{padding-right:.95em;padding-left:.95em}.ui.borderless.menu .item:before,.ui.borderless.menu .item .menu .item:before,.ui.menu .borderless.item:before{background-image:none}.ui.compact.menu{display:inline-block;margin:0;vertical-align:middle}.ui.compact.vertical.menu{width:auto!important}.ui.compact.vertical.menu .item:last-child::before{display:block}.ui.menu.fluid,.ui.vertical.menu.fluid{display:block;width:100%!important}.ui.item.menu,.ui.item.menu .item{width:100%;padding-right:0!important;padding-left:0!important;text-align:center}.ui.menu.two.item .item{width:50%}.ui.menu.three.item .item{width:33.333%}.ui.menu.four.item .item{width:25%}.ui.menu.five.item .item{width:20%}.ui.menu.six.item .item{width:16.666%}.ui.menu.seven.item .item{width:14.285%}.ui.menu.eight.item .item{width:12.5%}.ui.menu.nine.item .item{width:11.11%}.ui.menu.ten.item .item{width:10%}.ui.menu.eleven.item .item{width:9.09%}.ui.menu.twelve.item .item{width:8.333%}.ui.menu.fixed{position:fixed;z-index:999;margin:0;border:0;width:100%}.ui.menu.fixed,.ui.menu.fixed .item:first-child,.ui.menu.fixed .item:last-child{border-radius:0!important}.ui.menu.fixed.top{top:0;right:0;left:auto;bottom:auto}.ui.menu.fixed.right{top:0;left:0;right:auto;bottom:auto;width:auto;height:100%}.ui.menu.fixed.bottom{bottom:0;right:0;top:auto;left:auto}.ui.menu.fixed.left{top:0;right:0;left:auto;bottom:auto;width:auto;height:100%}.ui.fixed.menu+.ui.grid{padding-top:2.75rem}.ui.pointing.menu .active.item:after{position:absolute;bottom:-.3em;right:50%;content:"";margin-right:-.3em;width:.6em;height:.6em;border:0;border-bottom:1px solid rgba(0,0,0,.1);border-left:1px solid rgba(0,0,0,.1);background-image:none;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);z-index:2;-webkit-transition:background .2s ease;-moz-transition:background .2s ease;transition:background .2s ease}.ui.pointing.menu .active.item .menu .active.item:after{display:none}.ui.vertical.pointing.menu .active.item:after{position:absolute;top:50%;margin-top:-.3em;left:-.4em;bottom:auto;right:auto;border:0;border-top:1px solid rgba(0,0,0,.1);border-left:1px solid rgba(0,0,0,.1)}.ui.pointing.menu .active.item:after{background-color:#FCFCFC}.ui.pointing.menu .active.item:hover:after{background-color:#FAFAFA}.ui.vertical.pointing.menu .menu .active.item:after{background-color:#F4F4F4}.ui.pointing.menu a.active.item:active:after{background-color:#F0F0F0}.ui.menu.attached{margin:0rem;border-radius:0;-webkit-box-shadow:0 0 0 1px #DDD;box-shadow:0 0 0 1px #DDD}.ui.top.attached.menu{border-radius:.1875em .1875em 0 0}.ui.menu.bottom.attached{border-radius:0 0 .1875em .1875em}.ui.small.menu .item{font-size:.875rem}.ui.small.vertical.menu{width:13rem}.ui.menu .item{font-size:1rem}.ui.vertical.menu{width:15rem}.ui.large.menu .item{font-size:1.125rem}.ui.large.menu .item .item{font-size:.875rem}.ui.large.menu .dropdown .item{font-size:1rem}.ui.large.vertical.menu{width:18rem}.ui.message{position:relative;min-height:18px;margin:1em 0;height:auto;background-color:#EFEFEF;padding:1em;line-height:1.33;color:rgba(0,0,0,.6);-webkit-transition:opacity .1s ease,color .1s ease,background .1s ease,-webkit-box-shadow .1s ease;-moz-transition:opacity .1s ease,color .1s ease,background .1s ease,box-shadow .1s ease;transition:opacity .1s ease,color .1s ease,background .1s ease,box-shadow .1s ease;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;border-radius:.header{margin:0 .325em}.ui.message:first-child{margin-top:0}.ui.message:last-child{margin-bottom:0}.ui.message;font-size:1.33em;font-weight:700}.ui.message p{opacity:.85;margin:1em 0}.ui.message p:first-child{margin-top:0}.ui.message p:last-child{margin-bottom:0}.ui.message .header+p{margin-top:.3em}.ui.message>:first-child{margin-top:0}.ui.message>:last-child{margin-bottom:0}.ui.message ul.list{opacity:.85;list-style-position:inside;margin:.2em 0;padding:0}.ui.message ul.list li{position:relative;list-style-type:none;margin:0 1em .3em 0;padding:0}.ui.message ul.list li:before{position:absolute;content:'\2022';top:-.05em;right:-.8em;height:100%;vertical-align:baseline;opacity:.5}.ui.message ul.list li:first-child{margin-top:0}.ui.message>.close.icon{cursor:pointer;position:absolute;top:1em;left:.5em;opacity:.7;-webkit-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear}.ui.message>.close.icon:hover{opacity:1}.ui.message.visible,.ui.header.visible{display:block!important}.ui.message.hidden,.ui.header.hidden{display:none}.ui.compact.message{display:inline-block}.ui.attached.message{margin-right:-1px;margin-left:-1px;margin-bottom:-1px;border-radius:.325em .325em 0 0;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset}.ui.attached+.ui.attached.message:not(.top):not(.bottom){margin-top:-1px;border-radius:0}.ui.bottom.attached.message{margin-top:-1px;border-radius:0 0 .325em}.ui.bottom.attached.message:not(:last-child){margin-bottom:1em}.ui.attached.icon.message{display:block .325em;width:auto}.ui.icon.message{display:table;width:100%}.ui.icon.message>.icon:not(.close){display:table-cell;vertical-align:middle;font-size:3.8em;opacity:.5}.ui.icon.message>.icon+.content{padding-right:1em}.ui.icon.message>.content{display:table-cell;vertical-align:middle}.ui.inverted.message{background-color:rgba(255,255,255,.05);color:rgba(255,255,255,.95)}.ui.floating.message{-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.05) inset;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.05) inset}.ui.black.message{background-color:#333;color:rgba(255,255,255,.95)}.ui.blue.message,.ui.info.message{background-color:#E6F4F9;color:#4D8796}.ui.green.message{background-color:#DEFCD5;color:#52A954}.ui.yellow.message,.ui.warning.message{background-color:#F6F3D5;color:#96904D}.ui.red.message{background-color:#F1D7D7;color:#A95252}.ui.success.message,.ui.positive.message{background-color:#DEFCD5;color:#52A954}.ui.error.message,.ui.negative.message{background-color:#F1D7D7;color:#A95252}.ui.small.message{font-size:.875em}.ui.message{font-size:1em}.ui.large.message{font-size:1.125em}.ui.huge.message{font-size:1.5em}.ui.massive.message{font-size:2em}.ui.table{width:100%;border-collapse:collapse}.ui.table th,.ui.table tr,.ui.table td{border-collapse:collapse;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:all .1s ease-out;-moz-transition:all .1s ease-out;transition:all .1s ease-out}.ui.table thead{border-bottom:1px solid rgba(0,0,0,.03)}.ui.table tfoot th{background-color:rgba(0,0,0,.03)}.ui.table th{cursor:auto;background-color:rgba(0,0,0,.05);text-align:right;color:rgba(0,0,0,.8);padding:.5em .7em;vertical-align:middle}.ui.table thead th:first-child{border-radius:5px 0 0}.ui.table thead th:last-child{border-radius:0 5px 0 0}.ui.table tfoot th:first-child{border-radius:0 0 0 5px}.ui.table tfoot th:last-child{border-radius:0 0 5px}.ui.table tfoot th:only-child{border-radius:0 0 5px 5px}.ui.table td{padding:.4em .7em;vertical-align:middle}.ui.table tfoot{border-top:1px solid rgba(0,0,0,.03)}.ui.table tfoot th{font-weight:400;font-style:italic}.ui.table tbody tr:nth-child(2n){background-color:rgba(0,0,50,.02)}.ui.table>.icon{vertical-align:baseline}.ui.table>.icon:only-child{margin:0}.ui.table.segment:after{display:none}.ui.table.segment.stacked:after{display:block}@media only screen and (max-width:768px){.ui.table{display:block;padding:0}.ui.table thead,.ui.table tfoot{display:none}.ui.table tbody{display:block}.ui.table tr{display:block}.ui.table tr>td{width:100%!important;display:block;border:0!important;padding:.25em .75em;-webkit-box-shadow:0 1px 0 0 rgba(0,0,0,.05)!important;box-shadow:0 1px 0 0 rgba(0,0,0,.05)!important}.ui.table td:first-child{font-weight:700;padding-top:1em}.ui.table td:last-child{-webkit-box-shadow:0 -1px 0 0 rgba(0,0,0,.1) inset!important;box-shadow:0 -1px 0 0 rgba(0,0,0,.1) inset!important;padding-bottom:1em}.ui.table tr>td.warning,.ui.table tr>td.error,.ui.table tr>td.active,.ui.table tr>td.positive,.ui.table tr>td.negative{background-color:transparent!important}}.ui.sortable.table th.disabled:hover{cursor:auto;text-align:right;font-weight:700;color:#333;color:rgba(0,0,0,.8)}.ui.sortable.table thead th:hover{background-color:rgba(0,0,0,.13);color:rgba(0,0,0,.8)}.ui.inverted.sortable.table thead th:hover{background-color:rgba(255,255,255,.13);color:#fff}.ui.table tr.positive,.ui.table td.positive{-webkit-box-shadow:2px 0 0 #119000 inset;box-shadow:2px 0 0 #119000 inset}.ui.table tr.positive td,.ui.table td.positive{background-color:#F2F8F0!important;color:#119000!important}.ui.celled.table tr.positive:hover td,.ui.celled.table tr:hover td.positive,.ui.table tr.positive:hover td,.ui.table td:hover.positive,.ui.table th:hover.positive{background-color:#ECF5E9!important;color:#119000!important}.ui.table tr.negative,.ui.table td.negative{-webkit-box-shadow:2px 0 0 #CD2929 inset;box-shadow:2px 0 0 #CD2929 inset}.ui.table tr.negative td,.ui.table td.negative{background-color:#F9F4F4;color:#CD2929!important}.ui.celled.table tr.negative:hover td,.ui.celled.table tr:hover td.negative,.ui.table tr.negative:hover td,.ui.table td:hover.negative,.ui.table th:hover.negative{background-color:#F2E8E8;color:#CD2929}.ui.table tr.error,.ui.table td.error{-webkit-box-shadow:2px 0 0 #CD2929 inset;box-shadow:2px 0 0 #CD2929 inset}.ui.table tr.error td,.ui.table td.error,.ui.table th.error{background-color:#F9F4F4;color:#CD2929}.ui.celled.table tr.error:hover td,.ui.celled.table tr:hover td.error,.ui.table tr.error:hover td,.ui.table td:hover.error,.ui.table th:hover.error{background-color:#F2E8E8;color:#CD2929}.ui.table tr.warning,.ui.table td.warning{-webkit-box-shadow:2px 0 0 #7D6C00 inset;box-shadow:2px 0 0 #7D6C00 inset}.ui.table tr.warning td,.ui.table td.warning,.ui.table th.warning{background-color:#FBF6E9;color:#7D6C00}.ui.celled.table tr.warning:hover td,.ui.celled.table tr:hover td.warning,.ui.table tr.warning:hover td,.ui.table td:hover.warning,.ui.table th:hover.warning{background-color:#F3EDDC;color:#7D6C00}.ui.table tr.active,.ui.table td.active{-webkit-box-shadow:2px 0 0 rgba(50,50,50,.9) inset;box-shadow:2px 0 0 rgba(50,50,50,.9) inset}.ui.table tr.active td,.ui.table tr td.active{background-color:#E0E0E0;color:rgba(50,50,50,.9)}.ui.table tr.disabled td,.ui.table tr td.disabled,.ui.table tr.disabled:hover td,.ui.table tr:hover td.disabled{color:rgba(150,150,150,.3)}.ui.two.column.table td{width:50%}.ui.three.column.table td{width:33.3333%}.ui.four.column.table td{width:25%}.ui.five.column.table td{width:20%}.ui.six.column.table td{width:16.66667%}.ui.seven.column.table td{width:14.2857%}.ui.eight.column.table td{width:12.5%}.ui.nine.column.table td{width:11.1111%}.ui.ten.column.table td{width:10%}.ui.eleven.column.table td{width:9.0909%}.ui.twelve.column.table td{width:8.3333%}.ui.thirteen.column.table td{width:7.6923%}.ui.fourteen.column.table td{width:7.1428%}.ui.fifteen.column.table td{width:6.6666%}.ui.sixteen.column.table td{width:6.25%}.ui.table th.one.wide,.ui.table td.one.wide{width:6.25%}.ui.table th.two.wide,.ui.table td.two.wide{width:12.5%}.ui.table th.three.wide,.ui.table td.three.wide{width:18.75%}.ui.table th.four.wide,.ui.table td.four.wide{width:25%}.ui.table th.five.wide,.ui.table td.five.wide{width:31.25%}.ui.table th.six.wide,.ui.table td.six.wide{width:37.5%}.ui.table th.seven.wide,.ui.table td.seven.wide{width:43.75%}.ui.table th.eight.wide,.ui.table td.eight.wide{width:50%}.ui.table th.nine.wide,.ui.table td.nine.wide{width:56.25%}.ui.table th.ten.wide,.ui.table td.ten.wide{width:62.5%}.ui.table th.eleven.wide,.ui.table td.eleven.wide{width:68.75%}.ui.table th.twelve.wide,.ui.table td.twelve.wide{width:75%}.ui.table th.thirteen.wide,.ui.table td.thirteen.wide{width:81.25%}.ui.table th.fourteen.wide,.ui.table td.fourteen.wide{width:87.5%}.ui.table th.fifteen.wide,.ui.table td.fifteen.wide{width:93.75%}.ui.table th.sixteen.wide,.ui.table td.sixteen.wide{width:100%}.ui.celled.table{color:rgba(0,0,0,.8)}.ui.celled.table tbody tr,.ui.celled.table tfoot tr{border:0}.ui.celled.table th,.ui.celled.table td{border:1px solid rgba(0,0,0,.1)}.ui.celled.table.segment th:first-child,.ui.celled.table.segment td:first-child{border-right:0}.ui.celled.table.segment th:last-child,.ui.celled.table.segment td:last-child{border-left:0}.ui.sortable.table thead th{cursor:pointer;white-space:nowrap}.ui.sortable.table thead th.sorted,.ui.sortable.table thead th.sorted:hover{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ui.sortable.table thead th:after{display:inline-block;content:'';width:1em;opacity:.8;margin:0 .5em 0 0;font-family:Icons;font-style:normal;font-weight:400;text-decoration:inherit}.ui.sortable.table thead th.ascending:after{content:'\25b4'}.ui.sortable.table thead th.descending:after{content:'\25be'}.ui.inverted.table td{color:rgba(255,255,255,.9)}.ui.inverted.table th{background-color:rgba(0,0,0,.15);color:rgba(255,255,255,.9)}.ui.inverted.table tbody tr:nth-child(2n){background-color:rgba(255,255,255,.06)}.ui.definition.table td:first-child{font-weight:700}.ui.collapsing.table{width:auto}.ui.basic.table th{background-color:transparent;padding:.5em}.ui.basic.table tbody tr{border-bottom:1px solid rgba(0,0,0,.03)}.ui.basic.table td{padding:.8em .5em}.ui.basic.table tbody tr:nth-child(2n){background-color:transparent!important}.ui.padded.table th,.ui.padded.table td{padding:.8em 1em}.ui.compact.table th{padding:.3em .5em}.ui.compact.table td{padding:.2em .5em}.ui.small.table{font-size:.875em}.ui.table{font-size:1em}.ui.large.table{font-size:1.1em}@font-face{font-family:'Basic Icons';src:url(../fonts/basic.icons.eot);src:url(../fonts/basic.icons.eot?#iefix) format('embedded-opentype'),url(../fonts/basic.icons.svg#basic.icons) format('svg'),url(../fonts/basic.icons.woff) format('woff'),url(../fonts/basic.icons.ttf) format('truetype');font-style:normal;font-weight:400;font-variant:normal;text-decoration:inherit;text-transform:none}i.basic.icon{display:inline-block;opacity:.75;margin:0 0 0 .25em;width:1.23em;height:1em;font-family:'Basic Icons';font-style:normal;line-height:1;font-weight:400;text-decoration:inherit;text-align:center;speak:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-font-smoothing:antialiased;font-smoothing:antialiased}i.basic.icon.circle.attention:before{content:'\2757'}i.basic.icon.circle.help:before{content:'\e704'}i.basic.icon.circle.info:before{content:'\e705'}i.basic.icon.add:before{content:'\2795'}i.basic.icon.chart:before{content:'📈'}i.basic.icon.chart.bar:before{content:'📊'}i.basic.icon.chart.pie:before{content:'\e7a2'}i.basic.icon.resize.full:before{content:'\e744'}i.basic.icon.resize.horizontal:before{content:'\2b0d'}i.basic.icon.resize.small:before{content:'\e746'}i.basic.icon.resize.vertical:before{content:'\2b0c'}i.basic.icon.down:before{content:'\2193'}i.basic.icon.down.triangle:before{content:'\25be'}i.basic.icon.down.arrow:before{content:'\e75c'}i.basic.icon.left:before{content:'\2190'}i.basic.icon.left.triangle:before{content:'\25c2'}i.basic.icon.left.arrow:before{content:'\e75d'}i.basic.icon.right:before{content:'\2192'}i.basic.icon.right.triangle:before{content:'\25b8'}i.basic.icon.right.arrow:before{content:'\e75e'}i.basic.icon.up:before{content:'\2191'}i.basic.icon.up.triangle:before{content:'\25b4'}i.basic.icon.up.arrow:before{content:'\e75f'}i.basic.icon.folder:before{content:'\e810'}i.basic.icon.open.folder:before{content:'📂'}i.basic.icon.globe:before{content:'𝌍'}i.basic.icon.desk.globe:before{content:'🌐'}i.basic.icon.star:before{content:'\e801'}i.basic.icon.star.empty:before{content:'\e800'}i.basic.icon.star.half:before{content:'\e701'}i.basic.icon.lock:before{content:'🔒'}i.basic.icon.unlock:before{content:'🔓'}i.basic.icon.layout.grid:before{content:'\e80c'}i.basic.icon.layout.block:before{content:'\e708'}i.basic.icon.layout.list:before{content:'\e80b'}i.basic.icon.heart.empty:before{content:'\2661'}i.basic.icon.heart:before{content:'\2665'}i.basic.icon.asterisk:before{content:'\2731'}i.basic.icon.attachment:before{content:'📎'}i.basic.icon.attention:before{content:'\26a0'}i.basic.icon.trophy:before{content:'🏉'}i.basic.icon.barcode:before{content:'\e792'}i.basic.icon.cart:before{content:'\e813'}i.basic.icon.block:before{content:'🚫'}i.basic.icon.book:before{content:'📖'}i.basic.icon.bookmark:before{content:'🔖'}i.basic.icon.calendar:before{content:'📅'}i.basic.icon.cancel:before{content:'\2716'}i.basic.icon.close:before{content:'\e80d'}i.basic.icon.color:before{content:'\e794'}i.basic.icon.chat:before{content:'\e720'}i.basic.icon.check:before{content:'\2611'}i.basic.icon.time:before{content:'🕔'}i.basic.icon.cloud:before{content:'\2601'}i.basic.icon.code:before{content:'\e714'}i.basic.icon.email:before{content:'\40'}i.basic.icon.settings:before{content:'\26ef'}i.basic.icon.setting:before{content:'\2699'}i.basic.icon.comment:before{content:'\e802'}i.basic.icon.clockwise.counter:before{content:'\27f2'}i.basic.icon.clockwise:before{content:'\27f3'}i.basic.icon.cube:before{content:'\e807'}i.basic.icon.direction:before{content:'\27a2'}i.basic.icon.doc:before{content:'📄'}i.basic.icon.docs:before{content:'\e736'}i.basic.icon.dollar:before{content:'💵'}i.basic.icon.paint:before{content:'\e7b5'}i.basic.icon.edit:before{content:'\270d'}i.basic.icon.eject:before{content:'\2ecf'}i.basic.icon.export:before{content:'\e715'}i.basic.icon.hide:before{content:'\e70b'}i.basic.icon.unhide:before{content:'\e80f'}i.basic.icon.facebook:before{content:'\f301'}i.basic.icon.fast-forward:before{content:'\e804'}i.basic.icon.fire:before{content:'🔥'}i.basic.icon.flag:before{content:'\2691'}i.basic.icon.lightning:before{content:'\26a1'}i.basic.icon.lab:before{content:'\68'}i.basic.icon.flight:before{content:'\2708'}i.basic.icon.forward:before{content:'\27a6'}i.basic.icon.gift:before{content:'🎁'}i.basic.icon.github:before{content:'\f308'}i.basic.icon.globe:before{content:'\e817'}i.basic.icon.headphones:before{content:'🎧'}i.basic.icon.question:before{content:'\2753'}i.basic.icon.home:before{content:'\2302'}i.basic.icon.i:before{content:'\2139'}i.basic.icon.idea:before{content:'💡'}i.basic.icon.open:before{content:'🔗'}i.basic.icon.content:before{content:'\e782'}i.basic.icon.location:before{content:'\e724'}i.basic.icon.mail:before{content:'\2709'}i.basic.icon.mic:before{content:'🎤'}i.basic.icon.minus:before{content:'\2d'}i.basic.icon.money:before{content:'💰'}i.basic.icon.off:before{content:'\e78e'}i.basic.icon.pause:before{content:'\e808'}i.basic.icon.photos:before{content:'\e812'}i.basic.icon.photo:before{content:'🌄'}i.basic.icon.pin:before{content:'📌'}i.basic.icon.play:before{content:'\e809'}i.basic.icon.plus:before{content:'\2b'}i.basic.icon.print:before{content:'\e716'}i.basic.icon.rss:before{content:'\e73a'}i.basic.icon.search:before{content:'🔍'}i.basic.icon.shuffle:before{content:'\e803'}i.basic.icon.tag:before{content:'\e80a'}i.basic.icon.tags:before{content:'\e70d'}i.basic.icon.terminal:before{content:'\e7ac'}i.basic.icon.thumbs.down:before{content:'👎'}i.basic.icon.thumbs.up:before{content:'👍'}i.basic.icon.to-end:before{content:'\e806'}i.basic.icon.to-start:before{content:'\e805'}i.basic.icon.top.list:before{content:'🏆'}i.basic.icon.trash:before{content:'\e729'}i.basic.icon.twitter:before{content:'\f303'}i.basic.icon.upload:before{content:'\e711'}i.basic.icon.user.add:before{content:'\e700'}i.basic.icon.user:before{content:'👤'}i.basic.icon.community:before{content:'\e814'}i.basic.icon.users:before{content:'👥'}i.basic.icon.id:before{content:'\e722'}i.basic.icon.url:before{content:'🔗'}i.basic.icon.zoom.in:before{content:'\e750'}i.basic.icon.zoom.out:before{content:'\e751'}i.dropdown.basic.icon{margin:0 .5em 0 0}i.basic.icon.star{width:auto;margin:0}i.basic.icon.left,i.basic.icon.left,i.basic.icon.left{width:auto;margin:0 0 0 .5em}i.basic.icon.search,i.basic.icon.up,i.basic.icon.down,i.basic.icon.right{width:auto;margin:0 .5em 0 0}i.basic.icon.delete:before{content:'\e80d'}i.basic.icon.dropdown:before{content:'\25be'}i.basic.icon.help:before{content:'\e704'}i.basic.icon.info:before{content:'\e705'}i.basic.icon.error:before{content:'\e80d'}i.basic.icon.dislike:before{content:'\2661'}i.basic.icon.like:before{content:'\2665'}i.basic.icon.eye:before{content:'\e80f'}i.basic.icon.eye.hidden:before{content:'\e70b'}i.basic.icon.date:before{content:'📅'}i.basic.icon.hover{opacity:1}i.basic.icon.active{opacity:1}i.emphasized.basic.icon{opacity:1}i.basic.icon.disabled{opacity:.3}i.link.basic.icon{cursor:pointer;opacity:.7;-webkit-transition:opacity .3s ease-out;-moz-transition:opacity .3s ease-out;transition:opacity .3s ease-out}.link.basic.icon:hover{opacity:1!important}i.circular.basic.icon{border-radius:500px!important;padding:.5em 0!important;-webkit-box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;line-height:1!important;width:2em!important;height:2em!important}i.circular.inverted.basic.icon{border:0;-webkit-box-shadow:none;box-shadow:none}i.vertically.flipped.basic.icon{-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}i.horizontally.flipped.basic.icon{-webkit-transform:scale(-1,1);-moz-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}i.left.rotated.basic.icon{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}i.right.rotated.basic.icon{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}i.square.basic.icon{width:2em;height:2em;padding:.5em .35em!important;-webkit-box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;vertical-align:baseline}i.square.basic.icon:before{vertical-align:middle}i.square.inverted.basic.icon{border:0;-webkit-box-shadow:none;box-shadow:none}i.inverted.basic.icon{background-color:#222;color:#FFF}i.blue.basic.icon{color:#6ECFF5!important}i.black.basic.icon{color:#5C6166!important}i.green.basic.icon{color:#A1CF64!important}i.red.basic.icon{color:#D95C5C!important}i.purple.basic.icon{color:#564F8A!important}i.teal.basic.icon{color:#00B5AD!important}i.inverted.black.basic.icon{background-color:#5C6166!important;color:#FFF!important}i.inverted.blue.basic.icon{background-color:#6ECFF5!important;color:#FFF!important}i.inverted.green.basic.icon{background-color:#A1CF64!important;color:#FFF!important}i.inverted.red.basic.icon{background-color:#D95C5C!important;color:#FFF!important}i.inverted.purple.basic.icon{background-color:#564F8A!important;color:#FFF!important}i.inverted.teal.basic.icon{background-color:#00B5AD!important;color:#FFF!important}i.small.basic.icon{font-size:.875em}i.basic.icon{font-size:1em}i.large.basic.icon{font-size:1.5em;margin-left:.2em;vertical-align:middle}i.big.basic.icon{font-size:2em;margin-left:.5em;vertical-align:middle}i.huge.basic.icon{font-size:4em;margin-left:.75em;vertical-align:middle}i.massive.basic.icon{font-size:8em;margin-left:1em;vertical-align:middle}.ui.button{cursor:pointer;display:inline-block;vertical-align:middle;min-height:1em;outline:0;border:0;background-color:#FAFAFA;color:gray;margin:0;padding:.8em 1.5em;font-size:1rem;text-transform:uppercase;line-height:1;font-weight:700;font-style:normal;text-align:center;text-decoration:none;background-image:-webkit-gradient(linear,right top,right bottom,from(rgba(0,0,0,0)),to(rgba(0,0,0,.05)));background-image:-webkit-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.05));background-image:-moz-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.05));background-image:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.05));border-radius:.25em;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.08) inset;box-shadow:0 0 0 1px rgba(0,0,0,.08) inset;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-transition:opacity .25s ease,background-color .25s ease,color .25s ease,background .25s ease,-webkit-box-shadow .25s ease;-moz-transition:opacity .25s ease,background-color .25s ease,color .25s ease,background .25s ease,box-shadow .25s ease;transition:opacity .25s ease,background-color .25s ease,color .25s ease,background .25s ease,box-shadow .25s ease}.ui.buttons .active.button,.ui.active.button{background-color:#EAEAEA;background-image:none;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.05) inset!important;box-shadow:0 0 0 1px rgba(0,0,0,.05) inset!important;color:rgba(0,0,0,.7)}.ui.button:hover{background-image:-webkit-gradient(linear,right top,right bottom,from(rgba(0,0,0,0)),to(rgba(0,0,0,.08)));background-image:-webkit-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.08));background-image:-moz-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.08));background-image:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.08));color:rgba(0,0,0,.7)}.ui.button.active:hover{background-image:none}.ui.button:hover .icon,.ui.button.hover .icon{opacity:.85}.ui.button:active,.ui.active.button:active{background-color:#F1F1F1;color:rgba(0,0,0,.7);-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.05) inset!important;box-shadow:0 0 0 1px rgba(0,0,0,.05) inset!important}.ui.loading.button{position:relative;cursor:default;background-color:#FFF!important;color:transparent!important;-webkit-transition:all 0s linear;-moz-transition:all 0s linear;transition:all 0s linear}.ui.loading.button:after{position:absolute;top:0;right:0;width:100%;height:100%;content:'';background:transparent url(../images/loader-mini.gif) no-repeat 50% 50%}.ui.labeled.icon.loading.button .icon{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.ui.disabled.button,.ui.disabled.button:hover,.ui.disabled.button.active{background-color:#DDD!important;cursor:default;color:rgba(0,0,0,.5)!important;opacity:.3!important;background-image:none!important;-webkit-box-shadow:none!important;box-shadow:none!important}.ui.animated.button{position:relative;overflow:hidden}.ui.animated.button .visible.content{position:relative}.ui.animated.button .hidden.content{position:absolute;width:100%}.ui.animated.button .visible.content,.ui.animated.button .hidden.content{-webkit-transition:left .3s ease 0s;-moz-transition:left .3s ease 0s;transition:left .3s ease 0s}.ui.animated.button .visible.content{right:auto;left:0}.ui.animated.button .hidden.content{top:50%;right:auto;left:-100%;margin-top:-.55em}.ui.animated.button:hover .visible.content{right:auto;left:200%}.ui.animated.button:hover .hidden.content{right:auto;left:0}.ui.vertical.animated.button .visible.content,.ui.vertical.animated.button .hidden.content{-webkit-transition:top .3s ease 0s,-webkit-transform .3s ease 0s;-moz-transition:top .3s ease 0s,-moz-transform .3s ease 0s;transition:top .3s ease 0s,transform .3s ease 0s}.ui.vertical.animated.button .visible.content{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%);left:auto}.ui.vertical.animated.button .hidden.content{top:-100%;right:0;left:auto}.ui.vertical.animated.button:hover .visible.content{-webkit-transform:translateY(200%);-moz-transform:translateY(200%);-ms-transform:translateY(200%);transform:translateY(200%);left:auto}.ui.vertical.animated.button:hover .hidden.content{top:50%;left:auto}.ui.fade.animated.button .visible.content,.ui.fade.animated.button .hidden.content{-webkit-transition:opacity .3s ease 0s,-webkit-transform .3s ease 0s;-moz-transition:opacity .3s ease 0s,-moz-transform .3s ease 0s;transition:opacity .3s ease 0s,transform .3s ease 0s}.ui.fade.animated.button .visible.content{right:auto;left:auto;opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.ui.fade.animated.button .hidden.content{opacity:0;right:0;left:auto;-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.ui.fade.animated.button:hover .visible.content{right:auto;left:auto;opacity:0;-webkit-transform:scale(0.7);-moz-transform:scale(0.7);-ms-transform:scale(0.7);transform:scale(0.7)}.ui.fade.animated.button:hover .hidden.content{right:0;left:auto;opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.ui.primary.buttons .button,.ui.primary.button{background-color:#D95C5C;color:#FFF}.ui.primary.buttons .button:hover,.ui.primary.button:hover,.ui.primary.buttons .active.button,.ui.primary.button.active{background-color:#E75859;color:#FFF}.ui.primary.buttons .button:active,.ui.primary.button:active{background-color:#D24B4C;color:#FFF}.ui.secondary.buttons .button,.ui.secondary.button{background-color:#00B5AD;color:#FFF}.ui.secondary.buttons .button:hover,.ui.secondary.button:hover,.ui.secondary.buttons .active.button,.ui.secondary.button.active{background-color:#009A93;color:#FFF}.ui.secondary.buttons .button:active,.ui.secondary.button:active{background-color:#00847E;color:#FFF}.ui.facebook.button{background-color:#3B579D;color:#FFF}.ui.facebook.button:hover{background-color:#3A59A9;color:#FFF}.ui.facebook.button:active{background-color:#334F95;color:#FFF}.ui.twitter.button{background-color:#4092CC;color:#FFF}.ui.twitter.button:hover{background-color:#399ADE;color:#FFF}.ui.twitter.button:active{background-color:#3283BC;color:#FFF}.ui.google.plus.button{background-color:#D34836;color:#FFF}.ui.google.plus.button:hover{background-color:#E3432E;color:#FFF}.ui.google.plus.button:active{background-color:#CA3A27;color:#FFF}.ui.linkedin.button{background-color:#1F88BE;color:#FFF}.ui.linkedin.button:hover{background-color:#1394D6;color:#FFF}.ui.linkedin.button:active{background-color:#1179AE;color:#FFF}.ui.youtube.button{background-color:#CC181E;color:#FFF}.ui.youtube.button:hover{background-color:#DF0209;color:#FFF}.ui.youtube.button:active{background-color:#A50006;color:#FFF}.ui.instagram.button{background-color:#49769C;color:#FFF}.ui.instagram.button:hover{background-color:#4781B1;color:#FFF}.ui.instagram.button:active{background-color:#38658A;color:#FFF}.ui.pinterest.button{background-color:#00ACED;color:#FFF}.ui.pinterest.button:hover{background-color:#00B9FF;color:#FFF}.ui.pinterest.button:active{background-color:#009EDA;color:#FFF}.ui.vk.button{background-color:#4D7198;color:#FFF}.ui.vk.button:hover{background-color:#537AA5;color:#FFF}.ui.vk.button:active{background-color:#405E7E;color:#FFF}.ui.button>.icon{margin-left:.6em;line-height:1;-webkit-transition:opacity .1s ease;-moz-transition:opacity .1s ease;transition:opacity .1s ease}.ui.left.floated.buttons,.ui.left.floated.button{float:right;margin-left:.25em}.ui.right.floated.buttons,.ui.right.floated.button{float:left;margin-right:.25em}.ui.buttons .button,.ui.button{font-size:1rem}.ui.mini.buttons .button,.ui.mini.buttons .or,.ui.mini.button{font-size:.8rem}.ui.mini.buttons .button,.ui.mini.button{padding:.6em .8em}.ui.mini.icon.buttons .button,.ui.mini.buttons .icon.button{padding:.6em}.ui.tiny.buttons .button,.ui.tiny.buttons .or,.ui.tiny.button{font-size:.875em}.ui.tiny.buttons .button,.ui.tiny.buttons .button,.ui.tiny.button{padding:.6em .8em}.ui.tiny.icon.buttons .button,.ui.tiny.buttons .icon.button{padding:.6em}.ui.small.buttons .button,.ui.small.buttons .or,.ui.small.button{font-size:.875rem}.ui.large.buttons .button,.ui.large.buttons .or,.ui.large.button{font-size:1.125rem}.ui.big.buttons .button,.ui.big.buttons .or,.ui.big.button{font-size:1.25rem}.ui.huge.buttons .button,.ui.huge.buttons .or,.ui.huge.button{font-size:1.375rem}.ui.massive.buttons .button,.ui.massive.buttons .or,.ui.massive.button{font-size:1.5rem;font-weight:700}.ui.tiny.buttons .or:before,.ui.mini.buttons .or:before{width:1.45em;height:1.55em;line-height:1.4;margin-right:-.725em;margin-top:-.25em}.ui.tiny.buttons .or:after,.ui.mini.buttons .or:after{height:1.45em}.ui.huge.loading.button:after{background-image:url(../images/loader-small.gif)}.ui.massive.buttons .loading.button:after,.ui.gigantic.buttons .loading.button:after,.ui.massive.loading.button:after,.ui.gigantic.loading.button:after{background-image:url(../images/loader-medium.gif)}.ui.huge.loading.button:after,.ui.huge.loading.button.active:after{background-image:url(../images/loader-small.gif)}.ui.massive.buttons .loading.button:after,.ui.gigantic.buttons .loading.button:after,.ui.massive.loading.button:after,.ui.gigantic.loading.button:after,.ui.massive.buttons .loading.button.active:after,.ui.gigantic.buttons .loading.button.active:after,.ui.massive.loading.button.active:after,.ui.gigantic.loading.button.active:after{background-image:url(../images/loader-medium.gif)}.ui.icon.buttons .button,.ui.icon.button{padding:.8em}.ui.icon.buttons .button>.icon,.ui.icon.button>.icon{opacity:.9;margin:0;vertical-align:top}.ui.basic.buttons .button,.ui.basic.button{background-color:transparent!important;background-image:none;color:gray!important;font-weight:400;text-transform:none;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset}.ui.basic.buttons{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;border-radius:.button:hover,.ui.basic.button:hover{background-image:none .25em}.ui.basic.buttons;color:#7F7F7F!important;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.18) inset;box-shadow:0 0 0 1px rgba(0,0,0,.18) inset}.ui.basic.buttons .button:active,.ui.basic.button:active{background-color:rgba(0,0,0,.02)!important;color:#7F7F7F!important;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset}.ui.basic.buttons .button.active,.ui.basic.button.active{background-color:rgba(0,0,0,.05);color:#7F7F7F;-webkit-box-shadow:0 0 0 1px #BDBDBD inset;box-shadow:0 0 0 1px #BDBDBD inset}.ui.basic.buttons .button.active:hover,.ui.basic.button.active:hover{background-color:rgba(0,0,0,.1)}.ui.basic.inverted.buttons .button,.ui.basic.inverted.button{color:#FAFAFA!important;-webkit-box-shadow:0 0 0 1px rgba(255,255,255,.3) inset;box-shadow:0 0 0 1px rgba(255,255,255,.3) inset}.ui.basic.inverted.buttons .button:hover,.ui.basic.inverted.button:hover{background-image:none;color:#FFF!important;-webkit-box-shadow:0 0 0 1px rgba(255,255,255,.5) inset;box-shadow:0 0 0 1px rgba(255,255,255,.5) inset}.ui.basic.inverted.buttons .button:active,.ui.basic.inverted.button:active{background-color:rgba(255,255,255,.05)!important;color:#FFF!important;-webkit-box-shadow:0 0 0 1px rgba(255,255,255,.8) inset!important;box-shadow:0 0 0 1px rgba(255,255,255,.8) inset!important}.ui.basic.inverted.buttons .button.active,.ui.basic.inverted.button.active{background-color:rgba(255,255,255,.5);color:#FFF;-webkit-box-shadow:none;box-shadow:none}.ui.basic.inverted.buttons .button.active:hover,.ui.basic.inverted.button.active:hover{background-color:rgba(0,0,0,.1)}.ui.basic.buttons .button{border-right:1px solid rgba(0,0,0,.1);-webkit-box-shadow:none;box-shadow:none}.ui.basic.buttons .button:hover,.ui.basic.buttons .button:active{-webkit-box-shadow:none;box-shadow:none}.ui.basic.buttons .button.active,.ui.basic.buttons .button.active:hover{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.2) inset;box-shadow:0 0 0 1px rgba(0,0,0,.2) inset}.ui.labeled.icon.buttons .button,.ui.labeled.icon.button{position:relative;padding-right:4em!important;padding-left:1.4em!important}.ui.labeled.icon.buttons>.button>.icon,.ui.labeled.icon.button>.icon{position:absolute;top:0;right:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;width:2.75em;height:100%;padding-top:.8em;background-color:rgba(0,0,0,.05);text-align:center;border-radius:0 .25em .25em 0;line-height:1;-webkit-box-shadow:-1px 0 0 0 rgba(0,0,0,.05) inset;box-shadow:-1px 0 0 0 rgba(0,0,0,.05) inset}.ui.labeled.icon.buttons .button>.icon{border-radius:.button:first-child>.icon{border-top-right-radius:.25em 0}.ui.labeled.icon.buttons;border-bottom-right-radius:.25em}.ui.labeled.icon.buttons .button:last-child>.icon{border-top-left-radius:.25em;border-bottom-left-radius:.25em}.ui.vertical.labeled.icon.buttons .button:first-child>.icon{border-radius:0;border-top-right-radius:.25em}.ui.vertical.labeled.icon.buttons .button:last-child>.icon{border-radius:0;border-bottom-right-radius:.25em}.ui.right.labeled.icon.button{padding-right:1.4em!important;padding-left:4em!important}.ui.left.fluid.labeled.icon.button,.ui.right.fluid.labeled.icon.button{padding-right:1.4em!important;padding-left:1.4em!important}.ui.right.labeled.icon.button .icon{right:auto;left:0;border-radius:.25em 0 0 .25em;-webkit-box-shadow:1px 0 0 0 rgba(0,0,0,.05) inset;box-shadow:1px 0 0 0 rgba(0,0,0,.05) inset}.ui.toggle.buttons .active.button,.ui.buttons .button.toggle.active,.ui.button.toggle.active{background-color:#5BBD72!important;color:#FFF!important;-webkit-box-shadow:none!important;box-shadow:none!important}.ui.button.toggle.active:hover{background-color:#58CB73!important;color:#FFF!important;-webkit-box-shadow:none!important;box-shadow:none!important}.ui.circular.button{border-radius:10em}.ui.attached.button{display:block;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1)!important;box-shadow:0 0 0 1px rgba(0,0,0,.1)!important}.ui.attached.top.button{border-radius:.25em .25em 0 0}.ui.attached.bottom.button{border-radius:0 0 .25em .25em}.ui.attached.left.button{display:inline-block;border-right:0;padding-left:.75em;text-align:left;border-radius:0 .25em .25em}.ui.attached.right.button{display:inline-block 0;padding-right:.75em;text-align:right;border-radius:0 .25em .25em 0}.ui.buttons .or{position:relative;float:right;width:.3em;height:1.1em;z-index:3}.ui.buttons .or:before{position:absolute;top:50%;right:50%;content:'or';background-color:#FFF;margin-top:-.1em;margin-right:-.9em;width:1.8em;height:1.8em;line-height:1.55;color:#AAA;font-style:normal;font-weight:400;text-align:center;border-radius:500px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.buttons .or[data-text]:before{content:attr(data-text)}.ui.buttons .or:after{position:absolute;top:0;right:0;content:' ';width:.3em;height:1.7em;background-color:transparent;border-top:.5em solid #FFF;border-bottom:.5em solid #FFF}.ui.fluid.buttons .or{width:0!important}.ui.fluid.buttons .or:after{display:none}.attached.ui.buttons{margin:0;border-radius:4px 4px 0 0}.attached.ui.buttons .button:first-child{border-radius:4px 0 0}.attached.ui.buttons .button:last-child{border-radius:0 4px 0 0}.bottom.attached.ui.buttons{margin-top:-1px;border-radius:0 0 4px 4px}.bottom.attached.ui.buttons .button:first-child{border-radius:0 0 0 4px}.bottom.attached.ui.buttons .button:last-child{border-radius:0 0 4px}.left.attached.ui.buttons{margin-right:-1px;border-radius:0 4px 4px 0}.left.attached.ui.buttons .button:first-child{margin-right:-1px;border-radius:0 4px 0 0}.left.attached.ui.buttons .button:last-child{margin-right:-1px;border-radius:0 0 .button{margin-left:-1px 4px}.right.attached.ui.buttons,.right.attached.ui.buttons;border-radius:4px 0 0 4px}.right.attached.ui.buttons .button:first-child{margin-right:-1px;border-radius:0 4px .button:last-child{margin-right:-1px 0}.right.attached.ui.buttons;border-radius:0 0 4px}.ui.fluid.buttons,.ui.button.fluid,.ui.fluid.buttons>.button{display:block 0;width:100%}.ui.\32.buttons>.button,.ui.two.buttons>.button{width:50%}.ui.\33.buttons>.button,.ui.three.buttons>.button{width:33.333%}.ui.\34.buttons>.button,.ui.four.buttons>.button{width:25%}.ui.\35.buttons>.button,.ui.five.buttons>.button{width:20%}.ui.\36.buttons>.button,.ui.six.buttons>.button{width:16.666%}.ui.\37.buttons>.button,.ui.seven.buttons>.button{width:14.285%}.ui.\38.buttons>.button,.ui.eight.buttons>.button{width:12.5%}.ui.\39.buttons>.button,.ui.nine.buttons>.button{width:11.11%}.ui.\31\30.buttons>.button,.ui.ten.buttons>.button{width:10%}.ui.\31\31.buttons>.button,.ui.eleven.buttons>.button{width:9.09%}.ui.\31\32.buttons>.button,.ui.twelve.buttons>.button{width:8.3333%}.ui.fluid.vertical.buttons,.ui.fluid.vertical.buttons>.button{display:block;width:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.\32.vertical.buttons>.button,.ui.two.vertical.buttons>.button{height:50%}.ui.\33.vertical.buttons>.button,.ui.three.vertical.buttons>.button{height:33.333%}.ui.\34.vertical.buttons>.button,.ui.four.vertical.buttons>.button{height:25%}.ui.\35.vertical.buttons>.button,.ui.five.vertical.buttons>.button{height:20%}.ui.\36.vertical.buttons>.button,.ui.six.vertical.buttons>.button{height:16.666%}.ui.\37.vertical.buttons>.button,.ui.seven.vertical.buttons>.button{height:14.285%}.ui.\38.vertical.buttons>.button,.ui.eight.vertical.buttons>.button{height:12.5%}.ui.\39.vertical.buttons>.button,.ui.nine.vertical.buttons>.button{height:11.11%}.ui.\31\30.vertical.buttons>.button,.ui.ten.vertical.buttons>.button{height:10%}.ui.\31\31.vertical.buttons>.button,.ui.eleven.vertical.buttons>.button{height:9.09%}.ui.\31\32.vertical.buttons>.button,.ui.twelve.vertical.buttons>.button{height:8.3333%}.ui.black.buttons .button,.ui.black.button{background-color:#5C6166;color:#FFF}.ui.black.buttons .button:hover,.ui.black.button:hover{background-color:#4C4C4C;color:#FFF}.ui.black.buttons .button:active,.ui.black.button:active{background-color:#333;color:#FFF}.ui.green.buttons .button,.ui.green.button{background-color:#5BBD72;color:#FFF}.ui.green.buttons .button:hover,.ui.green.button:hover,.ui.green.buttons .active.button,.ui.green.button.active{background-color:#58cb73;color:#FFF}.ui.green.buttons .button:active,.ui.green.button:active{background-color:#4CB164;color:#FFF}.ui.red.buttons .button,.ui.red.button{background-color:#D95C5C;color:#FFF}.ui.red.buttons .button:hover,.ui.red.button:hover,.ui.red.buttons .active.button,.ui.red.button.active{background-color:#E75859;color:#FFF}.ui.red.buttons .button:active,.ui.red.button:active{background-color:#D24B4C;color:#FFF}.ui.orange.buttons .button,.ui.orange.button{background-color:#E96633;color:#FFF}.ui.orange.buttons .button:hover,.ui.orange.button:hover,.ui.orange.buttons .active.button,.ui.orange.button.active{background-color:#FF7038;color:#FFF}.ui.orange.buttons .button:active,.ui.orange.button:active{background-color:#DA683B;color:#FFF}.ui.blue.buttons .button,.ui.blue.button{background-color:#6ECFF5;color:#FFF}.ui.blue.buttons .button:hover,.ui.blue.button:hover,.ui.blue.buttons .active.button,.ui.blue.button.active{background-color:#1AB8F3;color:#FFF}.ui.blue.buttons .button:active,.ui.blue.button:active{background-color:#0AA5DF;color:#FFF}.ui.purple.buttons .button,.ui.purple.button{background-color:#564F8A;color:#FFF}.ui.purple.buttons .button:hover,.ui.purple.button:hover,.ui.purple.buttons .active.button,.ui.purple.button.active{background-color:#3E3773;color:#FFF}.ui.purple.buttons .button:active,.ui.purple.button:active{background-color:#2E2860;color:#FFF}.ui.teal.buttons .button,.ui.teal.button{background-color:#00B5AD;color:#FFF}.ui.teal.buttons .button:hover,.ui.teal.button:hover,.ui.teal.buttons .active.button,.ui.teal.button.active{background-color:#009A93;color:#FFF}.ui.teal.buttons .button:active,.ui.teal.button:active{background-color:#00847E;color:#FFF}.ui.positive.buttons .button,.ui.positive.button{background-color:#5BBD72!important;color:#FFF}.ui.positive.buttons .button:hover,.ui.positive.button:hover,.ui.positive.buttons .active.button,.ui.positive.button.active{background-color:#58CB73!important;color:#FFF}.ui.positive.buttons .button:active,.ui.positive.button:active{background-color:#4CB164!important;color:#FFF}.ui.negative.buttons .button,.ui.negative.button{background-color:#D95C5C!important;color:#FFF}.ui.negative.buttons .button:hover,.ui.negative.button:hover,.ui.negative.buttons .active.button,.ui.negative.button.active{background-color:#E75859!important;color:#FFF}.ui.negative.buttons .button:active,.ui.negative.button:active{background-color:#D24B4C!important;color:#FFF}.ui.buttons{display:inline-block;vertical-align:middle}.ui.buttons:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui.buttons .button:first-child{border-right:0}.ui.buttons .button{float:right;border-radius:.button:first-child{margin-right:0 0}.ui.buttons;border-top-right-radius:.25em;border-bottom-right-radius:.25em}.ui.buttons .button:last-child{border-top-left-radius:.25em;border-bottom-left-radius:.25em}.ui.vertical.buttons{display:inline-block}.ui.vertical.buttons .button{display:block;float:none;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset}.ui.vertical.buttons .button:first-child,.ui.vertical.buttons .mini.button:first-child,.ui.vertical.buttons .tiny.button:first-child,.ui.vertical.buttons .small.button:first-child,.ui.vertical.buttons .massive.button:first-child,.ui.vertical.buttons .huge.button:first-child{margin-top:0;border-radius:.25em .25em 0 0}.ui.vertical.buttons .button:last-child,.ui.vertical.buttons .mini.button:last-child,.ui.vertical.buttons .tiny.button:last-child,.ui.vertical.buttons .small.button:last-child,.ui.vertical.buttons .massive.button:last-child,.ui.vertical.buttons .huge.button:last-child,.ui.vertical.buttons .gigantic.button:last-child{border-radius:0 0 .25em .25em}.ui.divider{margin:1rem 0rem;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(255,255,255,.8);line-height:1;height:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ui.vertical.divider,.ui.horizontal.divider{position:absolute;border:0;height:0;margin:0;background-color:transparent;font-size:.875rem;font-weight:700;text-align:center;text-transform:uppercase;color:rgba(0,0,0,.8)}.ui.vertical.divider{position:absolute;z-index:2;top:50%;right:50%;margin:0 -3% 0 0;width:6%;height:50%;line-height:0;padding:0}.ui.vertical.divider:before,.ui.vertical.divider:after{position:absolute;right:50%;content:" ";z-index:3;border-right:1px solid rgba(0,0,0,.1);border-left:1px solid rgba(255,255,255,.8);width:0;height:80%}.ui.vertical.divider:before{top:-100%}.ui.vertical.divider:after{top:auto;bottom:0}.ui.horizontal.divider{position:relative;top:0;right:0;margin:1rem 1.5rem;height:auto;padding:0;line-height:1}.ui.horizontal.divider:before,.ui.horizontal.divider:after{position:absolute;content:" ";z-index:3;width:50%;top:50%;height:0;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(255,255,255,.8)}.ui.horizontal.divider:before{right:0;margin-right:-1.5rem}.ui.horizontal.divider:after{right:auto;left:0;margin-left:-1.5rem}.ui.divider>.icon{margin:0;font-size:1rem;vertical-align:middle}.ui.divider.inverted{color:#fff}.ui.vertical.inverted.divider,.ui.horizontal.inverted.divider{color:rgba(255,255,255,.9)}.ui.divider.inverted,.ui.divider.inverted:after,.ui.divider.inverted:before{border-top-color:rgba(0,0,0,.15);border-bottom-color:rgba(255,255,255,.15);border-right-color:rgba(0,0,0,.15);border-left-color:rgba(255,255,255,.15)}.ui.fitted.divider{margin:0}.ui.clearing.divider{clear:both}.ui.section.divider{margin-top:2rem;margin-bottom:2rem}.ui.header{border:0;margin:1em 0 1rem;padding:0;font-size:1.33em;font-weight:700;line-height:1.33}.ui.header .sub.header{font-size:1rem;font-weight:400;margin:0;padding:0;line-height:1.2;color:rgba(0,0,0,.5)}.ui.header .icon{display:table-cell;vertical-align:middle;padding-left:.5em}.ui.header .icon:only-child{display:inline-block;vertical-align:baseline}.ui.header .content{display:inline-block;vertical-align:top}.ui.header .icon+.content{padding-right:.5em;display:table-cell}.ui.header:first-child{margin-top:0}.ui.header:last-child{margin-bottom:0}.ui.header+p{margin-top:0}h1.ui.header{min-height:1rem;line-height:1.33;font-size:2rem}h2.ui.header{line-height:1.33;font-size:1.75rem}h3.ui.header{line-height:1.33;font-size:1.33rem}h4.ui.header{line-height:1.33;font-size:1.1rem}h5.ui.header{line-height:1.2;font-size:1rem}.ui.huge.header{min-height:1em;font-size:2em}.ui.large.header{font-size:1.75em}.ui.medium.header{font-size:1.33em}.ui.small.header{font-size:1.1em}.ui.tiny.header{font-size:1em}.ui.icon.header{display:inline-block;text-align:center}.ui.icon.header .icon{float:none;display:block;font-size:3em;margin:0 auto .2em;padding:0}.ui.icon.header .content{display:block}.ui.icon.header .circular.icon,.ui.icon.header .square.icon{font-size:2em}.ui.block.icon.header .icon{margin-bottom:0}.ui.icon.header.aligned{margin-right:auto;margin-left:auto;display:block}.ui.disabled.header{opacity:.5}.ui.blue.header{color:#6ECFF5!important}.ui.black.header{color:#5C6166!important}.ui.green.header{color:#A1CF64!important}.ui.red.header{color:#D95C5C!important}.ui.purple.header{color:#564F8A!important}.ui.teal.header{color:#00B5AD!important}.ui.blue.dividing.header{border-bottom:3px solid #6ECFF5}.ui.black.dividing.header{border-bottom:3px solid #5C6166}.ui.green.dividing.header{border-bottom:3px solid #A1CF64}.ui.red.dividing.header{border-bottom:3px solid #D95C5C}.ui.purple.dividing.header{border-bottom:3px solid #564F8A}.ui.teal.dividing.header{border-bottom:3px solid #00B5AD}.ui.inverted.header{color:#FFF}.ui.inverted.header .sub.header{color:rgba(255,255,255,.85)}.ui.inverted.black.header{background-color:#5C6166!important;color:#FFF!important}.ui.inverted.blue.header{background-color:#6ECFF5!important;color:#FFF!important}.ui.inverted.green.header{background-color:#A1CF64!important;color:#FFF!important}.ui.inverted.red.header{background-color:#D95C5C!important;color:#FFF!important}.ui.inverted.purple.header{background-color:#564F8A!important;color:#FFF!important}.ui.inverted.teal.header{background-color:#00B5AD!important;color:#FFF!important}.ui.inverted.block.header{border-bottom:0}.ui.left.aligned.header{text-align:right}.ui.right.aligned.header{text-align:left}.ui.center.aligned.header{text-align:center}.ui.justified.header{text-align:justify}.ui.justified.header:after{display:inline-block;content:'';width:100%}.ui.floated.header,.ui.left.floated.header{float:right;margin-top:0;margin-left:.5em}.ui.right.floated.header{float:left;margin-top:0;margin-right:.5em}.ui.fitted.header{padding:0}.ui.dividing.header{padding-bottom:.2rem;border-bottom:1px solid rgba(0,0,0,.1)}.ui.dividing.header .sub.header{padding-bottom:.5em}.ui.dividing.header .icon{margin-bottom:.2em}.ui.block.header{background-color:rgba(0,0,0,.05);padding:.5em 1em}.ui.attached.header{background-color:#E0E0E0;padding:.5em 1rem;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1)}.ui.top.attached.header{margin-bottom:0;border-radius:.3125em .3125em 0}.ui.bottom.attached.header{margin-top:0 0;border-radius:0 0 .3125em}@font-face{font-family:Icons .3125em;src:url(../fonts/icons.eot);src:url(../fonts/icons.eot?#iefix) format('embedded-opentype'),url(../fonts/icons.svg#icons) format('svg'),url(../fonts/icons.woff) format('woff'),url(../fonts/icons.ttf) format('truetype');font-style:normal;font-weight:400;font-variant:normal;text-decoration:inherit;text-transform:none}i.icon{display:inline-block;opacity:.75;margin:0 0 0 .25em;width:1.23em;height:1em;font-family:Icons;font-style:normal;line-height:1;font-weight:400;text-decoration:inherit;text-align:center;speak:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}i.icon.left:before{content:"\f060"}i.icon.right:before{content:"\f061"}i.icon.add.sign.box:before{content:"\f0fe"}i.icon.add.sign:before{content:"\f055"}i.icon.add:before{content:"\f067"}i.icon.adjust:before{content:"\f042"}i.icon.adn:before{content:"\f170"}i.icon.align.center:before{content:"\f037"}i.icon.align.justify:before{content:"\f039"}i.icon.align.left:before{content:"\f036"}i.icon.align.right:before{content:"\f038"}i.icon.ambulance:before{content:"\f0f9"}i.icon.anchor:before{content:"\f13d"}i.icon.android:before{content:"\f17b"}i.icon.angle.down:before{content:"\f107"}i.icon.angle.left:before{content:"\f104"}i.icon.angle.right:before{content:"\f105"}i.icon.angle.up:before{content:"\f106"}i.icon.apple:before{content:"\f179"}i.icon.archive:before{content:"\f187"}i.icon.arrow.down:before{content:"\f078"}i.icon.arrow.left:before{content:"\f053"}i.icon.arrow.right:before{content:"\f054"}i.icon.arrow.sign.down:before{content:"\f13a"}i.icon.arrow.sign.left:before{content:"\f137"}i.icon.arrow.sign.right:before{content:"\f138"}i.icon.arrow.sign.up:before{content:"\f139"}i.icon.arrow.up:before{content:"\f077"}i.icon.asterisk:before{content:"\f069"}i.icon.attachment:before{content:"\f0c6"}i.icon.attention:before{content:"\f06a"}i.icon.backward:before{content:"\f04a"}i.icon.ban.circle:before{content:"\f05e"}i.icon.bar.chart:before{content:"\f080"}i.icon.barcode:before{content:"\f02a"}i.icon.beer:before{content:"\f0fc"}i.icon.bell.outline:before{content:"\f0a2"}i.icon.bell:before{content:"\f0f3"}i.icon.bitbucket.sign:before{content:"\f172"}i.icon.bitbucket:before{content:"\f171"}i.icon.bitcoin:before{content:"\f15a"}i.icon.bold:before{content:"\f032"}i.icon.bolt:before{content:"\f0e7"}i.icon.book:before{content:"\f02d"}i.icon.bookmark.empty:before{content:"\f097"}i.icon.bookmark:before{content:"\f02e"}i.icon.box.arrow.down:before{content:"\f150"}i.icon.box.arrow.right:before{content:"\f152"}i.icon.box.arrow.up:before{content:"\f151"}i.icon.briefcase:before{content:"\f0b1"}i.icon.browser:before{content:"\f022"}i.icon.bug:before{content:"\f188"}i.icon.building:before{content:"\f0f7"}i.icon.bullhorn:before{content:"\f0a1"}i.icon.bullseye:before{content:"\f140"}i.icon.calendar.empty:before{content:"\f133"}i.icon.calendar:before{content:"\f073"}i.icon.camera.retro:before{content:"\f083"}i.icon.camera:before{content:"\f030"}i.icon.triangle.down:before{content:"\f0d7"}i.icon.triangle.left:before{content:"\f0d9"}i.icon.triangle.right:before{content:"\f0da"}i.icon.triangle.up:before{content:"\f0d8"}i.icon.cart:before{content:"\f07a"}i.icon.certificate:before{content:"\f0a3"}i.icon.chat.outline:before{content:"\f0e6"}i.icon.chat:before{content:"\f086"}i.icon.checkbox.empty:before{content:"\f096"}i.icon.checkbox.minus:before{content:"\f147"}i.icon.checked.checkbox:before{content:"\f046"}i.icon.checkmark.sign:before{content:"\f14a"}i.icon.checkmark:before{content:"\f00c"}i.icon.circle.blank:before{content:"\f10c"}i.icon.circle.down:before{content:"\f0ab"}i.icon.circle.left:before{content:"\f0a8"}i.icon.circle.right:before{content:"\f0a9"}i.icon.circle.up:before{content:"\f0aa"}i.icon.circle:before{content:"\f111"}i.icon.cloud.download:before{content:"\f0ed"}i.icon.cloud.upload:before{content:"\f0ee"}i.icon.cloud:before{content:"\f0c2"}i.icon.code.fork:before{content:"\f126"}i.icon.code:before{content:"\f121"}i.icon.coffee:before{content:"\f0f4"}i.icon.collapse:before{content:"\f117"}i.icon.comment.outline:before{content:"\f0e5"}i.icon.comment:before{content:"\f075"}i.icon.copy:before{content:"\f0c5"}i.icon.crop:before{content:"\f125"}i.icon.css3:before{content:"\f13c"}i.icon.cut:before{content:"\f0c4"}i.icon.dashboard:before{content:"\f0e4"}i.icon.desktop:before{content:"\f108"}i.icon.doctor:before{content:"\f0f0"}i.icon.dollar:before{content:"\f155"}i.icon.double.angle.down:before{content:"\f103"}i.icon.double.angle.left:before{content:"\f100"}i.icon.double.angle.right:before{content:"\f101"}i.icon.double.angle.up:before{content:"\f102"}i.icon.down:before{content:"\f063"}i.icon.download.disk:before{content:"\f019"}i.icon.download:before{content:"\f01a"}i.icon.dribbble:before{content:"\f17d"}i.icon.dropbox:before{content:"\f16b"}i.icon.edit.sign:before{content:"\f14b"}i.icon.edit:before{content:"\f044"}i.icon.eject:before{content:"\f052"}i.icon.ellipsis.horizontal:before{content:"\f141"}i.icon.ellipsis.vertical:before{content:"\f142"}i.icon.eraser:before{content:"\f12d"}i.icon.euro:before{content:"\f153"}i.icon.exchange:before{content:"\f0ec"}i.icon.exclamation:before{content:"\f12a"}i.icon.expand:before{content:"\f116"}i.icon.external.url.sign:before{content:"\f14c"}i.icon.external.url:before{content:"\f08e"}i.icon.facebook.sign:before{content:"\f082"}i.icon.facebook:before{content:"\f09a"}i.icon.facetime.video:before{content:"\f03d"}i.icon.fast.backward:before{content:"\f049"}i.icon.fast.forward:before{content:"\f050"}i.icon.female:before{content:"\f182"}i.icon.fighter.jet:before{content:"\f0fb"}i.icon.file.outline:before{content:"\f016"}i.icon.file.text.outline:before{content:"\f0f6"}i.icon.file.text:before{content:"\f15c"}i.icon.file:before{content:"\f15b"}i.icon.filter:before{content:"\f0b0"}i.icon.fire.extinguisher:before{content:"\f134"}i.icon.fire:before{content:"\f06d"}i.icon.flag.checkered:before{content:"\f11e"}i.icon.flag.empty:before{content:"\f11d"}i.icon.flag:before{content:"\f024"}i.icon.flickr:before{content:"\f16e"}i.icon.folder.open.outline:before{content:"\f115"}i.icon.folder.open:before{content:"\f07c"}i.icon.folder.outline:before{content:"\f114"}i.icon.folder:before{content:"\f07b"}i.icon.font:before{content:"\f031"}i.icon.food:before{content:"\f0f5"}i.icon.forward.mail:before{content:"\f064"}i.icon.forward:before{content:"\f04e"}i.icon.foursquare:before{content:"\f180"}i.icon.frown:before{content:"\f119"}i.icon.fullscreen:before{content:"\f0b2"}i.icon.gamepad:before{content:"\f11b"}i.icon.gift:before{content:"\f06b"}i.icon.github.alternate:before{content:"\f09b"}i.icon.github.sign:before{content:"\f092"}i.icon.github:before{content:"\f113"}i.icon.gittip:before{content:"\f184"}i.icon.glass:before{content:"\f000"}i.icon.globe:before{content:"\f0ac"}i.icon.google.plus.sign:before{content:"\f0d4"}i.icon.google.plus:before{content:"\f0d5"}i.icon.h.sign:before{content:"\f0fd"}i.icon.hand.down:before{content:"\f0a7"}i.icon.hand.left:before{content:"\f0a5"}i.icon.hand.right:before{content:"\f0a4"}i.icon.hand.up:before{content:"\f0a6"}i.icon.hdd:before{content:"\f0a0"}i.icon.headphones:before{content:"\f025"}i.icon.heart.empty:before{content:"\f08a"}i.icon.heart:before{content:"\f004"}i.icon.help:before{content:"\f059"}i.icon.hide:before{content:"\f070"}i.icon.home:before{content:"\f015"}i.icon.hospital:before{content:"\f0f8"}i.icon.html5:before{content:"\f13b"}i.icon.inbox:before{content:"\f01c"}i.icon.indent.left:before{content:"\f03b"}i.icon.indent.right:before{content:"\f03c"}i.icon.info.letter:before{content:"\f129"}i.icon.info:before{content:"\f05a"}i.icon.instagram:before{content:"\f16d"}i.icon.italic:before{content:"\f033"}i.icon.key:before{content:"\f084"}i.icon.keyboard:before{content:"\f11c"}i.icon.lab:before{content:"\f0c3"}i.icon.laptop:before{content:"\f109"}i.icon.layout.block:before{content:"\f009"}i.icon.layout.column:before{content:"\f0db"}i.icon.layout.grid:before{content:"\f00a"}i.icon.layout.list:before{content:"\f00b"}i.icon.leaf:before{content:"\f06c"}i.icon.legal:before{content:"\f0e3"}i.icon.lemon:before{content:"\f094"}i.icon.level.down:before{content:"\f149"}i.icon.level.up:before{content:"\f148"}i.icon.lightbulb:before{content:"\f0eb"}i.icon.linkedin.sign:before{content:"\f08c"}i.icon.linkedin:before{content:"\f0e1"}i.icon.linux:before{content:"\f17c"}i.icon.list.ordered:before{content:"\f0cb"}i.icon.list.unordered:before{content:"\f0ca"}i.icon.list:before{content:"\f03a"}i.icon.loading:before{content:"\f110"}i.icon.location:before{content:"\f124"}i.icon.lock:before{content:"\f023"}i.icon.long.arrow.down:before{content:"\f175"}i.icon.long.arrow.left:before{content:"\f177"}i.icon.long.arrow.right:before{content:"\f178"}i.icon.long.arrow.up:before{content:"\f176"}i.icon.magic:before{content:"\f0d0"}i.icon.magnet:before{content:"\f076"}i.icon.mail.outline:before{content:"\f003"}i.icon.mail.reply:before{content:"\f112"}i.icon.mail:before{content:"\f0e0"}i.icon.male:before{content:"\f183"}i.icon.map.marker:before{content:"\f041"}i.icon.map:before{content:"\f14e"}i.icon.maxcdn:before{content:"\f136"}i.icon.medkit:before{content:"\f0fa"}i.icon.meh:before{content:"\f11a"}i.icon.minus.sign.alternate:before{content:"\f146"}i.icon.minus.sign:before{content:"\f056"}i.icon.minus:before{content:"\f068"}i.icon.mobile:before{content:"\f10b"}i.icon.money:before{content:"\f0d6"}i.icon.moon:before{content:"\f186"}i.icon.move:before{content:"\f047"}i.icon.music:before{content:"\f001"}i.icon.mute:before{content:"\f131"}i.icon.off:before{content:"\f011"}i.icon.ok.circle:before{content:"\f05d"}i.icon.ok.sign:before{content:"\f058"}i.icon.paste:before{content:"\f0ea"}i.icon.pause:before{content:"\f04c"}i.icon.payment:before{content:"\f09d"}i.icon.pencil:before{content:"\f040"}i.icon.phone.sign:before{content:"\f098"}i.icon.phone:before{content:"\f095"}i.icon.photo:before{content:"\f03e"}i.icon.pin:before{content:"\f08d"}i.icon.pinterest.sign:before{content:"\f0d3"}i.icon.pinterest:before{content:"\f0d2"}i.icon.plane:before{content:"\f072"}i.icon.play.circle:before{content:"\f01d"}i.icon.play.sign:before{content:"\f144"}i.icon.play:before{content:"\f04b"}i.icon.pound:before{content:"\f154"}i.icon.print:before{content:"\f02f"}i.icon.puzzle.piece:before{content:"\f12e"}i.icon.qr.code:before{content:"\f029"}i.icon.question:before{content:"\f128"}i.icon.quote.left:before{content:"\f10d"}i.icon.quote.right:before{content:"\f10e"}i.icon.refresh:before{content:"\f021"}i.icon.remove.circle:before{content:"\f05c"}i.icon.remove.sign:before{content:"\f057"}i.icon.remove:before{content:"\f00d"}i.icon.renren:before{content:"\f18b"}i.icon.reorder:before{content:"\f0c9"}i.icon.repeat:before{content:"\f01e"}i.icon.reply.all.mail:before{content:"\f122"}i.icon.resize.full:before{content:"\f065"}i.icon.resize.horizontal:before{content:"\f07e"}i.icon.resize.small:before{content:"\f066"}i.icon.resize.vertical:before{content:"\f07d"}i.icon.retweet:before{content:"\f079"}i.icon.road:before{content:"\f018"}i.icon.rocket:before{content:"\f135"}i.icon.rss.sign:before{content:"\f143"}i.icon.rss:before{content:"\f09e"}i.icon.rupee:before{content:"\f156"}i.icon.save:before{content:"\f0c7"}i.icon.screenshot:before{content:"\f05b"}i.icon.search:before{content:"\f002"}i.icon.setting:before{content:"\f013"}i.icon.settings:before{content:"\f085"}i.icon.share.sign:before{content:"\f14d"}i.icon.share:before{content:"\f045"}i.icon.shield:before{content:"\f132"}i.icon.shuffle:before{content:"\f074"}i.icon.sign.in:before{content:"\f090"}i.icon.sign.out:before{content:"\f08b"}i.icon.sign:before{content:"\f0c8"}i.icon.signal:before{content:"\f012"}i.icon.sitemap:before{content:"\f0e8"}i.icon.skype:before{content:"\f17e"}i.icon.smile:before{content:"\f118"}i.icon.sort.ascending:before{content:"\f0de"}i.icon.sort.descending:before{content:"\f0dd"}i.icon.sort.alphabet.descending:before{content:"\f15e"}i.icon.sort.alphabet:before{content:"\f15d"}i.icon.sort.attributes.descending:before{content:"\f161"}i.icon.sort.attributes:before{content:"\f160"}i.icon.sort.order.descending:before{content:"\f163"}i.icon.sort.order:before{content:"\f162"}i.icon.sort:before{content:"\f0dc"}i.icon.stackexchange:before{content:"\f16c"}i.icon.star.empty:before{content:"\f006"}i.icon.star.half.empty:before{content:"\f123"}i.icon.star.half.full:before,i.icon.star.half:before{content:"\f089"}i.icon.star:before{content:"\f005"}i.icon.step.backward:before{content:"\f048"}i.icon.step.forward:before{content:"\f051"}i.icon.stethoscope:before{content:"\f0f1"}i.icon.stop:before{content:"\f04d"}i.icon.strikethrough:before{content:"\f0cc"}i.icon.subscript:before{content:"\f12c"}i.icon.suitcase:before{content:"\f0f2"}i.icon.sun:before{content:"\f185"}i.icon.superscript:before{content:"\f12b"}i.icon.table:before{content:"\f0ce"}i.icon.tablet:before{content:"\f10a"}i.icon.tag:before{content:"\f02b"}i.icon.tags:before{content:"\f02c"}i.icon.tasks:before{content:"\f0ae"}i.icon.terminal:before{content:"\f120"}i.icon.text.height:before{content:"\f034"}i.icon.text.width:before{content:"\f035"}i.icon.thumbs.down.outline:before{content:"\f088"}i.icon.thumbs.down:before{content:"\f165"}i.icon.thumbs.up.outline:before{content:"\f087"}i.icon.thumbs.up:before{content:"\f164"}i.icon.ticket:before{content:"\f145"}i.icon.time:before{content:"\f017"}i.icon.tint:before{content:"\f043"}i.icon.trash:before{content:"\f014"}i.icon.trello:before{content:"\f181"}i.icon.trophy:before{content:"\f091"}i.icon.truck:before{content:"\f0d1"}i.icon.tumblr.sign:before{content:"\f174"}i.icon.tumblr:before{content:"\f173"}i.icon.twitter.sign:before{content:"\f081"}i.icon.twitter:before{content:"\f099"}i.icon.umbrella:before{content:"\f0e9"}i.icon.underline:before{content:"\f0cd"}i.icon.undo:before{content:"\f0e2"}i.icon.unhide:before{content:"\f06e"}i.icon.unlink:before{content:"\f127"}i.icon.unlock.alternate:before{content:"\f13e"}i.icon.unlock:before{content:"\f09c"}i.icon.unmute:before{content:"\f130"}i.icon.up:before{content:"\f062"}i.icon.upload.disk:before{content:"\f093"}i.icon.upload:before{content:"\f01b"}i.icon.url:before{content:"\f0c1"}i.icon.user:before{content:"\f007"}i.icon.users:before{content:"\f0c0"}i.icon.video:before{content:"\f008"}i.icon.vk:before{content:"\f189"}i.icon.volume.down:before{content:"\f027"}i.icon.volume.off:before{content:"\f026"}i.icon.volume.up:before{content:"\f028"}i.icon.warning:before{content:"\f071"}i.icon.weibo:before{content:"\f18a"}i.icon.windows:before{content:"\f17a"}i.icon.won:before{content:"\f159"}i.icon.wrench:before{content:"\f0ad"}i.icon.xing.sign:before{content:"\f169"}i.icon.xing:before{content:"\f168"}i.icon.yen:before{content:"\f157"}i.icon.youtube.play:before{content:"\f16a"}i.icon.youtube.sign:before{content:"\f166"}i.icon.youtube:before{content:"\f167"}i.icon.yuan:before{content:"\f158"}i.icon.zoom.in:before{content:"\f00e"}i.icon.zoom.out:before{content:"\f010"}i.icon.check:before{content:"\f00c"}i.icon.close:before{content:"\f00d"}i.icon.delete:before{content:"\f00d"}i.icon.like:before{content:"\f004"}i.icon.plus:before{content:"\f067"}i.icon.signup:before{content:"\f044"}i.icon.star{width:auto;margin:0}i.icon.left{width:auto;margin:0 0 0 .5em}i.icon.search,i.icon.right{width:auto;margin:0 .5em 0 0}i.icon.loading{-webkit-animation:icon-loading 2s linear infinite;-moz-animation:icon-loading 2s linear infinite;-ms-animation:icon-loading 2s linear infinite;animation:icon-loading 2s linear infinite}@keyframes icon-loading{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes icon-loading{from{-moz-transform:rotate(0deg);transform:rotate(0deg)}to{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes icon-loading{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes icon-loading{from{-ms-transform:rotate(0deg);transform:rotate(0deg)}to{-ms-transform:rotate(360deg);transform:rotate(360deg)}}i.icon.hover{opacity:1}i.icon.active{opacity:1}i.emphasized.icon{opacity:1}i.icon.disabled{opacity:.3}i.link.icon{cursor:pointer;opacity:.7;-webkit-transition:opacity .3s ease-out;-moz-transition:opacity .3s ease-out;transition:opacity .3s ease-out}i.link.icon:hover{opacity:1!important}i.circular.icon{border-radius:500em!important;padding:.5em .35em!important;-webkit-box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;line-height:1!important;width:2em!important;height:2em!important}i.circular.inverted.icon{border:0;-webkit-box-shadow:none;box-shadow:none}i.flipped.icon,i.horizontally.flipped.icon{-webkit-transform:scale(-1,1);-moz-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}i.vertically.flipped.icon{-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}i.rotated.icon,i.right.rotated.icon,i.clockwise.rotated.icon{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}i.left.rotated.icon,i.counterclockwise.rotated.icon{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}i.square.icon{width:2em;height:2em;padding:.5em .35em!important;-webkit-box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;box-shadow:0 0 0 .1em rgba(0,0,0,.1) inset;vertical-align:baseline}i.square.inverted.icon{border:0;-webkit-box-shadow:none;box-shadow:none}i.inverted.icon{background-color:#222;color:#FFF;-moz-osx-font-smoothing:grayscale}i.blue.icon{color:#6ECFF5!important}i.black.icon{color:#5C6166!important}i.green.icon{color:#A1CF64!important}i.red.icon{color:#D95C5C!important}i.purple.icon{color:#564F8A!important}i.orange.icon{color:#F05940!important}i.teal.icon{color:#00B5AD!important}i.inverted.black.icon{background-color:#5C6166!important;color:#FFF!important}i.inverted.blue.icon{background-color:#6ECFF5!important;color:#FFF!important}i.inverted.green.icon{background-color:#A1CF64!important;color:#FFF!important}i.inverted.red.icon{background-color:#D95C5C!important;color:#FFF!important}i.inverted.purple.icon{background-color:#564F8A!important;color:#FFF!important}i.inverted.orange.icon{background-color:#F05940!important;color:#FFF!important}i.inverted.teal.icon{background-color:#00B5AD!important;color:#FFF!important}i.small.icon{font-size:.875em}i.icon{font-size:1em}i.large.icon{font-size:1.5em;vertical-align:middle}i.big.icon{font-size:2em;vertical-align:middle}i.huge.icon{font-size:4em;vertical-align:middle}i.massive.icon{font-size:8em;vertical-align:middle}.ui.image{position:relative;display:inline-block;vertical-align:middle;max-width:100%;background-color:rgba(0,0,0,.05)}img.ui.image{display:block;background:0 0}.ui.image img{display:block;max-width:100%;height:auto}.ui.disabled.image{cursor:default;opacity:.3}.ui.rounded.images .image,.ui.rounded.images img,.ui.rounded.image img,.ui.rounded.image{border-radius:.3125em}.ui.circular.images .image,.ui.circular.images img,.ui.circular.image img,.ui.circular.image{border-radius:500rem}.ui.fluid.images,.ui.fluid.image,.ui.fluid.images img,.ui.fluid.image img{display:block;width:100%}.ui.avatar.images .image,.ui.avatar.images img,.ui.avatar.image img,.ui.avatar.image{margin-left:.5em;display:inline-block;width:2em;height:2em;border-radius:500rem}.ui.floated.image,.ui.floated.images{float:right;margin-left:1em;margin-bottom:1em}.ui.right.floated.images,.ui.right.floated.image{float:left;margin-bottom:1em;margin-right:1em}.ui.tiny.images .image,.ui.tiny.images img,.ui.tiny.image{width:20px;font-size:.7rem}.ui.mini.images .image,.ui.mini.images img,.ui.mini.image{width:35px;font-size:.8rem}.ui.small.images .image,.ui.small.images img,.ui.small.image{width:80px;font-size:.9rem}.ui.medium.images .image,.ui.medium.images img,.ui.medium.image{width:300px;font-size:1rem}.ui.large.images .image,.ui.large.images img,.ui.large.image{width:450px;font-size:1.1rem}.ui.huge.images .image,.ui.huge.images img,.ui.huge.image{width:600px;font-size:1.2rem}.ui.images{font-size:0;margin:0 -.25rem 0rem}.ui.images .image,.ui.images img{display:inline-block;margin:0 .25em .5em}.ui.input{display:inline-block;position:relative;color:rgba(0,0,0,.7)}.ui.input input{width:100%;font-family:"Helvetica Neue",Helvetica,Arial;margin:0;padding:.65em 1em;font-size:1em;background-color:#FFF;border:1px solid rgba(0,0,0,.15);outline:0;color:rgba(0,0,0,.7);border-radius:.3125em;-webkit-transition:background-color .3s ease-out,-webkit-box-shadow .2s ease,border-color .2s ease;-moz-transition:background-color .3s ease-out,box-shadow .2s ease,border-color .2s ease;transition:background-color .3s ease-out,box-shadow .2s ease,border-color .2s ease;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.input::-webkit-input-placeholder{color:#BBB}.ui.input::-moz-placeholder{color:#BBB}.ui.input input:active,.ui.input.down input{border-color:rgba(0,0,0,.3);background-color:#FAFAFA}.ui.loading.input>.icon{background:url(../images/loader-mini.gif) no-repeat 50% 50%}.ui.loading.input>.icon:before,.ui.loading.input>.icon:after{display:none}.ui.input.focus input,.ui.input input:focus{border-color:rgba(0,0,0,.2);color:rgba(0,0,0,.85)}.ui.input.focus input input::-webkit-input-placeholder,.ui.input input:focus input::-webkit-input-placeholder{color:#AAA}.ui.input.focus input input::-moz-placeholder,.ui.input input:focus input::-moz-placeholder{color:#AAA}.ui.input.error input{background-color:snow;border-color:#E7BEBE;color:#D95C5C}.ui.input.error input ::-webkit-input-placeholder{color:rgba(255,80,80,.4)}.ui.input.error input ::-moz-placeholder{color:rgba(255,80,80,.4)}.ui.input.error input :focus::-webkit-input-placeholder{color:rgba(255,80,80,.7)}.ui.input.error input :focus::-moz-placeholder{color:rgba(255,80,80,.7)}.ui.transparent.input input{border:0;background-color:transparent}.ui.icon.input>.icon{cursor:default;position:absolute;opacity:.5;top:0;left:0;margin:0;width:2.6em;height:100%;padding-top:.82em;text-align:center;border-radius:.3125em 0 0 .3125em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:opacity .3s ease-out;-moz-transition:opacity .3s ease-out;transition:opacity .3s ease-out}.ui.icon.input>.link.icon{cursor:pointer}.ui.icon.input input{padding-left:3em!important}.ui.icon.input>.circular.icon{top:.35em;left:.5em}.ui.left.icon.input>.icon{left:auto;right:1px;border-radius:0 .3125em .3125em}.ui.left.icon.input>.circular.icon{left:auto 0;right:.5em}.ui.left.icon.input>input{padding-right:3em!important;padding-left:1.2em!important}.ui.icon.input>input:focus~.icon{opacity:1}.ui.labeled.input .corner.label{font-size:.7em;border-radius:0 .3125em}.ui.labeled.input .left.corner.label{border-radius:.3125em 0}.ui.labeled.input input{padding-left:2.5em!important}.ui.labeled.icon.input:not(.left)>input{padding-left:3.25em!important}.ui.labeled.icon.input:not(.left)>.icon{margin-left:1.25em}.ui.action.input{display:table}.ui.action.input>input{display:table-cell;border-top-left-radius:0!important;border-bottom-left-radius:0!important;border-left:0}.ui.action.input>.button,.ui.action.input>.buttons{display:table-cell;border-top-right-radius:0;border-bottom-right-radius:0;white-space:nowrap}.ui.action.input>.button>.icon,.ui.action.input>.buttons>.button>.icon{display:inline;vertical-align:top}.ui.fluid.action.input{display:table;width:100%}.ui.fluid.action.input>.button{width:.01%}.ui.fluid.input{display:block}.ui.mini.input{font-size:.8125em}.ui.small.input{font-size:.875em}.ui.input{font-size:1em}.ui.large.input{font-size:1.125em}.ui.big.input{font-size:1.25em}.ui.huge.input{font-size:1.375em}.ui.massive.input{font-size:1.5em}.ui.label{display:inline-block;vertical-align:middle;margin:-.25em .25em 0;background-color:#E8E8E8;border-color:#E8E8E8;padding:.5em .8em;color:rgba(0,0,0,.65);text-transform:uppercase;font-weight:400;border-radius:.325em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:background .1s linear;-moz-transition:background .1s linear;transition:background .1s linear}.ui.label:first-child{margin-right:0}.ui.label:last-child{margin-left:0}a.ui.label{cursor:pointer}.ui.label a{cursor:pointer;color:inherit;opacity:.8;-webkit-transition:.2s opacity ease;-moz-transition:.2s opacity ease;transition:.2s opacity ease}.ui.label a:hover{opacity:1}.ui.label .detail{display:inline-block;margin-right:.5em;font-weight:700;opacity:.8}.ui.label .icon{width:auto}.ui.label .delete.icon{cursor:pointer;margin:0 .5em 0 0;opacity:.7;-webkit-transition:background .1s linear;-moz-transition:background .1s linear;transition:background .1s linear}.ui.label .delete.icon:hover{opacity:.99}.ui.segment>.attached.label:first-child+*{margin-top:2.5em}.ui.segment>.bottom.attached.label:first-child~:last-child{margin-top:0;margin-bottom:2.5em}.ui.image.label{width:auto!important;margin-top:0;margin-bottom:0;padding-top:.4em;padding-bottom:.4em;line-height:1.5em;vertical-align:baseline;text-transform:none;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset}.ui.image.label img{display:inline-block;height:2.25em;margin:-.4em -.8em -.4em .8em;vertical-align:top;border-radius:.325em 0 0 .325em}.ui.label.disabled{opacity:.5}a.ui.labels .label:hover,a.ui.label:hover{background-color:#E0E0E0;border-color:#E0E0E0;color:rgba(0,0,0,.7)}.ui.labels a.label:hover:before,a.ui.label:hover:before{background-color:#E0E0E0;color:rgba(0,0,0,.7)}.ui.labels.visible .label,.ui.label.visible{display:inline-block!important}.ui.labels.hidden .label,.ui.label.hidden{display:none!important}.ui.tag.labels .label,.ui.tag.label{margin-right:1em;position:relative;padding:.33em 1.4em .33em 1.3em;border-radius:0 3px 3px 0}.ui.tag.labels .label:before,.ui.tag.label:before{position:absolute;top:.3em;right:.3em;content:'';margin-right:-1em;background-image:none;width:1.5em;height:1.5em;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);-webkit-transition:background .1s linear;-moz-transition:background .1s linear;transition:background .1s linear}.ui.tag.labels .label:after,.ui.tag.label:after{position:absolute;content:'';top:50%;right:-.25em;margin-top:-.3em;background-color:#FFF;width:.55em;height:.55em;-webkit-box-shadow:0 -1px 1px 0 rgba(0,0,0,.3);box-shadow:0 -1px 1px 0 rgba(0,0,0,.3);border-radius:100px}.ui.ribbon.label{position:relative;margin:0 .2em;right:-2rem;padding-right:2rem;border-radius:4px 0 0 4px;border-color:rgba(0,0,0,.15)}.ui.ribbon.label:after{position:absolute;content:"";top:100%;right:0;border-top:0 solid transparent;border-left-width:1em;border-left-color:inherit;border-left-style:solid;border-bottom:1em solid transparent;border-right:0 solid transparent;width:0;height:0}.ui.top.attached.label,.ui.attached.label{width:100%;position:absolute;margin:0;top:0;right:0;padding:.75em 1em;border-radius:4px 4px 0}.ui.bottom.attached.label{top:auto 0;bottom:0;border-radius:0 0 4px}.ui.top.left.attached.label{width:auto 4px;margin-top:0!important;border-radius:0}.ui.top.right.attached.label{width:auto 4px;right:auto;left:0;border-radius:4px}.ui.bottom.left.attached.label{width:auto 0;top:auto;bottom:0;border-radius:0 4px 4px}.ui.bottom.right.attached.label{top:auto 0;bottom:0;right:auto;left:0;width:auto;border-radius:0}.ui.corner.label{background-color:transparent 4px;position:absolute;top:0;left:0;z-index:10;margin:0;width:3em;height:3em;padding:0;text-align:center;-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.ui.corner.label:after{position:absolute;content:"";left:0;top:0;z-index:-1;width:0;height:0;border-top:0 solid transparent;border-left:3em solid transparent;border-bottom:3em solid transparent;border-right:0 solid transparent;border-left-color:inherit;-webkit-transition:border-color .2s ease;-moz-transition:border-color .2s ease;transition:border-color .2s ease}.ui.corner.label .icon{font-size:.875em;margin:.5em 1.25em 0 0}.ui.corner.label .text{display:inline-block;font-weight:700;margin:.5em 1em 0 0;width:2.5em;font-size:.875em;text-align:center;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.ui.rounded.image>.ui.corner.label,.ui.input>.ui.corner.label,.ui.segment>.ui.corner.label{overflow:hidden}.ui.segment>.ui.corner.label{top:-1px;left:-1px}.ui.segment>.ui.left.corner.label{left:auto;right:-1px}.ui.input>.ui.corner.label{top:1px;left:1px}.ui.input>.ui.right.corner.label{left:auto;right:1px}.ui.left.corner.label,.ui.left.corner.label:after{left:auto;right:0}.ui.left.corner.label:after{border-top:3em solid transparent;border-left:3em solid transparent;border-bottom:0 solid transparent;border-right:0 solid transparent;border-top-color:inherit}.ui.left.corner.label .icon{margin:.5em -1em 0 0}.ui.left.corner.label .text{margin:.5em -1em 0 0;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.ui.corner.label:hover{background-color:transparent}.ui.label.fluid,.ui.fluid.labels>.label{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.inverted.labels .label,.ui.inverted.label{color:#FFF!important}.ui.black.labels .label,.ui.black.label{background-color:#5C6166!important;border-color:#5C6166!important;color:#FFF!important}.ui.labels .black.label:before,.ui.black.labels .label:before,.ui.black.label:before{background-color:#5C6166!important}a.ui.black.labels .label:hover,a.ui.black.label:hover{background-color:#333!important;border-color:#333!important}.ui.labels a.black.label:hover:before,.ui.black.labels a.label:hover:before,a.ui.black.label:hover:before{background-color:#333!important}.ui.black.corner.label,.ui.black.corner.label:hover{background-color:transparent!important}.ui.black.ribbon.label{border-color:#333!important}.ui.green.labels .label,.ui.green.label{background-color:#A1CF64!important;border-color:#A1CF64!important;color:#FFF!important}.ui.labels .green.label:before,.ui.green.labels .label:before,.ui.green.label:before{background-color:#A1CF64!important}a.ui.green.labels .label:hover,a.ui.green.label:hover{background-color:#89B84C!important;border-color:#89B84C!important}.ui.labels a.green.label:hover:before,.ui.green.labels a.label:hover:before,a.ui.green.label:hover:before{background-color:#89B84C!important}.ui.green.corner.label,.ui.green.corner.label:hover{background-color:transparent!important}.ui.green.ribbon.label{border-color:#89B84C!important}.ui.red.labels .label,.ui.red.label{background-color:#D95C5C!important;border-color:#D95C5C!important;color:#FFF!important}.ui.labels .red.label:before,.ui.red.labels .label:before,.ui.red.label:before{background-color:#D95C5C!important}.ui.red.corner.label,.ui.red.corner.label:hover{background-color:transparent!important}a.ui.red.labels .label:hover,a.ui.red.label:hover{background-color:#DE3859!important;border-color:#DE3859!important;color:#FFF!important}.ui.labels a.red.label:hover:before,.ui.red.labels a.label:hover:before,a.ui.red.label:hover:before{background-color:#DE3859!important}.ui.red.ribbon.label{border-color:#DE3859!important}.ui.blue.labels .label,.ui.blue.label{background-color:#6ECFF5!important;border-color:#6ECFF5!important;color:#FFF!important}.ui.labels .blue.label:before,.ui.blue.labels .label:before,.ui.blue.label:before{background-color:#6ECFF5!important}a.ui.blue.labels .label:hover,.ui.blue.labels a.label:hover,a.ui.blue.label:hover{background-color:#1AB8F3!important;border-color:#1AB8F3!important;color:#FFF!important}.ui.labels a.blue.label:hover:before,.ui.blue.labels a.label:hover:before,a.ui.blue.label:hover:before{background-color:#1AB8F3!important}.ui.blue.corner.label,.ui.blue.corner.label:hover{background-color:transparent!important}.ui.blue.ribbon.label{border-color:#1AB8F3!important}.ui.purple.labels .label,.ui.purple.label{background-color:#564F8A!important;border-color:#564F8A!important;color:#FFF!important}.ui.labels .purple.label:before,.ui.purple.labels .label:before,.ui.purple.label:before{background-color:#564F8A!important}a.ui.purple.labels .label:hover,.ui.purple.labels a.label:hover,a.ui.purple.label:hover{background-color:#3E3773!important;border-color:#3E3773!important;color:#FFF!important}.ui.labels a.purple.label:hover:before,.ui.purple.labels a.label:hover:before,a.ui.purple.label:hover:before{background-color:#3E3773!important}.ui.purple.corner.label,.ui.purple.corner.label:hover{background-color:transparent!important}.ui.purple.ribbon.label{border-color:#3E3773!important}.ui.orange.labels .label,.ui.orange.label{background-color:#F05940!important;border-color:#F05940!important;color:#FFF!important}.ui.labels .orange.label:before,.ui.orange.labels .label:before,.ui.orange.label:before{background-color:#F05940!important}a.ui.orange.labels .label:hover,.ui.orange.labels a.label:hover,a.ui.orange.label:hover{background-color:#FF4121!important;border-color:#FF4121!important;color:#FFF!important}.ui.labels a.orange.label:hover:before,.ui.orange.labels a.label:hover:before,a.ui.orange.label:hover:before{background-color:#FF4121!important}.ui.orange.corner.label,.ui.orange.corner.label:hover{background-color:transparent!important}.ui.orange.ribbon.label{border-color:#FF4121!important}.ui.teal.labels .label,.ui.teal.label{background-color:#00B5AD!important;border-color:#00B5AD!important;color:#FFF!important}.ui.labels .teal.label:before,.ui.teal.labels .label:before,.ui.teal.label:before{background-color:#00B5AD!important}a.ui.teal.labels .label:hover,.ui.teal.labels a.label:hover,a.ui.teal.label:hover{background-color:#009A93!important;border-color:#009A93!important;color:#FFF!important}.ui.labels a.teal.label:hover:before,.ui.teal.labels a.label:hover:before,a.ui.teal.label:hover:before{background-color:#009A93!important}.ui.teal.corner.label,.ui.teal.corner.label:hover{background-color:transparent!important}.ui.teal.ribbon.label{border-color:#009A93!important}.ui.horizontal.labels .label,.ui.horizontal.label{margin:-.125em 0 -.125em .5em;padding:.35em 1em;min-width:6em;text-align:center}.ui.circular.labels .label,.ui.circular.label{min-height:1em;max-height:2em;padding:.5em!important;line-height:1em;text-align:center;border-radius:500rem}.ui.pointing.label{position:relative}.ui.attached.pointing.label{position:absolute}.ui.pointing.label:before{position:absolute;content:"";width:.6em;height:.6em;background-image:none;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);z-index:2;-webkit-transition:background .1s linear;-moz-transition:background .1s linear;transition:background .1s linear}.ui.pointing.label:before{background-color:#E8E8E8}.ui.pointing.label,.ui.pointing.above.label{margin-top:1em}.ui.pointing.label:before,.ui.pointing.above.label:before{margin-right:-.3em;top:-.3em;right:50%}.ui.pointing.below.label{margin-top:0;margin-bottom:1em}.ui.pointing.below.label:before{margin-right:-.3em;top:auto;left:auto;bottom:-.3em;right:50%}.ui.pointing.left.label{margin-top:0;margin-right:1em}.ui.pointing.left.label:before{margin-top:-.3em;bottom:auto;left:auto;top:50%;right:0}.ui.pointing.right.label{margin-top:0;margin-left:1em}.ui.pointing.right.label:before{margin-top:-.3em;left:-.3em;top:50%;bottom:auto;right:auto}.ui.floating.label{position:absolute;z-index:100;top:-1em;right:100%;margin:0 -1.5em 0 0!important}.ui.small.labels .label,.ui.small.label{font-size:.75rem}.ui.label{font-size:.8125rem}.ui.large.labels .label,.ui.large.label{font-size:.875rem}.ui.huge.labels .label,.ui.huge.label{font-size:1rem}.ui.loader{display:none;position:absolute;top:50%;right:50%;margin:0;z-index:1000;-webkit-transform:translateX(-50%) translateY(-50%);-moz-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.ui.dimmer .loader{display:block}.ui.text.loader{width:auto!important;height:auto!important;text-align:center;font-style:normal}.ui.mini.text.loader{min-width:16px;padding-top:2em;font-size:.875em}.ui.small.text.loader{min-width:24px;padding-top:2.5em;font-size:.875em}.ui.text.loader{min-width:32px;font-size:1em;padding-top:3em}.ui.large.text.loader{min-width:64px;padding-top:5em;font-size:1.2em}.ui.loader.active,.ui.loader.visible{display:block}.ui.loader.disabled,.ui.loader.hidden{display:none}.ui.dimmer .ui.text.loader,.ui.inverted.text.loader{color:rgba(255,255,255,.8)}.ui.inverted.dimmer .ui.text.loader{color:rgba(0,0,0,.8)}.ui.dimmer .mini.ui.loader,.ui.inverted .mini.ui.loader{background-image:url(../images/loader-mini-inverted.gif)}.ui.dimmer .small.ui.loader,.ui.inverted .small.ui.loader{background-image:url(../images/loader-small-inverted.gif)}.ui.dimmer .ui.loader,.ui.inverted.loader{background-image:url(../images/loader-medium-inverted.gif)}.ui.dimmer .large.ui.loader,.ui.inverted .large.ui.loader{background-image:url(../images/loader-large-inverted.gif)}.ui.inverted.dimmer .ui.mini.loader,.ui.mini.loader{width:16px;height:16px;background-image:url(../images/loader-mini.gif)}.ui.inverted.dimmer .ui.small.loader,.ui.small.loader{width:24px;height:24px;background-image:url(../images/loader-small.gif)}.ui.inverted.dimmer .ui.loader,.ui.loader{width:32px;height:32px;background:url(../images/loader-medium.gif) no-repeat;background-position:52% 0}.ui.inverted.dimmer .ui.loader.large,.ui.loader.large{width:64px;height:64px;background-image:url(../images/loader-large.gif)}.ui.inline.loader{position:static;vertical-align:middle;margin:0;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none}.ui.inline.loader.active,.ui.inline.loader.visible{display:inline-block}.ui.progress{border:1px solid rgba(0,0,0,.1);width:100%;height:35px;background-color:#FAFAFA;padding:5px;border-radius:.3125em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.progress .bar{display:inline-block;height:100%;background-color:#CCC;border-radius:3px;-webkit-transition:width 1s ease-in-out,background-color 1s ease-out;-moz-transition:width 1s ease-in-out,background-color 1s ease-out;transition:width 1s ease-in-out,background-color 1s ease-out}.ui.successful.progress .bar{background-color:#73E064!important}.ui.successful.progress .bar,.ui.successful.progress .bar::after{-webkit-animation:none!important;-moz-animation:none!important;animation:none!important}.ui.warning.progress .bar{background-color:#E96633!important}.ui.warning.progress .bar,.ui.warning.progress .bar::after{-webkit-animation:none!important;-moz-animation:none!important;animation:none!important}.ui.failed.progress .bar{background-color:#DF9BA4!important}.ui.failed.progress .bar,.ui.failed.progress .bar::after{-webkit-animation:none!important;-moz-animation:none!important;animation:none!important}.ui.active.progress .bar{position:relative}.ui.active.progress .bar::after{content:'';opacity:0;position:absolute;top:0;right:0;left:0;bottom:0;background:#FFF;border-radius:3px;-webkit-animation:progress-active 2s ease-out infinite;-moz-animation:progress-active 2s ease-out infinite;animation:progress-active 2s ease-out infinite}@-webkit-keyframes progress-active{0%{opacity:0;width:0}50%{opacity:.3}100%{opacity:0;width:95%}}@-moz-keyframes progress-active{0%{opacity:0;width:0}50%{opacity:.3}100%{opacity:0;width:100%}}@keyframes progress-active{0%{opacity:0;width:0}50%{opacity:.3}100%{opacity:0;width:100%}}.ui.disabled.progress{opacity:.35}.ui.disabled.progress .bar,.ui.disabled.progress .bar::after{-webkit-animation:none!important;-moz-animation:none!important;animation:none!important}.ui.progress.attached{position:relative;border:0}.ui.progress.attached,.ui.progress.attached .bar{display:block;height:3px;padding:0;overflow:hidden;border-radius:0 0 .3125em .3125em}.ui.progress.attached .bar{border-radius:0}.ui.progress.top.attached,.ui.progress.top.attached .bar{top:-2px;border-radius:.3125em .3125em 0 0}.ui.progress.top.attached .bar{border-radius:0}.ui.blue.progress .bar{background-color:#6ECFF5}.ui.black.progress .bar{background-color:#5C6166}.ui.green.progress .bar{background-color:#A1CF64}.ui.red.progress .bar{background-color:#EF4D6D}.ui.purple.progress .bar{background-color:#564F8A}.ui.teal.progress .bar{background-color:#00B5AD}.ui.progress.striped .bar{-webkit-background-size:30px 30px;background-size:30px 30px;background-image:-webkit-gradient(linear,right top,left bottom,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(135deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(135deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-webkit-linear-gradient(315deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(315deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(135deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.ui.progress.active.striped .bar:after{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}.ui.progress.active.striped .bar{-webkit-animation:progress-striped 3s linear infinite;-moz-animation:progress-striped 3s linear infinite;animation:progress-striped 3s linear infinite}@-webkit-keyframes progress-striped{0%{background-position:0 0}100%{background-position:60px 0}}@-moz-keyframes progress-striped{0%{background-position:0 0}100%{background-position:60px 0}}@keyframes progress-striped{0%{background-position:0 0}100%{background-position:60px 0}}.ui.small.progress .bar{height:14px}.ui.reveal{display:inline-block;position:relative!important;z-index:2!important;font-size:0!important}.ui.reveal>.content{font-size:1rem!important}.ui.reveal>.visible.content{-webkit-transition:all .8s cubic-bezier(0.175,.885,.32,1) .15s;-moz-transition:all .8s cubic-bezier(0.175,.885,.32,1) .15s;transition:all .8s cubic-bezier(0.175,.885,.32,1) .15s}.ui.reveal>.visible.content{position:absolute!important;top:0!important;right:0!important;z-index:4!important;-webkit-transition:all .8s cubic-bezier(0.175,.885,.32,1) .15s;-moz-transition:all .8s cubic-bezier(0.175,.885,.32,1) .15s;transition:all .8s cubic-bezier(0.175,.885,.32,1) .15s}.ui.reveal>.hidden.content{position:relative!important;z-index:3!important}.ui.reveal.button{overflow:hidden}.ui.slide.reveal{position:relative!important;display:block;overflow:hidden!important;white-space:nowrap}.ui.slide.reveal>.content{display:block;float:right;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;margin:0;-webkit-transition:top .8s cubic-bezier(0.175,.885,.32,1) .15s,right .8s cubic-bezier(0.175,.885,.32,1) .15s,left .8s cubic-bezier(0.175,.885,.32,1) .15s,bottom .8s cubic-bezier(0.175,.885,.32,1) .15s;-moz-transition:top .8s cubic-bezier(0.175,.885,.32,1) .15s,right .8s cubic-bezier(0.175,.885,.32,1) .15s,left .8s cubic-bezier(0.175,.885,.32,1) .15s,bottom .8s cubic-bezier(0.175,.885,.32,1) .15s;transition:top .8s cubic-bezier(0.175,.885,.32,1) .15s,right .8s cubic-bezier(0.175,.885,.32,1) .15s,left .8s cubic-bezier(0.175,.885,.32,1) .15s,bottom .8s cubic-bezier(0.175,.885,.32,1) .15s}.ui.slide.reveal>.visible.content{position:relative!important}.ui.slide.reveal>.hidden.content{position:absolute!important;right:100%!important;width:100%!important}.ui.slide.reveal:hover>.visible.content,.ui.slide.reveal:focus>.visible.content{right:-100%!important}.ui.slide.reveal:hover>.hidden.content,.ui.slide.reveal:focus>.hidden.content{right:0!important}.ui.right.slide.reveal>.visible.content{right:0}.ui.right.slide.reveal>.hidden.content{right:auto!important;left:100%!important}.ui.right.slide.reveal:hover>.visible.content,.ui.right.slide.reveal:focus>.visible.content{right:100%!important;left:auto!important}.ui.right.slide.reveal:hover>.hidden.content,.ui.right.slide.reveal:focus>.hidden.content{right:auto!important;left:0!important}.ui.up.slide.reveal>.visible.content{top:0!important;right:0!important;left:auto!important;bottom:auto!important}.ui.up.slide.reveal>.hidden.content{top:100%!important;right:0!important;left:auto!important;bottom:auto!important}.ui.slide.up.reveal:hover>.visible.content,.ui.slide.up.reveal:focus>.visible.content{top:-100%!important;right:0!important}.ui.slide.up.reveal:hover>.hidden.content,.ui.slide.up.reveal:focus>.hidden.content{top:0!important;right:0!important}.ui.down.slide.reveal>.visible.content{top:auto!important;left:auto!important;bottom:auto!important;bottom:0!important}.ui.down.slide.reveal>.hidden.content{top:auto!important;left:auto!important;bottom:100%!important;right:0!important}.ui.slide.down.reveal:hover>.visible.content,.ui.slide.down.reveal:focus>.visible.content{right:0!important;bottom:-100%!important}.ui.slide.down.reveal:hover>.hidden.content,.ui.slide.down.reveal:focus>.hidden.content{right:0!important;bottom:0!important}.ui.fade.reveal>.visible.content{opacity:1}.ui.fade.reveal:hover>.visible.content,.ui.fade.reveal:focus>.visible.content{opacity:0}.ui.move.reveal>.visible.content,.ui.move.left.reveal>.visible.content{right:auto!important;top:auto!important;bottom:auto!important;left:0!important}.ui.move.reveal:hover>.visible.content,.ui.move.left.reveal:hover>.visible.content,.ui.move.reveal:focus>.visible.content,.ui.move.left.reveal:focus>.visible.content{left:100%!important}.ui.move.right.reveal>.visible.content{left:auto!important;top:auto!important;bottom:auto!important;right:0!important}.ui.move.right.reveal:hover>.visible.content,.ui.move.right.reveal:focus>.visible.content{right:100%!important}.ui.move.up.reveal>.visible.content{left:auto!important;right:auto!important;top:auto!important;bottom:0!important}.ui.move.up.reveal:hover>.visible.content,.ui.move.up.reveal:focus>.visible.content{bottom:100%!important}.ui.move.down.reveal>.visible.content{left:auto!important;right:auto!important;top:0!important;bottom:auto!important}.ui.move.down.reveal:hover>.visible.content,.ui.move.down.reveal:focus>.visible.content{top:100%!important}.ui.rotate.reveal>.visible.content{-webkit-transition-duration:.8s;-moz-transition-duration:.8s;transition-duration:.8s;-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}.ui.rotate.reveal>.visible.content,.ui.rotate.right.reveal>.visible.content{-webkit-transform-origin:bottom left;-moz-transform-origin:bottom left;-ms-transform-origin:bottom left;transform-origin:bottom left}.ui.rotate.reveal:hover>.visible.content,.ui.rotate.right.reveal:hover>.visible.content,.ui.rotate.reveal:focus>.visible.content,.ui.rotate.right.reveal:focus>.visible.content{-webkit-transform:rotate(110deg);-moz-transform:rotate(110deg);-ms-transform:rotate(110deg);transform:rotate(110deg)}.ui.rotate.left.reveal>.visible.content{-webkit-transform-origin:bottom right;-moz-transform-origin:bottom right;-ms-transform-origin:bottom right;transform-origin:bottom right}.ui.rotate.left.reveal:hover>.visible.content,.ui.rotate.left.reveal:focus>.visible.content{-webkit-transform:rotate(-110deg);-moz-transform:rotate(-110deg);-ms-transform:rotate(-110deg);transform:rotate(-110deg)}.ui.disabled.reveal{opacity:1!important}.ui.disabled.reveal>.content{-webkit-transition:none!important;-moz-transition:none!important;transition:none!important}.ui.disabled.reveal:hover>.visible.content,.ui.disabled.reveal:focus>.visible.content{position:static!important;display:block!important;opacity:1!important;top:0!important;right:0!important;left:auto!important;bottom:auto!important;-webkit-transform:none!important;-moz-transform:none!important;-ms-transform:none!important;transform:none!important}.ui.disabled.reveal:hover>.hidden.content,.ui.disabled.reveal:focus>.hidden.content{display:none!important}.ui.masked.reveal{overflow:hidden}.ui.instant.reveal>.content{-webkit-transition-delay:0s!important;-moz-transition-delay:0s!important;transition-delay:0s!important}.ui.segment{position:relative;background-color:#FFF;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1);margin:1em 0;padding:1em;border-radius:5px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.segment:first-child{margin-top:0}.ui.segment:last-child{margin-bottom:0}.ui.segment:after{content:'';display:block;height:0;clear:both;visibility:hidden}.ui.vertical.segment{margin:0;padding-right:0;padding-left:0;background-color:transparent;border-radius:0;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 0 rgba(0,0,0,.1)}.ui.vertical.segment:first-child{padding-top:0}.ui.horizontal.segment{margin:0;padding-top:0;padding-bottom:0;background-color:transparent;border-radius:0;-webkit-box-shadow:1px 0 0 rgba(0,0,0,.1);box-shadow:1px 0 0 rgba(0,0,0,.1)}.ui.horizontal.segment:first-child{padding-right:0}.ui.pointing.menu~.ui.attached.segment{top:1px}.ui.page.grid.segment .ui.grid .ui.segment.column{padding-top:2rem;padding-bottom:2rem}.ui.grid.segment,.ui.grid .ui.segment.row,.ui.grid .ui.segment.column{border-radius:0;-webkit-box-shadow:none;box-shadow:none;border:0}.ui.segment>:first-child{margin-top:0}.ui.segment>:last-child{margin-bottom:0}.ui.piled.segment{margin:2em 0;-webkit-box-shadow:0 0 1px 1px rgba(0,0,0,.15);-ms-box-shadow:0 0 1px 1px rgba(0,0,0,.15);-o-box-shadow:0 0 1px 1px rgba(0,0,0,.15);box-shadow:0 0 1px 1px rgba(0,0,0,.15)}.ui.piled.segment:first-child{margin-top:0}.ui.piled.segment:last-child{margin-bottom:0}.ui.piled.segment:after,.ui.piled.segment:before{background-color:#FFF;visibility:visible;content:"";display:block;height:100%;right:-1px;position:absolute;width:100%;-webkit-box-shadow:0 0 1px 1px rgba(0,0,0,.1);box-shadow:0 0 1px 1px rgba(0,0,0,.1)}.ui.piled.segment:after{-webkit-transform:rotate(1.2deg);-moz-transform:rotate(1.2deg);-ms-transform:rotate(1.2deg);transform:rotate(1.2deg);top:0;z-index:-1}.ui.piled.segment:before{-webkit-transform:rotate(-1.2deg);-moz-transform:rotate(-1.2deg);-ms-transform:rotate(-1.2deg);transform:rotate(-1.2deg);top:0;z-index:-2}.ui.stacked.segment{padding-bottom:1.7em}.ui.stacked.segment:after,.ui.stacked.segment:before{content:'';position:absolute;bottom:-3px;right:0;border-top:1px solid rgba(0,0,0,.1);background-color:rgba(0,0,0,.02);width:100%;height:5px;visibility:visible}.ui.stacked.segment:before{bottom:0}.ui.stacked.inverted.segment:after,.ui.stacked.inverted.segment:before{background-color:rgba(255,255,255,.1);border-top:1px solid rgba(255,255,255,.35)}.ui.circular.segment{display:table-cell;padding:2em;text-align:center;vertical-align:middle;border-radius:500em}.ui.raised.segment{-webkit-box-shadow:0 1px 2px 1px rgba(0,0,0,.1);box-shadow:0 1px 2px 1px rgba(0,0,0,.1)}.ui.disabled.segment{opacity:.8;color:#DDD}.ui.basic.segment{position:relative;background-color:transparent;-webkit-box-shadow:none;box-shadow:none;border-radius:0}.ui.basic.segment:first-child{padding-top:0}.ui.basic.segment:last-child{padding-bottom:0}.ui.fitted.segment{padding:0}.ui.blue.segment{border-top:.2em solid #6ECFF5}.ui.green.segment{border-top:.2em solid #A1CF64}.ui.red.segment{border-top:.2em solid #D95C5C}.ui.orange.segment{border-top:.2em solid #F05940}.ui.purple.segment{border-top:.2em solid #564F8A}.ui.teal.segment{border-top:.2em solid #00B5AD}.ui.inverted.black.segment{background-color:#5C6166!important;color:#FFF!important}.ui.inverted.blue.segment{background-color:#6ECFF5!important;color:#FFF!important}.ui.inverted.green.segment{background-color:#A1CF64!important;color:#FFF!important}.ui.inverted.red.segment{background-color:#D95C5C!important;color:#FFF!important}.ui.inverted.orange.segment{background-color:#F05940!important;color:#FFF!important}.ui.inverted.purple.segment{background-color:#564F8A!important;color:#FFF!important}.ui.inverted.teal.segment{background-color:#00B5AD!important;color:#FFF!important}.ui.left.aligned.segment{text-align:right}.ui.right.aligned.segment{text-align:left}.ui.center.aligned.segment{text-align:center}.ui.justified.segment{text-align:justify;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.ui.floated.segment,.ui.left.floated.segment{float:right}.ui.right.floated.segment{float:left}.ui.inverted.segment{border:0;-webkit-box-shadow:none;box-shadow:none}.ui.inverted.segment .segment{color:rgba(0,0,0,.7)}.ui.inverted.segment .inverted.segment{color:#FFF}.ui.inverted.segment,.ui.primary.inverted.segment{background-color:#222;color:#FFF}.ui.primary.segment{background-color:#FFF;color:#555}.ui.secondary.segment{background-color:#FAF9FA;color:#777}.ui.tertiary.segment{background-color:#EBEBEB;color:#B0B0B0}.ui.secondary.inverted.segment{background-color:#555;background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(255,255,255,.3)),to(rgba(255,255,255,.3)));background-image:-webkit-linear-gradient(rgba(255,255,255,.3) 0,rgba(255,255,255,.3) 100%);background-image:-moz-linear-gradient(rgba(255,255,255,.3) 0,rgba(255,255,255,.3) 100%);background-image:-webkit-gradient(linear,right top,right bottom,from(rgba(255,255,255,.3)),to(rgba(255,255,255,.3)));background-image:linear-gradient(rgba(255,255,255,.3) 0,rgba(255,255,255,.3) 100%);color:#FAFAFA}.ui.tertiary.inverted.segment{background-color:#555;background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(255,255,255,.6)),to(rgba(255,255,255,.6)));background-image:-webkit-linear-gradient(rgba(255,255,255,.6) 0,rgba(255,255,255,.6) 100%);background-image:-moz-linear-gradient(rgba(255,255,255,.6) 0,rgba(255,255,255,.6) 100%);background-image:-webkit-gradient(linear,right top,right bottom,from(rgba(255,255,255,.6)),to(rgba(255,255,255,.6)));background-image:linear-gradient(rgba(255,255,255,.6) 0,rgba(255,255,255,.6) 100%);color:#EEE}.ui.segment.attached{top:-1px;bottom:-1px;border-radius:0;margin:0;-webkit-box-shadow:0 0 0 1px #DDD;box-shadow:0 0 0 1px #DDD}.ui.top.attached.segment{top:0;bottom:-1px;margin-top:1em;margin-bottom:0;border-radius:5px 5px 0}.ui.segment.top.attached:first-child{margin-top:0}.ui.segment.bottom.attached{top:-1px 0;bottom:0;margin-top:0;margin-bottom:1em;border-radius:0 0 5px 5px}.ui.segment.bottom.attached:last-child{margin-bottom:0}.ui.step,.ui.steps .step{display:inline-block;position:relative;padding:1em 3em 1em 2em;vertical-align:top;background-color:#FFF;color:#888;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.step:after,.ui.steps .step:after{position:absolute;z-index:2;content:'';top:.42em;left:-1em;border:medium none;background-color:#FFF;width:2.2em;height:2.2em;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-box-shadow:-1px -1px 0 0 rgba(0,0,0,.15) inset;box-shadow:-1px -1px 0 0 rgba(0,0,0,.15) inset}.ui.step,.ui.steps .step,.ui.steps .step:after{-webkit-transition:background-color .1s ease,opacity .1s ease,color .1s ease,-webkit-box-shadow .1s ease;-moz-transition:background-color .1s ease,opacity .1s ease,color .1s ease,box-shadow .1s ease;transition:background-color .1s ease,opacity .1s ease,color .1s ease,box-shadow .1s ease}.ui.vertical.steps{overflow:visible}.ui.vertical.steps .step{display:block;border-radius:0;padding:1em 2em}.ui.vertical.steps .step:first-child{padding:1em 2em;border-radius:0;border-top-right-radius:.3125rem;border-top-left-radius:.3125rem}.ui.vertical.steps .active.step:first-child{border-top-left-radius:0rem}.ui.vertical.steps .step:last-child{border-radius:0;border-bottom-right-radius:.3125rem;border-bottom-left-radius:.3125rem}.ui.vertical.steps .active.step:last-child{border-bottom-left-radius:0rem}.ui.vertical.steps .step:after{display:none}.ui.vertical.steps .active.step:after{display:block}.ui.vertical.steps .two.line.step{line-height:1.3}.ui.vertical.steps .two.line.active.step:after{position:absolute;z-index:2;content:'';top:0;left:-1.45em;background-color:transparent;border-bottom:2.35em solid transparent;border-right:1.55em solid #555;border-top:2.35em solid transparent;width:0;height:0;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none}.ui.steps{cursor:pointer;display:inline-block;font-size:0;overflow:hidden;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1);line-height:1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;border-radius:.step:first-child{padding-right:1.35em .3125rem}.ui.steps;border-radius:.3125em 0 0 .3125em}.ui.steps .step:last-child{border-radius:0 .3125em .3125em 0}.ui.steps .step:only-child{border-radius:.3125em}.ui.steps .step:last-child{margin-left:0}.ui.steps .step:last-child:after{display:none}.ui.step:hover,.ui.step.hover{background-color:#F7F7F7;color:rgba(0,0,0,.8)}.ui.steps .step.hover:after,.ui.steps .step:hover:after,.ui.step:hover,.ui.step.hover::after{background-color:#F7F7F7}.ui.steps .step.down,.ui.steps .step:active,.ui.step.down,.ui.step:active{background-color:#F0F0F0}.ui.steps .step.down:after,.ui.steps .step:active:after,.ui.steps.down::after,.ui.steps:active::after{background-color:#F0F0F0}.ui.steps .step.active,.ui.active.step{cursor:auto;background-color:#555;color:#FFF;font-weight:700}.ui.steps .step.active:after,.ui.active.steps:after{background-color:#555;-webkit-box-shadow:none;box-shadow:none}.ui.steps .disabled.step,.ui.disabled.step{cursor:auto;background-color:#FFF;color:#CBCBCB}.ui.steps .disabled.step:after,.ui.disabled.step:after{background-color:#FFF}.attached.ui.steps{margin:0;border-radius:.3125em .3125em 0 0}.attached.ui.steps .step:first-child{border-radius:.3125em 0 0}.attached.ui.steps .step:last-child{border-radius:0 .3125em 0 0}.bottom.attached.ui.steps{margin-top:-1px;border-radius:0 0 .3125em .3125em}.bottom.attached.ui.steps .step:first-child{border-radius:0 0 0 .3125em}.bottom.attached.ui.steps .step:last-child{border-radius:0 0 .3125em}.ui.one.steps,.ui.two.steps,.ui.three.steps,.ui.four.steps,.ui.five.steps,.ui.six.steps,.ui.seven.steps,.ui.eight.steps{display:block}.ui.one.steps>.step{width:100%}.ui.two.steps>.step{width:50%}.ui.three.steps>.step{width:33.333%}.ui.four.steps>.step{width:25%}.ui.five.steps>.step{width:20%}.ui.six.steps>.step{width:16.666%}.ui.seven.steps>.step{width:14.285%}.ui.eight.steps>.step{width:12.5%}.ui.small.step,.ui.small.steps .step{font-size:.8rem}.ui.step,.ui.steps .step{font-size:1rem}.ui.large.step,.ui.large.steps .step{font-size:1.25rem}.ui.accordion,.ui.accordion .accordion{width:600px;max-width:100%;font-size:1rem;border-radius:.3125em;background-color:#FFF;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1)}.ui.accordion .title,.ui.accordion .accordion .title{cursor:pointer;margin:0;padding:.75em 1em;color:rgba(0,0,0,.6);border-top:1px solid rgba(0,0,0,.05);-webkit-transition:background-color .2s ease-out;-moz-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.ui.accordion .title:first-child,.ui.accordion .accordion .title:first-child{border-top:0}.ui.accordion .content,.ui.accordion .accordion .content{display:none;margin:0;padding:1.3em 1em}.ui.accordion .title .dropdown.icon,.ui.accordion .accordion .title .dropdown.icon{display:inline-block;float:none;margin:0 0 0 .5em;-webkit-transition:-webkit-transform .2s ease,opacity .2s ease;-moz-transition:-moz-transform .2s ease,opacity .2s ease;transition:transform .2s ease,opacity .2s ease;-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}.ui.accordion .title .dropdown.icon:before,.ui.accordion .accordion .title .dropdown.icon:before{content:'\f0da'}.ui.basic.accordion.menu{background-color:#FFF;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1)}.ui.basic.accordion.menu .title,.ui.basic.accordion.menu .content{padding:0}.ui.basic.accordion{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.ui.basic.accordion .title,.ui.basic.accordion .accordion .title{background-color:transparent;border-top:0;padding-right:0;padding-left:0}.ui.basic.accordion .content,.ui.basic.accordion .accordion .content{padding:.5em 0}.ui.basic.accordion .active.title,.ui.basic.accordion .accordion .active.title{background-color:transparent}.ui.accordion .title:hover,.ui.accordion .active.title,.ui.accordion .accordion .title:hover,.ui.accordion .accordion .active.title{color:rgba(0,0,0,.8)}.ui.accordion .active.title,.ui.accordion .accordion .active.title{background-color:rgba(0,0,0,.1);color:rgba(0,0,0,.8)}.ui.accordion .active.title .dropdown.icon,.ui.accordion .accordion .active.title .dropdown.icon{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.ui.accordion .active.content,.ui.accordion .accordion .active.content{display:block}.ui.fluid.accordion,.ui.fluid.accordion .accordion{width:100%}.ui.chatroom{background-color:#F8F8F8;width:330px;height:370px;padding:0}.ui.chatroom .room{position:relative;background-color:#FFF;overflow:hidden;height:286px;border:1px solid rgba(0,0,0,.1);border-top:0;border-bottom:0}.ui.chatroom .room .loader{display:none;margin:-25px -25px 0 0}.ui.chatroom .actions{overflow:hidden;background-color:#EEE;padding:4px;border:1px solid rgba(0,0,0,.1);border-radius:5px 5px 0 0}.ui.chatroom .actions .button{float:left;margin-right:3px}.ui.chatroom .actions .message{float:right;margin-right:6px;font-size:11px;color:#AAA;text-shadow:0 -1px 0 rgba(255,255,255,.8);line-height:28px}.ui.chatroom .actions .message .loader{display:inline-block;margin-left:8px}.ui.chatroom .log{float:right;overflow:auto;overflow-x:hidden;overflow-y:auto}.ui.chatroom .log .message{padding:3px 0;border-top:1px dotted #DADADA}.ui.chatroom .log .message:first-child{border-top:0}.ui.chatroom .status{padding:5px 0;color:#AAA;font-size:12px;font-style:italic;line-height:1.33;border-top:1px dotted #DADADA}.ui.chatroom .log .status:first-child{border-top:0}.ui.chatroom .log .flag{float:right}.ui.chatroom .log p{margin-right:0}.ui.chatroom .log .author{font-weight:700;-webkit-transition:color .3s ease-out;-moz-transition:color .3s ease-out;transition:color .3s ease-out}.ui.chatroom .log a.author:hover{opacity:.8}.ui.chatroom .log .message.admin p{font-weight:700;margin:1px 23px 0 0}.ui.chatroom .log .divider{margin:-1px 0;font-size:11px;padding:10px 0;border-top:1px solid #F8F8F8;border-bottom:1px solid #F8F8F8}.ui.chatroom .log .divider .rule{top:50%;width:15%}.ui.chatroom .log .divider .label{color:#777;margin:0}.ui.chatroom .room .list{position:relative;overflow:auto;overflow-x:hidden;overflow-y:auto;float:right;background-color:#EEE;border-right:1px solid #DDD}.ui.chatroom .room .list .user{display:table;padding:3px 7px;border-bottom:1px solid #DDD}.ui.chatroom .room .list .user:hover{background-color:#F8F8F8}.ui.chatroom .room .list .image{display:table-cell;vertical-align:middle;width:20px}.ui.chatroom .room .list .image img{width:20px;height:20px;vertical-align:middle}.ui.chatroom .room .list p{display:table-cell;vertical-align:middle;padding-right:7px;padding-left:14px;font-size:11px;line-height:1.2;font-weight:700}.ui.chatroom .room .list a:hover{opacity:.8}.ui.chatroom.loading .loader{display:block}.ui.chatroom .talk{border:1px solid rgba(0,0,0,.1);padding:5px 0 0;background-color:#EEE;border-radius:0 0 5px 5px}.ui.chatroom .talk .avatar,.ui.chatroom .talk input,.ui.chatroom .talk .button{float:right}.ui.chatroom .talk .avatar img{display:block;width:30px;height:30px;margin-left:4px;border-radius:500rem}.ui.chatroom .talk input{border:1px solid #CCC;margin:0;width:196px;height:14px;padding:8px 5px;font-size:12px;color:#555}.ui.chatroom .talk input.focus{border:1px solid #AAA}.ui.chatroom .send{width:80px;height:32px;margin-right:-1px;padding:4px 12px;font-size:12px;line-height:23px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;border-radius:0 5px 5px 0}.ui.chatroom .talk .log-in.button{display:block;float:none;margin-top:-6px;height:22px;border-radius:0 0 4px 4px}.ui.chatroom .talk .log-in.button i{vertical-align:text-top}.ui.chatroom .log .team.flag{width:18px}.ui.chatroom.loading .loader{display:block}.ui.chatroom{width:330px;height:370px}.ui.chatroom .room .container{width:3000px}.ui.chatroom .log{width:314px;height:278px;padding:4px 7px}.ui.chatroom .room .list{width:124px;height:278px;padding:4px 0}.ui.chatroom .room .list .user{width:110px}.ui.chatroom .talk{height:40px}.ui.checkbox{position:relative;display:inline-block;min-width:1em;height:1.25em;line-height:1em;outline:0;vertical-align:middle}.ui.checkbox input{position:absolute;top:0;right:0;opacity:0;outline:0}.ui.checkbox .box,.ui.checkbox label{cursor:pointer;padding-right:2em;outline:0}.ui.checkbox .box:before,.ui.checkbox label:before{position:absolute;top:0;line-height:1;width:1em;height:1em;right:0;content:'';border-radius:4px;background:#FFF;-webkit-transition:background-color .3s ease,-webkit-box-shadow .3s ease;-moz-transition:background-color .3s ease,box-shadow .3s ease;transition:background-color .3s ease,box-shadow .3s ease;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.2)}.ui.checkbox .box:after,.ui.checkbox label:after{-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0);opacity:0;content:'';position:absolute;background:transparent;border:.2em solid #333;border-top:0;border-left:0;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.ui.checkbox .box:after,.ui.checkbox label:after{top:.275em;right:.2em;width:.45em;height:.15em}.ui.checkbox label{color:rgba(0,0,0,.6);-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.ui.checkbox label:hover{color:rgba(0,0,0,.8)}.ui.checkbox input:focus~label{color:rgba(0,0,0,.8)}.ui.checkbox~label{cursor:pointer;opacity:.85;vertical-align:middle}.ui.checkbox~label:hover{opacity:1}.ui.checkbox .box:hover::before,.ui.checkbox label:hover::before{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.3);box-shadow:0 0 0 1px rgba(0,0,0,.3)}.ui.checkbox .box:active::before,.ui.checkbox label:active::before{background-color:#F5F5F5}.ui.checkbox input:focus~.box:before,.ui.checkbox input:focus~label:before{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.3);box-shadow:0 0 0 1px rgba(0,0,0,.3)}.ui.checkbox input:checked~.box:after,.ui.checkbox input:checked~label:after{-ms-filter:"alpha(Opacity=100)";filter:alpha(opacity=100);opacity:1}.ui.disabled.checkbox~.box:after,.ui.checkbox input[disabled]~.box:after,.ui.disabled.checkbox label,.ui.checkbox input[disabled]~label{opacity:.4;color:rgba(0,0,0,.3)}.ui.radio.checkbox .box:before,.ui.radio.checkbox label:before{min-width:1em;height:1em;border-radius:500px;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none}.ui.radio.checkbox .box:after,.ui.radio.checkbox label:after{border:0;top:.2em;right:.2em;width:.6em;height:.6em;background-color:#555;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;border-radius:500px}.ui.slider.checkbox{cursor:pointer;min-width:3em}.ui.slider.checkbox:after{position:absolute;top:.5em;right:0;content:'';width:3em;height:2px;background-color:rgba(0,0,0,.1)}.ui.slider.checkbox .box,.ui.slider.checkbox label{padding-right:4em}.ui.slider.checkbox .box:before,.ui.slider.checkbox label:before{cursor:pointer;display:block;position:absolute;top:-.25em;right:0;z-index:1;width:1.5em;height:1.5em;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;border-radius:50rem;-webkit-transition:right .3s ease 0s;-moz-transition:right .3s ease 0s;transition:right .3s ease 0s}.ui.slider.checkbox .box:after,.ui.slider.checkbox label:after{opacity:1;position:absolute;content:'';top:.15em;right:0;z-index:2;margin-right:.375em;border:0;width:.75em;height:.75em;border-radius:50rem;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;-webkit-transition:background .3s ease 0s,right .3s ease 0s;-moz-transition:background .3s ease 0s,right .3s ease 0s;transition:background .3s ease 0s,right .3s ease 0s}.ui.slider.checkbox input:checked~.box:before,.ui.slider.checkbox input:checked~label:before,.ui.slider.checkbox input:checked~.box:after,.ui.slider.checkbox input:checked~label:after{right:1.75em}.ui.slider.checkbox .box:after,.ui.slider.checkbox label:after{background-color:#D95C5C}.ui.slider.checkbox input:checked~.box:after,.ui.slider.checkbox input:checked~label:after{background-color:#89B84C}.ui.toggle.checkbox{cursor:pointer}.ui.toggle.checkbox .box,.ui.toggle.checkbox label{padding-right:4em}.ui.toggle.checkbox .box:before,.ui.toggle.checkbox label:before{cursor:pointer;display:block;position:absolute;content:'';top:-.25em;right:0;z-index:1;background-color:#FFF;width:3em;height:1.5em;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;box-shadow:0 0 0 1px rgba(0,0,0,.1) inset;border-radius:.box:after,.ui.toggle.checkbox 50rem}.ui.toggle.checkbox label:after{opacity:1;background-color:transparent;-webkit-box-shadow:none;box-shadow:none;content:'';position:absolute;top:.15em;right:.5em;z-index:2;border:0;width:.75em;height:.75em;background-color:#D95C5C;border-radius:50rem;-webkit-transition:background .3s ease 0s,right .3s ease 0s;-moz-transition:background .3s ease 0s,right .3s ease 0s;transition:background .3s ease 0s,right .3s ease 0s}.ui.toggle.checkbox:active .box:before,.ui.toggle.checkbox:active label:before{background-color:#F5F5F5}.ui.toggle.checkbox input:checked~.box:after,.ui.toggle.checkbox input:checked~label:after{right:1.75em;background-color:#89B84C}.ui.checkbox{font-size:1em}.ui.large.checkbox{font-size:1.25em}.ui.huge.checkbox{font-size:1.5em}.ui.dimmable{position:relative}.ui.dimmer{display:none;position:absolute;top:0!important;right:0!important;width:0;height:0;text-align:center;vertical-align:middle;background-color:rgba(0,0,0,.85);opacity:0;line-height:1;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.5s;-moz-animation-duration:.5s;animation-duration:.5s;-webkit-transition:background-color .5s linear;-moz-transition:background-color .5s linear;transition:background-color .5s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;z-index:1000}.ui.dimmer>.content{width:100%;height:100%;display:table;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.dimmer>.content>div{display:table-cell;vertical-align:middle;color:#FFF}.ui.segment>.ui.dimmer{border-radius:5px}.ui.horizontal.segment>.ui.dimmer,.ui.vertical.segment>.ui.dimmer{border-radius:5px}.ui.dimmed.dimmable:not(body){overflow:hidden}.ui.dimmed.dimmable>.ui.animating.dimmer,.ui.dimmed.dimmable>.ui.visible.dimmer,.ui.active.dimmer{display:block;width:100%;height:100%;opacity:1}.ui.disabled.dimmer{width:0!important;height:0!important}.ui.page.dimmer{position:fixed;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-perspective:2000px;-moz-perspective:2000px;-ms-perspective:2000px;perspective:2000px;-webkit-transform-origin:center center;-moz-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center}.ui.scrolling.dimmable>.dimmer,.ui.scrolling.page.dimmer{position:absolute}.ui.dimmer>.top.aligned.content>*{vertical-align:top}.ui.dimmer>.bottom.aligned.content>*{vertical-align:bottom}.ui.inverted.dimmer{background-color:rgba(255,255,255,.85)}.ui.inverted.dimmer>.content>*{color:rgba(0,0,0,.8)}.ui.simple.dimmer{display:block;overflow:hidden;opacity:1;z-index:-100;background-color:rgba(0,0,0,0)}.ui.dimmed.dimmable>.ui.simple.dimmer{overflow:visible;opacity:1;width:100%;height:100%;background-color:rgba(0,0,0,.85);z-index:1}.ui.simple.inverted.dimmer{background-color:rgba(255,255,255,0)}.ui.dimmed.dimmable>.ui.simple.inverted.dimmer{background-color:rgba(255,255,255,.85)}.ui.dropdown{cursor:pointer;position:relative;display:inline-block;line-height:1;-webkit-transition:border-radius .1s ease,width .2s ease;-moz-transition:border-radius .1s ease,width .2s ease;transition:border-radius .1s ease,width .2s ease;-webkit-tap-highlight-color:rgba(0,0,0,0);-moz-tap-highlight-color:rgba(0,0,0,0);tap-highlight-color:rgba(0,0,0,0)}.ui.dropdown .menu{cursor:auto;position:absolute;display:none;top:100%;margin:0;background-color:#FFF;min-width:100%;white-space:nowrap;font-size:.875em;text-shadow:none;-webkit-box-shadow:0 0 1px 1px rgba(0,0,0,.1);box-shadow:0 0 1px 1px rgba(0,0,0,.1);border-radius:0 0 .325em .325em;-webkit-transition:opacity .2s ease;-moz-transition:opacity .2s ease;transition:opacity .2s ease;z-index:11}.ui.dropdown>.dropdown.icon{width:auto;margin:0 1em 0 0}.ui.dropdown>.dropdown.icon:before{content:"\f0d7"}.ui.dropdown .menu .item .dropdown.icon{width:auto;float:left;margin:0 .5em 0 0}.ui.dropdown .menu .item .dropdown.icon:before{content:"\f0da"}.ui.dropdown>.text{display:inline-block;-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.ui.dropdown .menu{right:0}.ui.dropdown .menu .menu{top:0!important;right:100%!important;margin:0!important;border-radius:0 .325em .325em 0!important}.ui.dropdown .menu .menu:after{display:none}.ui.dropdown .menu .item{cursor:pointer;border:0;border-top:1px solid rgba(0,0,0,.05);height:auto;font-size:.875em;display:block;color:rgba(0,0,0,.75);padding:.85em 1em!important;font-size:.875rem;text-transform:none;font-weight:400;text-align:right;-webkit-touch-callout:none}.ui.dropdown .menu .item:before{display:none}.ui.dropdown .menu .item .icon{margin-left:.75em}.ui.dropdown .menu .item:first-child{border-top:0}.ui.menu .right.menu .dropdown:last-child .menu,.ui.buttons>.ui.dropdown:last-child .menu{right:auto;left:0}.ui.vertical.menu .dropdown.item>.dropdown.icon:before{content:"\f0da"}.ui.dropdown.icon.button>.dropdown.icon{margin:0}.ui.visible.dropdown>.menu{display:block}.ui.dropdown .menu .item:hover{background-color:rgba(0,0,0,.02);z-index:12}.ui.dropdown .menu .active.item{background-color:rgba(0,0,0,.06)!important;border-right:0;border-color:transparent!important;-webkit-box-shadow:none;-moz-shadow:none;box-shadow:none;z-index:12}.ui.dropdown>.default.text,.ui.default.dropdown>.text{color:rgba(0,0,0,.5)}.ui.dropdown:hover>.default.text,.ui.default.dropdown:hover>.text{color:rgba(0,0,0,.8)}.ui.dropdown.error,.ui.dropdown.error>.text,.ui.dropdown.error>.default.text{color:#D95C5C!important}.ui.selection.dropdown.error{background-color:snow;-webkit-box-shadow:0 0 0 1px #e7bebe!important;box-shadow:0 0 0 1px #e7bebe!important}.ui.selection.dropdown.error:hover{-webkit-box-shadow:0 0 0 1px #e7bebe!important;box-shadow:0 0 0 1px #e7bebe!important}.ui.dropdown.error>.menu,.ui.dropdown.error>.menu .menu{-webkit-box-shadow:0 0 1px 1px #E7BEBE!important;box-shadow:0 0 1px 1px #E7BEBE!important}.ui.dropdown.error>.menu .item{color:#D95C5C!important}.ui.dropdown.error>.menu .item:hover{background-color:#FFF2F2!important}.ui.dropdown.error>.menu .active.item{background-color:#FDCFCF!important}.ui.simple.dropdown .menu:before,.ui.simple.dropdown .menu:after{display:none}.ui.simple.dropdown .menu{display:block;overflow:hidden;top:-9999px!important;position:absolute;opacity:0;width:0;height:0;-webkit-transition:opacity .2s ease-out;-moz-transition:opacity .2s ease-out;transition:opacity .2s ease-out}.ui.simple.active.dropdown,.ui.simple.dropdown:hover{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.ui.simple.active.dropdown>.menu,.ui.simple.dropdown:hover>.menu{overflow:visible;width:auto;height:auto;top:100%!important;opacity:1}.ui.simple.dropdown>.menu .item:active>.menu,.ui.simple.dropdown:hover>.menu .item:hover>.menu{overflow:visible;width:auto;height:auto;top:0!important;right:100%!important;opacity:1}.ui.simple.disabled.dropdown:hover .menu{display:none;height:0;width:0;overflow:hidden}.ui.selection.dropdown{cursor:pointer;display:inline-block;word-wrap:break-word;white-space:normal;background-color:#FFF;padding:.65em 1em;line-height:1.33;color:rgba(0,0,0,.8);-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1)!important;box-shadow:0 0 0 1px rgba(0,0,0,.1)!important;border-radius:select{display:none}.ui.selection.dropdown>.dropdown.icon{opacity:.7 .3125em!important}.ui.selection.dropdown;margin:.2em 1.25em .2em 0;-webkit-transition:opacity .2s ease-out;-moz-transition:opacity .2s ease-out;transition:opacity .2s ease-out}.ui.selection.dropdown,.ui.selection.dropdown .menu{-webkit-transition:-webkit-box-shadow .2s ease-out;-moz-transition:box-shadow .2s ease-out;transition:box-shadow .2s ease-out}.ui.selection.dropdown .menu{top:100%;max-height:312px;overflow-x:hidden;overflow-y:auto;-webkit-box-shadow:0 1px 0 1px #E0E0E0;box-shadow:0 1px 0 1px #E0E0E0;border-radius:0 0 .325em .325em}.ui.selection.dropdown .menu:after,.ui.selection.dropdown .menu:before{display:none}.ui.selection.dropdown .menu img{height:2.5em;display:inline-block;vertical-align:middle;margin-left:.5em}.ui.visible.selection.dropdown{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.ui.active.selection.dropdown{border-radius:.3125em .3125em 0!important}.ui.active.selection.dropdown>.dropdown.icon{opacity:1}.ui.fluid.dropdown{display:block}.ui.fluid.dropdown>.dropdown.icon{float:left}.ui.inline.dropdown{cursor:pointer 0;display:inline-block;color:inherit}.ui.inline.dropdown .dropdown.icon{margin:0 .25em 0 .5em}.ui.inline.dropdown .text{font-weight:700}.ui.inline.dropdown .menu{cursor:auto;margin-top:.25em;border-radius:.menu{right:0 .325em}.ui.floating.dropdown;left:auto;margin-top:.5em!important;border-radius:.menu{top:100% .325em}.ui.pointing.dropdown;margin-top:.75em;border-radius:.menu:after{display:block .325em}.ui.pointing.dropdown;position:absolute;pointer-events:none;content:" ";visibility:visible;width:.5em;height:.5em;-webkit-box-shadow:-1px -1px 0 1px rgba(0,0,0,.05);box-shadow:-1px -1px 0 1px rgba(0,0,0,.05);background-image:none;background-color:#FFF;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);z-index:2}.ui.pointing.dropdown .menu .active.item:first-child{background:transparent -webkit-linear-gradient(transparent,rgba(0,0,0,.03));background:transparent -moz-linear-gradient(transparent,rgba(0,0,0,.03));background:transparent-webkit-gradient(linear,right top,right bottom,from(transparent),to(rgba(0,0,0,.03)));background:transparent linear-gradient(transparent,rgba(0,0,0,.03))}.ui.pointing.dropdown .menu:after{top:-.25em;right:50%;margin:0 -.25em 0 0}.ui.top.left.pointing.dropdown .menu{top:100%;bottom:auto;right:0;left:auto;margin:.75em 0 0}.ui.top.left.pointing.dropdown .menu:after{top:-.25em;right:1.25em;left:auto;margin:0;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.ui.top.right.pointing.dropdown .menu{top:100%;bottom:auto;left:0;right:auto;margin:.75em 0 0}.ui.top.right.pointing.dropdown .menu:after{top:-.25em;right:auto;left:1.25em;margin:0;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.ui.left.pointing.dropdown .menu{top:0;right:100%;left:auto;margin:0 .75em 0 0}.ui.left.pointing.dropdown .menu:after{top:1em;right:-.25em;margin:0;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.ui.right.pointing.dropdown .menu{top:0;right:auto;left:100%;margin:0 0 0 .75em}.ui.right.pointing.dropdown .menu:after{top:1em;right:auto;left:-.25em;margin:0;-webkit-transform:rotate(135deg);-moz-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg)}.ui.modal{display:none;position:fixed;z-index:1001;top:50%;right:50%;text-align:right;width:90%;margin-right:-45%;background-color:#FFF;border:1px solid #DDD;border-radius:5px;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.modal>.close{cursor:pointer;position:absolute;z-index:1;opacity:.8;font-size:1.25em;top:-1.75em;left:-1.75em;color:#FFF}.ui.modal>.close:hover{opacity:1}.ui.modal>.header{margin:0;padding:1.5rem 2rem;font-size:1.6em;font-weight:700;border-radius:.325em .325em 0}.ui.modal>.content{display:table 0;width:100%;position:relative;padding:2em;background-color:#F4F4F4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.modal>.content>.left:not(.ui){display:table-cell;padding-left:1.5%;min-width:25%}.ui.modal>.content>.right:not(.ui){display:table-cell;padding-right:1.5%;vertical-align:top}.ui.modal>.content>.left:not(.ui)>i.icon{font-size:8em;margin:0}.ui.modal>.content p{line-height:1.6}.ui.modal .actions{padding:1rem 2rem;text-align:left}.ui.modal .actions>.button{margin-right:.75em}@media only screen and (max-width:768px){.ui.modal .content>.left:not(.ui){display:block;padding:0 0 1em}.ui.modal .content>.right:not(.ui){display:block;padding:1em 0 0;-webkit-box-shadow:none;box-shadow:none}.ui.modal .content .image{width:auto!important;max-width:100%}.ui.modal .actions{padding-bottom:0}.ui.modal .actions>.buttons,.ui.modal .actions>.button{margin-bottom:1em}}@media only screen and (max-width:998px){.ui.modal{width:92%;margin-right:-46%}.ui.modal>.close{color:rgba(0,0,0,.8);top:1.5rem;left:1rem}}@media only screen and (min-width:998px){.ui.modal{width:74%;margin-right:-37%}}@media only screen and (min-width:1500px){.ui.modal{width:56%;margin-right:-28%}}@media only screen and (min-width:1750px){.ui.modal{width:42%;margin-right:-21%}}@media only screen and (min-width:2000px){.ui.modal{width:36%;margin-right:-18%}}.ui.basic.modal{background-color:transparent;border:0;color:#FFF}.ui.basic.modal>.close{top:1.5rem;left:1rem}.ui.basic.modal .content{background-color:transparent}.ui.modal.scrolling{position:absolute;margin-top:10px}.ui.active.modal{display:block}.ui.small.modal>.header{font-size:1.3em}@media only screen and (min-width:998px){.ui.small.modal{width:58%;margin-right:-29%}}@media only screen and (min-width:1500px){.ui.small.modal{width:40%;margin-right:-20%}}@media only screen and (min-width:1750px){.ui.small.modal{width:26%;margin-right:-13%}}@media only screen and (min-width:2000px){.ui.small.modal{width:20%;margin-right:-10%}}@media only screen and (min-width:998px){.ui.large.modal{width:74%;margin-right:-37%}}@media only screen and (min-width:1500px){.ui.large.modal{width:64%;margin-right:-32%}}@media only screen and (min-width:1750px){.ui.large.modal{width:54%;margin-right:-27%}}@media only screen and (min-width:2000px){.ui.large.modal{width:44%;margin-right:-22%}}.ui.nag{display:none;opacity:.95;position:relative;top:0;right:0;z-index:101;min-height:0;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;margin:0;line-height:3em;padding:0 1em;background-color:#555;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.2);box-shadow:0 1px 2px 0 rgba(0,0,0,.2);font-size:1em;text-align:center;color:rgba(255,255,255,.8);border-radius:0 0 5px 5px;-webkit-transition:.2s background;-moz-transition:.2s background;transition:.2s background}a.ui.nag{cursor:pointer}.ui.nag>.title{display:inline-block;margin:0 .5em;color:#FFF}.ui.nag>.close.icon{cursor:pointer;opacity:.4;position:absolute;top:50%;left:1em;margin-top:-.5em;color:#FFF;-webkit-transition:.1s opacity;-moz-transition:.1s opacity;transition:.1s opacity}.ui.nag:hover{opacity:1}.ui.nag .close:hover{opacity:1}.ui.overlay.nag{position:absolute;display:block}.ui.fixed.nag{position:fixed}.ui.bottom.nag{border-radius:5px 5px 0}.ui.fixed.bottom.nags,.ui.fixed.bottom.nag{top:auto 0;bottom:0}.ui.white.nags .nag,.ui.white.nag{background-color:#F1F1F1;text-shadow:0 1px 0 rgba(255,255,255,.8);color:#ACACAC}.ui.white.nags .nag .close,.ui.white.nags .nag .title,.ui.white.nag .close,.ui.white.nag .title{color:#333}.ui.nags .nag{border-radius:0}.ui.popup{display:none;position:absolute;top:0;left:0;z-index:900;border:1px solid rgba(0,0,0,.1);max-width:250px;background-color:#FFF;padding:.8em 1.2em;font-size:.875rem;font-weight:400;font-style:normal;color:rgba(0,0,0,.7);border-radius:.2em;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.1);box-shadow:0 1px 2px rgba(0,0,0,.1)}.ui.popup .header{padding:0 0 .5em;font-size:1.125em;line-height:1.2;font-weight:700}.ui.popup:before{position:absolute;content:"";width:.75em;height:.75rem;background-image:none;background-color:#FFF;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);z-index:2;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:1px 1px 1px rgba(0,0,0,.1);box-shadow:1px 1px 1px rgba(0,0,0,.1)}.ui.popup .ui.button{width:100%}.ui.popup{margin:0}.ui.popup.bottom{margin:.75em 0 0}.ui.popup.top{margin:0 0 .75em}.ui.popup.left.center{margin:0 0 0 .75em}.ui.popup.right.center{margin:0 .75em 0 0}.ui.popup.center{margin-right:-1.25em}.ui.bottom.center.popup:before{margin-right:-.4em;top:-.4em;right:50%;left:auto;bottom:auto;-webkit-box-shadow:-1px -1px 1px rgba(0,0,0,.2);box-shadow:-1px -1px 1px rgba(0,0,0,.2)}.ui.bottom.left.popup{margin-left:-2em}.ui.bottom.left.popup:before{top:-.4em;left:1em;bottom:auto;right:auto;margin-right:0;-webkit-box-shadow:-1px -1px 1px rgba(0,0,0,.2);box-shadow:-1px -1px 1px rgba(0,0,0,.2)}.ui.bottom.right.popup{margin-right:-2em}.ui.bottom.right.popup:before{top:-.4em;right:1em;left:auto;bottom:auto;margin-right:0;-webkit-box-shadow:-1px -1px 1px rgba(0,0,0,.2);box-shadow:-1px -1px 1px rgba(0,0,0,.2)}.ui.top.center.popup:before{top:auto;left:auto;bottom:-.4em;right:50%;margin-right:-.4em}.ui.top.left.popup{margin-left:-2em}.ui.top.left.popup:before{bottom:-.4em;left:1em;top:auto;right:auto;margin-right:0}.ui.top.right.popup{margin-right:-2em}.ui.top.right.popup:before{bottom:-.4em;right:1em;top:auto;left:auto;margin-right:0}.ui.left.center.popup:before{top:50%;left:-.35em;bottom:auto;right:auto;margin-top:-.4em;-webkit-box-shadow:1px -1px 1px rgba(0,0,0,.2);box-shadow:1px -1px 1px rgba(0,0,0,.2)}.ui.right.center.popup:before{top:50%;right:-.35em;bottom:auto;left:auto;margin-top:-.4em;-webkit-box-shadow:-1px 1px 1px rgba(0,0,0,.2);box-shadow:-1px 1px 1px rgba(0,0,0,.2)}.ui.loading.popup{display:block;visibility:hidden}.ui.animating.popup,.ui.visible.popup{display:block}.ui.small.popup{font-size:.75rem}.ui.large.popup{font-size:1rem}.ui.inverted.popup{background-color:#333;border:0;color:#FFF;-webkit-box-shadow:none;box-shadow:none}.ui.inverted.popup .header{background-color:rgba(0,0,0,.2);color:#FFF}.ui.inverted.popup:before{background-color:#333;-webkit-box-shadow:none;box-shadow:none}.ui.rating{display:inline-block;font-size:0;vertical-align:middle;margin:0 0 0 .5rem}.ui.rating:last-child{margin-left:0}.ui.rating:before{display:block;content:'';visibility:hidden;clear:both;height:0}.ui.rating .icon{cursor:pointer;margin:0;width:1em;height:auto;padding:0;color:rgba(0,0,0,.15);font-weight:400;font-style:normal}.ui.rating .icon:before{content:"\2605"}.ui.star.rating .icon{width:1.2em}.ui.star.rating .icon:before{content:'\f006';font-family:Icons}.ui.star.rating .active.icon:before{content:'\f005';font-family:Icons}.ui.heart.rating .icon{width:1.2em}.ui.heart.rating .icon:before{content:'\f08a';font-family:Icons}.ui.heart.rating .active.icon:before{content:'\f004';font-family:Icons}.ui.heart.rating .active.icon{color:#EF404A!important}.ui.heart.rating .hover.icon,.ui.heart.rating .active.hover.icon{color:#FF2733!important}.ui.disabled.rating .icon{cursor:default}.ui.rating .active.icon{color:#FFCB08!important}.ui.rating.hover .active.icon{opacity:.5}.ui.rating .icon.hover,.ui.rating .icon.hover.active{opacity:1;color:#FFB70A!important}.ui.small.rating .icon{font-size:.75rem}.ui.rating .icon{font-size:1rem}.ui.large.rating .icon{font-size:1.5rem;vertical-align:middle}.ui.huge.rating .icon{font-size:2rem;vertical-align:middle}.ui.search{position:relative;text-shadow:none;font-style:normal;font-weight:400}.ui.search input{border-radius:500rem}.ui.search>.button{position:relative;z-index:2;float:left;margin:0 -15px 0 0;padding:6px 15px 7px;border-radius:15px 0 0 15px;-webkit-box-shadow:none;box-shadow:none}.ui.search .results{display:none;position:absolute;z-index:999;top:100%;right:0;overflow:hidden;background-color:#FFF;margin-top:.5em;width:380px;font-size:.875em;line-height:1.2;color:#555;border-radius:3px;-webkit-box-shadow:0 0 1px 1px rgba(0,0,0,.1),0 -2px 0 0 rgba(0,0,0,.1) inset;box-shadow:0 0 1px 1px rgba(0,0,0,.1),0 -2px 0 0 rgba(0,0,0,.1) inset}.ui.search .result{cursor:pointer;overflow:hidden;padding:.5em 1em}.ui.search .result:first-child{border-top:0}.ui.search .result .image{background:#F0F0F0;margin-left:10px;float:right;overflow:hidden;border-radius:3px;width:38px;height:38px}.ui.search .result .image img{display:block;width:38px;height:38px}.ui.search .result .image~.info{float:none;margin-right:50px}.ui.search .result .info{float:right}.ui.search .result .title{font-weight:700;color:rgba(0,0,0,.8)}.ui.search .result .description{color:rgba(0,0,0,.6)}.ui.search .result .price{float:left;color:#5BBD72;font-weight:700}.ui.search .message{padding:1em}.ui.search .message .text .title{margin:0 0 .5rem;font-size:1.25rem;font-weight:700;color:rgba(0,0,0,.8)}.ui.search .message .text .description{margin:0;font-size:1rem;color:rgba(0,0,0,.5)}.ui.search .results .category{background-color:#FAFAFA;border-top:1px solid rgba(0,0,0,.1);-webkit-transition:background .2s ease-in;-moz-transition:background .2s ease-in;transition:background .2s ease-in}.ui.search .results .category:first-child{border-top:0}.ui.search .results .category>.name{float:right;padding:12px 8px 0 0;font-weight:700;color:#777;text-shadow:0 1px 0 rgba(255,255,255,.8)}.ui.search .results .category .result{background-color:#FFF;margin-right:80px;border-right:1px solid rgba(0,0,0,.1)}.ui.search .all{display:block;border-top:1px solid rgba(0,0,0,.1);background-color:#FAFAFA;height:2em;line-height:2em;color:rgba(0,0,0,.6);font-weight:700;text-align:center}.ui.search .result:hover,.ui.search .category .result:hover{background-color:#F8F8F8}.ui.search .all:hover{background-color:#F0F0F0}.ui.search.loading .input .icon{background:url(../images/loader-mini.gif) no-repeat 50% 50%}.ui.search.loading .input .icon:before,.ui.search.loading .input .icon:after{display:none}.ui.search .results .category.active{background-color:#F1F1F1}.ui.search .results .category.active>.name{color:#333}.ui.search .result.active,.ui.search .category .result.active{background-color:#FBFBFB}.ui.search .result.active .title{color:#000}.ui.search .result.active .description{color:#555}.ui.search .large.result .image,.ui.search .large.result .image img{width:50px;height:50px}.ui.search .large.results .indented.info{margin-right:65px}.ui.search .large.results .info .title{font-size:16px}.ui.search .large.results .info .description{font-size:11px}.ui.shape{display:inline-block;position:relative;-webkit-perspective:2000px;-moz-perspective:2000px;-ms-perspective:2000px;perspective:2000px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.shape .sides{-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d}.ui.shape .side{opacity:1;width:100%;margin:0!important;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.shape .side{display:none}.ui.cube.shape .side{min-width:15em;height:15em;padding:2em;background-color:#E6E6E6;color:rgba(0,0,0,.6);-webkit-box-shadow:0 0 2px rgba(0,0,0,.3);box-shadow:0 0 2px rgba(0,0,0,.3)}.ui.cube.shape .side>.content{width:100%;height:100%;display:table;text-align:center;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.cube.shape .side>.content>div{display:table-cell;vertical-align:middle;font-size:2em}.ui.text.shape.animating .sides{position:static}.ui.text.shape .side{white-space:nowrap}.ui.text.shape .side>*{white-space:normal}.ui.loading.shape{position:absolute;top:-9999px;right:-9999px}.ui.shape .animating.side{position:absolute;top:0;right:0;z-index:100}.ui.shape .hidden.side{opacity:.4}.ui.shape.animating{-webkit-transition:all .6s ease-in-out;-moz-transition:all .6s ease-in-out;transition:all .6s ease-in-out}.ui.shape.animating .sides{position:absolute}.ui.shape.animating .sides{-webkit-transition:all .6s ease-in-out;-moz-transition:all .6s ease-in-out;transition:all .6s ease-in-out}.ui.shape.animating .side{-webkit-transition:opacity .6s ease-in-out;-moz-transition:opacity .6s ease-in-out;transition:opacity .6s ease-in-out}.ui.shape .active.side{display:block}body{-webkit-transition:margin .3s ease,-webkit-transform .3s ease;-moz-transition:margin .3s ease,-moz-transform .3s ease;transition:margin .3s ease,transform .3s ease}.ui.sidebar{position:fixed;margin:0!important;height:100%!important;border-radius:0!important;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-ms-overflow-y:auto;overflow-y:auto;top:0;right:0;z-index:999;-webkit-transition:margin-right .3s ease,margin-top .3s ease;-moz-transition:margin-right .3s ease,margin-top .3s ease;transition:margin-right .3s ease,margin-top .3s ease}body.pushed.scrolling.ui.dimmable{position:static}.ui.right.very.thin.sidebar,.ui.right.thin.sidebar,.ui.right.sidebar,.ui.right.wide.sidebar,.ui.right.very.wide.sidebar{right:100%;margin:0!important}.ui.top.sidebar{width:100%!important}.ui.bottom.sidebar{width:100%!important;top:100%;margin:0!important}.ui.active.sidebar{margin-right:0!important}.ui.active.top.sidebar,.ui.active.bottom.sidebar{margin-top:0!important}.ui.styled.sidebar{padding:1em 1.5em;background-color:#FFF;-webkit-box-shadow:1px 0 0 rgba(0,0,0,.1);box-shadow:1px 0 0 rgba(0,0,0,.1)}.ui.styled.very.thin.sidebar{padding:.5em}.ui.styled.thin.sidebar{padding:1em}.ui.floating.sidebar{-webkit-box-shadow:2px 0 2px rgba(0,0,0,.2);box-shadow:2px 0 2px rgba(0,0,0,.2)}.ui.right.floating.sidebar{-webkit-box-shadow:-2px 0 2px rgba(0,0,0,.2);box-shadow:-2px 0 2px rgba(0,0,0,.2)}.ui.top.floating.sidebar{-webkit-box-shadow:0 4px 4px rgba(0,0,0,.2);box-shadow:0 4px 4px rgba(0,0,0,.2)}.ui.bottom.floating.sidebar{-webkit-box-shadow:0 -4px 4px rgba(0,0,0,.2);box-shadow:0 -4px 4px rgba(0,0,0,.2)}.ui.very.thin.sidebar{width:60px!important;margin-right:-60px!important}.ui.active.very.thin.sidebar{margin-right:0!important}.ui.active.right.very.thin.sidebar{margin-right:-60px!important}.ui.thin.sidebar{width:200px!important;margin-right:-200px!important}.ui.active.thin.sidebar{margin-right:0!important}.ui.active.right.thin.sidebar{margin-right:-200px!important}.ui.sidebar{width:275px!important;margin-right:-275px!important}.ui.active.sidebar{margin-right:0!important}.ui.active.right.sidebar{margin-right:-275px!important}.ui.wide.sidebar{width:350px!important;margin-right:-350px!important}.ui.active.wide.sidebar{margin-right:0!important}.ui.active.right.wide.sidebar{margin-right:-350px!important}.ui.very.wide.sidebar{width:475px!important;margin-right:-475px!important}.ui.active.very.wide.sidebar{margin-right:0!important}.ui.active.right.very.wide.sidebar{margin-right:-475px!important}.ui.top.sidebar{margin:-40px 0 0 0!important}.ui.top.sidebar,.ui.bottom.sidebar{height:40px!important}.ui.active.bottom.sidebar{margin-top:-40px!important}.ui.tab{display:none}.ui.tab.active,.ui.tab.open{display:block}.ui.tab.loading{position:relative;overflow:hidden;display:block;min-height:250px;text-indent:-10000px}.ui.tab.loading *{position:relative!important;right:-10000px!important}.ui.tab.loading:after{position:absolute;top:50px;right:50%;content:'Loading...';margin-right:-32px;text-indent:5px;color:rgba(0,0,0,.4);width:100%;height:100%;padding-top:75px;background:url(../images/loader-large.gif) no-repeat 0 0;visibility:visible}.ui.transition{-webkit-animation-iteration-count:1;-moz-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:1s;-moz-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:ease;-moz-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.ui.animating.transition{display:block;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0)}.ui.loading.transition{position:absolute;top:-999999px;right:-99999px}.ui.hidden.transition{display:none}.ui.visible.transition{display:block;visibility:visible}.ui.disabled.transition{-webkit-animation-play-state:paused;-moz-animation-play-state:paused;animation-play-state:paused}.ui.looping.transition{-webkit-animation-iteration-count:infinite;-moz-animation-iteration-count:infinite;animation-iteration-count:infinite}.ui.flash.transition{-webkit-animation-name:flash;-moz-animation-name:flash;animation-name:flash}.ui.shake.transition{-webkit-animation-name:shake;-moz-animation-name:shake;animation-name:shake}.ui.bounce.transition{-webkit-animation-name:bounce;-moz-animation-name:bounce;animation-name:bounce}.ui.tada.transition{-webkit-animation-name:tada;-moz-animation-name:tada;animation-name:tada}.ui.pulse.transition{-webkit-animation-name:pulse;-moz-animation-name:pulse;animation-name:pulse}.ui.flip.transition.in,.ui.flip.transition.out{-webkit-perspective:2000px;-moz-perspective:2000px;-ms-perspective:2000px;perspective:2000px}.ui.horizontal.flip.transition.in,.ui.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlip;-moz-animation-name:horizontalFlip;animation-name:horizontalFlip}.ui.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;-moz-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.ui.vertical.flip.transition.in,.ui.vertical.flip.transition.out{-webkit-animation-name:verticalFlip;-moz-animation-name:verticalFlip;animation-name:verticalFlip}.ui.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;-moz-animation-name:verticalFlipOut;animation-name:verticalFlipOut}.ui.fade.transition.in{-webkit-animation-name:fade;-moz-animation-name:fade;animation-name:fade}.ui.fade.transition.out{-webkit-animation-name:fadeOut;-moz-animation-name:fadeOut;animation-name:fadeOut}.ui.fade.up.transition.in{-webkit-animation-name:fadeUp;-moz-animation-name:fadeUp;animation-name:fadeUp}.ui.fade.up.transition.out{-webkit-animation-name:fadeUpOut;-moz-animation-name:fadeUpOut;animation-name:fadeUpOut}.ui.fade.down.transition.in{-webkit-animation-name:fadeDown;-moz-animation-name:fadeDown;animation-name:fadeDown}.ui.fade.down.transition.out{-webkit-animation-name:fadeDownOut;-moz-animation-name:fadeDownOut;animation-name:fadeDownOut}.ui.scale.transition.in{-webkit-animation-name:scale;-moz-animation-name:scale;animation-name:scale}.ui.scale.transition.out{-webkit-animation-name:scaleOut;-moz-animation-name:scaleOut;animation-name:scaleOut}.ui.slide.down.transition.in{-webkit-animation-name:slide;-moz-animation-name:slide;animation-name:slide;-moz-transform-origin:50% 0;transform-origin:50% 0;-ms-transform-origin:50% 0;-webkit-transform-origin:50% 0}.ui.slide.down.transition.out{-webkit-animation-name:slideOut;-moz-animation-name:slideOut;animation-name:slideOut;-webkit-transform-origin:50% 0;-moz-transform-origin:50% 0;-ms-transform-origin:50% 0;transform-origin:50% 0}.ui.slide.up.transition.in{-webkit-animation-name:slide;-moz-animation-name:slide;animation-name:slide;-webkit-transform-origin:50% 100%;-moz-transform-origin:50% 100%;-ms-transform-origin:50% 100%;transform-origin:50% 100%}.ui.slide.up.transition.out{-webkit-animation-name:slideOut;-moz-animation-name:slideOut;animation-name:slideOut;-webkit-transform-origin:50% 100%;-moz-transform-origin:50% 100%;-ms-transform-origin:50% 100%;transform-origin:50% 100%}@-webkit-keyframes slide{0%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}100%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-moz-keyframes slide{0%{opacity:0;-moz-transform:scaleY(0);transform:scaleY(0)}100%{opacity:1;-moz-transform:scaleY(1);transform:scaleY(1)}}@keyframes slide{0%{opacity:0;-webkit-transform:scaleY(0);-moz-transform:scaleY(0);-ms-transform:scaleY(0);transform:scaleY(0)}100%{opacity:1;-webkit-transform:scaleY(1);-moz-transform:scaleY(1);-ms-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes slideOut{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}100%{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@-moz-keyframes slideOut{0%{opacity:1;-moz-transform:scaleY(1);transform:scaleY(1)}100%{opacity:0;-moz-transform:scaleY(0);transform:scaleY(0)}}@keyframes slideOut{0%{opacity:1;-webkit-transform:scaleY(1);-moz-transform:scaleY(1);-ms-transform:scaleY(1);transform:scaleY(1)}100%{opacity:0;-webkit-transform:scaleY(0);-moz-transform:scaleY(0);-ms-transform:scaleY(0);transform:scaleY(0)}}@-webkit-keyframes flash{0%,50%,100%{opacity:1}25%,75%{opacity:0}}@-moz-keyframes flash{0%,50%,100%{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,100%{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@-moz-keyframes shake{0%,100%{-moz-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-moz-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-moz-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,100%{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-moz-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);-moz-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,100%{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@-moz-keyframes bounce{0%,20%,50%,80%,100%{-moz-transform:translateY(0);transform:translateY(0)}40%{-moz-transform:translateY(-30px);transform:translateY(-30px)}60%{-moz-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,100%{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);-moz-transform:translateY(-30px);-ms-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);-moz-transform:translateY(-15px);-ms-transform:translateY(-15px);transform:translateY(-15px)}}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(0.9) rotate(-3deg);transform:scale(0.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}100%{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-moz-keyframes tada{0%{-moz-transform:scale(1);transform:scale(1)}10%,20%{-moz-transform:scale(0.9) rotate(-3deg);transform:scale(0.9) rotate(-3deg)}30%,50%,70%,90%{-moz-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-moz-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}100%{-moz-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(0.9) rotate(-3deg);-moz-transform:scale(0.9) rotate(-3deg);-ms-transform:scale(0.9) rotate(-3deg);transform:scale(0.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);-moz-transform:scale(1.1) rotate(3deg);-ms-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);-moz-transform:scale(1.1) rotate(-3deg);-ms-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}100%{-webkit-transform:scale(1) rotate(0);-moz-transform:scale(1) rotate(0);-ms-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(0.9);transform:scale(0.9);opacity:.7}100%{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-moz-keyframes pulse{0%{-moz-transform:scale(1);transform:scale(1);opacity:1}50%{-moz-transform:scale(0.9);transform:scale(0.9);opacity:.7}100%{-moz-transform:scale(1);transform:scale(1);opacity:1}}@keyframes pulse{0%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}50%{-webkit-transform:scale(0.9);-moz-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9);opacity:.7}100%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes horizontalFlip{0%{-webkit-transform:rotateY(-90deg);transform:rotateY(-90deg);opacity:0}100%{-webkit-transform:rotateY(0deg);transform:rotateY(0deg);opacity:1}}@-moz-keyframes horizontalFlip{0%{-moz-transform:rotateY(-90deg);transform:rotateY(-90deg);opacity:0}100%{-moz-transform:rotateY(0deg);transform:rotateY(0deg);opacity:1}}@keyframes horizontalFlip{0%{-webkit-transform:rotateY(-90deg);-moz-transform:rotateY(-90deg);-ms-transform:rotateY(-90deg);transform:rotateY(-90deg);opacity:0}100%{-webkit-transform:rotateY(0deg);-moz-transform:rotateY(0deg);-ms-transform:rotateY(0deg);transform:rotateY(0deg);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{-webkit-transform:rotateY(0deg);transform:rotateY(0deg);opacity:1}100%{-webkit-transform:rotateY(90deg);transform:rotateY(90deg);opacity:0}}@-moz-keyframes horizontalFlipOut{0%{-moz-transform:rotateY(0deg);transform:rotateY(0deg);opacity:1}100%{-moz-transform:rotateY(90deg);transform:rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{-webkit-transform:rotateY(0deg);-moz-transform:rotateY(0deg);-ms-transform:rotateY(0deg);transform:rotateY(0deg);opacity:1}100%{-webkit-transform:rotateY(90deg);-moz-transform:rotateY(90deg);-ms-transform:rotateY(90deg);transform:rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlip{0%{-webkit-transform:rotateX(-90deg);transform:rotateX(-90deg);opacity:0}100%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@-moz-keyframes verticalFlip{0%{-moz-transform:rotateX(-90deg);transform:rotateX(-90deg);opacity:0}100%{-moz-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@keyframes verticalFlip{0%{-webkit-transform:rotateX(-90deg);-moz-transform:rotateX(-90deg);-ms-transform:rotateX(-90deg);transform:rotateX(-90deg);opacity:0}100%{-webkit-transform:rotateX(0deg);-moz-transform:rotateX(0deg);-ms-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@-webkit-keyframes verticalFlipOut{0%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}100%{-webkit-transform:rotateX(-90deg);transform:rotateX(-90deg);opacity:0}}@-moz-keyframes verticalFlipOut{0%{-moz-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}100%{-moz-transform:rotateX(-90deg);transform:rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{-webkit-transform:rotateX(0deg);-moz-transform:rotateX(0deg);-ms-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}100%{-webkit-transform:rotateX(-90deg);-moz-transform:rotateX(-90deg);-ms-transform:rotateX(-90deg);transform:rotateX(-90deg);opacity:0}}@-webkit-keyframes fade{0%{opacity:0}100%{opacity:1}}@-moz-keyframes fade{0%{opacity:0}100%{opacity:1}}@keyframes fade{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@-moz-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes fadeUp{0%{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-moz-keyframes fadeUp{0%{opacity:0;-moz-transform:translateY(20px);transform:translateY(20px)}100%{opacity:1;-moz-transform:translateY(0);transform:translateY(0)}}@keyframes fadeUp{0%{opacity:0;-webkit-transform:translateY(20px);-moz-transform:translateY(20px);-ms-transform:translateY(20px);transform:translateY(20px)}100%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeUpOut{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}}@-moz-keyframes fadeUpOut{0%{opacity:1;-moz-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-moz-transform:translateY(20px);transform:translateY(20px)}}@keyframes fadeUpOut{0%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(20px);-moz-transform:translateY(20px);-ms-transform:translateY(20px);transform:translateY(20px)}}@-webkit-keyframes fadeDown{0%{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-moz-keyframes fadeDown{0%{opacity:0;-moz-transform:translateY(-20px);transform:translateY(-20px)}100%{opacity:1;-moz-transform:translateY(0);transform:translateY(0)}}@keyframes fadeDown{0%{opacity:0;-webkit-transform:translateY(-20px);-moz-transform:translateY(-20px);-ms-transform:translateY(-20px);transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fadeDownOut{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}}@-moz-keyframes fadeDownOut{0%{opacity:1;-moz-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-moz-transform:translateY(-20px);transform:translateY(-20px)}}@keyframes fadeDownOut{0%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-20px);-moz-transform:translateY(-20px);-ms-transform:translateY(-20px);transform:translateY(-20px)}}@-webkit-keyframes scale{0%{opacity:0;-webkit-transform:scale(0.7);transform:scale(0.7)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-moz-keyframes scale{0%{opacity:0;-moz-transform:scale(0.7);transform:scale(0.7)}100%{opacity:1;-moz-transform:scale(1);transform:scale(1)}}@keyframes scale{0%{opacity:0;-webkit-transform:scale(0.7);-moz-transform:scale(0.7);-ms-transform:scale(0.7);transform:scale(0.7)}100%{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}100%{opacity:0;-webkit-transform:scale(0.7);transform:scale(0.7)}}@-moz-keyframes scaleOut{0%{opacity:1;-moz-transform:scale(1);transform:scale(1)}100%{opacity:0;-moz-transform:scale(0.7);transform:scale(0.7)}}@keyframes scaleOut{0%{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}100%{opacity:0;-webkit-transform:scale(0.7);-moz-transform:scale(0.7);-ms-transform:scale(0.7);transform:scale(0.7)}}.ui.video{position:relative;max-width:100%}.ui.video .placeholder{background-color:#333}.ui.video .play{cursor:pointer;position:absolute;top:0;right:0;z-index:10;width:100%;height:100%;-ms-filter:"alpha(Opacity=60)";filter:alpha(opacity=60);opacity:.6;-webkit-transition:opacity .3s;-moz-transition:opacity .3s;transition:opacity .3s}.ui.video .play.icon:before{position:absolute;top:50%;right:50%;z-index:11;font-size:6rem;margin:-3rem -3rem 0 0;color:#FFF;text-shadow:0 3px 3px rgba(0,0,0,.4)}.ui.video .placeholder{display:block;width:100%;height:100%}.ui.video .embed{display:none}.ui.video .play:hover{opacity:1}.ui.video.active .play,.ui.video.active .placeholder{display:none}.ui.video.active .embed{display:block}.ui.comments a{cursor:pointer}.ui.comments .comment{position:relative;margin-top:.5em;padding-top:.5em}.ui.comments .comment:first-child{margin-top:0;padding-top:0}.ui.comments .comment .avatar{display:block;float:right;width:4em}.ui.comments .comment .avatar img{display:block;margin:0 auto;width:3em;height:3em;border-radius:500px}.ui.comments .comment>.content,.ui.comments .comment>.avatar{display:block}.ui.comments .comment .avatar~.content{padding:0 1em}.ui.comments .comment>.avatar~.content{padding-top:.25em;margin-right:3.5em}.ui.comments .comment .metadata{display:inline-block;margin-right:.3em;color:rgba(0,0,0,.4)}.ui.comments .comment .metadata>*{display:inline-block;margin:0 0 0 .3em}.ui.comments .comment .text{margin:.25em 0 .5em;word-wrap:break-word}.ui.comments .comment .actions{font-size:.9em}.ui.comments .comment .actions a{display:inline-block;margin:0 0 0 .3em;color:rgba(0,0,0,.3)}.ui.comments .comment .actions a.active,.ui.comments .comment .actions a:hover{color:rgba(0,0,0,.6)}.ui.comments .reply.form{margin-top:.75em;width:100%;max-width:30em}.ui.comments .comment .reply.form{margin-right:2em}.ui.comments>.reply.form{margin-top:1.5em;max-width:40em}.ui.comments .reply.form textarea{height:12em}.ui.comments .comment .comments{margin-top:.5em;padding-top:.5em;padding-bottom:1em}.ui.comments .comment .comments:before{position:absolute;top:0;right:0}.ui.comments>.comment .comments{margin-right:2em}.ui.comments>.comment>.comments>.comment>.comments{margin-right:1.75em}.ui.comments>.comment>.comments>.comment>.comments>.comment>.comments{margin-right:1.5em}.ui.comments>.comment>.comments>.comment>.comments>.comment>.comments>.comment .comments{margin-right:.5em}.ui.threaded.comments .comment .comments{margin-right:2em!important;padding-right:2em!important;-webkit-box-shadow:-1px 0 0 rgba(0,0,0,.05);box-shadow:-1px 0 0 rgba(0,0,0,.05)}.ui.minimal.comments .comment .actions{opacity:0;-webkit-transition:opacity .1s ease-out;-moz-transition:opacity .1s ease-out;transition:opacity .1s ease-out;-webkit-transition-delay:.1s;-moz-transition-delay:.1s;transition-delay:.1s}.ui.minimal.comments .comment>.content:hover>.actions{opacity:1}.ui.small.comments{font-size:.875em}.ui.feed a{cursor:pointer}.ui.feed,.ui.feed .event,.ui.feed .label,.ui.feed .content,.ui.feed .extra{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.feed .event{width:100%;display:table;padding:1em}.ui.feed .event:first-child{border-top:0}.ui.feed .event:last-child{margin-bottom:1em}.ui.feed .label{width:3em;display:table-cell;vertical-align:top;text-align:right}.ui.feed .label .icon{font-size:1.5em;padding:.5em;margin:0}.ui.feed .label img{width:3em;margin:0;border-radius:50em}.ui.feed .label+.content{padding:.75em 1em 0}.ui.feed .content{display:table-cell;vertical-align:top;text-align:right;word-wrap:break-word}.ui.feed .content .date{float:left;padding-right:1em;color:rgba(0,0,0,.4)}.ui.feed .content .summary{color:rgba(0,0,0,.75)}.ui.feed .content .summary img{display:inline-block;margin-left:.25em;width:4em;border-radius:500px}.ui.feed .content .extra{margin:1em 0 0;padding:.5em 0 0;color:rgba(0,0,0,.5)}.ui.feed .content .extra.images img{display:inline-block;margin-left:.25em;width:6em}.ui.feed .content .extra.text{padding:.5em 1em;border-right:.2em solid rgba(0,0,0,.1)}.ui.small.feed{font-size:.875em}.ui.small.feed .label img{width:2.5em}.ui.small.feed .label .icon{font-size:1.25em}.ui.feed .event{padding:.75em 0}.ui.small.feed .label+.content{padding:.5em .5em 0}.ui.small.feed .content .extra.images img{width:5em}.ui.small.feed .content .extra{margin:.5em 0 0}.ui.small.feed .content .extra.text{padding:.25em .5em}.ui.items{margin:1em 0 0}.ui.items:first-child{margin-top:0}.ui.items:last-child{margin-bottom:-1em}.ui.items:after{display:block;content:' ';height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.row>.item,.ui.items>.item{display:block;float:right;position:relative;top:0;width:316px;min-height:375px;margin:0 .5em 2.5em;padding:0;background-color:#FFF;line-height:1.2;font-size:1em;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1);border-bottom:.2em solid rgba(0,0,0,.2);border-radius:.33em;-webkit-transition:-webkit-box-shadow .2s ease;-moz-transition:box-shadow .2s ease;transition:box-shadow .2s ease;padding:.5em}.ui.items a.item,.ui.items .item a{cursor:pointer}.ui.items .item,.ui.items .item>.image,.ui.items .item>.image .overlay,.ui.items .item>.content,.ui.items .item>.content>.meta,.ui.items .item>.content>.extra{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.ui.items .item>.image{display:block;position:relative;background-color:rgba(0,0,0,.05);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;border-radius:.item>.image>img{display:block .2em}.ui.items;width:100%}.ui.items .item>.content{padding:.75em .5em}.ui.items .item>.content>.name{display:block;font-size:1.25em;font-weight:700;margin-bottom:.2em;color:rgba(0,0,0,.7)}.ui.items .item>.content>.description{clear:both;margin:0;color:rgba(0,0,0,.45)}.ui.items .item>.content>.description p{margin:0 0 .2em}.ui.items .item>.content>.description p:last-child{margin-bottom:0}.ui.items .item .meta{float:left;color:rgba(0,0,0,.35)}.ui.items .item>.content>.meta+.name{float:right}.ui.items .item .star.label:hover::after{border-left-color:#F6EFC3}.ui.items .item .star.label:hover::after{border-top-color:#F6EFC3}.ui.items .item .star.label:hover .icon{color:#ac9400}.ui.items .item .star.label.active::after{border-left-color:#F6EFC3}.ui.items .item .star.label.active::after{border-top-color:#F6EFC3}.ui.items .item .star.label.active .icon{color:#ac9400}.ui.items .item .like.label:hover::after{border-left-color:#F5E1E2}.ui.items .item .like.label.active::after{border-top-color:#F5E1E2}.ui.items .item .like.label:hover .icon{color:#ef404a}.ui.items .item .like.label.active::after{border-left-color:#F5E1E2}.ui.items .item .like.label.active::after{border-top-color:#F5E1E2}.ui.items .item .like.label.active .icon{color:#ef404a}.ui.items .item .extra{position:absolute;width:100%;padding:0 .5em;bottom:-2em;right:0;height:1.5em;color:rgba(0,0,0,.25);-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.ui.items .item .extra>img{display:inline-block;border-radius:500px;margin-left:.25em;vertical-align:middle;width:2em}.ui.items .item .extra .left{float:right}.ui.items .item .extra .right{float:left}.ui.items .item:hover{cursor:pointer;z-index:5;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.2)}.ui.items .item:hover .extra{color:rgba(0,0,0,.5)}.ui.items .item:nth-of-type(6n+1):hover{border-bottom-color:#6ECFF5!important}.ui.items .item:nth-of-type(6n+2):hover{border-bottom-color:#5C6166!important}.ui.items .item:nth-of-type(6n+3):hover{border-bottom-color:#A1CF64!important}.ui.items .item:nth-of-type(6n+4):hover{border-bottom-color:#D95C5C!important}.ui.items .item:nth-of-type(6n+5):hover{border-bottom-color:#00B5AD!important}.ui.items .item:nth-of-type(6n+6):hover{border-bottom-color:#564F8A!important}.ui.connected.items{display:table;width:100%;margin-right:0!important;margin-left:0!important}.ui.connected.items>.row>.item,.ui.connected.items>.item{float:none;display:table-cell;vertical-align:top;height:auto;border-radius:0;margin:0;width:33.33%}.ui.connected.items>.row{display:table;margin:.5em 0}.ui.connected.items>.row:first-child{margin-top:0}.ui.connected.items>.item,.ui.connected.items>.row:last-child>.item{border-bottom:.2em solid rgba(0,0,0,.2)}.ui.connected.items>.row:last-child>.item:first-child,.ui.connected.items>.item:first-child{border-radius:0 0 0 .33em}.ui.connected.items>.row:last-child>.item:last-child,.ui.connected.items>.item:last-child{border-radius:0 0 .33em}.ui.connected.items .item:hover{border-bottom-width:.2em}.ui.one.connected.items>.row>.item,.ui.one.connected.items>.item{width:50%;padding-right:2%;padding-left:2%}.ui.two.connected.items>.row>.item,.ui.two.connected.items>.item{width:50%;padding-right:1%;padding-left:1%}.ui.three.connected.items>.row>.item,.ui.three.connected.items>.item{width:33.333%;padding-right:1%;padding-left:1%}.ui.four.connected.items>.row>.item,.ui.four.connected.items>.item{width:25%;padding-right:.5%;padding-left:.5%}.ui.five.connected.items>.row>.item,.ui.five.connected.items>.item{width:20%;padding-right:.5%;padding-left:.5%}.ui.six.connected.items>.row>.item,.ui.six.connected.items>.item{width:16.66%;padding-right:.5%;padding-left:.5%}.ui.seven.connected.items>.row>.item,.ui.seven.connected.items>.item{width:14.28%;padding-right:.5%;padding-left:.5%}.ui.eight.connected.items>.row>.item,.ui.eight.connected.items>.item{width:12.5%;padding-right:.25%;padding-left:.25%}.ui.nine.connected.items>.row>.item,.ui.nine.connected.items>.item{width:11.11%;padding-right:.25%;padding-left:.25%}.ui.ten.connected.items>.row>.item,.ui.ten.connected.items>.item{width:10%;padding-right:.2%;padding-left:.2%}.ui.eleven.connected.items>.row>.item,.ui.eleven.connected.items>.item{width:9.09%;padding-right:.2%;padding-left:.2%}.ui.twelve.connected.items>.row>.item,.ui.twelve.connected.items>.item{width:8.3333%;padding-right:.1%;padding-left:.1%}@media only screen and (max-width:768px){.ui.stackable.items{display:block!important}.ui.stackable.items>.item,.ui.stackable.items>.row>.item{display:block!important;height:auto!important;width:auto!important;padding:0!important}}.ui.horizontal.items>.item,.ui.items>.horizontal.item{display:table}.ui.horizontal.items>.item>.image,.ui.items>.horizontal.item>.image{display:table-cell;width:50%}.ui.horizontal.items>.item>.image+.content,.ui.items>.horizontal.item>.image+.content{width:50%;display:table-cell}.ui.horizontal.items>.item>.content,.ui.items>.horizontal.item>.content{padding:1% 3% 11% 1.7%;vertical-align:top}.ui.horizontal.items>.item>.meta,.ui.items>.horizontal.item>.meta{position:absolute;padding:0;bottom:7%;right:3%;width:94%}.ui.horizontal.items>.item>.image+.content+.meta,.ui.items>.horizontal.item>.image+.content+.meta{bottom:7%;right:53%;width:44%}.ui.horizontal.items>.item .avatar,.ui.items>.horizontal.item .avatar{width:11.5%}.ui.items>.item .avatar{max-width:25px}.ui.one.items{margin-right:-2%;margin-left:-2%}.ui.one.items>.item{width:100%;margin-right:2%;margin-left:2%}.ui.two.items{margin-right:-1%;margin-left:-1%}.ui.two.items>.item{width:48%;margin-right:1%;margin-left:1%}.ui.two.items>.item:nth-child(2n+1){clear:right}.ui.three.items{margin-right:-1%;margin-left:-1%}.ui.three.items>.item{width:31.333%;margin-right:1%;margin-left:1%}.ui.three.items>.item:nth-child(3n+1){clear:right}.ui.four.items{margin-right:-.5%;margin-left:-.5%}.ui.four.items>.item{width:24%;margin-right:.5%;margin-left:.5%}.ui.four.items>.item:nth-child(4n+1){clear:right}.ui.five.items{margin-right:-.5%;margin-left:-.5%}.ui.five.items>.item{width:19%;margin-right:.5%;margin-left:.5%}.ui.five.items>.item:nth-child(5n+1){clear:right}.ui.six.items{margin-right:-.5%;margin-left:-.5%}.ui.six.items>.item{width:15.66%;margin-right:.5%;margin-left:.5%}.ui.six.items>.item:nth-child(6n+1){clear:right}.ui.seven.items{margin-right:-.5%;margin-left:-.5%}.ui.seven.items>.item{width:13.28%;margin-right:.5%;margin-left:.5%;font-size:11px}.ui.seven.items>.item:nth-child(7n+1){clear:right}.ui.eight.items{margin-right:-.25%;margin-left:-.25%}.ui.eight.items>.item{width:12%;margin-right:.25%;margin-left:.25%;font-size:11px}.ui.eight.items>.item:nth-child(8n+1){clear:right}.ui.nine.items{margin-right:-.25%;margin-left:-.25%}.ui.nine.items>.item{width:10.61%;margin-right:.25%;margin-left:.25%;font-size:10px}.ui.nine.items>.item:nth-child(9n+1){clear:right}.ui.ten.items{margin-right:-.2%;margin-left:-.2%}.ui.ten.items>.item{width:9.6%;margin-right:.2%;margin-left:.2%;font-size:10px}.ui.ten.items>.item:nth-child(10n+1){clear:right}.ui.eleven.items{margin-right:-.2%;margin-left:-.2%}.ui.eleven.items>.item{width:8.69%;margin-right:.2%;margin-left:.2%;font-size:9px}.ui.eleven.items>.item:nth-child(11n+1){clear:right}.ui.twelve.items{margin-right:-.1%;margin-left:-.1%}.ui.twelve.items>.item{width:8.1333%;margin-right:.1%;margin-left:.1%;font-size:9px}.ui.twelve.items>.item:nth-child(12n+1){clear:right}ul.ui.list,ol.ui.list,.ui.list{list-style-type:none;margin:1em 0;padding:0}ul.ui.list ul,ol.ui.list ol,.ui.list .list{margin:0;padding:.5em 1em .5em 0}ul.ui.list:first-child,ol.ui.list:first-child,.ui.list:first-child{margin-top:0}ul.ui.list:last-child,ol.ui.list:last-child,.ui.list:last-child{margin-bottom:0}ul.ui.list li,ol.ui.list li,.ui.list .item{display:list-item;list-style-type:none;list-style-position:inside;padding:.3em 0;line-height:1.2em}.ui.list .item:after{content:'';display:block;height:0;clear:both;visibility:hidden}.ui.list .list{clear:both}.ui.list .item>.icon{display:block;float:right;margin:0 0 0 1em;padding:.1em 0 0}.ui.list .item>.icon:only-child{display:inline-block}.ui.horizontal.list .item>.icon{margin:0;padding:0 0 0 .25em}.ui.horizontal.list .item>.icon,.ui.horizontal.list .item>.icon+.content{float:none;display:inline-block}.ui.list .item>img{display:block;float:right;margin-left:1em;vertical-align:middle}.ui.list .item>.content{display:inline-block;vertical-align:middle;line-height:1.2em}.ui.list .item>.icon+.content{display:table-cell;vertical-align:top}.ui.list a{cursor:pointer}.ui.list a .icon{color:rgba(0,0,0,.6);-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.ui.list .header{font-weight:700}.ui.list .description{color:rgba(0,0,0,.5)}.ui.list .item>.left.floated{margin-left:1em;float:right}.ui.list .item>.right.floated{margin-right:1em;float:left}.ui.horizontal.list{display:inline-block;font-size:0}.ui.horizontal.list>.item{display:inline-block;margin-right:1em;font-size:1rem}.ui.horizontal.list>.item:first-child{margin-right:0}.ui.horizontal.list .list{padding-right:0;padding-bottom:0}.ui.list a:hover .icon{color:rgba(0,0,0,.8)}.ui.inverted.list a .icon{color:rgba(255,255,255,.6)}.ui.inverted.list .description{color:rgba(255,255,255,.8)}.ui.inverted.link.list .item{color:rgba(255,255,255,.4)}.ui.link.list .item{color:rgba(0,0,0,.3)}.ui.link.list a.item,.ui.link.list .item a{color:rgba(0,0,0,.5)}.ui.link.list a.item:hover,.ui.link.list .item a:hover{color:rgba(0,0,0,.8)}.ui.link.list a.item:active,.ui.link.list .item a:active{color:rgba(0,0,0,.8)}.ui.link.list a.active.item,.ui.link.list .active.item a{color:rgba(0,0,0,.8)}.ui.inverted.link.list a.item,.ui.inverted.link.list .item a{color:rgba(255,255,255,.6)}.ui.inverted.link.list a.item:hover,.ui.inverted.link.list .item a:hover{color:rgba(255,255,255,.8)}.ui.inverted.link.list a.item:active,.ui.inverted.link.list .item a:active{color:rgba(255,255,255,.9)}.ui.inverted.link.list a.active.item,.ui.inverted.link.list .active.item a{color:rgba(255,255,255,.8)}.ui.selection.list .item{cursor:pointer;color:rgba(0,0,0,.4);padding:.5em;-webkit-transition:.2s color ease,.2s padding-right ease,.2s background-color ease;-moz-transition:.2s color ease,.2s padding-right ease,.2s background-color ease;transition:.2s color ease,.2s padding-right ease,.2s background-color ease}.ui.selection.list .item:hover{background-color:rgba(0,0,0,.02);color:rgba(0,0,0,.7)}.ui.selection.list .item:active{background-color:rgba(0,0,0,.05);color:rgba(0,0,0,.7)}.ui.selection.list .item.active{background-color:rgba(0,0,0,.04);color:rgba(0,0,0,.7)}.ui.animated.list .item{-webkit-transition:.2s color ease,.2s padding-right ease,.2s background-color ease;-moz-transition:.2s color ease,.2s padding-right ease,.2s background-color ease;transition:.2s color ease,.2s padding-right ease,.2s background-color ease}.ui.animated.list:not(.horizontal) .item:hover{padding-right:1em}.ui.animated.list:not(.horizontal) .item:hover .item:hover{padding-right:.5em}.ui.inverted.selection.list .item{color:rgba(255,255,255,.6)}.ui.inverted.selection.list .item:hover{background-color:rgba(255,255,255,.04);color:rgba(255,255,255,.8)}.ui.inverted.selection.list .item:active{background-color:rgba(255,255,255,.1);color:rgba(255,255,255,.7)}.ui.inverted.selection.list .item.active{background-color:rgba(255,255,255,.08);color:#FFF}ul.ui.list,.ui.bulleted.list{margin-right:1.5em}ul.ui.list li,.ui.bulleted.list .item{position:relative}ul.ui.list li:before,.ui.bulleted.list .item:before{position:absolute;right:-1.5em;content:'•'}ul.ui.list ul,.ui.bulleted.list .list{padding-right:1.5em}ul.ui.horizontal.bulleted.list,.ui.horizontal.bulleted.list{margin-right:0}ul.ui.horizontal.bulleted.list li,.ui.horizontal.bulleted.list .item{margin-right:1.5em}ul.ui.horizontal.bulleted.list li:before,.ui.horizontal.bulleted.list .item:before{right:-.9em}ul.ui.horizontal.bulleted.list li:first-child,.ui.horizontal.bulleted.list .item:first-child{margin-right:0}ul.ui.horizontal.bulleted.list li:first-child::before,.ui.horizontal.bulleted.list .item:first-child::before{display:none}ol.ui.list,.ui.ordered.list{counter-reset:ordered;margin-right:2em;list-style-type:none}ol.ui.list li,.ui.ordered.list .item{list-style-type:none;position:relative}ol.ui.list li:before,.ui.ordered.list .item:before{position:absolute;right:-2em;counter-increment:ordered;content:counters(ordered,".");text-align:left;vertical-align:top;opacity:.75}ol.ui.list ol,.ui.ordered.list .list{counter-reset:ordered;padding-right:2.5em}ol.ui.list ol li:before,.ui.ordered.list .list .item:before{right:-2.5em}ol.ui.horizontal.list,.ui.ordered.horizontal.list{margin-right:0}ol.ui.horizontal.list li:before,.ui.ordered.horizontal.list .item:before{position:static;right:0;margin:0 0 0 .5em}.ui.divided.list>.item,.ui.divided.list:not(.horizontal)>.list{border-top:1px solid rgba(0,0,0,.1);padding-right:.5em;padding-left:.5em}.ui.divided.list .item .menu .item{border-width:0}.ui.divided.list .item:first-child{border-top-width:0}.ui.divided.list:not(.horizontal) .list{margin-right:-.5em;margin-left:-.5em}.ui.divided.list:not(.horizontal) .list .item{padding-right:1em;padding-left:1em}.ui.divided.list:not(.horizontal) .list .item:first-child{border-top-width:1px}.ui.divided.bulleted.list{margin-right:0}.ui.divided.bulleted.list .item{padding-right:1.5em}.ui.divided.bulleted.list .item:before{right:.5em}.ui.divided.ordered.list{margin-right:0}.ui.divided.ordered.list>.item{padding-right:2em;padding-left:2em}.ui.divided.ordered.list>.item:before{right:.5em}.ui.divided.ordered.list .item .list{margin-right:-2em;margin-left:-2em}.ui.divided.horizontal.list{margin-right:0}.ui.divided.horizontal.list>.item{border-top:0;border-right:1px solid rgba(0,0,0,.1);margin:0;padding-right:.75em;padding-left:.75em;line-height:.6em}.ui.horizontal.divided.list>.item:first-child{border-right:0;padding-right:0}.ui.divided.inverted.list>.item,.ui.divided.inverted.list>.list{border-color:rgba(255,255,255,.2)}.ui.divided.inverted.horizontal.list .item{border-color:rgba(255,255,255,.2)}.ui.celled.list>.item,.ui.celled.list>.list{border-top:1px solid rgba(0,0,0,.1);padding-right:.5em;padding-left:.5em}.ui.celled.list>.item:last-child{border-bottom:1px solid rgba(0,0,0,.1)}.ui.celled.list .item .list{margin-right:-.5em;margin-left:-.5em}.ui.celled.list .item .list .item{border-width:0}.ui.celled.list .list .item:first-child{border-top-width:0}.ui.celled.bulleted.list{margin-right:0}.ui.celled.bulleted.list>.item{padding-right:1.5em}.ui.celled.bulleted.list>.item:before{right:.5em}.ui.celled.ordered.list{margin-right:0}.ui.celled.ordered.list .item{padding-right:2em;padding-left:2em}.ui.celled.ordered.list .item:before{right:.5em}.ui.celled.ordered.list .item .list{margin-right:-2em;margin-left:-2em}.ui.horizontal.celled.list{margin-right:0}.ui.horizontal.celled.list .item{border-top:0;border-right:1px solid rgba(0,0,0,.1);margin:0;padding-right:.75em;padding-left:.75em;line-height:.6em}.ui.horizontal.celled.list .item:last-child{border-bottom:0;border-left:1px solid rgba(0,0,0,.1)}.ui.celled.inverted.list>.item,.ui.celled.inverted.list>.list{border-color:rgba(255,255,255,.2)}.ui.celled.inverted.horizontal.list .item{border-color:rgba(255,255,255,.2)}.ui.relaxed.list:not(.horizontal) .item{padding-top:.5em;padding-bottom:.5em}.ui.relaxed.list .header{margin-bottom:.25em}.ui.horizontal.relaxed.list .item{padding-right:1.25em;padding-left:1.25em}.ui.very.relaxed.list:not(.horizontal) .item{padding-top:1em;padding-bottom:1em}.ui.very.relaxed.list .header{margin-bottom:.5em}.ui.horizontal.very.relaxed.list .item{padding-right:2em;padding-left:2em}.ui.mini.list .item{font-size:.7rem}.ui.tiny.list .item{font-size:.8125rem}.ui.small.list .item{font-size:.875rem}.ui.list .item{font-size:1em}.ui.large.list .item{font-size:1.125rem}.ui.big.list .item{font-size:1.25rem}.ui.huge.list .item{font-size:1.375rem}.ui.massive.list .item{font-size:1.5rem}.ui.statistic{text-align:center}.ui.statistic>.number{font-size:4em;font-weight:700;color:rgba(0,0,0,.7)}.ui.statistic>.description{opacity:.8}
\ No newline at end of file
diff --git a/css/semantic/rtl/packaged/fonts/basic.icons.eot b/css/semantic/rtl/packaged/fonts/basic.icons.eot
new file mode 100644
index 0000000..25066de
Binary files /dev/null and b/css/semantic/rtl/packaged/fonts/basic.icons.eot differ
diff --git a/css/semantic/rtl/packaged/fonts/basic.icons.svg b/css/semantic/rtl/packaged/fonts/basic.icons.svg
new file mode 100644
index 0000000..b9c54d0
--- /dev/null
+++ b/css/semantic/rtl/packaged/fonts/basic.icons.svg
@@ -0,0 +1,450 @@
+
+
+
+
+Created by FontForge 20100429 at Thu Sep 20 22:09:47 2012
+ By root
+Copyright (C) 2012 by original authors @ fontello.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/css/semantic/rtl/packaged/fonts/basic.icons.ttf b/css/semantic/rtl/packaged/fonts/basic.icons.ttf
new file mode 100644
index 0000000..318a264
Binary files /dev/null and b/css/semantic/rtl/packaged/fonts/basic.icons.ttf differ
diff --git a/css/semantic/rtl/packaged/fonts/basic.icons.woff b/css/semantic/rtl/packaged/fonts/basic.icons.woff
new file mode 100644
index 0000000..baba1b5
Binary files /dev/null and b/css/semantic/rtl/packaged/fonts/basic.icons.woff differ
diff --git a/css/semantic/rtl/packaged/fonts/icons.eot b/css/semantic/rtl/packaged/fonts/icons.eot
new file mode 100644
index 0000000..0662cb9
Binary files /dev/null and b/css/semantic/rtl/packaged/fonts/icons.eot differ
diff --git a/css/semantic/rtl/packaged/fonts/icons.otf b/css/semantic/rtl/packaged/fonts/icons.otf
new file mode 100644
index 0000000..7012545
Binary files /dev/null and b/css/semantic/rtl/packaged/fonts/icons.otf differ
diff --git a/css/semantic/rtl/packaged/fonts/icons.svg b/css/semantic/rtl/packaged/fonts/icons.svg
new file mode 100644
index 0000000..2edb4ec
--- /dev/null
+++ b/css/semantic/rtl/packaged/fonts/icons.svg
@@ -0,0 +1,399 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/rtl/packaged/fonts/icons.ttf b/css/semantic/rtl/packaged/fonts/icons.ttf
new file mode 100644
index 0000000..d365924
Binary files /dev/null and b/css/semantic/rtl/packaged/fonts/icons.ttf differ
diff --git a/css/semantic/rtl/packaged/fonts/icons.woff b/css/semantic/rtl/packaged/fonts/icons.woff
new file mode 100644
index 0000000..b9bd17e
Binary files /dev/null and b/css/semantic/rtl/packaged/fonts/icons.woff differ
diff --git a/css/semantic/rtl/packaged/images/loader-large-inverted.gif b/css/semantic/rtl/packaged/images/loader-large-inverted.gif
new file mode 100644
index 0000000..ee5283f
Binary files /dev/null and b/css/semantic/rtl/packaged/images/loader-large-inverted.gif differ
diff --git a/css/semantic/rtl/packaged/images/loader-large.gif b/css/semantic/rtl/packaged/images/loader-large.gif
new file mode 100644
index 0000000..519621c
Binary files /dev/null and b/css/semantic/rtl/packaged/images/loader-large.gif differ
diff --git a/css/semantic/rtl/packaged/images/loader-medium-inverted.gif b/css/semantic/rtl/packaged/images/loader-medium-inverted.gif
new file mode 100644
index 0000000..caa3110
Binary files /dev/null and b/css/semantic/rtl/packaged/images/loader-medium-inverted.gif differ
diff --git a/css/semantic/rtl/packaged/images/loader-medium.gif b/css/semantic/rtl/packaged/images/loader-medium.gif
new file mode 100644
index 0000000..386eb5a
Binary files /dev/null and b/css/semantic/rtl/packaged/images/loader-medium.gif differ
diff --git a/css/semantic/rtl/packaged/images/loader-mini-inverted.gif b/css/semantic/rtl/packaged/images/loader-mini-inverted.gif
new file mode 100644
index 0000000..c7c95b9
Binary files /dev/null and b/css/semantic/rtl/packaged/images/loader-mini-inverted.gif differ
diff --git a/css/semantic/rtl/packaged/images/loader-mini.gif b/css/semantic/rtl/packaged/images/loader-mini.gif
new file mode 100644
index 0000000..7f3e27c
Binary files /dev/null and b/css/semantic/rtl/packaged/images/loader-mini.gif differ
diff --git a/css/semantic/rtl/packaged/images/loader-small-inverted.gif b/css/semantic/rtl/packaged/images/loader-small-inverted.gif
new file mode 100644
index 0000000..bbb0a67
Binary files /dev/null and b/css/semantic/rtl/packaged/images/loader-small-inverted.gif differ
diff --git a/css/semantic/rtl/packaged/images/loader-small.gif b/css/semantic/rtl/packaged/images/loader-small.gif
new file mode 100644
index 0000000..8c9f60e
Binary files /dev/null and b/css/semantic/rtl/packaged/images/loader-small.gif differ
diff --git a/css/semantic/rtl/packaged/javascript/semantic.js b/css/semantic/rtl/packaged/javascript/semantic.js
new file mode 100644
index 0000000..c1c7851
--- /dev/null
+++ b/css/semantic/rtl/packaged/javascript/semantic.js
@@ -0,0 +1,12050 @@
+/*
+ * # Semantic - Accordion
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.accordion = function(parameters) {
+ var
+ $allModules = $(this),
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.accordion.settings, parameters)
+ : $.extend({}, $.fn.accordion.settings),
+
+ className = settings.className,
+ namespace = settings.namespace,
+ selector = settings.selector,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+ moduleSelector = $allModules.selector || '',
+
+ $module = $(this),
+ $title = $module.find(selector.title),
+ $content = $module.find(selector.content),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing accordion with bound events', $module);
+ // initializing
+ $title
+ .on('click' + eventNamespace, module.event.click)
+ ;
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.debug('Destroying previous accordion for', $module);
+ $module
+ .removeData(moduleNamespace)
+ ;
+ $title
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+ click: function() {
+ module.verbose('Title clicked', this);
+ var
+ $activeTitle = $(this),
+ index = $title.index($activeTitle)
+ ;
+ module.toggle(index);
+ },
+ resetDisplay: function() {
+ $(this).css('display', '');
+ if( $(this).attr('style') == '') {
+ $(this)
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ }
+ },
+ resetOpacity: function() {
+ $(this).css('opacity', '');
+ if( $(this).attr('style') == '') {
+ $(this)
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ }
+ }
+ },
+
+ toggle: function(index) {
+ module.debug('Toggling content content at index', index);
+ var
+ $activeTitle = $title.eq(index),
+ $activeContent = $activeTitle.next($content),
+ contentIsOpen = $activeContent.is(':visible')
+ ;
+ if(contentIsOpen) {
+ if(settings.collapsible) {
+ module.close(index);
+ }
+ else {
+ module.debug('Cannot close accordion content collapsing is disabled');
+ }
+ }
+ else {
+ module.open(index);
+ }
+ },
+
+ open: function(index) {
+ var
+ $activeTitle = $title.eq(index),
+ $activeContent = $activeTitle.next($content),
+ $previousTitle = $activeTitle.siblings(selector.title).filter('.' + className.active),
+ $previousContent = $previousTitle.next($title),
+ contentIsOpen = ($previousTitle.size() > 0)
+ ;
+ if( !$activeContent.is(':animated') ) {
+ module.debug('Opening accordion content', $activeTitle);
+ if(settings.exclusive && contentIsOpen) {
+ $previousTitle
+ .removeClass(className.active)
+ ;
+ $previousContent
+ .stop()
+ .children()
+ .stop()
+ .animate({
+ opacity: 0
+ }, settings.duration, module.event.resetOpacity)
+ .end()
+ .slideUp(settings.duration , settings.easing, function() {
+ $previousContent
+ .removeClass(className.active)
+ .children()
+ ;
+ $.proxy(module.event.resetDisplay, this)();
+ })
+ ;
+ }
+ $activeTitle
+ .addClass(className.active)
+ ;
+ $activeContent
+ .stop()
+ .children()
+ .stop()
+ .animate({
+ opacity: 1
+ }, settings.duration)
+ .end()
+ .slideDown(settings.duration, settings.easing, function() {
+ $activeContent
+ .addClass(className.active)
+ ;
+ $.proxy(module.event.resetDisplay, this)();
+ $.proxy(settings.onOpen, $activeContent)();
+ $.proxy(settings.onChange, $activeContent)();
+ })
+ ;
+ }
+ },
+
+ close: function(index) {
+ var
+ $activeTitle = $title.eq(index),
+ $activeContent = $activeTitle.next($content)
+ ;
+ module.debug('Closing accordion content', $activeContent);
+ $activeTitle
+ .removeClass(className.active)
+ ;
+ $activeContent
+ .removeClass(className.active)
+ .show()
+ .stop()
+ .children()
+ .stop()
+ .animate({
+ opacity: 0
+ }, settings.duration, module.event.resetOpacity)
+ .end()
+ .slideUp(settings.duration, settings.easing, function(){
+ $.proxy(module.event.resetDisplay, this)();
+ $.proxy(settings.onClose, $activeContent)();
+ $.proxy(settings.onChange, $activeContent)();
+ })
+ ;
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ module.debug('Changing internal', name, value);
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else {
+ module[name] = value;
+ }
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.accordion.settings = {
+ name : 'Accordion',
+ namespace : 'accordion',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ exclusive : true,
+ collapsible : true,
+
+ duration : 500,
+ easing : 'easeInOutQuint',
+
+ onOpen : function(){},
+ onClose : function(){},
+ onChange : function(){},
+
+ error: {
+ method : 'The method you called is not defined'
+ },
+
+ className : {
+ active : 'active'
+ },
+
+ selector : {
+ title : '.title',
+ content : '.content'
+ }
+
+
+};
+
+// Adds easing
+$.extend( $.easing, {
+ easeInOutQuint: function (x, t, b, c, d) {
+ if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
+ return c/2*((t-=2)*t*t*t*t + 2) + b;
+ }
+});
+
+})( jQuery, window , document );
+
+
+/*
+ * # Semantic - API
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+ $.api = $.fn.api = function(parameters) {
+
+ var
+ settings = $.extend(true, {}, $.api.settings, parameters),
+
+ // if this keyword isn't a jQuery object, create one
+ context = (typeof this != 'function')
+ ? this
+ : $('
'),
+ // context defines the element used for loading/error state
+ $context = (settings.stateContext)
+ ? $(settings.stateContext)
+ : $(context),
+ // module is the thing that initiates the api action, can be independent of context
+ $module = typeof this == 'object'
+ ? $(context)
+ : $context,
+
+ element = this,
+ time = new Date().getTime(),
+ performance = [],
+
+ moduleSelector = $module.selector || '',
+ moduleNamespace = settings.namespace + '-module',
+
+ className = settings.className,
+ metadata = settings.metadata,
+ error = settings.error,
+
+ instance = $module.data(moduleNamespace),
+
+ query = arguments[0],
+ methodInvoked = (instance !== undefined && typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ module,
+ returnedValue
+ ;
+
+ module = {
+ initialize: function() {
+ var
+ runSettings,
+
+ loadingTimer = new Date().getTime(),
+ loadingDelay,
+
+ promise,
+ url,
+
+ formData = {},
+ data,
+
+ ajaxSettings = {},
+ xhr
+ ;
+
+ // serialize parent form if requested!
+ if(settings.serializeForm && $(this).toJSON() !== undefined) {
+ formData = module.get.formData();
+ module.debug('Adding form data to API Request', formData);
+ $.extend(true, settings.data, formData);
+ }
+
+ // let beforeSend change settings object
+ runSettings = $.proxy(settings.beforeSend, $module)(settings);
+
+ // check for exit conditions
+ if(runSettings !== undefined && !runSettings) {
+ module.error(error.beforeSend);
+ module.reset();
+ return;
+ }
+
+ // get real url from template
+ url = module.get.url( module.get.templateURL() );
+
+ // exit conditions reached from missing url parameters
+ if( !url ) {
+ module.error(error.missingURL);
+ module.reset();
+ return;
+ }
+
+ // promise handles notification on api request, so loading min. delay can occur for all notifications
+ promise =
+ $.Deferred()
+ .always(function() {
+ if(settings.stateContext) {
+ $context
+ .removeClass(className.loading)
+ ;
+ }
+ $.proxy(settings.complete, $module)();
+ })
+ .done(function(response) {
+ module.debug('API request successful');
+ // take a stab at finding success state if json
+ if(settings.dataType == 'json') {
+ if (response.error !== undefined) {
+ $.proxy(settings.failure, $context)(response.error, settings, $module);
+ }
+ else if ($.isArray(response.errors)) {
+ $.proxy(settings.failure, $context)(response.errors[0], settings, $module);
+ }
+ else {
+ $.proxy(settings.success, $context)(response, settings, $module);
+ }
+ }
+ // otherwise
+ else {
+ $.proxy(settings.success, $context)(response, settings, $module);
+ }
+ })
+ .fail(function(xhr, status, httpMessage) {
+ var
+ errorMessage = (settings.error[status] !== undefined)
+ ? settings.error[status]
+ : httpMessage,
+ response
+ ;
+ // let em know unless request aborted
+ if(xhr !== undefined) {
+ // readyState 4 = done, anything less is not really sent
+ if(xhr.readyState !== undefined && xhr.readyState == 4) {
+
+ // if http status code returned and json returned error, look for it
+ if( xhr.status != 200 && httpMessage !== undefined && httpMessage !== '') {
+ module.error(error.statusMessage + httpMessage);
+ }
+ else {
+ if(status == 'error' && settings.dataType == 'json') {
+ try {
+ response = $.parseJSON(xhr.responseText);
+ if(response && response.error !== undefined) {
+ errorMessage = response.error;
+ }
+ }
+ catch(error) {
+ module.error(error.JSONParse);
+ }
+ }
+ }
+ $context
+ .removeClass(className.loading)
+ .addClass(className.error)
+ ;
+ // show error state only for duration specified in settings
+ if(settings.errorLength > 0) {
+ setTimeout(function(){
+ $context
+ .removeClass(className.error)
+ ;
+ }, settings.errorLength);
+ }
+ module.debug('API Request error:', errorMessage);
+ $.proxy(settings.failure, $context)(errorMessage, settings, this);
+ }
+ else {
+ module.debug('Request Aborted (Most likely caused by page change)');
+ }
+ }
+ })
+ ;
+
+ // look for params in data
+ $.extend(true, ajaxSettings, settings, {
+ success : function(){},
+ failure : function(){},
+ complete : function(){},
+ type : settings.method || settings.type,
+ data : data,
+ url : url,
+ beforeSend : settings.beforeXHR
+ });
+
+ if(settings.stateContext) {
+ $context
+ .addClass(className.loading)
+ ;
+ }
+
+ if(settings.progress) {
+ module.verbose('Adding progress events');
+ $.extend(true, ajaxSettings, {
+ xhr: function() {
+ var
+ xhr = new window.XMLHttpRequest()
+ ;
+ xhr.upload.addEventListener('progress', function(event) {
+ var
+ percentComplete
+ ;
+ if (event.lengthComputable) {
+ percentComplete = Math.round(event.loaded / event.total * 10000) / 100 + '%';
+ $.proxy(settings.progress, $context)(percentComplete, event);
+ }
+ }, false);
+ xhr.addEventListener('progress', function(event) {
+ var
+ percentComplete
+ ;
+ if (event.lengthComputable) {
+ percentComplete = Math.round(event.loaded / event.total * 10000) / 100 + '%';
+ $.proxy(settings.progress, $context)(percentComplete, event);
+ }
+ }, false);
+ return xhr;
+ }
+ });
+ }
+
+ module.verbose('Creating AJAX request with settings: ', ajaxSettings);
+ xhr =
+ $.ajax(ajaxSettings)
+ .always(function() {
+ // calculate if loading time was below minimum threshold
+ loadingDelay = ( settings.loadingLength - (new Date().getTime() - loadingTimer) );
+ settings.loadingDelay = loadingDelay < 0
+ ? 0
+ : loadingDelay
+ ;
+ })
+ .done(function(response) {
+ var
+ context = this
+ ;
+ setTimeout(function(){
+ promise.resolveWith(context, [response]);
+ }, settings.loadingDelay);
+ })
+ .fail(function(xhr, status, httpMessage) {
+ var
+ context = this
+ ;
+ // page triggers abort on navigation, dont show error
+ if(status != 'abort') {
+ setTimeout(function(){
+ promise.rejectWith(context, [xhr, status, httpMessage]);
+ }, settings.loadingDelay);
+ }
+ else {
+ $context
+ .removeClass(className.error)
+ .removeClass(className.loading)
+ ;
+ }
+ })
+ ;
+ if(settings.stateContext) {
+ $module
+ .data(metadata.promise, promise)
+ .data(metadata.xhr, xhr)
+ ;
+ }
+ },
+
+ get: {
+ formData: function() {
+ return $module
+ .closest('form')
+ .toJSON()
+ ;
+ },
+ templateURL: function() {
+ var
+ action = $module.data(settings.metadata.action) || settings.action || false,
+ url
+ ;
+ if(action) {
+ module.debug('Creating url for: ', action);
+ if(settings.api[action] !== undefined) {
+ url = settings.api[action];
+ }
+ else {
+ module.error(error.missingAction);
+ }
+ }
+ // override with url if specified
+ if(settings.url) {
+ url = settings.url;
+ module.debug('Getting url', url);
+ }
+ return url;
+ },
+ url: function(url, urlData) {
+ var
+ urlVariables
+ ;
+ if(url) {
+ urlVariables = url.match(settings.regExpTemplate);
+ urlData = urlData || settings.urlData;
+
+ if(urlVariables) {
+ module.debug('Looking for URL variables', urlVariables);
+ $.each(urlVariables, function(index, templateValue){
+ var
+ term = templateValue.substr( 2, templateValue.length - 3),
+ termValue = ($.isPlainObject(urlData) && urlData[term] !== undefined)
+ ? urlData[term]
+ : ($module.data(term) !== undefined)
+ ? $module.data(term)
+ : urlData[term]
+ ;
+ module.verbose('Looking for variable', term, $module, $module.data(term), urlData[term]);
+ // remove optional value
+ if(termValue === false) {
+ module.debug('Removing variable from URL', urlVariables);
+ url = url.replace('/' + templateValue, '');
+ }
+ // undefined condition
+ else if(termValue === undefined || !termValue) {
+ module.error(error.missingParameter + term);
+ url = false;
+ return false;
+ }
+ else {
+ url = url.replace(templateValue, termValue);
+ }
+ });
+ }
+ }
+ return url;
+ }
+ },
+
+ // reset api request
+ reset: function() {
+ $module
+ .data(metadata.promise, false)
+ .data(metadata.xhr, false)
+ ;
+ $context
+ .removeClass(className.error)
+ .removeClass(className.loading)
+ ;
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+ };
+
+ // handle DOM attachment to API functionality
+ $.fn.apiButton = function(parameters) {
+ $(this)
+ .each(function(){
+ var
+ // if only function passed it is success callback
+ $module = $(this),
+ selector = $(this).selector || '',
+
+ settings = ( $.isFunction(parameters) )
+ ? $.extend(true, {}, $.api.settings, $.fn.apiButton.settings, { stateContext: this, success: parameters })
+ : $.extend(true, {}, $.api.settings, $.fn.apiButton.settings, { stateContext: this}, parameters),
+ module
+ ;
+ module = {
+ initialize: function() {
+ if(settings.context && selector !== '') {
+ $(settings.context)
+ .on(selector, 'click.' + settings.namespace, module.click)
+ ;
+ }
+ else {
+ $module
+ .on('click.' + settings.namespace, module.click)
+ ;
+ }
+ },
+ click: function() {
+ if(!settings.filter || $(this).filter(settings.filter).size() === 0) {
+ $.proxy( $.api, this )(settings);
+ }
+ }
+ };
+ module.initialize();
+ })
+ ;
+ return this;
+ };
+
+ $.api.settings = {
+
+ name : 'API',
+ namespace : 'api',
+
+ debug : true,
+ verbose : true,
+ performance : true,
+
+ api : {},
+
+ beforeSend : function(settings) {
+ return settings;
+ },
+ beforeXHR : function(xhr) {},
+ success : function(response) {},
+ complete : function(response) {},
+ failure : function(errorCode) {},
+ progress : false,
+
+ error : {
+ missingAction : 'API action used but no url was defined',
+ missingURL : 'URL not specified for the API action',
+ missingParameter : 'Missing an essential URL parameter: ',
+
+ timeout : 'Your request timed out',
+ error : 'There was an error with your request',
+ parseError : 'There was an error parsing your request',
+ JSONParse : 'JSON could not be parsed during error handling',
+ statusMessage : 'Server gave an error: ',
+ beforeSend : 'The before send function has aborted the request',
+ exitConditions : 'API Request Aborted. Exit conditions met'
+ },
+
+ className: {
+ loading : 'loading',
+ error : 'error'
+ },
+
+ metadata: {
+ action : 'action',
+ promise : 'promise',
+ xhr : 'xhr'
+ },
+
+ regExpTemplate: /\{\$([A-z]+)\}/g,
+
+ action : false,
+ url : false,
+ urlData : false,
+ serializeForm : false,
+
+ stateContext : false,
+
+ method : 'get',
+ data : {},
+ dataType : 'json',
+ cache : true,
+
+ loadingLength : 200,
+ errorLength : 2000
+
+ };
+
+ $.fn.apiButton.settings = {
+ filter : '.disabled, .loading',
+ context : false,
+ stateContext : false
+ };
+
+})( jQuery, window , document );
+/*
+ * # Semantic - Colorize
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+ $.fn.colorize = function(parameters) {
+ var
+ settings = $.extend(true, {}, $.fn.colorize.settings, parameters),
+ // hoist arguments
+ moduleArguments = arguments || false
+ ;
+ $(this)
+ .each(function(instanceIndex) {
+
+ var
+ $module = $(this),
+
+ mainCanvas = $('
')[0],
+ imageCanvas = $('
')[0],
+ overlayCanvas = $('
')[0],
+
+ backgroundImage = new Image(),
+
+ // defs
+ mainContext,
+ imageContext,
+ overlayContext,
+
+ image,
+ imageName,
+
+ width,
+ height,
+
+ // shortucts
+ colors = settings.colors,
+ paths = settings.paths,
+ namespace = settings.namespace,
+ error = settings.error,
+
+ // boilerplate
+ instance = $module.data('module-' + namespace),
+ module
+ ;
+
+ module = {
+
+ checkPreconditions: function() {
+ module.debug('Checking pre-conditions');
+
+ if( !$.isPlainObject(colors) || $.isEmptyObject(colors) ) {
+ module.error(error.undefinedColors);
+ return false;
+ }
+ return true;
+ },
+
+ async: function(callback) {
+ if(settings.async) {
+ setTimeout(callback, 0);
+ }
+ else {
+ callback();
+ }
+ },
+
+ getMetadata: function() {
+ module.debug('Grabbing metadata');
+ image = $module.data('image') || settings.image || undefined;
+ imageName = $module.data('name') || settings.name || instanceIndex;
+ width = settings.width || $module.width();
+ height = settings.height || $module.height();
+ if(width === 0 || height === 0) {
+ module.error(error.undefinedSize);
+ }
+ },
+
+ initialize: function() {
+ module.debug('Initializing with colors', colors);
+ if( module.checkPreconditions() ) {
+
+ module.async(function() {
+ module.getMetadata();
+ module.canvas.create();
+
+ module.draw.image(function() {
+ module.draw.colors();
+ module.canvas.merge();
+ });
+ $module
+ .data('module-' + namespace, module)
+ ;
+ });
+ }
+ },
+
+ redraw: function() {
+ module.debug('Redrawing image');
+ module.async(function() {
+ module.canvas.clear();
+ module.draw.colors();
+ module.canvas.merge();
+ });
+ },
+
+ change: {
+ color: function(colorName, color) {
+ module.debug('Changing color', colorName);
+ if(colors[colorName] === undefined) {
+ module.error(error.missingColor);
+ return false;
+ }
+ colors[colorName] = color;
+ module.redraw();
+ }
+ },
+
+ canvas: {
+ create: function() {
+ module.debug('Creating canvases');
+
+ mainCanvas.width = width;
+ mainCanvas.height = height;
+ imageCanvas.width = width;
+ imageCanvas.height = height;
+ overlayCanvas.width = width;
+ overlayCanvas.height = height;
+
+ mainContext = mainCanvas.getContext('2d');
+ imageContext = imageCanvas.getContext('2d');
+ overlayContext = overlayCanvas.getContext('2d');
+
+ $module
+ .append( mainCanvas )
+ ;
+ mainContext = $module.children('canvas')[0].getContext('2d');
+ },
+ clear: function(context) {
+ module.debug('Clearing canvas');
+ overlayContext.fillStyle = '#FFFFFF';
+ overlayContext.fillRect(0, 0, width, height);
+ },
+ merge: function() {
+ if( !$.isFunction(mainContext.blendOnto) ) {
+ module.error(error.missingPlugin);
+ return;
+ }
+ mainContext.putImageData( imageContext.getImageData(0, 0, width, height), 0, 0);
+ overlayContext.blendOnto(mainContext, 'multiply');
+ }
+ },
+
+ draw: {
+
+ image: function(callback) {
+ module.debug('Drawing image');
+ callback = callback || function(){};
+ if(image) {
+ backgroundImage.src = image;
+ backgroundImage.onload = function() {
+ imageContext.drawImage(backgroundImage, 0, 0);
+ callback();
+ };
+ }
+ else {
+ module.error(error.noImage);
+ callback();
+ }
+ },
+
+ colors: function() {
+ module.debug('Drawing color overlays', colors);
+ $.each(colors, function(colorName, color) {
+ settings.onDraw(overlayContext, imageName, colorName, color);
+ });
+ }
+
+ },
+
+ debug: function(message, variableName) {
+ if(settings.debug) {
+ if(variableName !== undefined) {
+ console.info(settings.name + ': ' + message, variableName);
+ }
+ else {
+ console.info(settings.name + ': ' + message);
+ }
+ }
+ },
+ error: function(errorMessage) {
+ console.warn(settings.name + ': ' + errorMessage);
+ },
+ invoke: function(methodName, context, methodArguments) {
+ var
+ method
+ ;
+ methodArguments = methodArguments || Array.prototype.slice.call( arguments, 2 );
+
+ if(typeof methodName == 'string' && instance !== undefined) {
+ methodName = methodName.split('.');
+ $.each(methodName, function(index, name) {
+ if( $.isPlainObject( instance[name] ) ) {
+ instance = instance[name];
+ return true;
+ }
+ else if( $.isFunction( instance[name] ) ) {
+ method = instance[name];
+ return true;
+ }
+ module.error(settings.error.method);
+ return false;
+ });
+ }
+ return ( $.isFunction( method ) )
+ ? method.apply(context, methodArguments)
+ : false
+ ;
+ }
+
+ };
+ if(instance !== undefined && moduleArguments) {
+ // simpler than invoke realizing to invoke itself (and losing scope due prototype.call()
+ if(moduleArguments[0] == 'invoke') {
+ moduleArguments = Array.prototype.slice.call( moduleArguments, 1 );
+ }
+ return module.invoke(moduleArguments[0], this, Array.prototype.slice.call( moduleArguments, 1 ) );
+ }
+ // initializing
+ module.initialize();
+ })
+ ;
+ return this;
+ };
+
+ $.fn.colorize.settings = {
+ name : 'Image Colorizer',
+ debug : true,
+ namespace : 'colorize',
+
+ onDraw : function(overlayContext, imageName, colorName, color) {},
+
+ // whether to block execution while updating canvas
+ async : true,
+ // object containing names and default values of color regions
+ colors : {},
+
+ metadata: {
+ image : 'image',
+ name : 'name'
+ },
+
+ error: {
+ noImage : 'No tracing image specified',
+ undefinedColors : 'No default colors specified.',
+ missingColor : 'Attempted to change color that does not exist',
+ missingPlugin : 'Blend onto plug-in must be included',
+ undefinedHeight : 'The width or height of image canvas could not be automatically determined. Please specify a height.'
+ }
+
+ };
+
+})( jQuery, window , document );
+
+/*
+ * # Semantic - Form Validation
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.form = function(fields, parameters) {
+ var
+ $allModules = $(this),
+
+ settings = $.extend(true, {}, $.fn.form.settings, parameters),
+ validation = $.extend({}, $.fn.form.settings.defaults, fields),
+
+ namespace = settings.namespace,
+ metadata = settings.metadata,
+ selector = settings.selector,
+ className = settings.className,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ $module = $(this),
+ $field = $(this).find(selector.field),
+ $group = $(this).find(selector.group),
+ $message = $(this).find(selector.message),
+ $prompt = $(this).find(selector.prompt),
+ $submit = $(this).find(selector.submit),
+
+ formErrors = [],
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing form validation', $module, validation, settings);
+ module.bindEvents();
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module', instance);
+ module.removeEvents();
+ $module
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing selector cache');
+ $field = $module.find(selector.field);
+ },
+
+ submit: function() {
+ module.verbose('Submitting form', $module);
+ $module
+ .submit()
+ ;
+ },
+
+ bindEvents: function() {
+ if(settings.keyboardShortcuts) {
+ $field
+ .on('keydown' + eventNamespace, module.event.field.keydown)
+ ;
+ }
+ $module
+ .on('submit' + eventNamespace, module.validate.form)
+ ;
+ $field
+ .on('blur' + eventNamespace, module.event.field.blur)
+ ;
+ $submit
+ .on('click' + eventNamespace, module.submit)
+ ;
+ $field
+ .each(function() {
+ var
+ type = $(this).prop('type'),
+ inputEvent = module.get.changeEvent(type)
+ ;
+ $(this)
+ .on(inputEvent + eventNamespace, module.event.field.change)
+ ;
+ })
+ ;
+ },
+
+ removeEvents: function() {
+ $module
+ .off(eventNamespace)
+ ;
+ $field
+ .off(eventNamespace)
+ ;
+ $submit
+ .off(eventNamespace)
+ ;
+ $field
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+ field: {
+ keydown: function(event) {
+ var
+ $field = $(this),
+ key = event.which,
+ keyCode = {
+ enter : 13,
+ escape : 27
+ }
+ ;
+ if( key == keyCode.escape) {
+ module.verbose('Escape key pressed blurring field');
+ $field
+ .blur()
+ ;
+ }
+ if(!event.ctrlKey && key == keyCode.enter && $field.is(selector.input) ) {
+ module.debug('Enter key pressed, submitting form');
+ $submit
+ .addClass(className.down)
+ ;
+ $field
+ .one('keyup' + eventNamespace, module.event.field.keyup)
+ ;
+ event.preventDefault();
+ return false;
+ }
+ },
+ keyup: function() {
+ module.verbose('Doing keyboard shortcut form submit');
+ $submit.removeClass(className.down);
+ module.submit();
+ },
+ blur: function() {
+ var
+ $field = $(this),
+ $fieldGroup = $field.closest($group)
+ ;
+ if( $fieldGroup.hasClass(className.error) ) {
+ module.debug('Revalidating field', $field, module.get.validation($field));
+ module.validate.field( module.get.validation($field) );
+ }
+ else if(settings.on == 'blur' || settings.on == 'change') {
+ module.validate.field( module.get.validation($field) );
+ }
+ },
+ change: function() {
+ var
+ $field = $(this),
+ $fieldGroup = $field.closest($group)
+ ;
+ if(settings.on == 'change' || ( $fieldGroup.hasClass(className.error) && settings.revalidate) ) {
+ clearTimeout(module.timer);
+ module.timer = setTimeout(function() {
+ module.debug('Revalidating field', $field, module.get.validation($field));
+ module.validate.field( module.get.validation($field) );
+ }, settings.delay);
+ }
+ }
+ }
+
+ },
+
+ get: {
+ changeEvent: function(type) {
+ if(type == 'checkbox' || type == 'radio' || type == 'hidden') {
+ return 'change';
+ }
+ else {
+ return (document.createElement('input').oninput !== undefined)
+ ? 'input'
+ : (document.createElement('input').onpropertychange !== undefined)
+ ? 'propertychange'
+ : 'keyup'
+ ;
+ }
+ },
+ field: function(identifier) {
+ module.verbose('Finding field with identifier', identifier);
+ if( $field.filter('#' + identifier).size() > 0 ) {
+ return $field.filter('#' + identifier);
+ }
+ else if( $field.filter('[name="' + identifier +'"]').size() > 0 ) {
+ return $field.filter('[name="' + identifier +'"]');
+ }
+ else if( $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]').size() > 0 ) {
+ return $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]');
+ }
+ return $('
');
+ },
+ validation: function($field) {
+ var
+ rules
+ ;
+ $.each(validation, function(fieldName, field) {
+ if( module.get.field(field.identifier).get(0) == $field.get(0) ) {
+ rules = field;
+ }
+ });
+ return rules || false;
+ }
+ },
+
+ has: {
+
+ field: function(identifier) {
+ module.verbose('Checking for existence of a field with identifier', identifier);
+ if( $field.filter('#' + identifier).size() > 0 ) {
+ return true;
+ }
+ else if( $field.filter('[name="' + identifier +'"]').size() > 0 ) {
+ return true;
+ }
+ else if( $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]').size() > 0 ) {
+ return true;
+ }
+ return false;
+ }
+
+ },
+
+ add: {
+ prompt: function(identifier, errors) {
+ var
+ $field = module.get.field(identifier),
+ $fieldGroup = $field.closest($group),
+ $prompt = $fieldGroup.find(selector.prompt),
+ promptExists = ($prompt.size() !== 0)
+ ;
+ errors = (typeof errors == 'string')
+ ? [errors]
+ : errors
+ ;
+ module.verbose('Adding field error state', identifier);
+ $fieldGroup
+ .addClass(className.error)
+ ;
+ if(settings.inline) {
+ if(!promptExists) {
+ $prompt = settings.templates.prompt(errors);
+ $prompt
+ .appendTo($fieldGroup)
+ ;
+ }
+ $prompt
+ .html(errors[0])
+ ;
+ if(!promptExists) {
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ module.verbose('Displaying error with css transition', settings.transition);
+ $prompt.transition(settings.transition + ' in', settings.duration);
+ }
+ else {
+ module.verbose('Displaying error with fallback javascript animation');
+ $prompt
+ .fadeIn(settings.duration)
+ ;
+ }
+ }
+ else {
+ module.verbose('Inline errors are disabled, no inline error added', identifier);
+ }
+ }
+ },
+ errors: function(errors) {
+ module.debug('Adding form error messages', errors);
+ $message
+ .html( settings.templates.error(errors) )
+ ;
+ }
+ },
+
+ remove: {
+ prompt: function(field) {
+ var
+ $field = module.get.field(field.identifier),
+ $fieldGroup = $field.closest($group),
+ $prompt = $fieldGroup.find(selector.prompt)
+ ;
+ $fieldGroup
+ .removeClass(className.error)
+ ;
+ if(settings.inline && $prompt.is(':visible')) {
+ module.verbose('Removing prompt for field', field);
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $prompt.transition(settings.transition + ' out', settings.duration, function() {
+ $prompt.remove();
+ });
+ }
+ else {
+ $prompt
+ .fadeOut(settings.duration, function(){
+ $prompt.remove();
+ })
+ ;
+ }
+ }
+ }
+ },
+
+ validate: {
+
+ form: function(event) {
+ var
+ allValid = true
+ ;
+ // reset errors
+ formErrors = [];
+ $.each(validation, function(fieldName, field) {
+ if( !( module.validate.field(field) ) ) {
+ allValid = false;
+ }
+ });
+ if(allValid) {
+ module.debug('Form has no validation errors, submitting');
+ $module
+ .removeClass(className.error)
+ .addClass(className.success)
+ ;
+ return $.proxy(settings.onSuccess, this)(event);
+ }
+ else {
+ module.debug('Form has errors');
+ $module.addClass(className.error);
+ if(!settings.inline) {
+ module.add.errors(formErrors);
+ }
+ return $.proxy(settings.onFailure, this)(formErrors);
+ }
+ },
+
+ // takes a validation object and returns whether field passes validation
+ field: function(field) {
+ var
+ $field = module.get.field(field.identifier),
+ fieldValid = true,
+ fieldErrors = []
+ ;
+ if(field.rules !== undefined) {
+ $.each(field.rules, function(index, rule) {
+ if( module.has.field(field.identifier) && !( module.validate.rule(field, rule) ) ) {
+ module.debug('Field is invalid', field.identifier, rule.type);
+ fieldErrors.push(rule.prompt);
+ fieldValid = false;
+ }
+ });
+ }
+ if(fieldValid) {
+ module.remove.prompt(field, fieldErrors);
+ $.proxy(settings.onValid, $field)();
+ }
+ else {
+ formErrors = formErrors.concat(fieldErrors);
+ module.add.prompt(field.identifier, fieldErrors);
+ $.proxy(settings.onInvalid, $field)(fieldErrors);
+ return false;
+ }
+ return true;
+ },
+
+ // takes validation rule and returns whether field passes rule
+ rule: function(field, validation) {
+ var
+ $field = module.get.field(field.identifier),
+ type = validation.type,
+ value = $.trim($field.val() + ''),
+
+ bracketRegExp = /\[(.*)\]/i,
+ bracket = bracketRegExp.exec(type),
+ isValid = true,
+ ancillary,
+ functionType
+ ;
+ // if bracket notation is used, pass in extra parameters
+ if(bracket !== undefined && bracket !== null) {
+ ancillary = '' + bracket[1];
+ functionType = type.replace(bracket[0], '');
+ isValid = $.proxy(settings.rules[functionType], $module)(value, ancillary);
+ }
+ // normal notation
+ else {
+ isValid = $.proxy(settings.rules[type], $field)(value);
+ }
+ return isValid;
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.form.settings = {
+
+ name : 'Form',
+ namespace : 'form',
+
+ debug : true,
+ verbose : true,
+ performance : true,
+
+
+ keyboardShortcuts : true,
+ on : 'submit',
+ inline : false,
+
+ delay : 200,
+ revalidate : true,
+
+ transition : 'scale',
+ duration : 150,
+
+
+ onValid : function() {},
+ onInvalid : function() {},
+ onSuccess : function() { return true; },
+ onFailure : function() { return false; },
+
+ metadata : {
+ validate: 'validate'
+ },
+
+ selector : {
+ message : '.error.message',
+ field : 'input, textarea, select',
+ group : '.field',
+ input : 'input',
+ prompt : '.prompt',
+ submit : '.submit'
+ },
+
+ className : {
+ error : 'error',
+ success : 'success',
+ down : 'down',
+ label : 'ui label prompt'
+ },
+
+ // errors
+ error: {
+ method : 'The method you called is not defined.'
+ },
+
+
+ templates: {
+ error: function(errors) {
+ var
+ html = '
'
+ ;
+ $.each(errors, function(index, value) {
+ html += '' + value + ' ';
+ });
+ html += ' ';
+ return $(html);
+ },
+ prompt: function(errors) {
+ return $('
')
+ .addClass('ui red pointing prompt label')
+ .html(errors[0])
+ ;
+ }
+ },
+
+ rules: {
+ checked: function() {
+ return ($(this).filter(':checked').size() > 0);
+ },
+ empty: function(value) {
+ return !(value === undefined || '' === value);
+ },
+ email: function(value){
+ var
+ emailRegExp = new RegExp("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", "i")
+ ;
+ return emailRegExp.test(value);
+ },
+ length: function(value, requiredLength) {
+ return (value !== undefined)
+ ? (value.length >= requiredLength)
+ : false
+ ;
+ },
+ not: function(value, notValue) {
+ return (value != notValue);
+ },
+ contains: function(value, text) {
+ text = text.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
+ return (value.search(text) !== -1);
+ },
+ is: function(value, text) {
+ return (value == text);
+ },
+ maxLength: function(value, maxLength) {
+ return (value !== undefined)
+ ? (value.length <= maxLength)
+ : false
+ ;
+ },
+ match: function(value, fieldIdentifier) {
+ // use either id or name of field
+ var
+ $form = $(this),
+ matchingValue
+ ;
+ if($form.find('#' + fieldIdentifier).size() > 0) {
+ matchingValue = $form.find('#' + fieldIdentifier).val();
+ }
+ else if($form.find('[name=' + fieldIdentifier +']').size() > 0) {
+ matchingValue = $form.find('[name=' + fieldIdentifier + ']').val();
+ }
+ else if( $form.find('[data-validate="'+ fieldIdentifier +'"]').size() > 0 ) {
+ matchingValue = $form.find('[data-validate="'+ fieldIdentifier +'"]').val();
+ }
+ return (matchingValue !== undefined)
+ ? ( value.toString() == matchingValue.toString() )
+ : false
+ ;
+ },
+ url: function(value) {
+ var
+ urlRegExp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
+ ;
+ return urlRegExp.test(value);
+ }
+ }
+
+};
+
+})( jQuery, window , document );
+
+/*
+ * # Semantic - State
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.state = function(parameters) {
+ var
+ $allModules = $(this),
+ settings = $.extend(true, {}, $.fn.state.settings, parameters),
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ // shortcuts
+ error = settings.error,
+ metadata = settings.metadata,
+ className = settings.className,
+ namespace = settings.namespace,
+ states = settings.states,
+ text = settings.text,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = namespace + '-module',
+
+
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ $module = $(this),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+
+ module
+ ;
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing module');
+
+ // allow module to guess desired state based on element
+ if(settings.automatic) {
+ module.add.defaults();
+ }
+
+ // bind events with delegated events
+ if(settings.context && moduleSelector !== '') {
+ if( module.allows('hover') ) {
+ $(element, settings.context)
+ .on(moduleSelector, 'mouseenter' + eventNamespace, module.enable.hover)
+ .on(moduleSelector, 'mouseleave' + eventNamespace, module.disable.hover)
+ ;
+ }
+ if( module.allows('down') ) {
+ $(element, settings.context)
+ .on(moduleSelector, 'mousedown' + eventNamespace, module.enable.down)
+ .on(moduleSelector, 'mouseup' + eventNamespace, module.disable.down)
+ ;
+ }
+ if( module.allows('focus') ) {
+ $(element, settings.context)
+ .on(moduleSelector, 'focus' + eventNamespace, module.enable.focus)
+ .on(moduleSelector, 'blur' + eventNamespace, module.disable.focus)
+ ;
+ }
+ $(settings.context)
+ .on(moduleSelector, 'mouseenter' + eventNamespace, module.change.text)
+ .on(moduleSelector, 'mouseleave' + eventNamespace, module.reset.text)
+ .on(moduleSelector, 'click' + eventNamespace, module.toggle.state)
+ ;
+ }
+ else {
+ if( module.allows('hover') ) {
+ $module
+ .on('mouseenter' + eventNamespace, module.enable.hover)
+ .on('mouseleave' + eventNamespace, module.disable.hover)
+ ;
+ }
+ if( module.allows('down') ) {
+ $module
+ .on('mousedown' + eventNamespace, module.enable.down)
+ .on('mouseup' + eventNamespace, module.disable.down)
+ ;
+ }
+ if( module.allows('focus') ) {
+ $module
+ .on('focus' + eventNamespace, module.enable.focus)
+ .on('blur' + eventNamespace, module.disable.focus)
+ ;
+ }
+ $module
+ .on('mouseenter' + eventNamespace, module.change.text)
+ .on('mouseleave' + eventNamespace, module.reset.text)
+ .on('click' + eventNamespace, module.toggle.state)
+ ;
+ }
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module', instance);
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing selector cache');
+ $module = $(element);
+ },
+
+ add: {
+ defaults: function() {
+ var
+ userStates = parameters && $.isPlainObject(parameters.states)
+ ? parameters.states
+ : {}
+ ;
+ $.each(settings.defaults, function(type, typeStates) {
+ if( module.is[type] !== undefined && module.is[type]() ) {
+ module.verbose('Adding default states', type, element);
+ $.extend(settings.states, typeStates, userStates);
+ }
+ });
+ }
+ },
+
+ is: {
+
+ active: function() {
+ return $module.hasClass(className.active);
+ },
+ loading: function() {
+ return $module.hasClass(className.loading);
+ },
+ inactive: function() {
+ return !( $module.hasClass(className.active) );
+ },
+
+ enabled: function() {
+ return !( $module.is(settings.filter.active) );
+ },
+ disabled: function() {
+ return ( $module.is(settings.filter.active) );
+ },
+ textEnabled: function() {
+ return !( $module.is(settings.filter.text) );
+ },
+
+ // definitions for automatic type detection
+ button: function() {
+ return $module.is('.button:not(a, .submit)');
+ },
+ input: function() {
+ return $module.is('input');
+ }
+ },
+
+ allow: function(state) {
+ module.debug('Now allowing state', state);
+ states[state] = true;
+ },
+ disallow: function(state) {
+ module.debug('No longer allowing', state);
+ states[state] = false;
+ },
+
+ allows: function(state) {
+ return states[state] || false;
+ },
+
+ enable: {
+ state: function(state) {
+ if(module.allows(state)) {
+ $module.addClass( className[state] );
+ }
+ },
+ // convenience
+ focus: function() {
+ $module.addClass(className.focus);
+ },
+ hover: function() {
+ $module.addClass(className.hover);
+ },
+ down: function() {
+ $module.addClass(className.down);
+ },
+ },
+
+ disable: {
+ state: function(state) {
+ if(module.allows(state)) {
+ $module.removeClass( className[state] );
+ }
+ },
+ // convenience
+ focus: function() {
+ $module.removeClass(className.focus);
+ },
+ hover: function() {
+ $module.removeClass(className.hover);
+ },
+ down: function() {
+ $module.removeClass(className.down);
+ },
+ },
+
+ toggle: {
+ state: function() {
+ var
+ apiRequest = $module.data(metadata.promise)
+ ;
+ if( module.allows('active') && module.is.enabled() ) {
+ module.refresh();
+ if(apiRequest !== undefined) {
+ module.listenTo(apiRequest);
+ }
+ else {
+ module.change.state();
+ }
+ }
+ }
+ },
+
+ listenTo: function(apiRequest) {
+ module.debug('API request detected, waiting for state signal', apiRequest);
+ if(apiRequest) {
+ if(text.loading) {
+ module.update.text(text.loading);
+ }
+ $.when(apiRequest)
+ .then(function() {
+ if(apiRequest.state() == 'resolved') {
+ module.debug('API request succeeded');
+ settings.activateTest = function(){ return true; };
+ settings.deactivateTest = function(){ return true; };
+ }
+ else {
+ module.debug('API request failed');
+ settings.activateTest = function(){ return false; };
+ settings.deactivateTest = function(){ return false; };
+ }
+ module.change.state();
+ })
+ ;
+ }
+ // xhr exists but set to false, beforeSend killed the xhr
+ else {
+ settings.activateTest = function(){ return false; };
+ settings.deactivateTest = function(){ return false; };
+ }
+ },
+
+ // checks whether active/inactive state can be given
+ change: {
+
+ state: function() {
+ module.debug('Determining state change direction');
+ // inactive to active change
+ if( module.is.inactive() ) {
+ module.activate();
+ }
+ else {
+ module.deactivate();
+ }
+ if(settings.sync) {
+ module.sync();
+ }
+ $.proxy(settings.onChange, element)();
+ },
+
+ text: function() {
+ if( module.is.textEnabled() ) {
+ if( module.is.active() ) {
+ if(text.hover) {
+ module.verbose('Changing text to hover text', text.hover);
+ module.update.text(text.hover);
+ }
+ else if(text.disable) {
+ module.verbose('Changing text to disable text', text.disable);
+ module.update.text(text.disable);
+ }
+ }
+ else {
+ if(text.hover) {
+ module.verbose('Changing text to hover text', text.disable);
+ module.update.text(text.hover);
+ }
+ else if(text.enable){
+ module.verbose('Changing text to enable text', text.enable);
+ module.update.text(text.enable);
+ }
+ }
+ }
+ }
+
+ },
+
+ activate: function() {
+ if( $.proxy(settings.activateTest, element)() ) {
+ module.debug('Setting state to active');
+ $module
+ .addClass(className.active)
+ ;
+ module.update.text(text.active);
+ }
+ $.proxy(settings.onActivate, element)();
+ },
+
+ deactivate: function() {
+ if($.proxy(settings.deactivateTest, element)() ) {
+ module.debug('Setting state to inactive');
+ $module
+ .removeClass(className.active)
+ ;
+ module.update.text(text.inactive);
+ }
+ $.proxy(settings.onDeactivate, element)();
+ },
+
+ sync: function() {
+ module.verbose('Syncing other buttons to current state');
+ if( module.is.active() ) {
+ $allModules
+ .not($module)
+ .state('activate');
+ }
+ else {
+ $allModules
+ .not($module)
+ .state('deactivate')
+ ;
+ }
+ },
+
+ get: {
+ text: function() {
+ return (settings.selector.text)
+ ? $module.find(settings.selector.text).text()
+ : $module.html()
+ ;
+ },
+ textFor: function(state) {
+ return text[state] || false;
+ }
+ },
+
+ flash: {
+ text: function(text, duration) {
+ var
+ previousText = module.get.text()
+ ;
+ module.debug('Flashing text message', text, duration);
+ text = text || settings.text.flash;
+ duration = duration || settings.flashDuration;
+ module.update.text(text);
+ setTimeout(function(){
+ module.update.text(previousText);
+ }, duration);
+ }
+ },
+
+ reset: {
+ // on mouseout sets text to previous value
+ text: function() {
+ var
+ activeText = text.active || $module.data(metadata.storedText),
+ inactiveText = text.inactive || $module.data(metadata.storedText)
+ ;
+ if( module.is.textEnabled() ) {
+ if( module.is.active() && activeText) {
+ module.verbose('Resetting active text', activeText);
+ module.update.text(activeText);
+ }
+ else if(inactiveText) {
+ module.verbose('Resetting inactive text', activeText);
+ module.update.text(inactiveText);
+ }
+ }
+ }
+ },
+
+ update: {
+ text: function(text) {
+ var
+ currentText = module.get.text()
+ ;
+ if(text && text !== currentText) {
+ module.debug('Updating text', text);
+ if(settings.selector.text) {
+ $module
+ .data(metadata.storedText, text)
+ .find(settings.selector.text)
+ .text(text)
+ ;
+ }
+ else {
+ $module
+ .data(metadata.storedText, text)
+ .html(text)
+ ;
+ }
+ }
+ else {
+ module.debug('Text is already sane, ignoring update', text);
+ }
+ }
+ },
+
+ setting: function(name, value) {
+ module.debug('Changing setting', name, value);
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else {
+ settings[name] = value;
+ }
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ module.debug('Changing internal', name, value);
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else {
+ module[name] = value;
+ }
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.state.settings = {
+
+ // module info
+ name : 'State',
+
+ // debug output
+ debug : true,
+
+ // verbose debug output
+ verbose : true,
+
+ // namespace for events
+ namespace : 'state',
+
+ // debug data includes performance
+ performance: true,
+
+ // callback occurs on state change
+ onActivate : function() {},
+ onDeactivate : function() {},
+ onChange : function() {},
+
+ // state test functions
+ activateTest : function() { return true; },
+ deactivateTest : function() { return true; },
+
+ // whether to automatically map default states
+ automatic : true,
+
+ // activate / deactivate changes all elements instantiated at same time
+ sync : false,
+
+ // default flash text duration, used for temporarily changing text of an element
+ flashDuration : 3000,
+
+ // selector filter
+ filter : {
+ text : '.loading, .disabled',
+ active : '.disabled'
+ },
+
+ context : false,
+
+ // error
+ error: {
+ method : 'The method you called is not defined.'
+ },
+
+ // metadata
+ metadata: {
+ promise : 'promise',
+ storedText : 'stored-text'
+ },
+
+ // change class on state
+ className: {
+ focus : 'focus',
+ hover : 'hover',
+ down : 'down',
+ active : 'active',
+ loading : 'loading'
+ },
+
+ selector: {
+ // selector for text node
+ text: false
+ },
+
+ defaults : {
+ input: {
+ hover : true,
+ focus : true,
+ down : true,
+ loading : false,
+ active : false
+ },
+ button: {
+ hover : true,
+ focus : false,
+ down : true,
+ active : true,
+ loading : true
+ }
+ },
+
+ states : {
+ hover : true,
+ focus : true,
+ down : true,
+ loading : false,
+ active : false
+ },
+
+ text : {
+ flash : false,
+ hover : false,
+ active : false,
+ inactive : false,
+ enable : false,
+ disable : false
+ }
+
+};
+
+
+
+})( jQuery, window , document );
+
+/*
+ * # Semantic - Chatroom
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.chatroom = function(parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $(this)
+ .each(function() {
+ var
+ settings = $.extend(true, {}, $.fn.chatroom.settings, parameters),
+
+ className = settings.className,
+ namespace = settings.namespace,
+ selector = settings.selector,
+ error = settings.error,
+
+ $module = $(this),
+
+ $expandButton = $module.find(selector.expandButton),
+ $userListButton = $module.find(selector.userListButton),
+
+ $userList = $module.find(selector.userList),
+ $room = $module.find(selector.room),
+ $userCount = $module.find(selector.userCount),
+
+ $log = $module.find(selector.log),
+ $message = $module.find(selector.message),
+
+ $messageInput = $module.find(selector.messageInput),
+ $messageButton = $module.find(selector.messageButton),
+
+ instance = $module.data('module'),
+ element = this,
+
+ html = '',
+ users = {},
+
+ channel,
+ loggedInUser,
+
+ message,
+ count,
+
+ height,
+
+ pusher,
+ module
+ ;
+
+ module = {
+
+ width: {
+ log : $log.width(),
+ userList : $userList.outerWidth()
+ },
+
+ initialize: function() {
+
+ // check error conditions
+ if(Pusher === undefined) {
+ module.error(error.pusher);
+ }
+ if(settings.key === undefined || settings.channelName === undefined) {
+ module.error(error.key);
+ return false;
+ }
+ else if( !(settings.endpoint.message || settings.endpoint.authentication) ) {
+ module.error(error.endpoint);
+ return false;
+ }
+
+ // define pusher
+ pusher = new Pusher(settings.key);
+ Pusher.channel_auth_endpoint = settings.endpoint.authentication;
+
+ channel = pusher.subscribe(settings.channelName);
+
+ channel.bind('pusher:subscription_succeeded', module.user.list.create);
+ channel.bind('pusher:subscription_error', module.error);
+ channel.bind('pusher:member_added', module.user.joined);
+ channel.bind('pusher:member_removed', module.user.left);
+ channel.bind('update_messages', module.message.receive);
+
+ $.each(settings.customEvents, function(label, value) {
+ channel.bind(label, value);
+ });
+
+ // bind module events
+ $userListButton
+ .on('click.' + namespace, module.event.toggleUserList)
+ ;
+ $expandButton
+ .on('click.' + namespace, module.event.toggleExpand)
+ ;
+ $messageInput
+ .on('keydown.' + namespace, module.event.input.keydown)
+ .on('keyup.' + namespace, module.event.input.keyup)
+ ;
+ $messageButton
+ .on('mouseenter.' + namespace, module.event.hover)
+ .on('mouseleave.' + namespace, module.event.hover)
+ .on('click.' + namespace, module.event.submit)
+ ;
+ // scroll to bottom of chat log
+ $log
+ .animate({
+ scrollTop: $log.prop('scrollHeight')
+ }, 400)
+ ;
+ $module
+ .data('module', module)
+ .addClass(className.loading)
+ ;
+
+ },
+
+ // refresh module
+ refresh: function() {
+ // reset width calculations
+ $userListButton
+ .removeClass(className.active)
+ ;
+ module.width = {
+ log : $log.width(),
+ userList : $userList.outerWidth()
+ };
+ if( $userListButton.hasClass(className.active) ) {
+ module.user.list.hide();
+ }
+ $module.data('module', module);
+ },
+
+ user: {
+
+ updateCount: function() {
+ if(settings.userCount) {
+ users = $module.data('users');
+ count = 0;
+ $.each(users, function() {
+ count++;
+ });
+ $userCount
+ .html( settings.templates.userCount(count) )
+ ;
+ }
+ },
+
+ // add user to user list
+ joined: function(member) {
+ users = $module.data('users');
+ if(member.id != 'anonymous' && users[ member.id ] === undefined ) {
+ users[ member.id ] = member.info;
+ if(settings.randomColor && member.info.color === undefined) {
+ member.info.color = settings.templates.color(member.id);
+ }
+ html = settings.templates.userList(member.info);
+ if(member.info.isAdmin) {
+ $(html)
+ .prependTo($userList)
+ ;
+ }
+ else {
+ $(html)
+ .appendTo($userList)
+ ;
+ }
+ if(settings.partingMessages) {
+ $log
+ .append( settings.templates.joined(member.info) )
+ ;
+ module.message.scroll.test();
+ }
+ module.user.updateCount();
+ }
+ },
+
+ // remove user from user list
+ left: function(member) {
+ users = $module.data('users');
+ if(member !== undefined && member.id !== 'anonymous') {
+ delete users[ member.id ];
+ $module
+ .data('users', users)
+ ;
+ $userList
+ .find('[data-id='+ member.id + ']')
+ .remove()
+ ;
+ if(settings.partingMessages) {
+ $log
+ .append( settings.templates.left(member.info) )
+ ;
+ module.message.scroll.test();
+ }
+ module.user.updateCount();
+ }
+ },
+
+ list: {
+
+ // receives list of members and generates user list
+ create: function(members) {
+ users = {};
+ members.each(function(member) {
+ if(member.id !== 'anonymous' && member.id !== 'undefined') {
+ if(settings.randomColor && member.info.color === undefined) {
+ member.info.color = settings.templates.color(member.id);
+ }
+ // sort list with admin first
+ html = (member.info.isAdmin)
+ ? settings.templates.userList(member.info) + html
+ : html + settings.templates.userList(member.info)
+ ;
+ users[ member.id ] = member.info;
+ }
+ });
+ $module
+ .data('users', users)
+ .data('user', users[members.me.id] )
+ .removeClass(className.loading)
+ ;
+ $userList
+ .html(html)
+ ;
+ module.user.updateCount();
+ $.proxy(settings.onJoin, $userList.children())();
+ },
+
+ // shows user list
+ show: function() {
+ $log
+ .animate({
+ width: (module.width.log - module.width.userList)
+ }, {
+ duration : settings.speed,
+ easing : settings.easing,
+ complete : module.message.scroll.move
+ })
+ ;
+ },
+
+ // hides user list
+ hide: function() {
+ $log
+ .stop()
+ .animate({
+ width: (module.width.log)
+ }, {
+ duration : settings.speed,
+ easing : settings.easing,
+ complete : module.message.scroll.move
+ })
+ ;
+ }
+
+ }
+
+ },
+
+ message: {
+
+ // handles scrolling of chat log
+ scroll: {
+ test: function() {
+ height = $log.prop('scrollHeight') - $log.height();
+ if( Math.abs($log.scrollTop() - height) < settings.scrollArea) {
+ module.message.scroll.move();
+ }
+ },
+
+ move: function() {
+ height = $log.prop('scrollHeight') - $log.height();
+ $log
+ .scrollTop(height)
+ ;
+ }
+ },
+
+ // sends chat message
+ send: function(message) {
+ if( !module.utils.emptyString(message) ) {
+ $.api({
+ url : settings.endpoint.message,
+ method : 'POST',
+ data : {
+ 'message': {
+ content : message,
+ timestamp : new Date().getTime()
+ }
+ }
+ });
+ }
+ },
+
+ // receives chat response and processes
+ receive: function(response) {
+ message = response.data;
+ users = $module.data('users');
+ loggedInUser = $module.data('user');
+ if(users[ message.userID] !== undefined) {
+ // logged in user's messages already pushed instantly
+ if(loggedInUser === undefined || loggedInUser.id != message.userID) {
+ message.user = users[ message.userID ];
+ module.message.display(message);
+ }
+ }
+ },
+
+ // displays message in chat log
+ display: function(message) {
+ $log
+ .append( settings.templates.message(message) )
+ ;
+ module.message.scroll.test();
+ $.proxy(settings.onMessage, $log.children().last() )();
+ }
+
+ },
+
+ expand: function() {
+ $module
+ .addClass(className.expand)
+ ;
+ $.proxy(settings.onExpand, $module )();
+ module.refresh();
+ },
+
+ contract: function() {
+ $module
+ .removeClass(className.expand)
+ ;
+ $.proxy(settings.onContract, $module )();
+ module.refresh();
+ },
+
+ event: {
+
+ input: {
+
+ keydown: function(event) {
+ if(event.which == 13) {
+ $messageButton
+ .addClass(className.down)
+ ;
+ }
+ },
+
+ keyup: function(event) {
+ if(event.which == 13) {
+ $messageButton
+ .removeClass(className.down)
+ ;
+ module.event.submit();
+ }
+ }
+
+ },
+
+ // handles message form submit
+ submit: function() {
+ var
+ message = $messageInput.val(),
+ loggedInUser = $module.data('user')
+ ;
+ if(loggedInUser !== undefined && !module.utils.emptyString(message)) {
+ module.message.send(message);
+ // display immediately
+ module.message.display({
+ user: loggedInUser,
+ text: message
+ });
+ module.message.scroll.move();
+ $messageInput
+ .val('')
+ ;
+
+ }
+ },
+
+ // handles button click on expand button
+ toggleExpand: function() {
+ if( !$module.hasClass(className.expand) ) {
+ $expandButton
+ .addClass(className.active)
+ ;
+ module.expand();
+ }
+ else {
+ $expandButton
+ .removeClass(className.active)
+ ;
+ module.contract();
+ }
+ },
+
+ // handles button click on user list button
+ toggleUserList: function() {
+ if( !$log.is(':animated') ) {
+ if( !$userListButton.hasClass(className.active) ) {
+ $userListButton
+ .addClass(className.active)
+ ;
+ module.user.list.show();
+ }
+ else {
+ $userListButton
+ .removeClass('active')
+ ;
+ module.user.list.hide();
+ }
+ }
+
+ }
+ },
+
+ utils: {
+
+ emptyString: function(string) {
+ if(typeof string == 'string') {
+ return (string.search(/\S/) == -1);
+ }
+ return false;
+ }
+
+ },
+
+ setting: function(name, value) {
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else {
+ settings[name] = value;
+ }
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ maxDepth,
+ found
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && instance !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) {
+ instance = instance[value];
+ }
+ else if( instance[value] !== undefined ) {
+ found = instance[value];
+ }
+ else {
+ module.error(error.method, query);
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ return found.apply(context, passedArguments);
+ }
+ return found || false;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+ $.fn.chatroom.settings = {
+
+ name : 'Chat',
+ debug : false,
+ namespace : 'chat',
+
+ channel : 'present-chat',
+
+ onJoin : function(){},
+ onMessage : function(){},
+ onExpand : function(){},
+ onContract : function(){},
+
+ customEvents : {},
+
+ partingMessages : false,
+ userCount : true,
+ randomColor : true,
+
+ speed : 300,
+ easing : 'easeOutQuint',
+
+ // pixels from bottom of chat log that should trigger auto scroll to bottom
+ scrollArea : 9999,
+
+ endpoint : {
+ message : false,
+ authentication : false
+ },
+
+ error: {
+ method : 'The method you called is not defined',
+ endpoint : 'Please define a message and authentication endpoint.',
+ key : 'You must specify a pusher key and channel.',
+ pusher : 'You must include the Pusher library.'
+ },
+
+ className : {
+ expand : 'expand',
+ active : 'active',
+ hover : 'hover',
+ down : 'down',
+ loading : 'loading'
+ },
+
+ selector : {
+ userCount : '.actions .message',
+ userListButton : '.actions .list.button',
+ expandButton : '.actions .expand.button',
+ room : '.room',
+ userList : '.room .list',
+ log : '.room .log',
+ message : '.room .log .message',
+ author : '.room log .message .author',
+ messageInput : '.talk input',
+ messageButton : '.talk .send.button'
+ },
+
+ templates: {
+
+ userCount: function(number) {
+ return number + ' users in chat';
+ },
+
+ color: function(userID) {
+ var
+ colors = [
+ '#000000',
+ '#333333',
+ '#666666',
+ '#999999',
+ '#CC9999',
+ '#CC6666',
+ '#CC3333',
+ '#993333',
+ '#663333',
+ '#CC6633',
+ '#CC9966',
+ '#CC9933',
+ '#999966',
+ '#CCCC66',
+ '#99CC66',
+ '#669933',
+ '#669966',
+ '#33A3CC',
+ '#336633',
+ '#33CCCC',
+ '#339999',
+ '#336666',
+ '#336699',
+ '#6666CC',
+ '#9966CC',
+ '#333399',
+ '#663366',
+ '#996699',
+ '#993366',
+ '#CC6699'
+ ]
+ ;
+ return colors[ Math.floor( Math.random() * colors.length) ];
+ },
+
+ message: function(message) {
+ var
+ html = ''
+ ;
+ if(message.user.isAdmin) {
+ message.user.color = '#55356A';
+ html += '
';
+ html += '
';
+ }
+ /*
+ else if(message.user.isPro) {
+ html += '
';
+ html += '
';
+ }
+ */
+ else {
+ html += '
';
+ }
+ html += '
';
+ if(message.user.color !== undefined) {
+ html += '' + message.user.name + ' : ';
+ }
+ else {
+ html += '' + message.user.name + ' : ';
+ }
+ html += ''
+ + message.text
+ + '
'
+ + '
'
+ ;
+ return html;
+ },
+
+ joined: function(member) {
+ return (typeof member.name !== undefined)
+ ? '
' + member.name + ' has joined the chat.
'
+ : false
+ ;
+ },
+ left: function(member) {
+ return (typeof member.name !== undefined)
+ ? '
' + member.name + ' has left the chat.
'
+ : false
+ ;
+ },
+
+ userList: function(member) {
+ var
+ html = ''
+ ;
+ if(member.isAdmin) {
+ member.color = '#55356A';
+ }
+ html += ''
+ + '
';
+ return html;
+ }
+
+ }
+
+ };
+
+})( jQuery, window , document );
+
+/*
+ * # Semantic - Checkbox
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.checkbox = function(parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = $.extend(true, {}, $.fn.checkbox.settings, parameters),
+
+ className = settings.className,
+ namespace = settings.namespace,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $label = $(this).next(settings.selector.label).first(),
+ $input = $(this).find(settings.selector.input),
+
+ selector = $module.selector || '',
+ instance = $module.data(moduleNamespace),
+
+ element = this,
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing checkbox', settings);
+ if(settings.context && selector !== '') {
+ module.verbose('Adding delegated events');
+ $(element, settings.context)
+ .on(selector, 'click' + eventNamespace, module.toggle)
+ .on(selector + ' + ' + settings.selector.label, 'click' + eventNamespace, module.toggle)
+ ;
+ }
+ else {
+ $module
+ .on('click' + eventNamespace, module.toggle)
+ .data(moduleNamespace, module)
+ ;
+ $label
+ .on('click' + eventNamespace, module.toggle)
+ ;
+ }
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module');
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ is: {
+ radio: function() {
+ return $module.hasClass(className.radio);
+ },
+ enabled: function() {
+ return $input.prop('checked') !== undefined && $input.prop('checked');
+ },
+ disabled: function() {
+ return !module.is.enabled();
+ }
+ },
+
+ can: {
+ disable: function() {
+ return (typeof settings.required === 'boolean')
+ ? settings.required
+ : !module.is.radio()
+ ;
+ }
+ },
+
+ enable: function() {
+ module.debug('Enabling checkbox', $input);
+ $input
+ .prop('checked', true)
+ .trigger('change')
+ ;
+ $.proxy(settings.onChange, $input.get())();
+ $.proxy(settings.onEnable, $input.get())();
+ },
+
+ disable: function() {
+ module.debug('Disabling checkbox');
+ $input
+ .prop('checked', false)
+ .trigger('change')
+ ;
+ $.proxy(settings.onChange, $input.get())();
+ $.proxy(settings.onDisable, $input.get())();
+ },
+
+ toggle: function(event) {
+ module.verbose('Determining new checkbox state');
+ if( module.is.disabled() ) {
+ module.enable();
+ }
+ else if( module.is.enabled() && module.can.disable() ) {
+ module.disable();
+ }
+ },
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.checkbox.settings = {
+
+ name : 'Checkbox',
+ namespace : 'checkbox',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ // delegated event context
+ context : false,
+ required : 'auto',
+
+ onChange : function(){},
+ onEnable : function(){},
+ onDisable : function(){},
+
+ error : {
+ method : 'The method you called is not defined.'
+ },
+
+ selector : {
+ input : 'input[type=checkbox], input[type=radio]',
+ label : 'label'
+ },
+
+ className : {
+ radio : 'radio'
+ }
+
+};
+
+})( jQuery, window , document );
+
+/*
+ * # Semantic - Dimmer
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.dimmer = function(parameters) {
+ var
+ $allModules = $(this),
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.dimmer.settings, parameters)
+ : $.extend({}, $.fn.dimmer.settings),
+
+ selector = settings.selector,
+ namespace = settings.namespace,
+ className = settings.className,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+ moduleSelector = $allModules.selector || '',
+
+ clickEvent = ('ontouchstart' in document.documentElement)
+ ? 'touchstart'
+ : 'click',
+
+ $module = $(this),
+ $dimmer,
+ $dimmable,
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ preinitialize: function() {
+ if( module.is.dimmer() ) {
+ $dimmable = $module.parent();
+ $dimmer = $module;
+ }
+ else {
+ $dimmable = $module;
+ if( module.has.dimmer() ) {
+ $dimmer = $dimmable.children(selector.dimmer).first();
+ }
+ else {
+ $dimmer = module.create();
+ }
+ }
+ },
+
+ initialize: function() {
+ module.debug('Initializing dimmer', settings);
+ if(settings.on == 'hover') {
+ $dimmable
+ .on('mouseenter' + eventNamespace, module.show)
+ .on('mouseleave' + eventNamespace, module.hide)
+ ;
+ }
+ else if(settings.on == 'click') {
+ $dimmable
+ .on(clickEvent + eventNamespace, module.toggle)
+ ;
+ }
+
+ if( module.is.page() ) {
+ module.debug('Setting as a page dimmer', $dimmable);
+ module.set.pageDimmer();
+ }
+
+ if(settings.closable) {
+ module.verbose('Adding dimmer close event', $dimmer);
+ $dimmer
+ .on(clickEvent + eventNamespace, module.event.click)
+ ;
+ }
+ module.set.dimmable();
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module', $dimmer);
+ $module
+ .removeData(moduleNamespace)
+ ;
+ $dimmable
+ .off(eventNamespace)
+ ;
+ $dimmer
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+
+ click: function(event) {
+ module.verbose('Determining if event occured on dimmer', event);
+ if( $dimmer.find(event.target).size() === 0 || $(event.target).is(selector.content) ) {
+ module.hide();
+ event.stopImmediatePropagation();
+ }
+ }
+
+ },
+
+ addContent: function(element) {
+ var
+ $content = $(element)
+ ;
+ module.debug('Add content to dimmer', $content);
+ if($content.parent()[0] !== $dimmer[0]) {
+ $content.detach().appendTo($dimmer);
+ }
+ },
+
+ create: function() {
+ return $( settings.template.dimmer() ).appendTo($dimmable);
+ },
+
+ animate: {
+ show: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.set.dimmed();
+ if(settings.on != 'hover' && settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {
+ $dimmer
+ .transition({
+ animation : settings.transition + ' in',
+ queue : true,
+ duration : module.get.duration(),
+ complete : function() {
+ module.set.active();
+ callback();
+ }
+ })
+ ;
+ }
+ else {
+ module.verbose('Showing dimmer animation with javascript');
+ $dimmer
+ .stop()
+ .css({
+ opacity : 0,
+ width : '100%',
+ height : '100%'
+ })
+ .fadeTo(module.get.duration(), 1, function() {
+ $dimmer.removeAttr('style');
+ module.set.active();
+ callback();
+ })
+ ;
+ }
+ },
+ hide: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if(settings.on != 'hover' && settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {
+ module.verbose('Hiding dimmer with css');
+ $dimmer
+ .transition({
+ animation : settings.transition + ' out',
+ duration : module.get.duration(),
+ queue : true,
+ complete : function() {
+ module.remove.dimmed();
+ module.remove.active();
+ callback();
+ }
+ })
+ ;
+ }
+ else {
+ module.verbose('Hiding dimmer with javascript');
+ $dimmer
+ .stop()
+ .fadeOut(module.get.duration(), function() {
+ $dimmer.removeAttr('style');
+ module.remove.dimmed();
+ module.remove.active();
+ callback();
+ })
+ ;
+ }
+ }
+ },
+
+ get: {
+ dimmer: function() {
+ return $dimmer;
+ },
+ duration: function() {
+ if(typeof settings.duration == 'object') {
+ if( module.is.active() ) {
+ return settings.duration.hide;
+ }
+ else {
+ return settings.duration.show;
+ }
+ }
+ return settings.duration;
+ }
+ },
+
+ has: {
+ dimmer: function() {
+ return ( $module.children(selector.dimmer).size() > 0 );
+ }
+ },
+
+ is: {
+ active: function() {
+ return $dimmer.hasClass(className.active);
+ },
+ animating: function() {
+ return ( $dimmer.is(':animated') || $dimmer.hasClass(className.transition) );
+ },
+ dimmer: function() {
+ return $module.is(selector.dimmer);
+ },
+ dimmable: function() {
+ return $module.is(selector.dimmable);
+ },
+ dimmed: function() {
+ return $dimmable.hasClass(className.dimmed);
+ },
+ disabled: function() {
+ return $dimmable.hasClass(className.disabled);
+ },
+ enabled: function() {
+ return !module.is.disabled();
+ },
+ page: function () {
+ return $dimmable.is('body');
+ },
+ pageDimmer: function() {
+ return $dimmer.hasClass(className.pageDimmer);
+ }
+ },
+
+ can: {
+ show: function() {
+ return !$dimmer.hasClass(className.disabled);
+ }
+ },
+
+ set: {
+ active: function() {
+ module.set.dimmed();
+ $dimmer
+ .removeClass(className.transition)
+ .addClass(className.active)
+ ;
+ },
+ dimmable: function() {
+ $dimmable.addClass(className.dimmable);
+ },
+ dimmed: function() {
+ $dimmable.addClass(className.dimmed);
+ },
+ pageDimmer: function() {
+ $dimmer.addClass(className.pageDimmer);
+ },
+ disabled: function() {
+ $dimmer.addClass(className.disabled);
+ }
+ },
+
+ remove: {
+ active: function() {
+ $dimmer
+ .removeClass(className.transition)
+ .removeClass(className.active)
+ ;
+ },
+ dimmed: function() {
+ $dimmable.removeClass(className.dimmed);
+ },
+ disabled: function() {
+ $dimmer.removeClass(className.disabled);
+ }
+ },
+
+ show: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.debug('Showing dimmer', $dimmer, settings);
+ if( !module.is.active() && module.is.enabled() ) {
+ module.animate.show(callback);
+ $.proxy(settings.onShow, element)();
+ $.proxy(settings.onChange, element)();
+ }
+ else {
+ module.debug('Dimmer is already shown or disabled');
+ }
+ },
+
+ hide: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( module.is.active() || module.is.animating() ) {
+ module.debug('Hiding dimmer', $dimmer);
+ module.animate.hide(callback);
+ $.proxy(settings.onHide, element)();
+ $.proxy(settings.onChange, element)();
+ }
+ else {
+ module.debug('Dimmer is not visible');
+ }
+ },
+
+ toggle: function() {
+ module.verbose('Toggling dimmer visibility', $dimmer);
+ if( !module.is.dimmed() ) {
+ module.show();
+ }
+ else {
+ module.hide();
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ module.preinitialize();
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.dimmer.settings = {
+
+ name : 'Dimmer',
+ namespace : 'dimmer',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ transition : 'fade',
+ useCSS : true,
+ on : false,
+ closable : true,
+
+ duration : {
+ show : 500,
+ hide : 500
+ },
+
+ onChange : function(){},
+ onShow : function(){},
+ onHide : function(){},
+
+ error : {
+ method : 'The method you called is not defined.'
+ },
+
+ selector: {
+ dimmable : '.ui.dimmable',
+ dimmer : '.ui.dimmer',
+ content : '.ui.dimmer > .content, .ui.dimmer > .content > .center'
+ },
+
+ template: {
+ dimmer: function() {
+ return $('
').attr('class', 'ui dimmer');
+ }
+ },
+
+ className : {
+ active : 'active',
+ dimmable : 'ui dimmable',
+ dimmed : 'dimmed',
+ disabled : 'disabled',
+ pageDimmer : 'page',
+ hide : 'hide',
+ show : 'show',
+ transition : 'transition'
+ }
+
+};
+
+})( jQuery, window , document );
+/*
+ * # Semantic - Dropdown
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+;(function ( $, window, document, undefined ) {
+
+$.fn.dropdown = function(parameters) {
+ var
+ $allModules = $(this),
+ $document = $(document),
+
+ moduleSelector = $allModules.selector || '',
+
+ hasTouch = ('ontouchstart' in document.documentElement),
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.dropdown.settings, parameters)
+ : $.extend({}, $.fn.dropdown.settings),
+
+ className = settings.className,
+ metadata = settings.metadata,
+ namespace = settings.namespace,
+ selector = settings.selector,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $item = $module.find(selector.item),
+ $text = $module.find(selector.text),
+ $input = $module.find(selector.input),
+
+ $menu = $module.children(selector.menu),
+
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing dropdown', settings);
+
+ module.save.defaults();
+ module.set.selected();
+
+ if(hasTouch) {
+ module.bind.touchEvents();
+ }
+ module.bind.mouseEvents();
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of dropdown', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous dropdown for', $module);
+ $item
+ .off(eventNamespace)
+ ;
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ bind: {
+ touchEvents: function() {
+ module.debug('Touch device detected binding touch events');
+ $module
+ .on('touchstart' + eventNamespace, module.event.test.toggle)
+ ;
+ $item
+ .on('touchstart' + eventNamespace, module.event.item.mouseenter)
+ .on('touchstart' + eventNamespace, module.event.item.click)
+ ;
+ },
+ mouseEvents: function() {
+ module.verbose('Mouse detected binding mouse events');
+ if(settings.on == 'click') {
+ $module
+ .on('click' + eventNamespace, module.event.test.toggle)
+ ;
+ }
+ else if(settings.on == 'hover') {
+ $module
+ .on('mouseenter' + eventNamespace, module.delay.show)
+ .on('mouseleave' + eventNamespace, module.delay.hide)
+ ;
+ }
+ else {
+ $module
+ .on(settings.on + eventNamespace, module.toggle)
+ ;
+ }
+ $item
+ .on('mouseenter' + eventNamespace, module.event.item.mouseenter)
+ .on('mouseleave' + eventNamespace, module.event.item.mouseleave)
+ .on('click' + eventNamespace, module.event.item.click)
+ ;
+ },
+ intent: function() {
+ module.verbose('Binding hide intent event to document');
+ if(hasTouch) {
+ $document
+ .on('touchstart' + eventNamespace, module.event.test.touch)
+ .on('touchmove' + eventNamespace, module.event.test.touch)
+ ;
+ }
+ $document
+ .on('click' + eventNamespace, module.event.test.hide)
+ ;
+ }
+ },
+
+ unbind: {
+ intent: function() {
+ module.verbose('Removing hide intent event from document');
+ if(hasTouch) {
+ $document
+ .off('touchstart' + eventNamespace)
+ .off('touchmove' + eventNamespace)
+ ;
+ }
+ $document
+ .off('click' + eventNamespace)
+ ;
+ }
+ },
+
+ event: {
+ test: {
+ toggle: function(event) {
+ if( module.determine.intent(event, module.toggle) ) {
+ event.preventDefault();
+ }
+ },
+ touch: function(event) {
+ module.determine.intent(event, function() {
+ if(event.type == 'touchstart') {
+ module.timer = setTimeout(module.hide, settings.delay.touch);
+ }
+ else if(event.type == 'touchmove') {
+ clearTimeout(module.timer);
+ }
+ });
+ event.stopPropagation();
+ },
+ hide: function(event) {
+ module.determine.intent(event, module.hide);
+ }
+ },
+
+ item: {
+
+ mouseenter: function(event) {
+ var
+ $currentMenu = $(this).find(selector.submenu),
+ $otherMenus = $(this).siblings(selector.item).children(selector.menu)
+ ;
+ if($currentMenu.length > 0 || $otherMenus.length > 0) {
+ clearTimeout(module.itemTimer);
+ module.itemTimer = setTimeout(function() {
+ if($otherMenus.length > 0) {
+ module.animate.hide(false, $otherMenus.filter(':visible'));
+ }
+ if($currentMenu.length > 0) {
+ module.verbose('Showing sub-menu', $currentMenu);
+ module.animate.show(false, $currentMenu);
+ }
+ }, settings.delay.show * 2);
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ },
+
+ mouseleave: function(event) {
+ var
+ $currentMenu = $(this).find(selector.menu)
+ ;
+ if($currentMenu.size() > 0) {
+ clearTimeout(module.itemTimer);
+ module.itemTimer = setTimeout(function() {
+ module.verbose('Hiding sub-menu', $currentMenu);
+ module.animate.hide(false, $currentMenu);
+ }, settings.delay.hide);
+ }
+ },
+
+ click: function (event) {
+ var
+ $choice = $(this),
+ text = ( $choice.data(metadata.text) !== undefined )
+ ? $choice.data(metadata.text)
+ : $choice.text(),
+ value = ( $choice.data(metadata.value) !== undefined)
+ ? $choice.data(metadata.value)
+ : (typeof text === 'string')
+ ? text.toLowerCase()
+ : text,
+ callback = function() {
+ module.determine.selectAction(text, value);
+ $.proxy(settings.onChange, element)(value, text);
+ }
+ ;
+ if( $choice.find(selector.menu).size() === 0 ) {
+ if(event.type == 'touchstart') {
+ $choice.one('click', callback);
+ }
+ else {
+ callback();
+ }
+ }
+ }
+
+ },
+
+ resetStyle: function() {
+ $(this).removeAttr('style');
+ }
+
+ },
+
+ determine: {
+ selectAction: function(text, value) {
+ module.verbose('Determining action', settings.action);
+ if( $.isFunction( module.action[settings.action] ) ) {
+ module.verbose('Triggering preset action', settings.action, text, value);
+ module.action[ settings.action ](text, value);
+ }
+ else if( $.isFunction(settings.action) ) {
+ module.verbose('Triggering user action', settings.action, text, value);
+ settings.action(text, value);
+ }
+ else {
+ module.error(error.action, settings.action);
+ }
+ },
+ intent: function(event, callback) {
+ module.debug('Determining whether event occurred in dropdown', event.target);
+ callback = callback || function(){};
+ if( $(event.target).closest($menu).size() === 0 ) {
+ module.verbose('Triggering event', callback);
+ callback();
+ return true;
+ }
+ else {
+ module.verbose('Event occurred in dropdown, canceling callback');
+ return false;
+ }
+ }
+ },
+
+ action: {
+
+ nothing: function() {},
+
+ hide: function() {
+ module.hide();
+ },
+
+ activate: function(text, value) {
+ value = (value !== undefined)
+ ? value
+ : text
+ ;
+ module.set.selected(value);
+ module.set.value(value);
+ module.hide();
+ },
+
+ /* Deprecated */
+ auto: function(text, value) {
+ value = (value !== undefined)
+ ? value
+ : text
+ ;
+ module.set.selected(value);
+ module.set.value(value);
+ module.hide();
+ },
+
+ /* Deprecated */
+ changeText: function(text, value) {
+ value = (value !== undefined)
+ ? value
+ : text
+ ;
+ module.set.selected(value);
+ module.hide();
+ },
+
+ /* Deprecated */
+ updateForm: function(text, value) {
+ value = (value !== undefined)
+ ? value
+ : text
+ ;
+ module.set.selected(value);
+ module.set.value(value);
+ module.hide();
+ }
+
+ },
+
+ get: {
+ text: function() {
+ return $text.text();
+ },
+ value: function() {
+ return ($input.size() > 0)
+ ? $input.val()
+ : $module.data(metadata.value)
+ ;
+ },
+ item: function(value, strict) {
+ var
+ $selectedItem = false
+ ;
+ value = (value !== undefined)
+ ? value
+ : ( module.get.value() !== undefined)
+ ? module.get.value()
+ : module.get.text()
+ ;
+ if(strict === undefined && value === '') {
+ module.debug('Ambiguous dropdown value using strict type check', value);
+ strict = true;
+ }
+ else {
+ strict = strict || false;
+ }
+ if(value !== undefined) {
+ $item
+ .each(function() {
+ var
+ $choice = $(this),
+ optionText = ( $choice.data(metadata.text) !== undefined )
+ ? $choice.data(metadata.text)
+ : $choice.text(),
+ optionValue = ( $choice.data(metadata.value) !== undefined )
+ ? $choice.data(metadata.value)
+ : (typeof optionText === 'string')
+ ? optionText.toLowerCase()
+ : optionText
+ ;
+ if(strict) {
+ if( optionValue === value ) {
+ $selectedItem = $(this);
+ }
+ else if( !$selectedItem && optionText === value ) {
+ $selectedItem = $(this);
+ }
+ }
+ else {
+ if( optionValue == value ) {
+ $selectedItem = $(this);
+ }
+ else if( !$selectedItem && optionText == value ) {
+ $selectedItem = $(this);
+ }
+ }
+ })
+ ;
+ }
+ else {
+ value = module.get.text();
+ }
+ return $selectedItem || false;
+ }
+ },
+
+ restore: {
+ defaults: function() {
+ module.restore.defaultText();
+ module.restore.defaultValue();
+ },
+ defaultText: function() {
+ var
+ defaultText = $module.data(metadata.defaultText)
+ ;
+ module.debug('Restoring default text', defaultText);
+ module.set.text(defaultText);
+ },
+ defaultValue: function() {
+ var
+ defaultValue = $module.data(metadata.defaultValue)
+ ;
+ if(defaultValue !== undefined) {
+ module.debug('Restoring default value', defaultValue);
+ module.set.selected(defaultValue);
+ module.set.value(defaultValue);
+ }
+ }
+ },
+
+ save: {
+ defaults: function() {
+ module.save.defaultText();
+ module.save.defaultValue();
+ },
+ defaultValue: function() {
+ $module.data(metadata.defaultValue, module.get.value() );
+ },
+ defaultText: function() {
+ $module.data(metadata.defaultText, $text.text() );
+ }
+ },
+
+ set: {
+ text: function(text) {
+ module.debug('Changing text', text, $text);
+ $text.removeClass(className.placeholder);
+ $text.text(text);
+ },
+ value: function(value) {
+ module.debug('Adding selected value to hidden input', value, $input);
+ if($input.size() > 0) {
+ $input
+ .val(value)
+ .trigger('change')
+ ;
+ }
+ else {
+ $module.data(metadata.value, value);
+ }
+ },
+ active: function() {
+ $module.addClass(className.active);
+ },
+ visible: function() {
+ $module.addClass(className.visible);
+ },
+ selected: function(value) {
+ var
+ $selectedItem = module.get.item(value),
+ selectedText
+ ;
+ if($selectedItem) {
+ module.debug('Setting selected menu item to', $selectedItem);
+ selectedText = ($selectedItem.data(metadata.text) !== undefined)
+ ? $selectedItem.data(metadata.text)
+ : $selectedItem.text()
+ ;
+ $item
+ .removeClass(className.active)
+ ;
+ $selectedItem
+ .addClass(className.active)
+ ;
+ module.set.text(selectedText);
+ }
+ }
+ },
+
+ remove: {
+ active: function() {
+ $module.removeClass(className.active);
+ },
+ visible: function() {
+ $module.removeClass(className.visible);
+ }
+ },
+
+ is: {
+ selection: function() {
+ return $module.hasClass(className.selection);
+ },
+ animated: function($subMenu) {
+ return ($subMenu)
+ ? $subMenu.is(':animated') || $subMenu.transition('is animating')
+ : $menu.is(':animated') || $menu.transition('is animating')
+ ;
+ },
+ visible: function($subMenu) {
+ return ($subMenu)
+ ? $subMenu.is(':visible')
+ : $menu.is(':visible')
+ ;
+ },
+ hidden: function($subMenu) {
+ return ($subMenu)
+ ? $subMenu.is(':not(:visible)')
+ : $menu.is(':not(:visible)')
+ ;
+ }
+ },
+
+ can: {
+ click: function() {
+ return (hasTouch || settings.on == 'click');
+ },
+ show: function() {
+ return !$module.hasClass(className.disabled);
+ }
+ },
+
+ animate: {
+ show: function(callback, $subMenu) {
+ var
+ $currentMenu = $subMenu || $menu
+ ;
+ callback = callback || function(){};
+ if( module.is.hidden($currentMenu) ) {
+ module.verbose('Doing menu show animation', $currentMenu);
+ if(settings.transition == 'none') {
+ callback();
+ }
+ else if($.fn.transition !== undefined && $module.transition('is supported')) {
+ $currentMenu
+ .transition({
+ animation : settings.transition + ' in',
+ duration : settings.duration,
+ complete : callback,
+ queue : false
+ })
+ ;
+ }
+ else if(settings.transition == 'slide down') {
+ $currentMenu
+ .hide()
+ .clearQueue()
+ .children()
+ .clearQueue()
+ .css('opacity', 0)
+ .delay(50)
+ .animate({
+ opacity : 1
+ }, settings.duration, 'easeOutQuad', module.event.resetStyle)
+ .end()
+ .slideDown(100, 'easeOutQuad', function() {
+ $.proxy(module.event.resetStyle, this)();
+ callback();
+ })
+ ;
+ }
+ else if(settings.transition == 'fade') {
+ $currentMenu
+ .hide()
+ .clearQueue()
+ .fadeIn(settings.duration, function() {
+ $.proxy(module.event.resetStyle, this)();
+ callback();
+ })
+ ;
+ }
+ else {
+ module.error(error.transition, settings.transition);
+ }
+ }
+ },
+ hide: function(callback, $subMenu) {
+ var
+ $currentMenu = $subMenu || $menu
+ ;
+ callback = callback || function(){};
+ if(module.is.visible($currentMenu) ) {
+ module.verbose('Doing menu hide animation', $currentMenu);
+ if($.fn.transition !== undefined && $module.transition('is supported')) {
+ $currentMenu
+ .transition({
+ animation : settings.transition + ' out',
+ duration : settings.duration,
+ complete : callback,
+ queue : false
+ })
+ ;
+ }
+ else if(settings.transition == 'none') {
+ callback();
+ }
+ else if(settings.transition == 'slide down') {
+ $currentMenu
+ .show()
+ .clearQueue()
+ .children()
+ .clearQueue()
+ .css('opacity', 1)
+ .animate({
+ opacity : 0
+ }, 100, 'easeOutQuad', module.event.resetStyle)
+ .end()
+ .delay(50)
+ .slideUp(100, 'easeOutQuad', function() {
+ $.proxy(module.event.resetStyle, this)();
+ callback();
+ })
+ ;
+ }
+ else if(settings.transition == 'fade') {
+ $currentMenu
+ .show()
+ .clearQueue()
+ .fadeOut(150, function() {
+ $.proxy(module.event.resetStyle, this)();
+ callback();
+ })
+ ;
+ }
+ else {
+ module.error(error.transition);
+ }
+ }
+ }
+ },
+
+ show: function() {
+ module.debug('Checking if dropdown can show');
+ if( module.is.hidden() ) {
+ module.hideOthers();
+ module.set.active();
+ module.animate.show(function() {
+ if( module.can.click() ) {
+ module.bind.intent();
+ }
+ module.set.visible();
+ });
+ $.proxy(settings.onShow, element)();
+ }
+ },
+
+ hide: function() {
+ if( !module.is.animated() && module.is.visible() ) {
+ module.debug('Hiding dropdown');
+ if( module.can.click() ) {
+ module.unbind.intent();
+ }
+ module.remove.active();
+ module.animate.hide(module.remove.visible);
+ $.proxy(settings.onHide, element)();
+ }
+ },
+
+ delay: {
+ show: function() {
+ module.verbose('Delaying show event to ensure user intent');
+ clearTimeout(module.timer);
+ module.timer = setTimeout(module.show, settings.delay.show);
+ },
+ hide: function() {
+ module.verbose('Delaying hide event to ensure user intent');
+ clearTimeout(module.timer);
+ module.timer = setTimeout(module.hide, settings.delay.hide);
+ }
+ },
+
+ hideOthers: function() {
+ module.verbose('Finding other dropdowns to hide');
+ $allModules
+ .not($module)
+ .has(selector.menu + ':visible')
+ .dropdown('hide')
+ ;
+ },
+
+ toggle: function() {
+ module.verbose('Toggling menu visibility');
+ if( module.is.hidden() ) {
+ module.show();
+ }
+ else {
+ module.hide();
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ module.error(error.method, query);
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.dropdown.settings = {
+
+ name : 'Dropdown',
+ namespace : 'dropdown',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ on : 'click',
+ action : 'activate',
+
+ delay: {
+ show : 200,
+ hide : 300,
+ touch : 50
+ },
+
+ transition : 'slide down',
+ duration : 250,
+
+ onChange : function(value, text){},
+ onShow : function(){},
+ onHide : function(){},
+
+ error : {
+ action : 'You called a dropdown action that was not defined',
+ method : 'The method you called is not defined.',
+ transition : 'The requested transition was not found'
+ },
+
+ metadata: {
+ defaultText : 'defaultText',
+ defaultValue : 'defaultValue',
+ text : 'text',
+ value : 'value'
+ },
+
+ selector : {
+ menu : '.menu',
+ submenu : '> .menu',
+ item : '.menu > .item',
+ text : '> .text',
+ input : '> input[type="hidden"]'
+ },
+
+ className : {
+ active : 'active',
+ placeholder : 'default',
+ disabled : 'disabled',
+ visible : 'visible',
+ selection : 'selection'
+ }
+
+};
+
+// Adds easing
+$.extend( $.easing, {
+ easeOutQuad: function (x, t, b, c, d) {
+ return -c *(t/=d)*(t-2) + b;
+ },
+});
+
+
+})( jQuery, window , document );
+/*
+ * # Semantic - Modal
+ * http://github.com/semantic-org/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.modal = function(parameters) {
+ var
+ $allModules = $(this),
+ $window = $(window),
+ $document = $(document),
+ $body = $('body'),
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ requestAnimationFrame = window.requestAnimationFrame
+ || window.mozRequestAnimationFrame
+ || window.webkitRequestAnimationFrame
+ || window.msRequestAnimationFrame
+ || function(callback) { setTimeout(callback, 0); },
+
+ returnedValue
+ ;
+
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.modal.settings, parameters)
+ : $.extend({}, $.fn.modal.settings),
+
+ selector = settings.selector,
+ className = settings.className,
+ namespace = settings.namespace,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+ moduleSelector = $allModules.selector || '',
+
+ $module = $(this),
+ $context = $(settings.context),
+ $close = $module.find(selector.close),
+
+ $allModals,
+ $otherModals,
+ $focusedElement,
+ $dimmable,
+ $dimmer,
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing dimmer', $context);
+
+ if($.fn.dimmer === undefined) {
+ module.error(error.dimmer);
+ return;
+ }
+ $dimmable = $context
+ .dimmer({
+ closable : false,
+ useCSS : true,
+ duration : {
+ show : settings.duration * 0.9,
+ hide : settings.duration * 1.1
+ }
+ })
+ ;
+
+ if(settings.detachable) {
+ $dimmable.dimmer('add content', $module);
+ }
+
+ $dimmer = $dimmable
+ .dimmer('get dimmer')
+ ;
+
+ $otherModals = $module.siblings(selector.modal);
+ $allModals = $otherModals.add($module);
+
+ module.verbose('Attaching close events', $close);
+ $close
+ .on('click' + eventNamespace, module.event.close)
+ ;
+ $window
+ .on('resize' + eventNamespace, module.event.resize)
+ ;
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of modal');
+ instance = module;
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous modal');
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ $close
+ .off(eventNamespace)
+ ;
+ $context
+ .dimmer('destroy')
+ ;
+ },
+
+ refresh: function() {
+ module.remove.scrolling();
+ module.cacheSizes();
+ module.set.screenHeight();
+ module.set.type();
+ module.set.position();
+ },
+
+ attachEvents: function(selector, event) {
+ var
+ $toggle = $(selector)
+ ;
+ event = $.isFunction(module[event])
+ ? module[event]
+ : module.toggle
+ ;
+ if($toggle.size() > 0) {
+ module.debug('Attaching modal events to element', selector, event);
+ $toggle
+ .off(eventNamespace)
+ .on('click' + eventNamespace, event)
+ ;
+ }
+ else {
+ module.error(error.notFound);
+ }
+ },
+
+ event: {
+ close: function() {
+ module.verbose('Closing element pressed');
+ if( $(this).is(selector.approve) ) {
+ if($.proxy(settings.onApprove, element)() !== false) {
+ module.hide();
+ }
+ else {
+ module.verbose('Approve callback returned false cancelling hide');
+ }
+ }
+ else if( $(this).is(selector.deny) ) {
+ if($.proxy(settings.onDeny, element)() !== false) {
+ module.hide();
+ }
+ else {
+ module.verbose('Deny callback returned false cancelling hide');
+ }
+ }
+ else {
+ module.hide();
+ }
+ },
+ click: function(event) {
+ if( $(event.target).closest(selector.modal).size() === 0 ) {
+ module.debug('Dimmer clicked, hiding all modals');
+ if(settings.allowMultiple) {
+ module.hide();
+ }
+ else {
+ module.hideAll();
+ }
+ event.stopImmediatePropagation();
+ }
+ },
+ debounce: function(method, delay) {
+ clearTimeout(module.timer);
+ module.timer = setTimeout(method, delay);
+ },
+ keyboard: function(event) {
+ var
+ keyCode = event.which,
+ escapeKey = 27
+ ;
+ if(keyCode == escapeKey) {
+ if(settings.closable) {
+ module.debug('Escape key pressed hiding modal');
+ module.hide();
+ }
+ else {
+ module.debug('Escape key pressed, but closable is set to false');
+ }
+ event.preventDefault();
+ }
+ },
+ resize: function() {
+ if( $dimmable.dimmer('is active') ) {
+ requestAnimationFrame(module.refresh);
+ }
+ }
+ },
+
+ toggle: function() {
+ if( module.is.active() ) {
+ module.hide();
+ }
+ else {
+ module.show();
+ }
+ },
+
+ show: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.showDimmer();
+ module.showModal(callback);
+ },
+
+ showModal: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( !module.is.active() ) {
+ module.cacheSizes();
+ module.set.position();
+ module.set.screenHeight();
+ module.set.type();
+
+ if( $otherModals.filter(':visible').size() > 0 && !settings.allowMultiple) {
+ module.debug('Other modals visible, queueing show animation');
+ module.hideOthers(module.showModal);
+ }
+ else {
+ $.proxy(settings.onShow, element)();
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ module.debug('Showing modal with css animations');
+ $module
+ .transition(settings.transition + ' in', settings.duration, function() {
+ $.proxy(settings.onVisible, element)();
+ module.set.active();
+ callback();
+ })
+ ;
+ }
+ else {
+ module.debug('Showing modal with javascript');
+ $module
+ .fadeIn(settings.duration, settings.easing, function() {
+ $.proxy(settings.onVisible, element)();
+ module.set.active();
+ callback();
+ })
+ ;
+ }
+ }
+ }
+ else {
+ module.debug('Modal is already visible');
+ }
+ },
+
+ showDimmer: function() {
+ if( !$dimmable.dimmer('is active') ) {
+ module.debug('Showing dimmer');
+ $dimmable.dimmer('show');
+ }
+ else {
+ module.debug('Dimmer already visible');
+ }
+ },
+
+ hide: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if($allModals.filter(':visible').size() <= 1) {
+ module.hideDimmer();
+ }
+ module.hideModal(callback);
+ },
+
+ hideDimmer: function() {
+ if( !module.is.active() ) {
+ module.debug('Dimmer is not visible cannot hide');
+ return;
+ }
+ module.debug('Hiding dimmer');
+ if(settings.closable) {
+ $dimmer
+ .off('click' + eventNamespace)
+ ;
+ }
+ $dimmable.dimmer('hide', function() {
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $module
+ .transition('reset')
+ ;
+ module.remove.screenHeight();
+ }
+ module.remove.active();
+ });
+ },
+
+ hideModal: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( !module.is.active() ) {
+ module.debug('Cannot hide modal it is not active');
+ return;
+ }
+ module.debug('Hiding modal');
+ module.remove.keyboardShortcuts();
+ $.proxy(settings.onHide, element)();
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $module
+ .transition(settings.transition + ' out', settings.duration, function() {
+ $.proxy(settings.onHidden, element)();
+ module.remove.active();
+ module.restore.focus();
+ callback();
+ })
+ ;
+ }
+ else {
+ $module
+ .fadeOut(settings.duration, settings.easing, function() {
+ $.proxy(settings.onHidden, element)();
+ module.remove.active();
+ module.restore.focus();
+ callback();
+ })
+ ;
+ }
+ },
+
+ hideAll: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( $allModals.is(':visible') ) {
+ module.debug('Hiding all visible modals');
+ module.hideDimmer();
+ $allModals
+ .filter(':visible')
+ .modal('hide modal', callback)
+ ;
+ }
+ },
+
+ hideOthers: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( $otherModals.is(':visible') ) {
+ module.debug('Hiding other modals');
+ $otherModals
+ .filter(':visible')
+ .modal('hide modal', callback)
+ ;
+ }
+ },
+
+ add: {
+ keyboardShortcuts: function() {
+ module.verbose('Adding keyboard shortcuts');
+ $document
+ .on('keyup' + eventNamespace, module.event.keyboard)
+ ;
+ }
+ },
+
+ save: {
+ focus: function() {
+ $focusedElement = $(document.activeElement).blur();
+ }
+ },
+
+ restore: {
+ focus: function() {
+ if($focusedElement && $focusedElement.size() > 0) {
+ $focusedElement.focus();
+ }
+ }
+ },
+
+ remove: {
+ active: function() {
+ $module.removeClass(className.active);
+ },
+ screenHeight: function() {
+ if(module.cache.height > module.cache.pageHeight) {
+ module.debug('Removing page height');
+ $body
+ .css('height', '')
+ ;
+ }
+ },
+ keyboardShortcuts: function() {
+ module.verbose('Removing keyboard shortcuts');
+ $document
+ .off('keyup' + eventNamespace)
+ ;
+ },
+ scrolling: function() {
+ $dimmable.removeClass(className.scrolling);
+ $module.removeClass(className.scrolling);
+ }
+ },
+
+ cacheSizes: function() {
+ module.cache = {
+ pageHeight : $body.outerHeight(),
+ height : $module.outerHeight() + settings.offset,
+ contextHeight : (settings.context == 'body')
+ ? $(window).height()
+ : $dimmable.height()
+ };
+ module.debug('Caching modal and container sizes', module.cache);
+ },
+
+ can: {
+ fit: function() {
+ return (module.cache.height < module.cache.contextHeight);
+ }
+ },
+
+ is: {
+ active: function() {
+ return $module.hasClass(className.active);
+ },
+ modernBrowser: function() {
+ // appName for IE11 reports 'Netscape' can no longer use
+ return !(window.ActiveXObject || "ActiveXObject" in window);
+ }
+ },
+
+ set: {
+ screenHeight: function() {
+ if(module.cache.height > module.cache.pageHeight) {
+ module.debug('Modal is taller than page content, resizing page height');
+ $body
+ .css('height', module.cache.height + settings.padding)
+ ;
+ }
+ },
+ active: function() {
+ module.add.keyboardShortcuts();
+ module.save.focus();
+ $module
+ .addClass(className.active)
+ ;
+ if(settings.closable) {
+ $dimmer
+ .off('click' + eventNamespace)
+ .on('click' + eventNamespace, module.event.click)
+ ;
+ }
+ },
+ scrolling: function() {
+ $dimmable.addClass(className.scrolling);
+ $module.addClass(className.scrolling);
+ },
+ type: function() {
+ if(module.can.fit()) {
+ module.verbose('Modal fits on screen');
+ module.remove.scrolling();
+ }
+ else {
+ module.verbose('Modal cannot fit on screen setting to scrolling');
+ module.set.scrolling();
+ }
+ },
+ position: function() {
+ module.verbose('Centering modal on page', module.cache);
+ if(module.can.fit()) {
+ $module
+ .css({
+ top: '',
+ marginTop: -(module.cache.height / 2)
+ })
+ ;
+ }
+ else {
+ $module
+ .css({
+ marginTop : '1em',
+ top : $document.scrollTop()
+ })
+ ;
+ }
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.modal.settings = {
+
+ name : 'Modal',
+ namespace : 'modal',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ allowMultiple : true,
+ detachable : true,
+ closable : true,
+ context : 'body',
+
+ duration : 500,
+ easing : 'easeOutExpo',
+ offset : 0,
+ transition : 'scale',
+
+ padding : 30,
+
+ onShow : function(){},
+ onHide : function(){},
+
+ onVisible : function(){},
+ onHidden : function(){},
+
+ onApprove : function(){ return true; },
+ onDeny : function(){ return true; },
+
+ selector : {
+ close : '.close, .actions .button',
+ approve : '.actions .positive, .actions .approve, .actions .ok',
+ deny : '.actions .negative, .actions .deny, .actions .cancel',
+ modal : '.ui.modal'
+ },
+ error : {
+ dimmer : 'UI Dimmer, a required component is not included in this page',
+ method : 'The method you called is not defined.'
+ },
+ className : {
+ active : 'active',
+ scrolling : 'scrolling'
+ }
+};
+
+
+})( jQuery, window , document );
+/*
+ * # Semantic - Nag
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.nag = function(parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $(this)
+ .each(function() {
+ var
+ settings = $.extend(true, {}, $.fn.nag.settings, parameters),
+
+ className = settings.className,
+ selector = settings.selector,
+ error = settings.error,
+ namespace = settings.namespace,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = namespace + '-module',
+
+ $module = $(this),
+
+ $close = $module.find(selector.close),
+ $context = $(settings.context),
+
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+
+ moduleOffset,
+ moduleHeight,
+
+ contextWidth,
+ contextHeight,
+ contextOffset,
+
+ yOffset,
+ yPosition,
+
+ timer,
+ module,
+
+ requestAnimationFrame = window.requestAnimationFrame
+ || window.mozRequestAnimationFrame
+ || window.webkitRequestAnimationFrame
+ || window.msRequestAnimationFrame
+ || function(callback) { setTimeout(callback, 0); }
+ ;
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing element');
+ // calculate module offset once
+ moduleOffset = $module.offset();
+ moduleHeight = $module.outerHeight();
+ contextWidth = $context.outerWidth();
+ contextHeight = $context.outerHeight();
+ contextOffset = $context.offset();
+
+ $module
+ .data(moduleNamespace, module)
+ ;
+ $close
+ .on('click' + eventNamespace, module.dismiss)
+ ;
+ // lets avoid javascript if we dont need to reposition
+ if(settings.context == window && settings.position == 'fixed') {
+ $module
+ .addClass(className.fixed)
+ ;
+ }
+ if(settings.sticky) {
+ module.verbose('Adding scroll events');
+ // retrigger on scroll for absolute
+ if(settings.position == 'absolute') {
+ $context
+ .on('scroll' + eventNamespace, module.event.scroll)
+ .on('resize' + eventNamespace, module.event.scroll)
+ ;
+ }
+ // fixed is always relative to window
+ else {
+ $(window)
+ .on('scroll' + eventNamespace, module.event.scroll)
+ .on('resize' + eventNamespace, module.event.scroll)
+ ;
+ }
+ // fire once to position on init
+ $.proxy(module.event.scroll, this)();
+ }
+
+ if(settings.displayTime > 0) {
+ setTimeout(module.hide, settings.displayTime);
+ }
+ if(module.should.show()) {
+ if( !$module.is(':visible') ) {
+ module.show();
+ }
+ }
+ else {
+ module.hide();
+ }
+ },
+
+ destroy: function() {
+ module.verbose('Destroying instance');
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ if(settings.sticky) {
+ $context
+ .off(eventNamespace)
+ ;
+ }
+ },
+
+ refresh: function() {
+ module.debug('Refreshing cached calculations');
+ moduleOffset = $module.offset();
+ moduleHeight = $module.outerHeight();
+ contextWidth = $context.outerWidth();
+ contextHeight = $context.outerHeight();
+ contextOffset = $context.offset();
+ },
+
+ show: function() {
+ module.debug('Showing nag', settings.animation.show);
+ if(settings.animation.show == 'fade') {
+ $module
+ .fadeIn(settings.duration, settings.easing)
+ ;
+ }
+ else {
+ $module
+ .slideDown(settings.duration, settings.easing)
+ ;
+ }
+ },
+
+ hide: function() {
+ module.debug('Showing nag', settings.animation.hide);
+ if(settings.animation.show == 'fade') {
+ $module
+ .fadeIn(settings.duration, settings.easing)
+ ;
+ }
+ else {
+ $module
+ .slideUp(settings.duration, settings.easing)
+ ;
+ }
+ },
+
+ onHide: function() {
+ module.debug('Removing nag', settings.animation.hide);
+ $module.remove();
+ if (settings.onHide) {
+ settings.onHide();
+ }
+ },
+
+ stick: function() {
+ module.refresh();
+
+ if(settings.position == 'fixed') {
+ var
+ windowScroll = $(window).prop('pageYOffset') || $(window).scrollTop(),
+ fixedOffset = ( $module.hasClass(className.bottom) )
+ ? contextOffset.top + (contextHeight - moduleHeight) - windowScroll
+ : contextOffset.top - windowScroll
+ ;
+ $module
+ .css({
+ position : 'fixed',
+ top : fixedOffset,
+ left : contextOffset.left,
+ width : contextWidth - settings.scrollBarWidth
+ })
+ ;
+ }
+ else {
+ $module
+ .css({
+ top : yPosition
+ })
+ ;
+ }
+ },
+ unStick: function() {
+ $module
+ .css({
+ top : ''
+ })
+ ;
+ },
+ dismiss: function(event) {
+ if(settings.storageMethod) {
+ module.storage.set(settings.storedKey, settings.storedValue);
+ }
+ module.hide();
+ event.stopImmediatePropagation();
+ event.preventDefault();
+ },
+
+ should: {
+ show: function() {
+ if(settings.persist) {
+ module.debug('Persistent nag is set, can show nag');
+ return true;
+ }
+ if(module.storage.get(settings.storedKey) != settings.storedValue) {
+ module.debug('Stored value is not set, can show nag', module.storage.get(settings.storedKey));
+ return true;
+ }
+ module.debug('Stored value is set, cannot show nag', module.storage.get(settings.storedKey));
+ return false;
+ },
+ stick: function() {
+ yOffset = $context.prop('pageYOffset') || $context.scrollTop();
+ yPosition = ( $module.hasClass(className.bottom) )
+ ? (contextHeight - $module.outerHeight() ) + yOffset
+ : yOffset
+ ;
+ // absolute position calculated when y offset met
+ if(yPosition > moduleOffset.top) {
+ return true;
+ }
+ else if(settings.position == 'fixed') {
+ return true;
+ }
+ return false;
+ }
+ },
+
+ storage: {
+
+ set: function(key, value) {
+ module.debug('Setting stored value', key, value, settings.storageMethod);
+ if(settings.storageMethod == 'local' && window.store !== undefined) {
+ window.store.set(key, value);
+ }
+ // store by cookie
+ else if($.cookie !== undefined) {
+ $.cookie(key, value);
+ }
+ else {
+ module.error(error.noStorage);
+ }
+ },
+ get: function(key) {
+ module.debug('Getting stored value', key, settings.storageMethod);
+ if(settings.storageMethod == 'local' && window.store !== undefined) {
+ return window.store.get(key);
+ }
+ // get by cookie
+ else if($.cookie !== undefined) {
+ return $.cookie(key);
+ }
+ else {
+ module.error(error.noStorage);
+ }
+ }
+
+ },
+
+ event: {
+ scroll: function() {
+ if(timer !== undefined) {
+ clearTimeout(timer);
+ }
+ timer = setTimeout(function() {
+ if(module.should.stick() ) {
+ requestAnimationFrame(module.stick);
+ }
+ else {
+ module.unStick();
+ }
+ }, settings.lag);
+ }
+ },
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ module.debug('Changing internal', name, value);
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else {
+ module[name] = value;
+ }
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ })
+ ;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.nag.settings = {
+
+ name : 'Nag',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ namespace : 'Nag',
+
+ // allows cookie to be overriden
+ persist : false,
+
+ // set to zero to manually dismiss, otherwise hides on its own
+ displayTime : 0,
+
+ animation : {
+ show: 'slide',
+ hide: 'slide'
+ },
+
+ // method of stickyness
+ position : 'fixed',
+ scrollBarWidth : 18,
+
+ // type of storage to use
+ storageMethod : 'cookie',
+
+ // value to store in dismissed localstorage/cookie
+ storedKey : 'nag',
+ storedValue : 'dismiss',
+
+ // need to calculate stickyness on scroll
+ sticky : false,
+
+ // how often to check scroll event
+ lag : 0,
+
+ // context for scroll event
+ context : window,
+
+ error: {
+ noStorage : 'Neither $.cookie or store is defined. A storage solution is required for storing state',
+ method : 'The method you called is not defined.'
+ },
+
+ className : {
+ bottom : 'bottom',
+ fixed : 'fixed'
+ },
+
+ selector : {
+ close: '.icon.close'
+ },
+
+ speed : 500,
+ easing : 'easeOutQuad',
+
+ onHide: function() {}
+
+};
+
+})( jQuery, window , document );
+
+/*
+ * # Semantic - Popup
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.popup = function(parameters) {
+ var
+ $allModules = $(this),
+ $document = $(document),
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.popup.settings, parameters)
+ : $.extend({}, $.fn.popup.settings),
+
+ selector = settings.selector,
+ className = settings.className,
+ error = settings.error,
+ metadata = settings.metadata,
+ namespace = settings.namespace,
+
+ eventNamespace = '.' + settings.namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $context = $(settings.context),
+ $target = (settings.target)
+ ? $(settings.target)
+ : $module,
+
+ $window = $(window),
+
+ $offsetParent = (settings.inline)
+ ? $target.offsetParent()
+ : $window,
+ $popup = (settings.inline)
+ ? $target.next(settings.selector.popup)
+ : $window.children(settings.selector.popup).last(),
+
+ searchDepth = 0,
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ // binds events
+ initialize: function() {
+ module.debug('Initializing module', $module);
+ if(settings.on == 'click') {
+ $module
+ .on('click', module.toggle)
+ ;
+ }
+ else {
+ $module
+ .on(module.get.startEvent() + eventNamespace, module.event.start)
+ .on(module.get.endEvent() + eventNamespace, module.event.end)
+ ;
+ }
+ if(settings.target) {
+ module.debug('Target set to element', $target);
+ }
+ $window
+ .on('resize' + eventNamespace, module.event.resize)
+ ;
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ refresh: function() {
+ if(settings.inline) {
+ $popup = $target.next(selector.popup);
+ $offsetParent = $target.offsetParent();
+ }
+ else {
+ $popup = $window.children(selector.popup).last();
+ }
+ },
+
+ destroy: function() {
+ module.debug('Destroying previous module');
+ $window
+ .off(eventNamespace)
+ ;
+ $popup
+ .remove()
+ ;
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ event: {
+ start: function(event) {
+ module.timer = setTimeout(function() {
+ if( module.is.hidden() ) {
+ module.show();
+ }
+ }, settings.delay);
+ },
+ end: function() {
+ clearTimeout(module.timer);
+ if( module.is.visible() ) {
+ module.hide();
+ }
+ },
+ resize: function() {
+ if( module.is.visible() ) {
+ module.set.position();
+ }
+ }
+ },
+
+ // generates popup html from metadata
+ create: function() {
+ module.debug('Creating pop-up html');
+ var
+ html = $module.data(metadata.html) || settings.html,
+ variation = $module.data(metadata.variation) || settings.variation,
+ title = $module.data(metadata.title) || settings.title,
+ content = $module.data(metadata.content) || $module.attr('title') || settings.content
+ ;
+ if(html || content || title) {
+ if(!html) {
+ html = settings.template({
+ title : title,
+ content : content
+ });
+ }
+ $popup = $('
')
+ .addClass(className.popup)
+ .addClass(variation)
+ .html(html)
+ ;
+ if(settings.inline) {
+ module.verbose('Inserting popup element inline', $popup);
+ $popup
+ .data(moduleNamespace, instance)
+ .insertAfter($module)
+ ;
+ }
+ else {
+ module.verbose('Appending popup element to body', $popup);
+ $popup
+ .data(moduleNamespace, instance)
+ .appendTo( $context )
+ ;
+ }
+ $.proxy(settings.onCreate, $popup)();
+ }
+ else {
+ module.error(error.content);
+ }
+ },
+
+ // determines popup state
+ toggle: function() {
+ module.debug('Toggling pop-up');
+ if( module.is.hidden() ) {
+ module.debug('Popup is hidden, showing pop-up');
+ module.unbind.close();
+ module.hideAll();
+ module.show();
+ }
+ else {
+ module.debug('Popup is visible, hiding pop-up');
+ module.hide();
+ }
+ },
+
+ show: function(callback) {
+ callback = callback || function(){};
+ module.debug('Showing pop-up', settings.transition);
+ if(!settings.preserve) {
+ module.refresh();
+ }
+ if( !module.exists() ) {
+ module.create();
+ }
+ module.save.conditions();
+ module.set.position();
+ module.animate.show(callback);
+ },
+
+
+ hide: function(callback) {
+ callback = callback || function(){};
+ $module
+ .removeClass(className.visible)
+ ;
+ module.restore.conditions();
+ module.unbind.close();
+ if( module.is.visible() ) {
+ module.animate.hide(callback);
+ }
+ },
+
+ hideAll: function() {
+ $(selector.popup)
+ .filter(':visible')
+ .popup('hide')
+ ;
+ },
+
+ hideGracefully: function(event) {
+ // don't close on clicks inside popup
+ if(event && $(event.target).closest(selector.popup).size() === 0) {
+ module.debug('Click occurred outside popup hiding popup');
+ module.hide();
+ }
+ else {
+ module.debug('Click was inside popup, keeping popup open');
+ }
+ },
+
+ exists: function() {
+ if(settings.inline) {
+ return ( $popup.size() !== 0 );
+ }
+ else {
+ return ( $popup.parent($context).size() );
+ }
+ },
+
+ remove: function() {
+ module.debug('Removing popup');
+ $popup
+ .remove()
+ ;
+ },
+
+ save: {
+ conditions: function() {
+ module.cache = {
+ title: $module.attr('title')
+ };
+ if (module.cache.title) {
+ $module.removeAttr('title');
+ }
+ module.verbose('Saving original attributes', module.cache.title);
+ }
+ },
+ restore: {
+ conditions: function() {
+ if(module.cache && module.cache.title) {
+ $module.attr('title', module.cache.title);
+ module.verbose('Restoring original attributes', module.cache.title);
+ }
+ return true;
+ }
+ },
+ animate: {
+ show: function(callback) {
+ callback = callback || function(){};
+ $module
+ .addClass(className.visible)
+ ;
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $popup
+ .transition(settings.transition + ' in', settings.duration, function() {
+ module.bind.close();
+ $.proxy(callback, element)();
+ })
+ ;
+ }
+ else {
+ $popup
+ .stop()
+ .fadeIn(settings.duration, settings.easing, function() {
+ module.bind.close();
+ $.proxy(callback, element)();
+ })
+ ;
+ }
+ $.proxy(settings.onShow, element)();
+ },
+ hide: function(callback) {
+ callback = callback || function(){};
+ module.debug('Hiding pop-up');
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $popup
+ .transition(settings.transition + ' out', settings.duration, function() {
+ module.reset();
+ callback();
+ })
+ ;
+ }
+ else {
+ $popup
+ .stop()
+ .fadeOut(settings.duration, settings.easing, function() {
+ module.reset();
+ callback();
+ })
+ ;
+ }
+ $.proxy(settings.onHide, element)();
+ }
+ },
+
+ get: {
+ startEvent: function() {
+ if(settings.on == 'hover') {
+ return 'mouseenter';
+ }
+ else if(settings.on == 'focus') {
+ return 'focus';
+ }
+ },
+ endEvent: function() {
+ if(settings.on == 'hover') {
+ return 'mouseleave';
+ }
+ else if(settings.on == 'focus') {
+ return 'blur';
+ }
+ },
+ offstagePosition: function() {
+ var
+ boundary = {
+ top : $(window).scrollTop(),
+ bottom : $(window).scrollTop() + $(window).height(),
+ left : 0,
+ right : $(window).width()
+ },
+ popup = {
+ width : $popup.width(),
+ height : $popup.outerHeight(),
+ position : $popup.offset()
+ },
+ offstage = {},
+ offstagePositions = []
+ ;
+ if(popup.position) {
+ offstage = {
+ top : (popup.position.top < boundary.top),
+ bottom : (popup.position.top + popup.height > boundary.bottom),
+ right : (popup.position.left + popup.width > boundary.right),
+ left : (popup.position.left < boundary.left)
+ };
+ }
+ module.verbose('Checking if outside viewable area', popup.position);
+ // return only boundaries that have been surpassed
+ $.each(offstage, function(direction, isOffstage) {
+ if(isOffstage) {
+ offstagePositions.push(direction);
+ }
+ });
+ return (offstagePositions.length > 0)
+ ? offstagePositions.join(' ')
+ : false
+ ;
+ },
+ nextPosition: function(position) {
+ switch(position) {
+ case 'top left':
+ position = 'bottom left';
+ break;
+ case 'bottom left':
+ position = 'top right';
+ break;
+ case 'top right':
+ position = 'bottom right';
+ break;
+ case 'bottom right':
+ position = 'top center';
+ break;
+ case 'top center':
+ position = 'bottom center';
+ break;
+ case 'bottom center':
+ position = 'right center';
+ break;
+ case 'right center':
+ position = 'left center';
+ break;
+ case 'left center':
+ position = 'top center';
+ break;
+ }
+ return position;
+ }
+ },
+
+ set: {
+ position: function(position, arrowOffset) {
+ var
+ windowWidth = $(window).width(),
+ windowHeight = $(window).height(),
+
+ width = $target.outerWidth(),
+ height = $target.outerHeight(),
+
+ popupWidth = $popup.width(),
+ popupHeight = $popup.outerHeight(),
+
+ parentWidth = $offsetParent.outerWidth(),
+ parentHeight = $offsetParent.outerHeight(),
+
+ distanceAway = settings.distanceAway,
+
+ offset = (settings.inline)
+ ? $target.position()
+ : $target.offset(),
+
+ positioning,
+ offstagePosition
+ ;
+ position = position || $module.data(metadata.position) || settings.position;
+ arrowOffset = arrowOffset || $module.data(metadata.offset) || settings.offset;
+ // adjust for margin when inline
+ if(settings.inline) {
+ if(position == 'left center' || position == 'right center') {
+ arrowOffset += parseInt( window.getComputedStyle(element).getPropertyValue('margin-top'), 10);
+ distanceAway += -parseInt( window.getComputedStyle(element).getPropertyValue('margin-left'), 10);
+ }
+ else {
+ arrowOffset += parseInt( window.getComputedStyle(element).getPropertyValue('margin-left'), 10);
+ distanceAway += parseInt( window.getComputedStyle(element).getPropertyValue('margin-top'), 10);
+ }
+ }
+ module.debug('Calculating offset for position', position);
+ switch(position) {
+ case 'top left':
+ positioning = {
+ bottom : parentHeight - offset.top + distanceAway,
+ right : parentWidth - offset.left - arrowOffset,
+ top : 'auto',
+ left : 'auto'
+ };
+ break;
+ case 'top center':
+ positioning = {
+ bottom : parentHeight - offset.top + distanceAway,
+ left : offset.left + (width / 2) - (popupWidth / 2) + arrowOffset,
+ top : 'auto',
+ right : 'auto'
+ };
+ break;
+ case 'top right':
+ positioning = {
+ top : 'auto',
+ bottom : parentHeight - offset.top + distanceAway,
+ left : offset.left + width + arrowOffset,
+ right : 'auto'
+ };
+ break;
+ case 'left center':
+ positioning = {
+ top : offset.top + (height / 2) - (popupHeight / 2) + arrowOffset,
+ right : parentWidth - offset.left + distanceAway,
+ left : 'auto',
+ bottom : 'auto'
+ };
+ break;
+ case 'right center':
+ positioning = {
+ top : offset.top + (height / 2) - (popupHeight / 2) + arrowOffset,
+ left : offset.left + width + distanceAway,
+ bottom : 'auto',
+ right : 'auto'
+ };
+ break;
+ case 'bottom left':
+ positioning = {
+ top : offset.top + height + distanceAway,
+ right : parentWidth - offset.left - arrowOffset,
+ left : 'auto',
+ bottom : 'auto'
+ };
+ break;
+ case 'bottom center':
+ positioning = {
+ top : offset.top + height + distanceAway,
+ left : offset.left + (width / 2) - (popupWidth / 2) + arrowOffset,
+ bottom : 'auto',
+ right : 'auto'
+ };
+ break;
+ case 'bottom right':
+ positioning = {
+ top : offset.top + height + distanceAway,
+ left : offset.left + width + arrowOffset,
+ bottom : 'auto',
+ right : 'auto'
+ };
+ break;
+ }
+ // tentatively place on stage
+ $popup
+ .css(positioning)
+ .removeClass(className.position)
+ .addClass(position)
+ .addClass(className.loading)
+ ;
+ // check if is offstage
+ offstagePosition = module.get.offstagePosition();
+
+ // recursively find new positioning
+ if(offstagePosition) {
+ module.debug('Element is outside boundaries', offstagePosition);
+ if(searchDepth < settings.maxSearchDepth) {
+ position = module.get.nextPosition(position);
+ searchDepth++;
+ module.debug('Trying new position', position);
+ return module.set.position(position);
+ }
+ else {
+ module.error(error.recursion);
+ searchDepth = 0;
+ module.reset();
+ $popup.removeClass(className.loading);
+ return false;
+ }
+ }
+ else {
+ module.debug('Position is on stage', position);
+ searchDepth = 0;
+ $popup.removeClass(className.loading);
+ return true;
+ }
+ }
+
+ },
+
+ bind: {
+ close:function() {
+ if(settings.on == 'click' && settings.closable) {
+ module.verbose('Binding popup close event to document');
+ $document
+ .on('click' + eventNamespace, function(event) {
+ module.verbose('Pop-up clickaway intent detected');
+ $.proxy(module.hideGracefully, this)(event);
+ })
+ ;
+ }
+ }
+ },
+
+ unbind: {
+ close: function() {
+ if(settings.on == 'click' && settings.closable) {
+ module.verbose('Removing close event from document');
+ $document
+ .off('click' + eventNamespace)
+ ;
+ }
+ }
+ },
+
+ is: {
+ animating: function() {
+ return ( $popup.is(':animated') || $popup.hasClass(className.animating) );
+ },
+ visible: function() {
+ return $popup.is(':visible');
+ },
+ hidden: function() {
+ return !module.is.visible();
+ }
+ },
+
+ reset: function() {
+ $popup
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ if(!settings.preserve) {
+ module.remove();
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.popup.settings = {
+
+ name : 'Popup',
+ debug : false,
+ verbose : true,
+ performance : true,
+ namespace : 'popup',
+
+ onCreate : function(){},
+ onShow : function(){},
+ onHide : function(){},
+
+ variation : '',
+ content : false,
+ html : false,
+ title : false,
+
+ on : 'hover',
+ target : false,
+ closable : true,
+
+ context : 'body',
+ position : 'top center',
+ delay : 150,
+ inline : false,
+ preserve : false,
+
+ duration : 250,
+ easing : 'easeOutQuint',
+ transition : 'scale',
+
+ distanceAway : 0,
+ offset : 0,
+ maxSearchDepth : 10,
+
+ error: {
+ content : 'Your popup has no content specified',
+ method : 'The method you called is not defined.',
+ recursion : 'Popup attempted to reposition element to fit, but could not find an adequate position.'
+ },
+
+ metadata: {
+ content : 'content',
+ html : 'html',
+ offset : 'offset',
+ position : 'position',
+ title : 'title',
+ variation : 'variation'
+ },
+
+ className : {
+ animating : 'animating',
+ loading : 'loading',
+ popup : 'ui popup',
+ position : 'top left center bottom right',
+ visible : 'visible'
+ },
+
+ selector : {
+ popup : '.ui.popup'
+ },
+
+ template: function(text) {
+ var html = '';
+ if(typeof text !== undefined) {
+ if(typeof text.title !== undefined && text.title) {
+ html += '';
+ }
+ if(typeof text.content !== undefined && text.content) {
+ html += '
' + text.content + '
';
+ }
+ }
+ return html;
+ }
+
+};
+
+})( jQuery, window , document );
+
+/*
+ * # Semantic - Rating
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.rating = function(parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.rating.settings, parameters)
+ : $.extend({}, $.fn.rating.settings),
+
+ namespace = settings.namespace,
+ className = settings.className,
+ metadata = settings.metadata,
+ selector = settings.selector,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ element = this,
+ instance = $(this).data(moduleNamespace),
+
+ $module = $(this),
+ $icon = $module.find(selector.icon),
+
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing rating module', settings);
+
+ if(settings.interactive) {
+ module.enable();
+ }
+ else {
+ module.disable();
+ }
+
+ if(settings.initialRating) {
+ module.debug('Setting initial rating');
+ module.setRating(settings.initialRating);
+ }
+ if( $module.data(metadata.rating) ) {
+ module.debug('Rating found in metadata');
+ module.setRating( $module.data(metadata.rating) );
+ }
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Instantiating module', settings);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous instance', instance);
+ $module
+ .removeData(moduleNamespace)
+ ;
+ $icon
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+ mouseenter: function() {
+ var
+ $activeIcon = $(this)
+ ;
+ $activeIcon
+ .nextAll()
+ .removeClass(className.hover)
+ ;
+ $module
+ .addClass(className.hover)
+ ;
+ $activeIcon
+ .addClass(className.hover)
+ .prevAll()
+ .addClass(className.hover)
+ ;
+ },
+ mouseleave: function() {
+ $module
+ .removeClass(className.hover)
+ ;
+ $icon
+ .removeClass(className.hover)
+ ;
+ },
+ click: function() {
+ var
+ $activeIcon = $(this),
+ currentRating = module.getRating(),
+ rating = $icon.index($activeIcon) + 1
+ ;
+ if(settings.clearable && currentRating == rating) {
+ module.clearRating();
+ }
+ else {
+ module.setRating( rating );
+ }
+ }
+ },
+
+ clearRating: function() {
+ module.debug('Clearing current rating');
+ module.setRating(0);
+ },
+
+ getRating: function() {
+ var
+ currentRating = $icon.filter('.' + className.active).size()
+ ;
+ module.verbose('Current rating retrieved', currentRating);
+ return currentRating;
+ },
+
+ enable: function() {
+ module.debug('Setting rating to interactive mode');
+ $icon
+ .on('mouseenter' + eventNamespace, module.event.mouseenter)
+ .on('mouseleave' + eventNamespace, module.event.mouseleave)
+ .on('click' + eventNamespace, module.event.click)
+ ;
+ $module
+ .removeClass(className.disabled)
+ ;
+ },
+
+ disable: function() {
+ module.debug('Setting rating to read-only mode');
+ $icon
+ .off(eventNamespace)
+ ;
+ $module
+ .addClass(className.disabled)
+ ;
+ },
+
+ setRating: function(rating) {
+ var
+ ratingIndex = (rating - 1 >= 0)
+ ? (rating - 1)
+ : 0,
+ $activeIcon = $icon.eq(ratingIndex)
+ ;
+ $module
+ .removeClass(className.hover)
+ ;
+ $icon
+ .removeClass(className.hover)
+ .removeClass(className.active)
+ ;
+ if(rating > 0) {
+ module.verbose('Setting current rating to', rating);
+ $activeIcon
+ .addClass(className.active)
+ .prevAll()
+ .addClass(className.active)
+ ;
+ }
+ $.proxy(settings.onRate, element)(rating);
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.rating.settings = {
+
+ name : 'Rating',
+ namespace : 'rating',
+
+ verbose : true,
+ debug : false,
+ performance : true,
+
+ initialRating : 0,
+ interactive : true,
+ clearable : false,
+
+ onRate : function(rating){},
+
+ error : {
+ method : 'The method you called is not defined'
+ },
+
+ metadata: {
+ rating: 'rating'
+ },
+
+ className : {
+ active : 'active',
+ disabled : 'disabled',
+ hover : 'hover',
+ loading : 'loading'
+ },
+
+ selector : {
+ icon : '.icon'
+ }
+
+};
+
+})( jQuery, window , document );
+
+/*
+ * # Semantic - Search
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.search = function(source, parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $(this)
+ .each(function() {
+ var
+ settings = $.extend(true, {}, $.fn.search.settings, parameters),
+
+ className = settings.className,
+ selector = settings.selector,
+ error = settings.error,
+ namespace = settings.namespace,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = namespace + '-module',
+
+ $module = $(this),
+ $prompt = $module.find(selector.prompt),
+ $searchButton = $module.find(selector.searchButton),
+ $results = $module.find(selector.results),
+ $result = $module.find(selector.result),
+ $category = $module.find(selector.category),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+
+ module
+ ;
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing module');
+ var
+ prompt = $prompt[0],
+ inputEvent = (prompt.oninput !== undefined)
+ ? 'input'
+ : (prompt.onpropertychange !== undefined)
+ ? 'propertychange'
+ : 'keyup'
+ ;
+ // attach events
+ $prompt
+ .on('focus' + eventNamespace, module.event.focus)
+ .on('blur' + eventNamespace, module.event.blur)
+ .on('keydown' + eventNamespace, module.handleKeyboard)
+ ;
+ if(settings.automatic) {
+ $prompt
+ .on(inputEvent + eventNamespace, module.search.throttle)
+ ;
+ }
+ $searchButton
+ .on('click' + eventNamespace, module.search.query)
+ ;
+ $results
+ .on('click' + eventNamespace, selector.result, module.results.select)
+ ;
+ module.instantiate();
+ },
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+ destroy: function() {
+ module.verbose('Destroying instance');
+ $module
+ .removeData(moduleNamespace)
+ ;
+ },
+ event: {
+ focus: function() {
+ $module
+ .addClass(className.focus)
+ ;
+ module.results.show();
+ },
+ blur: function() {
+ module.search.cancel();
+ $module
+ .removeClass(className.focus)
+ ;
+ module.results.hide();
+ }
+ },
+ handleKeyboard: function(event) {
+ var
+ // force latest jq dom
+ $result = $module.find(selector.result),
+ $category = $module.find(selector.category),
+ keyCode = event.which,
+ keys = {
+ backspace : 8,
+ enter : 13,
+ escape : 27,
+ upArrow : 38,
+ downArrow : 40
+ },
+ activeClass = className.active,
+ currentIndex = $result.index( $result.filter('.' + activeClass) ),
+ resultSize = $result.size(),
+ newIndex
+ ;
+ // search shortcuts
+ if(keyCode == keys.escape) {
+ module.verbose('Escape key pressed, blurring search field');
+ $prompt
+ .trigger('blur')
+ ;
+ }
+ // result shortcuts
+ if($results.filter(':visible').size() > 0) {
+ if(keyCode == keys.enter) {
+ module.verbose('Enter key pressed, selecting active result');
+ if( $result.filter('.' + activeClass).exists() ) {
+ $.proxy(module.results.select, $result.filter('.' + activeClass) )();
+ event.preventDefault();
+ return false;
+ }
+ }
+ else if(keyCode == keys.upArrow) {
+ module.verbose('Up key pressed, changing active result');
+ newIndex = (currentIndex - 1 < 0)
+ ? currentIndex
+ : currentIndex - 1
+ ;
+ $category
+ .removeClass(activeClass)
+ ;
+ $result
+ .removeClass(activeClass)
+ .eq(newIndex)
+ .addClass(activeClass)
+ .closest($category)
+ .addClass(activeClass)
+ ;
+ event.preventDefault();
+ }
+ else if(keyCode == keys.downArrow) {
+ module.verbose('Down key pressed, changing active result');
+ newIndex = (currentIndex + 1 >= resultSize)
+ ? currentIndex
+ : currentIndex + 1
+ ;
+ $category
+ .removeClass(activeClass)
+ ;
+ $result
+ .removeClass(activeClass)
+ .eq(newIndex)
+ .addClass(activeClass)
+ .closest($category)
+ .addClass(activeClass)
+ ;
+ event.preventDefault();
+ }
+ }
+ else {
+ // query shortcuts
+ if(keyCode == keys.enter) {
+ module.verbose('Enter key pressed, executing query');
+ module.search.query();
+ $searchButton
+ .addClass(className.down)
+ ;
+ $prompt
+ .one('keyup', function(){
+ $searchButton
+ .removeClass(className.down)
+ ;
+ })
+ ;
+ }
+ }
+ },
+ search: {
+ cancel: function() {
+ var
+ xhr = $module.data('xhr') || false
+ ;
+ if( xhr && xhr.state() != 'resolved') {
+ module.debug('Cancelling last search');
+ xhr.abort();
+ }
+ },
+ throttle: function() {
+ var
+ searchTerm = $prompt.val(),
+ numCharacters = searchTerm.length
+ ;
+ clearTimeout(module.timer);
+ if(numCharacters >= settings.minCharacters) {
+ module.timer = setTimeout(module.search.query, settings.searchThrottle);
+ }
+ else {
+ module.results.hide();
+ }
+ },
+ query: function() {
+ var
+ searchTerm = $prompt.val(),
+ cachedHTML = module.search.cache.read(searchTerm)
+ ;
+ if(cachedHTML) {
+ module.debug("Reading result for '" + searchTerm + "' from cache");
+ module.results.add(cachedHTML);
+ }
+ else {
+ module.debug("Querying for '" + searchTerm + "'");
+ if(typeof source == 'object') {
+ module.search.local(searchTerm);
+ }
+ else {
+ module.search.remote(searchTerm);
+ }
+ $.proxy(settings.onSearchQuery, $module)(searchTerm);
+ }
+ },
+ local: function(searchTerm) {
+ var
+ results = [],
+ fullTextResults = [],
+ searchFields = $.isArray(settings.searchFields)
+ ? settings.searchFields
+ : [settings.searchFields],
+
+ searchRegExp = new RegExp('(?:\s|^)' + searchTerm, 'i'),
+ fullTextRegExp = new RegExp(searchTerm, 'i'),
+ searchHTML
+ ;
+ $module
+ .addClass(className.loading)
+ ;
+ // iterate through search fields in array order
+ $.each(searchFields, function(index, field) {
+ $.each(source, function(label, thing) {
+ if(typeof thing[field] == 'string' && ($.inArray(thing, results) == -1) && ($.inArray(thing, fullTextResults) == -1) ) {
+ if( searchRegExp.test( thing[field] ) ) {
+ results.push(thing);
+ }
+ else if( fullTextRegExp.test( thing[field] ) ) {
+ fullTextResults.push(thing);
+ }
+ }
+ });
+ });
+ searchHTML = module.results.generate({
+ results: $.merge(results, fullTextResults)
+ });
+ $module
+ .removeClass(className.loading)
+ ;
+ module.search.cache.write(searchTerm, searchHTML);
+ module.results.add(searchHTML);
+ },
+ remote: function(searchTerm) {
+ var
+ apiSettings = {
+ stateContext : $module,
+ url : source,
+ urlData: { query: searchTerm },
+ success : function(response) {
+ searchHTML = module.results.generate(response);
+ module.search.cache.write(searchTerm, searchHTML);
+ module.results.add(searchHTML);
+ },
+ failure : module.error
+ },
+ searchHTML
+ ;
+ module.search.cancel();
+ module.debug('Executing search');
+ $.extend(true, apiSettings, settings.apiSettings);
+ $.api(apiSettings);
+ },
+
+ cache: {
+ read: function(name) {
+ var
+ cache = $module.data('cache')
+ ;
+ return (settings.cache && (typeof cache == 'object') && (cache[name] !== undefined) )
+ ? cache[name]
+ : false
+ ;
+ },
+ write: function(name, value) {
+ var
+ cache = ($module.data('cache') !== undefined)
+ ? $module.data('cache')
+ : {}
+ ;
+ cache[name] = value;
+ $module
+ .data('cache', cache)
+ ;
+ }
+ }
+ },
+
+ results: {
+ generate: function(response) {
+ module.debug('Generating html from response', response);
+ var
+ template = settings.templates[settings.type],
+ html = ''
+ ;
+ if(($.isPlainObject(response.results) && !$.isEmptyObject(response.results)) || ($.isArray(response.results) && response.results.length > 0) ) {
+ if(settings.maxResults > 0) {
+ response.results = $.makeArray(response.results).slice(0, settings.maxResults);
+ }
+ if(response.results.length > 0) {
+ if($.isFunction(template)) {
+ html = template(response);
+ }
+ else {
+ module.error(error.noTemplate, false);
+ }
+ }
+ }
+ else {
+ html = module.message(error.noResults, 'empty');
+ }
+ $.proxy(settings.onResults, $module)(response);
+ return html;
+ },
+ add: function(html) {
+ if(settings.onResultsAdd == 'default' || $.proxy(settings.onResultsAdd, $results)(html) == 'default') {
+ $results
+ .html(html)
+ ;
+ }
+ module.results.show();
+ },
+ show: function() {
+ if( ($results.filter(':visible').size() === 0) && ($prompt.filter(':focus').size() > 0) && $results.html() !== '') {
+ $results
+ .stop()
+ .fadeIn(200)
+ ;
+ $.proxy(settings.onResultsOpen, $results)();
+ }
+ },
+ hide: function() {
+ if($results.filter(':visible').size() > 0) {
+ $results
+ .stop()
+ .fadeOut(200)
+ ;
+ $.proxy(settings.onResultsClose, $results)();
+ }
+ },
+ select: function(event) {
+ module.debug('Search result selected');
+ var
+ $result = $(this),
+ $title = $result.find('.title'),
+ title = $title.html()
+ ;
+ if(settings.onSelect == 'default' || $.proxy(settings.onSelect, this)(event) == 'default') {
+ var
+ $link = $result.find('a[href]').eq(0),
+ href = $link.attr('href') || false,
+ target = $link.attr('target') || false
+ ;
+ module.results.hide();
+ $prompt
+ .val(title)
+ ;
+ if(href) {
+ if(target == '_blank' || event.ctrlKey) {
+ window.open(href);
+ }
+ else {
+ window.location.href = (href);
+ }
+ }
+ }
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.search.settings = {
+
+ name : 'Search Module',
+ namespace : 'search',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ // onSelect default action is defined in module
+ onSelect : 'default',
+ onResultsAdd : 'default',
+
+ onSearchQuery : function(){},
+ onResults : function(response){},
+
+ onResultsOpen : function(){},
+ onResultsClose : function(){},
+
+ automatic : 'true',
+ type : 'simple',
+ minCharacters : 3,
+ searchThrottle : 300,
+ maxResults : 7,
+ cache : true,
+
+ searchFields : [
+ 'title',
+ 'description'
+ ],
+
+ // api config
+ apiSettings: {
+
+ },
+
+ className: {
+ active : 'active',
+ down : 'down',
+ focus : 'focus',
+ empty : 'empty',
+ loading : 'loading'
+ },
+
+ error : {
+ noResults : 'Your search returned no results',
+ logging : 'Error in debug logging, exiting.',
+ noTemplate : 'A valid template name was not specified.',
+ serverError : 'There was an issue with querying the server.',
+ method : 'The method you called is not defined.'
+ },
+
+ selector : {
+ prompt : '.prompt',
+ searchButton : '.search.button',
+ results : '.results',
+ category : '.category',
+ result : '.result'
+ },
+
+ templates: {
+ message: function(message, type) {
+ var
+ html = ''
+ ;
+ if(message !== undefined && type !== undefined) {
+ html += ''
+ + '
'
+ ;
+ // message type
+ if(type == 'empty') {
+ html += ''
+ + ''
+ + '
' + message + '
'
+ ;
+ }
+ else {
+ html += '
' + message + '
';
+ }
+ html += '
';
+ }
+ return html;
+ },
+ categories: function(response) {
+ var
+ html = ''
+ ;
+ if(response.results !== undefined) {
+ // each category
+ $.each(response.results, function(index, category) {
+ if(category.results !== undefined && category.results.length > 0) {
+ html += ''
+ + '
'
+ + '
' + category.name + '
'
+ ;
+ // each item inside category
+ $.each(category.results, function(index, result) {
+ html += '
';
+ html += '
';
+ if(result.image !== undefined) {
+ html+= ''
+ + '
'
+ + '
'
+ + '
'
+ ;
+ }
+ html += '
';
+ if(result.price !== undefined) {
+ html+= '
' + result.price + '
';
+ }
+ if(result.title !== undefined) {
+ html+= '
' + result.title + '
';
+ }
+ if(result.description !== undefined) {
+ html+= '
' + result.description + '
';
+ }
+ html += ''
+ + '
'
+ + '
'
+ ;
+ });
+ html += ''
+ + '
'
+ ;
+ }
+ });
+ if(response.resultPage) {
+ html += ''
+ + '
'
+ + response.resultPage.text
+ + ' ';
+ }
+ return html;
+ }
+ return false;
+ },
+ simple: function(response) {
+ var
+ html = ''
+ ;
+ if(response.results !== undefined) {
+
+ // each result
+ $.each(response.results, function(index, result) {
+ html += '
';
+ if(result.image !== undefined) {
+ html+= ''
+ + ''
+ + '
'
+ + '
'
+ ;
+ }
+ html += '';
+ if(result.price !== undefined) {
+ html+= '
' + result.price + '
';
+ }
+ if(result.title !== undefined) {
+ html+= '
' + result.title + '
';
+ }
+ if(result.description !== undefined) {
+ html+= '
' + result.description + '
';
+ }
+ html += ''
+ + '
'
+ + ' '
+ ;
+ });
+
+ if(response.resultPage) {
+ html += ''
+ + '
'
+ + response.resultPage.text
+ + ' ';
+ }
+ return html;
+ }
+ return false;
+ }
+ }
+};
+
+})( jQuery, window , document );
+/*
+ * # Semantic - Shape
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.shape = function(parameters) {
+ var
+ $allModules = $(this),
+ $body = $('body'),
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ moduleSelector = $allModules.selector || '',
+ settings = $.extend(true, {}, $.fn.shape.settings, parameters),
+
+ // internal aliases
+ namespace = settings.namespace,
+ selector = settings.selector,
+ error = settings.error,
+ className = settings.className,
+
+ // define namespaces for modules
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ // selector cache
+ $module = $(this),
+ $sides = $module.find(selector.sides),
+ $side = $module.find(selector.side),
+
+ // private variables
+ nextSelector = false,
+ $activeSide,
+ $nextSide,
+
+ // standard module
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing module for', element);
+ module.set.defaultSide();
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module for', element);
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing selector cache for', element);
+ $module = $(element);
+ $sides = $(this).find(selector.shape);
+ $side = $(this).find(selector.side);
+ },
+
+ repaint: function() {
+ module.verbose('Forcing repaint event');
+ var
+ shape = $sides.get(0) || document.createElement('div'),
+ fakeAssignment = shape.offsetWidth
+ ;
+ },
+
+ animate: function(propertyObject, callback) {
+ module.verbose('Animating box with properties', propertyObject);
+ callback = callback || function(event) {
+ module.verbose('Executing animation callback');
+ if(event !== undefined) {
+ event.stopPropagation();
+ }
+ module.reset();
+ module.set.active();
+ };
+ $.proxy(settings.beforeChange, $nextSide[0])();
+ if(module.get.transitionEvent()) {
+ module.verbose('Starting CSS animation');
+ $module
+ .addClass(className.animating)
+ ;
+ module.repaint();
+ $module
+ .addClass(className.animating)
+ ;
+ $activeSide
+ .addClass(className.hidden)
+ ;
+ $sides
+ .css(propertyObject)
+ .one(module.get.transitionEvent(), callback)
+ ;
+ module.set.duration(settings.duration);
+ }
+ else {
+ callback();
+ }
+ },
+
+ queue: function(method) {
+ module.debug('Queueing animation of', method);
+ $sides
+ .one(module.get.transitionEvent(), function() {
+ module.debug('Executing queued animation');
+ setTimeout(function(){
+ $module.shape(method);
+ }, 0);
+ })
+ ;
+ },
+
+ reset: function() {
+ module.verbose('Animating states reset');
+ $module
+ .removeClass(className.animating)
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ // removeAttr style does not consistently work in safari
+ $sides
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ $side
+ .attr('style', '')
+ .removeAttr('style')
+ .removeClass(className.hidden)
+ ;
+ $nextSide
+ .removeClass(className.animating)
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ },
+
+ is: {
+ animating: function() {
+ return $module.hasClass(className.animating);
+ }
+ },
+
+ set: {
+
+ defaultSide: function() {
+ $activeSide = $module.find('.' + settings.className.active);
+ $nextSide = ( $activeSide.next(selector.side).size() > 0 )
+ ? $activeSide.next(selector.side)
+ : $module.find(selector.side).first()
+ ;
+ nextSelector = false;
+ module.verbose('Active side set to', $activeSide);
+ module.verbose('Next side set to', $nextSide);
+ },
+
+ duration: function(duration) {
+ duration = duration || settings.duration;
+ duration = (typeof duration == 'number')
+ ? duration + 'ms'
+ : duration
+ ;
+ module.verbose('Setting animation duration', duration);
+ $sides.add($side)
+ .css({
+ '-webkit-transition-duration': duration,
+ '-moz-transition-duration': duration,
+ '-ms-transition-duration': duration,
+ '-o-transition-duration': duration,
+ 'transition-duration': duration
+ })
+ ;
+ },
+
+ stageSize: function() {
+ var
+ $clone = $module.clone().addClass(className.loading),
+ $activeSide = $clone.find('.' + settings.className.active),
+ $nextSide = (nextSelector)
+ ? $clone.find(nextSelector)
+ : ( $activeSide.next(selector.side).size() > 0 )
+ ? $activeSide.next(selector.side)
+ : $clone.find(selector.side).first(),
+ newSize = {}
+ ;
+ $activeSide.removeClass(className.active);
+ $nextSide.addClass(className.active);
+ $clone.prependTo($body);
+ newSize = {
+ width : $nextSide.outerWidth(),
+ height : $nextSide.outerHeight()
+ };
+ $clone.remove();
+ $module
+ .css(newSize)
+ ;
+ module.verbose('Resizing stage to fit new content', newSize);
+ },
+
+ nextSide: function(selector) {
+ nextSelector = selector;
+ $nextSide = $module.find(selector);
+ if($nextSide.size() === 0) {
+ module.error(error.side);
+ }
+ module.verbose('Next side manually set to', $nextSide);
+ },
+
+ active: function() {
+ module.verbose('Setting new side to active', $nextSide);
+ $side
+ .removeClass(className.active)
+ ;
+ $nextSide
+ .addClass(className.active)
+ ;
+ $.proxy(settings.onChange, $nextSide[0])();
+ module.set.defaultSide();
+ }
+ },
+
+ flip: {
+
+ up: function() {
+ module.debug('Flipping up', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.above();
+ module.animate( module.get.transform.up() );
+ }
+ else {
+ module.queue('flip up');
+ }
+ },
+
+ down: function() {
+ module.debug('Flipping down', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.below();
+ module.animate( module.get.transform.down() );
+ }
+ else {
+ module.queue('flip down');
+ }
+ },
+
+ left: function() {
+ module.debug('Flipping left', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.left();
+ module.animate(module.get.transform.left() );
+ }
+ else {
+ module.queue('flip left');
+ }
+ },
+
+ right: function() {
+ module.debug('Flipping right', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.right();
+ module.animate(module.get.transform.right() );
+ }
+ else {
+ module.queue('flip right');
+ }
+ },
+
+ over: function() {
+ module.debug('Flipping over', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.behind();
+ module.animate(module.get.transform.over() );
+ }
+ else {
+ module.queue('flip over');
+ }
+ },
+
+ back: function() {
+ module.debug('Flipping back', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.behind();
+ module.animate(module.get.transform.back() );
+ }
+ else {
+ module.queue('flip back');
+ }
+ }
+
+ },
+
+ get: {
+
+ transform: {
+ up: function() {
+ var
+ translate = {
+ y: -(($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
+ z: -($activeSide.outerHeight() / 2)
+ }
+ ;
+ return {
+ transform: 'translateY(' + translate.y + 'px) translateZ('+ translate.z + 'px) rotateX(-90deg)'
+ };
+ },
+
+ down: function() {
+ var
+ translate = {
+ y: -(($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
+ z: -($activeSide.outerHeight() / 2)
+ }
+ ;
+ return {
+ transform: 'translateY(' + translate.y + 'px) translateZ('+ translate.z + 'px) rotateX(90deg)'
+ };
+ },
+
+ left: function() {
+ var
+ translate = {
+ x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2),
+ z : -($activeSide.outerWidth() / 2)
+ }
+ ;
+ return {
+ transform: 'translateX(' + translate.x + 'px) translateZ(' + translate.z + 'px) rotateY(90deg)'
+ };
+ },
+
+ right: function() {
+ var
+ translate = {
+ x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2),
+ z : -($activeSide.outerWidth() / 2)
+ }
+ ;
+ return {
+ transform: 'translateX(' + translate.x + 'px) translateZ(' + translate.z + 'px) rotateY(-90deg)'
+ };
+ },
+
+ over: function() {
+ var
+ translate = {
+ x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2)
+ }
+ ;
+ return {
+ transform: 'translateX(' + translate.x + 'px) rotateY(180deg)'
+ };
+ },
+
+ back: function() {
+ var
+ translate = {
+ x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2)
+ }
+ ;
+ return {
+ transform: 'translateX(' + translate.x + 'px) rotateY(-180deg)'
+ };
+ }
+ },
+
+ transitionEvent: function() {
+ var
+ element = document.createElement('element'),
+ transitions = {
+ 'transition' :'transitionend',
+ 'OTransition' :'oTransitionEnd',
+ 'MozTransition' :'transitionend',
+ 'WebkitTransition' :'webkitTransitionEnd'
+ },
+ transition
+ ;
+ for(transition in transitions){
+ if( element.style[transition] !== undefined ){
+ return transitions[transition];
+ }
+ }
+ },
+
+ nextSide: function() {
+ return ( $activeSide.next(selector.side).size() > 0 )
+ ? $activeSide.next(selector.side)
+ : $module.find(selector.side).first()
+ ;
+ }
+
+ },
+
+ stage: {
+
+ above: function() {
+ var
+ box = {
+ origin : (($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
+ depth : {
+ active : ($nextSide.outerHeight() / 2),
+ next : ($activeSide.outerHeight() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as above', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'top' : box.origin + 'px',
+ 'transform' : 'rotateX(90deg) translateZ(' + box.depth.next + 'px)'
+ })
+ ;
+ },
+
+ below: function() {
+ var
+ box = {
+ origin : (($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
+ depth : {
+ active : ($nextSide.outerHeight() / 2),
+ next : ($activeSide.outerHeight() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as below', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'top' : box.origin + 'px',
+ 'transform' : 'rotateX(-90deg) translateZ(' + box.depth.next + 'px)'
+ })
+ ;
+ },
+
+ left: function() {
+ var
+ box = {
+ origin : ( ( $activeSide.outerWidth() - $nextSide.outerWidth() ) / 2),
+ depth : {
+ active : ($nextSide.outerWidth() / 2),
+ next : ($activeSide.outerWidth() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as left', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'left' : box.origin + 'px',
+ 'transform' : 'rotateY(-90deg) translateZ(' + box.depth.next + 'px)'
+ })
+ ;
+ },
+
+ right: function() {
+ var
+ box = {
+ origin : ( ( $activeSide.outerWidth() - $nextSide.outerWidth() ) / 2),
+ depth : {
+ active : ($nextSide.outerWidth() / 2),
+ next : ($activeSide.outerWidth() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as left', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'left' : box.origin + 'px',
+ 'transform' : 'rotateY(90deg) translateZ(' + box.depth.next + 'px)'
+ })
+ ;
+ },
+
+ behind: function() {
+ var
+ box = {
+ origin : ( ( $activeSide.outerWidth() - $nextSide.outerWidth() ) / 2),
+ depth : {
+ active : ($nextSide.outerWidth() / 2),
+ next : ($activeSide.outerWidth() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as behind', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'left' : box.origin + 'px',
+ 'transform' : 'rotateY(-180deg)'
+ })
+ ;
+ }
+ },
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.shape.settings = {
+
+ // module info
+ name : 'Shape',
+
+ // debug content outputted to console
+ debug : false,
+
+ // verbose debug output
+ verbose : true,
+
+ // performance data output
+ performance: true,
+
+ // event namespace
+ namespace : 'shape',
+
+ // callback occurs on side change
+ beforeChange : function() {},
+ onChange : function() {},
+
+ // animation duration
+ duration : 700,
+
+ // possible errors
+ error: {
+ side : 'You tried to switch to a side that does not exist.',
+ method : 'The method you called is not defined'
+ },
+
+ // classnames used
+ className : {
+ animating : 'animating',
+ hidden : 'hidden',
+ loading : 'loading',
+ active : 'active'
+ },
+
+ // selectors used
+ selector : {
+ sides : '.sides',
+ side : '.side'
+ }
+
+};
+
+
+})( jQuery, window , document );
+/*
+ * # Semantic - Sidebar
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.sidebar = function(parameters) {
+ var
+ $allModules = $(this),
+ $body = $('body'),
+ $head = $('head'),
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.sidebar.settings, parameters)
+ : $.extend({}, $.fn.sidebar.settings),
+
+ selector = settings.selector,
+ className = settings.className,
+ namespace = settings.namespace,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $style = $('style[title=' + namespace + ']'),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing sidebar', $module);
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module for', $module);
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing selector cache');
+ $style = $('style[title=' + namespace + ']');
+ },
+
+ attachEvents: function(selector, event) {
+ var
+ $toggle = $(selector)
+ ;
+ event = $.isFunction(module[event])
+ ? module[event]
+ : module.toggle
+ ;
+ if($toggle.size() > 0) {
+ module.debug('Attaching sidebar events to element', selector, event);
+ $toggle
+ .off(eventNamespace)
+ .on('click' + eventNamespace, event)
+ ;
+ }
+ else {
+ module.error(error.notFound);
+ }
+ },
+
+ show: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.debug('Showing sidebar', callback);
+ if(module.is.closed()) {
+ if(!settings.overlay) {
+ if(settings.exclusive) {
+ module.hideAll();
+ }
+ module.pushPage();
+ }
+ module.set.active();
+ callback();
+ $.proxy(settings.onChange, element)();
+ $.proxy(settings.onShow, element)();
+ }
+ else {
+ module.debug('Sidebar is already visible');
+ }
+ },
+
+ hide: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.debug('Hiding sidebar', callback);
+ if(module.is.open()) {
+ if(!settings.overlay) {
+ module.pullPage();
+ module.remove.pushed();
+ }
+ module.remove.active();
+ callback();
+ $.proxy(settings.onChange, element)();
+ $.proxy(settings.onHide, element)();
+ }
+ },
+
+ hideAll: function() {
+ $(selector.sidebar)
+ .filter(':visible')
+ .sidebar('hide')
+ ;
+ },
+
+ toggle: function() {
+ if(module.is.closed()) {
+ module.show();
+ }
+ else {
+ module.hide();
+ }
+ },
+
+ pushPage: function() {
+ var
+ direction = module.get.direction(),
+ distance = (module.is.vertical())
+ ? $module.outerHeight()
+ : $module.outerWidth()
+ ;
+ if(settings.useCSS) {
+ module.debug('Using CSS to animate body');
+ module.add.bodyCSS(direction, distance);
+ module.set.pushed();
+ }
+ else {
+ module.animatePage(direction, distance, module.set.pushed);
+ }
+ },
+
+ pullPage: function() {
+ var
+ direction = module.get.direction()
+ ;
+ if(settings.useCSS) {
+ module.debug('Resetting body position css');
+ module.remove.bodyCSS();
+ }
+ else {
+ module.debug('Resetting body position using javascript');
+ module.animatePage(direction, 0);
+ }
+ module.remove.pushed();
+ },
+
+ animatePage: function(direction, distance) {
+ var
+ animateSettings = {}
+ ;
+ animateSettings['padding-' + direction] = distance;
+ module.debug('Using javascript to animate body', animateSettings);
+ $body
+ .animate(animateSettings, settings.duration, module.set.pushed)
+ ;
+ },
+
+ add: {
+ bodyCSS: function(direction, distance) {
+ var
+ style
+ ;
+ if(direction !== className.bottom) {
+ style = ''
+ + ''
+ ;
+ }
+ $head.append(style);
+ module.debug('Adding body css to head', $style);
+ }
+ },
+
+
+ remove: {
+ bodyCSS: function() {
+ module.debug('Removing body css styles', $style);
+ module.refresh();
+ $style.remove();
+ },
+ active: function() {
+ $module.removeClass(className.active);
+ },
+ pushed: function() {
+ module.verbose('Removing body push state', module.get.direction());
+ $body
+ .removeClass(className[ module.get.direction() ])
+ .removeClass(className.pushed)
+ ;
+ }
+ },
+
+ set: {
+ active: function() {
+ $module.addClass(className.active);
+ },
+ pushed: function() {
+ module.verbose('Adding body push state', module.get.direction());
+ $body
+ .addClass(className[ module.get.direction() ])
+ .addClass(className.pushed)
+ ;
+ }
+ },
+
+ get: {
+ direction: function() {
+ if($module.hasClass(className.top)) {
+ return className.top;
+ }
+ else if($module.hasClass(className.right)) {
+ return className.right;
+ }
+ else if($module.hasClass(className.bottom)) {
+ return className.bottom;
+ }
+ else {
+ return className.left;
+ }
+ },
+ transitionEvent: function() {
+ var
+ element = document.createElement('element'),
+ transitions = {
+ 'transition' :'transitionend',
+ 'OTransition' :'oTransitionEnd',
+ 'MozTransition' :'transitionend',
+ 'WebkitTransition' :'webkitTransitionEnd'
+ },
+ transition
+ ;
+ for(transition in transitions){
+ if( element.style[transition] !== undefined ){
+ return transitions[transition];
+ }
+ }
+ }
+ },
+
+ is: {
+ open: function() {
+ return $module.is(':animated') || $module.hasClass(className.active);
+ },
+ closed: function() {
+ return !module.is.open();
+ },
+ vertical: function() {
+ return $module.hasClass(className.top);
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.sidebar.settings = {
+
+ name : 'Sidebar',
+ namespace : 'sidebar',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ useCSS : true,
+ exclusive : true,
+ overlay : false,
+ duration : 300,
+
+ onChange : function(){},
+ onShow : function(){},
+ onHide : function(){},
+
+ className: {
+ active : 'active',
+ pushed : 'pushed',
+ top : 'top',
+ left : 'left',
+ right : 'right',
+ bottom : 'bottom'
+ },
+
+ selector: {
+ sidebar: '.ui.sidebar'
+ },
+
+ error : {
+ method : 'The method you called is not defined.',
+ notFound : 'There were no elements that matched the specified selector'
+ }
+
+};
+
+})( jQuery, window , document );
+
+/*
+ * # Semantic - Tab
+ * http://github.com/jlukic/semantic-ui/
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+
+;(function ($, window, document, undefined) {
+
+ $.fn.tab = function(parameters) {
+
+ var
+ settings = $.extend(true, {}, $.fn.tab.settings, parameters),
+
+ $module = $(this),
+ $tabs = $(settings.context).find(settings.selector.tabs),
+
+ moduleSelector = $module.selector || '',
+
+ cache = {},
+ firstLoad = true,
+ recursionDepth = 0,
+
+ activeTabPath,
+ parameterArray,
+ historyEvent,
+
+ element = this,
+ time = new Date().getTime(),
+ performance = [],
+
+ className = settings.className,
+ metadata = settings.metadata,
+ error = settings.error,
+
+ eventNamespace = '.' + settings.namespace,
+ moduleNamespace = 'module-' + settings.namespace,
+
+ instance = $module.data(moduleNamespace),
+
+ query = arguments[0],
+ methodInvoked = (instance !== undefined && typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ module,
+ returnedValue
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing Tabs', $module);
+
+ // set up automatic routing
+ if(settings.auto) {
+ module.verbose('Setting up automatic tab retrieval from server');
+ settings.apiSettings = {
+ url: settings.path + '/{$tab}'
+ };
+ }
+
+ // attach history events
+ if(settings.history) {
+ module.debug('Initializing page state');
+ if( $.address === undefined ) {
+ module.error(error.state);
+ return false;
+ }
+ else {
+ if(settings.historyType == 'hash') {
+ module.debug('Using hash state change to manage state');
+ }
+ if(settings.historyType == 'html5') {
+ module.debug('Using HTML5 to manage state');
+ if(settings.path !== false) {
+ $.address
+ .history(true)
+ .state(settings.path)
+ ;
+ }
+ else {
+ module.error(error.path);
+ return false;
+ }
+ }
+ $.address
+ .unbind('change')
+ .bind('change', module.event.history.change)
+ ;
+ }
+ }
+
+ // attach events if navigation wasn't set to window
+ if( !$.isWindow( element ) ) {
+ module.debug('Attaching tab activation events to element', $module);
+ $module
+ .on('click' + eventNamespace, module.event.click)
+ ;
+ }
+ module.instantiate();
+ },
+
+ instantiate: function () {
+ module.verbose('Storing instance of module', module);
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.debug('Destroying tabs', $module);
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+ click: function(event) {
+ var
+ tabPath = $(this).data(metadata.tab)
+ ;
+ if(tabPath !== undefined) {
+ if(settings.history) {
+ module.verbose('Updating page state', event);
+ $.address.value(tabPath);
+ }
+ else {
+ module.verbose('Changing tab without state management', event);
+ module.changeTab(tabPath);
+ }
+ event.preventDefault();
+ }
+ else {
+ module.debug('No tab specified');
+ }
+ },
+ history: {
+ change: function(event) {
+ var
+ tabPath = event.pathNames.join('/') || module.get.initialPath(),
+ pageTitle = settings.templates.determineTitle(tabPath) || false
+ ;
+ module.debug('History change event', tabPath, event);
+ historyEvent = event;
+ if(tabPath !== undefined) {
+ module.changeTab(tabPath);
+ }
+ if(pageTitle) {
+ $.address.title(pageTitle);
+ }
+ }
+ }
+ },
+
+ refresh: function() {
+ if(activeTabPath) {
+ module.debug('Refreshing tab', activeTabPath);
+ module.changeTab(activeTabPath);
+ }
+ },
+
+ cache: {
+
+ read: function(cacheKey) {
+ return (cacheKey !== undefined)
+ ? cache[cacheKey]
+ : false
+ ;
+ },
+ add: function(cacheKey, content) {
+ cacheKey = cacheKey || activeTabPath;
+ module.debug('Adding cached content for', cacheKey);
+ cache[cacheKey] = content;
+ },
+ remove: function(cacheKey) {
+ cacheKey = cacheKey || activeTabPath;
+ module.debug('Removing cached content for', cacheKey);
+ delete cache[cacheKey];
+ }
+ },
+
+ set: {
+ state: function(url) {
+ $.address.value(url);
+ }
+ },
+
+ changeTab: function(tabPath) {
+ var
+ pushStateAvailable = (window.history && window.history.pushState),
+ shouldIgnoreLoad = (pushStateAvailable && settings.ignoreFirstLoad && firstLoad),
+ remoteContent = (settings.auto || $.isPlainObject(settings.apiSettings) ),
+ // only get default path if not remote content
+ pathArray = (remoteContent && !shouldIgnoreLoad)
+ ? module.utilities.pathToArray(tabPath)
+ : module.get.defaultPathArray(tabPath)
+ ;
+ tabPath = module.utilities.arrayToPath(pathArray);
+ module.deactivate.all();
+ $.each(pathArray, function(index, tab) {
+ var
+ currentPathArray = pathArray.slice(0, index + 1),
+ currentPath = module.utilities.arrayToPath(currentPathArray),
+
+ isTab = module.is.tab(currentPath),
+ isLastIndex = (index + 1 == pathArray.length),
+
+ $tab = module.get.tabElement(currentPath),
+ nextPathArray,
+ nextPath,
+ isLastTab
+ ;
+ module.verbose('Looking for tab', tab);
+ if(isTab) {
+ module.verbose('Tab was found', tab);
+
+ // scope up
+ activeTabPath = currentPath;
+ parameterArray = module.utilities.filterArray(pathArray, currentPathArray);
+
+ if(isLastIndex) {
+ isLastTab = true;
+ }
+ else {
+ nextPathArray = pathArray.slice(0, index + 2);
+ nextPath = module.utilities.arrayToPath(nextPathArray);
+ isLastTab = ( !module.is.tab(nextPath) );
+ if(isLastTab) {
+ module.verbose('Tab parameters found', nextPathArray);
+ }
+ }
+ if(isLastTab && remoteContent) {
+ if(!shouldIgnoreLoad) {
+ module.activate.navigation(currentPath);
+ module.content.fetch(currentPath, tabPath);
+ }
+ else {
+ module.debug('Ignoring remote content on first tab load', currentPath);
+ firstLoad = false;
+ module.cache.add(tabPath, $tab.html());
+ module.activate.all(currentPath);
+ $.proxy(settings.onTabInit, $tab)(currentPath, parameterArray, historyEvent);
+ $.proxy(settings.onTabLoad, $tab)(currentPath, parameterArray, historyEvent);
+ }
+ return false;
+ }
+ else {
+ module.debug('Opened local tab', currentPath);
+ module.activate.all(currentPath);
+ if( !module.cache.read(currentPath) ) {
+ module.cache.add(currentPath, true);
+ module.debug('First time tab loaded calling tab init');
+ $.proxy(settings.onTabInit, $tab)(currentPath, parameterArray, historyEvent);
+ }
+ $.proxy(settings.onTabLoad, $tab)(currentPath, parameterArray, historyEvent);
+ }
+ }
+ else {
+ module.error(error.missingTab, tab);
+ return false;
+ }
+ });
+ },
+
+ content: {
+
+ fetch: function(tabPath, fullTabPath) {
+ var
+ $tab = module.get.tabElement(tabPath),
+ apiSettings = {
+ dataType : 'html',
+ stateContext : $tab,
+ success : function(response) {
+ module.cache.add(fullTabPath, response);
+ module.content.update(tabPath, response);
+ if(tabPath == activeTabPath) {
+ module.debug('Content loaded', tabPath);
+ module.activate.tab(tabPath);
+ }
+ else {
+ module.debug('Content loaded in background', tabPath);
+ }
+ $.proxy(settings.onTabInit, $tab)(tabPath, parameterArray, historyEvent);
+ $.proxy(settings.onTabLoad, $tab)(tabPath, parameterArray, historyEvent);
+ },
+ urlData: { tab: fullTabPath }
+ },
+ request = $tab.data(metadata.promise) || false,
+ existingRequest = ( request && request.state() === 'pending' ),
+ requestSettings,
+ cachedContent
+ ;
+
+ fullTabPath = fullTabPath || tabPath;
+ cachedContent = module.cache.read(fullTabPath);
+
+ if(settings.cache && cachedContent) {
+ module.debug('Showing existing content', fullTabPath);
+ module.content.update(tabPath, cachedContent);
+ module.activate.tab(tabPath);
+ $.proxy(settings.onTabLoad, $tab)(tabPath, parameterArray, historyEvent);
+ }
+ else if(existingRequest) {
+ module.debug('Content is already loading', fullTabPath);
+ $tab
+ .addClass(className.loading)
+ ;
+ }
+ else if($.api !== undefined) {
+ console.log(settings.apiSettings);
+ requestSettings = $.extend(true, { headers: { 'X-Remote': true } }, settings.apiSettings, apiSettings);
+ module.debug('Retrieving remote content', fullTabPath, requestSettings);
+ $.api( requestSettings );
+ }
+ else {
+ module.error(error.api);
+ }
+ },
+
+ update: function(tabPath, html) {
+ module.debug('Updating html for', tabPath);
+ var
+ $tab = module.get.tabElement(tabPath)
+ ;
+ $tab
+ .html(html)
+ ;
+ }
+ },
+
+ activate: {
+ all: function(tabPath) {
+ module.activate.tab(tabPath);
+ module.activate.navigation(tabPath);
+ },
+ tab: function(tabPath) {
+ var
+ $tab = module.get.tabElement(tabPath)
+ ;
+ module.verbose('Showing tab content for', $tab);
+ $tab.addClass(className.active);
+ },
+ navigation: function(tabPath) {
+ var
+ $navigation = module.get.navElement(tabPath)
+ ;
+ module.verbose('Activating tab navigation for', $navigation, tabPath);
+ $navigation.addClass(className.active);
+ }
+ },
+
+ deactivate: {
+ all: function() {
+ module.deactivate.navigation();
+ module.deactivate.tabs();
+ },
+ navigation: function() {
+ $module
+ .removeClass(className.active)
+ ;
+ },
+ tabs: function() {
+ $tabs
+ .removeClass(className.active + ' ' + className.loading)
+ ;
+ }
+ },
+
+ is: {
+ tab: function(tabName) {
+ return (tabName !== undefined)
+ ? ( module.get.tabElement(tabName).size() > 0 )
+ : false
+ ;
+ }
+ },
+
+ get: {
+ initialPath: function() {
+ return $module.eq(0).data(metadata.tab) || $tabs.eq(0).data(metadata.tab);
+ },
+ path: function() {
+ return $.address.value();
+ },
+ // adds default tabs to tab path
+ defaultPathArray: function(tabPath) {
+ return module.utilities.pathToArray( module.get.defaultPath(tabPath) );
+ },
+ defaultPath: function(tabPath) {
+ var
+ $defaultNav = $module.filter('[data-' + metadata.tab + '^="' + tabPath + '/"]').eq(0),
+ defaultTab = $defaultNav.data(metadata.tab) || false
+ ;
+ if( defaultTab ) {
+ module.debug('Found default tab', defaultTab);
+ if(recursionDepth < settings.maxDepth) {
+ recursionDepth++;
+ return module.get.defaultPath(defaultTab);
+ }
+ module.error(error.recursion);
+ }
+ else {
+ module.debug('No default tabs found for', tabPath, $tabs);
+ }
+ recursionDepth = 0;
+ return tabPath;
+ },
+ navElement: function(tabPath) {
+ tabPath = tabPath || activeTabPath;
+ return $module.filter('[data-' + metadata.tab + '="' + tabPath + '"]');
+ },
+ tabElement: function(tabPath) {
+ var
+ $fullPathTab,
+ $simplePathTab,
+ tabPathArray,
+ lastTab
+ ;
+ tabPath = tabPath || activeTabPath;
+ tabPathArray = module.utilities.pathToArray(tabPath);
+ lastTab = module.utilities.last(tabPathArray);
+ $fullPathTab = $tabs.filter('[data-' + metadata.tab + '="' + lastTab + '"]');
+ $simplePathTab = $tabs.filter('[data-' + metadata.tab + '="' + tabPath + '"]');
+ return ($fullPathTab.size() > 0)
+ ? $fullPathTab
+ : $simplePathTab
+ ;
+ },
+ tab: function() {
+ return activeTabPath;
+ }
+ },
+
+ utilities: {
+ filterArray: function(keepArray, removeArray) {
+ return $.grep(keepArray, function(keepValue) {
+ return ( $.inArray(keepValue, removeArray) == -1);
+ });
+ },
+ last: function(array) {
+ return $.isArray(array)
+ ? array[ array.length - 1]
+ : false
+ ;
+ },
+ pathToArray: function(pathName) {
+ if(pathName === undefined) {
+ pathName = activeTabPath;
+ }
+ return typeof pathName == 'string'
+ ? pathName.split('/')
+ : [pathName]
+ ;
+ },
+ arrayToPath: function(pathArray) {
+ return $.isArray(pathArray)
+ ? pathArray.join('/')
+ : false
+ ;
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+
+ };
+
+ // shortcut for tabbed content with no defined navigation
+ $.tab = function(settings) {
+ $(window).tab(settings);
+ };
+
+ $.fn.tab.settings = {
+
+ name : 'Tab',
+ debug : false,
+ verbose : true,
+ performance : true,
+ namespace : 'tab',
+
+ // only called first time a tab's content is loaded (when remote source)
+ onTabInit : function(tabPath, parameterArray, historyEvent) {},
+ // called on every load
+ onTabLoad : function(tabPath, parameterArray, historyEvent) {},
+
+ templates : {
+ determineTitle: function(tabArray) {}
+ },
+
+ // uses pjax style endpoints fetching content from same url with remote-content headers
+ auto : false,
+ history : true,
+ historyType : 'hash',
+ path : false,
+
+ context : 'body',
+
+ // max depth a tab can be nested
+ maxDepth : 25,
+ // dont load content on first load
+ ignoreFirstLoad : false,
+ // load tab content new every tab click
+ alwaysRefresh : false,
+ // cache the content requests to pull locally
+ cache : true,
+ // settings for api call
+ apiSettings : false,
+
+ error: {
+ api : 'You attempted to load content without API module',
+ method : 'The method you called is not defined',
+ missingTab : 'Tab cannot be found',
+ noContent : 'The tab you specified is missing a content url.',
+ path : 'History enabled, but no path was specified',
+ recursion : 'Max recursive depth reached',
+ state : 'The state library has not been initialized'
+ },
+
+ metadata : {
+ tab : 'tab',
+ loaded : 'loaded',
+ promise: 'promise'
+ },
+
+ className : {
+ loading : 'loading',
+ active : 'active'
+ },
+
+ selector : {
+ tabs : '.ui.tab'
+ }
+
+ };
+
+})( jQuery, window , document );
+
+/*
+ * # Semantic - Transition
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.transition = function() {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ moduleArguments = arguments,
+ query = moduleArguments[0],
+ queryArguments = [].slice.call(arguments, 1),
+ methodInvoked = (typeof query === 'string'),
+
+ requestAnimationFrame = window.requestAnimationFrame
+ || window.mozRequestAnimationFrame
+ || window.webkitRequestAnimationFrame
+ || window.msRequestAnimationFrame
+ || function(callback) { setTimeout(callback, 0); },
+
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ $module = $(this),
+ element = this,
+
+ // set at run time
+ settings,
+ instance,
+
+ error,
+ className,
+ metadata,
+ animationEnd,
+ animationName,
+
+ namespace,
+ moduleNamespace,
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ // get settings
+ settings = module.get.settings.apply(element, moduleArguments);
+ module.verbose('Converted arguments into settings object', settings);
+
+ // set shortcuts
+ error = settings.error;
+ className = settings.className;
+ namespace = settings.namespace;
+ metadata = settings.metadata;
+ moduleNamespace = 'module-' + namespace;
+
+ animationEnd = module.get.animationEvent();
+ animationName = module.get.animationName();
+
+ instance = $module.data(moduleNamespace) || module;
+
+ if(methodInvoked) {
+ methodInvoked = module.invoke(query);
+ }
+ // no internal method was found matching query or query not made
+ if(methodInvoked === false) {
+ module.animate();
+ }
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module for', element);
+ $module
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing display type on next animation');
+ delete instance.displayType;
+ },
+
+ forceRepaint: function() {
+ module.verbose('Forcing element repaint');
+ var
+ $parentElement = $module.parent(),
+ $nextElement = $module.next()
+ ;
+ if($nextElement.size() === 0) {
+ $module.detach().appendTo($parentElement);
+ }
+ else {
+ $module.detach().insertBefore($nextElement);
+ }
+ },
+
+ repaint: function() {
+ module.verbose('Repainting element');
+ var
+ fakeAssignment = element.offsetWidth
+ ;
+ },
+
+ animate: function(overrideSettings) {
+ settings = overrideSettings || settings;
+ if(!module.is.supported()) {
+ module.error(error.support);
+ return false;
+ }
+ module.debug('Preparing animation', settings.animation);
+ if(module.is.animating() && settings.queue) {
+ if(!settings.allowRepeats && module.has.direction() && module.is.occuring() && instance.queuing !== true) {
+ module.error(error.repeated);
+ }
+ else {
+ module.queue(settings.animation);
+ }
+ return false;
+ }
+ if(module.can.animate) {
+ module.set.animating(settings.animation);
+ }
+ else {
+ module.error(error.noAnimation, settings.animation);
+ }
+ },
+
+ reset: function() {
+ module.debug('Resetting animation to beginning conditions');
+ $module.off(animationEnd);
+ module.restore.conditions();
+ module.hide();
+ module.remove.animating();
+ },
+
+ queue: function(animation) {
+ module.debug('Queueing animation of', animation);
+ instance.queuing = true;
+ $module
+ .one(animationEnd, function() {
+ instance.queuing = false;
+ module.repaint();
+ module.animate.apply(this, settings);
+ })
+ ;
+ },
+
+ complete: function () {
+ module.verbose('CSS animation complete', settings.animation);
+ if(!module.is.looping()) {
+ if( module.is.outward() ) {
+ module.verbose('Animation is outward, hiding element');
+ module.restore.conditions();
+ module.remove.display();
+ module.hide();
+ $.proxy(settings.onHide, this)();
+ }
+ else if( module.is.inward() ) {
+ module.verbose('Animation is outward, showing element');
+ module.restore.conditions();
+ module.show();
+ $.proxy(settings.onShow, this)();
+ }
+ else {
+ module.restore.conditions();
+ }
+ module.remove.duration();
+ module.remove.animating();
+ }
+ $.proxy(settings.complete, this)();
+ },
+
+ has: {
+ direction: function(animation) {
+ animation = animation || settings.animation;
+ if( animation.search(className.inward) !== -1 || animation.search(className.outward) !== -1) {
+ module.debug('Direction already set in animation');
+ return true;
+ }
+ return false;
+ }
+ },
+
+ set: {
+
+ animating: function(animation) {
+ animation = animation || settings.animation;
+ module.save.conditions();
+ if(module.can.transition() && !module.has.direction()) {
+ module.set.direction();
+ }
+ module.remove.hidden();
+ module.set.display();
+ $module
+ .addClass(className.animating)
+ .addClass(className.transition)
+ .addClass(animation)
+ .one(animationEnd, module.complete)
+ ;
+ module.set.duration(settings.duration);
+ module.debug('Starting tween', settings.animation, $module.attr('class'));
+ },
+
+ display: function() {
+ var
+ displayType = module.get.displayType()
+ ;
+ if(displayType !== 'block') {
+ module.verbose('Setting final visibility to', displayType);
+ $module
+ .css({
+ display: displayType
+ })
+ ;
+ }
+ },
+
+ direction: function() {
+ if($module.is(':visible')) {
+ module.debug('Automatically determining the direction of animation', 'Outward');
+ $module
+ .removeClass(className.inward)
+ .addClass(className.outward)
+ ;
+ }
+ else {
+ module.debug('Automatically determining the direction of animation', 'Inward');
+ $module
+ .removeClass(className.outward)
+ .addClass(className.inward)
+ ;
+ }
+ },
+
+ looping: function() {
+ module.debug('Transition set to loop');
+ $module
+ .addClass(className.looping)
+ ;
+ },
+
+ duration: function(duration) {
+ duration = duration || settings.duration;
+ duration = (typeof duration == 'number')
+ ? duration + 'ms'
+ : duration
+ ;
+ module.verbose('Setting animation duration', duration);
+ $module
+ .css({
+ '-webkit-animation-duration': duration,
+ '-moz-animation-duration': duration,
+ '-ms-animation-duration': duration,
+ '-o-animation-duration': duration,
+ 'animation-duration': duration
+ })
+ ;
+ },
+
+ hidden: function() {
+ $module
+ .addClass(className.transition)
+ .addClass(className.hidden)
+ ;
+ },
+
+ visible: function() {
+ $module
+ .addClass(className.transition)
+ .addClass(className.visible)
+ ;
+ }
+ },
+
+ save: {
+ displayType: function(displayType) {
+ instance.displayType = displayType;
+ },
+ transitionExists: function(animation, exists) {
+ $.fn.transition.exists[animation] = exists;
+ module.verbose('Saving existence of transition', animation, exists);
+ },
+ conditions: function() {
+ instance.cache = {
+ className : $module.attr('class'),
+ style : $module.attr('style')
+ };
+ module.verbose('Saving original attributes', instance.cache);
+ }
+ },
+
+ restore: {
+ conditions: function() {
+ if(instance.cache === undefined) {
+ return false;
+ }
+ if(instance.cache.className) {
+ $module.attr('class', instance.cache.className);
+ }
+ else {
+ $module.removeAttr('class');
+ }
+ if(instance.cache.style) {
+ $module.attr('style', instance.cache.style);
+ }
+ else {
+ if(module.get.displayType() === 'block') {
+ $module.removeAttr('style');
+ }
+ }
+ if(module.is.looping()) {
+ module.remove.looping();
+ }
+ module.verbose('Restoring original attributes', instance.cache);
+ }
+ },
+
+ remove: {
+
+ animating: function() {
+ $module.removeClass(className.animating);
+ },
+
+ display: function() {
+ if(instance.displayType !== undefined) {
+ $module.css('display', '');
+ }
+ },
+
+ duration: function() {
+ $module
+ .css({
+ '-webkit-animation-duration' : '',
+ '-moz-animation-duration' : '',
+ '-ms-animation-duration' : '',
+ '-o-animation-duration' : '',
+ 'animation-duration' : ''
+ })
+ ;
+ },
+
+ hidden: function() {
+ $module.removeClass(className.hidden);
+ },
+
+ visible: function() {
+ $module.removeClass(className.visible);
+ },
+
+ looping: function() {
+ module.debug('Transitions are no longer looping');
+ $module
+ .removeClass(className.looping)
+ ;
+ module.forceRepaint();
+ }
+
+ },
+
+ get: {
+
+ settings: function(animation, duration, complete) {
+ // single settings object
+ if(typeof animation == 'object') {
+ return $.extend(true, {}, $.fn.transition.settings, animation);
+ }
+ // all arguments provided
+ else if(typeof complete == 'function') {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation,
+ complete : complete,
+ duration : duration
+ });
+ }
+ // only duration provided
+ else if(typeof duration == 'string' || typeof duration == 'number') {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation,
+ duration : duration
+ });
+ }
+ // duration is actually settings object
+ else if(typeof duration == 'object') {
+ return $.extend({}, $.fn.transition.settings, duration, {
+ animation : animation
+ });
+ }
+ // duration is actually callback
+ else if(typeof duration == 'function') {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation,
+ complete : duration
+ });
+ }
+ // only animation provided
+ else {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation
+ });
+ }
+ return $.fn.transition.settings;
+ },
+
+ displayType: function() {
+ if(instance.displayType === undefined) {
+ // create fake element to determine display state
+ module.can.transition();
+ }
+ return instance.displayType;
+ },
+
+ transitionExists: function(animation) {
+ return $.fn.transition.exists[animation];
+ },
+
+ animationName: function() {
+ var
+ element = document.createElement('div'),
+ animations = {
+ 'animation' :'animationName',
+ 'OAnimation' :'oAnimationName',
+ 'MozAnimation' :'mozAnimationName',
+ 'WebkitAnimation' :'webkitAnimationName'
+ },
+ animation
+ ;
+ for(animation in animations){
+ if( element.style[animation] !== undefined ){
+ module.verbose('Determined animation vendor name property', animations[animation]);
+ return animations[animation];
+ }
+ }
+ return false;
+ },
+
+ animationEvent: function() {
+ var
+ element = document.createElement('div'),
+ animations = {
+ 'animation' :'animationend',
+ 'OAnimation' :'oAnimationEnd',
+ 'MozAnimation' :'animationend',
+ 'WebkitAnimation' :'webkitAnimationEnd'
+ },
+ animation
+ ;
+ for(animation in animations){
+ if( element.style[animation] !== undefined ){
+ module.verbose('Determined animation vendor end event', animations[animation]);
+ return animations[animation];
+ }
+ }
+ return false;
+ }
+
+ },
+
+ can: {
+ animate: function() {
+ if($module.css(settings.animation) !== 'none') {
+ module.debug('CSS definition found', $module.css(settings.animation));
+ return true;
+ }
+ else {
+ module.debug('Unable to find css definition', $module.attr('class'));
+ return false;
+ }
+ },
+ transition: function() {
+ var
+ elementClass = $module.attr('class'),
+ animation = settings.animation,
+ transitionExists = module.get.transitionExists(settings.animation),
+ $clone,
+ currentAnimation,
+ inAnimation,
+ displayType
+ ;
+ if( transitionExists === undefined || instance.displayType === undefined) {
+ module.verbose('Determining whether animation exists');
+ $clone = $('
').addClass( elementClass ).appendTo($('body'));
+ currentAnimation = $clone
+ .removeClass(className.inward)
+ .removeClass(className.outward)
+ .addClass(className.animating)
+ .addClass(className.transition)
+ .addClass(animation)
+ .css(animationName)
+ ;
+ inAnimation = $clone
+ .addClass(className.inward)
+ .css(animationName)
+ ;
+ displayType = $clone
+ .attr('class', elementClass)
+ .show()
+ .css('display')
+ ;
+ module.verbose('Determining final display state', displayType);
+ if(currentAnimation != inAnimation) {
+ module.debug('Transition exists for animation', animation);
+ transitionExists = true;
+ }
+ else {
+ module.debug('Static animation found', animation, displayType);
+ transitionExists = false;
+ }
+ $clone.remove();
+ module.save.displayType(displayType);
+ module.save.transitionExists(animation, transitionExists);
+ }
+ return transitionExists;
+ }
+ },
+
+ is: {
+ animating: function() {
+ return $module.hasClass(className.animating);
+ },
+ inward: function() {
+ return $module.hasClass(className.inward);
+ },
+ outward: function() {
+ return $module.hasClass(className.outward);
+ },
+ looping: function() {
+ return $module.hasClass(className.looping);
+ },
+ occuring: function(animation) {
+ animation = animation || settings.animation;
+ return ( $module.hasClass(animation) );
+ },
+ visible: function() {
+ return $module.is(':visible');
+ },
+ supported: function() {
+ return(animationName !== false && animationEnd !== false);
+ }
+ },
+
+ hide: function() {
+ module.verbose('Hiding element');
+ module.remove.visible();
+ module.set.hidden();
+ module.repaint();
+ },
+
+ show: function(display) {
+ module.verbose('Showing element', display);
+ module.remove.hidden();
+ module.set.visible();
+ module.repaint();
+ },
+
+ start: function() {
+ module.verbose('Starting animation');
+ $module.removeClass(className.disabled);
+ },
+
+ stop: function() {
+ module.debug('Stopping animation');
+ $module.addClass(className.disabled);
+ },
+
+ toggle: function() {
+ module.debug('Toggling play status');
+ $module.toggleClass(className.disabled);
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found || false;
+ }
+ };
+ module.initialize();
+ })
+ ;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.transition.exists = {};
+
+$.fn.transition.settings = {
+
+ // module info
+ name : 'Transition',
+
+ // debug content outputted to console
+ debug : false,
+
+ // verbose debug output
+ verbose : true,
+
+ // performance data output
+ performance : true,
+
+ // event namespace
+ namespace : 'transition',
+
+ // animation complete event
+ complete : function() {},
+ onShow : function() {},
+ onHide : function() {},
+
+ // whether animation can occur twice in a row
+ allowRepeats : false,
+
+ // animation duration
+ animation : 'fade',
+ duration : '700ms',
+
+ // new animations will occur after previous ones
+ queue : true,
+
+ className : {
+ animating : 'animating',
+ disabled : 'disabled',
+ hidden : 'hidden',
+ inward : 'in',
+ loading : 'loading',
+ looping : 'looping',
+ outward : 'out',
+ transition : 'ui transition',
+ visible : 'visible'
+ },
+
+ // possible errors
+ error: {
+ noAnimation : 'There is no css animation matching the one you specified.',
+ repeated : 'That animation is already occurring, cancelling repeated animation',
+ method : 'The method you called is not defined',
+ support : 'This browser does not support CSS animations'
+ }
+
+};
+
+
+})( jQuery, window , document );
+
+/* ******************************
+ Module - Video
+ Author: Jack Lukic
+
+ This is a video playlist and video embed plugin which helps
+ provide helpers for adding embed code for vimeo and youtube and
+ abstracting event handlers for each library
+
+****************************** */
+
+;(function ($, window, document, undefined) {
+
+$.fn.video = function(parameters) {
+
+ var
+ $allModules = $(this),
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.video.settings, parameters)
+ : $.extend({}, $.fn.video.settings),
+
+ selector = settings.selector,
+ className = settings.className,
+ error = settings.error,
+ metadata = settings.metadata,
+ namespace = settings.namespace,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $placeholder = $module.find(selector.placeholder),
+ $playButton = $module.find(selector.playButton),
+ $embed = $module.find(selector.embed),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing video');
+ $placeholder
+ .on('click' + eventNamespace, module.play)
+ ;
+ $playButton
+ .on('click' + eventNamespace, module.play)
+ ;
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous instance of video');
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ $placeholder
+ .off(eventNamespace)
+ ;
+ $playButton
+ .off(eventNamespace)
+ ;
+ },
+
+ // sets new video
+ change: function(source, id, url) {
+ module.debug('Changing video to ', source, id, url);
+ $module
+ .data(metadata.source, source)
+ .data(metadata.id, id)
+ .data(metadata.url, url)
+ ;
+ settings.onChange();
+ },
+
+ // clears video embed
+ reset: function() {
+ module.debug('Clearing video embed and showing placeholder');
+ $module
+ .removeClass(className.active)
+ ;
+ $embed
+ .html(' ')
+ ;
+ $placeholder
+ .show()
+ ;
+ settings.onReset();
+ },
+
+ // plays current video
+ play: function() {
+ module.debug('Playing video');
+ var
+ source = $module.data(metadata.source) || false,
+ url = $module.data(metadata.url) || false,
+ id = $module.data(metadata.id) || false
+ ;
+ $embed
+ .html( module.generate.html(source, id, url) )
+ ;
+ $module
+ .addClass(className.active)
+ ;
+ settings.onPlay();
+ },
+
+ generate: {
+ // generates iframe html
+ html: function(source, id, url) {
+ module.debug('Generating embed html');
+ var
+ width = (settings.width == 'auto')
+ ? $module.width()
+ : settings.width,
+ height = (settings.height == 'auto')
+ ? $module.height()
+ : settings.height,
+ html
+ ;
+ if(source && id) {
+ if(source == 'vimeo') {
+ html = ''
+ + '
'
+ ;
+ }
+ else if(source == 'youtube') {
+ html = ''
+ + '
VIDEO '
+ ;
+ }
+ }
+ else if(url) {
+ html = ''
+ + '
'
+ ;
+ }
+ else {
+ module.error(error.noVideo);
+ }
+ return html;
+ },
+
+ // generate url parameters
+ url: function(source) {
+ var
+ api = (settings.api)
+ ? 1
+ : 0,
+ autoplay = (settings.autoplay)
+ ? 1
+ : 0,
+ hd = (settings.hd)
+ ? 1
+ : 0,
+ showUI = (settings.showUI)
+ ? 1
+ : 0,
+ // opposite used for some params
+ hideUI = !(settings.showUI)
+ ? 1
+ : 0,
+ url = ''
+ ;
+ if(source == 'vimeo') {
+ url = ''
+ + 'api=' + api
+ + '&title=' + showUI
+ + '&byline=' + showUI
+ + '&portrait=' + showUI
+ + '&autoplay=' + autoplay
+ ;
+ if(settings.color) {
+ url += '&color=' + settings.color;
+ }
+ }
+ if(source == 'ustream') {
+ url = ''
+ + 'autoplay=' + autoplay
+ ;
+ if(settings.color) {
+ url += '&color=' + settings.color;
+ }
+ }
+ else if(source == 'youtube') {
+ url = ''
+ + 'enablejsapi=' + api
+ + '&autoplay=' + autoplay
+ + '&autohide=' + hideUI
+ + '&hq=' + hd
+ + '&modestbranding=1'
+ ;
+ if(settings.color) {
+ url += '&color=' + settings.color;
+ }
+ }
+ return url;
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.video.settings = {
+
+ name : 'Video',
+ namespace : 'video',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ metadata : {
+ source : 'source',
+ id : 'id',
+ url : 'url'
+ },
+
+ onPlay : function(){},
+ onReset : function(){},
+ onChange : function(){},
+
+ // callbacks not coded yet (needs to use jsapi)
+ onPause : function() {},
+ onStop : function() {},
+
+ width : 'auto',
+ height : 'auto',
+
+ autoplay : false,
+ color : '#442359',
+ hd : true,
+ showUI : false,
+ api : true,
+
+ error : {
+ noVideo : 'No video specified',
+ method : 'The method you called is not defined'
+ },
+
+ className : {
+ active : 'active'
+ },
+
+ selector : {
+ embed : '.embed',
+ placeholder : '.placeholder',
+ playButton : '.play'
+ }
+};
+
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/packaged/javascript/semantic.min.js b/css/semantic/rtl/packaged/javascript/semantic.min.js
new file mode 100644
index 0000000..ddb938c
--- /dev/null
+++ b/css/semantic/rtl/packaged/javascript/semantic.min.js
@@ -0,0 +1,16 @@
+/** # Semantic UI
+* Version: 0.15.4
+* http://github.com/jlukic/semantic-ui
+*
+*
+* Copyright 2014 Contributors
+* Released under the MIT license
+* http://opensource.org/licenses/MIT
+*
+* Release Date: 04/04/2014
+*/
+!function(a,b,c,d){a.fn.accordion=function(b){var c,e=a(this),f=(new Date).getTime(),g=[],h=arguments[0],i="string"==typeof h,j=[].slice.call(arguments,1);return e.each(function(){var k,l=a.isPlainObject(b)?a.extend(!0,{},a.fn.accordion.settings,b):a.extend({},a.fn.accordion.settings),m=l.className,n=l.namespace,o=l.selector,p=(l.error,"."+n),q="module-"+n,r=e.selector||"",s=a(this),t=s.find(o.title),u=s.find(o.content),v=this,w=s.data(q);k={initialize:function(){k.debug("Initializing accordion with bound events",s),t.on("click"+p,k.event.click),k.instantiate()},instantiate:function(){w=k,s.data(q,k)},destroy:function(){k.debug("Destroying previous accordion for",s),s.removeData(q),t.off(p)},event:{click:function(){k.verbose("Title clicked",this);var b=a(this),c=t.index(b);k.toggle(c)},resetDisplay:function(){a(this).css("display",""),""==a(this).attr("style")&&a(this).attr("style","").removeAttr("style")},resetOpacity:function(){a(this).css("opacity",""),""==a(this).attr("style")&&a(this).attr("style","").removeAttr("style")}},toggle:function(a){k.debug("Toggling content content at index",a);var b=t.eq(a),c=b.next(u),d=c.is(":visible");d?l.collapsible?k.close(a):k.debug("Cannot close accordion content collapsing is disabled"):k.open(a)},open:function(b){var c=t.eq(b),d=c.next(u),e=c.siblings(o.title).filter("."+m.active),f=e.next(t),g=e.size()>0;d.is(":animated")||(k.debug("Opening accordion content",c),l.exclusive&&g&&(e.removeClass(m.active),f.stop().children().stop().animate({opacity:0},l.duration,k.event.resetOpacity).end().slideUp(l.duration,l.easing,function(){f.removeClass(m.active).children(),a.proxy(k.event.resetDisplay,this)()})),c.addClass(m.active),d.stop().children().stop().animate({opacity:1},l.duration).end().slideDown(l.duration,l.easing,function(){d.addClass(m.active),a.proxy(k.event.resetDisplay,this)(),a.proxy(l.onOpen,d)(),a.proxy(l.onChange,d)()}))},close:function(b){var c=t.eq(b),d=c.next(u);k.debug("Closing accordion content",d),c.removeClass(m.active),d.removeClass(m.active).show().stop().children().stop().animate({opacity:0},l.duration,k.event.resetOpacity).end().slideUp(l.duration,l.easing,function(){a.proxy(k.event.resetDisplay,this)(),a.proxy(l.onClose,d)(),a.proxy(l.onChange,d)()})},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,l,b);else{if(c===d)return l[b];l[b]=c}},internal:function(b,c){return k.debug("Changing internal",b,c),c===d?k[b]:void(a.isPlainObject(b)?a.extend(!0,k,b):k[b]=c)},debug:function(){l.debug&&(l.performance?k.performance.log(arguments):(k.debug=Function.prototype.bind.call(console.info,console,l.name+":"),k.debug.apply(console,arguments)))},verbose:function(){l.verbose&&l.debug&&(l.performance?k.performance.log(arguments):(k.verbose=Function.prototype.bind.call(console.info,console,l.name+":"),k.verbose.apply(console,arguments)))},error:function(){k.error=Function.prototype.bind.call(console.error,console,l.name+":"),k.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;l.performance&&(b=(new Date).getTime(),d=f||b,c=b-d,f=b,g.push({Element:v,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(k.performance.timer),k.performance.timer=setTimeout(k.performance.display,100)},display:function(){var b=l.name+":",c=0;f=!1,clearTimeout(k.performance.timer),a.each(g,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",r&&(b+=" '"+r+"'"),(console.group!==d||console.table!==d)&&g.length>0&&(console.groupCollapsed(b),console.table?console.table(g):a.each(g,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),g=[]}},invoke:function(b,e,f){var g,h,i,k=w;return e=e||j,f=v||f,"string"==typeof b&&k!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(k[f])&&c!=g)k=k[f];else{if(k[f]!==d)return h=k[f],!1;if(!a.isPlainObject(k[e])||c==g)return k[e]!==d?(h=k[e],!1):!1;k=k[e]}})),a.isFunction(h)?i=h.apply(f,e):h!==d&&(i=h),a.isArray(c)?c.push(i):c!==d?c=[c,i]:i!==d&&(c=i),h}},i?(w===d&&k.initialize(),k.invoke(h)):(w!==d&&k.destroy(),k.initialize())}),c!==d?c:this},a.fn.accordion.settings={name:"Accordion",namespace:"accordion",debug:!1,verbose:!0,performance:!0,exclusive:!0,collapsible:!0,duration:500,easing:"easeInOutQuint",onOpen:function(){},onClose:function(){},onChange:function(){},error:{method:"The method you called is not defined"},className:{active:"active"},selector:{title:".title",content:".content"}},a.extend(a.easing,{easeInOutQuint:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b*b+c:d/2*((b-=2)*b*b*b*b+2)+c}})}(jQuery,window,document),function(a,b,c,d){a.api=a.fn.api=function(c){var e,f,g=a.extend(!0,{},a.api.settings,c),h="function"!=typeof this?this:a("
"),i=a(g.stateContext?g.stateContext:h),j="object"==typeof this?a(h):i,k=this,l=(new Date).getTime(),m=[],n=j.selector||"",o=g.namespace+"-module",p=g.className,q=g.metadata,r=g.error,s=j.data(o),t=arguments[0],u=s!==d&&"string"==typeof t,v=[].slice.call(arguments,1);return e={initialize:function(){var c,f,h,k,l,m,n=(new Date).getTime(),o={},s={};return g.serializeForm&&a(this).toJSON()!==d&&(o=e.get.formData(),e.debug("Adding form data to API Request",o),a.extend(!0,g.data,o)),c=a.proxy(g.beforeSend,j)(g),c===d||c?(k=e.get.url(e.get.templateURL()))?(h=a.Deferred().always(function(){g.stateContext&&i.removeClass(p.loading),a.proxy(g.complete,j)()}).done(function(b){e.debug("API request successful"),"json"==g.dataType?b.error!==d?a.proxy(g.failure,i)(b.error,g,j):a.isArray(b.errors)?a.proxy(g.failure,i)(b.errors[0],g,j):a.proxy(g.success,i)(b,g,j):a.proxy(g.success,i)(b,g,j)}).fail(function(b,c,f){var h,j=g.error[c]!==d?g.error[c]:f;if(b!==d)if(b.readyState!==d&&4==b.readyState){if(200!=b.status&&f!==d&&""!==f)e.error(k.statusMessage+f);else if("error"==c&&"json"==g.dataType)try{h=a.parseJSON(b.responseText),h&&h.error!==d&&(j=h.error)}catch(k){e.error(k.JSONParse)}i.removeClass(p.loading).addClass(p.error),g.errorLength>0&&setTimeout(function(){i.removeClass(p.error)},g.errorLength),e.debug("API Request error:",j),a.proxy(g.failure,i)(j,g,this)}else e.debug("Request Aborted (Most likely caused by page change)")}),a.extend(!0,s,g,{success:function(){},failure:function(){},complete:function(){},type:g.method||g.type,data:l,url:k,beforeSend:g.beforeXHR}),g.stateContext&&i.addClass(p.loading),g.progress&&(e.verbose("Adding progress events"),a.extend(!0,s,{xhr:function(){var c=new b.XMLHttpRequest;return c.upload.addEventListener("progress",function(b){var c;b.lengthComputable&&(c=Math.round(b.loaded/b.total*1e4)/100+"%",a.proxy(g.progress,i)(c,b))},!1),c.addEventListener("progress",function(b){var c;b.lengthComputable&&(c=Math.round(b.loaded/b.total*1e4)/100+"%",a.proxy(g.progress,i)(c,b))},!1),c}})),e.verbose("Creating AJAX request with settings: ",s),m=a.ajax(s).always(function(){f=g.loadingLength-((new Date).getTime()-n),g.loadingDelay=0>f?0:f}).done(function(a){var b=this;setTimeout(function(){h.resolveWith(b,[a])},g.loadingDelay)}).fail(function(a,b,c){var d=this;"abort"!=b?setTimeout(function(){h.rejectWith(d,[a,b,c])},g.loadingDelay):i.removeClass(p.error).removeClass(p.loading)}),void(g.stateContext&&j.data(q.promise,h).data(q.xhr,m))):(e.error(r.missingURL),void e.reset()):(e.error(r.beforeSend),void e.reset())},get:{formData:function(){return j.closest("form").toJSON()},templateURL:function(){var a,b=j.data(g.metadata.action)||g.action||!1;return b&&(e.debug("Creating url for: ",b),g.api[b]!==d?a=g.api[b]:e.error(r.missingAction)),g.url&&(a=g.url,e.debug("Getting url",a)),a},url:function(b,c){var f;return b&&(f=b.match(g.regExpTemplate),c=c||g.urlData,f&&(e.debug("Looking for URL variables",f),a.each(f,function(g,h){var i=h.substr(2,h.length-3),k=a.isPlainObject(c)&&c[i]!==d?c[i]:j.data(i)!==d?j.data(i):c[i];if(e.verbose("Looking for variable",i,j,j.data(i),c[i]),k===!1)e.debug("Removing variable from URL",f),b=b.replace("/"+h,"");else{if(k===d||!k)return e.error(r.missingParameter+i),b=!1,!1;b=b.replace(h,k)}}))),b}},reset:function(){j.data(q.promise,!1).data(q.xhr,!1),i.removeClass(p.error).removeClass(p.loading)},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,g,b);else{if(c===d)return g[b];g[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,e,b);else{if(c===d)return e[b];e[b]=c}},debug:function(){g.debug&&(g.performance?e.performance.log(arguments):(e.debug=Function.prototype.bind.call(console.info,console,g.name+":"),e.debug.apply(console,arguments)))},verbose:function(){g.verbose&&g.debug&&(g.performance?e.performance.log(arguments):(e.verbose=Function.prototype.bind.call(console.info,console,g.name+":"),e.verbose.apply(console,arguments)))},error:function(){e.error=Function.prototype.bind.call(console.error,console,g.name+":"),e.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;g.performance&&(b=(new Date).getTime(),d=l||b,c=b-d,l=b,m.push({Element:k,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(e.performance.timer),e.performance.timer=setTimeout(e.performance.display,100)},display:function(){var b=g.name+":",c=0;l=!1,clearTimeout(e.performance.timer),a.each(m,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",n&&(b+=" '"+n+"'"),(console.group!==d||console.table!==d)&&m.length>0&&(console.groupCollapsed(b),console.table?console.table(m):a.each(m,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),m=[]}},invoke:function(b,c,e){var g,h,i,j=s;return c=c||v,e=k||e,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(e,c):h!==d&&(i=h),a.isArray(f)?f.push(i):f!==d?f=[f,i]:i!==d&&(f=i),h}},u?(s===d&&e.initialize(),e.invoke(t)):(s!==d&&e.destroy(),e.initialize()),f!==d?f:this},a.fn.apiButton=function(b){return a(this).each(function(){var c,d=a(this),e=a(this).selector||"",f=a.isFunction(b)?a.extend(!0,{},a.api.settings,a.fn.apiButton.settings,{stateContext:this,success:b}):a.extend(!0,{},a.api.settings,a.fn.apiButton.settings,{stateContext:this},b);c={initialize:function(){f.context&&""!==e?a(f.context).on(e,"click."+f.namespace,c.click):d.on("click."+f.namespace,c.click)},click:function(){f.filter&&0!==a(this).filter(f.filter).size()||a.proxy(a.api,this)(f)}},c.initialize()}),this},a.api.settings={name:"API",namespace:"api",debug:!0,verbose:!0,performance:!0,api:{},beforeSend:function(a){return a},beforeXHR:function(){},success:function(){},complete:function(){},failure:function(){},progress:!1,error:{missingAction:"API action used but no url was defined",missingURL:"URL not specified for the API action",missingParameter:"Missing an essential URL parameter: ",timeout:"Your request timed out",error:"There was an error with your request",parseError:"There was an error parsing your request",JSONParse:"JSON could not be parsed during error handling",statusMessage:"Server gave an error: ",beforeSend:"The before send function has aborted the request",exitConditions:"API Request Aborted. Exit conditions met"},className:{loading:"loading",error:"error"},metadata:{action:"action",promise:"promise",xhr:"xhr"},regExpTemplate:/\{\$([A-z]+)\}/g,action:!1,url:!1,urlData:!1,serializeForm:!1,stateContext:!1,method:"get",data:{},dataType:"json",cache:!0,loadingLength:200,errorLength:2e3},a.fn.apiButton.settings={filter:".disabled, .loading",context:!1,stateContext:!1}}(jQuery,window,document),function(a,b,c,d){a.fn.colorize=function(b){var c=a.extend(!0,{},a.fn.colorize.settings,b),e=arguments||!1;return a(this).each(function(b){var f,g,h,i,j,k,l,m,n=a(this),o=a("
")[0],p=a("
")[0],q=a("
")[0],r=new Image,s=c.colors,t=(c.paths,c.namespace),u=c.error,v=n.data("module-"+t);return m={checkPreconditions:function(){return m.debug("Checking pre-conditions"),!a.isPlainObject(s)||a.isEmptyObject(s)?(m.error(u.undefinedColors),!1):!0},async:function(a){c.async?setTimeout(a,0):a()},getMetadata:function(){m.debug("Grabbing metadata"),i=n.data("image")||c.image||d,j=n.data("name")||c.name||b,k=c.width||n.width(),l=c.height||n.height(),(0===k||0===l)&&m.error(u.undefinedSize)},initialize:function(){m.debug("Initializing with colors",s),m.checkPreconditions()&&m.async(function(){m.getMetadata(),m.canvas.create(),m.draw.image(function(){m.draw.colors(),m.canvas.merge()}),n.data("module-"+t,m)})},redraw:function(){m.debug("Redrawing image"),m.async(function(){m.canvas.clear(),m.draw.colors(),m.canvas.merge()})},change:{color:function(a,b){return m.debug("Changing color",a),s[a]===d?(m.error(u.missingColor),!1):(s[a]=b,void m.redraw())}},canvas:{create:function(){m.debug("Creating canvases"),o.width=k,o.height=l,p.width=k,p.height=l,q.width=k,q.height=l,f=o.getContext("2d"),g=p.getContext("2d"),h=q.getContext("2d"),n.append(o),f=n.children("canvas")[0].getContext("2d")},clear:function(){m.debug("Clearing canvas"),h.fillStyle="#FFFFFF",h.fillRect(0,0,k,l)},merge:function(){return a.isFunction(f.blendOnto)?(f.putImageData(g.getImageData(0,0,k,l),0,0),void h.blendOnto(f,"multiply")):void m.error(u.missingPlugin)}},draw:{image:function(a){m.debug("Drawing image"),a=a||function(){},i?(r.src=i,r.onload=function(){g.drawImage(r,0,0),a()}):(m.error(u.noImage),a())},colors:function(){m.debug("Drawing color overlays",s),a.each(s,function(a,b){c.onDraw(h,j,a,b)})}},debug:function(a,b){c.debug&&(b!==d?console.info(c.name+": "+a,b):console.info(c.name+": "+a))},error:function(a){console.warn(c.name+": "+a)},invoke:function(b,e,f){var g;return f=f||Array.prototype.slice.call(arguments,2),"string"==typeof b&&v!==d&&(b=b.split("."),a.each(b,function(b,d){return a.isPlainObject(v[d])?(v=v[d],!0):a.isFunction(v[d])?(g=v[d],!0):(m.error(c.error.method),!1)})),a.isFunction(g)?g.apply(e,f):!1}},v!==d&&e?("invoke"==e[0]&&(e=Array.prototype.slice.call(e,1)),m.invoke(e[0],this,Array.prototype.slice.call(e,1))):void m.initialize()}),this},a.fn.colorize.settings={name:"Image Colorizer",debug:!0,namespace:"colorize",onDraw:function(){},async:!0,colors:{},metadata:{image:"image",name:"name"},error:{noImage:"No tracing image specified",undefinedColors:"No default colors specified.",missingColor:"Attempted to change color that does not exist",missingPlugin:"Blend onto plug-in must be included",undefinedHeight:"The width or height of image canvas could not be automatically determined. Please specify a height."}}}(jQuery,window,document),function(a,b,c,d){a.fn.form=function(b,e){var f,g=a(this),h=a.extend(!0,{},a.fn.form.settings,e),i=a.extend({},a.fn.form.settings.defaults,b),j=h.namespace,k=h.metadata,l=h.selector,m=h.className,n=(h.error,"."+j),o="module-"+j,p=g.selector||"",q=(new Date).getTime(),r=[],s=arguments[0],t="string"==typeof s,u=[].slice.call(arguments,1);return g.each(function(){var b,e=a(this),j=a(this).find(l.field),v=a(this).find(l.group),w=a(this).find(l.message),x=(a(this).find(l.prompt),a(this).find(l.submit)),y=[],z=this,A=e.data(o);b={initialize:function(){b.verbose("Initializing form validation",e,i,h),b.bindEvents(),b.instantiate()},instantiate:function(){b.verbose("Storing instance of module",b),A=b,e.data(o,b)},destroy:function(){b.verbose("Destroying previous module",A),b.removeEvents(),e.removeData(o)},refresh:function(){b.verbose("Refreshing selector cache"),j=e.find(l.field)},submit:function(){b.verbose("Submitting form",e),e.submit()},bindEvents:function(){h.keyboardShortcuts&&j.on("keydown"+n,b.event.field.keydown),e.on("submit"+n,b.validate.form),j.on("blur"+n,b.event.field.blur),x.on("click"+n,b.submit),j.each(function(){var c=a(this).prop("type"),d=b.get.changeEvent(c);a(this).on(d+n,b.event.field.change)})},removeEvents:function(){e.off(n),j.off(n),x.off(n),j.off(n)},event:{field:{keydown:function(c){var d=a(this),e=c.which,f={enter:13,escape:27};return e==f.escape&&(b.verbose("Escape key pressed blurring field"),d.blur()),!c.ctrlKey&&e==f.enter&&d.is(l.input)?(b.debug("Enter key pressed, submitting form"),x.addClass(m.down),d.one("keyup"+n,b.event.field.keyup),c.preventDefault(),!1):void 0},keyup:function(){b.verbose("Doing keyboard shortcut form submit"),x.removeClass(m.down),b.submit()},blur:function(){var c=a(this),d=c.closest(v);d.hasClass(m.error)?(b.debug("Revalidating field",c,b.get.validation(c)),b.validate.field(b.get.validation(c))):("blur"==h.on||"change"==h.on)&&b.validate.field(b.get.validation(c))},change:function(){var c=a(this),d=c.closest(v);("change"==h.on||d.hasClass(m.error)&&h.revalidate)&&(clearTimeout(b.timer),b.timer=setTimeout(function(){b.debug("Revalidating field",c,b.get.validation(c)),b.validate.field(b.get.validation(c))},h.delay))}}},get:{changeEvent:function(a){return"checkbox"==a||"radio"==a||"hidden"==a?"change":c.createElement("input").oninput!==d?"input":c.createElement("input").onpropertychange!==d?"propertychange":"keyup"},field:function(c){return b.verbose("Finding field with identifier",c),j.filter("#"+c).size()>0?j.filter("#"+c):j.filter('[name="'+c+'"]').size()>0?j.filter('[name="'+c+'"]'):j.filter("[data-"+k.validate+'="'+c+'"]').size()>0?j.filter("[data-"+k.validate+'="'+c+'"]'):a("
")},validation:function(c){var d;return a.each(i,function(a,e){b.get.field(e.identifier).get(0)==c.get(0)&&(d=e)}),d||!1}},has:{field:function(a){return b.verbose("Checking for existence of a field with identifier",a),j.filter("#"+a).size()>0?!0:j.filter('[name="'+a+'"]').size()>0?!0:j.filter("[data-"+k.validate+'="'+a+'"]').size()>0?!0:!1}},add:{prompt:function(c,f){var g=b.get.field(c),i=g.closest(v),j=i.find(l.prompt),k=0!==j.size();f="string"==typeof f?[f]:f,b.verbose("Adding field error state",c),i.addClass(m.error),h.inline&&(k||(j=h.templates.prompt(f),j.appendTo(i)),j.html(f[0]),k?b.verbose("Inline errors are disabled, no inline error added",c):h.transition&&a.fn.transition!==d&&e.transition("is supported")?(b.verbose("Displaying error with css transition",h.transition),j.transition(h.transition+" in",h.duration)):(b.verbose("Displaying error with fallback javascript animation"),j.fadeIn(h.duration)))},errors:function(a){b.debug("Adding form error messages",a),w.html(h.templates.error(a))}},remove:{prompt:function(c){var f=b.get.field(c.identifier),g=f.closest(v),i=g.find(l.prompt);g.removeClass(m.error),h.inline&&i.is(":visible")&&(b.verbose("Removing prompt for field",c),h.transition&&a.fn.transition!==d&&e.transition("is supported")?i.transition(h.transition+" out",h.duration,function(){i.remove()}):i.fadeOut(h.duration,function(){i.remove()}))}},validate:{form:function(c){var d=!0;return y=[],a.each(i,function(a,c){b.validate.field(c)||(d=!1)}),d?(b.debug("Form has no validation errors, submitting"),e.removeClass(m.error).addClass(m.success),a.proxy(h.onSuccess,this)(c)):(b.debug("Form has errors"),e.addClass(m.error),h.inline||b.add.errors(y),a.proxy(h.onFailure,this)(y))},field:function(c){var e=b.get.field(c.identifier),f=!0,g=[];return c.rules!==d&&a.each(c.rules,function(a,d){b.has.field(c.identifier)&&!b.validate.rule(c,d)&&(b.debug("Field is invalid",c.identifier,d.type),g.push(d.prompt),f=!1)}),f?(b.remove.prompt(c,g),a.proxy(h.onValid,e)(),!0):(y=y.concat(g),b.add.prompt(c.identifier,g),a.proxy(h.onInvalid,e)(g),!1)},rule:function(c,f){var g,i,j=b.get.field(c.identifier),k=f.type,l=a.trim(j.val()+""),m=/\[(.*)\]/i,n=m.exec(k),o=!0;return n!==d&&null!==n?(g=""+n[1],i=k.replace(n[0],""),o=a.proxy(h.rules[i],e)(l,g)):o=a.proxy(h.rules[k],j)(l),o}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,h,b);else{if(c===d)return h[b];h[b]=c}},internal:function(c,e){if(a.isPlainObject(c))a.extend(!0,b,c);else{if(e===d)return b[c];b[c]=e}},debug:function(){h.debug&&(h.performance?b.performance.log(arguments):(b.debug=Function.prototype.bind.call(console.info,console,h.name+":"),b.debug.apply(console,arguments)))},verbose:function(){h.verbose&&h.debug&&(h.performance?b.performance.log(arguments):(b.verbose=Function.prototype.bind.call(console.info,console,h.name+":"),b.verbose.apply(console,arguments)))},error:function(){b.error=Function.prototype.bind.call(console.error,console,h.name+":"),b.error.apply(console,arguments)},performance:{log:function(a){var c,d,e;h.performance&&(c=(new Date).getTime(),e=q||c,d=c-e,q=c,r.push({Element:z,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":d})),clearTimeout(b.performance.timer),b.performance.timer=setTimeout(b.performance.display,100)},display:function(){var c=h.name+":",e=0;q=!1,clearTimeout(b.performance.timer),a.each(r,function(a,b){e+=b["Execution Time"]}),c+=" "+e+"ms",p&&(c+=" '"+p+"'"),g.size()>1&&(c+=" ("+g.size()+")"),(console.group!==d||console.table!==d)&&r.length>0&&(console.groupCollapsed(c),console.table?console.table(r):a.each(r,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),r=[]}},invoke:function(b,c,e){var g,h,i,j=A;return c=c||u,e=z||e,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(e,c):h!==d&&(i=h),a.isArray(f)?f.push(i):f!==d?f=[f,i]:i!==d&&(f=i),h}},t?(A===d&&b.initialize(),b.invoke(s)):(A!==d&&b.destroy(),b.initialize())}),f!==d?f:this},a.fn.form.settings={name:"Form",namespace:"form",debug:!0,verbose:!0,performance:!0,keyboardShortcuts:!0,on:"submit",inline:!1,delay:200,revalidate:!0,transition:"scale",duration:150,onValid:function(){},onInvalid:function(){},onSuccess:function(){return!0},onFailure:function(){return!1},metadata:{validate:"validate"},selector:{message:".error.message",field:"input, textarea, select",group:".field",input:"input",prompt:".prompt",submit:".submit"},className:{error:"error",success:"success",down:"down",label:"ui label prompt"},error:{method:"The method you called is not defined."},templates:{error:function(b){var c='
';return a.each(b,function(a,b){c+=""+b+" "}),c+=" ",a(c)},prompt:function(b){return a("
").addClass("ui red pointing prompt label").html(b[0])}},rules:{checked:function(){return a(this).filter(":checked").size()>0},empty:function(a){return!(a===d||""===a)},email:function(a){var b=new RegExp("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?","i");return b.test(a)},length:function(a,b){return a!==d?a.length>=b:!1},not:function(a,b){return a!=b},contains:function(a,b){return b=b.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),-1!==a.search(b)},is:function(a,b){return a==b},maxLength:function(a,b){return a!==d?a.length<=b:!1},match:function(b,c){var e,f=a(this);return f.find("#"+c).size()>0?e=f.find("#"+c).val():f.find("[name="+c+"]").size()>0?e=f.find("[name="+c+"]").val():f.find('[data-validate="'+c+'"]').size()>0&&(e=f.find('[data-validate="'+c+'"]').val()),e!==d?b.toString()==e.toString():!1},url:function(a){var b=/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;return b.test(a)}}}}(jQuery,window,document),function(a,b,c,d){a.fn.state=function(b){var c,e=a(this),f=a.extend(!0,{},a.fn.state.settings,b),g=e.selector||"",h=(new Date).getTime(),i=[],j=arguments[0],k="string"==typeof j,l=[].slice.call(arguments,1),m=(f.error,f.metadata),n=f.className,o=f.namespace,p=f.states,q=f.text,r="."+o,s=o+"-module";return e.each(function(){var o,t=a(this),u=this,v=t.data(s);o={initialize:function(){o.verbose("Initializing module"),f.automatic&&o.add.defaults(),f.context&&""!==g?(o.allows("hover")&&a(u,f.context).on(g,"mouseenter"+r,o.enable.hover).on(g,"mouseleave"+r,o.disable.hover),o.allows("down")&&a(u,f.context).on(g,"mousedown"+r,o.enable.down).on(g,"mouseup"+r,o.disable.down),o.allows("focus")&&a(u,f.context).on(g,"focus"+r,o.enable.focus).on(g,"blur"+r,o.disable.focus),a(f.context).on(g,"mouseenter"+r,o.change.text).on(g,"mouseleave"+r,o.reset.text).on(g,"click"+r,o.toggle.state)):(o.allows("hover")&&t.on("mouseenter"+r,o.enable.hover).on("mouseleave"+r,o.disable.hover),o.allows("down")&&t.on("mousedown"+r,o.enable.down).on("mouseup"+r,o.disable.down),o.allows("focus")&&t.on("focus"+r,o.enable.focus).on("blur"+r,o.disable.focus),t.on("mouseenter"+r,o.change.text).on("mouseleave"+r,o.reset.text).on("click"+r,o.toggle.state)),o.instantiate()},instantiate:function(){o.verbose("Storing instance of module",o),v=o,t.data(s,o)},destroy:function(){o.verbose("Destroying previous module",v),t.off(r).removeData(s)},refresh:function(){o.verbose("Refreshing selector cache"),t=a(u)},add:{defaults:function(){var c=b&&a.isPlainObject(b.states)?b.states:{};a.each(f.defaults,function(b,e){o.is[b]!==d&&o.is[b]()&&(o.verbose("Adding default states",b,u),a.extend(f.states,e,c))})}},is:{active:function(){return t.hasClass(n.active)},loading:function(){return t.hasClass(n.loading)},inactive:function(){return!t.hasClass(n.active)},enabled:function(){return!t.is(f.filter.active)},disabled:function(){return t.is(f.filter.active)},textEnabled:function(){return!t.is(f.filter.text)},button:function(){return t.is(".button:not(a, .submit)")},input:function(){return t.is("input")}},allow:function(a){o.debug("Now allowing state",a),p[a]=!0},disallow:function(a){o.debug("No longer allowing",a),p[a]=!1},allows:function(a){return p[a]||!1},enable:{state:function(a){o.allows(a)&&t.addClass(n[a])},focus:function(){t.addClass(n.focus)},hover:function(){t.addClass(n.hover)},down:function(){t.addClass(n.down)}},disable:{state:function(a){o.allows(a)&&t.removeClass(n[a])},focus:function(){t.removeClass(n.focus)},hover:function(){t.removeClass(n.hover)},down:function(){t.removeClass(n.down)}},toggle:{state:function(){var a=t.data(m.promise);o.allows("active")&&o.is.enabled()&&(o.refresh(),a!==d?o.listenTo(a):o.change.state())}},listenTo:function(b){o.debug("API request detected, waiting for state signal",b),b?(q.loading&&o.update.text(q.loading),a.when(b).then(function(){"resolved"==b.state()?(o.debug("API request succeeded"),f.activateTest=function(){return!0},f.deactivateTest=function(){return!0}):(o.debug("API request failed"),f.activateTest=function(){return!1},f.deactivateTest=function(){return!1}),o.change.state()})):(f.activateTest=function(){return!1},f.deactivateTest=function(){return!1})},change:{state:function(){o.debug("Determining state change direction"),o.is.inactive()?o.activate():o.deactivate(),f.sync&&o.sync(),a.proxy(f.onChange,u)()},text:function(){o.is.textEnabled()&&(o.is.active()?q.hover?(o.verbose("Changing text to hover text",q.hover),o.update.text(q.hover)):q.disable&&(o.verbose("Changing text to disable text",q.disable),o.update.text(q.disable)):q.hover?(o.verbose("Changing text to hover text",q.disable),o.update.text(q.hover)):q.enable&&(o.verbose("Changing text to enable text",q.enable),o.update.text(q.enable)))}},activate:function(){a.proxy(f.activateTest,u)()&&(o.debug("Setting state to active"),t.addClass(n.active),o.update.text(q.active)),a.proxy(f.onActivate,u)()},deactivate:function(){a.proxy(f.deactivateTest,u)()&&(o.debug("Setting state to inactive"),t.removeClass(n.active),o.update.text(q.inactive)),a.proxy(f.onDeactivate,u)()},sync:function(){o.verbose("Syncing other buttons to current state"),e.not(t).state(o.is.active()?"activate":"deactivate")},get:{text:function(){return f.selector.text?t.find(f.selector.text).text():t.html()},textFor:function(a){return q[a]||!1}},flash:{text:function(a,b){var c=o.get.text();o.debug("Flashing text message",a,b),a=a||f.text.flash,b=b||f.flashDuration,o.update.text(a),setTimeout(function(){o.update.text(c)},b)}},reset:{text:function(){var a=q.active||t.data(m.storedText),b=q.inactive||t.data(m.storedText);o.is.textEnabled()&&(o.is.active()&&a?(o.verbose("Resetting active text",a),o.update.text(a)):b&&(o.verbose("Resetting inactive text",a),o.update.text(b)))}},update:{text:function(a){var b=o.get.text();a&&a!==b?(o.debug("Updating text",a),f.selector.text?t.data(m.storedText,a).find(f.selector.text).text(a):t.data(m.storedText,a).html(a)):o.debug("Text is already sane, ignoring update",a)}},setting:function(b,c){return o.debug("Changing setting",b,c),c===d?f[b]:void(a.isPlainObject(b)?a.extend(!0,f,b):f[b]=c)},internal:function(b,c){return o.debug("Changing internal",b,c),c===d?o[b]:void(a.isPlainObject(b)?a.extend(!0,o,b):o[b]=c)},debug:function(){f.debug&&(f.performance?o.performance.log(arguments):(o.debug=Function.prototype.bind.call(console.info,console,f.name+":"),o.debug.apply(console,arguments)))},verbose:function(){f.verbose&&f.debug&&(f.performance?o.performance.log(arguments):(o.verbose=Function.prototype.bind.call(console.info,console,f.name+":"),o.verbose.apply(console,arguments)))},error:function(){o.error=Function.prototype.bind.call(console.error,console,f.name+":"),o.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;f.performance&&(b=(new Date).getTime(),d=h||b,c=b-d,h=b,i.push({Element:u,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(o.performance.timer),o.performance.timer=setTimeout(o.performance.display,100)},display:function(){var b=f.name+":",c=0;h=!1,clearTimeout(o.performance.timer),a.each(i,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",g&&(b+=" '"+g+"'"),e.size()>1&&(b+=" ("+e.size()+")"),(console.group!==d||console.table!==d)&&i.length>0&&(console.groupCollapsed(b),console.table?console.table(i):a.each(i,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),i=[]}},invoke:function(b,e,f){var g,h,i,j=v;return e=e||l,f=u||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,e):h!==d&&(i=h),a.isArray(c)?c.push(i):c!==d?c=[c,i]:i!==d&&(c=i),h}},k?(v===d&&o.initialize(),o.invoke(j)):(v!==d&&o.destroy(),o.initialize())}),c!==d?c:this},a.fn.state.settings={name:"State",debug:!0,verbose:!0,namespace:"state",performance:!0,onActivate:function(){},onDeactivate:function(){},onChange:function(){},activateTest:function(){return!0},deactivateTest:function(){return!0},automatic:!0,sync:!1,flashDuration:3e3,filter:{text:".loading, .disabled",active:".disabled"},context:!1,error:{method:"The method you called is not defined."},metadata:{promise:"promise",storedText:"stored-text"},className:{focus:"focus",hover:"hover",down:"down",active:"active",loading:"loading"},selector:{text:!1},defaults:{input:{hover:!0,focus:!0,down:!0,loading:!1,active:!1},button:{hover:!0,focus:!1,down:!0,active:!0,loading:!0}},states:{hover:!0,focus:!0,down:!0,loading:!1,active:!1},text:{flash:!1,hover:!1,active:!1,inactive:!1,enable:!1,disable:!1}}}(jQuery,window,document),function(a,b,c,d){a.fn.chatroom=function(b){var c,e=a(this),f=e.selector||"",g=(new Date).getTime(),h=[],i=arguments[0],j="string"==typeof i,k=[].slice.call(arguments,1);return a(this).each(function(){var c,e,l,m,n,o,p,q=a.extend(!0,{},a.fn.chatroom.settings,b),r=q.className,s=q.namespace,t=q.selector,u=q.error,v=a(this),w=v.find(t.expandButton),x=v.find(t.userListButton),y=v.find(t.userList),z=(v.find(t.room),v.find(t.userCount)),A=v.find(t.log),B=(v.find(t.message),v.find(t.messageInput)),C=v.find(t.messageButton),D=v.data("module"),E=this,F="",G={};p={width:{log:A.width(),userList:y.outerWidth()},initialize:function(){return Pusher===d&&p.error(u.pusher),q.key===d||q.channelName===d?(p.error(u.key),!1):q.endpoint.message||q.endpoint.authentication?(o=new Pusher(q.key),Pusher.channel_auth_endpoint=q.endpoint.authentication,c=o.subscribe(q.channelName),c.bind("pusher:subscription_succeeded",p.user.list.create),c.bind("pusher:subscription_error",p.error),c.bind("pusher:member_added",p.user.joined),c.bind("pusher:member_removed",p.user.left),c.bind("update_messages",p.message.receive),a.each(q.customEvents,function(a,b){c.bind(a,b)
+}),x.on("click."+s,p.event.toggleUserList),w.on("click."+s,p.event.toggleExpand),B.on("keydown."+s,p.event.input.keydown).on("keyup."+s,p.event.input.keyup),C.on("mouseenter."+s,p.event.hover).on("mouseleave."+s,p.event.hover).on("click."+s,p.event.submit),A.animate({scrollTop:A.prop("scrollHeight")},400),void v.data("module",p).addClass(r.loading)):(p.error(u.endpoint),!1)},refresh:function(){x.removeClass(r.active),p.width={log:A.width(),userList:y.outerWidth()},x.hasClass(r.active)&&p.user.list.hide(),v.data("module",p)},user:{updateCount:function(){q.userCount&&(G=v.data("users"),m=0,a.each(G,function(){m++}),z.html(q.templates.userCount(m)))},joined:function(b){G=v.data("users"),"anonymous"!=b.id&&G[b.id]===d&&(G[b.id]=b.info,q.randomColor&&b.info.color===d&&(b.info.color=q.templates.color(b.id)),F=q.templates.userList(b.info),b.info.isAdmin?a(F).prependTo(y):a(F).appendTo(y),q.partingMessages&&(A.append(q.templates.joined(b.info)),p.message.scroll.test()),p.user.updateCount())},left:function(a){G=v.data("users"),a!==d&&"anonymous"!==a.id&&(delete G[a.id],v.data("users",G),y.find("[data-id="+a.id+"]").remove(),q.partingMessages&&(A.append(q.templates.left(a.info)),p.message.scroll.test()),p.user.updateCount())},list:{create:function(b){G={},b.each(function(a){"anonymous"!==a.id&&"undefined"!==a.id&&(q.randomColor&&a.info.color===d&&(a.info.color=q.templates.color(a.id)),F=a.info.isAdmin?q.templates.userList(a.info)+F:F+q.templates.userList(a.info),G[a.id]=a.info)}),v.data("users",G).data("user",G[b.me.id]).removeClass(r.loading),y.html(F),p.user.updateCount(),a.proxy(q.onJoin,y.children())()},show:function(){A.animate({width:p.width.log-p.width.userList},{duration:q.speed,easing:q.easing,complete:p.message.scroll.move})},hide:function(){A.stop().animate({width:p.width.log},{duration:q.speed,easing:q.easing,complete:p.message.scroll.move})}}},message:{scroll:{test:function(){n=A.prop("scrollHeight")-A.height(),Math.abs(A.scrollTop()-n)
0&&(console.groupCollapsed(b),console.table?console.table(h):a.each(h,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),h=[]}},invoke:function(b,c,e){var f,g;return c=c||k,e=E||e,"string"==typeof b&&D!==d&&(b=b.split(/[\. ]/),f=b.length-1,a.each(b,function(c,e){a.isPlainObject(D[e])&&c!=f?D=D[e]:D[e]!==d?g=D[e]:p.error(u.method,b)})),a.isFunction(g)?g.apply(e,c):g||!1}},j?(D===d&&p.initialize(),p.invoke(i)):(D!==d&&p.destroy(),p.initialize())}),c!==d?c:this},a.fn.chatroom.settings={name:"Chat",debug:!1,namespace:"chat",channel:"present-chat",onJoin:function(){},onMessage:function(){},onExpand:function(){},onContract:function(){},customEvents:{},partingMessages:!1,userCount:!0,randomColor:!0,speed:300,easing:"easeOutQuint",scrollArea:9999,endpoint:{message:!1,authentication:!1},error:{method:"The method you called is not defined",endpoint:"Please define a message and authentication endpoint.",key:"You must specify a pusher key and channel.",pusher:"You must include the Pusher library."},className:{expand:"expand",active:"active",hover:"hover",down:"down",loading:"loading"},selector:{userCount:".actions .message",userListButton:".actions .list.button",expandButton:".actions .expand.button",room:".room",userList:".room .list",log:".room .log",message:".room .log .message",author:".room log .message .author",messageInput:".talk input",messageButton:".talk .send.button"},templates:{userCount:function(a){return a+" users in chat"},color:function(){var a=["#000000","#333333","#666666","#999999","#CC9999","#CC6666","#CC3333","#993333","#663333","#CC6633","#CC9966","#CC9933","#999966","#CCCC66","#99CC66","#669933","#669966","#33A3CC","#336633","#33CCCC","#339999","#336666","#336699","#6666CC","#9966CC","#333399","#663366","#996699","#993366","#CC6699"];return a[Math.floor(Math.random()*a.length)]},message:function(a){var b="";return a.user.isAdmin?(a.user.color="#55356A",b+='',b+='
'):b+='
',b+="
",b+=a.user.color!==d?''+a.user.name+" : ":''+a.user.name+" : ",b+=""+a.text+"
"},joined:function(a){return typeof a.name!==d?'
'+a.name+" has joined the chat.
":!1},left:function(a){return typeof a.name!==d?'
'+a.name+" has left the chat.
":!1},userList:function(a){var b="";return a.isAdmin&&(a.color="#55356A"),b+='
"}}}}(jQuery,window,document),function(a,b,c,d){a.fn.checkbox=function(b){var c,e=a(this),f=e.selector||"",g=(new Date).getTime(),h=[],i=arguments[0],j="string"==typeof i,k=[].slice.call(arguments,1);return e.each(function(){var e,l=a.extend(!0,{},a.fn.checkbox.settings,b),m=l.className,n=l.namespace,o=(l.error,"."+n),p="module-"+n,q=a(this),r=a(this).next(l.selector.label).first(),s=a(this).find(l.selector.input),t=q.selector||"",u=q.data(p),v=this;e={initialize:function(){e.verbose("Initializing checkbox",l),l.context&&""!==t?(e.verbose("Adding delegated events"),a(v,l.context).on(t,"click"+o,e.toggle).on(t+" + "+l.selector.label,"click"+o,e.toggle)):(q.on("click"+o,e.toggle).data(p,e),r.on("click"+o,e.toggle)),e.instantiate()},instantiate:function(){e.verbose("Storing instance of module",e),u=e,q.data(p,e)},destroy:function(){e.verbose("Destroying previous module"),q.off(o).removeData(p)},is:{radio:function(){return q.hasClass(m.radio)},enabled:function(){return s.prop("checked")!==d&&s.prop("checked")},disabled:function(){return!e.is.enabled()}},can:{disable:function(){return"boolean"==typeof l.required?l.required:!e.is.radio()}},enable:function(){e.debug("Enabling checkbox",s),s.prop("checked",!0).trigger("change"),a.proxy(l.onChange,s.get())(),a.proxy(l.onEnable,s.get())()},disable:function(){e.debug("Disabling checkbox"),s.prop("checked",!1).trigger("change"),a.proxy(l.onChange,s.get())(),a.proxy(l.onDisable,s.get())()},toggle:function(){e.verbose("Determining new checkbox state"),e.is.disabled()?e.enable():e.is.enabled()&&e.can.disable()&&e.disable()},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,l,b);else{if(c===d)return l[b];l[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,e,b);else{if(c===d)return e[b];e[b]=c}},debug:function(){l.debug&&(l.performance?e.performance.log(arguments):(e.debug=Function.prototype.bind.call(console.info,console,l.name+":"),e.debug.apply(console,arguments)))},verbose:function(){l.verbose&&l.debug&&(l.performance?e.performance.log(arguments):(e.verbose=Function.prototype.bind.call(console.info,console,l.name+":"),e.verbose.apply(console,arguments)))},error:function(){e.error=Function.prototype.bind.call(console.error,console,l.name+":"),e.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;l.performance&&(b=(new Date).getTime(),d=g||b,c=b-d,g=b,h.push({Element:v,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(e.performance.timer),e.performance.timer=setTimeout(e.performance.display,100)},display:function(){var b=l.name+":",c=0;g=!1,clearTimeout(e.performance.timer),a.each(h,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",f&&(b+=" '"+f+"'"),(console.group!==d||console.table!==d)&&h.length>0&&(console.groupCollapsed(b),console.table?console.table(h):a.each(h,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),h=[]}},invoke:function(b,e,f){var g,h,i,j=u;return e=e||k,f=v||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,e):h!==d&&(i=h),a.isArray(c)?c.push(i):c!==d?c=[c,i]:i!==d&&(c=i),h}},j?(u===d&&e.initialize(),e.invoke(i)):(u!==d&&e.destroy(),e.initialize())}),c!==d?c:this},a.fn.checkbox.settings={name:"Checkbox",namespace:"checkbox",debug:!1,verbose:!0,performance:!0,context:!1,required:"auto",onChange:function(){},onEnable:function(){},onDisable:function(){},error:{method:"The method you called is not defined."},selector:{input:"input[type=checkbox], input[type=radio]",label:"label"},className:{radio:"radio"}}}(jQuery,window,document),function(a,b,c,d){a.fn.dimmer=function(b){var e,f=a(this),g=(new Date).getTime(),h=[],i=arguments[0],j="string"==typeof i,k=[].slice.call(arguments,1);return f.each(function(){var l,m,n,o=a.isPlainObject(b)?a.extend(!0,{},a.fn.dimmer.settings,b):a.extend({},a.fn.dimmer.settings),p=o.selector,q=o.namespace,r=o.className,s=(o.error,"."+q),t="module-"+q,u=f.selector||"",v="ontouchstart"in c.documentElement?"touchstart":"click",w=a(this),x=this,y=w.data(t);n={preinitialize:function(){n.is.dimmer()?(m=w.parent(),l=w):(m=w,l=n.has.dimmer()?m.children(p.dimmer).first():n.create())},initialize:function(){n.debug("Initializing dimmer",o),"hover"==o.on?m.on("mouseenter"+s,n.show).on("mouseleave"+s,n.hide):"click"==o.on&&m.on(v+s,n.toggle),n.is.page()&&(n.debug("Setting as a page dimmer",m),n.set.pageDimmer()),o.closable&&(n.verbose("Adding dimmer close event",l),l.on(v+s,n.event.click)),n.set.dimmable(),n.instantiate()},instantiate:function(){n.verbose("Storing instance of module",n),y=n,w.data(t,y)},destroy:function(){n.verbose("Destroying previous module",l),w.removeData(t),m.off(s),l.off(s)},event:{click:function(b){n.verbose("Determining if event occured on dimmer",b),(0===l.find(b.target).size()||a(b.target).is(p.content))&&(n.hide(),b.stopImmediatePropagation())}},addContent:function(b){var c=a(b);n.debug("Add content to dimmer",c),c.parent()[0]!==l[0]&&c.detach().appendTo(l)},create:function(){return a(o.template.dimmer()).appendTo(m)},animate:{show:function(b){b=a.isFunction(b)?b:function(){},n.set.dimmed(),"hover"!=o.on&&o.useCSS&&a.fn.transition!==d&&l.transition("is supported")?l.transition({animation:o.transition+" in",queue:!0,duration:n.get.duration(),complete:function(){n.set.active(),b()}}):(n.verbose("Showing dimmer animation with javascript"),l.stop().css({opacity:0,width:"100%",height:"100%"}).fadeTo(n.get.duration(),1,function(){l.removeAttr("style"),n.set.active(),b()}))},hide:function(b){b=a.isFunction(b)?b:function(){},"hover"!=o.on&&o.useCSS&&a.fn.transition!==d&&l.transition("is supported")?(n.verbose("Hiding dimmer with css"),l.transition({animation:o.transition+" out",duration:n.get.duration(),queue:!0,complete:function(){n.remove.dimmed(),n.remove.active(),b()}})):(n.verbose("Hiding dimmer with javascript"),l.stop().fadeOut(n.get.duration(),function(){l.removeAttr("style"),n.remove.dimmed(),n.remove.active(),b()}))}},get:{dimmer:function(){return l},duration:function(){return"object"==typeof o.duration?n.is.active()?o.duration.hide:o.duration.show:o.duration}},has:{dimmer:function(){return w.children(p.dimmer).size()>0}},is:{active:function(){return l.hasClass(r.active)},animating:function(){return l.is(":animated")||l.hasClass(r.transition)},dimmer:function(){return w.is(p.dimmer)},dimmable:function(){return w.is(p.dimmable)},dimmed:function(){return m.hasClass(r.dimmed)},disabled:function(){return m.hasClass(r.disabled)},enabled:function(){return!n.is.disabled()},page:function(){return m.is("body")},pageDimmer:function(){return l.hasClass(r.pageDimmer)}},can:{show:function(){return!l.hasClass(r.disabled)}},set:{active:function(){n.set.dimmed(),l.removeClass(r.transition).addClass(r.active)},dimmable:function(){m.addClass(r.dimmable)},dimmed:function(){m.addClass(r.dimmed)},pageDimmer:function(){l.addClass(r.pageDimmer)},disabled:function(){l.addClass(r.disabled)}},remove:{active:function(){l.removeClass(r.transition).removeClass(r.active)},dimmed:function(){m.removeClass(r.dimmed)},disabled:function(){l.removeClass(r.disabled)}},show:function(b){b=a.isFunction(b)?b:function(){},n.debug("Showing dimmer",l,o),!n.is.active()&&n.is.enabled()?(n.animate.show(b),a.proxy(o.onShow,x)(),a.proxy(o.onChange,x)()):n.debug("Dimmer is already shown or disabled")},hide:function(b){b=a.isFunction(b)?b:function(){},n.is.active()||n.is.animating()?(n.debug("Hiding dimmer",l),n.animate.hide(b),a.proxy(o.onHide,x)(),a.proxy(o.onChange,x)()):n.debug("Dimmer is not visible")},toggle:function(){n.verbose("Toggling dimmer visibility",l),n.is.dimmed()?n.hide():n.show()},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,o,b);else{if(c===d)return o[b];o[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,n,b);else{if(c===d)return n[b];n[b]=c}},debug:function(){o.debug&&(o.performance?n.performance.log(arguments):(n.debug=Function.prototype.bind.call(console.info,console,o.name+":"),n.debug.apply(console,arguments)))},verbose:function(){o.verbose&&o.debug&&(o.performance?n.performance.log(arguments):(n.verbose=Function.prototype.bind.call(console.info,console,o.name+":"),n.verbose.apply(console,arguments)))},error:function(){n.error=Function.prototype.bind.call(console.error,console,o.name+":"),n.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;o.performance&&(b=(new Date).getTime(),d=g||b,c=b-d,g=b,h.push({Element:x,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(n.performance.timer),n.performance.timer=setTimeout(n.performance.display,100)},display:function(){var b=o.name+":",c=0;g=!1,clearTimeout(n.performance.timer),a.each(h,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",u&&(b+=" '"+u+"'"),f.size()>1&&(b+=" ("+f.size()+")"),(console.group!==d||console.table!==d)&&h.length>0&&(console.groupCollapsed(b),console.table?console.table(h):a.each(h,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),h=[]}},invoke:function(b,c,f){var g,h,i,j=y;return c=c||k,f=x||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,c):h!==d&&(i=h),a.isArray(e)?e.push(i):e!==d?e=[e,i]:i!==d&&(e=i),h}},n.preinitialize(),j?(y===d&&n.initialize(),n.invoke(i)):(y!==d&&n.destroy(),n.initialize())}),e!==d?e:this},a.fn.dimmer.settings={name:"Dimmer",namespace:"dimmer",debug:!1,verbose:!0,performance:!0,transition:"fade",useCSS:!0,on:!1,closable:!0,duration:{show:500,hide:500},onChange:function(){},onShow:function(){},onHide:function(){},error:{method:"The method you called is not defined."},selector:{dimmable:".ui.dimmable",dimmer:".ui.dimmer",content:".ui.dimmer > .content, .ui.dimmer > .content > .center"},template:{dimmer:function(){return a("
").attr("class","ui dimmer")}},className:{active:"active",dimmable:"ui dimmable",dimmed:"dimmed",disabled:"disabled",pageDimmer:"page",hide:"hide",show:"show",transition:"transition"}}}(jQuery,window,document),function(a,b,c,d){a.fn.dropdown=function(b){var e,f=a(this),g=a(c),h=f.selector||"",i="ontouchstart"in c.documentElement,j=(new Date).getTime(),k=[],l=arguments[0],m="string"==typeof l,n=[].slice.call(arguments,1);return f.each(function(){var c,o=a.isPlainObject(b)?a.extend(!0,{},a.fn.dropdown.settings,b):a.extend({},a.fn.dropdown.settings),p=o.className,q=o.metadata,r=o.namespace,s=o.selector,t=o.error,u="."+r,v="module-"+r,w=a(this),x=w.find(s.item),y=w.find(s.text),z=w.find(s.input),A=w.children(s.menu),B=this,C=w.data(v);c={initialize:function(){c.debug("Initializing dropdown",o),c.save.defaults(),c.set.selected(),i&&c.bind.touchEvents(),c.bind.mouseEvents(),c.instantiate()},instantiate:function(){c.verbose("Storing instance of dropdown",c),C=c,w.data(v,c)},destroy:function(){c.verbose("Destroying previous dropdown for",w),x.off(u),w.off(u).removeData(v)},bind:{touchEvents:function(){c.debug("Touch device detected binding touch events"),w.on("touchstart"+u,c.event.test.toggle),x.on("touchstart"+u,c.event.item.mouseenter).on("touchstart"+u,c.event.item.click)},mouseEvents:function(){c.verbose("Mouse detected binding mouse events"),"click"==o.on?w.on("click"+u,c.event.test.toggle):"hover"==o.on?w.on("mouseenter"+u,c.delay.show).on("mouseleave"+u,c.delay.hide):w.on(o.on+u,c.toggle),x.on("mouseenter"+u,c.event.item.mouseenter).on("mouseleave"+u,c.event.item.mouseleave).on("click"+u,c.event.item.click)},intent:function(){c.verbose("Binding hide intent event to document"),i&&g.on("touchstart"+u,c.event.test.touch).on("touchmove"+u,c.event.test.touch),g.on("click"+u,c.event.test.hide)}},unbind:{intent:function(){c.verbose("Removing hide intent event from document"),i&&g.off("touchstart"+u).off("touchmove"+u),g.off("click"+u)}},event:{test:{toggle:function(a){c.determine.intent(a,c.toggle)&&a.preventDefault()},touch:function(a){c.determine.intent(a,function(){"touchstart"==a.type?c.timer=setTimeout(c.hide,o.delay.touch):"touchmove"==a.type&&clearTimeout(c.timer)}),a.stopPropagation()},hide:function(a){c.determine.intent(a,c.hide)}},item:{mouseenter:function(b){var d=a(this).find(s.submenu),e=a(this).siblings(s.item).children(s.menu);(d.length>0||e.length>0)&&(clearTimeout(c.itemTimer),c.itemTimer=setTimeout(function(){e.length>0&&c.animate.hide(!1,e.filter(":visible")),d.length>0&&(c.verbose("Showing sub-menu",d),c.animate.show(!1,d))},2*o.delay.show),b.preventDefault(),b.stopPropagation())},mouseleave:function(){var b=a(this).find(s.menu);b.size()>0&&(clearTimeout(c.itemTimer),c.itemTimer=setTimeout(function(){c.verbose("Hiding sub-menu",b),c.animate.hide(!1,b)},o.delay.hide))},click:function(b){var e=a(this),f=e.data(q.text)!==d?e.data(q.text):e.text(),g=e.data(q.value)!==d?e.data(q.value):"string"==typeof f?f.toLowerCase():f,h=function(){c.determine.selectAction(f,g),a.proxy(o.onChange,B)(g,f)};0===e.find(s.menu).size()&&("touchstart"==b.type?e.one("click",h):h())}},resetStyle:function(){a(this).removeAttr("style")}},determine:{selectAction:function(b,d){c.verbose("Determining action",o.action),a.isFunction(c.action[o.action])?(c.verbose("Triggering preset action",o.action,b,d),c.action[o.action](b,d)):a.isFunction(o.action)?(c.verbose("Triggering user action",o.action,b,d),o.action(b,d)):c.error(t.action,o.action)},intent:function(b,d){return c.debug("Determining whether event occurred in dropdown",b.target),d=d||function(){},0===a(b.target).closest(A).size()?(c.verbose("Triggering event",d),d(),!0):(c.verbose("Event occurred in dropdown, canceling callback"),!1)}},action:{nothing:function(){},hide:function(){c.hide()},activate:function(a,b){b=b!==d?b:a,c.set.selected(b),c.set.value(b),c.hide()},auto:function(a,b){b=b!==d?b:a,c.set.selected(b),c.set.value(b),c.hide()},changeText:function(a,b){b=b!==d?b:a,c.set.selected(b),c.hide()},updateForm:function(a,b){b=b!==d?b:a,c.set.selected(b),c.set.value(b),c.hide()}},get:{text:function(){return y.text()},value:function(){return z.size()>0?z.val():w.data(q.value)},item:function(b,e){var f=!1;return b=b!==d?b:c.get.value()!==d?c.get.value():c.get.text(),e===d&&""===b?(c.debug("Ambiguous dropdown value using strict type check",b),e=!0):e=e||!1,b!==d?x.each(function(){var c=a(this),g=c.data(q.text)!==d?c.data(q.text):c.text(),h=c.data(q.value)!==d?c.data(q.value):"string"==typeof g?g.toLowerCase():g;e?h===b?f=a(this):f||g!==b||(f=a(this)):h==b?f=a(this):f||g!=b||(f=a(this))}):b=c.get.text(),f||!1}},restore:{defaults:function(){c.restore.defaultText(),c.restore.defaultValue()},defaultText:function(){var a=w.data(q.defaultText);c.debug("Restoring default text",a),c.set.text(a)},defaultValue:function(){var a=w.data(q.defaultValue);a!==d&&(c.debug("Restoring default value",a),c.set.selected(a),c.set.value(a))}},save:{defaults:function(){c.save.defaultText(),c.save.defaultValue()},defaultValue:function(){w.data(q.defaultValue,c.get.value())},defaultText:function(){w.data(q.defaultText,y.text())}},set:{text:function(a){c.debug("Changing text",a,y),y.removeClass(p.placeholder),y.text(a)},value:function(a){c.debug("Adding selected value to hidden input",a,z),z.size()>0?z.val(a).trigger("change"):w.data(q.value,a)},active:function(){w.addClass(p.active)},visible:function(){w.addClass(p.visible)},selected:function(a){var b,e=c.get.item(a);e&&(c.debug("Setting selected menu item to",e),b=e.data(q.text)!==d?e.data(q.text):e.text(),x.removeClass(p.active),e.addClass(p.active),c.set.text(b))}},remove:{active:function(){w.removeClass(p.active)},visible:function(){w.removeClass(p.visible)}},is:{selection:function(){return w.hasClass(p.selection)},animated:function(a){return a?a.is(":animated")||a.transition("is animating"):A.is(":animated")||A.transition("is animating")},visible:function(a){return a?a.is(":visible"):A.is(":visible")},hidden:function(a){return a?a.is(":not(:visible)"):A.is(":not(:visible)")}},can:{click:function(){return i||"click"==o.on},show:function(){return!w.hasClass(p.disabled)}},animate:{show:function(b,e){var f=e||A;b=b||function(){},c.is.hidden(f)&&(c.verbose("Doing menu show animation",f),"none"==o.transition?b():a.fn.transition!==d&&w.transition("is supported")?f.transition({animation:o.transition+" in",duration:o.duration,complete:b,queue:!1}):"slide down"==o.transition?f.hide().clearQueue().children().clearQueue().css("opacity",0).delay(50).animate({opacity:1},o.duration,"easeOutQuad",c.event.resetStyle).end().slideDown(100,"easeOutQuad",function(){a.proxy(c.event.resetStyle,this)(),b()}):"fade"==o.transition?f.hide().clearQueue().fadeIn(o.duration,function(){a.proxy(c.event.resetStyle,this)(),b()}):c.error(t.transition,o.transition))},hide:function(b,e){var f=e||A;b=b||function(){},c.is.visible(f)&&(c.verbose("Doing menu hide animation",f),a.fn.transition!==d&&w.transition("is supported")?f.transition({animation:o.transition+" out",duration:o.duration,complete:b,queue:!1}):"none"==o.transition?b():"slide down"==o.transition?f.show().clearQueue().children().clearQueue().css("opacity",1).animate({opacity:0},100,"easeOutQuad",c.event.resetStyle).end().delay(50).slideUp(100,"easeOutQuad",function(){a.proxy(c.event.resetStyle,this)(),b()}):"fade"==o.transition?f.show().clearQueue().fadeOut(150,function(){a.proxy(c.event.resetStyle,this)(),b()}):c.error(t.transition))}},show:function(){c.debug("Checking if dropdown can show"),c.is.hidden()&&(c.hideOthers(),c.set.active(),c.animate.show(function(){c.can.click()&&c.bind.intent(),c.set.visible()}),a.proxy(o.onShow,B)())},hide:function(){!c.is.animated()&&c.is.visible()&&(c.debug("Hiding dropdown"),c.can.click()&&c.unbind.intent(),c.remove.active(),c.animate.hide(c.remove.visible),a.proxy(o.onHide,B)())},delay:{show:function(){c.verbose("Delaying show event to ensure user intent"),clearTimeout(c.timer),c.timer=setTimeout(c.show,o.delay.show)},hide:function(){c.verbose("Delaying hide event to ensure user intent"),clearTimeout(c.timer),c.timer=setTimeout(c.hide,o.delay.hide)}},hideOthers:function(){c.verbose("Finding other dropdowns to hide"),f.not(w).has(s.menu+":visible").dropdown("hide")},toggle:function(){c.verbose("Toggling menu visibility"),c.is.hidden()?c.show():c.hide()},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,o,b);else{if(c===d)return o[b];o[b]=c}},internal:function(b,e){if(a.isPlainObject(b))a.extend(!0,c,b);else{if(e===d)return c[b];c[b]=e}},debug:function(){o.debug&&(o.performance?c.performance.log(arguments):(c.debug=Function.prototype.bind.call(console.info,console,o.name+":"),c.debug.apply(console,arguments)))},verbose:function(){o.verbose&&o.debug&&(o.performance?c.performance.log(arguments):(c.verbose=Function.prototype.bind.call(console.info,console,o.name+":"),c.verbose.apply(console,arguments)))},error:function(){c.error=Function.prototype.bind.call(console.error,console,o.name+":"),c.error.apply(console,arguments)},performance:{log:function(a){var b,d,e;o.performance&&(b=(new Date).getTime(),e=j||b,d=b-e,j=b,k.push({Element:B,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":d})),clearTimeout(c.performance.timer),c.performance.timer=setTimeout(c.performance.display,100)},display:function(){var b=o.name+":",e=0;j=!1,clearTimeout(c.performance.timer),a.each(k,function(a,b){e+=b["Execution Time"]}),b+=" "+e+"ms",h&&(b+=" '"+h+"'"),(console.group!==d||console.table!==d)&&k.length>0&&(console.groupCollapsed(b),console.table?console.table(k):a.each(k,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),k=[]}},invoke:function(b,f,g){var h,i,j,k=C;return f=f||n,g=B||g,"string"==typeof b&&k!==d&&(b=b.split(/[\. ]/),h=b.length-1,a.each(b,function(e,f){var g=e!=h?f+b[e+1].charAt(0).toUpperCase()+b[e+1].slice(1):b;if(a.isPlainObject(k[g])&&e!=h)k=k[g];else{if(k[g]!==d)return i=k[g],!1;if(!a.isPlainObject(k[f])||e==h)return k[f]!==d?(i=k[f],!1):(c.error(t.method,b),!1);k=k[f]}})),a.isFunction(i)?j=i.apply(g,f):i!==d&&(j=i),a.isArray(e)?e.push(j):e!==d?e=[e,j]:j!==d&&(e=j),i}},m?(C===d&&c.initialize(),c.invoke(l)):(C!==d&&c.destroy(),c.initialize())}),e!==d?e:this},a.fn.dropdown.settings={name:"Dropdown",namespace:"dropdown",debug:!1,verbose:!0,performance:!0,on:"click",action:"activate",delay:{show:200,hide:300,touch:50},transition:"slide down",duration:250,onChange:function(){},onShow:function(){},onHide:function(){},error:{action:"You called a dropdown action that was not defined",method:"The method you called is not defined.",transition:"The requested transition was not found"},metadata:{defaultText:"defaultText",defaultValue:"defaultValue",text:"text",value:"value"},selector:{menu:".menu",submenu:"> .menu",item:".menu > .item",text:"> .text",input:'> input[type="hidden"]'},className:{active:"active",placeholder:"default",disabled:"disabled",visible:"visible",selection:"selection"}},a.extend(a.easing,{easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c}})}(jQuery,window,document),function(a,b,c,d){a.fn.modal=function(e){var f,g=a(this),h=a(b),i=a(c),j=a("body"),k=(new Date).getTime(),l=[],m=arguments[0],n="string"==typeof m,o=[].slice.call(arguments,1),p=b.requestAnimationFrame||b.mozRequestAnimationFrame||b.webkitRequestAnimationFrame||b.msRequestAnimationFrame||function(a){setTimeout(a,0)};return g.each(function(){var q,r,s,t,u,v,w=a.isPlainObject(e)?a.extend(!0,{},a.fn.modal.settings,e):a.extend({},a.fn.modal.settings),x=w.selector,y=w.className,z=w.namespace,A=w.error,B="."+z,C="module-"+z,D=g.selector||"",E=a(this),F=a(w.context),G=E.find(x.close),H=this,I=E.data(C);v={initialize:function(){return v.verbose("Initializing dimmer",F),a.fn.dimmer===d?void v.error(A.dimmer):(t=F.dimmer({closable:!1,useCSS:!0,duration:{show:.9*w.duration,hide:1.1*w.duration}}),w.detachable&&t.dimmer("add content",E),u=t.dimmer("get dimmer"),r=E.siblings(x.modal),q=r.add(E),v.verbose("Attaching close events",G),G.on("click"+B,v.event.close),h.on("resize"+B,v.event.resize),void v.instantiate())},instantiate:function(){v.verbose("Storing instance of modal"),I=v,E.data(C,I)},destroy:function(){v.verbose("Destroying previous modal"),E.removeData(C).off(B),G.off(B),F.dimmer("destroy")},refresh:function(){v.remove.scrolling(),v.cacheSizes(),v.set.screenHeight(),v.set.type(),v.set.position()},attachEvents:function(b,c){var d=a(b);c=a.isFunction(v[c])?v[c]:v.toggle,d.size()>0?(v.debug("Attaching modal events to element",b,c),d.off(B).on("click"+B,c)):v.error(A.notFound)},event:{close:function(){v.verbose("Closing element pressed"),a(this).is(x.approve)?a.proxy(w.onApprove,H)()!==!1?v.hide():v.verbose("Approve callback returned false cancelling hide"):a(this).is(x.deny)?a.proxy(w.onDeny,H)()!==!1?v.hide():v.verbose("Deny callback returned false cancelling hide"):v.hide()},click:function(b){0===a(b.target).closest(x.modal).size()&&(v.debug("Dimmer clicked, hiding all modals"),w.allowMultiple?v.hide():v.hideAll(),b.stopImmediatePropagation())},debounce:function(a,b){clearTimeout(v.timer),v.timer=setTimeout(a,b)},keyboard:function(a){var b=a.which,c=27;b==c&&(w.closable?(v.debug("Escape key pressed hiding modal"),v.hide()):v.debug("Escape key pressed, but closable is set to false"),a.preventDefault())},resize:function(){t.dimmer("is active")&&p(v.refresh)}},toggle:function(){v.is.active()?v.hide():v.show()},show:function(b){b=a.isFunction(b)?b:function(){},v.showDimmer(),v.showModal(b)},showModal:function(b){b=a.isFunction(b)?b:function(){},v.is.active()?v.debug("Modal is already visible"):(v.cacheSizes(),v.set.position(),v.set.screenHeight(),v.set.type(),r.filter(":visible").size()>0&&!w.allowMultiple?(v.debug("Other modals visible, queueing show animation"),v.hideOthers(v.showModal)):(a.proxy(w.onShow,H)(),w.transition&&a.fn.transition!==d&&E.transition("is supported")?(v.debug("Showing modal with css animations"),E.transition(w.transition+" in",w.duration,function(){a.proxy(w.onVisible,H)(),v.set.active(),b()})):(v.debug("Showing modal with javascript"),E.fadeIn(w.duration,w.easing,function(){a.proxy(w.onVisible,H)(),v.set.active(),b()}))))},showDimmer:function(){t.dimmer("is active")?v.debug("Dimmer already visible"):(v.debug("Showing dimmer"),t.dimmer("show"))},hide:function(b){b=a.isFunction(b)?b:function(){},q.filter(":visible").size()<=1&&v.hideDimmer(),v.hideModal(b)},hideDimmer:function(){return v.is.active()?(v.debug("Hiding dimmer"),w.closable&&u.off("click"+B),void t.dimmer("hide",function(){w.transition&&a.fn.transition!==d&&E.transition("is supported")&&(E.transition("reset"),v.remove.screenHeight()),v.remove.active()
+})):void v.debug("Dimmer is not visible cannot hide")},hideModal:function(b){return b=a.isFunction(b)?b:function(){},v.is.active()?(v.debug("Hiding modal"),v.remove.keyboardShortcuts(),a.proxy(w.onHide,H)(),void(w.transition&&a.fn.transition!==d&&E.transition("is supported")?E.transition(w.transition+" out",w.duration,function(){a.proxy(w.onHidden,H)(),v.remove.active(),v.restore.focus(),b()}):E.fadeOut(w.duration,w.easing,function(){a.proxy(w.onHidden,H)(),v.remove.active(),v.restore.focus(),b()}))):void v.debug("Cannot hide modal it is not active")},hideAll:function(b){b=a.isFunction(b)?b:function(){},q.is(":visible")&&(v.debug("Hiding all visible modals"),v.hideDimmer(),q.filter(":visible").modal("hide modal",b))},hideOthers:function(b){b=a.isFunction(b)?b:function(){},r.is(":visible")&&(v.debug("Hiding other modals"),r.filter(":visible").modal("hide modal",b))},add:{keyboardShortcuts:function(){v.verbose("Adding keyboard shortcuts"),i.on("keyup"+B,v.event.keyboard)}},save:{focus:function(){s=a(c.activeElement).blur()}},restore:{focus:function(){s&&s.size()>0&&s.focus()}},remove:{active:function(){E.removeClass(y.active)},screenHeight:function(){v.cache.height>v.cache.pageHeight&&(v.debug("Removing page height"),j.css("height",""))},keyboardShortcuts:function(){v.verbose("Removing keyboard shortcuts"),i.off("keyup"+B)},scrolling:function(){t.removeClass(y.scrolling),E.removeClass(y.scrolling)}},cacheSizes:function(){v.cache={pageHeight:j.outerHeight(),height:E.outerHeight()+w.offset,contextHeight:"body"==w.context?a(b).height():t.height()},v.debug("Caching modal and container sizes",v.cache)},can:{fit:function(){return v.cache.height
v.cache.pageHeight&&(v.debug("Modal is taller than page content, resizing page height"),j.css("height",v.cache.height+w.padding))},active:function(){v.add.keyboardShortcuts(),v.save.focus(),E.addClass(y.active),w.closable&&u.off("click"+B).on("click"+B,v.event.click)},scrolling:function(){t.addClass(y.scrolling),E.addClass(y.scrolling)},type:function(){v.can.fit()?(v.verbose("Modal fits on screen"),v.remove.scrolling()):(v.verbose("Modal cannot fit on screen setting to scrolling"),v.set.scrolling())},position:function(){v.verbose("Centering modal on page",v.cache),E.css(v.can.fit()?{top:"",marginTop:-(v.cache.height/2)}:{marginTop:"1em",top:i.scrollTop()})}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,w,b);else{if(c===d)return w[b];w[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,v,b);else{if(c===d)return v[b];v[b]=c}},debug:function(){w.debug&&(w.performance?v.performance.log(arguments):(v.debug=Function.prototype.bind.call(console.info,console,w.name+":"),v.debug.apply(console,arguments)))},verbose:function(){w.verbose&&w.debug&&(w.performance?v.performance.log(arguments):(v.verbose=Function.prototype.bind.call(console.info,console,w.name+":"),v.verbose.apply(console,arguments)))},error:function(){v.error=Function.prototype.bind.call(console.error,console,w.name+":"),v.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;w.performance&&(b=(new Date).getTime(),d=k||b,c=b-d,k=b,l.push({Element:H,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(v.performance.timer),v.performance.timer=setTimeout(v.performance.display,100)},display:function(){var b=w.name+":",c=0;k=!1,clearTimeout(v.performance.timer),a.each(l,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",D&&(b+=" '"+D+"'"),(console.group!==d||console.table!==d)&&l.length>0&&(console.groupCollapsed(b),console.table?console.table(l):a.each(l,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),l=[]}},invoke:function(b,c,e){var g,h,i,j=I;return c=c||o,e=H||e,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(e,c):h!==d&&(i=h),a.isArray(f)?f.push(i):f!==d?f=[f,i]:i!==d&&(f=i),h}},n?(I===d&&v.initialize(),v.invoke(m)):(I!==d&&v.destroy(),v.initialize())}),f!==d?f:this},a.fn.modal.settings={name:"Modal",namespace:"modal",debug:!1,verbose:!0,performance:!0,allowMultiple:!0,detachable:!0,closable:!0,context:"body",duration:500,easing:"easeOutExpo",offset:0,transition:"scale",padding:30,onShow:function(){},onHide:function(){},onVisible:function(){},onHidden:function(){},onApprove:function(){return!0},onDeny:function(){return!0},selector:{close:".close, .actions .button",approve:".actions .positive, .actions .approve, .actions .ok",deny:".actions .negative, .actions .deny, .actions .cancel",modal:".ui.modal"},error:{dimmer:"UI Dimmer, a required component is not included in this page",method:"The method you called is not defined."},className:{active:"active",scrolling:"scrolling"}}}(jQuery,window,document),function(a,b,c,d){a.fn.nag=function(c){var e,f=a(this),g=f.selector||"",h=(new Date).getTime(),i=[],j=arguments[0],k="string"==typeof j,l=[].slice.call(arguments,1);return a(this).each(function(){var m,n,o,p,q,r,s,t,u,v=a.extend(!0,{},a.fn.nag.settings,c),w=v.className,x=v.selector,y=v.error,z=v.namespace,A="."+z,B=z+"-module",C=a(this),D=C.find(x.close),E=a(v.context),F=this,G=C.data(B),H=b.requestAnimationFrame||b.mozRequestAnimationFrame||b.webkitRequestAnimationFrame||b.msRequestAnimationFrame||function(a){setTimeout(a,0)};u={initialize:function(){u.verbose("Initializing element"),m=C.offset(),n=C.outerHeight(),o=E.outerWidth(),p=E.outerHeight(),q=E.offset(),C.data(B,u),D.on("click"+A,u.dismiss),v.context==b&&"fixed"==v.position&&C.addClass(w.fixed),v.sticky&&(u.verbose("Adding scroll events"),"absolute"==v.position?E.on("scroll"+A,u.event.scroll).on("resize"+A,u.event.scroll):a(b).on("scroll"+A,u.event.scroll).on("resize"+A,u.event.scroll),a.proxy(u.event.scroll,this)()),v.displayTime>0&&setTimeout(u.hide,v.displayTime),u.should.show()?C.is(":visible")||u.show():u.hide()},destroy:function(){u.verbose("Destroying instance"),C.removeData(B).off(A),v.sticky&&E.off(A)},refresh:function(){u.debug("Refreshing cached calculations"),m=C.offset(),n=C.outerHeight(),o=E.outerWidth(),p=E.outerHeight(),q=E.offset()},show:function(){u.debug("Showing nag",v.animation.show),"fade"==v.animation.show?C.fadeIn(v.duration,v.easing):C.slideDown(v.duration,v.easing)},hide:function(){u.debug("Showing nag",v.animation.hide),"fade"==v.animation.show?C.fadeIn(v.duration,v.easing):C.slideUp(v.duration,v.easing)},onHide:function(){u.debug("Removing nag",v.animation.hide),C.remove(),v.onHide&&v.onHide()},stick:function(){if(u.refresh(),"fixed"==v.position){var c=a(b).prop("pageYOffset")||a(b).scrollTop(),d=C.hasClass(w.bottom)?q.top+(p-n)-c:q.top-c;C.css({position:"fixed",top:d,left:q.left,width:o-v.scrollBarWidth})}else C.css({top:s})},unStick:function(){C.css({top:""})},dismiss:function(a){v.storageMethod&&u.storage.set(v.storedKey,v.storedValue),u.hide(),a.stopImmediatePropagation(),a.preventDefault()},should:{show:function(){return v.persist?(u.debug("Persistent nag is set, can show nag"),!0):u.storage.get(v.storedKey)!=v.storedValue?(u.debug("Stored value is not set, can show nag",u.storage.get(v.storedKey)),!0):(u.debug("Stored value is set, cannot show nag",u.storage.get(v.storedKey)),!1)},stick:function(){return r=E.prop("pageYOffset")||E.scrollTop(),s=C.hasClass(w.bottom)?p-C.outerHeight()+r:r,s>m.top?!0:"fixed"==v.position?!0:!1}},storage:{set:function(c,e){u.debug("Setting stored value",c,e,v.storageMethod),"local"==v.storageMethod&&b.store!==d?b.store.set(c,e):a.cookie!==d?a.cookie(c,e):u.error(y.noStorage)},get:function(c){return u.debug("Getting stored value",c,v.storageMethod),"local"==v.storageMethod&&b.store!==d?b.store.get(c):a.cookie!==d?a.cookie(c):void u.error(y.noStorage)}},event:{scroll:function(){t!==d&&clearTimeout(t),t=setTimeout(function(){u.should.stick()?H(u.stick):u.unStick()},v.lag)}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,v,b);else{if(c===d)return v[b];v[b]=c}},internal:function(b,c){return u.debug("Changing internal",b,c),c===d?u[b]:void(a.isPlainObject(b)?a.extend(!0,u,b):u[b]=c)},debug:function(){v.debug&&(v.performance?u.performance.log(arguments):(u.debug=Function.prototype.bind.call(console.info,console,v.name+":"),u.debug.apply(console,arguments)))},verbose:function(){v.verbose&&v.debug&&(v.performance?u.performance.log(arguments):(u.verbose=Function.prototype.bind.call(console.info,console,v.name+":"),u.verbose.apply(console,arguments)))},error:function(){u.error=Function.prototype.bind.call(console.error,console,v.name+":"),u.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;v.performance&&(b=(new Date).getTime(),d=h||b,c=b-d,h=b,i.push({Element:F,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(u.performance.timer),u.performance.timer=setTimeout(u.performance.display,100)},display:function(){var b=v.name+":",c=0;h=!1,clearTimeout(u.performance.timer),a.each(i,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",g&&(b+=" '"+g+"'"),f.size()>1&&(b+=" ("+f.size()+")"),(console.group!==d||console.table!==d)&&i.length>0&&(console.groupCollapsed(b),console.table?console.table(i):a.each(i,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),i=[]}},invoke:function(b,c,f){var g,h,i,j=G;return c=c||l,f=F||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,c):h!==d&&(i=h),a.isArray(e)?e.push(i):e!==d?e=[e,i]:i!==d&&(e=i),h}},k?(G===d&&u.initialize(),u.invoke(j)):(G!==d&&u.destroy(),u.initialize())}),e!==d?e:this},a.fn.nag.settings={name:"Nag",debug:!1,verbose:!0,performance:!0,namespace:"Nag",persist:!1,displayTime:0,animation:{show:"slide",hide:"slide"},position:"fixed",scrollBarWidth:18,storageMethod:"cookie",storedKey:"nag",storedValue:"dismiss",sticky:!1,lag:0,context:b,error:{noStorage:"Neither $.cookie or store is defined. A storage solution is required for storing state",method:"The method you called is not defined."},className:{bottom:"bottom",fixed:"fixed"},selector:{close:".icon.close"},speed:500,easing:"easeOutQuad",onHide:function(){}}}(jQuery,window,document),function(a,b,c,d){a.fn.popup=function(e){var f,g=a(this),h=a(c),i=g.selector||"",j=(new Date).getTime(),k=[],l=arguments[0],m="string"==typeof l,n=[].slice.call(arguments,1);return g.each(function(){var c,g=a.isPlainObject(e)?a.extend(!0,{},a.fn.popup.settings,e):a.extend({},a.fn.popup.settings),o=g.selector,p=g.className,q=g.error,r=g.metadata,s=g.namespace,t="."+g.namespace,u="module-"+s,v=a(this),w=a(g.context),x=g.target?a(g.target):v,y=a(b),z=g.inline?x.offsetParent():y,A=g.inline?x.next(g.selector.popup):y.children(g.selector.popup).last(),B=0,C=this,D=v.data(u);c={initialize:function(){c.debug("Initializing module",v),"click"==g.on?v.on("click",c.toggle):v.on(c.get.startEvent()+t,c.event.start).on(c.get.endEvent()+t,c.event.end),g.target&&c.debug("Target set to element",x),y.on("resize"+t,c.event.resize),c.instantiate()},instantiate:function(){c.verbose("Storing instance of module",c),D=c,v.data(u,D)},refresh:function(){g.inline?(A=x.next(o.popup),z=x.offsetParent()):A=y.children(o.popup).last()},destroy:function(){c.debug("Destroying previous module"),y.off(t),A.remove(),v.off(t).removeData(u)},event:{start:function(){c.timer=setTimeout(function(){c.is.hidden()&&c.show()},g.delay)},end:function(){clearTimeout(c.timer),c.is.visible()&&c.hide()},resize:function(){c.is.visible()&&c.set.position()}},create:function(){c.debug("Creating pop-up html");var b=v.data(r.html)||g.html,d=v.data(r.variation)||g.variation,e=v.data(r.title)||g.title,f=v.data(r.content)||v.attr("title")||g.content;b||f||e?(b||(b=g.template({title:e,content:f})),A=a("
").addClass(p.popup).addClass(d).html(b),g.inline?(c.verbose("Inserting popup element inline",A),A.data(u,D).insertAfter(v)):(c.verbose("Appending popup element to body",A),A.data(u,D).appendTo(w)),a.proxy(g.onCreate,A)()):c.error(q.content)},toggle:function(){c.debug("Toggling pop-up"),c.is.hidden()?(c.debug("Popup is hidden, showing pop-up"),c.unbind.close(),c.hideAll(),c.show()):(c.debug("Popup is visible, hiding pop-up"),c.hide())},show:function(a){a=a||function(){},c.debug("Showing pop-up",g.transition),g.preserve||c.refresh(),c.exists()||c.create(),c.save.conditions(),c.set.position(),c.animate.show(a)},hide:function(a){a=a||function(){},v.removeClass(p.visible),c.restore.conditions(),c.unbind.close(),c.is.visible()&&c.animate.hide(a)},hideAll:function(){a(o.popup).filter(":visible").popup("hide")},hideGracefully:function(b){b&&0===a(b.target).closest(o.popup).size()?(c.debug("Click occurred outside popup hiding popup"),c.hide()):c.debug("Click was inside popup, keeping popup open")},exists:function(){return g.inline?0!==A.size():A.parent(w).size()},remove:function(){c.debug("Removing popup"),A.remove()},save:{conditions:function(){c.cache={title:v.attr("title")},c.cache.title&&v.removeAttr("title"),c.verbose("Saving original attributes",c.cache.title)}},restore:{conditions:function(){return c.cache&&c.cache.title&&(v.attr("title",c.cache.title),c.verbose("Restoring original attributes",c.cache.title)),!0}},animate:{show:function(b){b=b||function(){},v.addClass(p.visible),g.transition&&a.fn.transition!==d&&v.transition("is supported")?A.transition(g.transition+" in",g.duration,function(){c.bind.close(),a.proxy(b,C)()}):A.stop().fadeIn(g.duration,g.easing,function(){c.bind.close(),a.proxy(b,C)()}),a.proxy(g.onShow,C)()},hide:function(b){b=b||function(){},c.debug("Hiding pop-up"),g.transition&&a.fn.transition!==d&&v.transition("is supported")?A.transition(g.transition+" out",g.duration,function(){c.reset(),b()}):A.stop().fadeOut(g.duration,g.easing,function(){c.reset(),b()}),a.proxy(g.onHide,C)()}},get:{startEvent:function(){return"hover"==g.on?"mouseenter":"focus"==g.on?"focus":void 0},endEvent:function(){return"hover"==g.on?"mouseleave":"focus"==g.on?"blur":void 0},offstagePosition:function(){var d={top:a(b).scrollTop(),bottom:a(b).scrollTop()+a(b).height(),left:0,right:a(b).width()},e={width:A.width(),height:A.outerHeight(),position:A.offset()},f={},g=[];return e.position&&(f={top:e.position.topd.bottom,right:e.position.left+e.width>d.right,left:e.position.left0?g.join(" "):!1},nextPosition:function(a){switch(a){case"top left":a="bottom left";break;case"bottom left":a="top right";break;case"top right":a="bottom right";break;case"bottom right":a="top center";break;case"top center":a="bottom center";break;case"bottom center":a="right center";break;case"right center":a="left center";break;case"left center":a="top center"}return a}},set:{position:function(d,e){var f,h,i=(a(b).width(),a(b).height(),x.outerWidth()),j=x.outerHeight(),k=A.width(),l=A.outerHeight(),m=z.outerWidth(),n=z.outerHeight(),o=g.distanceAway,s=g.inline?x.position():x.offset();switch(d=d||v.data(r.position)||g.position,e=e||v.data(r.offset)||g.offset,g.inline&&("left center"==d||"right center"==d?(e+=parseInt(b.getComputedStyle(C).getPropertyValue("margin-top"),10),o+=-parseInt(b.getComputedStyle(C).getPropertyValue("margin-left"),10)):(e+=parseInt(b.getComputedStyle(C).getPropertyValue("margin-left"),10),o+=parseInt(b.getComputedStyle(C).getPropertyValue("margin-top"),10))),c.debug("Calculating offset for position",d),d){case"top left":f={bottom:n-s.top+o,right:m-s.left-e,top:"auto",left:"auto"};break;case"top center":f={bottom:n-s.top+o,left:s.left+i/2-k/2+e,top:"auto",right:"auto"};break;case"top right":f={top:"auto",bottom:n-s.top+o,left:s.left+i+e,right:"auto"};break;case"left center":f={top:s.top+j/2-l/2+e,right:m-s.left+o,left:"auto",bottom:"auto"};break;case"right center":f={top:s.top+j/2-l/2+e,left:s.left+i+o,bottom:"auto",right:"auto"};break;case"bottom left":f={top:s.top+j+o,right:m-s.left-e,left:"auto",bottom:"auto"};break;case"bottom center":f={top:s.top+j+o,left:s.left+i/2-k/2+e,bottom:"auto",right:"auto"};break;case"bottom right":f={top:s.top+j+o,left:s.left+i+e,bottom:"auto",right:"auto"}}return A.css(f).removeClass(p.position).addClass(d).addClass(p.loading),h=c.get.offstagePosition(),h?(c.debug("Element is outside boundaries",h),B0&&(console.groupCollapsed(b),console.table?console.table(k):a.each(k,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),k=[]}},invoke:function(b,c,e){var g,h,i,j=D;return c=c||n,e=C||e,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(e,c):h!==d&&(i=h),a.isArray(f)?f.push(i):f!==d?f=[f,i]:i!==d&&(f=i),h}},m?(D===d&&c.initialize(),c.invoke(l)):(D!==d&&c.destroy(),c.initialize())}),f!==d?f:this},a.fn.popup.settings={name:"Popup",debug:!1,verbose:!0,performance:!0,namespace:"popup",onCreate:function(){},onShow:function(){},onHide:function(){},variation:"",content:!1,html:!1,title:!1,on:"hover",target:!1,closable:!0,context:"body",position:"top center",delay:150,inline:!1,preserve:!1,duration:250,easing:"easeOutQuint",transition:"scale",distanceAway:0,offset:0,maxSearchDepth:10,error:{content:"Your popup has no content specified",method:"The method you called is not defined.",recursion:"Popup attempted to reposition element to fit, but could not find an adequate position."},metadata:{content:"content",html:"html",offset:"offset",position:"position",title:"title",variation:"variation"},className:{animating:"animating",loading:"loading",popup:"ui popup",position:"top left center bottom right",visible:"visible"},selector:{popup:".ui.popup"},template:function(a){var b="";return typeof a!==d&&(typeof a.title!==d&&a.title&&(b+=''),typeof a.content!==d&&a.content&&(b+=''+a.content+"
")),b}}}(jQuery,window,document),function(a,b,c,d){a.fn.rating=function(b){var c,e=a(this),f=e.selector||"",g=(new Date).getTime(),h=[],i=arguments[0],j="string"==typeof i,k=[].slice.call(arguments,1);return e.each(function(){var l,m=a.isPlainObject(b)?a.extend(!0,{},a.fn.rating.settings,b):a.extend({},a.fn.rating.settings),n=m.namespace,o=m.className,p=m.metadata,q=m.selector,r=(m.error,"."+n),s="module-"+n,t=this,u=a(this).data(s),v=a(this),w=v.find(q.icon);l={initialize:function(){l.verbose("Initializing rating module",m),m.interactive?l.enable():l.disable(),m.initialRating&&(l.debug("Setting initial rating"),l.setRating(m.initialRating)),v.data(p.rating)&&(l.debug("Rating found in metadata"),l.setRating(v.data(p.rating))),l.instantiate()},instantiate:function(){l.verbose("Instantiating module",m),u=l,v.data(s,l)},destroy:function(){l.verbose("Destroying previous instance",u),v.removeData(s),w.off(r)},event:{mouseenter:function(){var b=a(this);b.nextAll().removeClass(o.hover),v.addClass(o.hover),b.addClass(o.hover).prevAll().addClass(o.hover)},mouseleave:function(){v.removeClass(o.hover),w.removeClass(o.hover)},click:function(){var b=a(this),c=l.getRating(),d=w.index(b)+1;m.clearable&&c==d?l.clearRating():l.setRating(d)}},clearRating:function(){l.debug("Clearing current rating"),l.setRating(0)},getRating:function(){var a=w.filter("."+o.active).size();return l.verbose("Current rating retrieved",a),a},enable:function(){l.debug("Setting rating to interactive mode"),w.on("mouseenter"+r,l.event.mouseenter).on("mouseleave"+r,l.event.mouseleave).on("click"+r,l.event.click),v.removeClass(o.disabled)},disable:function(){l.debug("Setting rating to read-only mode"),w.off(r),v.addClass(o.disabled)},setRating:function(b){var c=b-1>=0?b-1:0,d=w.eq(c);v.removeClass(o.hover),w.removeClass(o.hover).removeClass(o.active),b>0&&(l.verbose("Setting current rating to",b),d.addClass(o.active).prevAll().addClass(o.active)),a.proxy(m.onRate,t)(b)},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,m,b);else{if(c===d)return m[b];m[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,l,b);else{if(c===d)return l[b];l[b]=c}},debug:function(){m.debug&&(m.performance?l.performance.log(arguments):(l.debug=Function.prototype.bind.call(console.info,console,m.name+":"),l.debug.apply(console,arguments)))},verbose:function(){m.verbose&&m.debug&&(m.performance?l.performance.log(arguments):(l.verbose=Function.prototype.bind.call(console.info,console,m.name+":"),l.verbose.apply(console,arguments)))},error:function(){l.error=Function.prototype.bind.call(console.error,console,m.name+":"),l.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;m.performance&&(b=(new Date).getTime(),d=g||b,c=b-d,g=b,h.push({Element:t,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(l.performance.timer),l.performance.timer=setTimeout(l.performance.display,100)},display:function(){var b=m.name+":",c=0;g=!1,clearTimeout(l.performance.timer),a.each(h,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",f&&(b+=" '"+f+"'"),e.size()>1&&(b+=" ("+e.size()+")"),(console.group!==d||console.table!==d)&&h.length>0&&(console.groupCollapsed(b),console.table?console.table(h):a.each(h,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),h=[]}},invoke:function(b,e,f){var g,h,i,j=u;return e=e||k,f=t||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,e):h!==d&&(i=h),a.isArray(c)?c.push(i):c!==d?c=[c,i]:i!==d&&(c=i),h}},j?(u===d&&l.initialize(),l.invoke(i)):(u!==d&&l.destroy(),l.initialize())}),c!==d?c:this},a.fn.rating.settings={name:"Rating",namespace:"rating",verbose:!0,debug:!1,performance:!0,initialRating:0,interactive:!0,clearable:!1,onRate:function(){},error:{method:"The method you called is not defined"},metadata:{rating:"rating"},className:{active:"active",disabled:"disabled",hover:"hover",loading:"loading"},selector:{icon:".icon"}}}(jQuery,window,document),function(a,b,c,d){a.fn.search=function(c,e){var f,g=a(this),h=g.selector||"",i=(new Date).getTime(),j=[],k=arguments[0],l="string"==typeof k,m=[].slice.call(arguments,1);return a(this).each(function(){var n,o=a.extend(!0,{},a.fn.search.settings,e),p=o.className,q=o.selector,r=o.error,s=o.namespace,t="."+s,u=s+"-module",v=a(this),w=v.find(q.prompt),x=v.find(q.searchButton),y=v.find(q.results),z=(v.find(q.result),v.find(q.category),this),A=v.data(u);n={initialize:function(){n.verbose("Initializing module");var a=w[0],b=a.oninput!==d?"input":a.onpropertychange!==d?"propertychange":"keyup";w.on("focus"+t,n.event.focus).on("blur"+t,n.event.blur).on("keydown"+t,n.handleKeyboard),o.automatic&&w.on(b+t,n.search.throttle),x.on("click"+t,n.search.query),y.on("click"+t,q.result,n.results.select),n.instantiate()},instantiate:function(){n.verbose("Storing instance of module",n),A=n,v.data(u,n)},destroy:function(){n.verbose("Destroying instance"),v.removeData(u)},event:{focus:function(){v.addClass(p.focus),n.results.show()},blur:function(){n.search.cancel(),v.removeClass(p.focus),n.results.hide()}},handleKeyboard:function(b){var c,d=v.find(q.result),e=v.find(q.category),f=b.which,g={backspace:8,enter:13,escape:27,upArrow:38,downArrow:40},h=p.active,i=d.index(d.filter("."+h)),j=d.size();if(f==g.escape&&(n.verbose("Escape key pressed, blurring search field"),w.trigger("blur")),y.filter(":visible").size()>0)if(f==g.enter){if(n.verbose("Enter key pressed, selecting active result"),d.filter("."+h).exists())return a.proxy(n.results.select,d.filter("."+h))(),b.preventDefault(),!1}else f==g.upArrow?(n.verbose("Up key pressed, changing active result"),c=0>i-1?i:i-1,e.removeClass(h),d.removeClass(h).eq(c).addClass(h).closest(e).addClass(h),b.preventDefault()):f==g.downArrow&&(n.verbose("Down key pressed, changing active result"),c=i+1>=j?i:i+1,e.removeClass(h),d.removeClass(h).eq(c).addClass(h).closest(e).addClass(h),b.preventDefault());else f==g.enter&&(n.verbose("Enter key pressed, executing query"),n.search.query(),x.addClass(p.down),w.one("keyup",function(){x.removeClass(p.down)}))},search:{cancel:function(){var a=v.data("xhr")||!1;a&&"resolved"!=a.state()&&(n.debug("Cancelling last search"),a.abort())},throttle:function(){var a=w.val(),b=a.length;clearTimeout(n.timer),b>=o.minCharacters?n.timer=setTimeout(n.search.query,o.searchThrottle):n.results.hide()},query:function(){var b=w.val(),d=n.search.cache.read(b);d?(n.debug("Reading result for '"+b+"' from cache"),n.results.add(d)):(n.debug("Querying for '"+b+"'"),"object"==typeof c?n.search.local(b):n.search.remote(b),a.proxy(o.onSearchQuery,v)(b))},local:function(b){var d,e=[],f=[],g=a.isArray(o.searchFields)?o.searchFields:[o.searchFields],h=new RegExp("(?:s|^)"+b,"i"),i=new RegExp(b,"i");v.addClass(p.loading),a.each(g,function(b,d){a.each(c,function(b,c){"string"==typeof c[d]&&-1==a.inArray(c,e)&&-1==a.inArray(c,f)&&(h.test(c[d])?e.push(c):i.test(c[d])&&f.push(c))})}),d=n.results.generate({results:a.merge(e,f)}),v.removeClass(p.loading),n.search.cache.write(b,d),n.results.add(d)},remote:function(b){var d,e={stateContext:v,url:c,urlData:{query:b},success:function(a){d=n.results.generate(a),n.search.cache.write(b,d),n.results.add(d)},failure:n.error};n.search.cancel(),n.debug("Executing search"),a.extend(!0,e,o.apiSettings),a.api(e)},cache:{read:function(a){var b=v.data("cache");return o.cache&&"object"==typeof b&&b[a]!==d?b[a]:!1},write:function(a,b){var c=v.data("cache")!==d?v.data("cache"):{};c[a]=b,v.data("cache",c)}}},results:{generate:function(b){n.debug("Generating html from response",b);var c=o.templates[o.type],d="";return a.isPlainObject(b.results)&&!a.isEmptyObject(b.results)||a.isArray(b.results)&&b.results.length>0?(o.maxResults>0&&(b.results=a.makeArray(b.results).slice(0,o.maxResults)),b.results.length>0&&(a.isFunction(c)?d=c(b):n.error(r.noTemplate,!1))):d=n.message(r.noResults,"empty"),a.proxy(o.onResults,v)(b),d},add:function(b){("default"==o.onResultsAdd||"default"==a.proxy(o.onResultsAdd,y)(b))&&y.html(b),n.results.show()},show:function(){0===y.filter(":visible").size()&&w.filter(":focus").size()>0&&""!==y.html()&&(y.stop().fadeIn(200),a.proxy(o.onResultsOpen,y)())},hide:function(){y.filter(":visible").size()>0&&(y.stop().fadeOut(200),a.proxy(o.onResultsClose,y)())},select:function(c){n.debug("Search result selected");var d=a(this),e=d.find(".title"),f=e.html();if("default"==o.onSelect||"default"==a.proxy(o.onSelect,this)(c)){var g=d.find("a[href]").eq(0),h=g.attr("href")||!1,i=g.attr("target")||!1;n.results.hide(),w.val(f),h&&("_blank"==i||c.ctrlKey?b.open(h):b.location.href=h)}}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,o,b);else{if(c===d)return o[b];o[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,n,b);else{if(c===d)return n[b];n[b]=c}},debug:function(){o.debug&&(o.performance?n.performance.log(arguments):(n.debug=Function.prototype.bind.call(console.info,console,o.name+":"),n.debug.apply(console,arguments)))},verbose:function(){o.verbose&&o.debug&&(o.performance?n.performance.log(arguments):(n.verbose=Function.prototype.bind.call(console.info,console,o.name+":"),n.verbose.apply(console,arguments)))},error:function(){n.error=Function.prototype.bind.call(console.error,console,o.name+":"),n.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;o.performance&&(b=(new Date).getTime(),d=i||b,c=b-d,i=b,j.push({Element:z,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(n.performance.timer),n.performance.timer=setTimeout(n.performance.display,100)},display:function(){var b=o.name+":",c=0;i=!1,clearTimeout(n.performance.timer),a.each(j,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",h&&(b+=" '"+h+"'"),g.size()>1&&(b+=" ("+g.size()+")"),(console.group!==d||console.table!==d)&&j.length>0&&(console.groupCollapsed(b),console.table?console.table(j):a.each(j,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),j=[]}},invoke:function(b,c,e){var g,h,i,j=A;return c=c||m,e=z||e,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(e,c):h!==d&&(i=h),a.isArray(f)?f.push(i):f!==d?f=[f,i]:i!==d&&(f=i),h}},l?(A===d&&n.initialize(),n.invoke(k)):(A!==d&&n.destroy(),n.initialize())}),f!==d?f:this},a.fn.search.settings={name:"Search Module",namespace:"search",debug:!1,verbose:!0,performance:!0,onSelect:"default",onResultsAdd:"default",onSearchQuery:function(){},onResults:function(){},onResultsOpen:function(){},onResultsClose:function(){},automatic:"true",type:"simple",minCharacters:3,searchThrottle:300,maxResults:7,cache:!0,searchFields:["title","description"],apiSettings:{},className:{active:"active",down:"down",focus:"focus",empty:"empty",loading:"loading"},error:{noResults:"Your search returned no results",logging:"Error in debug logging, exiting.",noTemplate:"A valid template name was not specified.",serverError:"There was an issue with querying the server.",method:"The method you called is not defined."},selector:{prompt:".prompt",searchButton:".search.button",results:".results",category:".category",result:".result"},templates:{message:function(a,b){var c="";
+return a!==d&&b!==d&&(c+='',c+="empty"==b?'
'+a+'
':'
'+a+"
",c+="
"),c},categories:function(b){var c="";return b.results!==d?(a.each(b.results,function(b,e){e.results!==d&&e.results.length>0&&(c+=''+e.name+"
",a.each(e.results,function(a,b){c+='
',c+='
',b.image!==d&&(c+='
'),c+='
',b.price!==d&&(c+='
'+b.price+"
"),b.title!==d&&(c+='
'+b.title+"
"),b.description!==d&&(c+='
'+b.description+"
"),c+="
"}),c+="
")}),b.resultPage&&(c+=''+b.resultPage.text+" "),c):!1},simple:function(b){var c="";return b.results!==d?(a.each(b.results,function(a,b){c+='',b.image!==d&&(c+=''),c+='',b.price!==d&&(c+='
'+b.price+"
"),b.title!==d&&(c+='
'+b.title+"
"),b.description!==d&&(c+='
'+b.description+"
"),c+="
"}),b.resultPage&&(c+=''+b.resultPage.text+" "),c):!1}}}}(jQuery,window,document),function(a,b,c,d){a.fn.shape=function(b){var e,f=a(this),g=a("body"),h=(new Date).getTime(),i=[],j=arguments[0],k="string"==typeof j,l=[].slice.call(arguments,1);return f.each(function(){var m,n,o,p=f.selector||"",q=a.extend(!0,{},a.fn.shape.settings,b),r=q.namespace,s=q.selector,t=q.error,u=q.className,v="."+r,w="module-"+r,x=a(this),y=x.find(s.sides),z=x.find(s.side),A=!1,B=this,C=x.data(w);o={initialize:function(){o.verbose("Initializing module for",B),o.set.defaultSide(),o.instantiate()},instantiate:function(){o.verbose("Storing instance of module",o),C=o,x.data(w,C)},destroy:function(){o.verbose("Destroying previous module for",B),x.removeData(w).off(v)},refresh:function(){o.verbose("Refreshing selector cache for",B),x=a(B),y=a(this).find(s.shape),z=a(this).find(s.side)},repaint:function(){o.verbose("Forcing repaint event");{var a=y.get(0)||c.createElement("div");a.offsetWidth}},animate:function(b,c){o.verbose("Animating box with properties",b),c=c||function(a){o.verbose("Executing animation callback"),a!==d&&a.stopPropagation(),o.reset(),o.set.active()},a.proxy(q.beforeChange,n[0])(),o.get.transitionEvent()?(o.verbose("Starting CSS animation"),x.addClass(u.animating),o.repaint(),x.addClass(u.animating),m.addClass(u.hidden),y.css(b).one(o.get.transitionEvent(),c),o.set.duration(q.duration)):c()},queue:function(a){o.debug("Queueing animation of",a),y.one(o.get.transitionEvent(),function(){o.debug("Executing queued animation"),setTimeout(function(){x.shape(a)},0)})},reset:function(){o.verbose("Animating states reset"),x.removeClass(u.animating).attr("style","").removeAttr("style"),y.attr("style","").removeAttr("style"),z.attr("style","").removeAttr("style").removeClass(u.hidden),n.removeClass(u.animating).attr("style","").removeAttr("style")},is:{animating:function(){return x.hasClass(u.animating)}},set:{defaultSide:function(){m=x.find("."+q.className.active),n=m.next(s.side).size()>0?m.next(s.side):x.find(s.side).first(),A=!1,o.verbose("Active side set to",m),o.verbose("Next side set to",n)},duration:function(a){a=a||q.duration,a="number"==typeof a?a+"ms":a,o.verbose("Setting animation duration",a),y.add(z).css({"-webkit-transition-duration":a,"-moz-transition-duration":a,"-ms-transition-duration":a,"-o-transition-duration":a,"transition-duration":a})},stageSize:function(){var a=x.clone().addClass(u.loading),b=a.find("."+q.className.active),c=A?a.find(A):b.next(s.side).size()>0?b.next(s.side):a.find(s.side).first(),d={};b.removeClass(u.active),c.addClass(u.active),a.prependTo(g),d={width:c.outerWidth(),height:c.outerHeight()},a.remove(),x.css(d),o.verbose("Resizing stage to fit new content",d)},nextSide:function(a){A=a,n=x.find(a),0===n.size()&&o.error(t.side),o.verbose("Next side manually set to",n)},active:function(){o.verbose("Setting new side to active",n),z.removeClass(u.active),n.addClass(u.active),a.proxy(q.onChange,n[0])(),o.set.defaultSide()}},flip:{up:function(){o.debug("Flipping up",n),o.is.animating()?o.queue("flip up"):(o.set.stageSize(),o.stage.above(),o.animate(o.get.transform.up()))},down:function(){o.debug("Flipping down",n),o.is.animating()?o.queue("flip down"):(o.set.stageSize(),o.stage.below(),o.animate(o.get.transform.down()))},left:function(){o.debug("Flipping left",n),o.is.animating()?o.queue("flip left"):(o.set.stageSize(),o.stage.left(),o.animate(o.get.transform.left()))},right:function(){o.debug("Flipping right",n),o.is.animating()?o.queue("flip right"):(o.set.stageSize(),o.stage.right(),o.animate(o.get.transform.right()))},over:function(){o.debug("Flipping over",n),o.is.animating()?o.queue("flip over"):(o.set.stageSize(),o.stage.behind(),o.animate(o.get.transform.over()))},back:function(){o.debug("Flipping back",n),o.is.animating()?o.queue("flip back"):(o.set.stageSize(),o.stage.behind(),o.animate(o.get.transform.back()))}},get:{transform:{up:function(){var a={y:-((m.outerHeight()-n.outerHeight())/2),z:-(m.outerHeight()/2)};return{transform:"translateY("+a.y+"px) translateZ("+a.z+"px) rotateX(-90deg)"}},down:function(){var a={y:-((m.outerHeight()-n.outerHeight())/2),z:-(m.outerHeight()/2)};return{transform:"translateY("+a.y+"px) translateZ("+a.z+"px) rotateX(90deg)"}},left:function(){var a={x:-((m.outerWidth()-n.outerWidth())/2),z:-(m.outerWidth()/2)};return{transform:"translateX("+a.x+"px) translateZ("+a.z+"px) rotateY(90deg)"}},right:function(){var a={x:-((m.outerWidth()-n.outerWidth())/2),z:-(m.outerWidth()/2)};return{transform:"translateX("+a.x+"px) translateZ("+a.z+"px) rotateY(-90deg)"}},over:function(){var a={x:-((m.outerWidth()-n.outerWidth())/2)};return{transform:"translateX("+a.x+"px) rotateY(180deg)"}},back:function(){var a={x:-((m.outerWidth()-n.outerWidth())/2)};return{transform:"translateX("+a.x+"px) rotateY(-180deg)"}}},transitionEvent:function(){var a,b=c.createElement("element"),e={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(a in e)if(b.style[a]!==d)return e[a]},nextSide:function(){return m.next(s.side).size()>0?m.next(s.side):x.find(s.side).first()}},stage:{above:function(){var a={origin:(m.outerHeight()-n.outerHeight())/2,depth:{active:n.outerHeight()/2,next:m.outerHeight()/2}};o.verbose("Setting the initial animation position as above",n,a),m.css({transform:"rotateY(0deg) translateZ("+a.depth.active+"px)"}),n.addClass(u.animating).css({display:"block",top:a.origin+"px",transform:"rotateX(90deg) translateZ("+a.depth.next+"px)"})},below:function(){var a={origin:(m.outerHeight()-n.outerHeight())/2,depth:{active:n.outerHeight()/2,next:m.outerHeight()/2}};o.verbose("Setting the initial animation position as below",n,a),m.css({transform:"rotateY(0deg) translateZ("+a.depth.active+"px)"}),n.addClass(u.animating).css({display:"block",top:a.origin+"px",transform:"rotateX(-90deg) translateZ("+a.depth.next+"px)"})},left:function(){var a={origin:(m.outerWidth()-n.outerWidth())/2,depth:{active:n.outerWidth()/2,next:m.outerWidth()/2}};o.verbose("Setting the initial animation position as left",n,a),m.css({transform:"rotateY(0deg) translateZ("+a.depth.active+"px)"}),n.addClass(u.animating).css({display:"block",left:a.origin+"px",transform:"rotateY(-90deg) translateZ("+a.depth.next+"px)"})},right:function(){var a={origin:(m.outerWidth()-n.outerWidth())/2,depth:{active:n.outerWidth()/2,next:m.outerWidth()/2}};o.verbose("Setting the initial animation position as left",n,a),m.css({transform:"rotateY(0deg) translateZ("+a.depth.active+"px)"}),n.addClass(u.animating).css({display:"block",left:a.origin+"px",transform:"rotateY(90deg) translateZ("+a.depth.next+"px)"})},behind:function(){var a={origin:(m.outerWidth()-n.outerWidth())/2,depth:{active:n.outerWidth()/2,next:m.outerWidth()/2}};o.verbose("Setting the initial animation position as behind",n,a),m.css({transform:"rotateY(0deg)"}),n.addClass(u.animating).css({display:"block",left:a.origin+"px",transform:"rotateY(-180deg)"})}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,q,b);else{if(c===d)return q[b];q[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,o,b);else{if(c===d)return o[b];o[b]=c}},debug:function(){q.debug&&(q.performance?o.performance.log(arguments):(o.debug=Function.prototype.bind.call(console.info,console,q.name+":"),o.debug.apply(console,arguments)))},verbose:function(){q.verbose&&q.debug&&(q.performance?o.performance.log(arguments):(o.verbose=Function.prototype.bind.call(console.info,console,q.name+":"),o.verbose.apply(console,arguments)))},error:function(){o.error=Function.prototype.bind.call(console.error,console,q.name+":"),o.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;q.performance&&(b=(new Date).getTime(),d=h||b,c=b-d,h=b,i.push({Element:B,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(o.performance.timer),o.performance.timer=setTimeout(o.performance.display,100)},display:function(){var b=q.name+":",c=0;h=!1,clearTimeout(o.performance.timer),a.each(i,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",p&&(b+=" '"+p+"'"),f.size()>1&&(b+=" ("+f.size()+")"),(console.group!==d||console.table!==d)&&i.length>0&&(console.groupCollapsed(b),console.table?console.table(i):a.each(i,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),i=[]}},invoke:function(b,c,f){var g,h,i,j=C;return c=c||l,f=B||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,c):h!==d&&(i=h),a.isArray(e)?e.push(i):e!==d?e=[e,i]:i!==d&&(e=i),h}},k?(C===d&&o.initialize(),o.invoke(j)):(C!==d&&o.destroy(),o.initialize())}),e!==d?e:this},a.fn.shape.settings={name:"Shape",debug:!1,verbose:!0,performance:!0,namespace:"shape",beforeChange:function(){},onChange:function(){},duration:700,error:{side:"You tried to switch to a side that does not exist.",method:"The method you called is not defined"},className:{animating:"animating",hidden:"hidden",loading:"loading",active:"active"},selector:{sides:".sides",side:".side"}}}(jQuery,window,document),function(a,b,c,d){a.fn.sidebar=function(b){var e,f=a(this),g=a("body"),h=a("head"),i=f.selector||"",j=(new Date).getTime(),k=[],l=arguments[0],m="string"==typeof l,n=[].slice.call(arguments,1);return f.each(function(){var o,p=a.isPlainObject(b)?a.extend(!0,{},a.fn.sidebar.settings,b):a.extend({},a.fn.sidebar.settings),q=p.selector,r=p.className,s=p.namespace,t=p.error,u="."+s,v="module-"+s,w=a(this),x=a("style[title="+s+"]"),y=this,z=w.data(v);o={initialize:function(){o.debug("Initializing sidebar",w),o.instantiate()},instantiate:function(){o.verbose("Storing instance of module",o),z=o,w.data(v,o)},destroy:function(){o.verbose("Destroying previous module for",w),w.off(u).removeData(v)},refresh:function(){o.verbose("Refreshing selector cache"),x=a("style[title="+s+"]")},attachEvents:function(b,c){var d=a(b);c=a.isFunction(o[c])?o[c]:o.toggle,d.size()>0?(o.debug("Attaching sidebar events to element",b,c),d.off(u).on("click"+u,c)):o.error(t.notFound)},show:function(b){b=a.isFunction(b)?b:function(){},o.debug("Showing sidebar",b),o.is.closed()?(p.overlay||(p.exclusive&&o.hideAll(),o.pushPage()),o.set.active(),b(),a.proxy(p.onChange,y)(),a.proxy(p.onShow,y)()):o.debug("Sidebar is already visible")},hide:function(b){b=a.isFunction(b)?b:function(){},o.debug("Hiding sidebar",b),o.is.open()&&(p.overlay||(o.pullPage(),o.remove.pushed()),o.remove.active(),b(),a.proxy(p.onChange,y)(),a.proxy(p.onHide,y)())},hideAll:function(){a(q.sidebar).filter(":visible").sidebar("hide")},toggle:function(){o.is.closed()?o.show():o.hide()},pushPage:function(){var a=o.get.direction(),b=o.is.vertical()?w.outerHeight():w.outerWidth();p.useCSS?(o.debug("Using CSS to animate body"),o.add.bodyCSS(a,b),o.set.pushed()):o.animatePage(a,b,o.set.pushed)},pullPage:function(){var a=o.get.direction();p.useCSS?(o.debug("Resetting body position css"),o.remove.bodyCSS()):(o.debug("Resetting body position using javascript"),o.animatePage(a,0)),o.remove.pushed()},animatePage:function(a,b){var c={};c["padding-"+a]=b,o.debug("Using javascript to animate body",c),g.animate(c,p.duration,o.set.pushed)},add:{bodyCSS:function(a,b){var c;a!==r.bottom&&(c='"),h.append(c),o.debug("Adding body css to head",x)}},remove:{bodyCSS:function(){o.debug("Removing body css styles",x),o.refresh(),x.remove()},active:function(){w.removeClass(r.active)},pushed:function(){o.verbose("Removing body push state",o.get.direction()),g.removeClass(r[o.get.direction()]).removeClass(r.pushed)}},set:{active:function(){w.addClass(r.active)},pushed:function(){o.verbose("Adding body push state",o.get.direction()),g.addClass(r[o.get.direction()]).addClass(r.pushed)}},get:{direction:function(){return w.hasClass(r.top)?r.top:w.hasClass(r.right)?r.right:w.hasClass(r.bottom)?r.bottom:r.left},transitionEvent:function(){var a,b=c.createElement("element"),e={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(a in e)if(b.style[a]!==d)return e[a]}},is:{open:function(){return w.is(":animated")||w.hasClass(r.active)},closed:function(){return!o.is.open()},vertical:function(){return w.hasClass(r.top)}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,p,b);else{if(c===d)return p[b];p[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,o,b);else{if(c===d)return o[b];o[b]=c}},debug:function(){p.debug&&(p.performance?o.performance.log(arguments):(o.debug=Function.prototype.bind.call(console.info,console,p.name+":"),o.debug.apply(console,arguments)))},verbose:function(){p.verbose&&p.debug&&(p.performance?o.performance.log(arguments):(o.verbose=Function.prototype.bind.call(console.info,console,p.name+":"),o.verbose.apply(console,arguments)))},error:function(){o.error=Function.prototype.bind.call(console.error,console,p.name+":"),o.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;p.performance&&(b=(new Date).getTime(),d=j||b,c=b-d,j=b,k.push({Element:y,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(o.performance.timer),o.performance.timer=setTimeout(o.performance.display,100)},display:function(){var b=p.name+":",c=0;j=!1,clearTimeout(o.performance.timer),a.each(k,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",i&&(b+=" '"+i+"'"),f.size()>1&&(b+=" ("+f.size()+")"),(console.group!==d||console.table!==d)&&k.length>0&&(console.groupCollapsed(b),console.table?console.table(k):a.each(k,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),k=[]}},invoke:function(b,c,f){var g,h,i,j=z;return c=c||n,f=y||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,c):h!==d&&(i=h),a.isArray(e)?e.push(i):e!==d?e=[e,i]:i!==d&&(e=i),h}},m?(z===d&&o.initialize(),o.invoke(l)):(z!==d&&o.destroy(),o.initialize())}),e!==d?e:this},a.fn.sidebar.settings={name:"Sidebar",namespace:"sidebar",debug:!1,verbose:!0,performance:!0,useCSS:!0,exclusive:!0,overlay:!1,duration:300,onChange:function(){},onShow:function(){},onHide:function(){},className:{active:"active",pushed:"pushed",top:"top",left:"left",right:"right",bottom:"bottom"},selector:{sidebar:".ui.sidebar"},error:{method:"The method you called is not defined.",notFound:"There were no elements that matched the specified selector"}}}(jQuery,window,document),function(a,b,c,d){a.fn.tab=function(c){var e,f,g,h,i,j=a.extend(!0,{},a.fn.tab.settings,c),k=a(this),l=a(j.context).find(j.selector.tabs),m=k.selector||"",n={},o=!0,p=0,q=this,r=(new Date).getTime(),s=[],t=j.className,u=j.metadata,v=j.error,w="."+j.namespace,x="module-"+j.namespace,y=k.data(x),z=arguments[0],A=y!==d&&"string"==typeof z,B=[].slice.call(arguments,1);return h={initialize:function(){if(h.debug("Initializing Tabs",k),j.auto&&(h.verbose("Setting up automatic tab retrieval from server"),j.apiSettings={url:j.path+"/{$tab}"}),j.history){if(h.debug("Initializing page state"),a.address===d)return h.error(v.state),!1;if("hash"==j.historyType&&h.debug("Using hash state change to manage state"),"html5"==j.historyType){if(h.debug("Using HTML5 to manage state"),j.path===!1)return h.error(v.path),!1;a.address.history(!0).state(j.path)}a.address.unbind("change").bind("change",h.event.history.change)}a.isWindow(q)||(h.debug("Attaching tab activation events to element",k),k.on("click"+w,h.event.click)),h.instantiate()},instantiate:function(){h.verbose("Storing instance of module",h),k.data(x,h)},destroy:function(){h.debug("Destroying tabs",k),k.removeData(x).off(w)},event:{click:function(b){var c=a(this).data(u.tab);c!==d?(j.history?(h.verbose("Updating page state",b),a.address.value(c)):(h.verbose("Changing tab without state management",b),h.changeTab(c)),b.preventDefault()):h.debug("No tab specified")},history:{change:function(b){var c=b.pathNames.join("/")||h.get.initialPath(),e=j.templates.determineTitle(c)||!1;h.debug("History change event",c,b),g=b,c!==d&&h.changeTab(c),e&&a.address.title(e)}}},refresh:function(){e&&(h.debug("Refreshing tab",e),h.changeTab(e))},cache:{read:function(a){return a!==d?n[a]:!1},add:function(a,b){a=a||e,h.debug("Adding cached content for",a),n[a]=b},remove:function(a){a=a||e,h.debug("Removing cached content for",a),delete n[a]}},set:{state:function(b){a.address.value(b)}},changeTab:function(c){var d=b.history&&b.history.pushState,i=d&&j.ignoreFirstLoad&&o,k=j.auto||a.isPlainObject(j.apiSettings),l=k&&!i?h.utilities.pathToArray(c):h.get.defaultPathArray(c);c=h.utilities.arrayToPath(l),h.deactivate.all(),a.each(l,function(b,d){var m,n,p,q=l.slice(0,b+1),r=h.utilities.arrayToPath(q),s=h.is.tab(r),t=b+1==l.length,u=h.get.tabElement(r);return h.verbose("Looking for tab",d),s?(h.verbose("Tab was found",d),e=r,f=h.utilities.filterArray(l,q),t?p=!0:(m=l.slice(0,b+2),n=h.utilities.arrayToPath(m),p=!h.is.tab(n),p&&h.verbose("Tab parameters found",m)),p&&k?(i?(h.debug("Ignoring remote content on first tab load",r),o=!1,h.cache.add(c,u.html()),h.activate.all(r),a.proxy(j.onTabInit,u)(r,f,g),a.proxy(j.onTabLoad,u)(r,f,g)):(h.activate.navigation(r),h.content.fetch(r,c)),!1):(h.debug("Opened local tab",r),h.activate.all(r),h.cache.read(r)||(h.cache.add(r,!0),h.debug("First time tab loaded calling tab init"),a.proxy(j.onTabInit,u)(r,f,g)),a.proxy(j.onTabLoad,u)(r,f,g),void 0)):(h.error(v.missingTab,d),!1)})},content:{fetch:function(b,c){var i,k,l=h.get.tabElement(b),m={dataType:"html",stateContext:l,success:function(d){h.cache.add(c,d),h.content.update(b,d),b==e?(h.debug("Content loaded",b),h.activate.tab(b)):h.debug("Content loaded in background",b),a.proxy(j.onTabInit,l)(b,f,g),a.proxy(j.onTabLoad,l)(b,f,g)},urlData:{tab:c}},n=l.data(u.promise)||!1,o=n&&"pending"===n.state();c=c||b,k=h.cache.read(c),j.cache&&k?(h.debug("Showing existing content",c),h.content.update(b,k),h.activate.tab(b),a.proxy(j.onTabLoad,l)(b,f,g)):o?(h.debug("Content is already loading",c),l.addClass(t.loading)):a.api!==d?(console.log(j.apiSettings),i=a.extend(!0,{headers:{"X-Remote":!0}},j.apiSettings,m),h.debug("Retrieving remote content",c,i),a.api(i)):h.error(v.api)},update:function(a,b){h.debug("Updating html for",a);var c=h.get.tabElement(a);c.html(b)}},activate:{all:function(a){h.activate.tab(a),h.activate.navigation(a)},tab:function(a){var b=h.get.tabElement(a);h.verbose("Showing tab content for",b),b.addClass(t.active)},navigation:function(a){var b=h.get.navElement(a);h.verbose("Activating tab navigation for",b,a),b.addClass(t.active)}},deactivate:{all:function(){h.deactivate.navigation(),h.deactivate.tabs()},navigation:function(){k.removeClass(t.active)},tabs:function(){l.removeClass(t.active+" "+t.loading)}},is:{tab:function(a){return a!==d?h.get.tabElement(a).size()>0:!1}},get:{initialPath:function(){return k.eq(0).data(u.tab)||l.eq(0).data(u.tab)},path:function(){return a.address.value()},defaultPathArray:function(a){return h.utilities.pathToArray(h.get.defaultPath(a))},defaultPath:function(a){var b=k.filter("[data-"+u.tab+'^="'+a+'/"]').eq(0),c=b.data(u.tab)||!1;if(c){if(h.debug("Found default tab",c),p0?b:c},tab:function(){return e}},utilities:{filterArray:function(b,c){return a.grep(b,function(b){return-1==a.inArray(b,c)})},last:function(b){return a.isArray(b)?b[b.length-1]:!1},pathToArray:function(a){return a===d&&(a=e),"string"==typeof a?a.split("/"):[a]},arrayToPath:function(b){return a.isArray(b)?b.join("/"):!1}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,j,b);else{if(c===d)return j[b];j[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,h,b);else{if(c===d)return h[b];h[b]=c}},debug:function(){j.debug&&(j.performance?h.performance.log(arguments):(h.debug=Function.prototype.bind.call(console.info,console,j.name+":"),h.debug.apply(console,arguments)))},verbose:function(){j.verbose&&j.debug&&(j.performance?h.performance.log(arguments):(h.verbose=Function.prototype.bind.call(console.info,console,j.name+":"),h.verbose.apply(console,arguments)))},error:function(){h.error=Function.prototype.bind.call(console.error,console,j.name+":"),h.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;j.performance&&(b=(new Date).getTime(),d=r||b,c=b-d,r=b,s.push({Element:q,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(h.performance.timer),h.performance.timer=setTimeout(h.performance.display,100)},display:function(){var b=j.name+":",c=0;r=!1,clearTimeout(h.performance.timer),a.each(s,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",m&&(b+=" '"+m+"'"),(console.group!==d||console.table!==d)&&s.length>0&&(console.groupCollapsed(b),console.table?console.table(s):a.each(s,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),s=[]}},invoke:function(b,c,e){var f,g,h,j=y;return c=c||B,e=q||e,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),f=b.length-1,a.each(b,function(c,e){var h=c!=f?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[h])&&c!=f)j=j[h];else{if(j[h]!==d)return g=j[h],!1;if(!a.isPlainObject(j[e])||c==f)return j[e]!==d?(g=j[e],!1):!1;j=j[e]}})),a.isFunction(g)?h=g.apply(e,c):g!==d&&(h=g),a.isArray(i)?i.push(h):i!==d?i=[i,h]:h!==d&&(i=h),g}},A?(y===d&&h.initialize(),h.invoke(z)):(y!==d&&h.destroy(),h.initialize()),i!==d?i:this},a.tab=function(c){a(b).tab(c)},a.fn.tab.settings={name:"Tab",debug:!1,verbose:!0,performance:!0,namespace:"tab",onTabInit:function(){},onTabLoad:function(){},templates:{determineTitle:function(){}},auto:!1,history:!0,historyType:"hash",path:!1,context:"body",maxDepth:25,ignoreFirstLoad:!1,alwaysRefresh:!1,cache:!0,apiSettings:!1,error:{api:"You attempted to load content without API module",method:"The method you called is not defined",missingTab:"Tab cannot be found",noContent:"The tab you specified is missing a content url.",path:"History enabled, but no path was specified",recursion:"Max recursive depth reached",state:"The state library has not been initialized"},metadata:{tab:"tab",loaded:"loaded",promise:"promise"},className:{loading:"loading",active:"active"},selector:{tabs:".ui.tab"}}}(jQuery,window,document),function(a,b,c,d){a.fn.transition=function(){{var e,f=a(this),g=f.selector||"",h=(new Date).getTime(),i=[],j=arguments,k=j[0],l=[].slice.call(arguments,1),m="string"==typeof k;b.requestAnimationFrame||b.mozRequestAnimationFrame||b.webkitRequestAnimationFrame||b.msRequestAnimationFrame||function(a){setTimeout(a,0)}}return f.each(function(){var b,n,o,p,q,r,s,t,u,v,w=a(this),x=this;v={initialize:function(){b=v.get.settings.apply(x,j),v.verbose("Converted arguments into settings object",b),o=b.error,p=b.className,t=b.namespace,q=b.metadata,u="module-"+t,r=v.get.animationEvent(),s=v.get.animationName(),n=w.data(u)||v,m&&(m=v.invoke(k)),m===!1&&v.animate(),v.instantiate()},instantiate:function(){v.verbose("Storing instance of module",v),w.data(u,n)},destroy:function(){v.verbose("Destroying previous module for",x),w.removeData(u)},refresh:function(){v.verbose("Refreshing display type on next animation"),delete n.displayType},forceRepaint:function(){v.verbose("Forcing element repaint");var a=w.parent(),b=w.next();0===b.size()?w.detach().appendTo(a):w.detach().insertBefore(b)},repaint:function(){v.verbose("Repainting element");x.offsetWidth},animate:function(a){return b=a||b,v.is.supported()?(v.debug("Preparing animation",b.animation),v.is.animating()&&b.queue?(!b.allowRepeats&&v.has.direction()&&v.is.occuring()&&n.queuing!==!0?v.error(o.repeated):v.queue(b.animation),!1):void(v.can.animate?v.set.animating(b.animation):v.error(o.noAnimation,b.animation))):(v.error(o.support),!1)},reset:function(){v.debug("Resetting animation to beginning conditions"),w.off(r),v.restore.conditions(),v.hide(),v.remove.animating()},queue:function(a){v.debug("Queueing animation of",a),n.queuing=!0,w.one(r,function(){n.queuing=!1,v.repaint(),v.animate.apply(this,b)})},complete:function(){v.verbose("CSS animation complete",b.animation),v.is.looping()||(v.is.outward()?(v.verbose("Animation is outward, hiding element"),v.restore.conditions(),v.remove.display(),v.hide(),a.proxy(b.onHide,this)()):v.is.inward()?(v.verbose("Animation is outward, showing element"),v.restore.conditions(),v.show(),a.proxy(b.onShow,this)()):v.restore.conditions(),v.remove.duration(),v.remove.animating()),a.proxy(b.complete,this)()},has:{direction:function(a){return a=a||b.animation,-1!==a.search(p.inward)||-1!==a.search(p.outward)?(v.debug("Direction already set in animation"),!0):!1}},set:{animating:function(a){a=a||b.animation,v.save.conditions(),v.can.transition()&&!v.has.direction()&&v.set.direction(),v.remove.hidden(),v.set.display(),w.addClass(p.animating).addClass(p.transition).addClass(a).one(r,v.complete),v.set.duration(b.duration),v.debug("Starting tween",b.animation,w.attr("class"))},display:function(){var a=v.get.displayType();"block"!==a&&(v.verbose("Setting final visibility to",a),w.css({display:a}))},direction:function(){w.is(":visible")?(v.debug("Automatically determining the direction of animation","Outward"),w.removeClass(p.inward).addClass(p.outward)):(v.debug("Automatically determining the direction of animation","Inward"),w.removeClass(p.outward).addClass(p.inward))},looping:function(){v.debug("Transition set to loop"),w.addClass(p.looping)},duration:function(a){a=a||b.duration,a="number"==typeof a?a+"ms":a,v.verbose("Setting animation duration",a),w.css({"-webkit-animation-duration":a,"-moz-animation-duration":a,"-ms-animation-duration":a,"-o-animation-duration":a,"animation-duration":a})},hidden:function(){w.addClass(p.transition).addClass(p.hidden)},visible:function(){w.addClass(p.transition).addClass(p.visible)}},save:{displayType:function(a){n.displayType=a},transitionExists:function(b,c){a.fn.transition.exists[b]=c,v.verbose("Saving existence of transition",b,c)},conditions:function(){n.cache={className:w.attr("class"),style:w.attr("style")},v.verbose("Saving original attributes",n.cache)}},restore:{conditions:function(){return n.cache===d?!1:(n.cache.className?w.attr("class",n.cache.className):w.removeAttr("class"),n.cache.style?w.attr("style",n.cache.style):"block"===v.get.displayType()&&w.removeAttr("style"),v.is.looping()&&v.remove.looping(),void v.verbose("Restoring original attributes",n.cache))}},remove:{animating:function(){w.removeClass(p.animating)},display:function(){n.displayType!==d&&w.css("display","")},duration:function(){w.css({"-webkit-animation-duration":"","-moz-animation-duration":"","-ms-animation-duration":"","-o-animation-duration":"","animation-duration":""})},hidden:function(){w.removeClass(p.hidden)},visible:function(){w.removeClass(p.visible)},looping:function(){v.debug("Transitions are no longer looping"),w.removeClass(p.looping),v.forceRepaint()}},get:{settings:function(b,c,d){return"object"==typeof b?a.extend(!0,{},a.fn.transition.settings,b):"function"==typeof d?a.extend({},a.fn.transition.settings,{animation:b,complete:d,duration:c}):"string"==typeof c||"number"==typeof c?a.extend({},a.fn.transition.settings,{animation:b,duration:c}):"object"==typeof c?a.extend({},a.fn.transition.settings,c,{animation:b}):"function"==typeof c?a.extend({},a.fn.transition.settings,{animation:b,complete:c}):a.extend({},a.fn.transition.settings,{animation:b})},displayType:function(){return n.displayType===d&&v.can.transition(),n.displayType},transitionExists:function(b){return a.fn.transition.exists[b]},animationName:function(){var a,b=c.createElement("div"),e={animation:"animationName",OAnimation:"oAnimationName",MozAnimation:"mozAnimationName",WebkitAnimation:"webkitAnimationName"};for(a in e)if(b.style[a]!==d)return v.verbose("Determined animation vendor name property",e[a]),e[a];return!1},animationEvent:function(){var a,b=c.createElement("div"),e={animation:"animationend",OAnimation:"oAnimationEnd",MozAnimation:"animationend",WebkitAnimation:"webkitAnimationEnd"};for(a in e)if(b.style[a]!==d)return v.verbose("Determined animation vendor end event",e[a]),e[a];return!1}},can:{animate:function(){return"none"!==w.css(b.animation)?(v.debug("CSS definition found",w.css(b.animation)),!0):(v.debug("Unable to find css definition",w.attr("class")),!1)},transition:function(){var c,e,f,g,h=w.attr("class"),i=b.animation,j=v.get.transitionExists(b.animation);return(j===d||n.displayType===d)&&(v.verbose("Determining whether animation exists"),c=a("").addClass(h).appendTo(a("body")),e=c.removeClass(p.inward).removeClass(p.outward).addClass(p.animating).addClass(p.transition).addClass(i).css(s),f=c.addClass(p.inward).css(s),g=c.attr("class",h).show().css("display"),v.verbose("Determining final display state",g),e!=f?(v.debug("Transition exists for animation",i),j=!0):(v.debug("Static animation found",i,g),j=!1),c.remove(),v.save.displayType(g),v.save.transitionExists(i,j)),j}},is:{animating:function(){return w.hasClass(p.animating)},inward:function(){return w.hasClass(p.inward)},outward:function(){return w.hasClass(p.outward)},looping:function(){return w.hasClass(p.looping)},occuring:function(a){return a=a||b.animation,w.hasClass(a)},visible:function(){return w.is(":visible")},supported:function(){return s!==!1&&r!==!1}},hide:function(){v.verbose("Hiding element"),v.remove.visible(),v.set.hidden(),v.repaint()},show:function(a){v.verbose("Showing element",a),v.remove.hidden(),v.set.visible(),v.repaint()},start:function(){v.verbose("Starting animation"),w.removeClass(p.disabled)},stop:function(){v.debug("Stopping animation"),w.addClass(p.disabled)},toggle:function(){v.debug("Toggling play status"),w.toggleClass(p.disabled)},setting:function(c,e){if(a.isPlainObject(c))a.extend(!0,b,c);else{if(e===d)return b[c];b[c]=e}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,v,b);else{if(c===d)return v[b];
+v[b]=c}},debug:function(){b.debug&&(b.performance?v.performance.log(arguments):(v.debug=Function.prototype.bind.call(console.info,console,b.name+":"),v.debug.apply(console,arguments)))},verbose:function(){b.verbose&&b.debug&&(b.performance?v.performance.log(arguments):(v.verbose=Function.prototype.bind.call(console.info,console,b.name+":"),v.verbose.apply(console,arguments)))},error:function(){v.error=Function.prototype.bind.call(console.error,console,b.name+":"),v.error.apply(console,arguments)},performance:{log:function(a){var c,d,e;b.performance&&(c=(new Date).getTime(),e=h||c,d=c-e,h=c,i.push({Element:x,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":d})),clearTimeout(v.performance.timer),v.performance.timer=setTimeout(v.performance.display,100)},display:function(){var c=b.name+":",e=0;h=!1,clearTimeout(v.performance.timer),a.each(i,function(a,b){e+=b["Execution Time"]}),c+=" "+e+"ms",g&&(c+=" '"+g+"'"),f.size()>1&&(c+=" ("+f.size()+")"),(console.group!==d||console.table!==d)&&i.length>0&&(console.groupCollapsed(c),console.table?console.table(i):a.each(i,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),i=[]}},invoke:function(b,c,f){var g,h,i,j=n;return c=c||l,f=x||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,c):h!==d&&(i=h),a.isArray(e)?e.push(i):e!==d?e=[e,i]:i!==d&&(e=i),h||!1}},v.initialize()}),e!==d?e:this},a.fn.transition.exists={},a.fn.transition.settings={name:"Transition",debug:!1,verbose:!0,performance:!0,namespace:"transition",complete:function(){},onShow:function(){},onHide:function(){},allowRepeats:!1,animation:"fade",duration:"700ms",queue:!0,className:{animating:"animating",disabled:"disabled",hidden:"hidden",inward:"in",loading:"loading",looping:"looping",outward:"out",transition:"ui transition",visible:"visible"},error:{noAnimation:"There is no css animation matching the one you specified.",repeated:"That animation is already occurring, cancelling repeated animation",method:"The method you called is not defined",support:"This browser does not support CSS animations"}}}(jQuery,window,document),function(a,b,c,d){a.fn.video=function(b){var c,e=a(this),f=e.selector||"",g=(new Date).getTime(),h=[],i=arguments[0],j="string"==typeof i,k=[].slice.call(arguments,1);return e.each(function(){var l,m=a.isPlainObject(b)?a.extend(!0,{},a.fn.video.settings,b):a.extend({},a.fn.video.settings),n=m.selector,o=m.className,p=m.error,q=m.metadata,r=m.namespace,s="."+r,t="module-"+r,u=a(this),v=u.find(n.placeholder),w=u.find(n.playButton),x=u.find(n.embed),y=this,z=u.data(t);l={initialize:function(){l.debug("Initializing video"),v.on("click"+s,l.play),w.on("click"+s,l.play),l.instantiate()},instantiate:function(){l.verbose("Storing instance of module",l),z=l,u.data(t,l)},destroy:function(){l.verbose("Destroying previous instance of video"),u.removeData(t).off(s),v.off(s),w.off(s)},change:function(a,b,c){l.debug("Changing video to ",a,b,c),u.data(q.source,a).data(q.id,b).data(q.url,c),m.onChange()},reset:function(){l.debug("Clearing video embed and showing placeholder"),u.removeClass(o.active),x.html(" "),v.show(),m.onReset()},play:function(){l.debug("Playing video");var a=u.data(q.source)||!1,b=u.data(q.url)||!1,c=u.data(q.id)||!1;x.html(l.generate.html(a,c,b)),u.addClass(o.active),m.onPlay()},generate:{html:function(a,b,c){l.debug("Generating embed html");var d,e="auto"==m.width?u.width():m.width,f="auto"==m.height?u.height():m.height;return a&&b?"vimeo"==a?d='
':"youtube"==a&&(d='
VIDEO '):c?d='
':l.error(p.noVideo),d},url:function(a){var b=m.api?1:0,c=m.autoplay?1:0,d=m.hd?1:0,e=m.showUI?1:0,f=m.showUI?0:1,g="";return"vimeo"==a&&(g="api="+b+"&title="+e+"&byline="+e+"&portrait="+e+"&autoplay="+c,m.color&&(g+="&color="+m.color)),"ustream"==a?(g="autoplay="+c,m.color&&(g+="&color="+m.color)):"youtube"==a&&(g="enablejsapi="+b+"&autoplay="+c+"&autohide="+f+"&hq="+d+"&modestbranding=1",m.color&&(g+="&color="+m.color)),g}},setting:function(b,c){if(a.isPlainObject(b))a.extend(!0,m,b);else{if(c===d)return m[b];m[b]=c}},internal:function(b,c){if(a.isPlainObject(b))a.extend(!0,l,b);else{if(c===d)return l[b];l[b]=c}},debug:function(){m.debug&&(m.performance?l.performance.log(arguments):(l.debug=Function.prototype.bind.call(console.info,console,m.name+":"),l.debug.apply(console,arguments)))},verbose:function(){m.verbose&&m.debug&&(m.performance?l.performance.log(arguments):(l.verbose=Function.prototype.bind.call(console.info,console,m.name+":"),l.verbose.apply(console,arguments)))},error:function(){l.error=Function.prototype.bind.call(console.error,console,m.name+":"),l.error.apply(console,arguments)},performance:{log:function(a){var b,c,d;m.performance&&(b=(new Date).getTime(),d=g||b,c=b-d,g=b,h.push({Element:y,Name:a[0],Arguments:[].slice.call(a,1)||"","Execution Time":c})),clearTimeout(l.performance.timer),l.performance.timer=setTimeout(l.performance.display,100)},display:function(){var b=m.name+":",c=0;g=!1,clearTimeout(l.performance.timer),a.each(h,function(a,b){c+=b["Execution Time"]}),b+=" "+c+"ms",f&&(b+=" '"+f+"'"),e.size()>1&&(b+=" ("+e.size()+")"),(console.group!==d||console.table!==d)&&h.length>0&&(console.groupCollapsed(b),console.table?console.table(h):a.each(h,function(a,b){console.log(b.Name+": "+b["Execution Time"]+"ms")}),console.groupEnd()),h=[]}},invoke:function(b,e,f){var g,h,i,j=z;return e=e||k,f=y||f,"string"==typeof b&&j!==d&&(b=b.split(/[\. ]/),g=b.length-1,a.each(b,function(c,e){var f=c!=g?e+b[c+1].charAt(0).toUpperCase()+b[c+1].slice(1):b;if(a.isPlainObject(j[f])&&c!=g)j=j[f];else{if(j[f]!==d)return h=j[f],!1;if(!a.isPlainObject(j[e])||c==g)return j[e]!==d?(h=j[e],!1):!1;j=j[e]}})),a.isFunction(h)?i=h.apply(f,e):h!==d&&(i=h),a.isArray(c)?c.push(i):c!==d?c=[c,i]:i!==d&&(c=i),h}},j?(z===d&&l.initialize(),l.invoke(i)):(z!==d&&l.destroy(),l.initialize())}),c!==d?c:this},a.fn.video.settings={name:"Video",namespace:"video",debug:!1,verbose:!0,performance:!0,metadata:{source:"source",id:"id",url:"url"},onPlay:function(){},onReset:function(){},onChange:function(){},onPause:function(){},onStop:function(){},width:"auto",height:"auto",autoplay:!1,color:"#442359",hd:!0,showUI:!1,api:!0,error:{noVideo:"No video specified",method:"The method you called is not defined"},className:{active:"active"},selector:{embed:".embed",placeholder:".placeholder",playButton:".play"}}}(jQuery,window,document);
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/collections/breadcrumb.css b/css/semantic/rtl/uncompressed/collections/breadcrumb.css
new file mode 100644
index 0000000..4577dd5
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/collections/breadcrumb.css
@@ -0,0 +1,81 @@
+/*
+ * # Semantic - Breadcrumb
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Breadcrumb
+*******************************/
+
+.ui.breadcrumb {
+ margin: 1em 0em;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.ui.breadcrumb:first-child {
+ margin-top: 0em;
+}
+
+.ui.breadcrumb:last-child {
+ margin-bottom: 0em;
+}
+
+/*******************************
+ Content
+*******************************/
+
+.ui.breadcrumb .divider {
+ display: inline-block;
+ opacity: 0.5;
+ margin: 0em 0.15em 0em;
+ font-size: 1em;
+ color: rgba(0, 0, 0, 0.3);
+}
+
+.ui.breadcrumb a.section {
+ cursor: pointer;
+}
+
+.ui.breadcrumb .section {
+ display: inline-block;
+ margin: 0em;
+ padding: 0em;
+}
+
+/* Loose Coupling */
+
+.ui.breadcrumb.segment {
+ display: inline-block;
+ padding: 0.5em 1em;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.breadcrumb .active.section {
+ font-weight: bold;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.small.breadcrumb {
+ font-size: 0.75em;
+}
+
+.ui.large.breadcrumb {
+ font-size: 1.1em;
+}
+
+.ui.huge.breadcrumb {
+ font-size: 1.3em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/collections/form.css b/css/semantic/rtl/uncompressed/collections/form.css
new file mode 100644
index 0000000..e214d9d
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/collections/form.css
@@ -0,0 +1,627 @@
+/*
+ * # Semantic - Form
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------------
+ Form
+---------------------*/
+
+.ui.form {
+ position: relative;
+ max-width: 100%;
+}
+
+.ui.form :first-child {
+ margin-top: 0em;
+}
+
+.ui.form :last-child {
+ margin-bottom: 0em;
+}
+
+/*--------------------
+ Content
+---------------------*/
+
+.ui.form > p {
+ margin: 1em 0;
+}
+
+/*--------------------
+ Field
+---------------------*/
+
+.ui.form .field {
+ clear: both;
+ margin: 0em 0em 1em;
+}
+
+/*--------------------
+ Labels
+---------------------*/
+
+.ui.form .field > label {
+ margin: 0em 0em 0.3em;
+ display: block;
+ color: #555555;
+ font-size: 0.875em;
+}
+
+/*--------------------
+ Standard Inputs
+---------------------*/
+
+.ui.form textarea,
+.ui.form input[type="text"],
+.ui.form input[type="email"],
+.ui.form input[type="date"],
+.ui.form input[type="password"],
+.ui.form input[type="number"],
+.ui.form input[type="url"],
+.ui.form input[type="tel"],
+.ui.form .ui.input {
+ width: 100%;
+}
+
+.ui.form textarea,
+.ui.form input[type="text"],
+.ui.form input[type="email"],
+.ui.form input[type="date"],
+.ui.form input[type="password"],
+.ui.form input[type="number"],
+.ui.form input[type="url"],
+.ui.form input[type="tel"] {
+ margin: 0em;
+ padding: 0.65em 1em;
+ font-size: 1em;
+ background-color: #FFFFFF;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ outline: none;
+ color: rgba(0, 0, 0, 0.7);
+ border-radius: 0.3125em;
+ -webkit-transition: background-color 0.3s ease-out, -webkit-box-shadow 0.2s ease, border-color 0.2s ease;
+ -moz-transition: background-color 0.3s ease-out, box-shadow 0.2s ease, border-color 0.2s ease;
+ transition: background-color 0.3s ease-out, box-shadow 0.2s ease, border-color 0.2s ease;
+ -webkit-box-shadow: 0em 0em 0em 0em rgba(0, 0, 0, 0.3) inset;
+ box-shadow: 0em 0em 0em 0em rgba(0, 0, 0, 0.3) inset;
+ -webkit-appearance: none;
+ -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.textarea,
+.ui.form textarea {
+ line-height: 1.33;
+ min-height: 8em;
+ height: 12em;
+ max-height: 24em;
+ resize: vertical;
+}
+
+.ui.form textarea,
+.ui.form input[type="checkbox"] {
+ vertical-align: top;
+}
+
+/*--------------------
+ Dividers
+---------------------*/
+
+.ui.form .divider {
+ clear: both;
+ margin: 1em 0em;
+}
+
+/*--------------------
+ Types of Messages
+---------------------*/
+
+.ui.form .info.message,
+.ui.form .warning.message,
+.ui.form .error.message {
+ display: none;
+}
+
+/* Assumptions */
+
+.ui.form .message:first-child {
+ margin-top: 0px;
+}
+
+/*--------------------
+ Validation Prompt
+---------------------*/
+
+.ui.form .field .prompt.label {
+ white-space: nowrap;
+}
+
+.ui.form .inline.field .prompt {
+ margin-top: 0em;
+ margin-right: 1em;
+}
+
+.ui.form .inline.field .prompt:before {
+ margin-top: -0.3em;
+ bottom: auto;
+ left: auto;
+ top: 50%;
+ right: 0em;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------------
+ Focus
+---------------------*/
+
+.ui.form input[type="text"]:focus,
+.ui.form input[type="email"]:focus,
+.ui.form input[type="date"]:focus,
+.ui.form input[type="password"]:focus,
+.ui.form input[type="number"]:focus,
+.ui.form input[type="url"]:focus,
+.ui.form input[type="tel"]:focus,
+.ui.form textarea:focus {
+ color: rgba(0, 0, 0, 0.85);
+ border-color: rgba(0, 0, 0, 0.2);
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ -webkit-appearance: none;
+ -webkit-box-shadow: 0.3em 0em 0em 0em rgba(0, 0, 0, 0.2) inset;
+ box-shadow: 0.3em 0em 0em 0em rgba(0, 0, 0, 0.2) inset;
+}
+
+/*--------------------
+ Error
+---------------------*/
+
+/* On Form */
+
+.ui.form.warning .warning.message {
+ display: block;
+}
+
+/*--------------------
+ Warning
+---------------------*/
+
+/* On Form */
+
+.ui.form.error .error.message {
+ display: block;
+}
+
+/* On Field(s) */
+
+.ui.form .fields.error .field label,
+.ui.form .field.error label,
+.ui.form .fields.error .field .input,
+.ui.form .field.error .input {
+ color: #D95C5C;
+}
+
+.ui.form .fields.error .field .corner.label,
+.ui.form .field.error .corner.label {
+ border-color: #D95C5C;
+ color: #FFFFFF;
+}
+
+.ui.form .fields.error .field textarea,
+.ui.form .fields.error .field input[type="text"],
+.ui.form .fields.error .field input[type="email"],
+.ui.form .fields.error .field input[type="date"],
+.ui.form .fields.error .field input[type="password"],
+.ui.form .fields.error .field input[type="number"],
+.ui.form .fields.error .field input[type="url"],
+.ui.form .fields.error .field input[type="tel"],
+.ui.form .field.error textarea,
+.ui.form .field.error input[type="text"],
+.ui.form .field.error input[type="email"],
+.ui.form .field.error input[type="date"],
+.ui.form .field.error input[type="password"],
+.ui.form .field.error input[type="number"],
+.ui.form .field.error input[type="url"],
+.ui.form .field.error input[type="tel"] {
+ background-color: #FFFAFA;
+ border-color: #E7BEBE;
+ border-right: none;
+ color: #D95C5C;
+ padding-right: 1.2em;
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+ -webkit-box-shadow: 0.3em 0em 0em 0em #D95C5C inset;
+ box-shadow: 0.3em 0em 0em 0em #D95C5C inset;
+}
+
+.ui.form .field.error textarea:focus,
+.ui.form .field.error input[type="text"]:focus,
+.ui.form .field.error input[type="email"]:focus,
+.ui.form .field.error input[type="date"]:focus,
+.ui.form .field.error input[type="password"]:focus,
+.ui.form .field.error input[type="number"]:focus,
+.ui.form .field.error input[type="url"]:focus,
+.ui.form .field.error input[type="tel"]:focus {
+ border-color: #ff5050;
+ color: #ff5050;
+ -webkit-appearance: none;
+ -webkit-box-shadow: 0.3em 0em 0em 0em #FF5050 inset;
+ box-shadow: 0.3em 0em 0em 0em #FF5050 inset;
+}
+
+/*----------------------------
+ Dropdown Selection Warning
+-----------------------------*/
+
+.ui.form .fields.error .field .ui.dropdown,
+.ui.form .fields.error .field .ui.dropdown .item,
+.ui.form .field.error .ui.dropdown,
+.ui.form .field.error .ui.dropdown .item {
+ background-color: #FFFAFA;
+ color: #D95C5C;
+}
+
+.ui.form .fields.error .field .ui.dropdown,
+.ui.form .field.error .ui.dropdown {
+ -webkit-box-shadow: 0px 0px 0px 1px #E7BEBE !important;
+ box-shadow: 0px 0px 0px 1px #E7BEBE !important;
+}
+
+.ui.form .fields.error .field .ui.dropdown:hover,
+.ui.form .field.error .ui.dropdown:hover {
+ -webkit-box-shadow: 0px 0px 0px 1px #E7BEBE !important;
+ box-shadow: 0px 0px 0px 1px #E7BEBE !important;
+}
+
+.ui.form .fields.error .field .ui.dropdown:hover .menu,
+.ui.form .field.error .ui.dropdown:hover .menu {
+ -webkit-box-shadow: 0px 1px 0px 1px #E7BEBE;
+ box-shadow: 0px 1px 0px 1px #E7BEBE;
+}
+
+.ui.form .fields.error .field .ui.dropdown .menu .item:hover,
+.ui.form .field.error .ui.dropdown .menu .item:hover {
+ background-color: #FFF2F2;
+}
+
+.ui.form .fields.error .field .ui.dropdown .menu .active.item,
+.ui.form .field.error .ui.dropdown .menu .active.item {
+ background-color: #FDCFCF !important;
+}
+
+/*--------------------
+ Empty (Placeholder)
+---------------------*/
+
+/* browsers require these rules separate */
+
+.ui.form ::-webkit-input-placeholder {
+ color: #AAAAAA;
+}
+
+.ui.form ::-moz-placeholder {
+ color: #AAAAAA;
+}
+
+.ui.form :focus::-webkit-input-placeholder {
+ color: #999999;
+}
+
+.ui.form :focus::-moz-placeholder {
+ color: #999999;
+}
+
+/* Error Placeholder */
+
+.ui.form .error ::-webkit-input-placeholder {
+ color: rgba(255, 80, 80, 0.4);
+}
+
+.ui.form .error ::-moz-placeholder {
+ color: rgba(255, 80, 80, 0.4);
+}
+
+.ui.form .error :focus::-webkit-input-placeholder {
+ color: rgba(255, 80, 80, 0.7);
+}
+
+.ui.form .error :focus::-moz-placeholder {
+ color: rgba(255, 80, 80, 0.7);
+}
+
+/*--------------------
+ Disabled
+---------------------*/
+
+.ui.form .field :disabled,
+.ui.form .field.disabled {
+ opacity: 0.5;
+}
+
+.ui.form .field.disabled label {
+ opacity: 0.5;
+}
+
+.ui.form .field.disabled :disabled {
+ opacity: 1;
+}
+
+/*--------------------
+ Loading State
+---------------------*/
+
+/* On Form */
+
+.ui.form.loading {
+ position: relative;
+}
+
+.ui.form.loading:after {
+ position: absolute;
+ top: 0%;
+ right: 0%;
+ content: '';
+ width: 100%;
+ height: 100%;
+ background: rgba(255, 255, 255, 0.8) url(../images/loader-large.gif) no-repeat 50% 50%;
+ visibility: visible;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------------
+ Fluid Width
+---------------------*/
+
+.ui.form.fluid {
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*--------------------------
+ Input w/ attached Button
+---------------------------*/
+
+.ui.form input.attached {
+ width: auto;
+}
+
+/*--------------------
+ Date Input
+---------------------*/
+
+.ui.form .date.field > label {
+ position: relative;
+}
+
+.ui.form .date.field > label:after {
+ position: absolute;
+ top: 2em;
+ left: 0.5em;
+ font-family: 'Icons';
+ content: '\f133';
+ font-size: 1.2em;
+ font-weight: normal;
+ color: #CCCCCC;
+}
+
+/*--------------------
+ Inverted Colors
+---------------------*/
+
+.ui.inverted.form label {
+ color: #FFFFFF;
+}
+
+.ui.inverted.form .field.error textarea,
+.ui.inverted.form .field.error input[type="text"],
+.ui.inverted.form .field.error input[type="email"],
+.ui.inverted.form .field.error input[type="date"],
+.ui.inverted.form .field.error input[type="password"],
+.ui.inverted.form .field.error input[type="number"],
+.ui.inverted.form .field.error input[type="url"],
+.ui.inverted.form .field.error input[type="tel"] {
+ background-color: #FFCCCC;
+}
+
+.ui.inverted.form .ui.checkbox label {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.form .ui.checkbox label:hover,
+.ui.inverted.form .ui.checkbox .box:hover {
+ color: #FFFFFF;
+}
+
+/*--------------------
+ Field Groups
+---------------------*/
+
+/* Grouped Vertically */
+
+.ui.form .grouped.fields {
+ margin: 0em 0em 1em;
+}
+
+.ui.form .grouped.fields .field {
+ display: block;
+ float: none;
+ margin: 0.5em 0em;
+ padding: 0em;
+}
+
+/*--------------------
+ Fields
+---------------------*/
+
+/* Split fields */
+
+.ui.form .fields {
+ clear: both;
+}
+
+.ui.form .fields:after {
+ content: ' ';
+ display: block;
+ clear: both;
+ visibility: hidden;
+ line-height: 0;
+ height: 0;
+}
+
+.ui.form .fields > .field {
+ clear: none;
+ float: right;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.form .fields > .field:first-child {
+ border-right: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* Other Combinations */
+
+.ui.form .two.fields > .fields,
+.ui.form .two.fields > .field {
+ width: 50%;
+ padding-right: 1%;
+ padding-left: 1%;
+}
+
+.ui.form .three.fields > .fields,
+.ui.form .three.fields > .field {
+ width: 33.333%;
+ padding-right: 1%;
+ padding-left: 1%;
+}
+
+.ui.form .four.fields > .fields,
+.ui.form .four.fields > .field {
+ width: 25%;
+ padding-right: 1%;
+ padding-left: 1%;
+}
+
+.ui.form .five.fields > .fields,
+.ui.form .five.fields > .field {
+ width: 20%;
+ padding-right: 1%;
+ padding-left: 1%;
+}
+
+/* Swap to full width on mobile */
+
+@media only screen and (max-width: 767px) {
+ .ui.form .two.fields > .fields,
+ .ui.form .two.fields > .field,
+ .ui.form .three.fields > .fields,
+ .ui.form .three.fields > .field,
+ .ui.form .four.fields > .fields,
+ .ui.form .four.fields > .field,
+ .ui.form .five.fields > .fields,
+ .ui.form .five.fields > .field {
+ width: 100%;
+ padding-right: 0%;
+ padding-left: 0%;
+ }
+}
+
+.ui.form .fields .field:first-child {
+ padding-right: 0%;
+}
+
+.ui.form .fields .field:last-child {
+ padding-left: 0%;
+}
+
+/*--------------------
+ Inline Fields
+---------------------*/
+
+.ui.form .inline.fields .field {
+ min-height: 1.3em;
+ margin-left: 0.5em;
+}
+
+.ui.form .inline.fields .field > label,
+.ui.form .inline.fields .field > p,
+.ui.form .inline.fields .field > input,
+.ui.form .inline.field > label,
+.ui.form .inline.field > p,
+.ui.form .inline.field > input {
+ display: inline-block;
+ width: auto;
+ margin-top: 0em;
+ margin-bottom: 0em;
+ vertical-align: middle;
+ font-size: 1em;
+}
+
+.ui.form .inline.fields .field > input,
+.ui.form .inline.field > input {
+ font-size: 0.875em;
+}
+
+.ui.form .inline.fields .field > :first-child,
+.ui.form .inline.field > :first-child {
+ margin: 0em 0em 0em 0.5em;
+}
+
+.ui.form .inline.fields .field > :only-child,
+.ui.form .inline.field > :only-child {
+ margin: 0em;
+}
+
+/*--------------------
+ Sizes
+---------------------*/
+
+/* Standard */
+
+.ui.small.form {
+ font-size: 0.875em;
+}
+
+.ui.small.form textarea,
+.ui.small.form input[type="text"],
+.ui.small.form input[type="email"],
+.ui.small.form input[type="date"],
+.ui.small.form input[type="password"],
+.ui.small.form input[type="number"],
+.ui.small.form input[type="url"],
+.ui.small.form input[type="tel"],
+.ui.small.form label {
+ font-size: 1em;
+}
+
+/* Large */
+
+.ui.large.form {
+ font-size: 1.125em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/collections/grid.css b/css/semantic/rtl/uncompressed/collections/grid.css
new file mode 100644
index 0000000..06f7168
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/collections/grid.css
@@ -0,0 +1,902 @@
+/*
+ * # Semantic - Grid
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Grid
+*******************************/
+
+.ui.grid {
+ display: block;
+ text-align: right;
+ font-size: 0em;
+ margin: 0% -1.5%;
+ padding: 0%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+body > .ui.grid {
+ margin-right: 0% !important;
+ margin-left: 0% !important;
+}
+
+.ui.grid:after,
+.ui.row:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+/*-------------------
+ Columns
+--------------------*/
+
+/* Standard 16 column */
+
+.ui.grid > .column,
+.ui.grid > .row > .column {
+ display: inline-block;
+ text-align: right;
+ font-size: 1rem;
+ width: 6.25%;
+ padding-right: 1.5%;
+ padding-left: 1.5%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ vertical-align: top;
+}
+
+/* Vertical padding when no rows */
+
+.ui.grid > .column {
+ margin-top: 1rem;
+ margin-bottom: 1rem;
+}
+
+/*-------------------
+ Rows
+--------------------*/
+
+.ui.grid > .row {
+ display: block;
+ width: 100% !important;
+ margin-top: 1.5%;
+ padding: 1rem 0% 0%;
+ font-size: 0rem;
+}
+
+.ui.grid > .row:first-child {
+ padding-top: 0rem;
+ margin-top: 0rem;
+}
+
+/*-------------------
+ Content
+--------------------*/
+
+.ui.grid > .row > img,
+.ui.grid > .row > .column > img {
+ max-width: 100%;
+}
+
+.ui.grid .column > .ui.segment:only-child {
+ margin: 0em;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-----------------------
+ Page Grid (Responsive)
+-------------------------*/
+
+.ui.page.grid {
+ min-width: 320px;
+ margin-right: 0%;
+ margin-left: 0%;
+}
+
+@media only screen and (max-width: 991px) {
+ .ui.page.grid {
+ padding: 0% 4%;
+ }
+}
+
+@media only screen and (min-width: 992px) {
+ .ui.page.grid {
+ padding: 0% 8%;
+ }
+}
+
+@media only screen and (min-width: 1500px) {
+ .ui.page.grid {
+ padding: 0% 13%;
+ }
+}
+
+@media only screen and (min-width: 1750px) {
+ .ui.page.grid {
+ padding: 0% 18%;
+ }
+}
+
+@media only screen and (min-width: 2000px) {
+ .ui.page.grid {
+ padding: 0% 23%;
+ }
+}
+
+/*-------------------
+ Column Width
+--------------------*/
+
+/* Sizing Combinations */
+
+.ui.grid > .row > .one.wide.column,
+.ui.grid > .column.row > .one.wide.column,
+.ui.grid > .one.wide.column,
+.ui.column.grid > .one.wide.column {
+ width: 6.25%;
+}
+
+.ui.grid > .row > .two.wide.column,
+.ui.grid > .column.row > .two.wide.column,
+.ui.grid > .two.wide.column,
+.ui.column.grid > .two.wide.column {
+ width: 12.5%;
+}
+
+.ui.grid > .row > .three.wide.column,
+.ui.grid > .column.row > .three.wide.column,
+.ui.grid > .three.wide.column,
+.ui.column.grid > .three.wide.column {
+ width: 18.75%;
+}
+
+.ui.grid > .row > .four.wide.column,
+.ui.grid > .column.row > .four.wide.column,
+.ui.grid > .four.wide.column,
+.ui.column.grid > .four.wide.column {
+ width: 25%;
+}
+
+.ui.grid > .row > .five.wide.column,
+.ui.grid > .column.row > .five.wide.column,
+.ui.grid > .five.wide.column,
+.ui.column.grid > .five.wide.column {
+ width: 31.25%;
+}
+
+.ui.grid > .row > .six.wide.column,
+.ui.grid > .column.row > .six.wide.column,
+.ui.grid > .six.wide.column,
+.ui.column.grid > .six.wide.column {
+ width: 37.5%;
+}
+
+.ui.grid > .row > .seven.wide.column,
+.ui.grid > .column.row > .seven.wide.column,
+.ui.grid > .seven.wide.column,
+.ui.column.grid > .seven.wide.column {
+ width: 43.75%;
+}
+
+.ui.grid > .row > .eight.wide.column,
+.ui.grid > .column.row > .eight.wide.column,
+.ui.grid > .eight.wide.column,
+.ui.column.grid > .eight.wide.column {
+ width: 50%;
+}
+
+.ui.grid > .row > .nine.wide.column,
+.ui.grid > .column.row > .nine.wide.column,
+.ui.grid > .nine.wide.column,
+.ui.column.grid > .nine.wide.column {
+ width: 56.25%;
+}
+
+.ui.grid > .row > .ten.wide.column,
+.ui.grid > .column.row > .ten.wide.column,
+.ui.grid > .ten.wide.column,
+.ui.column.grid > .ten.wide.column {
+ width: 62.5%;
+}
+
+.ui.grid > .row > .eleven.wide.column,
+.ui.grid > .column.row > .eleven.wide.column,
+.ui.grid > .eleven.wide.column,
+.ui.column.grid > .eleven.wide.column {
+ width: 68.75%;
+}
+
+.ui.grid > .row > .twelve.wide.column,
+.ui.grid > .column.row > .twelve.wide.column,
+.ui.grid > .twelve.wide.column,
+.ui.column.grid > .twelve.wide.column {
+ width: 75%;
+}
+
+.ui.grid > .row > .thirteen.wide.column,
+.ui.grid > .column.row > .thirteen.wide.column,
+.ui.grid > .thirteen.wide.column,
+.ui.column.grid > .thirteen.wide.column {
+ width: 81.25%;
+}
+
+.ui.grid > .row > .fourteen.wide.column,
+.ui.grid > .column.row > .fourteen.wide.column,
+.ui.grid > .fourteen.wide.column,
+.ui.column.grid > .fourteen.wide.column {
+ width: 87.5%;
+}
+
+.ui.grid > .row > .fifteen.wide.column,
+.ui.grid > .column.row > .fifteen.wide.column,
+.ui.grid > .fifteen.wide.column,
+.ui.column.grid > .fifteen.wide.column {
+ width: 93.75%;
+}
+
+.ui.grid > .row > .sixteen.wide.column,
+.ui.grid > .column.row > .sixteen.wide.column,
+.ui.grid > .sixteen.wide.column,
+.ui.column.grid > .sixteen.wide.column {
+ width: 100%;
+}
+
+/*-------------------
+ Column Count
+--------------------*/
+
+/* Assume full width with one column */
+
+.ui.one.column.grid > .row > .column,
+.ui.one.column.grid > .column,
+.ui.grid > .one.column.row > .column {
+ width: 100%;
+}
+
+.ui.two.column.grid > .row > .column,
+.ui.two.column.grid > .column,
+.ui.grid > .two.column.row > .column {
+ width: 50%;
+}
+
+.ui.three.column.grid > .row > .column,
+.ui.three.column.grid > .column,
+.ui.grid > .three.column.row > .column {
+ width: 33.3333%;
+}
+
+.ui.four.column.grid > .row > .column,
+.ui.four.column.grid > .column,
+.ui.grid > .four.column.row > .column {
+ width: 25%;
+}
+
+.ui.five.column.grid > .row > .column,
+.ui.five.column.grid > .column,
+.ui.grid > .five.column.row > .column {
+ width: 20%;
+}
+
+.ui.six.column.grid > .row > .column,
+.ui.six.column.grid > .column,
+.ui.grid > .six.column.row > .column {
+ width: 16.66667%;
+}
+
+.ui.seven.column.grid > .row > .column,
+.ui.seven.column.grid > .column,
+.ui.grid > .seven.column.row > .column {
+ width: 14.2857%;
+}
+
+.ui.eight.column.grid > .row > .column,
+.ui.eight.column.grid > .column,
+.ui.grid > .eight.column.row > .column {
+ width: 12.5%;
+}
+
+.ui.nine.column.grid > .row > .column,
+.ui.nine.column.grid > .column,
+.ui.grid > .nine.column.row > .column {
+ width: 11.1111%;
+}
+
+.ui.ten.column.grid > .row > .column,
+.ui.ten.column.grid > .column,
+.ui.grid > .ten.column.row > .column {
+ width: 10%;
+}
+
+.ui.eleven.column.grid > .row > .column,
+.ui.eleven.column.grid > .column,
+.ui.grid > .eleven.column.row > .column {
+ width: 9.0909%;
+}
+
+.ui.twelve.column.grid > .row > .column,
+.ui.twelve.column.grid > .column,
+.ui.grid > .twelve.column.row > .column {
+ width: 8.3333%;
+}
+
+.ui.thirteen.column.grid > .row > .column,
+.ui.thirteen.column.grid > .column,
+.ui.grid > .thirteen.column.row > .column {
+ width: 7.6923%;
+}
+
+.ui.fourteen.column.grid > .row > .column,
+.ui.fourteen.column.grid > .column,
+.ui.grid > .fourteen.column.row > .column {
+ width: 7.1428%;
+}
+
+.ui.fifteen.column.grid > .row > .column,
+.ui.fifteen.column.grid > .column,
+.ui.grid > .fifteen.column.row > .column {
+ width: 6.6666%;
+}
+
+.ui.sixteen.column.grid > .row > .column,
+.ui.sixteen.column.grid > .column,
+.ui.grid > .sixteen.column.row > .column {
+ width: 6.25%;
+}
+
+/* Assume full width with one column */
+
+.ui.grid > .column:only-child,
+.ui.grid > .row > .column:only-child {
+ width: 100%;
+}
+
+/*----------------------
+ Relaxed
+-----------------------*/
+
+.ui.relaxed.grid {
+ margin: 0% -2.5%;
+}
+
+.ui.relaxed.grid > .column,
+.ui.relaxed.grid > .row > .column {
+ padding-right: 2.5%;
+ padding-left: 2.5%;
+}
+
+/*----------------------
+ "Floated"
+-----------------------*/
+
+.ui.grid .left.floated.column {
+ float: right;
+}
+
+.ui.grid .right.floated.column {
+ float: left;
+}
+
+/*----------------------
+ Divided
+-----------------------*/
+
+.ui.divided.grid,
+.ui.divided.grid > .row {
+ display: table;
+ width: 100%;
+ margin-right: 0% !important;
+ margin-left: 0% !important;
+}
+
+.ui.divided.grid > .column:not(.row),
+.ui.divided.grid > .row > .column {
+ display: table-cell;
+ -webkit-box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.1), -2px 0px 0px 0px rgba(255, 255, 255, 0.8);
+ box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.1), -2px 0px 0px 0px rgba(255, 255, 255, 0.8);
+}
+
+.ui.divided.grid > .column.row {
+ display: table;
+}
+
+.ui.divided.grid > .column:first-child,
+.ui.divided.grid > .row > .column:first-child {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* Vertically Divided */
+
+.ui.vertically.divided.grid > .row {
+ -webkit-box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1), 0px -2px 0px 0px rgba(255, 255, 255, 0.8) !important;
+ box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1), 0px -2px 0px 0px rgba(255, 255, 255, 0.8) !important;
+}
+
+.ui.vertically.divided.grid > .row > .column,
+.ui.vertically.divided.grid > .column:not(.row),
+.ui.vertically.divided.grid > .row:first-child {
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+/*----------------------
+ Celled
+-----------------------*/
+
+.ui.celled.grid {
+ display: table;
+ width: 100%;
+ margin-right: 0% !important;
+ margin-left: 0% !important;
+ -webkit-box-shadow: 0px 0px 0px 1px #DFDFDF;
+ box-shadow: 0px 0px 0px 1px #DFDFDF;
+}
+
+.ui.celled.grid > .row,
+.ui.celled.grid > .column.row,
+.ui.celled.grid > .column.row:first-child {
+ display: table;
+ width: 100%;
+ margin-top: 0em;
+ padding-top: 0em;
+ -webkit-box-shadow: 0px -1px 0px 0px #dfdfdf;
+ box-shadow: 0px -1px 0px 0px #dfdfdf;
+}
+
+.ui.celled.grid > .column:not(.row),
+.ui.celled.grid > .row > .column {
+ display: table-cell;
+ padding: 0.75em;
+ -webkit-box-shadow: -1px 0px 0px 0px #dfdfdf;
+ box-shadow: -1px 0px 0px 0px #dfdfdf;
+}
+
+.ui.celled.grid > .column:first-child,
+.ui.celled.grid > .row > .column:first-child {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.celled.page.grid {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*----------------------
+ Horizontally Centered
+-----------------------*/
+
+/* Vertical Centered */
+
+.ui.left.aligned.grid,
+.ui.left.aligned.grid > .row > .column,
+.ui.left.aligned.grid > .column,
+.ui.grid .left.aligned.column,
+.ui.grid > .left.aligned.row > .column {
+ text-align: right;
+}
+
+.ui.center.aligned.grid,
+.ui.center.aligned.grid > .row > .column,
+.ui.center.aligned.grid > .column,
+.ui.grid .center.aligned.column,
+.ui.grid > .center.aligned.row > .column {
+ text-align: center;
+}
+
+.ui.right.aligned.grid,
+.ui.right.aligned.grid > .row > .column,
+.ui.right.aligned.grid > .column,
+.ui.grid .right.aligned.column,
+.ui.grid > .right.aligned.row > .column {
+ text-align: left;
+}
+
+.ui.justified.grid,
+.ui.justified.grid > .row > .column,
+.ui.justified.grid > .column,
+.ui.grid .justified.column,
+.ui.grid > .justified.row > .column {
+ text-align: justify;
+ -webkit-hyphens: auto;
+ -moz-hyphens: auto;
+ -ms-hyphens: auto;
+ hyphens: auto;
+}
+
+/*----------------------
+ Vertically Centered
+-----------------------*/
+
+/* Vertical Centered */
+
+.ui.top.aligned.grid,
+.ui.top.aligned.grid > .row > .column,
+.ui.top.aligned.grid > .column,
+.ui.grid .top.aligned.column,
+.ui.grid > .top.aligned.row > .column {
+ vertical-align: top;
+}
+
+.ui.middle.aligned.grid,
+.ui.middle.aligned.grid > .row > .column,
+.ui.middle.aligned.grid > .column,
+.ui.grid .middle.aligned.column,
+.ui.grid > .middle.aligned.row > .column {
+ vertical-align: middle;
+}
+
+.ui.bottom.aligned.grid,
+.ui.bottom.aligned.grid > .row > .column,
+.ui.bottom.aligned.grid > .column,
+.ui.grid .bottom.aligned.column,
+.ui.grid > .bottom.aligned.row > .column {
+ vertical-align: bottom;
+}
+
+/*----------------------
+ Equal Height Columns
+-----------------------*/
+
+.ui.grid > .equal.height.row {
+ display: table;
+ width: 100%;
+}
+
+.ui.grid > .equal.height.row > .column {
+ display: table-cell;
+}
+
+/*----------------------
+ Only (Device)
+-----------------------*/
+
+/* Mobile Only */
+
+@media only screen and (max-width: 767px) {
+ .ui.mobile.only.grid,
+ .ui.grid > .mobile.only.row {
+ display: block !important;
+ }
+
+ .ui.grid > .row > .mobile.only.column {
+ display: inline-block !important;
+ }
+
+ .ui.divided.mobile.only.grid,
+ .ui.celled.mobile.only.grid,
+ .ui.divided.mobile.only.grid .row,
+ .ui.celled.mobile.only.grid .row,
+ .ui.divided.grid .mobile.only.row,
+ .ui.celled.grid .mobile.only.row,
+ .ui.grid .mobile.only.equal.height.row,
+ .ui.mobile.only.grid .equal.height.row {
+ display: table !important;
+ }
+
+ .ui.divided.grid > .row > .mobile.only.column,
+ .ui.celled.grid > .row > .mobile.only.column,
+ .ui.divided.mobile.only.grid > .row > .column,
+ .ui.celled.mobile.only.grid > .row > .column,
+ .ui.divided.mobile.only.grid > .column,
+ .ui.celled.mobile.only.grid > .column {
+ display: table-cell !important;
+ }
+}
+
+@media only screen and (min-width: 768px) {
+ .ui.mobile.only.grid,
+ .ui.grid > .mobile.only.row,
+ .ui.grid > .mobile.only.column,
+ .ui.grid > .row > .mobile.only.column {
+ display: none;
+ }
+}
+
+/* Tablet Only */
+
+@media only screen and (min-width: 768px) and (max-width: 991px) {
+ .ui.tablet.only.grid,
+ .ui.grid > .tablet.only.row {
+ display: block !important;
+ }
+
+ .ui.grid > .row > .tablet.only.column {
+ display: inline-block !important;
+ }
+
+ .ui.divided.tablet.only.grid,
+ .ui.celled.tablet.only.grid,
+ .ui.divided.tablet.only.grid .row,
+ .ui.celled.tablet.only.grid .row,
+ .ui.divided.grid .tablet.only.row,
+ .ui.celled.grid .tablet.only.row,
+ .ui.grid .tablet.only.equal.height.row,
+ .ui.tablet.only.grid .equal.height.row {
+ display: table !important;
+ }
+
+ .ui.divided.grid > .row > .tablet.only.column,
+ .ui.celled.grid > .row > .tablet.only.column,
+ .ui.divided.tablet.only.grid > .row > .column,
+ .ui.celled.tablet.only.grid > .row > .column,
+ .ui.divided.tablet.only.grid > .column,
+ .ui.celled.tablet.only.grid > .column {
+ display: table-cell !important;
+ }
+}
+
+@media only screen and (max-width: 767px), (min-width: 992px) {
+ .ui.tablet.only.grid,
+ .ui.grid > .tablet.only.row,
+ .ui.grid > .tablet.only.column,
+ .ui.grid > .row > .tablet.only.column {
+ display: none;
+ }
+}
+
+/* Computer Only */
+
+@media only screen and (min-width: 992px) {
+ .ui.computer.only.grid,
+ .ui.grid > .computer.only.row {
+ display: block !important;
+ }
+
+ .ui.grid > .row > .computer.only.column {
+ display: inline-block !important;
+ }
+
+ .ui.divided.computer.only.grid,
+ .ui.celled.computer.only.grid,
+ .ui.divided.computer.only.grid .row,
+ .ui.celled.computer.only.grid .row,
+ .ui.divided.grid .computer.only.row,
+ .ui.celled.grid .computer.only.row,
+ .ui.grid .computer.only.equal.height.row,
+ .ui.computer.only.grid .equal.height.row {
+ display: table !important;
+ }
+
+ .ui.divided.grid > .row > .computer.only.column,
+ .ui.celled.grid > .row > .computer.only.column,
+ .ui.divided.computer.only.grid > .row > .column,
+ .ui.celled.computer.only.grid > .row > .column,
+ .ui.divided.computer.only.grid > .column,
+ .ui.celled.computer.only.grid > .column {
+ display: table-cell !important;
+ }
+}
+
+@media only screen and (max-width: 991px) {
+ .ui.computer.only.grid,
+ .ui.grid > .computer.only.row,
+ .ui.grid > .computer.only.column,
+ .ui.grid > .row > .computer.only.column {
+ display: none;
+ }
+}
+
+/*-------------------
+ Doubling
+--------------------*/
+
+/* Mobily Only */
+
+@media only screen and (max-width: 767px) {
+ .ui.two.column.doubling.grid > .row > .column,
+ .ui.two.column.doubling.grid > .column,
+ .ui.grid > .two.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.three.column.doubling.grid > .row > .column,
+ .ui.three.column.doubling.grid > .column,
+ .ui.grid > .three.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.four.column.doubling.grid > .row > .column,
+ .ui.four.column.doubling.grid > .column,
+ .ui.grid > .four.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.five.column.doubling.grid > .row > .column,
+ .ui.five.column.doubling.grid > .column,
+ .ui.grid > .five.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.six.column.doubling.grid > .row > .column,
+ .ui.six.column.doubling.grid > .column,
+ .ui.grid > .six.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.seven.column.doubling.grid > .row > .column,
+ .ui.seven.column.doubling.grid > .column,
+ .ui.grid > .seven.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.eight.column.doubling.grid > .row > .column,
+ .ui.eight.column.doubling.grid > .column,
+ .ui.grid > .eight.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.nine.column.doubling.grid > .row > .column,
+ .ui.nine.column.doubling.grid > .column,
+ .ui.grid > .nine.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.ten.column.doubling.grid > .row > .column,
+ .ui.ten.column.doubling.grid > .column,
+ .ui.grid > .ten.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.twelve.column.doubling.grid > .row > .column,
+ .ui.twelve.column.doubling.grid > .column,
+ .ui.grid > .twelve.column.doubling.row > .column {
+ width: 33.3333333333333%;
+ }
+
+ .ui.fourteen.column.doubling.grid > .row > .column,
+ .ui.fourteen.column.doubling.grid > .column,
+ .ui.grid > .fourteen.column.doubling.row > .column {
+ width: 33.3333333333333%;
+ }
+
+ .ui.sixteen.column.doubling.grid > .row > .column,
+ .ui.sixteen.column.doubling.grid > .column,
+ .ui.grid > .sixteen.column.doubling.row > .column {
+ width: 25%;
+ }
+}
+
+/* Tablet Only */
+
+@media only screen and (min-width: 768px) and (max-width: 991px) {
+ .ui.two.column.doubling.grid > .row > .column,
+ .ui.two.column.doubling.grid > .column,
+ .ui.grid > .two.column.doubling.row > .column {
+ width: 100%;
+ }
+
+ .ui.three.column.doubling.grid > .row > .column,
+ .ui.three.column.doubling.grid > .column,
+ .ui.grid > .three.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.four.column.doubling.grid > .row > .column,
+ .ui.four.column.doubling.grid > .column,
+ .ui.grid > .four.column.doubling.row > .column {
+ width: 50%;
+ }
+
+ .ui.five.column.doubling.grid > .row > .column,
+ .ui.five.column.doubling.grid > .column,
+ .ui.grid > .five.column.doubling.row > .column {
+ width: 33.3333333%;
+ }
+
+ .ui.six.column.doubling.grid > .row > .column,
+ .ui.six.column.doubling.grid > .column,
+ .ui.grid > .six.column.doubling.row > .column {
+ width: 33.3333333%;
+ }
+
+ .ui.eight.column.doubling.grid > .row > .column,
+ .ui.eight.column.doubling.grid > .column,
+ .ui.grid > .eight.column.doubling.row > .column {
+ width: 33.3333333%;
+ }
+
+ .ui.eight.column.doubling.grid > .row > .column,
+ .ui.eight.column.doubling.grid > .column,
+ .ui.grid > .eight.column.doubling.row > .column {
+ width: 25%;
+ }
+
+ .ui.nine.column.doubling.grid > .row > .column,
+ .ui.nine.column.doubling.grid > .column,
+ .ui.grid > .nine.column.doubling.row > .column {
+ width: 25%;
+ }
+
+ .ui.ten.column.doubling.grid > .row > .column,
+ .ui.ten.column.doubling.grid > .column,
+ .ui.grid > .ten.column.doubling.row > .column {
+ width: 20%;
+ }
+
+ .ui.twelve.column.doubling.grid > .row > .column,
+ .ui.twelve.column.doubling.grid > .column,
+ .ui.grid > .twelve.column.doubling.row > .column {
+ width: 16.6666666%;
+ }
+
+ .ui.fourteen.column.doubling.grid > .row > .column,
+ .ui.fourteen.column.doubling.grid > .column,
+ .ui.grid > .fourteen.column.doubling.row > .column {
+ width: 14.28571428571429%;
+ }
+
+ .ui.sixteen.column.doubling.grid > .row > .column,
+ .ui.sixteen.column.doubling.grid > .column,
+ .ui.grid > .sixteen.column.doubling.row > .column {
+ width: 12.5%;
+ }
+}
+
+/*-------------------
+ Stackable
+--------------------*/
+
+@media only screen and (max-width: 767px) {
+ .ui.stackable.grid {
+ display: block !important;
+ padding: 0em;
+ margin: 0em;
+ }
+
+ .ui.stackable.grid > .row > .column,
+ .ui.stackable.grid > .column {
+ display: block !important;
+ width: auto !important;
+ margin: 1em 0em 0em !important;
+ padding: 1em 0em 0em !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+ }
+
+ .ui.stackable.divided.grid .column,
+ .ui.stackable.celled.grid .column {
+ border-top: 1px dotted rgba(0, 0, 0, 0.1);
+ }
+
+ .ui.stackable.grid > .row:first-child > .column:first-child,
+ .ui.stackable.grid > .column:first-child {
+ margin-top: 0em !important;
+ padding-top: 0em !important;
+ }
+
+ .ui.stackable.divided.grid > .row:first-child > .column:first-child,
+ .ui.stackable.celled.grid > .row:first-child > .column:first-child,
+ .ui.stackable.divided.grid > .column:first-child,
+ .ui.stackable.celled.grid > .column:first-child {
+ border-top: none !important;
+ }
+
+ .ui.stackable.page.grid > .row > .column,
+ .ui.stackable.page.grid > .column {
+ padding-right: 1em !important;
+ padding-left: 1em !important;
+ }
+
+ /* Remove pointers from vertical menus */
+
+ .ui.stackable.grid .vertical.pointing.menu .item:after {
+ display: none;
+ }
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/collections/menu.css b/css/semantic/rtl/uncompressed/collections/menu.css
new file mode 100644
index 0000000..6157679
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/collections/menu.css
@@ -0,0 +1,1742 @@
+/*
+ * # Semantic - Menu
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------
+ Menu
+---------------*/
+
+.ui.menu {
+ margin: 1rem 0rem;
+ background-color: #FFFFFF;
+ font-size: 0px;
+ font-weight: normal;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ border-radius: 0.1875rem;
+}
+
+.ui.menu:first-child {
+ margin-top: 0rem;
+}
+
+.ui.menu:last-child {
+ margin-bottom: 0rem;
+}
+
+.ui.menu:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+.ui.menu > .item:first-child {
+ border-radius: 0px 0.1875em 0.1875em 0px;
+}
+
+.ui.menu > .item:last-child {
+ border-radius: 0.1875em 0px 0px 0.1875em;
+}
+
+.ui.menu .item {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ vertical-align: middle;
+ line-height: 1;
+ text-decoration: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-transition: opacity 0.2s ease, background 0.2s ease, -webkit-box-shadow 0.2s ease;
+ -moz-transition: opacity 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
+ transition: opacity 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
+}
+
+/*--------------
+ Colors
+---------------*/
+
+/* Text Color */
+
+.ui.menu .item,
+.ui.menu .item > a:not(.button) {
+ color: rgba(0, 0, 0, 0.75);
+}
+
+.ui.menu .item .item,
+.ui.menu .item .item > a:not(.button) {
+ color: rgba(30, 30, 30, 0.7);
+}
+
+.ui.menu .item .item .item,
+.ui.menu .item .item .item > a:not(.button) {
+ color: rgba(30, 30, 30, 0.6);
+}
+
+.ui.menu .dropdown .menu .item,
+.ui.menu .dropdown .menu .item a:not(.button) {
+ color: rgba(0, 0, 0, 0.75);
+}
+
+/* Hover */
+
+.ui.menu .item .menu a.item:hover,
+.ui.menu .item .menu .link.item:hover {
+ color: rgba(0, 0, 0, 0.85);
+}
+
+.ui.menu .dropdown .menu .item a:not(.button):hover {
+ color: rgba(0, 0, 0, 0.85);
+}
+
+/* Active */
+
+.ui.menu .active.item,
+.ui.menu .active.item a:not(.button) {
+ color: rgba(0, 0, 0, 0.85);
+ border-radius: 0px;
+}
+
+/*--------------
+ Items
+---------------*/
+
+.ui.menu .item {
+ position: relative;
+ display: inline-block;
+ padding: 0.83em 0.95em;
+ border-top: 0em solid rgba(0, 0, 0, 0);
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -moz-user-select: -moz-none;
+ -khtml-user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.ui.menu .menu {
+ margin: 0em;
+}
+
+.ui.menu .item.left,
+.ui.menu .menu.left {
+ float: right;
+}
+
+.ui.menu .item.right,
+.ui.menu .menu.right {
+ float: left;
+}
+
+/*--------------
+ Borders
+---------------*/
+
+.ui.menu .item:before {
+ position: absolute;
+ content: '';
+ top: 0%;
+ right: 0px;
+ width: 1px;
+ height: 100%;
+ background-image: -webkit-gradient(linear, right top, right bottom, from(rgba(0, 0, 0, 0.05)), color-stop(50%, rgba(0, 0, 0, 0.1)), to(rgba(0, 0, 0, 0.05)));
+ background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.1) 50%, rgba(0, 0, 0, 0.05) 100%);
+ background-image: -moz-linear-gradient(rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.1) 50%, rgba(0, 0, 0, 0.05) 100%);
+ background-image: linear-gradient(rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.1) 50%, rgba(0, 0, 0, 0.05) 100%);
+}
+
+.ui.menu > .menu:not(.right):first-child > .item:first-child:before,
+.ui.menu .item:first-child:before {
+ display: none;
+}
+
+.ui.menu .menu.right .item:before,
+.ui.menu .item.right:before {
+ left: auto;
+ right: 0px;
+}
+
+/*--------------
+ Text Content
+---------------*/
+
+.ui.menu .text.item > *,
+.ui.menu .item > p:only-child {
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+ line-height: 1.3;
+ color: rgba(0, 0, 0, 0.6);
+}
+
+.ui.menu .item > p:first-child {
+ margin-top: 0px;
+}
+
+.ui.menu .item > p:last-child {
+ margin-bottom: 0px;
+}
+
+/*--------------
+ Button
+---------------*/
+
+.ui.menu:not(.vertical) .item > .button {
+ position: relative;
+ top: -0.05em;
+ margin: -0.55em 0;
+ padding-bottom: 0.55em;
+ padding-top: 0.55em;
+ font-size: 0.875em;
+}
+
+/*--------------
+ Inputs
+---------------*/
+
+.ui.menu:not(.vertical) .item > .input {
+ margin-top: -0.85em;
+ margin-bottom: -0.85em;
+ padding-top: 0.3em;
+ padding-bottom: 0.3em;
+ width: 100%;
+ vertical-align: top;
+}
+
+.ui.menu .item > .input input {
+ padding-top: 0.35em;
+ padding-bottom: 0.35em;
+}
+
+.ui.vertical.menu .item > .input input {
+ margin: 0em;
+ padding-top: 0.63em;
+ padding-bottom: 0.63em;
+}
+
+/* Action Input */
+
+.ui.menu:not(.vertical) .item > .button.labeled > .icon {
+ padding-top: 0.6em;
+}
+
+.ui.menu:not(.vertical) .item .action.input > .button {
+ font-size: 0.8em;
+ padding: 0.55em 0.8em;
+}
+
+/* Resizes */
+
+.ui.small.menu:not(.vertical) .item > .input input {
+ padding-top: 0.4em;
+ padding-bottom: 0.4em;
+}
+
+.ui.large.menu:not(.vertical) .item > .input input {
+ top: -0.125em;
+ padding-bottom: 0.6em;
+ padding-top: 0.6em;
+}
+
+.ui.large.menu:not(.vertical) .item .action.input > .button {
+ font-size: 0.8em;
+ padding: 0.9em;
+}
+
+.ui.large.menu:not(.vertical) .item .action.input > .button > .icon {
+ padding-top: 0.8em;
+}
+
+/*--------------
+ Header
+---------------*/
+
+.ui.menu .header.item {
+ background-color: rgba(0, 0, 0, 0.04);
+ margin: 0em;
+}
+
+.ui.vertical.menu .header.item {
+ font-weight: bold;
+}
+
+/*--------------
+ Dropdowns
+---------------*/
+
+.ui.menu .dropdown .menu .item .icon {
+ float: none;
+ margin: 0em 0em 0em 0.75em;
+}
+
+.ui.menu .dropdown.item .menu {
+ right: 1px;
+ margin: 0px;
+ min-width: -webkit-calc(99%);
+ min-width: -moz-calc(99%);
+ min-width: calc(99%);
+ -webkit-box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0 1px 1px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.secondary.menu .dropdown.item .menu {
+ right: 0px;
+ min-width: 100%;
+}
+
+.ui.menu .pointing.dropdown.item .menu {
+ margin-top: 0.75em;
+}
+
+.ui.menu .simple.dropdown.item .menu {
+ margin: 0px !important;
+}
+
+.ui.menu .dropdown.item .menu .item {
+ width: 100%;
+ color: rgba(0, 0, 0, 0.75);
+}
+
+.ui.menu .dropdown.item .menu .active.item {
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.ui.menu .ui.dropdown .menu .item:before {
+ display: none;
+}
+
+/*--------------
+ Labels
+---------------*/
+
+.ui.menu .item > .label {
+ background-color: rgba(0, 0, 0, 0.35);
+ color: #FFFFFF;
+ margin: -0.15em 0.5em -0.15em 0em;
+ padding: 0.3em 0.8em;
+ vertical-align: baseline;
+}
+
+.ui.menu .item > .floating.label {
+ padding: 0.3em 0.8em;
+}
+
+/*--------------
+ Images
+---------------*/
+
+.ui.menu .item > img:only-child {
+ display: block;
+ max-width: 100%;
+ margin: 0em auto;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.link.menu .item:hover,
+.ui.menu .link.item:hover,
+.ui.menu a.item:hover,
+.ui.menu .ui.dropdown .menu .item:hover {
+ cursor: pointer;
+ background-color: rgba(0, 0, 0, 0.02);
+}
+
+.ui.menu .ui.dropdown.item.active {
+ background-color: rgba(0, 0, 0, 0.02);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border-bottom-left-radius: 0em;
+ border-bottom-right-radius: 0em;
+}
+
+/*--------------
+ Down
+---------------*/
+
+.ui.link.menu .item:active,
+.ui.menu .link.item:active,
+.ui.menu a.item:active,
+.ui.menu .ui.dropdown .menu .item:active {
+ background-color: rgba(0, 0, 0, 0.05);
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.menu .active.item {
+ background-color: rgba(0, 0, 0, 0.01);
+ color: rgba(0, 0, 0, 0.95);
+ -webkit-box-shadow: 0em 0.2em 0em inset;
+ box-shadow: 0em 0.2em 0em inset;
+}
+
+.ui.vertical.menu .active.item {
+ border-radius: 0em;
+ -webkit-box-shadow: 0.2em 0em 0em inset;
+ box-shadow: 0.2em 0em 0em inset;
+}
+
+.ui.vertical.menu > .active.item:first-child {
+ border-radius: 0.1875em 0em 0em 0em;
+}
+
+.ui.vertical.menu > .active.item:last-child {
+ border-radius: 0em 0em 0em 0.1875em;
+}
+
+.ui.vertical.menu > .active.item:only-child {
+ border-radius: 0.1875em 0em 0em 0.1875em;
+}
+
+.ui.vertical.menu .active.item .menu .active.item {
+ border-right: none;
+}
+
+.ui.vertical.menu .active.item .menu .active.item {
+ padding-right: 1.5rem;
+}
+
+.ui.vertical.menu .item .menu .active.item {
+ background-color: rgba(0, 0, 0, 0.03);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*--------------
+ Disabled
+---------------*/
+
+.ui.menu .item.disabled,
+.ui.menu .item.disabled:hover {
+ cursor: default;
+ color: rgba(0, 0, 0, 0.2);
+ background-color: transparent !important;
+}
+
+/*--------------------
+ Loading
+---------------------*/
+
+/* On Form */
+
+.ui.menu.loading {
+ position: relative;
+}
+
+.ui.menu.loading:after {
+ position: absolute;
+ top: 0%;
+ right: 0%;
+ content: '';
+ width: 100%;
+ height: 100%;
+ background: rgba(255, 255, 255, 0.8) url(../images/loader-large.gif) no-repeat 50% 50%;
+ visibility: visible;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Vertical
+---------------*/
+
+.ui.vertical.menu .item {
+ display: block;
+ height: auto !important;
+ border-top: none;
+ border-right: 0em solid rgba(0, 0, 0, 0);
+ border-left: none;
+}
+
+.ui.vertical.menu > .item:first-child {
+ border-radius: 0.1875em 0.1875em 0px 0px;
+}
+
+.ui.vertical.menu > .item:last-child {
+ border-radius: 0px 0px 0.1875em 0.1875em;
+}
+
+.ui.vertical.menu .item > .label {
+ float: left;
+ text-align: center;
+}
+
+.ui.vertical.menu .item > i.icon {
+ float: left;
+ width: 1.22em;
+ margin: 0em 0.5em 0em 0em;
+}
+
+.ui.vertical.menu .item > .label + i.icon {
+ float: none;
+ margin: 0em 0em 0em 0.25em;
+}
+
+/*--- Border ---*/
+
+.ui.vertical.menu .item:before {
+ position: absolute;
+ content: '';
+ top: 0%;
+ right: 0px;
+ width: 100%;
+ height: 1px;
+ background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.03) 0%, rgba(0, 0, 0, 0.1) 1.5em, rgba(0, 0, 0, 0.03) 100%);
+ background-image: -moz-linear-gradient(right, rgba(0, 0, 0, 0.03) 0%, rgba(0, 0, 0, 0.1) 1.5em, rgba(0, 0, 0, 0.03) 100%);
+ background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.03)), color-stop(1.5em, rgba(0, 0, 0, 0.1)), to(rgba(0, 0, 0, 0.03)));
+ background-image: linear-gradient(to left, rgba(0, 0, 0, 0.03) 0%, rgba(0, 0, 0, 0.1) 1.5em, rgba(0, 0, 0, 0.03) 100%);
+}
+
+.ui.vertical.menu .item:first-child:before {
+ background-image: none !important;
+}
+
+/*--- Dropdown ---*/
+
+.ui.vertical.menu .dropdown.item > i {
+ float: left;
+ content: "\f0da";
+}
+
+.ui.vertical.menu .dropdown.item .menu {
+ top: 0% !important;
+ right: 100%;
+ margin: 0px 1px 0px 0px;
+ -webkit-box-shadow: 0 0px 1px 1px #DDDDDD;
+ box-shadow: 0 0px 1px 1px #DDDDDD;
+}
+
+.ui.vertical.menu .dropdown.item.active {
+ border-top-left-radius: 0em;
+ border-bottom-left-radius: 0em;
+}
+
+.ui.vertical.menu .dropdown.item .menu .item {
+ font-size: 1rem;
+}
+
+.ui.vertical.menu .dropdown.item .menu .item i.icon {
+ margin-left: 0em;
+}
+
+.ui.vertical.menu .dropdown.item.active {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*--- Sub Menu ---*/
+
+.ui.vertical.menu .item > .menu {
+ margin: 0.5em -0.95em 0em;
+}
+
+.ui.vertical.menu .item > .menu > .item {
+ padding: 0.5rem 1.5rem;
+ font-size: 0.875em;
+}
+
+.ui.vertical.menu .item > .menu > .item:before {
+ display: none;
+}
+
+/*--------------
+ Tiered
+---------------*/
+
+.ui.tiered.menu > .sub.menu > .item {
+ color: rgba(0, 0, 0, 0.4);
+}
+
+.ui.tiered.menu > .menu > .item:hover {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.tiered.menu .item.active {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.tiered.menu > .menu .item.active:after {
+ position: absolute;
+ content: '';
+ margin-top: -1px;
+ top: 100%;
+ right: 0px;
+ width: 100%;
+ height: 2px;
+ background-color: #FBFBFB;
+}
+
+.ui.tiered.menu .sub.menu {
+ background-color: rgba(0, 0, 0, 0.01);
+ border-radius: 0em;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ color: #FFFFFF;
+}
+
+.ui.tiered.menu .sub.menu .item {
+ font-size: 0.875rem;
+}
+
+.ui.tiered.menu .sub.menu .item:before {
+ background-image: none;
+}
+
+.ui.tiered.menu .sub.menu .active.item {
+ padding-top: 0.83em;
+ background-color: transparent;
+ border-radius: 0 0 0 0;
+ border-top: medium none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ color: rgba(0, 0, 0, 0.7) !important;
+}
+
+.ui.tiered.menu .sub.menu .active.item:after {
+ display: none;
+}
+
+/* Inverted */
+
+.ui.inverted.tiered.menu > .menu > .item {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+.ui.inverted.tiered.menu .sub.menu {
+ background-color: rgba(0, 0, 0, 0.2);
+}
+
+.ui.inverted.tiered.menu .sub.menu .item {
+ color: rgba(255, 255, 255, 0.6);
+}
+
+.ui.inverted.tiered.menu > .menu > .item:hover {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.inverted.tiered.menu .active.item:after {
+ display: none;
+}
+
+.ui.inverted.tiered.menu > .sub.menu > .active.item,
+.ui.inverted.tiered.menu > .menu > .active.item {
+ color: #ffffff !important;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* Tiered pointing */
+
+.ui.pointing.tiered.menu > .menu > .item:after {
+ display: none;
+}
+
+.ui.pointing.tiered.menu > .sub.menu > .item:after {
+ display: block;
+}
+
+/*--------------
+ Tabular
+---------------*/
+
+.ui.tabular.menu {
+ background-color: transparent;
+ border-bottom: 1px solid #DCDDDE;
+ border-radius: 0em;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.ui.tabular.menu .item {
+ background-color: transparent;
+ border-right: 1px solid transparent;
+ border-left: 1px solid transparent;
+ border-top: 1px solid transparent;
+ padding-right: 1.4em;
+ padding-left: 1.4em;
+ color: rgba(0, 0, 0, 0.6);
+}
+
+.ui.tabular.menu .item:before {
+ display: none;
+}
+
+/* Hover */
+
+.ui.tabular.menu .item:hover {
+ background-color: transparent;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/* Active */
+
+.ui.tabular.menu .active.item {
+ position: relative;
+ background-color: #FFFFFF;
+ color: rgba(0, 0, 0, 0.8);
+ border-color: #DCDDDE;
+ font-weight: bold;
+ margin-bottom: -1px;
+ border-bottom: 1px solid #FFFFFF;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border-radius: 5px 5px 0 0;
+}
+
+/* Coupling with segment for attachment */
+
+.ui.attached.tabular.menu {
+ position: relative;
+ z-index: 2;
+}
+
+.ui.tabular.menu ~ .bottom.attached.segment {
+ margin: 1px 1px 0px 0px;
+}
+
+/*--------------
+ Pagination
+---------------*/
+
+.ui.pagination.menu {
+ margin: 0em;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.ui.pagination.menu .item {
+ min-width: 3em;
+ text-align: center;
+}
+
+.ui.pagination.menu .icon.item i.icon {
+ vertical-align: top;
+}
+
+.ui.pagination.menu.floated {
+ display: block;
+}
+
+/* active */
+
+.ui.pagination.menu .active.item {
+ border-top: none;
+ padding-top: 0.83em;
+ background-color: rgba(0, 0, 0, 0.05);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*--------------
+ Secondary
+---------------*/
+
+.ui.secondary.menu {
+ background-color: transparent;
+ border-radius: 0px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.secondary.menu > .menu > .item,
+.ui.secondary.menu > .item {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border: none;
+ height: auto !important;
+ margin: 0em 0.25em;
+ padding: 0.5em 1em;
+ border-radius: 0.3125em;
+}
+
+.ui.secondary.menu > .menu > .item:before,
+.ui.secondary.menu > .item:before {
+ display: none !important;
+}
+
+.ui.secondary.menu .item > .input input {
+ background-color: transparent;
+ border: none;
+}
+
+.ui.secondary.menu .link.item,
+.ui.secondary.menu a.item {
+ opacity: 0.8;
+ -webkit-transition: none;
+ -moz-transition: none;
+ transition: none;
+}
+
+.ui.secondary.menu .header.item {
+ border-left: 0.1em solid rgba(0, 0, 0, 0.1);
+ background-color: transparent;
+ border-radius: 0em;
+}
+
+/* hover */
+
+.ui.secondary.menu .link.item:hover,
+.ui.secondary.menu a.item:hover {
+ opacity: 1;
+}
+
+/* active */
+
+.ui.secondary.menu > .menu > .active.item,
+.ui.secondary.menu > .active.item {
+ background-color: rgba(0, 0, 0, 0.08);
+ opacity: 1;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.secondary.vertical.menu > .active.item {
+ border-radius: 0.3125em;
+}
+
+/* inverted */
+
+.ui.secondary.inverted.menu .link.item,
+.ui.secondary.inverted.menu a.item {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+.ui.secondary.inverted.menu .link.item:hover,
+.ui.secondary.inverted.menu a.item:hover {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.secondary.inverted.menu .active.item {
+ background-color: rgba(255, 255, 255, 0.1);
+}
+
+/* disable variations */
+
+.ui.secondary.item.menu > .item {
+ margin: 0em;
+}
+
+.ui.secondary.attached.menu {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*---------------------
+ Secondary Pointing
+-----------------------*/
+
+.ui.secondary.pointing.menu {
+ border-bottom: 3px solid rgba(0, 0, 0, 0.1);
+}
+
+.ui.secondary.pointing.menu > .menu > .item,
+.ui.secondary.pointing.menu > .item {
+ margin: 0em 0em -3px;
+ padding: 0.6em 0.95em;
+ border-bottom: 3px solid rgba(0, 0, 0, 0);
+ border-radius: 0em;
+ -webkit-transition: color 0.2s;
+ -moz-transition: color 0.2s;
+ transition: color 0.2s;
+}
+
+/* Item Types */
+
+.ui.secondary.pointing.menu .header.item {
+ margin-bottom: -3px;
+ background-color: transparent !important;
+ border-left-width: 0px !important;
+ font-weight: bold !important;
+ color: rgba(0, 0, 0, 0.8) !important;
+}
+
+.ui.secondary.pointing.menu .text.item {
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.ui.secondary.pointing.menu > .menu > .item:after,
+.ui.secondary.pointing.menu > .item:after {
+ display: none;
+}
+
+/* Hover */
+
+.ui.secondary.pointing.menu > .menu > .link.item:hover,
+.ui.secondary.pointing.menu > .link.item:hover,
+.ui.secondary.pointing.menu > .menu > a.item:hover,
+.ui.secondary.pointing.menu > a.item:hover {
+ background-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+/* Down */
+
+.ui.secondary.pointing.menu > .menu > .link.item:active,
+.ui.secondary.pointing.menu > .link.item:active,
+.ui.secondary.pointing.menu > .menu > a.item:active,
+.ui.secondary.pointing.menu > a.item:active {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.2);
+}
+
+/* Active */
+
+.ui.secondary.pointing.menu > .menu > .item.active,
+.ui.secondary.pointing.menu > .item.active {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.4);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*---------------------
+ Secondary Vertical
+-----------------------*/
+
+.ui.secondary.vertical.pointing.menu {
+ border: none;
+ border-left: 3px solid rgba(0, 0, 0, 0.1);
+}
+
+.ui.secondary.vertical.menu > .item {
+ border: none;
+ margin: 0em 0em 0.3em;
+ padding: 0.6em 0.8em;
+ border-radius: 0.1875em;
+}
+
+.ui.secondary.vertical.menu > .header.item {
+ border-radius: 0em;
+}
+
+.ui.secondary.vertical.pointing.menu > .item {
+ margin: 0em 0em 0em -3px;
+ border-bottom: none;
+ border-left: 3px solid transparent;
+ border-radius: 0em;
+}
+
+/* Hover */
+
+.ui.secondary.vertical.pointing.menu > .item:hover {
+ background-color: transparent;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+/* Down */
+
+.ui.secondary.vertical.pointing.menu > .item:active {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.2);
+}
+
+/* Active */
+
+.ui.secondary.vertical.pointing.menu > .item.active {
+ background-color: transparent;
+ border-color: rgba(0, 0, 0, 0.4);
+ color: rgba(0, 0, 0, 0.85);
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.secondary.inverted.menu {
+ background-color: transparent;
+}
+
+.ui.secondary.inverted.pointing.menu {
+ border-bottom: 3px solid rgba(255, 255, 255, 0.1);
+}
+
+.ui.secondary.inverted.pointing.menu > .item {
+ color: rgba(255, 255, 255, 0.7);
+}
+
+.ui.secondary.inverted.pointing.menu > .header.item {
+ color: #FFFFFF !important;
+}
+
+/* Hover */
+
+.ui.secondary.inverted.pointing.menu > .menu > .item:hover,
+.ui.secondary.inverted.pointing.menu > .item:hover {
+ color: rgba(255, 255, 255, 0.85);
+}
+
+/* Down */
+
+.ui.secondary.inverted.pointing.menu > .menu > .item:active,
+.ui.secondary.inverted.pointing.menu > .item:active {
+ border-color: rgba(255, 255, 255, 0.4);
+}
+
+/* Active */
+
+.ui.secondary.inverted.pointing.menu > .menu > .item.active,
+.ui.secondary.inverted.pointing.menu > .item.active {
+ border-color: rgba(255, 255, 255, 0.8);
+ color: #ffffff;
+}
+
+/*---------------------
+ Inverted Vertical
+----------------------*/
+
+.ui.secondary.inverted.vertical.pointing.menu {
+ border-left: 3px solid rgba(255, 255, 255, 0.1);
+ border-bottom: none;
+}
+
+/*--------------
+ Text Menu
+---------------*/
+
+.ui.text.menu {
+ background-color: transparent;
+ margin: 1rem -1rem;
+ border-radius: 0px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.text.menu > .item {
+ opacity: 0.8;
+ margin: 0em 1em;
+ padding: 0em;
+ height: auto !important;
+ border-radius: 0px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ -webkit-transition: opacity 0.2s ease;
+ -moz-transition: opacity 0.2s ease;
+ transition: opacity 0.2s ease;
+}
+
+.ui.text.menu > .item:before {
+ display: none !important;
+}
+
+.ui.text.menu .header.item {
+ background-color: transparent;
+ opacity: 1;
+ color: rgba(50, 50, 50, 0.8);
+ font-size: 0.875rem;
+ padding: 0em;
+ text-transform: uppercase;
+ font-weight: bold;
+}
+
+/*--- fluid text ---*/
+
+.ui.text.item.menu .item {
+ margin: 0em;
+}
+
+/*--- vertical text ---*/
+
+.ui.vertical.text.menu {
+ margin: 1rem 0em;
+}
+
+.ui.vertical.text.menu:first-child {
+ margin-top: 0rem;
+}
+
+.ui.vertical.text.menu:last-child {
+ margin-bottom: 0rem;
+}
+
+.ui.vertical.text.menu .item {
+ float: right;
+ clear: right;
+ margin: 0.5em 0em;
+}
+
+.ui.vertical.text.menu .item > i.icon {
+ float: none;
+ margin: 0em 0em 0em 0.83em;
+}
+
+.ui.vertical.text.menu .header.item {
+ margin: 0.8em 0em;
+}
+
+/*--- hover ---*/
+
+.ui.text.menu .item:hover {
+ opacity: 1;
+ background-color: transparent;
+}
+
+/*--- active ---*/
+
+.ui.text.menu .active.item {
+ background-color: transparent;
+ padding: 0em;
+ border: none;
+ opacity: 1;
+ font-weight: bold;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* disable variations */
+
+.ui.text.pointing.menu .active.item:after {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.text.attached.menu {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.text.menu,
+.ui.inverted.text.menu .item,
+.ui.inverted.text.menu .item:hover,
+.ui.inverted.text.menu .item.active {
+ background-color: transparent;
+}
+
+/*--------------
+ Icon Only
+---------------*/
+
+.ui.icon.menu,
+.ui.vertical.icon.menu {
+ width: auto;
+ display: inline-block;
+ height: auto;
+}
+
+.ui.icon.menu > .item {
+ height: auto;
+ text-align: center;
+ color: rgba(60, 60, 60, 0.7);
+}
+
+.ui.icon.menu > .item > .icon {
+ display: block;
+ float: none !important;
+ opacity: 1;
+ margin: 0em auto !important;
+}
+
+.ui.icon.menu .icon:before {
+ opacity: 1;
+}
+
+/* Item Icon Only */
+
+.ui.menu .icon.item .icon {
+ margin: 0em;
+}
+
+.ui.vertical.icon.menu {
+ float: none;
+}
+
+/*--- inverted ---*/
+
+.ui.inverted.icon.menu .item {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.icon.menu .icon {
+ color: #ffffff;
+}
+
+/*--------------
+ Labeled Icon
+---------------*/
+
+.ui.labeled.icon.menu {
+ text-align: center;
+}
+
+.ui.labeled.icon.menu > .item > .icon {
+ display: block;
+ font-size: 1.5em !important;
+ margin: 0em auto 0.3em !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Colors
+---------------*/
+
+/*--- Light Colors ---*/
+
+.ui.menu .green.active.item,
+.ui.green.menu .active.item {
+ border-color: #A1CF64 !important;
+ color: #A1CF64 !important;
+}
+
+.ui.menu .red.active.item,
+.ui.red.menu .active.item {
+ border-color: #D95C5C !important;
+ color: #D95C5C !important;
+}
+
+.ui.menu .blue.active.item,
+.ui.blue.menu .active.item {
+ border-color: #6ECFF5 !important;
+ color: #6ECFF5 !important;
+}
+
+.ui.menu .purple.active.item,
+.ui.purple.menu .active.item {
+ border-color: #564F8A !important;
+ color: #564F8A !important;
+}
+
+.ui.menu .orange.active.item,
+.ui.orange.menu .active.item {
+ border-color: #F05940 !important;
+ color: #F05940 !important;
+}
+
+.ui.menu .teal.active.item,
+.ui.teal.menu .active.item {
+ border-color: #00B5AD !important;
+ color: #00B5AD !important;
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.inverted.menu {
+ background-color: #333333;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.menu .header.item {
+ margin: 0em;
+ background-color: rgba(0, 0, 0, 0.3);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.menu .item,
+.ui.inverted.menu .item > a {
+ color: #FFFFFF;
+}
+
+.ui.inverted.menu .item .item,
+.ui.inverted.menu .item .item > a {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.menu .dropdown .menu .item,
+.ui.inverted.menu .dropdown .menu .item a {
+ color: rgba(0, 0, 0, 0.75) !important;
+}
+
+.ui.inverted.menu .item.disabled,
+.ui.inverted.menu .item.disabled:hover {
+ color: rgba(255, 255, 255, 0.2);
+}
+
+/*--- Border ---*/
+
+.ui.inverted.menu .item:before {
+ background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+ background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+ background-image: -webkit-gradient(linear, right top, right bottom, from(rgba(255, 255, 255, 0.03)), color-stop(50%, rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0.03)));
+ background-image: linear-gradient(rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+}
+
+.ui.vertical.inverted.menu .item:before {
+ background-image: -webkit-linear-gradient(right, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+ background-image: -moz-linear-gradient(right, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+ background-image: -webkit-gradient(linear, right top, left top, from(rgba(255, 255, 255, 0.03)), color-stop(50%, rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0.03)));
+ background-image: linear-gradient(to left, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.03) 100%);
+}
+
+/*--- Hover ---*/
+
+.ui.link.inverted.menu .item:hover,
+.ui.inverted.menu .link.item:hover,
+.ui.inverted.menu a.item:hover,
+.ui.inverted.menu .dropdown.item:hover {
+ background-color: rgba(255, 255, 255, 0.1);
+}
+
+.ui.inverted.menu a.item:hover,
+.ui.inverted.menu .item > a:hover,
+.ui.inverted.menu .item .menu a.item:hover,
+.ui.inverted.menu .item .menu .link.item:hover {
+ color: #ffffff;
+}
+
+/*--- Down ---*/
+
+.ui.inverted.menu a.item:active,
+.ui.inverted.menu .dropdown.item:active,
+.ui.inverted.menu .link.item:active,
+.ui.inverted.menu a.item:active {
+ background-color: rgba(255, 255, 255, 0.15);
+}
+
+/*--- Active ---*/
+
+.ui.inverted.menu .active.item {
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+ background-color: rgba(255, 255, 255, 0.2);
+}
+
+.ui.inverted.menu .active.item,
+.ui.inverted.menu .active.item a {
+ color: #ffffff !important;
+}
+
+.ui.inverted.vertical.menu .item .menu .active.item {
+ background-color: rgba(255, 255, 255, 0.2);
+ color: #ffffff;
+}
+
+/*--- Pointers ---*/
+
+.ui.inverted.pointing.menu .active.item:after {
+ background-color: #5B5B5B;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.pointing.menu .active.item:hover:after {
+ background-color: #4A4A4A;
+}
+
+/*--------------
+ Selection
+---------------*/
+
+.ui.selection.menu > .item {
+ color: rgba(0, 0, 0, 0.4);
+}
+
+.ui.selection.menu > .item:hover {
+ color: rgba(0, 0, 0, 0.6);
+}
+
+.ui.selection.menu > .item.active {
+ color: rgba(0, 0, 0, 0.85);
+}
+
+.ui.inverted.selection.menu > .item {
+ color: rgba(255, 255, 255, 0.4);
+}
+
+.ui.inverted.selection.menu > .item:hover {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.inverted.selection.menu > .item.active {
+ color: #FFFFFF;
+}
+
+/*--------------
+ Floated
+---------------*/
+
+.ui.floated.menu {
+ float: right;
+ margin: 0rem 0rem 0rem 0.5rem;
+}
+
+.ui.right.floated.menu {
+ float: left;
+ margin: 0rem 0.5rem 0rem 0rem;
+}
+
+/*--------------
+ Inverted Colors
+---------------*/
+
+/*--- Light Colors ---*/
+
+.ui.grey.menu {
+ background-color: #F0F0F0;
+}
+
+/*--- Inverted Colors ---*/
+
+.ui.inverted.green.menu {
+ background-color: #A1CF64;
+}
+
+.ui.inverted.green.pointing.menu .active.item:after {
+ background-color: #A1CF64;
+}
+
+.ui.inverted.red.menu {
+ background-color: #D95C5C;
+}
+
+.ui.inverted.red.pointing.menu .active.item:after {
+ background-color: #F16883;
+}
+
+.ui.inverted.blue.menu {
+ background-color: #6ECFF5;
+}
+
+.ui.inverted.blue.pointing.menu .active.item:after {
+ background-color: #6ECFF5;
+}
+
+.ui.inverted.purple.menu {
+ background-color: #564F8A;
+}
+
+.ui.inverted.purple.pointing.menu .active.item:after {
+ background-color: #564F8A;
+}
+
+.ui.inverted.orange.menu {
+ background-color: #F05940;
+}
+
+.ui.inverted.orange.pointing.menu .active.item:after {
+ background-color: #F05940;
+}
+
+.ui.inverted.teal.menu {
+ background-color: #00B5AD;
+}
+
+.ui.inverted.teal.pointing.menu .active.item:after {
+ background-color: #00B5AD;
+}
+
+/*--------------
+ Fitted
+---------------*/
+
+.ui.fitted.menu .item,
+.ui.fitted.menu .item .menu .item,
+.ui.menu .fitted.item {
+ padding: 0em;
+}
+
+.ui.horizontally.fitted.menu .item,
+.ui.horizontally.fitted.menu .item .menu .item,
+.ui.menu .horizontally.fitted.item {
+ padding-top: 0.83em;
+ padding-bottom: 0.83em;
+}
+
+.ui.vertically.fitted.menu .item,
+.ui.vertically.fitted.menu .item .menu .item,
+.ui.menu .vertically.fitted.item {
+ padding-right: 0.95em;
+ padding-left: 0.95em;
+}
+
+/*--------------
+ Borderless
+---------------*/
+
+.ui.borderless.menu .item:before,
+.ui.borderless.menu .item .menu .item:before,
+.ui.menu .borderless.item:before {
+ background-image: none;
+}
+
+/*-------------------
+ Compact
+--------------------*/
+
+.ui.compact.menu {
+ display: inline-block;
+ margin: 0em;
+ vertical-align: middle;
+}
+
+.ui.compact.vertical.menu {
+ width: auto !important;
+}
+
+.ui.compact.vertical.menu .item:last-child::before {
+ display: block;
+}
+
+/*-------------------
+ Fluid
+--------------------*/
+
+.ui.menu.fluid,
+.ui.vertical.menu.fluid {
+ display: block;
+ width: 100% !important;
+}
+
+/*-------------------
+ Evenly Sized
+--------------------*/
+
+.ui.item.menu,
+.ui.item.menu .item {
+ width: 100%;
+ padding-right: 0px !important;
+ padding-left: 0px !important;
+ text-align: center;
+}
+
+.ui.menu.two.item .item {
+ width: 50%;
+}
+
+.ui.menu.three.item .item {
+ width: 33.333%;
+}
+
+.ui.menu.four.item .item {
+ width: 25%;
+}
+
+.ui.menu.five.item .item {
+ width: 20%;
+}
+
+.ui.menu.six.item .item {
+ width: 16.666%;
+}
+
+.ui.menu.seven.item .item {
+ width: 14.285%;
+}
+
+.ui.menu.eight.item .item {
+ width: 12.500%;
+}
+
+.ui.menu.nine.item .item {
+ width: 11.11%;
+}
+
+.ui.menu.ten.item .item {
+ width: 10.0%;
+}
+
+.ui.menu.eleven.item .item {
+ width: 9.09%;
+}
+
+.ui.menu.twelve.item .item {
+ width: 8.333%;
+}
+
+/*--------------
+ Fixed
+---------------*/
+
+.ui.menu.fixed {
+ position: fixed;
+ z-index: 999;
+ margin: 0em;
+ border: none;
+ width: 100%;
+}
+
+.ui.menu.fixed,
+.ui.menu.fixed .item:first-child,
+.ui.menu.fixed .item:last-child {
+ border-radius: !important 0px;
+}
+
+.ui.menu.fixed.top {
+ top: 0px;
+ right: 0px;
+ left: auto;
+ bottom: auto;
+}
+
+.ui.menu.fixed.right {
+ top: 0px;
+ left: 0px;
+ right: auto;
+ bottom: auto;
+ width: auto;
+ height: 100%;
+}
+
+.ui.menu.fixed.bottom {
+ bottom: 0px;
+ right: 0px;
+ top: auto;
+ left: auto;
+}
+
+.ui.menu.fixed.left {
+ top: 0px;
+ right: 0px;
+ left: auto;
+ bottom: auto;
+ width: auto;
+ height: 100%;
+}
+
+/* Coupling with Grid */
+
+.ui.fixed.menu + .ui.grid {
+ padding-top: 2.75rem;
+}
+
+/*-------------------
+ Pointing
+--------------------*/
+
+.ui.pointing.menu .active.item:after {
+ position: absolute;
+ bottom: -0.3em;
+ right: 50%;
+ content: "";
+ margin-right: -0.3em;
+ width: 0.6em;
+ height: 0.6em;
+ border: none;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+ border-left: 1px solid rgba(0, 0, 0, 0.1);
+ background-image: none;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ z-index: 2;
+ -webkit-transition: background 0.2s ease;
+ -moz-transition: background 0.2s ease;
+ transition: background 0.2s ease;
+}
+
+/* Don't double up pointers */
+
+.ui.pointing.menu .active.item .menu .active.item:after {
+ display: none;
+}
+
+.ui.vertical.pointing.menu .active.item:after {
+ position: absolute;
+ top: 50%;
+ margin-top: -0.3em;
+ left: -0.4em;
+ bottom: auto;
+ right: auto;
+ border: none;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ border-left: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* Colors */
+
+.ui.pointing.menu .active.item:after {
+ background-color: #FCFCFC;
+}
+
+.ui.pointing.menu .active.item:hover:after {
+ background-color: #FAFAFA;
+}
+
+.ui.vertical.pointing.menu .menu .active.item:after {
+ background-color: #F4F4F4;
+}
+
+.ui.pointing.menu a.active.item:active:after {
+ background-color: #F0F0F0;
+}
+
+/*--------------
+ Attached
+---------------*/
+
+.ui.menu.attached {
+ margin: 0rem;
+ border-radius: 0px;
+ /* avoid rgba multiplying */
+ -webkit-box-shadow: 0px 0px 0px 1px #DDDDDD;
+ box-shadow: 0px 0px 0px 1px #DDDDDD;
+}
+
+.ui.top.attached.menu {
+ border-radius: 0.1875em 0.1875em 0px 0px;
+}
+
+.ui.menu.bottom.attached {
+ border-radius: 0px 0px 0.1875em 0.1875em;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.small.menu .item {
+ font-size: 0.875rem;
+}
+
+.ui.small.vertical.menu {
+ width: 13rem;
+}
+
+.ui.menu .item {
+ font-size: 1rem;
+}
+
+.ui.vertical.menu {
+ width: 15rem;
+}
+
+.ui.large.menu .item {
+ font-size: 1.125rem;
+}
+
+.ui.large.menu .item .item {
+ font-size: 0.875rem;
+}
+
+.ui.large.menu .dropdown .item {
+ font-size: 1rem;
+}
+
+.ui.large.vertical.menu {
+ width: 18rem;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/collections/message.css b/css/semantic/rtl/uncompressed/collections/message.css
new file mode 100644
index 0000000..4dfe99b
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/collections/message.css
@@ -0,0 +1,309 @@
+/*
+ * # Semantic - Message
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Message
+*******************************/
+
+.ui.message {
+ position: relative;
+ min-height: 18px;
+ margin: 1em 0em;
+ height: auto;
+ background-color: #EFEFEF;
+ padding: 1em;
+ line-height: 1.33;
+ color: rgba(0, 0, 0, 0.6);
+ -webkit-transition: opacity 0.1s ease, color 0.1s ease, background 0.1s ease, -webkit-box-shadow 0.1s ease;
+ -moz-transition: opacity 0.1s ease, color 0.1s ease, background 0.1s ease, box-shadow 0.1s ease;
+ transition: opacity 0.1s ease, color 0.1s ease, background 0.1s ease, box-shadow 0.1s ease;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ border-radius: 0.325em 0.325em 0.325em 0.325em;
+}
+
+.ui.message:first-child {
+ margin-top: 0em;
+}
+
+.ui.message:last-child {
+ margin-bottom: 0em;
+}
+
+/*--------------
+ Content
+---------------*/
+
+/* block with headers */
+
+.ui.message .header {
+ margin: 0em;
+ font-size: 1.33em;
+ font-weight: bold;
+}
+
+/* block with paragraphs */
+
+.ui.message p {
+ opacity: 0.85;
+ margin: 1em 0em;
+}
+
+.ui.message p:first-child {
+ margin-top: 0em;
+}
+
+.ui.message p:last-child {
+ margin-bottom: 0em;
+}
+
+.ui.message .header + p {
+ margin-top: 0.3em;
+}
+
+.ui.message > :first-child {
+ margin-top: 0em;
+}
+
+.ui.message > :last-child {
+ margin-bottom: 0em;
+}
+
+/* block with child list */
+
+.ui.message ul.list {
+ opacity: 0.85;
+ list-style-position: inside;
+ margin: 0.2em 0em;
+ padding: 0em;
+}
+
+.ui.message ul.list li {
+ position: relative;
+ list-style-type: none;
+ margin: 0em 1em 0.3em 0em;
+ padding: 0em;
+}
+
+.ui.message ul.list li:before {
+ position: absolute;
+ content: '\2022';
+ top: -0.05em;
+ right: -0.8em;
+ height: 100%;
+ vertical-align: baseline;
+ opacity: 0.5;
+}
+
+.ui.message ul.list li:first-child {
+ margin-top: 0em;
+}
+
+/* dismissable block */
+
+.ui.message > .close.icon {
+ cursor: pointer;
+ position: absolute;
+ top: 1em;
+ left: 0.5em;
+ opacity: 0.7;
+ -webkit-transition: opacity 0.1s linear;
+ -moz-transition: opacity 0.1s linear;
+ transition: opacity 0.1s linear;
+}
+
+.ui.message > .close.icon:hover {
+ opacity: 1;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.message.visible,
+.ui.header.visible {
+ display: block !important;
+}
+
+.ui.message.hidden,
+.ui.header.hidden {
+ display: none;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Compact
+---------------*/
+
+.ui.compact.message {
+ display: inline-block;
+}
+
+/*--------------
+ Attached
+---------------*/
+
+.ui.attached.message {
+ margin-right: -1px;
+ margin-left: -1px;
+ margin-bottom: -1px;
+ border-radius: 0.325em 0.325em 0em 0em;
+ -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.attached + .ui.attached.message:not(.top):not(.bottom) {
+ margin-top: -1px;
+ border-radius: 0em;
+}
+
+.ui.bottom.attached.message {
+ margin-top: -1px;
+ border-radius: 0em 0em 0.325em 0.325em;
+}
+
+.ui.bottom.attached.message:not(:last-child) {
+ margin-bottom: 1em;
+}
+
+.ui.attached.icon.message {
+ display: block;
+ width: auto;
+}
+
+/*--------------
+ Icon
+---------------*/
+
+.ui.icon.message {
+ display: table;
+ width: 100%;
+}
+
+.ui.icon.message > .icon:not(.close) {
+ display: table-cell;
+ vertical-align: middle;
+ font-size: 3.8em;
+ opacity: 0.5;
+}
+
+.ui.icon.message > .icon + .content {
+ padding-right: 1em;
+}
+
+.ui.icon.message > .content {
+ display: table-cell;
+ vertical-align: middle;
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.inverted.message {
+ background-color: rgba(255, 255, 255, 0.05);
+ color: rgba(255, 255, 255, 0.95);
+}
+
+/*--------------
+ Floating
+---------------*/
+
+.ui.floating.message {
+ -webkit-box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.1), 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset;
+ box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.1), 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset;
+}
+
+/*--------------
+ Colors
+---------------*/
+
+.ui.black.message {
+ background-color: #333333;
+ color: rgba(255, 255, 255, 0.95);
+}
+
+/*--------------
+ Types
+---------------*/
+
+.ui.blue.message,
+.ui.info.message {
+ background-color: #E6F4F9;
+ color: #4D8796;
+}
+
+/* Green Text Block */
+
+.ui.green.message {
+ background-color: #DEFCD5;
+ color: #52A954;
+}
+
+/* Yellow Text Block */
+
+.ui.yellow.message,
+.ui.warning.message {
+ background-color: #F6F3D5;
+ color: #96904D;
+}
+
+/* Red Text Block */
+
+.ui.red.message {
+ background-color: #F1D7D7;
+ color: #A95252;
+}
+
+/* Success Text Block */
+
+.ui.success.message,
+.ui.positive.message {
+ background-color: #DEFCD5;
+ color: #52A954;
+}
+
+/* Error Text Block */
+
+.ui.error.message,
+.ui.negative.message {
+ background-color: #F1D7D7;
+ color: #A95252;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.small.message {
+ font-size: 0.875em;
+}
+
+.ui.message {
+ font-size: 1em;
+}
+
+.ui.large.message {
+ font-size: 1.125em;
+}
+
+.ui.huge.message {
+ font-size: 1.5em;
+}
+
+.ui.massive.message {
+ font-size: 2em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/collections/table.css b/css/semantic/rtl/uncompressed/collections/table.css
new file mode 100644
index 0000000..59df99c
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/collections/table.css
@@ -0,0 +1,645 @@
+/*
+ * # Semantic - Table
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Table
+*******************************/
+
+/* Prototype */
+
+.ui.table {
+ width: 100%;
+ border-collapse: collapse;
+}
+
+/* Table Content */
+
+.ui.table th,
+.ui.table tr,
+.ui.table td {
+ border-collapse: collapse;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-transition: all 0.1s ease-out;
+ -moz-transition: all 0.1s ease-out;
+ transition: all 0.1s ease-out;
+}
+
+/* Headers */
+
+.ui.table thead {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.03);
+}
+
+.ui.table tfoot th {
+ background-color: rgba(0, 0, 0, 0.03);
+}
+
+.ui.table th {
+ cursor: auto;
+ background-color: rgba(0, 0, 0, 0.05);
+ text-align: right;
+ color: rgba(0, 0, 0, 0.8);
+ padding: 0.5em 0.7em;
+ vertical-align: middle;
+}
+
+.ui.table thead th:first-child {
+ border-radius: 0px 5px 0px 0px;
+}
+
+.ui.table thead th:last-child {
+ border-radius: 5px 0px 0px 0px;
+}
+
+.ui.table tfoot th:first-child {
+ border-radius: 0px 0px 5px 0px;
+}
+
+.ui.table tfoot th:last-child {
+ border-radius: 0px 0px 0px 5px;
+}
+
+.ui.table tfoot th:only-child {
+ border-radius: 0px 0px 5px 5px;
+}
+
+/* Table Cells */
+
+.ui.table td {
+ padding: 0.40em 0.7em;
+ vertical-align: middle;
+}
+
+/* Footer */
+
+.ui.table tfoot {
+ border-top: 1px solid rgba(0, 0, 0, 0.03);
+}
+
+.ui.table tfoot th {
+ font-weight: normal;
+ font-style: italic;
+}
+
+/* Table Striping */
+
+.ui.table tbody tr:nth-child(2n) {
+ background-color: rgba(0, 0, 50, 0.02);
+}
+
+/* Icons */
+
+.ui.table > .icon {
+ vertical-align: baseline;
+}
+
+.ui.table > .icon:only-child {
+ margin: 0em;
+}
+
+/* Table Segment */
+
+.ui.table.segment:after {
+ display: none;
+}
+
+.ui.table.segment.stacked:after {
+ display: block;
+}
+
+/* Responsive */
+
+@media only screen and (max-width: 768px) {
+ .ui.table {
+ display: block;
+ padding: 0em;
+ }
+
+ .ui.table thead,
+ .ui.table tfoot {
+ display: none;
+ }
+
+ .ui.table tbody {
+ display: block;
+ }
+
+ .ui.table tr {
+ display: block;
+ }
+
+ .ui.table tr > td {
+ width: 100% !important;
+ display: block;
+ border: none !important;
+ padding: 0.25em 0.75em;
+ -webkit-box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05) !important;
+ box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05) !important;
+ }
+
+ .ui.table td:first-child {
+ font-weight: bold;
+ padding-top: 1em;
+ }
+
+ .ui.table td:last-child {
+ -webkit-box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1) inset !important;
+ box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1) inset !important;
+ padding-bottom: 1em;
+ }
+
+ /* Clear BG Colors */
+
+ .ui.table tr > td.warning,
+ .ui.table tr > td.error,
+ .ui.table tr > td.active,
+ .ui.table tr > td.positive,
+ .ui.table tr > td.negative {
+ background-color: transparent !important;
+ }
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+/* Sortable */
+
+.ui.sortable.table th.disabled:hover {
+ cursor: auto;
+ text-align: right;
+ font-weight: bold;
+ color: #333333;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.sortable.table thead th:hover {
+ background-color: rgba(0, 0, 0, 0.13);
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/* Inverted Sortable */
+
+.ui.inverted.sortable.table thead th:hover {
+ background-color: rgba(255, 255, 255, 0.13);
+ color: #ffffff;
+}
+
+/*--------------
+ Positive
+---------------*/
+
+.ui.table tr.positive,
+.ui.table td.positive {
+ -webkit-box-shadow: 2px 0px 0px #119000 inset;
+ box-shadow: 2px 0px 0px #119000 inset;
+}
+
+.ui.table tr.positive td,
+.ui.table td.positive {
+ background-color: #F2F8F0 !important;
+ color: #119000 !important;
+}
+
+.ui.celled.table tr.positive:hover td,
+.ui.celled.table tr:hover td.positive,
+.ui.table tr.positive:hover td,
+.ui.table td:hover.positive,
+.ui.table th:hover.positive {
+ background-color: #ECF5E9 !important;
+ color: #119000 !important;
+}
+
+/*--------------
+ Negative
+---------------*/
+
+.ui.table tr.negative,
+.ui.table td.negative {
+ -webkit-box-shadow: 2px 0px 0px #CD2929 inset;
+ box-shadow: 2px 0px 0px #CD2929 inset;
+}
+
+.ui.table tr.negative td,
+.ui.table td.negative {
+ background-color: #F9F4F4;
+ color: #CD2929 !important;
+}
+
+.ui.celled.table tr.negative:hover td,
+.ui.celled.table tr:hover td.negative,
+.ui.table tr.negative:hover td,
+.ui.table td:hover.negative,
+.ui.table th:hover.negative {
+ background-color: #F2E8E8;
+ color: #CD2929;
+}
+
+/*--------------
+ Error
+---------------*/
+
+.ui.table tr.error,
+.ui.table td.error {
+ -webkit-box-shadow: 2px 0px 0px #CD2929 inset;
+ box-shadow: 2px 0px 0px #CD2929 inset;
+}
+
+.ui.table tr.error td,
+.ui.table td.error,
+.ui.table th.error {
+ background-color: #F9F4F4;
+ color: #CD2929;
+}
+
+.ui.celled.table tr.error:hover td,
+.ui.celled.table tr:hover td.error,
+.ui.table tr.error:hover td,
+.ui.table td:hover.error,
+.ui.table th:hover.error {
+ background-color: #F2E8E8;
+ color: #CD2929;
+}
+
+/*--------------
+ Warning
+---------------*/
+
+.ui.table tr.warning,
+.ui.table td.warning {
+ -webkit-box-shadow: 2px 0px 0px #7D6C00 inset;
+ box-shadow: 2px 0px 0px #7D6C00 inset;
+}
+
+.ui.table tr.warning td,
+.ui.table td.warning,
+.ui.table th.warning {
+ background-color: #FBF6E9;
+ color: #7D6C00;
+}
+
+.ui.celled.table tr.warning:hover td,
+.ui.celled.table tr:hover td.warning,
+.ui.table tr.warning:hover td,
+.ui.table td:hover.warning,
+.ui.table th:hover.warning {
+ background-color: #F3EDDC;
+ color: #7D6C00;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.table tr.active,
+.ui.table td.active {
+ -webkit-box-shadow: 2px 0px 0px rgba(50, 50, 50, 0.9) inset;
+ box-shadow: 2px 0px 0px rgba(50, 50, 50, 0.9) inset;
+}
+
+.ui.table tr.active td,
+.ui.table tr td.active {
+ background-color: #E0E0E0;
+ color: rgba(50, 50, 50, 0.9);
+ /* border-color: rgba(0, 0, 0, 0.15) !important; */
+}
+
+/*--------------
+ Disabled
+---------------*/
+
+.ui.table tr.disabled td,
+.ui.table tr td.disabled,
+.ui.table tr.disabled:hover td,
+.ui.table tr:hover td.disabled {
+ color: rgba(150, 150, 150, 0.3);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Column Count
+---------------*/
+
+.ui.two.column.table td {
+ width: 50%;
+}
+
+.ui.three.column.table td {
+ width: 33.3333%;
+}
+
+.ui.four.column.table td {
+ width: 25%;
+}
+
+.ui.five.column.table td {
+ width: 20%;
+}
+
+.ui.six.column.table td {
+ width: 16.66667%;
+}
+
+.ui.seven.column.table td {
+ width: 14.2857%;
+}
+
+.ui.eight.column.table td {
+ width: 12.5%;
+}
+
+.ui.nine.column.table td {
+ width: 11.1111%;
+}
+
+.ui.ten.column.table td {
+ width: 10%;
+}
+
+.ui.eleven.column.table td {
+ width: 9.0909%;
+}
+
+.ui.twelve.column.table td {
+ width: 8.3333%;
+}
+
+.ui.thirteen.column.table td {
+ width: 7.6923%;
+}
+
+.ui.fourteen.column.table td {
+ width: 7.1428%;
+}
+
+.ui.fifteen.column.table td {
+ width: 6.6666%;
+}
+
+.ui.sixteen.column.table td {
+ width: 6.25%;
+}
+
+/* Column Width */
+
+.ui.table th.one.wide,
+.ui.table td.one.wide {
+ width: 6.25%;
+}
+
+.ui.table th.two.wide,
+.ui.table td.two.wide {
+ width: 12.5%;
+}
+
+.ui.table th.three.wide,
+.ui.table td.three.wide {
+ width: 18.75%;
+}
+
+.ui.table th.four.wide,
+.ui.table td.four.wide {
+ width: 25%;
+}
+
+.ui.table th.five.wide,
+.ui.table td.five.wide {
+ width: 31.25%;
+}
+
+.ui.table th.six.wide,
+.ui.table td.six.wide {
+ width: 37.5%;
+}
+
+.ui.table th.seven.wide,
+.ui.table td.seven.wide {
+ width: 43.75%;
+}
+
+.ui.table th.eight.wide,
+.ui.table td.eight.wide {
+ width: 50%;
+}
+
+.ui.table th.nine.wide,
+.ui.table td.nine.wide {
+ width: 56.25%;
+}
+
+.ui.table th.ten.wide,
+.ui.table td.ten.wide {
+ width: 62.5%;
+}
+
+.ui.table th.eleven.wide,
+.ui.table td.eleven.wide {
+ width: 68.75%;
+}
+
+.ui.table th.twelve.wide,
+.ui.table td.twelve.wide {
+ width: 75%;
+}
+
+.ui.table th.thirteen.wide,
+.ui.table td.thirteen.wide {
+ width: 81.25%;
+}
+
+.ui.table th.fourteen.wide,
+.ui.table td.fourteen.wide {
+ width: 87.5%;
+}
+
+.ui.table th.fifteen.wide,
+.ui.table td.fifteen.wide {
+ width: 93.75%;
+}
+
+.ui.table th.sixteen.wide,
+.ui.table td.sixteen.wide {
+ width: 100%;
+}
+
+/*--------------
+ Celled
+---------------*/
+
+.ui.celled.table {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.celled.table tbody tr,
+.ui.celled.table tfoot tr {
+ border: none;
+}
+
+.ui.celled.table th,
+.ui.celled.table td {
+ border: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* Coupling with segment */
+
+.ui.celled.table.segment th:first-child,
+.ui.celled.table.segment td:first-child {
+ border-right: none;
+}
+
+.ui.celled.table.segment th:last-child,
+.ui.celled.table.segment td:last-child {
+ border-left: none;
+}
+
+/*--------------
+ Sortable
+---------------*/
+
+.ui.sortable.table thead th {
+ cursor: pointer;
+ white-space: nowrap;
+}
+
+.ui.sortable.table thead th.sorted,
+.ui.sortable.table thead th.sorted:hover {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.ui.sortable.table thead th:after {
+ display: inline-block;
+ content: '';
+ width: 1em;
+ opacity: 0.8;
+ margin: 0em 0.5em 0em 0em;
+ font-family: 'Icons';
+ font-style: normal;
+ font-weight: normal;
+ text-decoration: inherit;
+}
+
+.ui.sortable.table thead th.ascending:after {
+ content: '\25b4';
+}
+
+.ui.sortable.table thead th.descending:after {
+ content: '\25be';
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+/* Text Color */
+
+.ui.inverted.table td {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.inverted.table th {
+ background-color: rgba(0, 0, 0, 0.15);
+ color: rgba(255, 255, 255, 0.9);
+}
+
+/* Stripes */
+
+.ui.inverted.table tbody tr:nth-child(2n) {
+ background-color: rgba(255, 255, 255, 0.06);
+}
+
+/*--------------
+ Definition
+---------------*/
+
+.ui.definition.table td:first-child {
+ font-weight: bold;
+}
+
+/*--------------
+ Collapsing
+---------------*/
+
+.ui.collapsing.table {
+ width: auto;
+}
+
+/*--------------
+ Basic
+---------------*/
+
+.ui.basic.table th {
+ background-color: transparent;
+ padding: 0.5em;
+}
+
+.ui.basic.table tbody tr {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.03);
+}
+
+.ui.basic.table td {
+ padding: 0.8em 0.5em;
+}
+
+.ui.basic.table tbody tr:nth-child(2n) {
+ background-color: transparent !important;
+}
+
+/*--------------
+ Padded
+---------------*/
+
+.ui.padded.table th,
+.ui.padded.table td {
+ padding: 0.8em 1em;
+}
+
+.ui.compact.table th {
+ padding: 0.3em 0.5em;
+}
+
+.ui.compact.table td {
+ padding: 0.2em 0.5em;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+/* Small */
+
+.ui.small.table {
+ font-size: 0.875em;
+}
+
+/* Standard */
+
+.ui.table {
+ font-size: 1em;
+}
+
+/* Large */
+
+.ui.large.table {
+ font-size: 1.1em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/elements/basic.icon.css b/css/semantic/rtl/uncompressed/elements/basic.icon.css
new file mode 100644
index 0000000..c922911
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/elements/basic.icon.css
@@ -0,0 +1,1125 @@
+/*
+ * # Semantic - basic.Icon (Basic)
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Basic Icon
+*******************************/
+
+@font-face {
+ font-family: 'Basic Icons';
+ src: url(../fonts/basic.icons.eot);
+ src: url(../fonts/basic.icons.eot?#iefix) format('embedded-opentype'), url(../fonts/basic.icons.svg#basic.icons) format('svg'), url(../fonts/basic.icons.woff) format('woff'), url(../fonts/basic.icons.ttf) format('truetype');
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-decoration: inherit;
+ text-transform: none;
+}
+
+i.basic.icon {
+ display: inline-block;
+ opacity: 0.75;
+ margin: 0em 0em 0em 0.25em;
+ width: 1.23em;
+ height: 1em;
+ font-family: 'Basic Icons';
+ font-style: normal;
+ line-height: 1;
+ font-weight: normal;
+ text-decoration: inherit;
+ text-align: center;
+ speak: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-font-smoothing: antialiased;
+ -moz-font-smoothing: antialiased;
+ font-smoothing: antialiased;
+}
+
+/* basic.icons available */
+
+i.basic.icon.circle.attention:before {
+ content: '\2757';
+}
+
+/* '❗' */
+
+i.basic.icon.circle.help:before {
+ content: '\e704';
+}
+
+/* '' */
+
+i.basic.icon.circle.info:before {
+ content: '\e705';
+}
+
+/* '' */
+
+i.basic.icon.add:before {
+ content: '\2795';
+}
+
+/* '➕' */
+
+i.basic.icon.chart:before {
+ content: '📈';
+}
+
+/* '\1f4c8' */
+
+i.basic.icon.chart.bar:before {
+ content: '📊';
+}
+
+/* '\1f4ca' */
+
+i.basic.icon.chart.pie:before {
+ content: '\e7a2';
+}
+
+/* '' */
+
+i.basic.icon.resize.full:before {
+ content: '\e744';
+}
+
+/* '' */
+
+i.basic.icon.resize.horizontal:before {
+ content: '\2b0d';
+}
+
+/* '⬍' */
+
+i.basic.icon.resize.small:before {
+ content: '\e746';
+}
+
+/* '' */
+
+i.basic.icon.resize.vertical:before {
+ content: '\2b0c';
+}
+
+/* '⬌' */
+
+i.basic.icon.down:before {
+ content: '\2193';
+}
+
+/* '↓' */
+
+i.basic.icon.down.triangle:before {
+ content: '\25be';
+}
+
+/* '▾' */
+
+i.basic.icon.down.arrow:before {
+ content: '\e75c';
+}
+
+/* '' */
+
+i.basic.icon.left:before {
+ content: '\2190';
+}
+
+/* '←' */
+
+i.basic.icon.left.triangle:before {
+ content: '\25c2';
+}
+
+/* '◂' */
+
+i.basic.icon.left.arrow:before {
+ content: '\e75d';
+}
+
+/* '' */
+
+i.basic.icon.right:before {
+ content: '\2192';
+}
+
+/* '→' */
+
+i.basic.icon.right.triangle:before {
+ content: '\25b8';
+}
+
+/* '▸' */
+
+i.basic.icon.right.arrow:before {
+ content: '\e75e';
+}
+
+/* '' */
+
+i.basic.icon.up:before {
+ content: '\2191';
+}
+
+/* '↑' */
+
+i.basic.icon.up.triangle:before {
+ content: '\25b4';
+}
+
+/* '▴' */
+
+i.basic.icon.up.arrow:before {
+ content: '\e75f';
+}
+
+/* '' */
+
+i.basic.icon.folder:before {
+ content: '\e810';
+}
+
+/* '' */
+
+i.basic.icon.open.folder:before {
+ content: '📂';
+}
+
+/* '\1f4c2' */
+
+i.basic.icon.globe:before {
+ content: '𝌍';
+}
+
+/* '\1d30d' */
+
+i.basic.icon.desk.globe:before {
+ content: '🌐';
+}
+
+/* '\1f310' */
+
+i.basic.icon.star:before {
+ content: '\e801';
+}
+
+/* '' */
+
+i.basic.icon.star.empty:before {
+ content: '\e800';
+}
+
+/* '' */
+
+i.basic.icon.star.half:before {
+ content: '\e701';
+}
+
+/* '' */
+
+i.basic.icon.lock:before {
+ content: '🔒';
+}
+
+/* '\1f512' */
+
+i.basic.icon.unlock:before {
+ content: '🔓';
+}
+
+/* '\1f513' */
+
+i.basic.icon.layout.grid:before {
+ content: '\e80c';
+}
+
+/* '' */
+
+i.basic.icon.layout.block:before {
+ content: '\e708';
+}
+
+/* '' */
+
+i.basic.icon.layout.list:before {
+ content: '\e80b';
+}
+
+/* '' */
+
+i.basic.icon.heart.empty:before {
+ content: '\2661';
+}
+
+/* '♡' */
+
+i.basic.icon.heart:before {
+ content: '\2665';
+}
+
+/* '♥' */
+
+i.basic.icon.asterisk:before {
+ content: '\2731';
+}
+
+/* '✱' */
+
+i.basic.icon.attachment:before {
+ content: '📎';
+}
+
+/* '\1f4ce' */
+
+i.basic.icon.attention:before {
+ content: '\26a0';
+}
+
+/* '⚠' */
+
+i.basic.icon.trophy:before {
+ content: '🏉';
+}
+
+/* '\1f3c9' */
+
+i.basic.icon.barcode:before {
+ content: '\e792';
+}
+
+/* '' */
+
+i.basic.icon.cart:before {
+ content: '\e813';
+}
+
+/* '' */
+
+i.basic.icon.block:before {
+ content: '🚫';
+}
+
+/* '\1f6ab' */
+
+i.basic.icon.book:before {
+ content: '📖';
+}
+
+i.basic.icon.bookmark:before {
+ content: '🔖';
+}
+
+/* '\1f516' */
+
+i.basic.icon.calendar:before {
+ content: '📅';
+}
+
+/* '\1f4c5' */
+
+i.basic.icon.cancel:before {
+ content: '\2716';
+}
+
+/* '✖' */
+
+i.basic.icon.close:before {
+ content: '\e80d';
+}
+
+/* '' */
+
+i.basic.icon.color:before {
+ content: '\e794';
+}
+
+/* '' */
+
+i.basic.icon.chat:before {
+ content: '\e720';
+}
+
+/* '' */
+
+i.basic.icon.check:before {
+ content: '\2611';
+}
+
+/* '☑' */
+
+i.basic.icon.time:before {
+ content: '🕔';
+}
+
+/* '\1f554' */
+
+i.basic.icon.cloud:before {
+ content: '\2601';
+}
+
+/* '☁' */
+
+i.basic.icon.code:before {
+ content: '\e714';
+}
+
+/* '' */
+
+i.basic.icon.email:before {
+ content: '\40';
+}
+
+/* '@' */
+
+i.basic.icon.settings:before {
+ content: '\26ef';
+}
+
+/* '⛯' */
+
+i.basic.icon.setting:before {
+ content: '\2699';
+}
+
+/* '⚙' */
+
+i.basic.icon.comment:before {
+ content: '\e802';
+}
+
+/* '' */
+
+i.basic.icon.clockwise.counter:before {
+ content: '\27f2';
+}
+
+/* '⟲' */
+
+i.basic.icon.clockwise:before {
+ content: '\27f3';
+}
+
+/* '⟳' */
+
+i.basic.icon.cube:before {
+ content: '\e807';
+}
+
+/* '' */
+
+i.basic.icon.direction:before {
+ content: '\27a2';
+}
+
+/* '➢' */
+
+i.basic.icon.doc:before {
+ content: '📄';
+}
+
+/* '\1f4c4' */
+
+i.basic.icon.docs:before {
+ content: '\e736';
+}
+
+/* '' */
+
+i.basic.icon.dollar:before {
+ content: '💵';
+}
+
+/* '\1f4b5' */
+
+i.basic.icon.paint:before {
+ content: '\e7b5';
+}
+
+/* '' */
+
+i.basic.icon.edit:before {
+ content: '\270d';
+}
+
+/* '✍' */
+
+i.basic.icon.eject:before {
+ content: '\2ecf';
+}
+
+/* '⻏' */
+
+i.basic.icon.export:before {
+ content: '\e715';
+}
+
+/* '' */
+
+i.basic.icon.hide:before {
+ content: '\e70b';
+}
+
+/* '' */
+
+i.basic.icon.unhide:before {
+ content: '\e80f';
+}
+
+/* '' */
+
+i.basic.icon.facebook:before {
+ content: '\f301';
+}
+
+/* '' */
+
+i.basic.icon.fast-forward:before {
+ content: '\e804';
+}
+
+/* '' */
+
+i.basic.icon.fire:before {
+ content: '🔥';
+}
+
+/* '\1f525' */
+
+i.basic.icon.flag:before {
+ content: '\2691';
+}
+
+/* '⚑' */
+
+i.basic.icon.lightning:before {
+ content: '\26a1';
+}
+
+/* '⚡' */
+
+i.basic.icon.lab:before {
+ content: '\68';
+}
+
+/* 'h' */
+
+i.basic.icon.flight:before {
+ content: '\2708';
+}
+
+/* '✈' */
+
+i.basic.icon.forward:before {
+ content: '\27a6';
+}
+
+/* '➦' */
+
+i.basic.icon.gift:before {
+ content: '🎁';
+}
+
+/* '\1f381' */
+
+i.basic.icon.github:before {
+ content: '\f308';
+}
+
+/* '' */
+
+i.basic.icon.globe:before {
+ content: '\e817';
+}
+
+/* '' */
+
+i.basic.icon.headphones:before {
+ content: '🎧';
+}
+
+/* '\1f3a7' */
+
+i.basic.icon.question:before {
+ content: '\2753';
+}
+
+/* '❓' */
+
+i.basic.icon.home:before {
+ content: '\2302';
+}
+
+/* '⌂' */
+
+i.basic.icon.i:before {
+ content: '\2139';
+}
+
+/* 'ℹ' */
+
+i.basic.icon.idea:before {
+ content: '💡';
+}
+
+/* '\1f4a1' */
+
+i.basic.icon.open:before {
+ content: '🔗';
+}
+
+/* '\1f517' */
+
+i.basic.icon.content:before {
+ content: '\e782';
+}
+
+/* '' */
+
+i.basic.icon.location:before {
+ content: '\e724';
+}
+
+/* '' */
+
+i.basic.icon.mail:before {
+ content: '\2709';
+}
+
+/* '✉' */
+
+i.basic.icon.mic:before {
+ content: '🎤';
+}
+
+/* '\1f3a4' */
+
+i.basic.icon.minus:before {
+ content: '\2d';
+}
+
+/* '-' */
+
+i.basic.icon.money:before {
+ content: '💰';
+}
+
+/* '\1f4b0' */
+
+i.basic.icon.off:before {
+ content: '\e78e';
+}
+
+/* '' */
+
+i.basic.icon.pause:before {
+ content: '\e808';
+}
+
+/* '' */
+
+i.basic.icon.photos:before {
+ content: '\e812';
+}
+
+/* '' */
+
+i.basic.icon.photo:before {
+ content: '🌄';
+}
+
+/* '\1f304' */
+
+i.basic.icon.pin:before {
+ content: '📌';
+}
+
+/* '\1f4cc' */
+
+i.basic.icon.play:before {
+ content: '\e809';
+}
+
+/* '' */
+
+i.basic.icon.plus:before {
+ content: '\2b';
+}
+
+/* '+' */
+
+i.basic.icon.print:before {
+ content: '\e716';
+}
+
+/* '' */
+
+i.basic.icon.rss:before {
+ content: '\e73a';
+}
+
+/* '' */
+
+i.basic.icon.search:before {
+ content: '🔍';
+}
+
+/* '\1f50d' */
+
+i.basic.icon.shuffle:before {
+ content: '\e803';
+}
+
+/* '' */
+
+i.basic.icon.tag:before {
+ content: '\e80a';
+}
+
+/* '' */
+
+i.basic.icon.tags:before {
+ content: '\e70d';
+}
+
+/* '' */
+
+i.basic.icon.terminal:before {
+ content: '\e7ac';
+}
+
+/* '' */
+
+i.basic.icon.thumbs.down:before {
+ content: '👎';
+}
+
+/* '\1f44e' */
+
+i.basic.icon.thumbs.up:before {
+ content: '👍';
+}
+
+/* '\1f44d' */
+
+i.basic.icon.to-end:before {
+ content: '\e806';
+}
+
+/* '' */
+
+i.basic.icon.to-start:before {
+ content: '\e805';
+}
+
+/* '' */
+
+i.basic.icon.top.list:before {
+ content: '🏆';
+}
+
+/* '\1f3c6' */
+
+i.basic.icon.trash:before {
+ content: '\e729';
+}
+
+/* '' */
+
+i.basic.icon.twitter:before {
+ content: '\f303';
+}
+
+/* '' */
+
+i.basic.icon.upload:before {
+ content: '\e711';
+}
+
+/* '' */
+
+i.basic.icon.user.add:before {
+ content: '\e700';
+}
+
+/* '' */
+
+i.basic.icon.user:before {
+ content: '👤';
+}
+
+/* '\1f464' */
+
+i.basic.icon.community:before {
+ content: '\e814';
+}
+
+/* '' */
+
+i.basic.icon.users:before {
+ content: '👥';
+}
+
+/* '\1f465' */
+
+i.basic.icon.id:before {
+ content: '\e722';
+}
+
+/* '' */
+
+i.basic.icon.url:before {
+ content: '🔗';
+}
+
+/* '\1f517' */
+
+i.basic.icon.zoom.in:before {
+ content: '\e750';
+}
+
+/* '' */
+
+i.basic.icon.zoom.out:before {
+ content: '\e751';
+}
+
+/* '' */
+
+/*--------------
+ Spacing Fix
+---------------*/
+
+/* dropdown arrows are to the right */
+
+i.dropdown.basic.icon {
+ margin: 0em 0.5em 0em 0em;
+}
+
+/* stars are usually consecutive */
+
+i.basic.icon.star {
+ width: auto;
+ margin: 0em;
+}
+
+/* left side basic.icons */
+
+i.basic.icon.left,
+i.basic.icon.left,
+i.basic.icon.left {
+ width: auto;
+ margin: 0em 0em 0em 0.5em;
+}
+
+/* right side basic.icons */
+
+i.basic.icon.search,
+i.basic.icon.up,
+i.basic.icon.down,
+i.basic.icon.right {
+ width: auto;
+ margin: 0em 0.5em 0em 0em;
+}
+
+/*--------------
+ Aliases
+---------------*/
+
+/* aliases for convenience */
+
+i.basic.icon.delete:before {
+ content: '\e80d';
+}
+
+/* '' */
+
+i.basic.icon.dropdown:before {
+ content: '\25be';
+}
+
+/* '▾' */
+
+i.basic.icon.help:before {
+ content: '\e704';
+}
+
+/* '' */
+
+i.basic.icon.info:before {
+ content: '\e705';
+}
+
+/* '' */
+
+i.basic.icon.error:before {
+ content: '\e80d';
+}
+
+/* '' */
+
+i.basic.icon.dislike:before {
+ content: '\2661';
+}
+
+/* '♡' */
+
+i.basic.icon.like:before {
+ content: '\2665';
+}
+
+/* '♥' */
+
+i.basic.icon.eye:before {
+ content: '\e80f';
+}
+
+/* '' */
+
+i.basic.icon.eye.hidden:before {
+ content: '\e70b';
+}
+
+/* '' */
+
+i.basic.icon.date:before {
+ content: '📅';
+}
+
+/* '\1f4c5' */
+
+/*******************************
+ States
+*******************************/
+
+i.basic.icon.hover {
+ opacity: 1;
+}
+
+i.basic.icon.active {
+ opacity: 1;
+}
+
+i.emphasized.basic.icon {
+ opacity: 1;
+}
+
+i.basic.icon.disabled {
+ opacity: 0.3;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Link
+--------------------*/
+
+i.link.basic.icon {
+ cursor: pointer;
+ opacity: 0.7;
+ -webkit-transition: opacity 0.3s ease-out;
+ -moz-transition: opacity 0.3s ease-out;
+ transition: opacity 0.3s ease-out;
+}
+
+.link.basic.icon:hover {
+ opacity: 1 !important;
+}
+
+/*-------------------
+ Circular
+--------------------*/
+
+i.circular.basic.icon {
+ border-radius: !important 500px;
+ padding: 0.5em 0em !important;
+ -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ line-height: 1 !important;
+ width: 2em !important;
+ height: 2em !important;
+}
+
+i.circular.inverted.basic.icon {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Flipped
+--------------------*/
+
+i.vertically.flipped.basic.icon {
+ -webkit-transform: scale(1, -1);
+ -moz-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+
+i.horizontally.flipped.basic.icon {
+ -webkit-transform: scale(-1, 1);
+ -moz-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+
+/*-------------------
+ Rotated
+--------------------*/
+
+i.left.rotated.basic.icon {
+ -webkit-transform: rotate(-90deg);
+ -moz-transform: rotate(-90deg);
+ -ms-transform: rotate(-90deg);
+ transform: rotate(-90deg);
+}
+
+i.right.rotated.basic.icon {
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+
+/*-------------------
+ Square
+--------------------*/
+
+i.square.basic.icon {
+ width: 2em;
+ height: 2em;
+ padding: 0.5em 0.35em !important;
+ -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ vertical-align: baseline;
+}
+
+i.square.basic.icon:before {
+ vertical-align: middle;
+}
+
+i.square.inverted.basic.icon {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+i.inverted.basic.icon {
+ background-color: #222222;
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+i.blue.basic.icon {
+ color: #6ECFF5 !important;
+}
+
+i.black.basic.icon {
+ color: #5C6166 !important;
+}
+
+i.green.basic.icon {
+ color: #A1CF64 !important;
+}
+
+i.red.basic.icon {
+ color: #D95C5C !important;
+}
+
+i.purple.basic.icon {
+ color: #564F8A !important;
+}
+
+i.teal.basic.icon {
+ color: #00B5AD !important;
+}
+
+/*-------------------
+ Inverted Colors
+--------------------*/
+
+i.inverted.black.basic.icon {
+ background-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.blue.basic.icon {
+ background-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.green.basic.icon {
+ background-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.red.basic.icon {
+ background-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.purple.basic.icon {
+ background-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.teal.basic.icon {
+ background-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+i.small.basic.icon {
+ font-size: 0.875em;
+}
+
+i.basic.icon {
+ font-size: 1em;
+}
+
+i.large.basic.icon {
+ font-size: 1.5em;
+ margin-left: 0.2em;
+ vertical-align: middle;
+}
+
+i.big.basic.icon {
+ font-size: 2em;
+ margin-left: 0.5em;
+ vertical-align: middle;
+}
+
+i.huge.basic.icon {
+ font-size: 4em;
+ margin-left: 0.75em;
+ vertical-align: middle;
+}
+
+i.massive.basic.icon {
+ font-size: 8em;
+ margin-left: 1em;
+ vertical-align: middle;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/elements/button.css b/css/semantic/rtl/uncompressed/elements/button.css
new file mode 100644
index 0000000..6e1bf79
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/elements/button.css
@@ -0,0 +1,1424 @@
+/*
+ * # Semantic - Button
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Button
+*******************************/
+
+/* Prototype */
+
+.ui.button {
+ cursor: pointer;
+ display: inline-block;
+ vertical-align: middle;
+ min-height: 1em;
+ outline: none;
+ border: none;
+ background-color: #FAFAFA;
+ color: #808080;
+ margin: 0em;
+ padding: 0.8em 1.5em;
+ font-size: 1rem;
+ text-transform: uppercase;
+ line-height: 1;
+ font-weight: bold;
+ font-style: normal;
+ text-align: center;
+ text-decoration: none;
+ background-image: -webkit-gradient(linear, right top, right bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.05)));
+ background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
+ background-image: -moz-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
+ background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
+ border-radius: 0.25em;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.08) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.08) inset;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -webkit-transition: opacity 0.25s ease, background-color 0.25s ease, color 0.25s ease, background 0.25s ease, -webkit-box-shadow 0.25s ease;
+ -moz-transition: opacity 0.25s ease, background-color 0.25s ease, color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
+ transition: opacity 0.25s ease, background-color 0.25s ease, color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Active
+---------------*/
+
+.ui.buttons .active.button,
+.ui.active.button {
+ background-color: #EAEAEA;
+ background-image: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.button:hover {
+ background-image: -webkit-gradient(linear, right top, right bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.08)));
+ background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.08));
+ background-image: -moz-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.08));
+ background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.08));
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.button.active:hover {
+ background-image: none;
+}
+
+.ui.button:hover .icon,
+.ui.button.hover .icon {
+ opacity: 0.85;
+}
+
+/*--------------
+ Down
+---------------*/
+
+.ui.button:active,
+.ui.active.button:active {
+ background-color: #F1F1F1;
+ color: rgba(0, 0, 0, 0.7);
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset !important;
+}
+
+/*--------------
+ Loading
+---------------*/
+
+.ui.loading.button {
+ position: relative;
+ cursor: default;
+ background-color: #FFFFFF !important;
+ color: transparent !important;
+ -webkit-transition: all 0s linear;
+ -moz-transition: all 0s linear;
+ transition: all 0s linear;
+}
+
+.ui.loading.button:after {
+ position: absolute;
+ top: 0em;
+ right: 0em;
+ width: 100%;
+ height: 100%;
+ content: '';
+ background: transparent url(../images/loader-mini.gif) no-repeat 50% 50%;
+}
+
+.ui.labeled.icon.loading.button .icon {
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Disabled
+--------------------*/
+
+.ui.disabled.button,
+.ui.disabled.button:hover,
+.ui.disabled.button.active {
+ background-color: #DDDDDD !important;
+ cursor: default;
+ color: rgba(0, 0, 0, 0.5) !important;
+ opacity: 0.3 !important;
+ background-image: none !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Animated
+--------------------*/
+
+.ui.animated.button {
+ position: relative;
+ overflow: hidden;
+}
+
+.ui.animated.button .visible.content {
+ position: relative;
+}
+
+.ui.animated.button .hidden.content {
+ position: absolute;
+ width: 100%;
+}
+
+/* Horizontal */
+
+.ui.animated.button .visible.content,
+.ui.animated.button .hidden.content {
+ -webkit-transition: left 0.3s ease 0s;
+ -moz-transition: left 0.3s ease 0s;
+ transition: left 0.3s ease 0s;
+}
+
+.ui.animated.button .visible.content {
+ right: auto;
+ left: 0%;
+}
+
+.ui.animated.button .hidden.content {
+ top: 50%;
+ right: auto;
+ left: -100%;
+ margin-top: -0.55em;
+}
+
+.ui.animated.button:hover .visible.content {
+ right: auto;
+ left: 200%;
+}
+
+.ui.animated.button:hover .hidden.content {
+ right: auto;
+ left: 0%;
+}
+
+/* Vertical */
+
+.ui.vertical.animated.button .visible.content,
+.ui.vertical.animated.button .hidden.content {
+ -webkit-transition: top 0.3s ease 0s, -webkit-transform 0.3s ease 0s;
+ -moz-transition: top 0.3s ease 0s, -moz-transform 0.3s ease 0s;
+ transition: top 0.3s ease 0s, transform 0.3s ease 0s;
+}
+
+.ui.vertical.animated.button .visible.content {
+ -webkit-transform: translateY(0%);
+ -moz-transform: translateY(0%);
+ -ms-transform: translateY(0%);
+ transform: translateY(0%);
+ left: auto;
+}
+
+.ui.vertical.animated.button .hidden.content {
+ top: -100%;
+ right: 0%;
+ left: auto;
+}
+
+.ui.vertical.animated.button:hover .visible.content {
+ -webkit-transform: translateY(200%);
+ -moz-transform: translateY(200%);
+ -ms-transform: translateY(200%);
+ transform: translateY(200%);
+ left: auto;
+}
+
+.ui.vertical.animated.button:hover .hidden.content {
+ top: 50%;
+ left: auto;
+}
+
+/* Fade */
+
+.ui.fade.animated.button .visible.content,
+.ui.fade.animated.button .hidden.content {
+ -webkit-transition: opacity 0.3s ease 0s, -webkit-transform 0.3s ease 0s;
+ -moz-transition: opacity 0.3s ease 0s, -moz-transform 0.3s ease 0s;
+ transition: opacity 0.3s ease 0s, transform 0.3s ease 0s;
+}
+
+.ui.fade.animated.button .visible.content {
+ right: auto;
+ left: auto;
+ opacity: 1;
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+}
+
+.ui.fade.animated.button .hidden.content {
+ opacity: 0;
+ right: 0%;
+ left: auto;
+ -webkit-transform: scale(1.2);
+ -moz-transform: scale(1.2);
+ -ms-transform: scale(1.2);
+ transform: scale(1.2);
+}
+
+.ui.fade.animated.button:hover .visible.content {
+ right: auto;
+ left: auto;
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ -moz-transform: scale(0.7);
+ -ms-transform: scale(0.7);
+ transform: scale(0.7);
+}
+
+.ui.fade.animated.button:hover .hidden.content {
+ right: 0%;
+ left: auto;
+ opacity: 1;
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+}
+
+/*-------------------
+ Primary
+--------------------*/
+
+.ui.primary.buttons .button,
+.ui.primary.button {
+ background-color: #D95C5C;
+ color: #FFFFFF;
+}
+
+.ui.primary.buttons .button:hover,
+.ui.primary.button:hover,
+.ui.primary.buttons .active.button,
+.ui.primary.button.active {
+ background-color: #E75859;
+ color: #FFFFFF;
+}
+
+.ui.primary.buttons .button:active,
+.ui.primary.button:active {
+ background-color: #D24B4C;
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Secondary
+--------------------*/
+
+.ui.secondary.buttons .button,
+.ui.secondary.button {
+ background-color: #00B5AD;
+ color: #FFFFFF;
+}
+
+.ui.secondary.buttons .button:hover,
+.ui.secondary.button:hover,
+.ui.secondary.buttons .active.button,
+.ui.secondary.button.active {
+ background-color: #009A93;
+ color: #FFFFFF;
+}
+
+.ui.secondary.buttons .button:active,
+.ui.secondary.button:active {
+ background-color: #00847E;
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Social
+--------------------*/
+
+/* Facebook */
+
+.ui.facebook.button {
+ background-color: #3B579D;
+ color: #FFFFFF;
+}
+
+.ui.facebook.button:hover {
+ background-color: #3A59A9;
+ color: #FFFFFF;
+}
+
+.ui.facebook.button:active {
+ background-color: #334F95;
+ color: #FFFFFF;
+}
+
+/* Twitter */
+
+.ui.twitter.button {
+ background-color: #4092CC;
+ color: #FFFFFF;
+}
+
+.ui.twitter.button:hover {
+ background-color: #399ADE;
+ color: #FFFFFF;
+}
+
+.ui.twitter.button:active {
+ background-color: #3283BC;
+ color: #FFFFFF;
+}
+
+/* Google Plus */
+
+.ui.google.plus.button {
+ background-color: #D34836;
+ color: #FFFFFF;
+}
+
+.ui.google.plus.button:hover {
+ background-color: #E3432E;
+ color: #FFFFFF;
+}
+
+.ui.google.plus.button:active {
+ background-color: #CA3A27;
+ color: #FFFFFF;
+}
+
+/* Linked In */
+
+.ui.linkedin.button {
+ background-color: #1F88BE;
+ color: #FFFFFF;
+}
+
+.ui.linkedin.button:hover {
+ background-color: #1394D6;
+ color: #FFFFFF;
+}
+
+.ui.linkedin.button:active {
+ background-color: #1179AE;
+ color: #FFFFFF;
+}
+
+/* YouTube */
+
+.ui.youtube.button {
+ background-color: #CC181E;
+ color: #FFFFFF;
+}
+
+.ui.youtube.button:hover {
+ background-color: #DF0209;
+ color: #FFFFFF;
+}
+
+.ui.youtube.button:active {
+ background-color: #A50006;
+ color: #FFFFFF;
+}
+
+/* Instagram */
+
+.ui.instagram.button {
+ background-color: #49769C;
+ color: #FFFFFF;
+}
+
+.ui.instagram.button:hover {
+ background-color: #4781B1;
+ color: #FFFFFF;
+}
+
+.ui.instagram.button:active {
+ background-color: #38658A;
+ color: #FFFFFF;
+}
+
+/* Pinterest */
+
+.ui.pinterest.button {
+ background-color: #00ACED;
+ color: #FFFFFF;
+}
+
+.ui.pinterest.button:hover {
+ background-color: #00B9FF;
+ color: #FFFFFF;
+}
+
+.ui.pinterest.button:active {
+ background-color: #009EDA;
+ color: #FFFFFF;
+}
+
+/* vk.com */
+
+.ui.vk.button {
+ background-color: #4D7198;
+ color: #FFFFFF;
+}
+
+.ui.vk.button:hover {
+ background-color: #537AA5;
+ color: #FFFFFF;
+}
+
+.ui.vk.button:active {
+ background-color: #405E7E;
+ color: #FFFFFF;
+}
+
+/*--------------
+ Icon
+---------------*/
+
+.ui.button > .icon {
+ margin-left: 0.6em;
+ line-height: 1;
+ -webkit-transition: opacity 0.1s ease;
+ -moz-transition: opacity 0.1s ease;
+ transition: opacity 0.1s ease;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Floated
+--------------------*/
+
+.ui.left.floated.buttons,
+.ui.left.floated.button {
+ float: right;
+ margin-left: 0.25em;
+}
+
+.ui.right.floated.buttons,
+.ui.right.floated.button {
+ float: left;
+ margin-right: 0.25em;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+.ui.buttons .button,
+.ui.button {
+ font-size: 1rem;
+}
+
+.ui.mini.buttons .button,
+.ui.mini.buttons .or,
+.ui.mini.button {
+ font-size: 0.8rem;
+}
+
+.ui.mini.buttons .button,
+.ui.mini.button {
+ padding: 0.6em 0.8em;
+}
+
+.ui.mini.icon.buttons .button,
+.ui.mini.buttons .icon.button {
+ padding: 0.6em 0.6em;
+}
+
+.ui.tiny.buttons .button,
+.ui.tiny.buttons .or,
+.ui.tiny.button {
+ font-size: 0.875em;
+}
+
+.ui.tiny.buttons .button,
+.ui.tiny.buttons .button,
+.ui.tiny.button {
+ padding: 0.6em 0.8em;
+}
+
+.ui.tiny.icon.buttons .button,
+.ui.tiny.buttons .icon.button {
+ padding: 0.6em 0.6em;
+}
+
+.ui.small.buttons .button,
+.ui.small.buttons .or,
+.ui.small.button {
+ font-size: 0.875rem;
+}
+
+.ui.large.buttons .button,
+.ui.large.buttons .or,
+.ui.large.button {
+ font-size: 1.125rem;
+}
+
+.ui.big.buttons .button,
+.ui.big.buttons .or,
+.ui.big.button {
+ font-size: 1.25rem;
+}
+
+.ui.huge.buttons .button,
+.ui.huge.buttons .or,
+.ui.huge.button {
+ font-size: 1.375rem;
+}
+
+.ui.massive.buttons .button,
+.ui.massive.buttons .or,
+.ui.massive.button {
+ font-size: 1.5rem;
+ font-weight: bold;
+}
+
+/* Or resize */
+
+.ui.tiny.buttons .or:before,
+.ui.mini.buttons .or:before {
+ width: 1.45em;
+ height: 1.55em;
+ line-height: 1.4;
+ margin-right: -0.725em;
+ margin-top: -0.25em;
+}
+
+.ui.tiny.buttons .or:after,
+.ui.mini.buttons .or:after {
+ height: 1.45em;
+}
+
+/* loading */
+
+.ui.huge.loading.button:after {
+ background-image: url(../images/loader-small.gif);
+}
+
+.ui.massive.buttons .loading.button:after,
+.ui.gigantic.buttons .loading.button:after,
+.ui.massive.loading.button:after,
+.ui.gigantic.loading.button:after {
+ background-image: url(../images/loader-medium.gif);
+}
+
+.ui.huge.loading.button:after,
+.ui.huge.loading.button.active:after {
+ background-image: url(../images/loader-small.gif);
+}
+
+.ui.massive.buttons .loading.button:after,
+.ui.gigantic.buttons .loading.button:after,
+.ui.massive.loading.button:after,
+.ui.gigantic.loading.button:after,
+.ui.massive.buttons .loading.button.active:after,
+.ui.gigantic.buttons .loading.button.active:after,
+.ui.massive.loading.button.active:after,
+.ui.gigantic.loading.button.active:after {
+ background-image: url(../images/loader-medium.gif);
+}
+
+/*--------------
+ Icon Only
+---------------*/
+
+.ui.icon.buttons .button,
+.ui.icon.button {
+ padding: 0.8em;
+}
+
+.ui.icon.buttons .button > .icon,
+.ui.icon.button > .icon {
+ opacity: 0.9;
+ margin: 0em;
+ vertical-align: top;
+}
+
+/*-------------------
+ Basic
+--------------------*/
+
+.ui.basic.buttons .button,
+.ui.basic.button {
+ background-color: transparent !important;
+ background-image: none;
+ color: #808080 !important;
+ font-weight: normal;
+ text-transform: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.basic.buttons {
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ border-radius: 0.25em;
+}
+
+.ui.basic.buttons .button:hover,
+.ui.basic.button:hover {
+ background-image: none;
+ color: #7F7F7F !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.18) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.18) inset;
+}
+
+.ui.basic.buttons .button:active,
+.ui.basic.button:active {
+ background-color: rgba(0, 0, 0, 0.02) !important;
+ color: #7F7F7F !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.basic.buttons .button.active,
+.ui.basic.button.active {
+ background-color: rgba(0, 0, 0, 0.05);
+ color: #7F7F7F;
+ -webkit-box-shadow: 0px 0px 0px 1px #BDBDBD inset;
+ box-shadow: 0px 0px 0px 1px #BDBDBD inset;
+}
+
+.ui.basic.buttons .button.active:hover,
+.ui.basic.button.active:hover {
+ background-color: rgba(0, 0, 0, 0.1);
+}
+
+/* Inverted */
+
+.ui.basic.inverted.buttons .button,
+.ui.basic.inverted.button {
+ color: #FAFAFA !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.3) inset;
+ box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.3) inset;
+}
+
+.ui.basic.inverted.buttons .button:hover,
+.ui.basic.inverted.button:hover {
+ background-image: none;
+ color: #FFFFFF !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.5) inset;
+ box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.5) inset;
+}
+
+.ui.basic.inverted.buttons .button:active,
+.ui.basic.inverted.button:active {
+ background-color: rgba(255, 255, 255, 0.05) !important;
+ color: #FFFFFF !important;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.8) inset !important;
+ box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, 0.8) inset !important;
+}
+
+.ui.basic.inverted.buttons .button.active,
+.ui.basic.inverted.button.active {
+ background-color: rgba(255, 255, 255, 0.5);
+ color: #FFFFFF;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.basic.inverted.buttons .button.active:hover,
+.ui.basic.inverted.button.active:hover {
+ background-color: rgba(0, 0, 0, 0.1);
+}
+
+/* Basic Group */
+
+.ui.basic.buttons .button {
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.basic.buttons .button:hover,
+.ui.basic.buttons .button:active {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.basic.buttons .button.active,
+.ui.basic.buttons .button.active:hover {
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2) inset;
+}
+
+/*--------------
+ Labeled Icon
+---------------*/
+
+.ui.labeled.icon.buttons .button,
+.ui.labeled.icon.button {
+ position: relative;
+ padding-right: 4em !important;
+ padding-left: 1.4em !important;
+}
+
+.ui.labeled.icon.buttons > .button > .icon,
+.ui.labeled.icon.button > .icon {
+ position: absolute;
+ top: 0em;
+ right: 0em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 2.75em;
+ height: 100%;
+ padding-top: 0.8em;
+ background-color: rgba(0, 0, 0, 0.05);
+ text-align: center;
+ border-radius: 0px 0.25em 0.25em 0px;
+ line-height: 1;
+ -webkit-box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset;
+ box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset;
+}
+
+.ui.labeled.icon.buttons .button > .icon {
+ border-radius: 0em;
+}
+
+.ui.labeled.icon.buttons .button:first-child > .icon {
+ border-top-right-radius: 0.25em;
+ border-bottom-right-radius: 0.25em;
+}
+
+.ui.labeled.icon.buttons .button:last-child > .icon {
+ border-top-left-radius: 0.25em;
+ border-bottom-left-radius: 0.25em;
+}
+
+.ui.vertical.labeled.icon.buttons .button:first-child > .icon {
+ border-radius: 0em;
+ border-top-right-radius: 0.25em;
+}
+
+.ui.vertical.labeled.icon.buttons .button:last-child > .icon {
+ border-radius: 0em;
+ border-bottom-right-radius: 0.25em;
+}
+
+.ui.right.labeled.icon.button {
+ padding-right: 1.4em !important;
+ padding-left: 4em !important;
+}
+
+.ui.left.fluid.labeled.icon.button,
+.ui.right.fluid.labeled.icon.button {
+ padding-right: 1.4em !important;
+ padding-left: 1.4em !important;
+}
+
+.ui.right.labeled.icon.button .icon {
+ right: auto;
+ left: 0em;
+ border-radius: 0.25em 0em 0em 0.25em;
+ -webkit-box-shadow: 1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset;
+ box-shadow: 1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset;
+}
+
+/*--------------
+ Toggle
+---------------*/
+
+/* Toggle (Modifies active state to give affordances) */
+
+.ui.toggle.buttons .active.button,
+.ui.buttons .button.toggle.active,
+.ui.button.toggle.active {
+ background-color: #5BBD72 !important;
+ color: #FFFFFF !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+.ui.button.toggle.active:hover {
+ background-color: #58CB73 !important;
+ color: #FFFFFF !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+}
+
+/*--------------
+ Circular
+---------------*/
+
+.ui.circular.button {
+ border-radius: 10em;
+}
+
+/*--------------
+ Attached
+---------------*/
+
+.ui.attached.button {
+ display: block;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important;
+}
+
+.ui.attached.top.button {
+ border-radius: 0.25em 0.25em 0em 0em;
+}
+
+.ui.attached.bottom.button {
+ border-radius: 0em 0em 0.25em 0.25em;
+}
+
+.ui.attached.left.button {
+ display: inline-block;
+ border-right: none;
+ padding-left: 0.75em;
+ text-align: left;
+ border-radius: 0em 0.25em 0.25em 0em;
+}
+
+.ui.attached.right.button {
+ display: inline-block;
+ padding-right: 0.75em;
+ text-align: right;
+ border-radius: 0.25em 0em 0em 0.25em;
+}
+
+/*-------------------
+ Or Buttons
+--------------------*/
+
+.ui.buttons .or {
+ position: relative;
+ float: right;
+ width: 0.3em;
+ height: 1.1em;
+ z-index: 3;
+}
+
+.ui.buttons .or:before {
+ position: absolute;
+ top: 50%;
+ right: 50%;
+ content: 'or';
+ background-color: #FFFFFF;
+ margin-top: -0.1em;
+ margin-right: -0.9em;
+ width: 1.8em;
+ height: 1.8em;
+ line-height: 1.55;
+ color: #AAAAAA;
+ font-style: normal;
+ font-weight: normal;
+ text-align: center;
+ border-radius: 500px;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.buttons .or[data-text]:before {
+ content: attr(data-text);
+}
+
+.ui.buttons .or:after {
+ position: absolute;
+ top: 0em;
+ right: 0em;
+ content: ' ';
+ width: 0.3em;
+ height: 1.7em;
+ background-color: transparent;
+ border-top: 0.5em solid #FFFFFF;
+ border-bottom: 0.5em solid #FFFFFF;
+}
+
+/* Fluid Or */
+
+.ui.fluid.buttons .or {
+ width: 0em !important;
+}
+
+.ui.fluid.buttons .or:after {
+ display: none;
+}
+
+/*-------------------
+ Attached
+--------------------*/
+
+/* Plural Attached */
+
+.attached.ui.buttons {
+ margin: 0px;
+ border-radius: 4px 4px 0px 0px;
+}
+
+.attached.ui.buttons .button:first-child {
+ border-radius: 0px 4px 0px 0px;
+}
+
+.attached.ui.buttons .button:last-child {
+ border-radius: 4px 0px 0px 0px;
+}
+
+/* Bottom Side */
+
+.bottom.attached.ui.buttons {
+ margin-top: -1px;
+ border-radius: 0px 0px 4px 4px;
+}
+
+.bottom.attached.ui.buttons .button:first-child {
+ border-radius: 0px 0px 4px 0px;
+}
+
+.bottom.attached.ui.buttons .button:last-child {
+ border-radius: 0px 0px 0px 4px;
+}
+
+/* Left Side */
+
+.left.attached.ui.buttons {
+ margin-right: -1px;
+ border-radius: 4px 0px 0px 4px;
+}
+
+.left.attached.ui.buttons .button:first-child {
+ margin-right: -1px;
+ border-radius: 4px 0px 0px 0px;
+}
+
+.left.attached.ui.buttons .button:last-child {
+ margin-right: -1px;
+ border-radius: 0px 0px 0px 4px;
+}
+
+/* Right Side */
+
+.right.attached.ui.buttons,
+.right.attached.ui.buttons .button {
+ margin-left: -1px;
+ border-radius: 0px 4px 4px 0px;
+}
+
+.right.attached.ui.buttons .button:first-child {
+ margin-right: -1px;
+ border-radius: 0px 4px 0px 0px;
+}
+
+.right.attached.ui.buttons .button:last-child {
+ margin-right: -1px;
+ border-radius: 0px 0px 4px 0px;
+}
+
+/* Fluid */
+
+.ui.fluid.buttons,
+.ui.button.fluid,
+.ui.fluid.buttons > .button {
+ display: block;
+ width: 100%;
+}
+
+.ui.\32.buttons > .button,
+.ui.two.buttons > .button {
+ width: 50%;
+}
+
+.ui.\33.buttons > .button,
+.ui.three.buttons > .button {
+ width: 33.333%;
+}
+
+.ui.\34.buttons > .button,
+.ui.four.buttons > .button {
+ width: 25%;
+}
+
+.ui.\35.buttons > .button,
+.ui.five.buttons > .button {
+ width: 20%;
+}
+
+.ui.\36.buttons > .button,
+.ui.six.buttons > .button {
+ width: 16.666%;
+}
+
+.ui.\37.buttons > .button,
+.ui.seven.buttons > .button {
+ width: 14.285%;
+}
+
+.ui.\38.buttons > .button,
+.ui.eight.buttons > .button {
+ width: 12.500%;
+}
+
+.ui.\39.buttons > .button,
+.ui.nine.buttons > .button {
+ width: 11.11%;
+}
+
+.ui.\31\30.buttons > .button,
+.ui.ten.buttons > .button {
+ width: 10%;
+}
+
+.ui.\31\31.buttons > .button,
+.ui.eleven.buttons > .button {
+ width: 9.09%;
+}
+
+.ui.\31\32.buttons > .button,
+.ui.twelve.buttons > .button {
+ width: 8.3333%;
+}
+
+/* Fluid Vertical Buttons */
+
+.ui.fluid.vertical.buttons,
+.ui.fluid.vertical.buttons > .button {
+ display: block;
+ width: auto;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.\32.vertical.buttons > .button,
+.ui.two.vertical.buttons > .button {
+ height: 50%;
+}
+
+.ui.\33.vertical.buttons > .button,
+.ui.three.vertical.buttons > .button {
+ height: 33.333%;
+}
+
+.ui.\34.vertical.buttons > .button,
+.ui.four.vertical.buttons > .button {
+ height: 25%;
+}
+
+.ui.\35.vertical.buttons > .button,
+.ui.five.vertical.buttons > .button {
+ height: 20%;
+}
+
+.ui.\36.vertical.buttons > .button,
+.ui.six.vertical.buttons > .button {
+ height: 16.666%;
+}
+
+.ui.\37.vertical.buttons > .button,
+.ui.seven.vertical.buttons > .button {
+ height: 14.285%;
+}
+
+.ui.\38.vertical.buttons > .button,
+.ui.eight.vertical.buttons > .button {
+ height: 12.500%;
+}
+
+.ui.\39.vertical.buttons > .button,
+.ui.nine.vertical.buttons > .button {
+ height: 11.11%;
+}
+
+.ui.\31\30.vertical.buttons > .button,
+.ui.ten.vertical.buttons > .button {
+ height: 10%;
+}
+
+.ui.\31\31.vertical.buttons > .button,
+.ui.eleven.vertical.buttons > .button {
+ height: 9.09%;
+}
+
+.ui.\31\32.vertical.buttons > .button,
+.ui.twelve.vertical.buttons > .button {
+ height: 8.3333%;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+/*--- Black ---*/
+
+.ui.black.buttons .button,
+.ui.black.button {
+ background-color: #5C6166;
+ color: #FFFFFF;
+}
+
+.ui.black.buttons .button:hover,
+.ui.black.button:hover {
+ background-color: #4C4C4C;
+ color: #FFFFFF;
+}
+
+.ui.black.buttons .button:active,
+.ui.black.button:active {
+ background-color: #333333;
+ color: #FFFFFF;
+}
+
+/*--- Green ---*/
+
+.ui.green.buttons .button,
+.ui.green.button {
+ background-color: #5BBD72;
+ color: #FFFFFF;
+}
+
+.ui.green.buttons .button:hover,
+.ui.green.button:hover,
+.ui.green.buttons .active.button,
+.ui.green.button.active {
+ background-color: #58cb73;
+ color: #FFFFFF;
+}
+
+.ui.green.buttons .button:active,
+.ui.green.button:active {
+ background-color: #4CB164;
+ color: #FFFFFF;
+}
+
+/*--- Red ---*/
+
+.ui.red.buttons .button,
+.ui.red.button {
+ background-color: #D95C5C;
+ color: #FFFFFF;
+}
+
+.ui.red.buttons .button:hover,
+.ui.red.button:hover,
+.ui.red.buttons .active.button,
+.ui.red.button.active {
+ background-color: #E75859;
+ color: #FFFFFF;
+}
+
+.ui.red.buttons .button:active,
+.ui.red.button:active {
+ background-color: #D24B4C;
+ color: #FFFFFF;
+}
+
+/*--- Orange ---*/
+
+.ui.orange.buttons .button,
+.ui.orange.button {
+ background-color: #E96633;
+ color: #FFFFFF;
+}
+
+.ui.orange.buttons .button:hover,
+.ui.orange.button:hover,
+.ui.orange.buttons .active.button,
+.ui.orange.button.active {
+ background-color: #FF7038;
+ color: #FFFFFF;
+}
+
+.ui.orange.buttons .button:active,
+.ui.orange.button:active {
+ background-color: #DA683B;
+ color: #FFFFFF;
+}
+
+/*--- Blue ---*/
+
+.ui.blue.buttons .button,
+.ui.blue.button {
+ background-color: #6ECFF5;
+ color: #FFFFFF;
+}
+
+.ui.blue.buttons .button:hover,
+.ui.blue.button:hover,
+.ui.blue.buttons .active.button,
+.ui.blue.button.active {
+ background-color: #1AB8F3;
+ color: #FFFFFF;
+}
+
+.ui.blue.buttons .button:active,
+.ui.blue.button:active {
+ background-color: #0AA5DF;
+ color: #FFFFFF;
+}
+
+/*--- Purple ---*/
+
+.ui.purple.buttons .button,
+.ui.purple.button {
+ background-color: #564F8A;
+ color: #FFFFFF;
+}
+
+.ui.purple.buttons .button:hover,
+.ui.purple.button:hover,
+.ui.purple.buttons .active.button,
+.ui.purple.button.active {
+ background-color: #3E3773;
+ color: #FFFFFF;
+}
+
+.ui.purple.buttons .button:active,
+.ui.purple.button:active {
+ background-color: #2E2860;
+ color: #FFFFFF;
+}
+
+/*--- Teal ---*/
+
+.ui.teal.buttons .button,
+.ui.teal.button {
+ background-color: #00B5AD;
+ color: #FFFFFF;
+}
+
+.ui.teal.buttons .button:hover,
+.ui.teal.button:hover,
+.ui.teal.buttons .active.button,
+.ui.teal.button.active {
+ background-color: #009A93;
+ color: #FFFFFF;
+}
+
+.ui.teal.buttons .button:active,
+.ui.teal.button:active {
+ background-color: #00847E;
+ color: #FFFFFF;
+}
+
+/*---------------
+ Positive
+----------------*/
+
+.ui.positive.buttons .button,
+.ui.positive.button {
+ background-color: #5BBD72 !important;
+ color: #FFFFFF;
+}
+
+.ui.positive.buttons .button:hover,
+.ui.positive.button:hover,
+.ui.positive.buttons .active.button,
+.ui.positive.button.active {
+ background-color: #58CB73 !important;
+ color: #FFFFFF;
+}
+
+.ui.positive.buttons .button:active,
+.ui.positive.button:active {
+ background-color: #4CB164 !important;
+ color: #FFFFFF;
+}
+
+/*---------------
+ Negative
+----------------*/
+
+.ui.negative.buttons .button,
+.ui.negative.button {
+ background-color: #D95C5C !important;
+ color: #FFFFFF;
+}
+
+.ui.negative.buttons .button:hover,
+.ui.negative.button:hover,
+.ui.negative.buttons .active.button,
+.ui.negative.button.active {
+ background-color: #E75859 !important;
+ color: #FFFFFF;
+}
+
+.ui.negative.buttons .button:active,
+.ui.negative.button:active {
+ background-color: #D24B4C !important;
+ color: #FFFFFF;
+}
+
+/*******************************
+ Groups
+*******************************/
+
+.ui.buttons {
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.ui.buttons:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+.ui.buttons .button:first-child {
+ border-right: none;
+}
+
+.ui.buttons .button {
+ float: right;
+ border-radius: 0em;
+}
+
+.ui.buttons .button:first-child {
+ margin-right: 0em;
+ border-top-right-radius: 0.25em;
+ border-bottom-right-radius: 0.25em;
+}
+
+.ui.buttons .button:last-child {
+ border-top-left-radius: 0.25em;
+ border-bottom-left-radius: 0.25em;
+}
+
+/* Vertical Style */
+
+.ui.vertical.buttons {
+ display: inline-block;
+}
+
+.ui.vertical.buttons .button {
+ display: block;
+ float: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.vertical.buttons .button:first-child,
+.ui.vertical.buttons .mini.button:first-child,
+.ui.vertical.buttons .tiny.button:first-child,
+.ui.vertical.buttons .small.button:first-child,
+.ui.vertical.buttons .massive.button:first-child,
+.ui.vertical.buttons .huge.button:first-child {
+ margin-top: 0px;
+ border-radius: 0.25em 0.25em 0px 0px;
+}
+
+.ui.vertical.buttons .button:last-child,
+.ui.vertical.buttons .mini.button:last-child,
+.ui.vertical.buttons .tiny.button:last-child,
+.ui.vertical.buttons .small.button:last-child,
+.ui.vertical.buttons .massive.button:last-child,
+.ui.vertical.buttons .huge.button:last-child,
+.ui.vertical.buttons .gigantic.button:last-child {
+ border-radius: 0px 0px 0.25em 0.25em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/elements/divider.css b/css/semantic/rtl/uncompressed/elements/divider.css
new file mode 100644
index 0000000..5a24f2b
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/elements/divider.css
@@ -0,0 +1,180 @@
+/*
+ * # Semantic - Divider
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Divider
+*******************************/
+
+.ui.divider {
+ margin: 1rem 0rem;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ border-bottom: 1px solid rgba(255, 255, 255, 0.8);
+ line-height: 1;
+ height: 0em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+
+.ui.vertical.divider,
+.ui.horizontal.divider {
+ position: absolute;
+ border: none;
+ height: 0em;
+ margin: 0em;
+ background-color: transparent;
+ font-size: 0.875rem;
+ font-weight: bold;
+ text-align: center;
+ text-transform: uppercase;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--------------
+ Vertical
+---------------*/
+
+.ui.vertical.divider {
+ position: absolute;
+ z-index: 2;
+ top: 50%;
+ right: 50%;
+ margin: 0% -3% 0% 0%;
+ width: 6%;
+ height: 50%;
+ line-height: 0;
+ padding: 0em;
+}
+
+.ui.vertical.divider:before,
+.ui.vertical.divider:after {
+ position: absolute;
+ right: 50%;
+ content: " ";
+ z-index: 3;
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
+ border-left: 1px solid rgba(255, 255, 255, 0.8);
+ width: 0%;
+ height: 80%;
+}
+
+.ui.vertical.divider:before {
+ top: -100%;
+}
+
+.ui.vertical.divider:after {
+ top: auto;
+ bottom: 0px;
+}
+
+/*--------------
+ Horizontal
+---------------*/
+
+.ui.horizontal.divider {
+ position: relative;
+ top: 0%;
+ right: 0%;
+ margin: 1rem 1.5rem;
+ height: auto;
+ padding: 0em;
+ line-height: 1;
+}
+
+.ui.horizontal.divider:before,
+.ui.horizontal.divider:after {
+ position: absolute;
+ content: " ";
+ z-index: 3;
+ width: 50%;
+ top: 50%;
+ height: 0%;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ border-bottom: 1px solid rgba(255, 255, 255, 0.8);
+}
+
+.ui.horizontal.divider:before {
+ right: 0%;
+ margin-right: -1.5rem;
+}
+
+.ui.horizontal.divider:after {
+ right: auto;
+ left: 0%;
+ margin-left: -1.5rem;
+}
+
+/*--------------
+ Icon
+---------------*/
+
+.ui.divider > .icon {
+ margin: 0em;
+ font-size: 1rem;
+ vertical-align: middle;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.divider.inverted {
+ color: #ffffff;
+}
+
+.ui.vertical.inverted.divider,
+.ui.horizontal.inverted.divider {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.divider.inverted,
+.ui.divider.inverted:after,
+.ui.divider.inverted:before {
+ border-top-color: rgba(0, 0, 0, 0.15);
+ border-bottom-color: rgba(255, 255, 255, 0.15);
+ border-right-color: rgba(0, 0, 0, 0.15);
+ border-left-color: rgba(255, 255, 255, 0.15);
+}
+
+/*--------------
+ Fitted
+---------------*/
+
+.ui.fitted.divider {
+ margin: 0em;
+}
+
+/*--------------
+ Clearing
+---------------*/
+
+.ui.clearing.divider {
+ clear: both;
+}
+
+/*--------------
+ Section
+---------------*/
+
+.ui.section.divider {
+ margin-top: 2rem;
+ margin-bottom: 2rem;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/elements/header.css b/css/semantic/rtl/uncompressed/elements/header.css
new file mode 100644
index 0000000..bb6d865
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/elements/header.css
@@ -0,0 +1,376 @@
+/*
+ * # Semantic - Header
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Header
+*******************************/
+
+/* Standard */
+
+.ui.header {
+ border: none;
+ margin: 1em 0em 1rem;
+ padding: 0em;
+ font-size: 1.33em;
+ font-weight: bold;
+ line-height: 1.33;
+}
+
+.ui.header .sub.header {
+ font-size: 1rem;
+ font-weight: normal;
+ margin: 0em;
+ padding: 0em;
+ line-height: 1.2;
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.header .icon {
+ display: table-cell;
+ vertical-align: middle;
+ padding-left: 0.5em;
+}
+
+.ui.header .icon:only-child {
+ display: inline-block;
+ vertical-align: baseline;
+}
+
+.ui.header .content {
+ display: inline-block;
+ vertical-align: top;
+}
+
+.ui.header .icon + .content {
+ padding-right: 0.5em;
+ display: table-cell;
+}
+
+/* Positioning */
+
+.ui.header:first-child {
+ margin-top: 0em;
+}
+
+.ui.header:last-child {
+ margin-bottom: 0em;
+}
+
+.ui.header + p {
+ margin-top: 0em;
+}
+
+/*--------------
+ Page Heading
+---------------*/
+
+h1.ui.header {
+ min-height: 1rem;
+ line-height: 1.33;
+ font-size: 2rem;
+}
+
+h2.ui.header {
+ line-height: 1.33;
+ font-size: 1.75rem;
+}
+
+h3.ui.header {
+ line-height: 1.33;
+ font-size: 1.33rem;
+}
+
+h4.ui.header {
+ line-height: 1.33;
+ font-size: 1.1rem;
+}
+
+h5.ui.header {
+ line-height: 1.2;
+ font-size: 1rem;
+}
+
+/*--------------
+ Content Heading
+---------------*/
+
+.ui.huge.header {
+ min-height: 1em;
+ font-size: 2em;
+}
+
+.ui.large.header {
+ font-size: 1.75em;
+}
+
+.ui.medium.header {
+ font-size: 1.33em;
+}
+
+.ui.small.header {
+ font-size: 1.1em;
+}
+
+.ui.tiny.header {
+ font-size: 1em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Icon
+--------------------*/
+
+.ui.icon.header {
+ display: inline-block;
+ text-align: center;
+}
+
+.ui.icon.header .icon {
+ float: none;
+ display: block;
+ font-size: 3em;
+ margin: 0em auto 0.2em;
+ padding: 0em;
+}
+
+.ui.icon.header .content {
+ display: block;
+}
+
+.ui.icon.header .circular.icon,
+.ui.icon.header .square.icon {
+ font-size: 2em;
+}
+
+.ui.block.icon.header .icon {
+ margin-bottom: 0em;
+}
+
+.ui.icon.header.aligned {
+ margin-right: auto;
+ margin-left: auto;
+ display: block;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.disabled.header {
+ opacity: 0.5;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Colors
+--------------------*/
+
+.ui.blue.header {
+ color: #6ECFF5 !important;
+}
+
+.ui.black.header {
+ color: #5C6166 !important;
+}
+
+.ui.green.header {
+ color: #A1CF64 !important;
+}
+
+.ui.red.header {
+ color: #D95C5C !important;
+}
+
+.ui.purple.header {
+ color: #564F8A !important;
+}
+
+.ui.teal.header {
+ color: #00B5AD !important;
+}
+
+.ui.blue.dividing.header {
+ border-bottom: 3px solid #6ECFF5;
+}
+
+.ui.black.dividing.header {
+ border-bottom: 3px solid #5C6166;
+}
+
+.ui.green.dividing.header {
+ border-bottom: 3px solid #A1CF64;
+}
+
+.ui.red.dividing.header {
+ border-bottom: 3px solid #D95C5C;
+}
+
+.ui.purple.dividing.header {
+ border-bottom: 3px solid #564F8A;
+}
+
+.ui.teal.dividing.header {
+ border-bottom: 3px solid #00B5AD;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.inverted.header {
+ color: #FFFFFF;
+}
+
+.ui.inverted.header .sub.header {
+ color: rgba(255, 255, 255, 0.85);
+}
+
+/*-------------------
+ Inverted Colors
+--------------------*/
+
+.ui.inverted.black.header {
+ background-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.blue.header {
+ background-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.green.header {
+ background-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.red.header {
+ background-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.purple.header {
+ background-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.teal.header {
+ background-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.block.header {
+ border-bottom: none;
+}
+
+/*-------------------
+ Aligned
+--------------------*/
+
+.ui.left.aligned.header {
+ text-align: right;
+}
+
+.ui.right.aligned.header {
+ text-align: left;
+}
+
+.ui.center.aligned.header {
+ text-align: center;
+}
+
+.ui.justified.header {
+ text-align: justify;
+}
+
+.ui.justified.header:after {
+ display: inline-block;
+ content: '';
+ width: 100%;
+}
+
+/*-------------------
+ Floated
+--------------------*/
+
+.ui.floated.header,
+.ui.left.floated.header {
+ float: right;
+ margin-top: 0em;
+ margin-left: 0.5em;
+}
+
+.ui.right.floated.header {
+ float: left;
+ margin-top: 0em;
+ margin-right: 0.5em;
+}
+
+/*-------------------
+ Fittted
+--------------------*/
+
+.ui.fitted.header {
+ padding: 0em;
+}
+
+/*-------------------
+ Dividing
+--------------------*/
+
+.ui.dividing.header {
+ padding-bottom: 0.2rem;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+.ui.dividing.header .sub.header {
+ padding-bottom: 0.5em;
+}
+
+.ui.dividing.header .icon {
+ margin-bottom: 0.2em;
+}
+
+/*-------------------
+ Block
+--------------------*/
+
+.ui.block.header {
+ background-color: rgba(0, 0, 0, 0.05);
+ padding: 0.5em 1em;
+}
+
+/*-------------------
+ Attached
+--------------------*/
+
+.ui.attached.header {
+ background-color: #E0E0E0;
+ padding: 0.5em 1rem;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.top.attached.header {
+ margin-bottom: 0em;
+ border-radius: 0.3125em 0.3125em 0em 0em;
+}
+
+.ui.bottom.attached.header {
+ margin-top: 0em;
+ border-radius: 0em 0em 0.3125em 0.3125em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/elements/icon.css b/css/semantic/rtl/uncompressed/elements/icon.css
new file mode 100644
index 0000000..b793217
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/elements/icon.css
@@ -0,0 +1,1853 @@
+/*
+ * # Semantic - Icon
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*!
+ * Font Awesome 3.2.1
+ * the iconic font designed for Bootstrap
+ * ------------------------------------------------------------------------------
+ * The full suite of pictographic icons, examples, and documentation can be
+ * found at http://fon.io. Stay up to date on Twitter at
+ * http://twitter.com/fon.
+ *
+ * License
+ * ------------------------------------------------------------------------------
+ * - The Font Awesome font is licensed under SIL OFL 1.1 -
+ * http://scripts.sil.org/OFL
+
+/*******************************
+ Icon
+*******************************/
+
+@font-face {
+ font-family: 'Icons';
+ src: url(../fonts/icons.eot);
+ src: url(../fonts/icons.eot?#iefix) format('embedded-opentype'), url(../fonts/icons.svg#icons) format('svg'), url(../fonts/icons.woff) format('woff'), url(../fonts/icons.ttf) format('truetype');
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-decoration: inherit;
+ text-transform: none;
+}
+
+i.icon {
+ display: inline-block;
+ opacity: 0.75;
+ margin: 0em 0em 0em 0.25em;
+ width: 1.23em;
+ height: 1em;
+ font-family: 'Icons';
+ font-style: normal;
+ line-height: 1;
+ font-weight: normal;
+ text-decoration: inherit;
+ text-align: center;
+ speak: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+i.icon.left:before {
+ content: "\f060";
+}
+
+i.icon.right:before {
+ content: "\f061";
+}
+
+i.icon.add.sign.box:before {
+ content: "\f0fe";
+}
+
+i.icon.add.sign:before {
+ content: "\f055";
+}
+
+i.icon.add:before {
+ content: "\f067";
+}
+
+i.icon.adjust:before {
+ content: "\f042";
+}
+
+i.icon.adn:before {
+ content: "\f170";
+}
+
+i.icon.align.center:before {
+ content: "\f037";
+}
+
+i.icon.align.justify:before {
+ content: "\f039";
+}
+
+i.icon.align.left:before {
+ content: "\f036";
+}
+
+i.icon.align.right:before {
+ content: "\f038";
+}
+
+i.icon.ambulance:before {
+ content: "\f0f9";
+}
+
+i.icon.anchor:before {
+ content: "\f13d";
+}
+
+i.icon.android:before {
+ content: "\f17b";
+}
+
+i.icon.angle.down:before {
+ content: "\f107";
+}
+
+i.icon.angle.left:before {
+ content: "\f104";
+}
+
+i.icon.angle.right:before {
+ content: "\f105";
+}
+
+i.icon.angle.up:before {
+ content: "\f106";
+}
+
+i.icon.apple:before {
+ content: "\f179";
+}
+
+i.icon.archive:before {
+ content: "\f187";
+}
+
+i.icon.arrow.down:before {
+ content: "\f078";
+}
+
+i.icon.arrow.left:before {
+ content: "\f053";
+}
+
+i.icon.arrow.right:before {
+ content: "\f054";
+}
+
+i.icon.arrow.sign.down:before {
+ content: "\f13a";
+}
+
+i.icon.arrow.sign.left:before {
+ content: "\f137";
+}
+
+i.icon.arrow.sign.right:before {
+ content: "\f138";
+}
+
+i.icon.arrow.sign.up:before {
+ content: "\f139";
+}
+
+i.icon.arrow.up:before {
+ content: "\f077";
+}
+
+i.icon.asterisk:before {
+ content: "\f069";
+}
+
+i.icon.attachment:before {
+ content: "\f0c6";
+}
+
+i.icon.attention:before {
+ content: "\f06a";
+}
+
+i.icon.backward:before {
+ content: "\f04a";
+}
+
+i.icon.ban.circle:before {
+ content: "\f05e";
+}
+
+i.icon.bar.chart:before {
+ content: "\f080";
+}
+
+i.icon.barcode:before {
+ content: "\f02a";
+}
+
+i.icon.beer:before {
+ content: "\f0fc";
+}
+
+i.icon.bell.outline:before {
+ content: "\f0a2";
+}
+
+i.icon.bell:before {
+ content: "\f0f3";
+}
+
+i.icon.bitbucket.sign:before {
+ content: "\f172";
+}
+
+i.icon.bitbucket:before {
+ content: "\f171";
+}
+
+i.icon.bitcoin:before {
+ content: "\f15a";
+}
+
+i.icon.bold:before {
+ content: "\f032";
+}
+
+i.icon.bolt:before {
+ content: "\f0e7";
+}
+
+i.icon.book:before {
+ content: "\f02d";
+}
+
+i.icon.bookmark.empty:before {
+ content: "\f097";
+}
+
+i.icon.bookmark:before {
+ content: "\f02e";
+}
+
+i.icon.box.arrow.down:before {
+ content: "\f150";
+}
+
+/*rtl:ignore*/
+
+i.icon.box.arrow.right:before {
+ content: "\f152";
+}
+
+i.icon.box.arrow.up:before {
+ content: "\f151";
+}
+
+i.icon.briefcase:before {
+ content: "\f0b1";
+}
+
+i.icon.browser:before {
+ content: "\f022";
+}
+
+i.icon.bug:before {
+ content: "\f188";
+}
+
+i.icon.building:before {
+ content: "\f0f7";
+}
+
+i.icon.bullhorn:before {
+ content: "\f0a1";
+}
+
+i.icon.bullseye:before {
+ content: "\f140";
+}
+
+i.icon.calendar.empty:before {
+ content: "\f133";
+}
+
+i.icon.calendar:before {
+ content: "\f073";
+}
+
+i.icon.camera.retro:before {
+ content: "\f083";
+}
+
+i.icon.camera:before {
+ content: "\f030";
+}
+
+i.icon.triangle.down:before {
+ content: "\f0d7";
+}
+
+i.icon.triangle.left:before {
+ content: "\f0d9";
+}
+
+i.icon.triangle.right:before {
+ content: "\f0da";
+}
+
+i.icon.triangle.up:before {
+ content: "\f0d8";
+}
+
+i.icon.cart:before {
+ content: "\f07a";
+}
+
+i.icon.certificate:before {
+ content: "\f0a3";
+}
+
+i.icon.chat.outline:before {
+ content: "\f0e6";
+}
+
+i.icon.chat:before {
+ content: "\f086";
+}
+
+i.icon.checkbox.empty:before {
+ content: "\f096";
+}
+
+i.icon.checkbox.minus:before {
+ content: "\f147";
+}
+
+i.icon.checked.checkbox:before {
+ content: "\f046";
+}
+
+i.icon.checkmark.sign:before {
+ content: "\f14a";
+}
+
+i.icon.checkmark:before {
+ content: "\f00c";
+}
+
+i.icon.circle.blank:before {
+ content: "\f10c";
+}
+
+i.icon.circle.down:before {
+ content: "\f0ab";
+}
+
+i.icon.circle.left:before {
+ content: "\f0a8";
+}
+
+i.icon.circle.right:before {
+ content: "\f0a9";
+}
+
+i.icon.circle.up:before {
+ content: "\f0aa";
+}
+
+i.icon.circle:before {
+ content: "\f111";
+}
+
+i.icon.cloud.download:before {
+ content: "\f0ed";
+}
+
+i.icon.cloud.upload:before {
+ content: "\f0ee";
+}
+
+i.icon.cloud:before {
+ content: "\f0c2";
+}
+
+i.icon.code.fork:before {
+ content: "\f126";
+}
+
+i.icon.code:before {
+ content: "\f121";
+}
+
+i.icon.coffee:before {
+ content: "\f0f4";
+}
+
+i.icon.collapse:before {
+ content: "\f117";
+}
+
+i.icon.comment.outline:before {
+ content: "\f0e5";
+}
+
+i.icon.comment:before {
+ content: "\f075";
+}
+
+i.icon.copy:before {
+ content: "\f0c5";
+}
+
+i.icon.crop:before {
+ content: "\f125";
+}
+
+i.icon.css3:before {
+ content: "\f13c";
+}
+
+i.icon.cut:before {
+ content: "\f0c4";
+}
+
+i.icon.dashboard:before {
+ content: "\f0e4";
+}
+
+i.icon.desktop:before {
+ content: "\f108";
+}
+
+i.icon.doctor:before {
+ content: "\f0f0";
+}
+
+i.icon.dollar:before {
+ content: "\f155";
+}
+
+i.icon.double.angle.down:before {
+ content: "\f103";
+}
+
+i.icon.double.angle.left:before {
+ content: "\f100";
+}
+
+i.icon.double.angle.right:before {
+ content: "\f101";
+}
+
+i.icon.double.angle.up:before {
+ content: "\f102";
+}
+
+i.icon.down:before {
+ content: "\f063";
+}
+
+i.icon.download.disk:before {
+ content: "\f019";
+}
+
+i.icon.download:before {
+ content: "\f01a";
+}
+
+i.icon.dribbble:before {
+ content: "\f17d";
+}
+
+i.icon.dropbox:before {
+ content: "\f16b";
+}
+
+i.icon.edit.sign:before {
+ content: "\f14b";
+}
+
+i.icon.edit:before {
+ content: "\f044";
+}
+
+i.icon.eject:before {
+ content: "\f052";
+}
+
+i.icon.ellipsis.horizontal:before {
+ content: "\f141";
+}
+
+i.icon.ellipsis.vertical:before {
+ content: "\f142";
+}
+
+i.icon.eraser:before {
+ content: "\f12d";
+}
+
+i.icon.euro:before {
+ content: "\f153";
+}
+
+i.icon.exchange:before {
+ content: "\f0ec";
+}
+
+i.icon.exclamation:before {
+ content: "\f12a";
+}
+
+i.icon.expand:before {
+ content: "\f116";
+}
+
+i.icon.external.url.sign:before {
+ content: "\f14c";
+}
+
+i.icon.external.url:before {
+ content: "\f08e";
+}
+
+i.icon.facebook.sign:before {
+ content: "\f082";
+}
+
+i.icon.facebook:before {
+ content: "\f09a";
+}
+
+i.icon.facetime.video:before {
+ content: "\f03d";
+}
+
+i.icon.fast.backward:before {
+ content: "\f049";
+}
+
+i.icon.fast.forward:before {
+ content: "\f050";
+}
+
+i.icon.female:before {
+ content: "\f182";
+}
+
+i.icon.fighter.jet:before {
+ content: "\f0fb";
+}
+
+i.icon.file.outline:before {
+ content: "\f016";
+}
+
+i.icon.file.text.outline:before {
+ content: "\f0f6";
+}
+
+i.icon.file.text:before {
+ content: "\f15c";
+}
+
+i.icon.file:before {
+ content: "\f15b";
+}
+
+i.icon.filter:before {
+ content: "\f0b0";
+}
+
+i.icon.fire.extinguisher:before {
+ content: "\f134";
+}
+
+i.icon.fire:before {
+ content: "\f06d";
+}
+
+i.icon.flag.checkered:before {
+ content: "\f11e";
+}
+
+i.icon.flag.empty:before {
+ content: "\f11d";
+}
+
+i.icon.flag:before {
+ content: "\f024";
+}
+
+i.icon.flickr:before {
+ content: "\f16e";
+}
+
+i.icon.folder.open.outline:before {
+ content: "\f115";
+}
+
+i.icon.folder.open:before {
+ content: "\f07c";
+}
+
+i.icon.folder.outline:before {
+ content: "\f114";
+}
+
+i.icon.folder:before {
+ content: "\f07b";
+}
+
+i.icon.font:before {
+ content: "\f031";
+}
+
+i.icon.food:before {
+ content: "\f0f5";
+}
+
+i.icon.forward.mail:before {
+ content: "\f064";
+}
+
+i.icon.forward:before {
+ content: "\f04e";
+}
+
+i.icon.foursquare:before {
+ content: "\f180";
+}
+
+i.icon.frown:before {
+ content: "\f119";
+}
+
+i.icon.fullscreen:before {
+ content: "\f0b2";
+}
+
+i.icon.gamepad:before {
+ content: "\f11b";
+}
+
+i.icon.gift:before {
+ content: "\f06b";
+}
+
+i.icon.github.alternate:before {
+ content: "\f09b";
+}
+
+i.icon.github.sign:before {
+ content: "\f092";
+}
+
+i.icon.github:before {
+ content: "\f113";
+}
+
+i.icon.gittip:before {
+ content: "\f184";
+}
+
+i.icon.glass:before {
+ content: "\f000";
+}
+
+i.icon.globe:before {
+ content: "\f0ac";
+}
+
+i.icon.google.plus.sign:before {
+ content: "\f0d4";
+}
+
+i.icon.google.plus:before {
+ content: "\f0d5";
+}
+
+i.icon.h.sign:before {
+ content: "\f0fd";
+}
+
+i.icon.hand.down:before {
+ content: "\f0a7";
+}
+
+i.icon.hand.left:before {
+ content: "\f0a5";
+}
+
+i.icon.hand.right:before {
+ content: "\f0a4";
+}
+
+i.icon.hand.up:before {
+ content: "\f0a6";
+}
+
+i.icon.hdd:before {
+ content: "\f0a0";
+}
+
+i.icon.headphones:before {
+ content: "\f025";
+}
+
+i.icon.heart.empty:before {
+ content: "\f08a";
+}
+
+i.icon.heart:before {
+ content: "\f004";
+}
+
+i.icon.help:before {
+ content: "\f059";
+}
+
+i.icon.hide:before {
+ content: "\f070";
+}
+
+i.icon.home:before {
+ content: "\f015";
+}
+
+i.icon.hospital:before {
+ content: "\f0f8";
+}
+
+i.icon.html5:before {
+ content: "\f13b";
+}
+
+i.icon.inbox:before {
+ content: "\f01c";
+}
+
+i.icon.indent.left:before {
+ content: "\f03b";
+}
+
+i.icon.indent.right:before {
+ content: "\f03c";
+}
+
+i.icon.info.letter:before {
+ content: "\f129";
+}
+
+i.icon.info:before {
+ content: "\f05a";
+}
+
+i.icon.instagram:before {
+ content: "\f16d";
+}
+
+i.icon.italic:before {
+ content: "\f033";
+}
+
+i.icon.key:before {
+ content: "\f084";
+}
+
+i.icon.keyboard:before {
+ content: "\f11c";
+}
+
+i.icon.lab:before {
+ content: "\f0c3";
+}
+
+i.icon.laptop:before {
+ content: "\f109";
+}
+
+i.icon.layout.block:before {
+ content: "\f009";
+}
+
+i.icon.layout.column:before {
+ content: "\f0db";
+}
+
+i.icon.layout.grid:before {
+ content: "\f00a";
+}
+
+i.icon.layout.list:before {
+ content: "\f00b";
+}
+
+i.icon.leaf:before {
+ content: "\f06c";
+}
+
+i.icon.legal:before {
+ content: "\f0e3";
+}
+
+i.icon.lemon:before {
+ content: "\f094";
+}
+
+i.icon.level.down:before {
+ content: "\f149";
+}
+
+i.icon.level.up:before {
+ content: "\f148";
+}
+
+i.icon.lightbulb:before {
+ content: "\f0eb";
+}
+
+i.icon.linkedin.sign:before {
+ content: "\f08c";
+}
+
+i.icon.linkedin:before {
+ content: "\f0e1";
+}
+
+i.icon.linux:before {
+ content: "\f17c";
+}
+
+i.icon.list.ordered:before {
+ content: "\f0cb";
+}
+
+i.icon.list.unordered:before {
+ content: "\f0ca";
+}
+
+i.icon.list:before {
+ content: "\f03a";
+}
+
+i.icon.loading:before {
+ content: "\f110";
+}
+
+i.icon.location:before {
+ content: "\f124";
+}
+
+i.icon.lock:before {
+ content: "\f023";
+}
+
+i.icon.long.arrow.down:before {
+ content: "\f175";
+}
+
+i.icon.long.arrow.left:before {
+ content: "\f177";
+}
+
+i.icon.long.arrow.right:before {
+ content: "\f178";
+}
+
+i.icon.long.arrow.up:before {
+ content: "\f176";
+}
+
+i.icon.magic:before {
+ content: "\f0d0";
+}
+
+i.icon.magnet:before {
+ content: "\f076";
+}
+
+i.icon.mail.outline:before {
+ content: "\f003";
+}
+
+i.icon.mail.reply:before {
+ content: "\f112";
+}
+
+i.icon.mail:before {
+ content: "\f0e0";
+}
+
+i.icon.male:before {
+ content: "\f183";
+}
+
+i.icon.map.marker:before {
+ content: "\f041";
+}
+
+i.icon.map:before {
+ content: "\f14e";
+}
+
+i.icon.maxcdn:before {
+ content: "\f136";
+}
+
+i.icon.medkit:before {
+ content: "\f0fa";
+}
+
+i.icon.meh:before {
+ content: "\f11a";
+}
+
+i.icon.minus.sign.alternate:before {
+ content: "\f146";
+}
+
+i.icon.minus.sign:before {
+ content: "\f056";
+}
+
+i.icon.minus:before {
+ content: "\f068";
+}
+
+i.icon.mobile:before {
+ content: "\f10b";
+}
+
+i.icon.money:before {
+ content: "\f0d6";
+}
+
+i.icon.moon:before {
+ content: "\f186";
+}
+
+i.icon.move:before {
+ content: "\f047";
+}
+
+i.icon.music:before {
+ content: "\f001";
+}
+
+i.icon.mute:before {
+ content: "\f131";
+}
+
+i.icon.off:before {
+ content: "\f011";
+}
+
+i.icon.ok.circle:before {
+ content: "\f05d";
+}
+
+i.icon.ok.sign:before {
+ content: "\f058";
+}
+
+i.icon.paste:before {
+ content: "\f0ea";
+}
+
+i.icon.pause:before {
+ content: "\f04c";
+}
+
+i.icon.payment:before {
+ content: "\f09d";
+}
+
+i.icon.pencil:before {
+ content: "\f040";
+}
+
+i.icon.phone.sign:before {
+ content: "\f098";
+}
+
+i.icon.phone:before {
+ content: "\f095";
+}
+
+i.icon.photo:before {
+ content: "\f03e";
+}
+
+i.icon.pin:before {
+ content: "\f08d";
+}
+
+i.icon.pinterest.sign:before {
+ content: "\f0d3";
+}
+
+i.icon.pinterest:before {
+ content: "\f0d2";
+}
+
+i.icon.plane:before {
+ content: "\f072";
+}
+
+i.icon.play.circle:before {
+ content: "\f01d";
+}
+
+i.icon.play.sign:before {
+ content: "\f144";
+}
+
+i.icon.play:before {
+ content: "\f04b";
+}
+
+i.icon.pound:before {
+ content: "\f154";
+}
+
+i.icon.print:before {
+ content: "\f02f";
+}
+
+i.icon.puzzle.piece:before {
+ content: "\f12e";
+}
+
+i.icon.qr.code:before {
+ content: "\f029";
+}
+
+i.icon.question:before {
+ content: "\f128";
+}
+
+i.icon.quote.left:before {
+ content: "\f10d";
+}
+
+i.icon.quote.right:before {
+ content: "\f10e";
+}
+
+i.icon.refresh:before {
+ content: "\f021";
+}
+
+i.icon.remove.circle:before {
+ content: "\f05c";
+}
+
+i.icon.remove.sign:before {
+ content: "\f057";
+}
+
+i.icon.remove:before {
+ content: "\f00d";
+}
+
+i.icon.renren:before {
+ content: "\f18b";
+}
+
+i.icon.reorder:before {
+ content: "\f0c9";
+}
+
+i.icon.repeat:before {
+ content: "\f01e";
+}
+
+i.icon.reply.all.mail:before {
+ content: "\f122";
+}
+
+i.icon.resize.full:before {
+ content: "\f065";
+}
+
+i.icon.resize.horizontal:before {
+ content: "\f07e";
+}
+
+i.icon.resize.small:before {
+ content: "\f066";
+}
+
+i.icon.resize.vertical:before {
+ content: "\f07d";
+}
+
+i.icon.retweet:before {
+ content: "\f079";
+}
+
+i.icon.road:before {
+ content: "\f018";
+}
+
+i.icon.rocket:before {
+ content: "\f135";
+}
+
+i.icon.rss.sign:before {
+ content: "\f143";
+}
+
+i.icon.rss:before {
+ content: "\f09e";
+}
+
+i.icon.rupee:before {
+ content: "\f156";
+}
+
+i.icon.save:before {
+ content: "\f0c7";
+}
+
+i.icon.screenshot:before {
+ content: "\f05b";
+}
+
+i.icon.search:before {
+ content: "\f002";
+}
+
+i.icon.setting:before {
+ content: "\f013";
+}
+
+i.icon.settings:before {
+ content: "\f085";
+}
+
+i.icon.share.sign:before {
+ content: "\f14d";
+}
+
+i.icon.share:before {
+ content: "\f045";
+}
+
+i.icon.shield:before {
+ content: "\f132";
+}
+
+i.icon.shuffle:before {
+ content: "\f074";
+}
+
+i.icon.sign.in:before {
+ content: "\f090";
+}
+
+i.icon.sign.out:before {
+ content: "\f08b";
+}
+
+i.icon.sign:before {
+ content: "\f0c8";
+}
+
+i.icon.signal:before {
+ content: "\f012";
+}
+
+i.icon.sitemap:before {
+ content: "\f0e8";
+}
+
+i.icon.skype:before {
+ content: "\f17e";
+}
+
+i.icon.smile:before {
+ content: "\f118";
+}
+
+i.icon.sort.ascending:before {
+ content: "\f0de";
+}
+
+i.icon.sort.descending:before {
+ content: "\f0dd";
+}
+
+i.icon.sort.alphabet.descending:before {
+ content: "\f15e";
+}
+
+i.icon.sort.alphabet:before {
+ content: "\f15d";
+}
+
+i.icon.sort.attributes.descending:before {
+ content: "\f161";
+}
+
+i.icon.sort.attributes:before {
+ content: "\f160";
+}
+
+i.icon.sort.order.descending:before {
+ content: "\f163";
+}
+
+i.icon.sort.order:before {
+ content: "\f162";
+}
+
+i.icon.sort:before {
+ content: "\f0dc";
+}
+
+i.icon.stackexchange:before {
+ content: "\f16c";
+}
+
+i.icon.star.empty:before {
+ content: "\f006";
+}
+
+i.icon.star.half.empty:before {
+ content: "\f123";
+}
+
+i.icon.star.half.full:before,
+i.icon.star.half:before {
+ content: "\f089";
+}
+
+i.icon.star:before {
+ content: "\f005";
+}
+
+i.icon.step.backward:before {
+ content: "\f048";
+}
+
+i.icon.step.forward:before {
+ content: "\f051";
+}
+
+i.icon.stethoscope:before {
+ content: "\f0f1";
+}
+
+i.icon.stop:before {
+ content: "\f04d";
+}
+
+i.icon.strikethrough:before {
+ content: "\f0cc";
+}
+
+i.icon.subscript:before {
+ content: "\f12c";
+}
+
+i.icon.suitcase:before {
+ content: "\f0f2";
+}
+
+i.icon.sun:before {
+ content: "\f185";
+}
+
+i.icon.superscript:before {
+ content: "\f12b";
+}
+
+i.icon.table:before {
+ content: "\f0ce";
+}
+
+i.icon.tablet:before {
+ content: "\f10a";
+}
+
+i.icon.tag:before {
+ content: "\f02b";
+}
+
+i.icon.tags:before {
+ content: "\f02c";
+}
+
+i.icon.tasks:before {
+ content: "\f0ae";
+}
+
+i.icon.terminal:before {
+ content: "\f120";
+}
+
+i.icon.text.height:before {
+ content: "\f034";
+}
+
+i.icon.text.width:before {
+ content: "\f035";
+}
+
+i.icon.thumbs.down.outline:before {
+ content: "\f088";
+}
+
+i.icon.thumbs.down:before {
+ content: "\f165";
+}
+
+i.icon.thumbs.up.outline:before {
+ content: "\f087";
+}
+
+i.icon.thumbs.up:before {
+ content: "\f164";
+}
+
+i.icon.ticket:before {
+ content: "\f145";
+}
+
+i.icon.time:before {
+ content: "\f017";
+}
+
+i.icon.tint:before {
+ content: "\f043";
+}
+
+i.icon.trash:before {
+ content: "\f014";
+}
+
+i.icon.trello:before {
+ content: "\f181";
+}
+
+i.icon.trophy:before {
+ content: "\f091";
+}
+
+i.icon.truck:before {
+ content: "\f0d1";
+}
+
+i.icon.tumblr.sign:before {
+ content: "\f174";
+}
+
+i.icon.tumblr:before {
+ content: "\f173";
+}
+
+i.icon.twitter.sign:before {
+ content: "\f081";
+}
+
+i.icon.twitter:before {
+ content: "\f099";
+}
+
+i.icon.umbrella:before {
+ content: "\f0e9";
+}
+
+i.icon.underline:before {
+ content: "\f0cd";
+}
+
+i.icon.undo:before {
+ content: "\f0e2";
+}
+
+i.icon.unhide:before {
+ content: "\f06e";
+}
+
+i.icon.unlink:before {
+ content: "\f127";
+}
+
+i.icon.unlock.alternate:before {
+ content: "\f13e";
+}
+
+i.icon.unlock:before {
+ content: "\f09c";
+}
+
+i.icon.unmute:before {
+ content: "\f130";
+}
+
+i.icon.up:before {
+ content: "\f062";
+}
+
+i.icon.upload.disk:before {
+ content: "\f093";
+}
+
+i.icon.upload:before {
+ content: "\f01b";
+}
+
+i.icon.url:before {
+ content: "\f0c1";
+}
+
+i.icon.user:before {
+ content: "\f007";
+}
+
+i.icon.users:before {
+ content: "\f0c0";
+}
+
+i.icon.video:before {
+ content: "\f008";
+}
+
+i.icon.vk:before {
+ content: "\f189";
+}
+
+i.icon.volume.down:before {
+ content: "\f027";
+}
+
+i.icon.volume.off:before {
+ content: "\f026";
+}
+
+i.icon.volume.up:before {
+ content: "\f028";
+}
+
+i.icon.warning:before {
+ content: "\f071";
+}
+
+i.icon.weibo:before {
+ content: "\f18a";
+}
+
+i.icon.windows:before {
+ content: "\f17a";
+}
+
+i.icon.won:before {
+ content: "\f159";
+}
+
+i.icon.wrench:before {
+ content: "\f0ad";
+}
+
+i.icon.xing.sign:before {
+ content: "\f169";
+}
+
+i.icon.xing:before {
+ content: "\f168";
+}
+
+i.icon.yen:before {
+ content: "\f157";
+}
+
+i.icon.youtube.play:before {
+ content: "\f16a";
+}
+
+i.icon.youtube.sign:before {
+ content: "\f166";
+}
+
+i.icon.youtube:before {
+ content: "\f167";
+}
+
+i.icon.yuan:before {
+ content: "\f158";
+}
+
+i.icon.zoom.in:before {
+ content: "\f00e";
+}
+
+i.icon.zoom.out:before {
+ content: "\f010";
+}
+
+/*--------------
+ Aliases
+---------------*/
+
+i.icon.check:before {
+ content: "\f00c";
+}
+
+i.icon.close:before {
+ content: "\f00d";
+}
+
+i.icon.delete:before {
+ content: "\f00d";
+}
+
+i.icon.like:before {
+ content: "\f004";
+}
+
+i.icon.plus:before {
+ content: "\f067";
+}
+
+i.icon.signup:before {
+ content: "\f044";
+}
+
+/*--------------
+ Spacing Fix
+---------------*/
+
+/* stars are usually consecutive */
+
+i.icon.star {
+ width: auto;
+ margin: 0em;
+}
+
+/* left side icons */
+
+i.icon.left {
+ width: auto;
+ margin: 0em 0em 0em 0.5em;
+}
+
+/* right side icons */
+
+i.icon.search,
+i.icon.right {
+ width: auto;
+ margin: 0em 0.5em 0em 0em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Loading
+---------------*/
+
+i.icon.loading {
+ -webkit-animation: icon-loading 2s linear infinite;
+ -moz-animation: icon-loading 2s linear infinite;
+ -ms-animation: icon-loading 2s linear infinite;
+ animation: icon-loading 2s linear infinite;
+}
+
+@keyframes icon-loading {
+ from {
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ to {
+ -webkit-transform: rotate(360deg);
+ -moz-transform: rotate(360deg);
+ -ms-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-moz-keyframes icon-loading {
+ from {
+ -moz-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ to {
+ -moz-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-webkit-keyframes icon-loading {
+ from {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ to {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-ms-keyframes icon-loading {
+ from {
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ to {
+ -ms-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+/*******************************
+ States
+*******************************/
+
+i.icon.hover {
+ opacity: 1;
+}
+
+i.icon.active {
+ opacity: 1;
+}
+
+i.emphasized.icon {
+ opacity: 1;
+}
+
+i.icon.disabled {
+ opacity: 0.3;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Link
+--------------------*/
+
+i.link.icon {
+ cursor: pointer;
+ opacity: 0.7;
+ -webkit-transition: opacity 0.3s ease-out;
+ -moz-transition: opacity 0.3s ease-out;
+ transition: opacity 0.3s ease-out;
+}
+
+i.link.icon:hover {
+ opacity: 1 !important;
+}
+
+/*-------------------
+ Circular
+--------------------*/
+
+i.circular.icon {
+ border-radius: !important 500em;
+ padding: 0.5em 0.35em !important;
+ -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ line-height: 1 !important;
+ width: 2em !important;
+ height: 2em !important;
+}
+
+i.circular.inverted.icon {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Flipped
+--------------------*/
+
+i.flipped.icon,
+i.horizontally.flipped.icon {
+ -webkit-transform: scale(-1, 1);
+ -moz-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+
+i.vertically.flipped.icon {
+ -webkit-transform: scale(1, -1);
+ -moz-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+
+/*-------------------
+ Rotated
+--------------------*/
+
+i.rotated.icon,
+i.right.rotated.icon,
+i.clockwise.rotated.icon {
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+
+i.left.rotated.icon,
+i.counterclockwise.rotated.icon {
+ -webkit-transform: rotate(-90deg);
+ -moz-transform: rotate(-90deg);
+ -ms-transform: rotate(-90deg);
+ transform: rotate(-90deg);
+}
+
+/*-------------------
+ Square
+--------------------*/
+
+i.square.icon {
+ width: 2em;
+ height: 2em;
+ padding: 0.5em 0.35em !important;
+ -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
+ vertical-align: baseline;
+}
+
+i.square.inverted.icon {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+i.inverted.icon {
+ background-color: #222222;
+ color: #FFFFFF;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+i.blue.icon {
+ color: #6ECFF5 !important;
+}
+
+i.black.icon {
+ color: #5C6166 !important;
+}
+
+i.green.icon {
+ color: #A1CF64 !important;
+}
+
+i.red.icon {
+ color: #D95C5C !important;
+}
+
+i.purple.icon {
+ color: #564F8A !important;
+}
+
+i.orange.icon {
+ color: #F05940 !important;
+}
+
+i.teal.icon {
+ color: #00B5AD !important;
+}
+
+/*-------------------
+ Inverted Colors
+--------------------*/
+
+i.inverted.black.icon {
+ background-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.blue.icon {
+ background-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.green.icon {
+ background-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.red.icon {
+ background-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.purple.icon {
+ background-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.orange.icon {
+ background-color: #F05940 !important;
+ color: #FFFFFF !important;
+}
+
+i.inverted.teal.icon {
+ background-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+i.small.icon {
+ font-size: 0.875em;
+}
+
+i.icon {
+ font-size: 1em;
+}
+
+i.large.icon {
+ font-size: 1.5em;
+ vertical-align: middle;
+}
+
+i.big.icon {
+ font-size: 2em;
+ vertical-align: middle;
+}
+
+i.huge.icon {
+ font-size: 4em;
+ vertical-align: middle;
+}
+
+i.massive.icon {
+ font-size: 8em;
+ vertical-align: middle;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/elements/image.css b/css/semantic/rtl/uncompressed/elements/image.css
new file mode 100644
index 0000000..c35edf6
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/elements/image.css
@@ -0,0 +1,174 @@
+/*
+ * # Semantic - Image
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Image
+*******************************/
+
+.ui.image {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+ max-width: 100%;
+ background-color: rgba(0, 0, 0, 0.05);
+}
+
+img.ui.image {
+ display: block;
+ background: none;
+}
+
+.ui.image img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.disabled.image {
+ cursor: default;
+ opacity: 0.3;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Rounded
+---------------*/
+
+.ui.rounded.images .image,
+.ui.rounded.images img,
+.ui.rounded.image img,
+.ui.rounded.image {
+ border-radius: 0.3125em;
+}
+
+/*--------------
+ Circular
+---------------*/
+
+.ui.circular.images .image,
+.ui.circular.images img,
+.ui.circular.image img,
+.ui.circular.image {
+ border-radius: 500rem;
+}
+
+/*--------------
+ Fluid
+---------------*/
+
+.ui.fluid.images,
+.ui.fluid.image,
+.ui.fluid.images img,
+.ui.fluid.image img {
+ display: block;
+ width: 100%;
+}
+
+/*--------------
+ Avatar
+---------------*/
+
+.ui.avatar.images .image,
+.ui.avatar.images img,
+.ui.avatar.image img,
+.ui.avatar.image {
+ margin-left: 0.5em;
+ display: inline-block;
+ width: 2em;
+ height: 2em;
+ border-radius: 500rem;
+}
+
+/*-------------------
+ Floated
+--------------------*/
+
+.ui.floated.image,
+.ui.floated.images {
+ float: right;
+ margin-left: 1em;
+ margin-bottom: 1em;
+}
+
+.ui.right.floated.images,
+.ui.right.floated.image {
+ float: left;
+ margin-bottom: 1em;
+ margin-right: 1em;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.tiny.images .image,
+.ui.tiny.images img,
+.ui.tiny.image {
+ width: 20px;
+ font-size: 0.7rem;
+}
+
+.ui.mini.images .image,
+.ui.mini.images img,
+.ui.mini.image {
+ width: 35px;
+ font-size: 0.8rem;
+}
+
+.ui.small.images .image,
+.ui.small.images img,
+.ui.small.image {
+ width: 80px;
+ font-size: 0.9rem;
+}
+
+.ui.medium.images .image,
+.ui.medium.images img,
+.ui.medium.image {
+ width: 300px;
+ font-size: 1rem;
+}
+
+.ui.large.images .image,
+.ui.large.images img,
+.ui.large.image {
+ width: 450px;
+ font-size: 1.1rem;
+}
+
+.ui.huge.images .image,
+.ui.huge.images img,
+.ui.huge.image {
+ width: 600px;
+ font-size: 1.2rem;
+}
+
+/*******************************
+ Groups
+*******************************/
+
+.ui.images {
+ font-size: 0em;
+ margin: 0em -0.25rem 0rem;
+}
+
+.ui.images .image,
+.ui.images img {
+ display: inline-block;
+ margin: 0em 0.25em 0.5em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/elements/input.css b/css/semantic/rtl/uncompressed/elements/input.css
new file mode 100644
index 0000000..db3496e
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/elements/input.css
@@ -0,0 +1,314 @@
+/*
+ * # Semantic - Input
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------------
+ Inputs
+---------------------*/
+
+.ui.input {
+ display: inline-block;
+ position: relative;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.input input {
+ width: 100%;
+ font-family: "Helvetica Neue", "Helvetica", Arial;
+ margin: 0em;
+ padding: 0.65em 1em;
+ font-size: 1em;
+ background-color: #FFFFFF;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ outline: none;
+ color: rgba(0, 0, 0, 0.7);
+ border-radius: 0.3125em;
+ -webkit-transition: background-color 0.3s ease-out, -webkit-box-shadow 0.2s ease, border-color 0.2s ease;
+ -moz-transition: background-color 0.3s ease-out, box-shadow 0.2s ease, border-color 0.2s ease;
+ transition: background-color 0.3s ease-out, box-shadow 0.2s ease, border-color 0.2s ease;
+ -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*--------------------
+ Placeholder
+---------------------*/
+
+/* browsers require these rules separate */
+
+.ui.input::-webkit-input-placeholder {
+ color: #BBBBBB;
+}
+
+.ui.input::-moz-placeholder {
+ color: #BBBBBB;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------------
+ Active
+---------------------*/
+
+.ui.input input:active,
+.ui.input.down input {
+ border-color: rgba(0, 0, 0, 0.3);
+ background-color: #FAFAFA;
+}
+
+/*--------------------
+ Loading
+---------------------*/
+
+.ui.loading.input > .icon {
+ background: url(../images/loader-mini.gif) no-repeat 50% 50%;
+}
+
+.ui.loading.input > .icon:before,
+.ui.loading.input > .icon:after {
+ display: none;
+}
+
+/*--------------------
+ Focus
+---------------------*/
+
+.ui.input.focus input,
+.ui.input input:focus {
+ border-color: rgba(0, 0, 0, 0.2);
+ color: rgba(0, 0, 0, 0.85);
+}
+
+.ui.input.focus input input::-webkit-input-placeholder,
+.ui.input input:focus input::-webkit-input-placeholder {
+ color: #AAAAAA;
+}
+
+.ui.input.focus input input::-moz-placeholder,
+.ui.input input:focus input::-moz-placeholder {
+ color: #AAAAAA;
+}
+
+/*--------------------
+ Error
+---------------------*/
+
+.ui.input.error input {
+ background-color: #FFFAFA;
+ border-color: #E7BEBE;
+ color: #D95C5C;
+}
+
+/* Error Placeholder */
+
+.ui.input.error input ::-webkit-input-placeholder {
+ color: rgba(255, 80, 80, 0.4);
+}
+
+.ui.input.error input ::-moz-placeholder {
+ color: rgba(255, 80, 80, 0.4);
+}
+
+.ui.input.error input :focus::-webkit-input-placeholder {
+ color: rgba(255, 80, 80, 0.7);
+}
+
+.ui.input.error input :focus::-moz-placeholder {
+ color: rgba(255, 80, 80, 0.7);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------------
+ Transparent
+---------------------*/
+
+.ui.transparent.input input {
+ border: none;
+ background-color: transparent;
+}
+
+/*--------------------
+ Icon
+---------------------*/
+
+.ui.icon.input > .icon {
+ cursor: default;
+ position: absolute;
+ opacity: 0.5;
+ top: 0px;
+ left: 0px;
+ margin: 0em;
+ width: 2.6em;
+ height: 100%;
+ padding-top: 0.82em;
+ text-align: center;
+ border-radius: 0.3125em 0em 0em 0.3125em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-transition: opacity 0.3s ease-out;
+ -moz-transition: opacity 0.3s ease-out;
+ transition: opacity 0.3s ease-out;
+}
+
+.ui.icon.input > .link.icon {
+ cursor: pointer;
+}
+
+.ui.icon.input input {
+ padding-left: 3em !important;
+}
+
+.ui.icon.input > .circular.icon {
+ top: 0.35em;
+ left: 0.5em;
+}
+
+/* Left Side */
+
+.ui.left.icon.input > .icon {
+ left: auto;
+ right: 1px;
+ border-radius: 0em 0.3125em 0.3125em 0em;
+}
+
+.ui.left.icon.input > .circular.icon {
+ left: auto;
+ right: 0.5em;
+}
+
+.ui.left.icon.input > input {
+ padding-right: 3em !important;
+ padding-left: 1.2em !important;
+}
+
+/* Focus */
+
+.ui.icon.input > input:focus ~ .icon {
+ opacity: 1;
+}
+
+/*--------------------
+ Labeled
+---------------------*/
+
+.ui.labeled.input .corner.label {
+ font-size: 0.7em;
+ border-radius: 0.3125em 0;
+}
+
+.ui.labeled.input .left.corner.label {
+ border-radius: 0 0.3125em;
+}
+
+.ui.labeled.input input {
+ padding-left: 2.5em !important;
+}
+
+/* Spacing with corner label */
+
+.ui.labeled.icon.input:not(.left) > input {
+ padding-left: 3.25em !important;
+}
+
+.ui.labeled.icon.input:not(.left) > .icon {
+ margin-left: 1.25em;
+}
+
+/*--------------------
+ Action
+---------------------*/
+
+.ui.action.input {
+ display: table;
+}
+
+.ui.action.input > input {
+ display: table-cell;
+ border-top-left-radius: 0px !important;
+ border-bottom-left-radius: 0px !important;
+ border-left: none;
+}
+
+.ui.action.input > .button,
+.ui.action.input > .buttons {
+ display: table-cell;
+ border-top-right-radius: 0px;
+ border-bottom-right-radius: 0px;
+ white-space: nowrap;
+}
+
+.ui.action.input > .button > .icon,
+.ui.action.input > .buttons > .button > .icon {
+ display: inline;
+ vertical-align: top;
+}
+
+.ui.fluid.action.input {
+ display: table;
+ width: 100%;
+}
+
+.ui.fluid.action.input > .button {
+ width: 0.01%;
+}
+
+/*--------------------
+ Fluid
+---------------------*/
+
+.ui.fluid.input {
+ display: block;
+}
+
+/*--------------------
+ Size
+---------------------*/
+
+.ui.mini.input {
+ font-size: 0.8125em;
+}
+
+.ui.small.input {
+ font-size: 0.875em;
+}
+
+.ui.input {
+ font-size: 1em;
+}
+
+.ui.large.input {
+ font-size: 1.125em;
+}
+
+.ui.big.input {
+ font-size: 1.25em;
+}
+
+.ui.huge.input {
+ font-size: 1.375em;
+}
+
+.ui.massive.input {
+ font-size: 1.5em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/elements/label.css b/css/semantic/rtl/uncompressed/elements/label.css
new file mode 100644
index 0000000..e0445b2
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/elements/label.css
@@ -0,0 +1,907 @@
+/*
+ * # Semantic - Label
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Label
+*******************************/
+
+.ui.label {
+ display: inline-block;
+ vertical-align: middle;
+ margin: -0.25em 0.25em 0em;
+ background-color: #E8E8E8;
+ border-color: #E8E8E8;
+ padding: 0.5em 0.8em;
+ color: rgba(0, 0, 0, 0.65);
+ text-transform: uppercase;
+ font-weight: normal;
+ border-radius: 0.325em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-transition: background 0.1s linear;
+ -moz-transition: background 0.1s linear;
+ transition: background 0.1s linear;
+}
+
+.ui.label:first-child {
+ margin-right: 0em;
+}
+
+.ui.label:last-child {
+ margin-left: 0em;
+}
+
+/* Link */
+
+a.ui.label {
+ cursor: pointer;
+}
+
+/* Inside Link */
+
+.ui.label a {
+ cursor: pointer;
+ color: inherit;
+ opacity: 0.8;
+ -webkit-transition: 0.2s opacity ease;
+ -moz-transition: 0.2s opacity ease;
+ transition: 0.2s opacity ease;
+}
+
+.ui.label a:hover {
+ opacity: 1;
+}
+
+/* Detail */
+
+.ui.label .detail {
+ display: inline-block;
+ margin-right: 0.5em;
+ font-weight: bold;
+ opacity: 0.8;
+}
+
+/* Icon */
+
+.ui.label .icon {
+ width: auto;
+}
+
+/* Removable label */
+
+.ui.label .delete.icon {
+ cursor: pointer;
+ margin: 0em 0.5em 0em 0em;
+ opacity: 0.7;
+ -webkit-transition: background 0.1s linear;
+ -moz-transition: background 0.1s linear;
+ transition: background 0.1s linear;
+}
+
+.ui.label .delete.icon:hover {
+ opacity: 0.99;
+}
+
+/*-------------------
+ Coupling
+--------------------*/
+
+/* Padding on next content after a label */
+
+.ui.segment > .attached.label:first-child + * {
+ margin-top: 2.5em;
+}
+
+.ui.segment > .bottom.attached.label:first-child ~ :last-child {
+ margin-top: 0em;
+ margin-bottom: 2.5em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+.ui.image.label {
+ width: auto !important;
+ margin-top: 0em;
+ margin-bottom: 0em;
+ padding-top: 0.4em;
+ padding-bottom: 0.4em;
+ line-height: 1.5em;
+ vertical-align: baseline;
+ text-transform: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.image.label img {
+ display: inline-block;
+ height: 2.25em;
+ margin: -0.4em -0.8em -0.4em 0.8em;
+ vertical-align: top;
+ border-radius: 0em 0.325em 0.325em 0em;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*-------------------
+ Disabled
+--------------------*/
+
+.ui.label.disabled {
+ opacity: 0.5;
+}
+
+/*-------------------
+ Hover
+--------------------*/
+
+a.ui.labels .label:hover,
+a.ui.label:hover {
+ background-color: #E0E0E0;
+ border-color: #E0E0E0;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.labels a.label:hover:before,
+a.ui.label:hover:before {
+ background-color: #E0E0E0;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+/*-------------------
+ Visible
+--------------------*/
+
+.ui.labels.visible .label,
+.ui.label.visible {
+ display: inline-block !important;
+}
+
+/*-------------------
+ Hidden
+--------------------*/
+
+.ui.labels.hidden .label,
+.ui.label.hidden {
+ display: none !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Tag
+--------------------*/
+
+.ui.tag.labels .label,
+.ui.tag.label {
+ margin-right: 1em;
+ position: relative;
+ padding: 0.33em 1.4em 0.33em 1.3em;
+ border-radius: 3px 0px 0px 3px;
+}
+
+.ui.tag.labels .label:before,
+.ui.tag.label:before {
+ position: absolute;
+ top: 0.3em;
+ right: 0.3em;
+ content: '';
+ margin-right: -1em;
+ background-image: none;
+ width: 1.5em;
+ height: 1.5em;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ -webkit-transition: background 0.1s linear;
+ -moz-transition: background 0.1s linear;
+ transition: background 0.1s linear;
+}
+
+.ui.tag.labels .label:after,
+.ui.tag.label:after {
+ position: absolute;
+ content: '';
+ top: 50%;
+ right: -0.25em;
+ margin-top: -0.3em;
+ background-color: #FFFFFF;
+ width: 0.55em;
+ height: 0.55em;
+ -webkit-box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.3);
+ box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.3);
+ border-radius: 100px 100px 100px 100px;
+}
+
+/*-------------------
+ Ribbon
+--------------------*/
+
+.ui.ribbon.label {
+ position: relative;
+ margin: 0em 0.2em;
+ right: -2rem;
+ padding-right: 2rem;
+ border-radius: 4px 0px 0px 4px;
+ border-color: rgba(0, 0, 0, 0.15);
+}
+
+.ui.ribbon.label:after {
+ position: absolute;
+ content: "";
+ top: 100%;
+ right: 0%;
+ border-top: 0em solid transparent;
+ border-left-width: 1em;
+ border-left-color: inherit;
+ border-left-style: solid;
+ border-bottom: 1em solid transparent;
+ border-right: 0em solid transparent;
+ width: 0em;
+ height: 0em;
+}
+
+/*-------------------
+ Attached
+--------------------*/
+
+.ui.top.attached.label,
+.ui.attached.label {
+ width: 100%;
+ position: absolute;
+ margin: 0em;
+ top: 0em;
+ right: 0em;
+ padding: 0.75em 1em;
+ border-radius: 4px 4px 0em 0em;
+}
+
+.ui.bottom.attached.label {
+ top: auto;
+ bottom: 0em;
+ border-radius: 0em 0em 4px 4px;
+}
+
+.ui.top.left.attached.label {
+ width: auto;
+ margin-top: 0em !important;
+ border-radius: 0em 4px 0em 4px;
+}
+
+.ui.top.right.attached.label {
+ width: auto;
+ right: auto;
+ left: 0em;
+ border-radius: 4px 0em 4px 0em;
+}
+
+.ui.bottom.left.attached.label {
+ width: auto;
+ top: auto;
+ bottom: 0em;
+ border-radius: 0em 4px 4px 0em;
+}
+
+.ui.bottom.right.attached.label {
+ top: auto;
+ bottom: 0em;
+ right: auto;
+ left: 0em;
+ width: auto;
+ border-radius: 0em 4px 0em 4px;
+}
+
+/*-------------------
+ Corner Label
+--------------------*/
+
+.ui.corner.label {
+ background-color: transparent;
+ position: absolute;
+ top: 0em;
+ left: 0em;
+ z-index: 10;
+ margin: 0em;
+ width: 3em;
+ height: 3em;
+ padding: 0em;
+ text-align: center;
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+.ui.corner.label:after {
+ position: absolute;
+ content: "";
+ left: 0em;
+ top: 0em;
+ z-index: -1;
+ width: 0em;
+ height: 0em;
+ border-top: 0em solid transparent;
+ border-left: 3em solid transparent;
+ border-bottom: 3em solid transparent;
+ border-right: 0em solid transparent;
+ border-left-color: inherit;
+ -webkit-transition: border-color 0.2s ease;
+ -moz-transition: border-color 0.2s ease;
+ transition: border-color 0.2s ease;
+}
+
+.ui.corner.label .icon {
+ font-size: 0.875em;
+ margin: 0.5em 1.25em 0em 0em;
+}
+
+.ui.corner.label .text {
+ display: inline-block;
+ font-weight: bold;
+ margin: 0.5em 1em 0em 0em;
+ width: 2.5em;
+ font-size: 0.875em;
+ text-align: center;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+}
+
+/* Coupling */
+
+.ui.rounded.image > .ui.corner.label,
+.ui.input > .ui.corner.label,
+.ui.segment > .ui.corner.label {
+ overflow: hidden;
+}
+
+.ui.segment > .ui.corner.label {
+ top: -1px;
+ left: -1px;
+}
+
+.ui.segment > .ui.left.corner.label {
+ left: auto;
+ right: -1px;
+}
+
+.ui.input > .ui.corner.label {
+ top: 1px;
+ left: 1px;
+}
+
+.ui.input > .ui.right.corner.label {
+ left: auto;
+ right: 1px;
+}
+
+/* Left Corner */
+
+.ui.left.corner.label,
+.ui.left.corner.label:after {
+ left: auto;
+ right: 0em;
+}
+
+.ui.left.corner.label:after {
+ border-top: 3em solid transparent;
+ border-left: 3em solid transparent;
+ border-bottom: 0em solid transparent;
+ border-right: 0em solid transparent;
+ border-top-color: inherit;
+}
+
+.ui.left.corner.label .icon {
+ margin: 0.5em -1em 0em 0em;
+}
+
+.ui.left.corner.label .text {
+ margin: 0.5em -1em 0em 0em;
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+}
+
+/* Hover */
+
+.ui.corner.label:hover {
+ background-color: transparent;
+}
+
+/*-------------------
+ Fluid
+--------------------*/
+
+.ui.label.fluid,
+.ui.fluid.labels > .label {
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.inverted.labels .label,
+.ui.inverted.label {
+ color: #FFFFFF !important;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+/*--- Black ---*/
+
+.ui.black.labels .label,
+.ui.black.label {
+ background-color: #5C6166 !important;
+ border-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .black.label:before,
+.ui.black.labels .label:before,
+.ui.black.label:before {
+ background-color: #5C6166 !important;
+}
+
+/* Hover */
+
+a.ui.black.labels .label:hover,
+a.ui.black.label:hover {
+ background-color: #333333 !important;
+ border-color: #333333 !important;
+}
+
+.ui.labels a.black.label:hover:before,
+.ui.black.labels a.label:hover:before,
+a.ui.black.label:hover:before {
+ background-color: #333333 !important;
+}
+
+/* Corner */
+
+.ui.black.corner.label,
+.ui.black.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.black.ribbon.label {
+ border-color: #333333 !important;
+}
+
+/*--- Green ---*/
+
+.ui.green.labels .label,
+.ui.green.label {
+ background-color: #A1CF64 !important;
+ border-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .green.label:before,
+.ui.green.labels .label:before,
+.ui.green.label:before {
+ background-color: #A1CF64 !important;
+}
+
+/* Hover */
+
+a.ui.green.labels .label:hover,
+a.ui.green.label:hover {
+ background-color: #89B84C !important;
+ border-color: #89B84C !important;
+}
+
+.ui.labels a.green.label:hover:before,
+.ui.green.labels a.label:hover:before,
+a.ui.green.label:hover:before {
+ background-color: #89B84C !important;
+}
+
+/* Corner */
+
+.ui.green.corner.label,
+.ui.green.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.green.ribbon.label {
+ border-color: #89B84C !important;
+}
+
+/*--- Red ---*/
+
+.ui.red.labels .label,
+.ui.red.label {
+ background-color: #D95C5C !important;
+ border-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .red.label:before,
+.ui.red.labels .label:before,
+.ui.red.label:before {
+ background-color: #D95C5C !important;
+}
+
+/* Corner */
+
+.ui.red.corner.label,
+.ui.red.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Hover */
+
+a.ui.red.labels .label:hover,
+a.ui.red.label:hover {
+ background-color: #DE3859 !important;
+ border-color: #DE3859 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.red.label:hover:before,
+.ui.red.labels a.label:hover:before,
+a.ui.red.label:hover:before {
+ background-color: #DE3859 !important;
+}
+
+/* Ribbon */
+
+.ui.red.ribbon.label {
+ border-color: #DE3859 !important;
+}
+
+/*--- Blue ---*/
+
+.ui.blue.labels .label,
+.ui.blue.label {
+ background-color: #6ECFF5 !important;
+ border-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .blue.label:before,
+.ui.blue.labels .label:before,
+.ui.blue.label:before {
+ background-color: #6ECFF5 !important;
+}
+
+/* Hover */
+
+a.ui.blue.labels .label:hover,
+.ui.blue.labels a.label:hover,
+a.ui.blue.label:hover {
+ background-color: #1AB8F3 !important;
+ border-color: #1AB8F3 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.blue.label:hover:before,
+.ui.blue.labels a.label:hover:before,
+a.ui.blue.label:hover:before {
+ background-color: #1AB8F3 !important;
+}
+
+/* Corner */
+
+.ui.blue.corner.label,
+.ui.blue.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.blue.ribbon.label {
+ border-color: #1AB8F3 !important;
+}
+
+/*--- Purple ---*/
+
+.ui.purple.labels .label,
+.ui.purple.label {
+ background-color: #564F8A !important;
+ border-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .purple.label:before,
+.ui.purple.labels .label:before,
+.ui.purple.label:before {
+ background-color: #564F8A !important;
+}
+
+/* Hover */
+
+a.ui.purple.labels .label:hover,
+.ui.purple.labels a.label:hover,
+a.ui.purple.label:hover {
+ background-color: #3E3773 !important;
+ border-color: #3E3773 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.purple.label:hover:before,
+.ui.purple.labels a.label:hover:before,
+a.ui.purple.label:hover:before {
+ background-color: #3E3773 !important;
+}
+
+/* Corner */
+
+.ui.purple.corner.label,
+.ui.purple.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.purple.ribbon.label {
+ border-color: #3E3773 !important;
+}
+
+/*--- Orange ---*/
+
+.ui.orange.labels .label,
+.ui.orange.label {
+ background-color: #F05940 !important;
+ border-color: #F05940 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .orange.label:before,
+.ui.orange.labels .label:before,
+.ui.orange.label:before {
+ background-color: #F05940 !important;
+}
+
+/* Hover */
+
+a.ui.orange.labels .label:hover,
+.ui.orange.labels a.label:hover,
+a.ui.orange.label:hover {
+ background-color: #FF4121 !important;
+ border-color: #FF4121 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.orange.label:hover:before,
+.ui.orange.labels a.label:hover:before,
+a.ui.orange.label:hover:before {
+ background-color: #FF4121 !important;
+}
+
+/* Corner */
+
+.ui.orange.corner.label,
+.ui.orange.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.orange.ribbon.label {
+ border-color: #FF4121 !important;
+}
+
+/*--- Teal ---*/
+
+.ui.teal.labels .label,
+.ui.teal.label {
+ background-color: #00B5AD !important;
+ border-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels .teal.label:before,
+.ui.teal.labels .label:before,
+.ui.teal.label:before {
+ background-color: #00B5AD !important;
+}
+
+/* Hover */
+
+a.ui.teal.labels .label:hover,
+.ui.teal.labels a.label:hover,
+a.ui.teal.label:hover {
+ background-color: #009A93 !important;
+ border-color: #009A93 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.labels a.teal.label:hover:before,
+.ui.teal.labels a.label:hover:before,
+a.ui.teal.label:hover:before {
+ background-color: #009A93 !important;
+}
+
+/* Corner */
+
+.ui.teal.corner.label,
+.ui.teal.corner.label:hover {
+ background-color: transparent !important;
+}
+
+/* Ribbon */
+
+.ui.teal.ribbon.label {
+ border-color: #009A93 !important;
+}
+
+/*-------------------
+ Horizontal
+--------------------*/
+
+.ui.horizontal.labels .label,
+.ui.horizontal.label {
+ margin: -0.125em 0em -0.125em 0.5em;
+ padding: 0.35em 1em;
+ min-width: 6em;
+ text-align: center;
+}
+
+/*-------------------
+ Circular
+--------------------*/
+
+.ui.circular.labels .label,
+.ui.circular.label {
+ min-height: 1em;
+ max-height: 2em;
+ padding: 0.5em !important;
+ line-height: 1em;
+ text-align: center;
+ border-radius: 500rem;
+}
+
+/*-------------------
+ Pointing
+--------------------*/
+
+.ui.pointing.label {
+ position: relative;
+}
+
+.ui.attached.pointing.label {
+ position: absolute;
+}
+
+.ui.pointing.label:before {
+ position: absolute;
+ content: "";
+ width: 0.6em;
+ height: 0.6em;
+ background-image: none;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ z-index: 2;
+ -webkit-transition: background 0.1s linear;
+ -moz-transition: background 0.1s linear;
+ transition: background 0.1s linear;
+}
+
+/*--- Above ---*/
+
+.ui.pointing.label:before {
+ background-color: #E8E8E8;
+}
+
+.ui.pointing.label,
+.ui.pointing.above.label {
+ margin-top: 1em;
+}
+
+.ui.pointing.label:before,
+.ui.pointing.above.label:before {
+ margin-right: -0.3em;
+ top: -0.3em;
+ right: 50%;
+}
+
+/*--- Below ---*/
+
+.ui.pointing.below.label {
+ margin-top: 0em;
+ margin-bottom: 1em;
+}
+
+.ui.pointing.below.label:before {
+ margin-right: -0.3em;
+ top: auto;
+ left: auto;
+ bottom: -0.3em;
+ right: 50%;
+}
+
+/*--- Left ---*/
+
+.ui.pointing.left.label {
+ margin-top: 0em;
+ margin-right: 1em;
+}
+
+.ui.pointing.left.label:before {
+ margin-top: -0.3em;
+ bottom: auto;
+ left: auto;
+ top: 50%;
+ right: 0em;
+}
+
+/*--- Right ---*/
+
+.ui.pointing.right.label {
+ margin-top: 0em;
+ margin-left: 1em;
+}
+
+.ui.pointing.right.label:before {
+ margin-top: -0.3em;
+ left: -0.3em;
+ top: 50%;
+ bottom: auto;
+ right: auto;
+}
+
+/*------------------
+ Floating Label
+-------------------*/
+
+.ui.floating.label {
+ position: absolute;
+ z-index: 100;
+ top: -1em;
+ right: 100%;
+ margin: 0em -1.5em 0em 0em !important;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+.ui.small.labels .label,
+.ui.small.label {
+ font-size: 0.75rem;
+}
+
+.ui.label {
+ font-size: 0.8125rem;
+}
+
+.ui.large.labels .label,
+.ui.large.label {
+ font-size: 0.875rem;
+}
+
+.ui.huge.labels .label,
+.ui.huge.label {
+ font-size: 1rem;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/elements/loader.css b/css/semantic/rtl/uncompressed/elements/loader.css
new file mode 100644
index 0000000..78e4fc1
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/elements/loader.css
@@ -0,0 +1,189 @@
+/*
+ * # Semantic - Loader
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Loader
+*******************************/
+
+/* Standard Size */
+
+.ui.loader {
+ display: none;
+ position: absolute;
+ top: 50%;
+ right: 50%;
+ margin: 0px;
+ z-index: 1000;
+ -webkit-transform: translateX(-50%) translateY(-50%);
+ -moz-transform: translateX(-50%) translateY(-50%);
+ -ms-transform: translateX(-50%) translateY(-50%);
+ transform: translateX(-50%) translateY(-50%);
+}
+
+.ui.dimmer .loader {
+ display: block;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Text
+--------------------*/
+
+.ui.text.loader {
+ width: auto !important;
+ height: auto !important;
+ text-align: center;
+ font-style: normal;
+}
+
+.ui.mini.text.loader {
+ min-width: 16px;
+ padding-top: 2em;
+ font-size: 0.875em;
+}
+
+.ui.small.text.loader {
+ min-width: 24px;
+ padding-top: 2.5em;
+ font-size: 0.875em;
+}
+
+.ui.text.loader {
+ min-width: 32px;
+ font-size: 1em;
+ padding-top: 3em;
+}
+
+.ui.large.text.loader {
+ min-width: 64px;
+ padding-top: 5em;
+ font-size: 1.2em;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.loader.active,
+.ui.loader.visible {
+ display: block;
+}
+
+.ui.loader.disabled,
+.ui.loader.hidden {
+ display: none;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.dimmer .ui.text.loader,
+.ui.inverted.text.loader {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.dimmer .ui.text.loader {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/* Tiny Size */
+
+.ui.dimmer .mini.ui.loader,
+.ui.inverted .mini.ui.loader {
+ background-image: url(../images/loader-mini-inverted.gif);
+}
+
+/* Small Size */
+
+.ui.dimmer .small.ui.loader,
+.ui.inverted .small.ui.loader {
+ background-image: url(../images/loader-small-inverted.gif);
+}
+
+/* Standard Size */
+
+.ui.dimmer .ui.loader,
+.ui.inverted.loader {
+ background-image: url(../images/loader-medium-inverted.gif);
+}
+
+/* Large Size */
+
+.ui.dimmer .large.ui.loader,
+.ui.inverted .large.ui.loader {
+ background-image: url(../images/loader-large-inverted.gif);
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+/* Tiny Size */
+
+.ui.inverted.dimmer .ui.mini.loader,
+.ui.mini.loader {
+ width: 16px;
+ height: 16px;
+ background-image: url(../images/loader-mini.gif);
+}
+
+/* Small Size */
+
+.ui.inverted.dimmer .ui.small.loader,
+.ui.small.loader {
+ width: 24px;
+ height: 24px;
+ background-image: url(../images/loader-small.gif);
+}
+
+.ui.inverted.dimmer .ui.loader,
+.ui.loader {
+ width: 32px;
+ height: 32px;
+ background: url(../images/loader-medium.gif) no-repeat;
+ background-position: 52% 0px;
+}
+
+/* Large Size */
+
+.ui.inverted.dimmer .ui.loader.large,
+.ui.loader.large {
+ width: 64px;
+ height: 64px;
+ background-image: url(../images/loader-large.gif);
+}
+
+/*-------------------
+ Inline
+--------------------*/
+
+.ui.inline.loader {
+ position: static;
+ vertical-align: middle;
+ margin: 0em;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+}
+
+.ui.inline.loader.active,
+.ui.inline.loader.visible {
+ display: inline-block;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/elements/progress.css b/css/semantic/rtl/uncompressed/elements/progress.css
new file mode 100644
index 0000000..7986549
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/elements/progress.css
@@ -0,0 +1,302 @@
+/*
+ * # Semantic - Progress Bar
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Progress Bar
+*******************************/
+
+.ui.progress {
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ width: 100%;
+ height: 35px;
+ background-color: #FAFAFA;
+ padding: 5px;
+ border-radius: 0.3125em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.progress .bar {
+ display: inline-block;
+ height: 100%;
+ background-color: #CCCCCC;
+ border-radius: 3px;
+ -webkit-transition: width 1s ease-in-out, background-color 1s ease-out;
+ -moz-transition: width 1s ease-in-out, background-color 1s ease-out;
+ transition: width 1s ease-in-out, background-color 1s ease-out;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Successful
+---------------*/
+
+.ui.successful.progress .bar {
+ background-color: #73E064 !important;
+}
+
+.ui.successful.progress .bar,
+.ui.successful.progress .bar::after {
+ -webkit-animation: none !important;
+ -moz-animation: none !important;
+ animation: none !important;
+}
+
+.ui.warning.progress .bar {
+ background-color: #E96633 !important;
+}
+
+.ui.warning.progress .bar,
+.ui.warning.progress .bar::after {
+ -webkit-animation: none !important;
+ -moz-animation: none !important;
+ animation: none !important;
+}
+
+/*--------------
+ Failed
+---------------*/
+
+.ui.failed.progress .bar {
+ background-color: #DF9BA4 !important;
+}
+
+.ui.failed.progress .bar,
+.ui.failed.progress .bar::after {
+ -webkit-animation: none !important;
+ -moz-animation: none !important;
+ animation: none !important;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.active.progress .bar {
+ position: relative;
+}
+
+.ui.active.progress .bar::after {
+ content: '';
+ opacity: 0;
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ left: 0px;
+ bottom: 0px;
+ background: #FFFFFF;
+ border-radius: 3px;
+ -webkit-animation: progress-active 2s ease-out infinite;
+ -moz-animation: progress-active 2s ease-out infinite;
+ animation: progress-active 2s ease-out infinite;
+}
+
+@-webkit-keyframes progress-active {
+ 0% {
+ opacity: 0;
+ width: 0;
+ }
+
+ 50% {
+ opacity: 0.3;
+ }
+
+ 100% {
+ opacity: 0;
+ width: 95%;
+ }
+}
+
+@-moz-keyframes progress-active {
+ 0% {
+ opacity: 0;
+ width: 0;
+ }
+
+ 50% {
+ opacity: 0.3;
+ }
+
+ 100% {
+ opacity: 0;
+ width: 100%;
+ }
+}
+
+@keyframes progress-active {
+ 0% {
+ opacity: 0;
+ width: 0;
+ }
+
+ 50% {
+ opacity: 0.3;
+ }
+
+ 100% {
+ opacity: 0;
+ width: 100%;
+ }
+}
+
+/*--------------
+ Disabled
+---------------*/
+
+.ui.disabled.progress {
+ opacity: 0.35;
+}
+
+.ui.disabled.progress .bar,
+.ui.disabled.progress .bar::after {
+ -webkit-animation: none !important;
+ -moz-animation: none !important;
+ animation: none !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Attached
+---------------*/
+
+/* bottom attached */
+
+.ui.progress.attached {
+ position: relative;
+ border: none;
+}
+
+.ui.progress.attached,
+.ui.progress.attached .bar {
+ display: block;
+ height: 3px;
+ padding: 0px;
+ overflow: hidden;
+ border-radius: 0em 0em 0.3125em 0.3125em;
+}
+
+.ui.progress.attached .bar {
+ border-radius: 0em;
+}
+
+/* top attached */
+
+.ui.progress.top.attached,
+.ui.progress.top.attached .bar {
+ top: -2px;
+ border-radius: 0.3125em 0.3125em 0em 0em;
+}
+
+.ui.progress.top.attached .bar {
+ border-radius: 0em;
+}
+
+/*--------------
+ Colors
+---------------*/
+
+.ui.blue.progress .bar {
+ background-color: #6ECFF5;
+}
+
+.ui.black.progress .bar {
+ background-color: #5C6166;
+}
+
+.ui.green.progress .bar {
+ background-color: #A1CF64;
+}
+
+.ui.red.progress .bar {
+ background-color: #EF4D6D;
+}
+
+.ui.purple.progress .bar {
+ background-color: #564F8A;
+}
+
+.ui.teal.progress .bar {
+ background-color: #00B5AD;
+}
+
+/*--------------
+ Striped
+---------------*/
+
+.ui.progress.striped .bar {
+ -webkit-background-size: 30px 30px;
+ background-size: 30px 30px;
+ background-image: -webkit-gradient(linear, right top, left bottom, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+ background-image: -webkit-linear-gradient(135deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -moz-linear-gradient(135deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -webkit-linear-gradient(315deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -moz-linear-gradient(315deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+
+.ui.progress.active.striped .bar:after {
+ -webkit-animation: none;
+ -moz-animation: none;
+ -ms-animation: none;
+ animation: none;
+}
+
+.ui.progress.active.striped .bar {
+ -webkit-animation: progress-striped 3s linear infinite;
+ -moz-animation: progress-striped 3s linear infinite;
+ animation: progress-striped 3s linear infinite;
+}
+
+@-webkit-keyframes progress-striped {
+ 0% {
+ background-position: 0px 0;
+ }
+
+ 100% {
+ background-position: 60px 0;
+ }
+}
+
+@-moz-keyframes progress-striped {
+ 0% {
+ background-position: 0px 0;
+ }
+
+ 100% {
+ background-position: 60px 0;
+ }
+}
+
+@keyframes progress-striped {
+ 0% {
+ background-position: 0px 0;
+ }
+
+ 100% {
+ background-position: 60px 0;
+ }
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.small.progress .bar {
+ height: 14px;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/elements/reveal.css b/css/semantic/rtl/uncompressed/elements/reveal.css
new file mode 100644
index 0000000..4105960
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/elements/reveal.css
@@ -0,0 +1,346 @@
+/*
+ * # Semantic - Reveal
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Reveal
+*******************************/
+
+.ui.reveal {
+ display: inline-block;
+ position: relative !important;
+ z-index: 2 !important;
+ font-size: 0em !important;
+}
+
+.ui.reveal > .content {
+ font-size: 1rem !important;
+}
+
+.ui.reveal > .visible.content {
+ -webkit-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ -moz-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+}
+
+.ui.reveal > .visible.content {
+ position: absolute !important;
+ top: 0em !important;
+ right: 0em !important;
+ z-index: 4 !important;
+ -webkit-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ -moz-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+}
+
+.ui.reveal > .hidden.content {
+ position: relative !important;
+ z-index: 3 !important;
+}
+
+/*------------------
+ Loose Coupling
+-------------------*/
+
+.ui.reveal.button {
+ overflow: hidden;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Slide
+---------------*/
+
+.ui.slide.reveal {
+ position: relative !important;
+ display: block;
+ overflow: hidden !important;
+ white-space: nowrap;
+}
+
+.ui.slide.reveal > .content {
+ display: block;
+ float: right;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 0em;
+ -webkit-transition: top 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, right 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, left 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, bottom 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ -moz-transition: top 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, right 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, left 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, bottom 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+ transition: top 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, right 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, left 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s, bottom 0.8s cubic-bezier(0.175, 0.885, 0.32, 1) 0.15s;
+}
+
+.ui.slide.reveal > .visible.content {
+ position: relative !important;
+}
+
+.ui.slide.reveal > .hidden.content {
+ position: absolute !important;
+ right: 100% !important;
+ width: 100% !important;
+}
+
+.ui.slide.reveal:hover > .visible.content,
+.ui.slide.reveal:focus > .visible.content {
+ right: -100% !important;
+}
+
+.ui.slide.reveal:hover > .hidden.content,
+.ui.slide.reveal:focus > .hidden.content {
+ right: 0% !important;
+}
+
+.ui.right.slide.reveal > .visible.content {
+ right: 0%;
+}
+
+.ui.right.slide.reveal > .hidden.content {
+ right: auto !important;
+ left: 100% !important;
+}
+
+.ui.right.slide.reveal:hover > .visible.content,
+.ui.right.slide.reveal:focus > .visible.content {
+ right: 100% !important;
+ left: auto !important;
+}
+
+.ui.right.slide.reveal:hover > .hidden.content,
+.ui.right.slide.reveal:focus > .hidden.content {
+ right: auto !important;
+ left: 0% !important;
+}
+
+.ui.up.slide.reveal > .visible.content {
+ top: 0% !important;
+ right: 0% !important;
+ left: auto !important;
+ bottom: auto !important;
+}
+
+.ui.up.slide.reveal > .hidden.content {
+ top: 100% !important;
+ right: 0% !important;
+ left: auto !important;
+ bottom: auto !important;
+}
+
+.ui.slide.up.reveal:hover > .visible.content,
+.ui.slide.up.reveal:focus > .visible.content {
+ top: -100% !important;
+ right: 0% !important;
+}
+
+.ui.slide.up.reveal:hover > .hidden.content,
+.ui.slide.up.reveal:focus > .hidden.content {
+ top: 0% !important;
+ right: 0% !important;
+}
+
+.ui.down.slide.reveal > .visible.content {
+ top: auto !important;
+ left: auto !important;
+ bottom: auto !important;
+ bottom: 0% !important;
+}
+
+.ui.down.slide.reveal > .hidden.content {
+ top: auto !important;
+ left: auto !important;
+ bottom: 100% !important;
+ right: 0% !important;
+}
+
+.ui.slide.down.reveal:hover > .visible.content,
+.ui.slide.down.reveal:focus > .visible.content {
+ right: 0% !important;
+ bottom: -100% !important;
+}
+
+.ui.slide.down.reveal:hover > .hidden.content,
+.ui.slide.down.reveal:focus > .hidden.content {
+ right: 0% !important;
+ bottom: 0% !important;
+}
+
+/*--------------
+ Fade
+---------------*/
+
+.ui.fade.reveal > .visible.content {
+ opacity: 1;
+}
+
+.ui.fade.reveal:hover > .visible.content,
+.ui.fade.reveal:focus > .visible.content {
+ opacity: 0;
+}
+
+/*--------------
+ Move
+---------------*/
+
+.ui.move.reveal > .visible.content,
+.ui.move.left.reveal > .visible.content {
+ right: auto !important;
+ top: auto !important;
+ bottom: auto !important;
+ left: 0% !important;
+}
+
+.ui.move.reveal:hover > .visible.content,
+.ui.move.left.reveal:hover > .visible.content,
+.ui.move.reveal:focus > .visible.content,
+.ui.move.left.reveal:focus > .visible.content {
+ left: 100% !important;
+}
+
+.ui.move.right.reveal > .visible.content {
+ left: auto !important;
+ top: auto !important;
+ bottom: auto !important;
+ right: 0% !important;
+}
+
+.ui.move.right.reveal:hover > .visible.content,
+.ui.move.right.reveal:focus > .visible.content {
+ right: 100% !important;
+}
+
+.ui.move.up.reveal > .visible.content {
+ left: auto !important;
+ right: auto !important;
+ top: auto !important;
+ bottom: 0% !important;
+}
+
+.ui.move.up.reveal:hover > .visible.content,
+.ui.move.up.reveal:focus > .visible.content {
+ bottom: 100% !important;
+}
+
+.ui.move.down.reveal > .visible.content {
+ left: auto !important;
+ right: auto !important;
+ top: 0% !important;
+ bottom: auto !important;
+}
+
+.ui.move.down.reveal:hover > .visible.content,
+.ui.move.down.reveal:focus > .visible.content {
+ top: 100% !important;
+}
+
+/*--------------
+ Rotate
+---------------*/
+
+.ui.rotate.reveal > .visible.content {
+ -webkit-transition-duration: 0.8s;
+ -moz-transition-duration: 0.8s;
+ transition-duration: 0.8s;
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+}
+
+.ui.rotate.reveal > .visible.content,
+.ui.rotate.right.reveal > .visible.content {
+ -webkit-transform-origin: bottom left;
+ -moz-transform-origin: bottom left;
+ -ms-transform-origin: bottom left;
+ transform-origin: bottom left;
+}
+
+.ui.rotate.reveal:hover > .visible.content,
+.ui.rotate.right.reveal:hover > .visible.content,
+.ui.rotate.reveal:focus > .visible.content,
+.ui.rotate.right.reveal:focus > .visible.content {
+ -webkit-transform: rotate(110deg);
+ -moz-transform: rotate(110deg);
+ -ms-transform: rotate(110deg);
+ transform: rotate(110deg);
+}
+
+.ui.rotate.left.reveal > .visible.content {
+ -webkit-transform-origin: bottom right;
+ -moz-transform-origin: bottom right;
+ -ms-transform-origin: bottom right;
+ transform-origin: bottom right;
+}
+
+.ui.rotate.left.reveal:hover > .visible.content,
+.ui.rotate.left.reveal:focus > .visible.content {
+ -webkit-transform: rotate(-110deg);
+ -moz-transform: rotate(-110deg);
+ -ms-transform: rotate(-110deg);
+ transform: rotate(-110deg);
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.disabled.reveal {
+ opacity: 1 !important;
+}
+
+.ui.disabled.reveal > .content {
+ -webkit-transition: none !important;
+ -moz-transition: none !important;
+ transition: none !important;
+}
+
+.ui.disabled.reveal:hover > .visible.content,
+.ui.disabled.reveal:focus > .visible.content {
+ position: static !important;
+ display: block !important;
+ opacity: 1 !important;
+ top: 0 !important;
+ right: 0 !important;
+ left: auto !important;
+ bottom: auto !important;
+ -webkit-transform: none !important;
+ -moz-transform: none !important;
+ -ms-transform: none !important;
+ transform: none !important;
+}
+
+.ui.disabled.reveal:hover > .hidden.content,
+.ui.disabled.reveal:focus > .hidden.content {
+ display: none !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Masked
+---------------*/
+
+.ui.masked.reveal {
+ overflow: hidden;
+}
+
+/*--------------
+ Instant
+---------------*/
+
+.ui.instant.reveal > .content {
+ -webkit-transition-delay: 0s !important;
+ -moz-transition-delay: 0s !important;
+ transition-delay: 0s !important;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/elements/segment.css b/css/semantic/rtl/uncompressed/elements/segment.css
new file mode 100644
index 0000000..64386bd
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/elements/segment.css
@@ -0,0 +1,459 @@
+/*
+ * # Semantic - Segment
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Segment
+*******************************/
+
+.ui.segment {
+ position: relative;
+ background-color: #FFFFFF;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ margin: 1em 0em;
+ padding: 1em;
+ border-radius: 5px 5px 5px 5px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.segment:first-child {
+ margin-top: 0em;
+}
+
+.ui.segment:last-child {
+ margin-bottom: 0em;
+}
+
+.ui.segment:after {
+ content: '';
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+.ui.vertical.segment {
+ margin: 0em;
+ padding-right: 0em;
+ padding-left: 0em;
+ background-color: transparent;
+ border-radius: 0px;
+ -webkit-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.1);
+}
+
+.ui.vertical.segment:first-child {
+ padding-top: 0em;
+}
+
+.ui.horizontal.segment {
+ margin: 0em;
+ padding-top: 0em;
+ padding-bottom: 0em;
+ background-color: transparent;
+ border-radius: 0px;
+ -webkit-box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1);
+ box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1);
+}
+
+.ui.horizontal.segment:first-child {
+ padding-right: 0em;
+}
+
+/*-------------------
+ Loose Coupling
+--------------------*/
+
+.ui.pointing.menu ~ .ui.attached.segment {
+ top: 1px;
+}
+
+.ui.page.grid.segment .ui.grid .ui.segment.column {
+ padding-top: 2rem;
+ padding-bottom: 2rem;
+}
+
+.ui.grid.segment,
+.ui.grid .ui.segment.row,
+.ui.grid .ui.segment.column {
+ border-radius: 0em;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border: none;
+}
+
+/* No padding on edge content */
+
+.ui.segment > :first-child {
+ margin-top: 0em;
+}
+
+.ui.segment > :last-child {
+ margin-bottom: 0em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Piled
+--------------------*/
+
+.ui.piled.segment {
+ margin: 2em 0em;
+ -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15);
+ -ms-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15);
+ -o-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15);
+ box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.15);
+}
+
+.ui.piled.segment:first-child {
+ margin-top: 0em;
+}
+
+.ui.piled.segment:last-child {
+ margin-bottom: 0em;
+}
+
+.ui.piled.segment:after,
+.ui.piled.segment:before {
+ background-color: #FFFFFF;
+ visibility: visible;
+ content: "";
+ display: block;
+ height: 100%;
+ right: -1px;
+ position: absolute;
+ width: 100%;
+ -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.piled.segment:after {
+ -webkit-transform: rotate(1.2deg);
+ -moz-transform: rotate(1.2deg);
+ -ms-transform: rotate(1.2deg);
+ transform: rotate(1.2deg);
+ top: 0;
+ z-index: -1;
+}
+
+.ui.piled.segment:before {
+ -webkit-transform: rotate(-1.2deg);
+ -moz-transform: rotate(-1.2deg);
+ -ms-transform: rotate(-1.2deg);
+ transform: rotate(-1.2deg);
+ top: 0;
+ z-index: -2;
+}
+
+/*-------------------
+ Stacked
+--------------------*/
+
+.ui.stacked.segment {
+ padding-bottom: 1.7em;
+}
+
+.ui.stacked.segment:after,
+.ui.stacked.segment:before {
+ content: '';
+ position: absolute;
+ bottom: -3px;
+ right: 0%;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ background-color: rgba(0, 0, 0, 0.02);
+ width: 100%;
+ height: 5px;
+ visibility: visible;
+}
+
+.ui.stacked.segment:before {
+ bottom: 0px;
+}
+
+/* Inverted */
+
+.ui.stacked.inverted.segment:after,
+.ui.stacked.inverted.segment:before {
+ background-color: rgba(255, 255, 255, 0.1);
+ border-top: 1px solid rgba(255, 255, 255, 0.35);
+}
+
+/*-------------------
+ Circular
+--------------------*/
+
+.ui.circular.segment {
+ display: table-cell;
+ padding: 2em;
+ text-align: center;
+ vertical-align: middle;
+ border-radius: 500em;
+}
+
+/*-------------------
+ Raised
+--------------------*/
+
+.ui.raised.segment {
+ -webkit-box-shadow: 0px 1px 2px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 1px 2px 1px rgba(0, 0, 0, 0.1);
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.disabled.segment {
+ opacity: 0.8;
+ color: #DDDDDD;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Basic
+--------------------*/
+
+.ui.basic.segment {
+ position: relative;
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border-radius: 0px;
+}
+
+.ui.basic.segment:first-child {
+ padding-top: 0em;
+}
+
+.ui.basic.segment:last-child {
+ padding-bottom: 0em;
+}
+
+/*-------------------
+ Fittted
+--------------------*/
+
+.ui.fitted.segment {
+ padding: 0em;
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+.ui.blue.segment {
+ border-top: 0.2em solid #6ECFF5;
+}
+
+.ui.green.segment {
+ border-top: 0.2em solid #A1CF64;
+}
+
+.ui.red.segment {
+ border-top: 0.2em solid #D95C5C;
+}
+
+.ui.orange.segment {
+ border-top: 0.2em solid #F05940;
+}
+
+.ui.purple.segment {
+ border-top: 0.2em solid #564F8A;
+}
+
+.ui.teal.segment {
+ border-top: 0.2em solid #00B5AD;
+}
+
+/*-------------------
+ Inverted Colors
+--------------------*/
+
+.ui.inverted.black.segment {
+ background-color: #5C6166 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.blue.segment {
+ background-color: #6ECFF5 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.green.segment {
+ background-color: #A1CF64 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.red.segment {
+ background-color: #D95C5C !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.orange.segment {
+ background-color: #F05940 !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.purple.segment {
+ background-color: #564F8A !important;
+ color: #FFFFFF !important;
+}
+
+.ui.inverted.teal.segment {
+ background-color: #00B5AD !important;
+ color: #FFFFFF !important;
+}
+
+/*-------------------
+ Aligned
+--------------------*/
+
+.ui.left.aligned.segment {
+ text-align: right;
+}
+
+.ui.right.aligned.segment {
+ text-align: left;
+}
+
+.ui.center.aligned.segment {
+ text-align: center;
+}
+
+.ui.justified.segment {
+ text-align: justify;
+ -webkit-hyphens: auto;
+ -moz-hyphens: auto;
+ -ms-hyphens: auto;
+ hyphens: auto;
+}
+
+/*-------------------
+ Floated
+--------------------*/
+
+.ui.floated.segment,
+.ui.left.floated.segment {
+ float: right;
+}
+
+.ui.right.floated.segment {
+ float: left;
+}
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.inverted.segment {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.segment .segment {
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.inverted.segment .inverted.segment {
+ color: #FFFFFF;
+}
+
+.ui.inverted.segment,
+.ui.primary.inverted.segment {
+ background-color: #222222;
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Ordinality
+--------------------*/
+
+.ui.primary.segment {
+ background-color: #FFFFFF;
+ color: #555555;
+}
+
+.ui.secondary.segment {
+ background-color: #FAF9FA;
+ color: #777777;
+}
+
+.ui.tertiary.segment {
+ background-color: #EBEBEB;
+ color: #B0B0B0;
+}
+
+.ui.secondary.inverted.segment {
+ background-color: #555555;
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(rgba(255, 255, 255, 0.3)), to(rgba(255, 255, 255, 0.3)));
+ background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.3) 100%);
+ background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.3) 100%);
+ background-image: -webkit-gradient(linear, right top, right bottom, from(rgba(255, 255, 255, 0.3)), to(rgba(255, 255, 255, 0.3)));
+ background-image: linear-gradient(rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.3) 100%);
+ color: #FAFAFA;
+}
+
+.ui.tertiary.inverted.segment {
+ background-color: #555555;
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(rgba(255, 255, 255, 0.6)), to(rgba(255, 255, 255, 0.6)));
+ background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.6) 100%);
+ background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.6) 100%);
+ background-image: -webkit-gradient(linear, right top, right bottom, from(rgba(255, 255, 255, 0.6)), to(rgba(255, 255, 255, 0.6)));
+ background-image: linear-gradient(rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.6) 100%);
+ color: #EEEEEE;
+}
+
+/*-------------------
+ Attached
+--------------------*/
+
+.ui.segment.attached {
+ top: -1px;
+ bottom: -1px;
+ border-radius: 0px;
+ margin: 0em;
+ -webkit-box-shadow: 0px 0px 0px 1px #DDDDDD;
+ box-shadow: 0px 0px 0px 1px #DDDDDD;
+}
+
+.ui.top.attached.segment {
+ top: 0px;
+ bottom: -1px;
+ margin-top: 1em;
+ margin-bottom: 0em;
+ border-radius: 5px 5px 0px 0px;
+}
+
+.ui.segment.top.attached:first-child {
+ margin-top: 0em;
+}
+
+.ui.segment.bottom.attached {
+ top: -1px;
+ bottom: 0px;
+ margin-top: 0em;
+ margin-bottom: 1em;
+ border-radius: 0px 0px 5px 5px;
+}
+
+.ui.segment.bottom.attached:last-child {
+ margin-bottom: 0em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/elements/step.css b/css/semantic/rtl/uncompressed/elements/step.css
new file mode 100644
index 0000000..3a6176c
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/elements/step.css
@@ -0,0 +1,332 @@
+/*
+ * # Semantic - Steps
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Step
+*******************************/
+
+.ui.step,
+.ui.steps .step {
+ display: inline-block;
+ position: relative;
+ padding: 1em 3em 1em 2em;
+ vertical-align: top;
+ background-color: #FFFFFF;
+ color: #888888;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.step:after,
+.ui.steps .step:after {
+ position: absolute;
+ z-index: 2;
+ content: '';
+ top: 0.42em;
+ left: -1em;
+ border: medium none;
+ background-color: #FFFFFF;
+ width: 2.2em;
+ height: 2.2em;
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+ -webkit-box-shadow: -1px -1px 0 0 rgba(0, 0, 0, 0.15) inset;
+ box-shadow: -1px -1px 0 0 rgba(0, 0, 0, 0.15) inset;
+}
+
+.ui.step,
+.ui.steps .step,
+.ui.steps .step:after {
+ -webkit-transition: background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, -webkit-box-shadow 0.1s ease;
+ -moz-transition: background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, box-shadow 0.1s ease;
+ transition: background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, box-shadow 0.1s ease;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/* Vertical */
+
+.ui.vertical.steps {
+ overflow: visible;
+}
+
+.ui.vertical.steps .step {
+ display: block;
+ border-radius: 0em;
+ padding: 1em 2em;
+}
+
+.ui.vertical.steps .step:first-child {
+ padding: 1em 2em;
+ border-radius: 0em;
+ border-top-right-radius: 0.3125rem;
+ border-top-left-radius: 0.3125rem;
+}
+
+.ui.vertical.steps .active.step:first-child {
+ border-top-left-radius: 0rem;
+}
+
+.ui.vertical.steps .step:last-child {
+ border-radius: 0em;
+ border-bottom-right-radius: 0.3125rem;
+ border-bottom-left-radius: 0.3125rem;
+}
+
+.ui.vertical.steps .active.step:last-child {
+ border-bottom-left-radius: 0rem;
+}
+
+/* Arrow */
+
+.ui.vertical.steps .step:after {
+ display: none;
+}
+
+/* Active Arrow */
+
+.ui.vertical.steps .active.step:after {
+ display: block;
+}
+
+/* Two Line */
+
+.ui.vertical.steps .two.line.step {
+ line-height: 1.3;
+}
+
+.ui.vertical.steps .two.line.active.step:after {
+ position: absolute;
+ z-index: 2;
+ content: '';
+ top: 0em;
+ left: -1.45em;
+ background-color: transparent;
+ border-bottom: 2.35em solid transparent;
+ border-right: 1.55em solid #555555;
+ border-top: 2.35em solid transparent;
+ width: 0em;
+ height: 0em;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+}
+
+/*******************************
+ Group
+*******************************/
+
+.ui.steps {
+ cursor: pointer;
+ display: inline-block;
+ font-size: 0em;
+ overflow: hidden;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ line-height: 1;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ border-radius: 0.3125rem;
+}
+
+.ui.steps .step:first-child {
+ padding-right: 1.35em;
+ border-radius: 0em 0.3125em 0.3125em 0em;
+}
+
+.ui.steps .step:last-child {
+ border-radius: 0.3125em 0em 0em 0.3125em;
+}
+
+.ui.steps .step:only-child {
+ border-radius: 0.3125em;
+}
+
+.ui.steps .step:last-child {
+ margin-left: 0em;
+}
+
+.ui.steps .step:last-child:after {
+ display: none;
+}
+
+/*******************************
+ States
+*******************************/
+
+/* Hover */
+
+.ui.step:hover,
+.ui.step.hover {
+ background-color: #F7F7F7;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.steps .step.hover:after,
+.ui.steps .step:hover:after,
+.ui.step:hover,
+.ui.step.hover::after {
+ background-color: #F7F7F7;
+}
+
+/* Hover */
+
+.ui.steps .step.down,
+.ui.steps .step:active,
+.ui.step.down,
+.ui.step:active {
+ background-color: #F0F0F0;
+}
+
+.ui.steps .step.down:after,
+.ui.steps .step:active:after,
+.ui.steps.down::after,
+.ui.steps:active::after {
+ background-color: #F0F0F0;
+}
+
+/* Active */
+
+.ui.steps .step.active,
+.ui.active.step {
+ cursor: auto;
+ background-color: #555555;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+
+.ui.steps .step.active:after,
+.ui.active.steps:after {
+ background-color: #555555;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/* Disabled */
+
+.ui.steps .disabled.step,
+.ui.disabled.step {
+ cursor: auto;
+ background-color: #FFFFFF;
+ color: #CBCBCB;
+}
+
+.ui.steps .disabled.step:after,
+.ui.disabled.step:after {
+ background-color: #FFFFFF;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/* Attached */
+
+.attached.ui.steps {
+ margin: 0em;
+ border-radius: 0.3125em 0.3125em 0em 0em;
+}
+
+.attached.ui.steps .step:first-child {
+ border-radius: 0em 0.3125em 0em 0em;
+}
+
+.attached.ui.steps .step:last-child {
+ border-radius: 0.3125em 0em 0em 0em;
+}
+
+/* Bottom Side */
+
+.bottom.attached.ui.steps {
+ margin-top: -1px;
+ border-radius: 0em 0em 0.3125em 0.3125em;
+}
+
+.bottom.attached.ui.steps .step:first-child {
+ border-radius: 0em 0em 0.3125em 0em;
+}
+
+.bottom.attached.ui.steps .step:last-child {
+ border-radius: 0em 0em 0em 0.3125em;
+}
+
+/* Evenly divided */
+
+.ui.one.steps,
+.ui.two.steps,
+.ui.three.steps,
+.ui.four.steps,
+.ui.five.steps,
+.ui.six.steps,
+.ui.seven.steps,
+.ui.eight.steps {
+ display: block;
+}
+
+.ui.one.steps > .step {
+ width: 100%;
+}
+
+.ui.two.steps > .step {
+ width: 50%;
+}
+
+.ui.three.steps > .step {
+ width: 33.333%;
+}
+
+.ui.four.steps > .step {
+ width: 25%;
+}
+
+.ui.five.steps > .step {
+ width: 20%;
+}
+
+.ui.six.steps > .step {
+ width: 16.666%;
+}
+
+.ui.seven.steps > .step {
+ width: 14.285%;
+}
+
+.ui.eight.steps > .step {
+ width: 12.500%;
+}
+
+/*******************************
+ Sizes
+*******************************/
+
+.ui.small.step,
+.ui.small.steps .step {
+ font-size: 0.8rem;
+}
+
+.ui.step,
+.ui.steps .step {
+ font-size: 1rem;
+}
+
+.ui.large.step,
+.ui.large.steps .step {
+ font-size: 1.25rem;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/fonts/basic.icons.eot b/css/semantic/rtl/uncompressed/fonts/basic.icons.eot
new file mode 100644
index 0000000..25066de
Binary files /dev/null and b/css/semantic/rtl/uncompressed/fonts/basic.icons.eot differ
diff --git a/css/semantic/rtl/uncompressed/fonts/basic.icons.svg b/css/semantic/rtl/uncompressed/fonts/basic.icons.svg
new file mode 100644
index 0000000..b9c54d0
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/fonts/basic.icons.svg
@@ -0,0 +1,450 @@
+
+
+
+
+Created by FontForge 20100429 at Thu Sep 20 22:09:47 2012
+ By root
+Copyright (C) 2012 by original authors @ fontello.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/css/semantic/rtl/uncompressed/fonts/basic.icons.ttf b/css/semantic/rtl/uncompressed/fonts/basic.icons.ttf
new file mode 100644
index 0000000..318a264
Binary files /dev/null and b/css/semantic/rtl/uncompressed/fonts/basic.icons.ttf differ
diff --git a/css/semantic/rtl/uncompressed/fonts/basic.icons.woff b/css/semantic/rtl/uncompressed/fonts/basic.icons.woff
new file mode 100644
index 0000000..baba1b5
Binary files /dev/null and b/css/semantic/rtl/uncompressed/fonts/basic.icons.woff differ
diff --git a/css/semantic/rtl/uncompressed/fonts/icons.eot b/css/semantic/rtl/uncompressed/fonts/icons.eot
new file mode 100644
index 0000000..0662cb9
Binary files /dev/null and b/css/semantic/rtl/uncompressed/fonts/icons.eot differ
diff --git a/css/semantic/rtl/uncompressed/fonts/icons.otf b/css/semantic/rtl/uncompressed/fonts/icons.otf
new file mode 100644
index 0000000..7012545
Binary files /dev/null and b/css/semantic/rtl/uncompressed/fonts/icons.otf differ
diff --git a/css/semantic/rtl/uncompressed/fonts/icons.svg b/css/semantic/rtl/uncompressed/fonts/icons.svg
new file mode 100644
index 0000000..2edb4ec
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/fonts/icons.svg
@@ -0,0 +1,399 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/fonts/icons.ttf b/css/semantic/rtl/uncompressed/fonts/icons.ttf
new file mode 100644
index 0000000..d365924
Binary files /dev/null and b/css/semantic/rtl/uncompressed/fonts/icons.ttf differ
diff --git a/css/semantic/rtl/uncompressed/fonts/icons.woff b/css/semantic/rtl/uncompressed/fonts/icons.woff
new file mode 100644
index 0000000..b9bd17e
Binary files /dev/null and b/css/semantic/rtl/uncompressed/fonts/icons.woff differ
diff --git a/css/semantic/rtl/uncompressed/images/loader-large-inverted.gif b/css/semantic/rtl/uncompressed/images/loader-large-inverted.gif
new file mode 100644
index 0000000..ee5283f
Binary files /dev/null and b/css/semantic/rtl/uncompressed/images/loader-large-inverted.gif differ
diff --git a/css/semantic/rtl/uncompressed/images/loader-large.gif b/css/semantic/rtl/uncompressed/images/loader-large.gif
new file mode 100644
index 0000000..519621c
Binary files /dev/null and b/css/semantic/rtl/uncompressed/images/loader-large.gif differ
diff --git a/css/semantic/rtl/uncompressed/images/loader-medium-inverted.gif b/css/semantic/rtl/uncompressed/images/loader-medium-inverted.gif
new file mode 100644
index 0000000..caa3110
Binary files /dev/null and b/css/semantic/rtl/uncompressed/images/loader-medium-inverted.gif differ
diff --git a/css/semantic/rtl/uncompressed/images/loader-medium.gif b/css/semantic/rtl/uncompressed/images/loader-medium.gif
new file mode 100644
index 0000000..386eb5a
Binary files /dev/null and b/css/semantic/rtl/uncompressed/images/loader-medium.gif differ
diff --git a/css/semantic/rtl/uncompressed/images/loader-mini-inverted.gif b/css/semantic/rtl/uncompressed/images/loader-mini-inverted.gif
new file mode 100644
index 0000000..c7c95b9
Binary files /dev/null and b/css/semantic/rtl/uncompressed/images/loader-mini-inverted.gif differ
diff --git a/css/semantic/rtl/uncompressed/images/loader-mini.gif b/css/semantic/rtl/uncompressed/images/loader-mini.gif
new file mode 100644
index 0000000..7f3e27c
Binary files /dev/null and b/css/semantic/rtl/uncompressed/images/loader-mini.gif differ
diff --git a/css/semantic/rtl/uncompressed/images/loader-small-inverted.gif b/css/semantic/rtl/uncompressed/images/loader-small-inverted.gif
new file mode 100644
index 0000000..bbb0a67
Binary files /dev/null and b/css/semantic/rtl/uncompressed/images/loader-small-inverted.gif differ
diff --git a/css/semantic/rtl/uncompressed/images/loader-small.gif b/css/semantic/rtl/uncompressed/images/loader-small.gif
new file mode 100644
index 0000000..8c9f60e
Binary files /dev/null and b/css/semantic/rtl/uncompressed/images/loader-small.gif differ
diff --git a/css/semantic/rtl/uncompressed/modules/accordion.css b/css/semantic/rtl/uncompressed/modules/accordion.css
new file mode 100644
index 0000000..7115065
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/accordion.css
@@ -0,0 +1,171 @@
+/*
+ * # Semantic - Accordion
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Accordion
+*******************************/
+
+.ui.accordion,
+.ui.accordion .accordion {
+ width: 600px;
+ max-width: 100%;
+ font-size: 1rem;
+ border-radius: 0.3125em;
+ background-color: #FFFFFF;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.accordion .title,
+.ui.accordion .accordion .title {
+ cursor: pointer;
+ margin: 0em;
+ padding: 0.75em 1em;
+ color: rgba(0, 0, 0, 0.6);
+ border-top: 1px solid rgba(0, 0, 0, 0.05);
+ -webkit-transition: background-color 0.2s ease-out;
+ -moz-transition: background-color 0.2s ease-out;
+ transition: background-color 0.2s ease-out;
+}
+
+.ui.accordion .title:first-child,
+.ui.accordion .accordion .title:first-child {
+ border-top: none;
+}
+
+/* Content */
+
+.ui.accordion .content,
+.ui.accordion .accordion .content {
+ display: none;
+ margin: 0em;
+ padding: 1.3em 1em;
+}
+
+/* Arrow */
+
+.ui.accordion .title .dropdown.icon,
+.ui.accordion .accordion .title .dropdown.icon {
+ display: inline-block;
+ float: none;
+ margin: 0em 0em 0em 0.5em;
+ -webkit-transition: -webkit-transform 0.2s ease, opacity 0.2s ease;
+ -moz-transition: -moz-transform 0.2s ease, opacity 0.2s ease;
+ transition: transform 0.2s ease,
+ opacity 0.2s ease;
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+}
+
+.ui.accordion .title .dropdown.icon:before,
+.ui.accordion .accordion .title .dropdown.icon:before {
+ content: '\f0da' /*rtl:'\f0d9'*/;
+}
+
+/*--------------
+ Loose Coupling
+---------------*/
+
+.ui.basic.accordion.menu {
+ background-color: #FFFFFF;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.basic.accordion.menu .title,
+.ui.basic.accordion.menu .content {
+ padding: 0em;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Basic
+---------------*/
+
+.ui.basic.accordion {
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.basic.accordion .title,
+.ui.basic.accordion .accordion .title {
+ background-color: transparent;
+ border-top: none;
+ padding-right: 0em;
+ padding-left: 0em;
+}
+
+.ui.basic.accordion .content,
+.ui.basic.accordion .accordion .content {
+ padding: 0.5em 0em;
+}
+
+.ui.basic.accordion .active.title,
+.ui.basic.accordion .accordion .active.title {
+ background-color: transparent;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.accordion .title:hover,
+.ui.accordion .active.title,
+.ui.accordion .accordion .title:hover,
+.ui.accordion .accordion .active.title {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.accordion .active.title,
+.ui.accordion .accordion .active.title {
+ background-color: rgba(0, 0, 0, 0.1);
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.accordion .active.title .dropdown.icon,
+.ui.accordion .accordion .active.title .dropdown.icon {
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+
+.ui.accordion .active.content,
+.ui.accordion .accordion .active.content {
+ display: block;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Fluid
+---------------*/
+
+.ui.fluid.accordion,
+.ui.fluid.accordion .accordion {
+ width: 100%;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/modules/accordion.js b/css/semantic/rtl/uncompressed/modules/accordion.js
new file mode 100644
index 0000000..69ff0d5
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/accordion.js
@@ -0,0 +1,428 @@
+/*
+ * # Semantic - Accordion
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.accordion = function(parameters) {
+ var
+ $allModules = $(this),
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.accordion.settings, parameters)
+ : $.extend({}, $.fn.accordion.settings),
+
+ className = settings.className,
+ namespace = settings.namespace,
+ selector = settings.selector,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+ moduleSelector = $allModules.selector || '',
+
+ $module = $(this),
+ $title = $module.find(selector.title),
+ $content = $module.find(selector.content),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing accordion with bound events', $module);
+ // initializing
+ $title
+ .on('click' + eventNamespace, module.event.click)
+ ;
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.debug('Destroying previous accordion for', $module);
+ $module
+ .removeData(moduleNamespace)
+ ;
+ $title
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+ click: function() {
+ module.verbose('Title clicked', this);
+ var
+ $activeTitle = $(this),
+ index = $title.index($activeTitle)
+ ;
+ module.toggle(index);
+ },
+ resetDisplay: function() {
+ $(this).css('display', '');
+ if( $(this).attr('style') == '') {
+ $(this)
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ }
+ },
+ resetOpacity: function() {
+ $(this).css('opacity', '');
+ if( $(this).attr('style') == '') {
+ $(this)
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ }
+ }
+ },
+
+ toggle: function(index) {
+ module.debug('Toggling content content at index', index);
+ var
+ $activeTitle = $title.eq(index),
+ $activeContent = $activeTitle.next($content),
+ contentIsOpen = $activeContent.is(':visible')
+ ;
+ if(contentIsOpen) {
+ if(settings.collapsible) {
+ module.close(index);
+ }
+ else {
+ module.debug('Cannot close accordion content collapsing is disabled');
+ }
+ }
+ else {
+ module.open(index);
+ }
+ },
+
+ open: function(index) {
+ var
+ $activeTitle = $title.eq(index),
+ $activeContent = $activeTitle.next($content),
+ $previousTitle = $activeTitle.siblings(selector.title).filter('.' + className.active),
+ $previousContent = $previousTitle.next($title),
+ contentIsOpen = ($previousTitle.size() > 0)
+ ;
+ if( !$activeContent.is(':animated') ) {
+ module.debug('Opening accordion content', $activeTitle);
+ if(settings.exclusive && contentIsOpen) {
+ $previousTitle
+ .removeClass(className.active)
+ ;
+ $previousContent
+ .stop()
+ .children()
+ .stop()
+ .animate({
+ opacity: 0
+ }, settings.duration, module.event.resetOpacity)
+ .end()
+ .slideUp(settings.duration , settings.easing, function() {
+ $previousContent
+ .removeClass(className.active)
+ .children()
+ ;
+ $.proxy(module.event.resetDisplay, this)();
+ })
+ ;
+ }
+ $activeTitle
+ .addClass(className.active)
+ ;
+ $activeContent
+ .stop()
+ .children()
+ .stop()
+ .animate({
+ opacity: 1
+ }, settings.duration)
+ .end()
+ .slideDown(settings.duration, settings.easing, function() {
+ $activeContent
+ .addClass(className.active)
+ ;
+ $.proxy(module.event.resetDisplay, this)();
+ $.proxy(settings.onOpen, $activeContent)();
+ $.proxy(settings.onChange, $activeContent)();
+ })
+ ;
+ }
+ },
+
+ close: function(index) {
+ var
+ $activeTitle = $title.eq(index),
+ $activeContent = $activeTitle.next($content)
+ ;
+ module.debug('Closing accordion content', $activeContent);
+ $activeTitle
+ .removeClass(className.active)
+ ;
+ $activeContent
+ .removeClass(className.active)
+ .show()
+ .stop()
+ .children()
+ .stop()
+ .animate({
+ opacity: 0
+ }, settings.duration, module.event.resetOpacity)
+ .end()
+ .slideUp(settings.duration, settings.easing, function(){
+ $.proxy(module.event.resetDisplay, this)();
+ $.proxy(settings.onClose, $activeContent)();
+ $.proxy(settings.onChange, $activeContent)();
+ })
+ ;
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ module.debug('Changing internal', name, value);
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else {
+ module[name] = value;
+ }
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.accordion.settings = {
+ name : 'Accordion',
+ namespace : 'accordion',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ exclusive : true,
+ collapsible : true,
+
+ duration : 500,
+ easing : 'easeInOutQuint',
+
+ onOpen : function(){},
+ onClose : function(){},
+ onChange : function(){},
+
+ error: {
+ method : 'The method you called is not defined'
+ },
+
+ className : {
+ active : 'active'
+ },
+
+ selector : {
+ title : '.title',
+ content : '.content'
+ }
+
+
+};
+
+// Adds easing
+$.extend( $.easing, {
+ easeInOutQuint: function (x, t, b, c, d) {
+ if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
+ return c/2*((t-=2)*t*t*t*t + 2) + b;
+ }
+});
+
+})( jQuery, window , document );
+
diff --git a/css/semantic/rtl/uncompressed/modules/behavior/api.js b/css/semantic/rtl/uncompressed/modules/behavior/api.js
new file mode 100644
index 0000000..0b2c87c
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/behavior/api.js
@@ -0,0 +1,634 @@
+/*
+ * # Semantic - API
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+ $.api = $.fn.api = function(parameters) {
+
+ var
+ settings = $.extend(true, {}, $.api.settings, parameters),
+
+ // if this keyword isn't a jQuery object, create one
+ context = (typeof this != 'function')
+ ? this
+ : $('
'),
+ // context defines the element used for loading/error state
+ $context = (settings.stateContext)
+ ? $(settings.stateContext)
+ : $(context),
+ // module is the thing that initiates the api action, can be independent of context
+ $module = typeof this == 'object'
+ ? $(context)
+ : $context,
+
+ element = this,
+ time = new Date().getTime(),
+ performance = [],
+
+ moduleSelector = $module.selector || '',
+ moduleNamespace = settings.namespace + '-module',
+
+ className = settings.className,
+ metadata = settings.metadata,
+ error = settings.error,
+
+ instance = $module.data(moduleNamespace),
+
+ query = arguments[0],
+ methodInvoked = (instance !== undefined && typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ module,
+ returnedValue
+ ;
+
+ module = {
+ initialize: function() {
+ var
+ runSettings,
+
+ loadingTimer = new Date().getTime(),
+ loadingDelay,
+
+ promise,
+ url,
+
+ formData = {},
+ data,
+
+ ajaxSettings = {},
+ xhr
+ ;
+
+ // serialize parent form if requested!
+ if(settings.serializeForm && $(this).toJSON() !== undefined) {
+ formData = module.get.formData();
+ module.debug('Adding form data to API Request', formData);
+ $.extend(true, settings.data, formData);
+ }
+
+ // let beforeSend change settings object
+ runSettings = $.proxy(settings.beforeSend, $module)(settings);
+
+ // check for exit conditions
+ if(runSettings !== undefined && !runSettings) {
+ module.error(error.beforeSend);
+ module.reset();
+ return;
+ }
+
+ // get real url from template
+ url = module.get.url( module.get.templateURL() );
+
+ // exit conditions reached from missing url parameters
+ if( !url ) {
+ module.error(error.missingURL);
+ module.reset();
+ return;
+ }
+
+ // promise handles notification on api request, so loading min. delay can occur for all notifications
+ promise =
+ $.Deferred()
+ .always(function() {
+ if(settings.stateContext) {
+ $context
+ .removeClass(className.loading)
+ ;
+ }
+ $.proxy(settings.complete, $module)();
+ })
+ .done(function(response) {
+ module.debug('API request successful');
+ // take a stab at finding success state if json
+ if(settings.dataType == 'json') {
+ if (response.error !== undefined) {
+ $.proxy(settings.failure, $context)(response.error, settings, $module);
+ }
+ else if ($.isArray(response.errors)) {
+ $.proxy(settings.failure, $context)(response.errors[0], settings, $module);
+ }
+ else {
+ $.proxy(settings.success, $context)(response, settings, $module);
+ }
+ }
+ // otherwise
+ else {
+ $.proxy(settings.success, $context)(response, settings, $module);
+ }
+ })
+ .fail(function(xhr, status, httpMessage) {
+ var
+ errorMessage = (settings.error[status] !== undefined)
+ ? settings.error[status]
+ : httpMessage,
+ response
+ ;
+ // let em know unless request aborted
+ if(xhr !== undefined) {
+ // readyState 4 = done, anything less is not really sent
+ if(xhr.readyState !== undefined && xhr.readyState == 4) {
+
+ // if http status code returned and json returned error, look for it
+ if( xhr.status != 200 && httpMessage !== undefined && httpMessage !== '') {
+ module.error(error.statusMessage + httpMessage);
+ }
+ else {
+ if(status == 'error' && settings.dataType == 'json') {
+ try {
+ response = $.parseJSON(xhr.responseText);
+ if(response && response.error !== undefined) {
+ errorMessage = response.error;
+ }
+ }
+ catch(error) {
+ module.error(error.JSONParse);
+ }
+ }
+ }
+ $context
+ .removeClass(className.loading)
+ .addClass(className.error)
+ ;
+ // show error state only for duration specified in settings
+ if(settings.errorLength > 0) {
+ setTimeout(function(){
+ $context
+ .removeClass(className.error)
+ ;
+ }, settings.errorLength);
+ }
+ module.debug('API Request error:', errorMessage);
+ $.proxy(settings.failure, $context)(errorMessage, settings, this);
+ }
+ else {
+ module.debug('Request Aborted (Most likely caused by page change)');
+ }
+ }
+ })
+ ;
+
+ // look for params in data
+ $.extend(true, ajaxSettings, settings, {
+ success : function(){},
+ failure : function(){},
+ complete : function(){},
+ type : settings.method || settings.type,
+ data : data,
+ url : url,
+ beforeSend : settings.beforeXHR
+ });
+
+ if(settings.stateContext) {
+ $context
+ .addClass(className.loading)
+ ;
+ }
+
+ if(settings.progress) {
+ module.verbose('Adding progress events');
+ $.extend(true, ajaxSettings, {
+ xhr: function() {
+ var
+ xhr = new window.XMLHttpRequest()
+ ;
+ xhr.upload.addEventListener('progress', function(event) {
+ var
+ percentComplete
+ ;
+ if (event.lengthComputable) {
+ percentComplete = Math.round(event.loaded / event.total * 10000) / 100 + '%';
+ $.proxy(settings.progress, $context)(percentComplete, event);
+ }
+ }, false);
+ xhr.addEventListener('progress', function(event) {
+ var
+ percentComplete
+ ;
+ if (event.lengthComputable) {
+ percentComplete = Math.round(event.loaded / event.total * 10000) / 100 + '%';
+ $.proxy(settings.progress, $context)(percentComplete, event);
+ }
+ }, false);
+ return xhr;
+ }
+ });
+ }
+
+ module.verbose('Creating AJAX request with settings: ', ajaxSettings);
+ xhr =
+ $.ajax(ajaxSettings)
+ .always(function() {
+ // calculate if loading time was below minimum threshold
+ loadingDelay = ( settings.loadingLength - (new Date().getTime() - loadingTimer) );
+ settings.loadingDelay = loadingDelay < 0
+ ? 0
+ : loadingDelay
+ ;
+ })
+ .done(function(response) {
+ var
+ context = this
+ ;
+ setTimeout(function(){
+ promise.resolveWith(context, [response]);
+ }, settings.loadingDelay);
+ })
+ .fail(function(xhr, status, httpMessage) {
+ var
+ context = this
+ ;
+ // page triggers abort on navigation, dont show error
+ if(status != 'abort') {
+ setTimeout(function(){
+ promise.rejectWith(context, [xhr, status, httpMessage]);
+ }, settings.loadingDelay);
+ }
+ else {
+ $context
+ .removeClass(className.error)
+ .removeClass(className.loading)
+ ;
+ }
+ })
+ ;
+ if(settings.stateContext) {
+ $module
+ .data(metadata.promise, promise)
+ .data(metadata.xhr, xhr)
+ ;
+ }
+ },
+
+ get: {
+ formData: function() {
+ return $module
+ .closest('form')
+ .toJSON()
+ ;
+ },
+ templateURL: function() {
+ var
+ action = $module.data(settings.metadata.action) || settings.action || false,
+ url
+ ;
+ if(action) {
+ module.debug('Creating url for: ', action);
+ if(settings.api[action] !== undefined) {
+ url = settings.api[action];
+ }
+ else {
+ module.error(error.missingAction);
+ }
+ }
+ // override with url if specified
+ if(settings.url) {
+ url = settings.url;
+ module.debug('Getting url', url);
+ }
+ return url;
+ },
+ url: function(url, urlData) {
+ var
+ urlVariables
+ ;
+ if(url) {
+ urlVariables = url.match(settings.regExpTemplate);
+ urlData = urlData || settings.urlData;
+
+ if(urlVariables) {
+ module.debug('Looking for URL variables', urlVariables);
+ $.each(urlVariables, function(index, templateValue){
+ var
+ term = templateValue.substr( 2, templateValue.length - 3),
+ termValue = ($.isPlainObject(urlData) && urlData[term] !== undefined)
+ ? urlData[term]
+ : ($module.data(term) !== undefined)
+ ? $module.data(term)
+ : urlData[term]
+ ;
+ module.verbose('Looking for variable', term, $module, $module.data(term), urlData[term]);
+ // remove optional value
+ if(termValue === false) {
+ module.debug('Removing variable from URL', urlVariables);
+ url = url.replace('/' + templateValue, '');
+ }
+ // undefined condition
+ else if(termValue === undefined || !termValue) {
+ module.error(error.missingParameter + term);
+ url = false;
+ return false;
+ }
+ else {
+ url = url.replace(templateValue, termValue);
+ }
+ });
+ }
+ }
+ return url;
+ }
+ },
+
+ // reset api request
+ reset: function() {
+ $module
+ .data(metadata.promise, false)
+ .data(metadata.xhr, false)
+ ;
+ $context
+ .removeClass(className.error)
+ .removeClass(className.loading)
+ ;
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+ };
+
+ // handle DOM attachment to API functionality
+ $.fn.apiButton = function(parameters) {
+ $(this)
+ .each(function(){
+ var
+ // if only function passed it is success callback
+ $module = $(this),
+ selector = $(this).selector || '',
+
+ settings = ( $.isFunction(parameters) )
+ ? $.extend(true, {}, $.api.settings, $.fn.apiButton.settings, { stateContext: this, success: parameters })
+ : $.extend(true, {}, $.api.settings, $.fn.apiButton.settings, { stateContext: this}, parameters),
+ module
+ ;
+ module = {
+ initialize: function() {
+ if(settings.context && selector !== '') {
+ $(settings.context)
+ .on(selector, 'click.' + settings.namespace, module.click)
+ ;
+ }
+ else {
+ $module
+ .on('click.' + settings.namespace, module.click)
+ ;
+ }
+ },
+ click: function() {
+ if(!settings.filter || $(this).filter(settings.filter).size() === 0) {
+ $.proxy( $.api, this )(settings);
+ }
+ }
+ };
+ module.initialize();
+ })
+ ;
+ return this;
+ };
+
+ $.api.settings = {
+
+ name : 'API',
+ namespace : 'api',
+
+ debug : true,
+ verbose : true,
+ performance : true,
+
+ api : {},
+
+ beforeSend : function(settings) {
+ return settings;
+ },
+ beforeXHR : function(xhr) {},
+ success : function(response) {},
+ complete : function(response) {},
+ failure : function(errorCode) {},
+ progress : false,
+
+ error : {
+ missingAction : 'API action used but no url was defined',
+ missingURL : 'URL not specified for the API action',
+ missingParameter : 'Missing an essential URL parameter: ',
+
+ timeout : 'Your request timed out',
+ error : 'There was an error with your request',
+ parseError : 'There was an error parsing your request',
+ JSONParse : 'JSON could not be parsed during error handling',
+ statusMessage : 'Server gave an error: ',
+ beforeSend : 'The before send function has aborted the request',
+ exitConditions : 'API Request Aborted. Exit conditions met'
+ },
+
+ className: {
+ loading : 'loading',
+ error : 'error'
+ },
+
+ metadata: {
+ action : 'action',
+ promise : 'promise',
+ xhr : 'xhr'
+ },
+
+ regExpTemplate: /\{\$([A-z]+)\}/g,
+
+ action : false,
+ url : false,
+ urlData : false,
+ serializeForm : false,
+
+ stateContext : false,
+
+ method : 'get',
+ data : {},
+ dataType : 'json',
+ cache : true,
+
+ loadingLength : 200,
+ errorLength : 2000
+
+ };
+
+ $.fn.apiButton.settings = {
+ filter : '.disabled, .loading',
+ context : false,
+ stateContext : false
+ };
+
+})( jQuery, window , document );
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/modules/behavior/colorize.js b/css/semantic/rtl/uncompressed/modules/behavior/colorize.js
new file mode 100644
index 0000000..7903f9a
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/behavior/colorize.js
@@ -0,0 +1,270 @@
+/*
+ * # Semantic - Colorize
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+ $.fn.colorize = function(parameters) {
+ var
+ settings = $.extend(true, {}, $.fn.colorize.settings, parameters),
+ // hoist arguments
+ moduleArguments = arguments || false
+ ;
+ $(this)
+ .each(function(instanceIndex) {
+
+ var
+ $module = $(this),
+
+ mainCanvas = $('
')[0],
+ imageCanvas = $('
')[0],
+ overlayCanvas = $('
')[0],
+
+ backgroundImage = new Image(),
+
+ // defs
+ mainContext,
+ imageContext,
+ overlayContext,
+
+ image,
+ imageName,
+
+ width,
+ height,
+
+ // shortucts
+ colors = settings.colors,
+ paths = settings.paths,
+ namespace = settings.namespace,
+ error = settings.error,
+
+ // boilerplate
+ instance = $module.data('module-' + namespace),
+ module
+ ;
+
+ module = {
+
+ checkPreconditions: function() {
+ module.debug('Checking pre-conditions');
+
+ if( !$.isPlainObject(colors) || $.isEmptyObject(colors) ) {
+ module.error(error.undefinedColors);
+ return false;
+ }
+ return true;
+ },
+
+ async: function(callback) {
+ if(settings.async) {
+ setTimeout(callback, 0);
+ }
+ else {
+ callback();
+ }
+ },
+
+ getMetadata: function() {
+ module.debug('Grabbing metadata');
+ image = $module.data('image') || settings.image || undefined;
+ imageName = $module.data('name') || settings.name || instanceIndex;
+ width = settings.width || $module.width();
+ height = settings.height || $module.height();
+ if(width === 0 || height === 0) {
+ module.error(error.undefinedSize);
+ }
+ },
+
+ initialize: function() {
+ module.debug('Initializing with colors', colors);
+ if( module.checkPreconditions() ) {
+
+ module.async(function() {
+ module.getMetadata();
+ module.canvas.create();
+
+ module.draw.image(function() {
+ module.draw.colors();
+ module.canvas.merge();
+ });
+ $module
+ .data('module-' + namespace, module)
+ ;
+ });
+ }
+ },
+
+ redraw: function() {
+ module.debug('Redrawing image');
+ module.async(function() {
+ module.canvas.clear();
+ module.draw.colors();
+ module.canvas.merge();
+ });
+ },
+
+ change: {
+ color: function(colorName, color) {
+ module.debug('Changing color', colorName);
+ if(colors[colorName] === undefined) {
+ module.error(error.missingColor);
+ return false;
+ }
+ colors[colorName] = color;
+ module.redraw();
+ }
+ },
+
+ canvas: {
+ create: function() {
+ module.debug('Creating canvases');
+
+ mainCanvas.width = width;
+ mainCanvas.height = height;
+ imageCanvas.width = width;
+ imageCanvas.height = height;
+ overlayCanvas.width = width;
+ overlayCanvas.height = height;
+
+ mainContext = mainCanvas.getContext('2d');
+ imageContext = imageCanvas.getContext('2d');
+ overlayContext = overlayCanvas.getContext('2d');
+
+ $module
+ .append( mainCanvas )
+ ;
+ mainContext = $module.children('canvas')[0].getContext('2d');
+ },
+ clear: function(context) {
+ module.debug('Clearing canvas');
+ overlayContext.fillStyle = '#FFFFFF';
+ overlayContext.fillRect(0, 0, width, height);
+ },
+ merge: function() {
+ if( !$.isFunction(mainContext.blendOnto) ) {
+ module.error(error.missingPlugin);
+ return;
+ }
+ mainContext.putImageData( imageContext.getImageData(0, 0, width, height), 0, 0);
+ overlayContext.blendOnto(mainContext, 'multiply');
+ }
+ },
+
+ draw: {
+
+ image: function(callback) {
+ module.debug('Drawing image');
+ callback = callback || function(){};
+ if(image) {
+ backgroundImage.src = image;
+ backgroundImage.onload = function() {
+ imageContext.drawImage(backgroundImage, 0, 0);
+ callback();
+ };
+ }
+ else {
+ module.error(error.noImage);
+ callback();
+ }
+ },
+
+ colors: function() {
+ module.debug('Drawing color overlays', colors);
+ $.each(colors, function(colorName, color) {
+ settings.onDraw(overlayContext, imageName, colorName, color);
+ });
+ }
+
+ },
+
+ debug: function(message, variableName) {
+ if(settings.debug) {
+ if(variableName !== undefined) {
+ console.info(settings.name + ': ' + message, variableName);
+ }
+ else {
+ console.info(settings.name + ': ' + message);
+ }
+ }
+ },
+ error: function(errorMessage) {
+ console.warn(settings.name + ': ' + errorMessage);
+ },
+ invoke: function(methodName, context, methodArguments) {
+ var
+ method
+ ;
+ methodArguments = methodArguments || Array.prototype.slice.call( arguments, 2 );
+
+ if(typeof methodName == 'string' && instance !== undefined) {
+ methodName = methodName.split('.');
+ $.each(methodName, function(index, name) {
+ if( $.isPlainObject( instance[name] ) ) {
+ instance = instance[name];
+ return true;
+ }
+ else if( $.isFunction( instance[name] ) ) {
+ method = instance[name];
+ return true;
+ }
+ module.error(settings.error.method);
+ return false;
+ });
+ }
+ return ( $.isFunction( method ) )
+ ? method.apply(context, methodArguments)
+ : false
+ ;
+ }
+
+ };
+ if(instance !== undefined && moduleArguments) {
+ // simpler than invoke realizing to invoke itself (and losing scope due prototype.call()
+ if(moduleArguments[0] == 'invoke') {
+ moduleArguments = Array.prototype.slice.call( moduleArguments, 1 );
+ }
+ return module.invoke(moduleArguments[0], this, Array.prototype.slice.call( moduleArguments, 1 ) );
+ }
+ // initializing
+ module.initialize();
+ })
+ ;
+ return this;
+ };
+
+ $.fn.colorize.settings = {
+ name : 'Image Colorizer',
+ debug : true,
+ namespace : 'colorize',
+
+ onDraw : function(overlayContext, imageName, colorName, color) {},
+
+ // whether to block execution while updating canvas
+ async : true,
+ // object containing names and default values of color regions
+ colors : {},
+
+ metadata: {
+ image : 'image',
+ name : 'name'
+ },
+
+ error: {
+ noImage : 'No tracing image specified',
+ undefinedColors : 'No default colors specified.',
+ missingColor : 'Attempted to change color that does not exist',
+ missingPlugin : 'Blend onto plug-in must be included',
+ undefinedHeight : 'The width or height of image canvas could not be automatically determined. Please specify a height.'
+ }
+
+ };
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/uncompressed/modules/behavior/form.js b/css/semantic/rtl/uncompressed/modules/behavior/form.js
new file mode 100644
index 0000000..4b9c518
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/behavior/form.js
@@ -0,0 +1,738 @@
+/*
+ * # Semantic - Form Validation
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.form = function(fields, parameters) {
+ var
+ $allModules = $(this),
+
+ settings = $.extend(true, {}, $.fn.form.settings, parameters),
+ validation = $.extend({}, $.fn.form.settings.defaults, fields),
+
+ namespace = settings.namespace,
+ metadata = settings.metadata,
+ selector = settings.selector,
+ className = settings.className,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ $module = $(this),
+ $field = $(this).find(selector.field),
+ $group = $(this).find(selector.group),
+ $message = $(this).find(selector.message),
+ $prompt = $(this).find(selector.prompt),
+ $submit = $(this).find(selector.submit),
+
+ formErrors = [],
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing form validation', $module, validation, settings);
+ module.bindEvents();
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module', instance);
+ module.removeEvents();
+ $module
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing selector cache');
+ $field = $module.find(selector.field);
+ },
+
+ submit: function() {
+ module.verbose('Submitting form', $module);
+ $module
+ .submit()
+ ;
+ },
+
+ bindEvents: function() {
+ if(settings.keyboardShortcuts) {
+ $field
+ .on('keydown' + eventNamespace, module.event.field.keydown)
+ ;
+ }
+ $module
+ .on('submit' + eventNamespace, module.validate.form)
+ ;
+ $field
+ .on('blur' + eventNamespace, module.event.field.blur)
+ ;
+ $submit
+ .on('click' + eventNamespace, module.submit)
+ ;
+ $field
+ .each(function() {
+ var
+ type = $(this).prop('type'),
+ inputEvent = module.get.changeEvent(type)
+ ;
+ $(this)
+ .on(inputEvent + eventNamespace, module.event.field.change)
+ ;
+ })
+ ;
+ },
+
+ removeEvents: function() {
+ $module
+ .off(eventNamespace)
+ ;
+ $field
+ .off(eventNamespace)
+ ;
+ $submit
+ .off(eventNamespace)
+ ;
+ $field
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+ field: {
+ keydown: function(event) {
+ var
+ $field = $(this),
+ key = event.which,
+ keyCode = {
+ enter : 13,
+ escape : 27
+ }
+ ;
+ if( key == keyCode.escape) {
+ module.verbose('Escape key pressed blurring field');
+ $field
+ .blur()
+ ;
+ }
+ if(!event.ctrlKey && key == keyCode.enter && $field.is(selector.input) ) {
+ module.debug('Enter key pressed, submitting form');
+ $submit
+ .addClass(className.down)
+ ;
+ $field
+ .one('keyup' + eventNamespace, module.event.field.keyup)
+ ;
+ event.preventDefault();
+ return false;
+ }
+ },
+ keyup: function() {
+ module.verbose('Doing keyboard shortcut form submit');
+ $submit.removeClass(className.down);
+ module.submit();
+ },
+ blur: function() {
+ var
+ $field = $(this),
+ $fieldGroup = $field.closest($group)
+ ;
+ if( $fieldGroup.hasClass(className.error) ) {
+ module.debug('Revalidating field', $field, module.get.validation($field));
+ module.validate.field( module.get.validation($field) );
+ }
+ else if(settings.on == 'blur' || settings.on == 'change') {
+ module.validate.field( module.get.validation($field) );
+ }
+ },
+ change: function() {
+ var
+ $field = $(this),
+ $fieldGroup = $field.closest($group)
+ ;
+ if(settings.on == 'change' || ( $fieldGroup.hasClass(className.error) && settings.revalidate) ) {
+ clearTimeout(module.timer);
+ module.timer = setTimeout(function() {
+ module.debug('Revalidating field', $field, module.get.validation($field));
+ module.validate.field( module.get.validation($field) );
+ }, settings.delay);
+ }
+ }
+ }
+
+ },
+
+ get: {
+ changeEvent: function(type) {
+ if(type == 'checkbox' || type == 'radio' || type == 'hidden') {
+ return 'change';
+ }
+ else {
+ return (document.createElement('input').oninput !== undefined)
+ ? 'input'
+ : (document.createElement('input').onpropertychange !== undefined)
+ ? 'propertychange'
+ : 'keyup'
+ ;
+ }
+ },
+ field: function(identifier) {
+ module.verbose('Finding field with identifier', identifier);
+ if( $field.filter('#' + identifier).size() > 0 ) {
+ return $field.filter('#' + identifier);
+ }
+ else if( $field.filter('[name="' + identifier +'"]').size() > 0 ) {
+ return $field.filter('[name="' + identifier +'"]');
+ }
+ else if( $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]').size() > 0 ) {
+ return $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]');
+ }
+ return $('
');
+ },
+ validation: function($field) {
+ var
+ rules
+ ;
+ $.each(validation, function(fieldName, field) {
+ if( module.get.field(field.identifier).get(0) == $field.get(0) ) {
+ rules = field;
+ }
+ });
+ return rules || false;
+ }
+ },
+
+ has: {
+
+ field: function(identifier) {
+ module.verbose('Checking for existence of a field with identifier', identifier);
+ if( $field.filter('#' + identifier).size() > 0 ) {
+ return true;
+ }
+ else if( $field.filter('[name="' + identifier +'"]').size() > 0 ) {
+ return true;
+ }
+ else if( $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]').size() > 0 ) {
+ return true;
+ }
+ return false;
+ }
+
+ },
+
+ add: {
+ prompt: function(identifier, errors) {
+ var
+ $field = module.get.field(identifier),
+ $fieldGroup = $field.closest($group),
+ $prompt = $fieldGroup.find(selector.prompt),
+ promptExists = ($prompt.size() !== 0)
+ ;
+ errors = (typeof errors == 'string')
+ ? [errors]
+ : errors
+ ;
+ module.verbose('Adding field error state', identifier);
+ $fieldGroup
+ .addClass(className.error)
+ ;
+ if(settings.inline) {
+ if(!promptExists) {
+ $prompt = settings.templates.prompt(errors);
+ $prompt
+ .appendTo($fieldGroup)
+ ;
+ }
+ $prompt
+ .html(errors[0])
+ ;
+ if(!promptExists) {
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ module.verbose('Displaying error with css transition', settings.transition);
+ $prompt.transition(settings.transition + ' in', settings.duration);
+ }
+ else {
+ module.verbose('Displaying error with fallback javascript animation');
+ $prompt
+ .fadeIn(settings.duration)
+ ;
+ }
+ }
+ else {
+ module.verbose('Inline errors are disabled, no inline error added', identifier);
+ }
+ }
+ },
+ errors: function(errors) {
+ module.debug('Adding form error messages', errors);
+ $message
+ .html( settings.templates.error(errors) )
+ ;
+ }
+ },
+
+ remove: {
+ prompt: function(field) {
+ var
+ $field = module.get.field(field.identifier),
+ $fieldGroup = $field.closest($group),
+ $prompt = $fieldGroup.find(selector.prompt)
+ ;
+ $fieldGroup
+ .removeClass(className.error)
+ ;
+ if(settings.inline && $prompt.is(':visible')) {
+ module.verbose('Removing prompt for field', field);
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $prompt.transition(settings.transition + ' out', settings.duration, function() {
+ $prompt.remove();
+ });
+ }
+ else {
+ $prompt
+ .fadeOut(settings.duration, function(){
+ $prompt.remove();
+ })
+ ;
+ }
+ }
+ }
+ },
+
+ validate: {
+
+ form: function(event) {
+ var
+ allValid = true
+ ;
+ // reset errors
+ formErrors = [];
+ $.each(validation, function(fieldName, field) {
+ if( !( module.validate.field(field) ) ) {
+ allValid = false;
+ }
+ });
+ if(allValid) {
+ module.debug('Form has no validation errors, submitting');
+ $module
+ .removeClass(className.error)
+ .addClass(className.success)
+ ;
+ return $.proxy(settings.onSuccess, this)(event);
+ }
+ else {
+ module.debug('Form has errors');
+ $module.addClass(className.error);
+ if(!settings.inline) {
+ module.add.errors(formErrors);
+ }
+ return $.proxy(settings.onFailure, this)(formErrors);
+ }
+ },
+
+ // takes a validation object and returns whether field passes validation
+ field: function(field) {
+ var
+ $field = module.get.field(field.identifier),
+ fieldValid = true,
+ fieldErrors = []
+ ;
+ if(field.rules !== undefined) {
+ $.each(field.rules, function(index, rule) {
+ if( module.has.field(field.identifier) && !( module.validate.rule(field, rule) ) ) {
+ module.debug('Field is invalid', field.identifier, rule.type);
+ fieldErrors.push(rule.prompt);
+ fieldValid = false;
+ }
+ });
+ }
+ if(fieldValid) {
+ module.remove.prompt(field, fieldErrors);
+ $.proxy(settings.onValid, $field)();
+ }
+ else {
+ formErrors = formErrors.concat(fieldErrors);
+ module.add.prompt(field.identifier, fieldErrors);
+ $.proxy(settings.onInvalid, $field)(fieldErrors);
+ return false;
+ }
+ return true;
+ },
+
+ // takes validation rule and returns whether field passes rule
+ rule: function(field, validation) {
+ var
+ $field = module.get.field(field.identifier),
+ type = validation.type,
+ value = $.trim($field.val() + ''),
+
+ bracketRegExp = /\[(.*)\]/i,
+ bracket = bracketRegExp.exec(type),
+ isValid = true,
+ ancillary,
+ functionType
+ ;
+ // if bracket notation is used, pass in extra parameters
+ if(bracket !== undefined && bracket !== null) {
+ ancillary = '' + bracket[1];
+ functionType = type.replace(bracket[0], '');
+ isValid = $.proxy(settings.rules[functionType], $module)(value, ancillary);
+ }
+ // normal notation
+ else {
+ isValid = $.proxy(settings.rules[type], $field)(value);
+ }
+ return isValid;
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.form.settings = {
+
+ name : 'Form',
+ namespace : 'form',
+
+ debug : true,
+ verbose : true,
+ performance : true,
+
+
+ keyboardShortcuts : true,
+ on : 'submit',
+ inline : false,
+
+ delay : 200,
+ revalidate : true,
+
+ transition : 'scale',
+ duration : 150,
+
+
+ onValid : function() {},
+ onInvalid : function() {},
+ onSuccess : function() { return true; },
+ onFailure : function() { return false; },
+
+ metadata : {
+ validate: 'validate'
+ },
+
+ selector : {
+ message : '.error.message',
+ field : 'input, textarea, select',
+ group : '.field',
+ input : 'input',
+ prompt : '.prompt',
+ submit : '.submit'
+ },
+
+ className : {
+ error : 'error',
+ success : 'success',
+ down : 'down',
+ label : 'ui label prompt'
+ },
+
+ // errors
+ error: {
+ method : 'The method you called is not defined.'
+ },
+
+
+ templates: {
+ error: function(errors) {
+ var
+ html = '
'
+ ;
+ $.each(errors, function(index, value) {
+ html += '' + value + ' ';
+ });
+ html += ' ';
+ return $(html);
+ },
+ prompt: function(errors) {
+ return $('
')
+ .addClass('ui red pointing prompt label')
+ .html(errors[0])
+ ;
+ }
+ },
+
+ rules: {
+ checked: function() {
+ return ($(this).filter(':checked').size() > 0);
+ },
+ empty: function(value) {
+ return !(value === undefined || '' === value);
+ },
+ email: function(value){
+ var
+ emailRegExp = new RegExp("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", "i")
+ ;
+ return emailRegExp.test(value);
+ },
+ length: function(value, requiredLength) {
+ return (value !== undefined)
+ ? (value.length >= requiredLength)
+ : false
+ ;
+ },
+ not: function(value, notValue) {
+ return (value != notValue);
+ },
+ contains: function(value, text) {
+ text = text.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
+ return (value.search(text) !== -1);
+ },
+ is: function(value, text) {
+ return (value == text);
+ },
+ maxLength: function(value, maxLength) {
+ return (value !== undefined)
+ ? (value.length <= maxLength)
+ : false
+ ;
+ },
+ match: function(value, fieldIdentifier) {
+ // use either id or name of field
+ var
+ $form = $(this),
+ matchingValue
+ ;
+ if($form.find('#' + fieldIdentifier).size() > 0) {
+ matchingValue = $form.find('#' + fieldIdentifier).val();
+ }
+ else if($form.find('[name=' + fieldIdentifier +']').size() > 0) {
+ matchingValue = $form.find('[name=' + fieldIdentifier + ']').val();
+ }
+ else if( $form.find('[data-validate="'+ fieldIdentifier +'"]').size() > 0 ) {
+ matchingValue = $form.find('[data-validate="'+ fieldIdentifier +'"]').val();
+ }
+ return (matchingValue !== undefined)
+ ? ( value.toString() == matchingValue.toString() )
+ : false
+ ;
+ },
+ url: function(value) {
+ var
+ urlRegExp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
+ ;
+ return urlRegExp.test(value);
+ }
+ }
+
+};
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/uncompressed/modules/behavior/state.js b/css/semantic/rtl/uncompressed/modules/behavior/state.js
new file mode 100644
index 0000000..e571c8e
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/behavior/state.js
@@ -0,0 +1,725 @@
+/*
+ * # Semantic - State
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.state = function(parameters) {
+ var
+ $allModules = $(this),
+ settings = $.extend(true, {}, $.fn.state.settings, parameters),
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ // shortcuts
+ error = settings.error,
+ metadata = settings.metadata,
+ className = settings.className,
+ namespace = settings.namespace,
+ states = settings.states,
+ text = settings.text,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = namespace + '-module',
+
+
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ $module = $(this),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+
+ module
+ ;
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing module');
+
+ // allow module to guess desired state based on element
+ if(settings.automatic) {
+ module.add.defaults();
+ }
+
+ // bind events with delegated events
+ if(settings.context && moduleSelector !== '') {
+ if( module.allows('hover') ) {
+ $(element, settings.context)
+ .on(moduleSelector, 'mouseenter' + eventNamespace, module.enable.hover)
+ .on(moduleSelector, 'mouseleave' + eventNamespace, module.disable.hover)
+ ;
+ }
+ if( module.allows('down') ) {
+ $(element, settings.context)
+ .on(moduleSelector, 'mousedown' + eventNamespace, module.enable.down)
+ .on(moduleSelector, 'mouseup' + eventNamespace, module.disable.down)
+ ;
+ }
+ if( module.allows('focus') ) {
+ $(element, settings.context)
+ .on(moduleSelector, 'focus' + eventNamespace, module.enable.focus)
+ .on(moduleSelector, 'blur' + eventNamespace, module.disable.focus)
+ ;
+ }
+ $(settings.context)
+ .on(moduleSelector, 'mouseenter' + eventNamespace, module.change.text)
+ .on(moduleSelector, 'mouseleave' + eventNamespace, module.reset.text)
+ .on(moduleSelector, 'click' + eventNamespace, module.toggle.state)
+ ;
+ }
+ else {
+ if( module.allows('hover') ) {
+ $module
+ .on('mouseenter' + eventNamespace, module.enable.hover)
+ .on('mouseleave' + eventNamespace, module.disable.hover)
+ ;
+ }
+ if( module.allows('down') ) {
+ $module
+ .on('mousedown' + eventNamespace, module.enable.down)
+ .on('mouseup' + eventNamespace, module.disable.down)
+ ;
+ }
+ if( module.allows('focus') ) {
+ $module
+ .on('focus' + eventNamespace, module.enable.focus)
+ .on('blur' + eventNamespace, module.disable.focus)
+ ;
+ }
+ $module
+ .on('mouseenter' + eventNamespace, module.change.text)
+ .on('mouseleave' + eventNamespace, module.reset.text)
+ .on('click' + eventNamespace, module.toggle.state)
+ ;
+ }
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module', instance);
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing selector cache');
+ $module = $(element);
+ },
+
+ add: {
+ defaults: function() {
+ var
+ userStates = parameters && $.isPlainObject(parameters.states)
+ ? parameters.states
+ : {}
+ ;
+ $.each(settings.defaults, function(type, typeStates) {
+ if( module.is[type] !== undefined && module.is[type]() ) {
+ module.verbose('Adding default states', type, element);
+ $.extend(settings.states, typeStates, userStates);
+ }
+ });
+ }
+ },
+
+ is: {
+
+ active: function() {
+ return $module.hasClass(className.active);
+ },
+ loading: function() {
+ return $module.hasClass(className.loading);
+ },
+ inactive: function() {
+ return !( $module.hasClass(className.active) );
+ },
+
+ enabled: function() {
+ return !( $module.is(settings.filter.active) );
+ },
+ disabled: function() {
+ return ( $module.is(settings.filter.active) );
+ },
+ textEnabled: function() {
+ return !( $module.is(settings.filter.text) );
+ },
+
+ // definitions for automatic type detection
+ button: function() {
+ return $module.is('.button:not(a, .submit)');
+ },
+ input: function() {
+ return $module.is('input');
+ }
+ },
+
+ allow: function(state) {
+ module.debug('Now allowing state', state);
+ states[state] = true;
+ },
+ disallow: function(state) {
+ module.debug('No longer allowing', state);
+ states[state] = false;
+ },
+
+ allows: function(state) {
+ return states[state] || false;
+ },
+
+ enable: {
+ state: function(state) {
+ if(module.allows(state)) {
+ $module.addClass( className[state] );
+ }
+ },
+ // convenience
+ focus: function() {
+ $module.addClass(className.focus);
+ },
+ hover: function() {
+ $module.addClass(className.hover);
+ },
+ down: function() {
+ $module.addClass(className.down);
+ },
+ },
+
+ disable: {
+ state: function(state) {
+ if(module.allows(state)) {
+ $module.removeClass( className[state] );
+ }
+ },
+ // convenience
+ focus: function() {
+ $module.removeClass(className.focus);
+ },
+ hover: function() {
+ $module.removeClass(className.hover);
+ },
+ down: function() {
+ $module.removeClass(className.down);
+ },
+ },
+
+ toggle: {
+ state: function() {
+ var
+ apiRequest = $module.data(metadata.promise)
+ ;
+ if( module.allows('active') && module.is.enabled() ) {
+ module.refresh();
+ if(apiRequest !== undefined) {
+ module.listenTo(apiRequest);
+ }
+ else {
+ module.change.state();
+ }
+ }
+ }
+ },
+
+ listenTo: function(apiRequest) {
+ module.debug('API request detected, waiting for state signal', apiRequest);
+ if(apiRequest) {
+ if(text.loading) {
+ module.update.text(text.loading);
+ }
+ $.when(apiRequest)
+ .then(function() {
+ if(apiRequest.state() == 'resolved') {
+ module.debug('API request succeeded');
+ settings.activateTest = function(){ return true; };
+ settings.deactivateTest = function(){ return true; };
+ }
+ else {
+ module.debug('API request failed');
+ settings.activateTest = function(){ return false; };
+ settings.deactivateTest = function(){ return false; };
+ }
+ module.change.state();
+ })
+ ;
+ }
+ // xhr exists but set to false, beforeSend killed the xhr
+ else {
+ settings.activateTest = function(){ return false; };
+ settings.deactivateTest = function(){ return false; };
+ }
+ },
+
+ // checks whether active/inactive state can be given
+ change: {
+
+ state: function() {
+ module.debug('Determining state change direction');
+ // inactive to active change
+ if( module.is.inactive() ) {
+ module.activate();
+ }
+ else {
+ module.deactivate();
+ }
+ if(settings.sync) {
+ module.sync();
+ }
+ $.proxy(settings.onChange, element)();
+ },
+
+ text: function() {
+ if( module.is.textEnabled() ) {
+ if( module.is.active() ) {
+ if(text.hover) {
+ module.verbose('Changing text to hover text', text.hover);
+ module.update.text(text.hover);
+ }
+ else if(text.disable) {
+ module.verbose('Changing text to disable text', text.disable);
+ module.update.text(text.disable);
+ }
+ }
+ else {
+ if(text.hover) {
+ module.verbose('Changing text to hover text', text.disable);
+ module.update.text(text.hover);
+ }
+ else if(text.enable){
+ module.verbose('Changing text to enable text', text.enable);
+ module.update.text(text.enable);
+ }
+ }
+ }
+ }
+
+ },
+
+ activate: function() {
+ if( $.proxy(settings.activateTest, element)() ) {
+ module.debug('Setting state to active');
+ $module
+ .addClass(className.active)
+ ;
+ module.update.text(text.active);
+ }
+ $.proxy(settings.onActivate, element)();
+ },
+
+ deactivate: function() {
+ if($.proxy(settings.deactivateTest, element)() ) {
+ module.debug('Setting state to inactive');
+ $module
+ .removeClass(className.active)
+ ;
+ module.update.text(text.inactive);
+ }
+ $.proxy(settings.onDeactivate, element)();
+ },
+
+ sync: function() {
+ module.verbose('Syncing other buttons to current state');
+ if( module.is.active() ) {
+ $allModules
+ .not($module)
+ .state('activate');
+ }
+ else {
+ $allModules
+ .not($module)
+ .state('deactivate')
+ ;
+ }
+ },
+
+ get: {
+ text: function() {
+ return (settings.selector.text)
+ ? $module.find(settings.selector.text).text()
+ : $module.html()
+ ;
+ },
+ textFor: function(state) {
+ return text[state] || false;
+ }
+ },
+
+ flash: {
+ text: function(text, duration) {
+ var
+ previousText = module.get.text()
+ ;
+ module.debug('Flashing text message', text, duration);
+ text = text || settings.text.flash;
+ duration = duration || settings.flashDuration;
+ module.update.text(text);
+ setTimeout(function(){
+ module.update.text(previousText);
+ }, duration);
+ }
+ },
+
+ reset: {
+ // on mouseout sets text to previous value
+ text: function() {
+ var
+ activeText = text.active || $module.data(metadata.storedText),
+ inactiveText = text.inactive || $module.data(metadata.storedText)
+ ;
+ if( module.is.textEnabled() ) {
+ if( module.is.active() && activeText) {
+ module.verbose('Resetting active text', activeText);
+ module.update.text(activeText);
+ }
+ else if(inactiveText) {
+ module.verbose('Resetting inactive text', activeText);
+ module.update.text(inactiveText);
+ }
+ }
+ }
+ },
+
+ update: {
+ text: function(text) {
+ var
+ currentText = module.get.text()
+ ;
+ if(text && text !== currentText) {
+ module.debug('Updating text', text);
+ if(settings.selector.text) {
+ $module
+ .data(metadata.storedText, text)
+ .find(settings.selector.text)
+ .text(text)
+ ;
+ }
+ else {
+ $module
+ .data(metadata.storedText, text)
+ .html(text)
+ ;
+ }
+ }
+ else {
+ module.debug('Text is already sane, ignoring update', text);
+ }
+ }
+ },
+
+ setting: function(name, value) {
+ module.debug('Changing setting', name, value);
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else {
+ settings[name] = value;
+ }
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ module.debug('Changing internal', name, value);
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else {
+ module[name] = value;
+ }
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.state.settings = {
+
+ // module info
+ name : 'State',
+
+ // debug output
+ debug : true,
+
+ // verbose debug output
+ verbose : true,
+
+ // namespace for events
+ namespace : 'state',
+
+ // debug data includes performance
+ performance: true,
+
+ // callback occurs on state change
+ onActivate : function() {},
+ onDeactivate : function() {},
+ onChange : function() {},
+
+ // state test functions
+ activateTest : function() { return true; },
+ deactivateTest : function() { return true; },
+
+ // whether to automatically map default states
+ automatic : true,
+
+ // activate / deactivate changes all elements instantiated at same time
+ sync : false,
+
+ // default flash text duration, used for temporarily changing text of an element
+ flashDuration : 3000,
+
+ // selector filter
+ filter : {
+ text : '.loading, .disabled',
+ active : '.disabled'
+ },
+
+ context : false,
+
+ // error
+ error: {
+ method : 'The method you called is not defined.'
+ },
+
+ // metadata
+ metadata: {
+ promise : 'promise',
+ storedText : 'stored-text'
+ },
+
+ // change class on state
+ className: {
+ focus : 'focus',
+ hover : 'hover',
+ down : 'down',
+ active : 'active',
+ loading : 'loading'
+ },
+
+ selector: {
+ // selector for text node
+ text: false
+ },
+
+ defaults : {
+ input: {
+ hover : true,
+ focus : true,
+ down : true,
+ loading : false,
+ active : false
+ },
+ button: {
+ hover : true,
+ focus : false,
+ down : true,
+ active : true,
+ loading : true
+ }
+ },
+
+ states : {
+ hover : true,
+ focus : true,
+ down : true,
+ loading : false,
+ active : false
+ },
+
+ text : {
+ flash : false,
+ hover : false,
+ active : false,
+ inactive : false,
+ enable : false,
+ disable : false
+ }
+
+};
+
+
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/uncompressed/modules/chatroom.css b/css/semantic/rtl/uncompressed/modules/chatroom.css
new file mode 100644
index 0000000..109d72c
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/chatroom.css
@@ -0,0 +1,300 @@
+/*
+ * # Semantic - Chat Room
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Chat Room
+*******************************/
+
+.ui.chatroom {
+ background-color: #F8F8F8;
+ width: 330px;
+ height: 370px;
+ padding: 0px;
+}
+
+.ui.chatroom .room {
+ position: relative;
+ background-color: #FFFFFF;
+ overflow: hidden;
+ height: 286px;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ border-top: none;
+ border-bottom: none;
+}
+
+.ui.chatroom .room .loader {
+ display: none;
+ margin: -25px -25px 0px 0px;
+}
+
+/* Chat Room Actions */
+
+.ui.chatroom .actions {
+ overflow: hidden;
+ background-color: #EEEEEE;
+ padding: 4px;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ border-radius: 5px 5px 0px 0px;
+}
+
+.ui.chatroom .actions .button {
+ float: left;
+ margin-right: 3px;
+}
+
+/* Online User Count */
+
+.ui.chatroom .actions .message {
+ float: right;
+ margin-right: 6px;
+ font-size: 11px;
+ color: #AAAAAA;
+ text-shadow: 0px -1px 0px rgba(255, 255, 255, 0.8);
+ line-height: 28px;
+}
+
+.ui.chatroom .actions .message .loader {
+ display: inline-block;
+ margin-left: 8px;
+}
+
+/* Chat Room Text Log */
+
+.ui.chatroom .log {
+ float: right;
+ overflow: auto;
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+
+.ui.chatroom .log .message {
+ padding: 3px 0px;
+ border-top: 1px dotted #DADADA;
+}
+
+.ui.chatroom .log .message:first-child {
+ border-top: none;
+}
+
+/* status event */
+
+.ui.chatroom .status {
+ padding: 5px 0px;
+ color: #AAAAAA;
+ font-size: 12px;
+ font-style: italic;
+ line-height: 1.33;
+ border-top: 1px dotted #DADADA;
+}
+
+.ui.chatroom .log .status:first-child {
+ border-top: none;
+}
+
+.ui.chatroom .log .flag {
+ float: right;
+}
+
+.ui.chatroom .log p {
+ margin-right: 0px;
+}
+
+.ui.chatroom .log .author {
+ font-weight: bold;
+ -webkit-transition: color 0.3s ease-out;
+ -moz-transition: color 0.3s ease-out;
+ transition: color 0.3s ease-out;
+}
+
+.ui.chatroom .log a.author:hover {
+ opacity: 0.8;
+}
+
+.ui.chatroom .log .message.admin p {
+ font-weight: bold;
+ margin: 1px 23px 0px 0px;
+}
+
+.ui.chatroom .log .divider {
+ margin: -1px 0px;
+ font-size: 11px;
+ padding: 10px 0px;
+ border-top: 1px solid #F8F8F8;
+ border-bottom: 1px solid #F8F8F8;
+}
+
+.ui.chatroom .log .divider .rule {
+ top: 50%;
+ width: 15%;
+}
+
+.ui.chatroom .log .divider .label {
+ color: #777777;
+ margin: 0px;
+}
+
+/* Chat Room User List */
+
+.ui.chatroom .room .list {
+ position: relative;
+ overflow: auto;
+ overflow-x: hidden;
+ overflow-y: auto;
+ float: right;
+ background-color: #EEEEEE;
+ border-right: 1px solid #DDDDDD;
+}
+
+.ui.chatroom .room .list .user {
+ display: table;
+ padding: 3px 7px;
+ border-bottom: 1px solid #DDDDDD;
+}
+
+.ui.chatroom .room .list .user:hover {
+ background-color: #F8F8F8;
+}
+
+.ui.chatroom .room .list .image {
+ display: table-cell;
+ vertical-align: middle;
+ width: 20px;
+}
+
+.ui.chatroom .room .list .image img {
+ width: 20px;
+ height: 20px;
+ vertical-align: middle;
+}
+
+.ui.chatroom .room .list p {
+ display: table-cell;
+ vertical-align: middle;
+ padding-right: 7px;
+ padding-left: 14px;
+ font-size: 11px;
+ line-height: 1.2;
+ font-weight: bold;
+}
+
+.ui.chatroom .room .list a:hover {
+ opacity: 0.8;
+}
+
+/* User List Loading */
+
+.ui.chatroom.loading .loader {
+ display: block;
+}
+
+/* Chat Room Talk Input */
+
+.ui.chatroom .talk {
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ padding: 5px 0px 0px;
+ background-color: #EEEEEE;
+ border-radius: 0px 0px 5px 5px;
+}
+
+.ui.chatroom .talk .avatar,
+.ui.chatroom .talk input,
+.ui.chatroom .talk .button {
+ float: right;
+}
+
+.ui.chatroom .talk .avatar img {
+ display: block;
+ width: 30px;
+ height: 30px;
+ margin-left: 4px;
+ border-radius: 500rem;
+}
+
+.ui.chatroom .talk input {
+ border: 1px solid #CCCCCC;
+ margin: 0px;
+ width: 196px;
+ height: 14px;
+ padding: 8px 5px;
+ font-size: 12px;
+ color: #555555;
+}
+
+.ui.chatroom .talk input.focus {
+ border: 1px solid #AAAAAA;
+}
+
+.ui.chatroom .send {
+ width: 80px;
+ height: 32px;
+ margin-right: -1px;
+ padding: 4px 12px;
+ font-size: 12px;
+ line-height: 23px;
+ -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset;
+ border-radius: 5px 0 0 5px;
+}
+
+.ui.chatroom .talk .log-in.button {
+ display: block;
+ float: none;
+ margin-top: -6px;
+ height: 22px;
+ border-radius: 0px 0px 4px 4px;
+}
+
+.ui.chatroom .talk .log-in.button i {
+ vertical-align: text-top;
+}
+
+/* Quirky Flags */
+
+.ui.chatroom .log .team.flag {
+ width: 18px;
+}
+
+/* Chat room Loaded */
+
+.ui.chatroom.loading .loader {
+ display: block;
+}
+
+/* Standard Size */
+
+.ui.chatroom {
+ width: 330px;
+ height: 370px;
+}
+
+.ui.chatroom .room .container {
+ width: 3000px;
+}
+
+.ui.chatroom .log {
+ width: 314px;
+ height: 278px;
+ padding: 4px 7px;
+}
+
+.ui.chatroom .room .list {
+ width: 124px;
+ height: 278px;
+ padding: 4px 0px;
+}
+
+.ui.chatroom .room .list .user {
+ width: 110px;
+}
+
+.ui.chatroom .talk {
+ height: 40px;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/modules/chatroom.js b/css/semantic/rtl/uncompressed/modules/chatroom.js
new file mode 100644
index 0000000..a20a66a
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/chatroom.js
@@ -0,0 +1,772 @@
+/*
+ * # Semantic - Chatroom
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.chatroom = function(parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $(this)
+ .each(function() {
+ var
+ settings = $.extend(true, {}, $.fn.chatroom.settings, parameters),
+
+ className = settings.className,
+ namespace = settings.namespace,
+ selector = settings.selector,
+ error = settings.error,
+
+ $module = $(this),
+
+ $expandButton = $module.find(selector.expandButton),
+ $userListButton = $module.find(selector.userListButton),
+
+ $userList = $module.find(selector.userList),
+ $room = $module.find(selector.room),
+ $userCount = $module.find(selector.userCount),
+
+ $log = $module.find(selector.log),
+ $message = $module.find(selector.message),
+
+ $messageInput = $module.find(selector.messageInput),
+ $messageButton = $module.find(selector.messageButton),
+
+ instance = $module.data('module'),
+ element = this,
+
+ html = '',
+ users = {},
+
+ channel,
+ loggedInUser,
+
+ message,
+ count,
+
+ height,
+
+ pusher,
+ module
+ ;
+
+ module = {
+
+ width: {
+ log : $log.width(),
+ userList : $userList.outerWidth()
+ },
+
+ initialize: function() {
+
+ // check error conditions
+ if(Pusher === undefined) {
+ module.error(error.pusher);
+ }
+ if(settings.key === undefined || settings.channelName === undefined) {
+ module.error(error.key);
+ return false;
+ }
+ else if( !(settings.endpoint.message || settings.endpoint.authentication) ) {
+ module.error(error.endpoint);
+ return false;
+ }
+
+ // define pusher
+ pusher = new Pusher(settings.key);
+ Pusher.channel_auth_endpoint = settings.endpoint.authentication;
+
+ channel = pusher.subscribe(settings.channelName);
+
+ channel.bind('pusher:subscription_succeeded', module.user.list.create);
+ channel.bind('pusher:subscription_error', module.error);
+ channel.bind('pusher:member_added', module.user.joined);
+ channel.bind('pusher:member_removed', module.user.left);
+ channel.bind('update_messages', module.message.receive);
+
+ $.each(settings.customEvents, function(label, value) {
+ channel.bind(label, value);
+ });
+
+ // bind module events
+ $userListButton
+ .on('click.' + namespace, module.event.toggleUserList)
+ ;
+ $expandButton
+ .on('click.' + namespace, module.event.toggleExpand)
+ ;
+ $messageInput
+ .on('keydown.' + namespace, module.event.input.keydown)
+ .on('keyup.' + namespace, module.event.input.keyup)
+ ;
+ $messageButton
+ .on('mouseenter.' + namespace, module.event.hover)
+ .on('mouseleave.' + namespace, module.event.hover)
+ .on('click.' + namespace, module.event.submit)
+ ;
+ // scroll to bottom of chat log
+ $log
+ .animate({
+ scrollTop: $log.prop('scrollHeight')
+ }, 400)
+ ;
+ $module
+ .data('module', module)
+ .addClass(className.loading)
+ ;
+
+ },
+
+ // refresh module
+ refresh: function() {
+ // reset width calculations
+ $userListButton
+ .removeClass(className.active)
+ ;
+ module.width = {
+ log : $log.width(),
+ userList : $userList.outerWidth()
+ };
+ if( $userListButton.hasClass(className.active) ) {
+ module.user.list.hide();
+ }
+ $module.data('module', module);
+ },
+
+ user: {
+
+ updateCount: function() {
+ if(settings.userCount) {
+ users = $module.data('users');
+ count = 0;
+ $.each(users, function() {
+ count++;
+ });
+ $userCount
+ .html( settings.templates.userCount(count) )
+ ;
+ }
+ },
+
+ // add user to user list
+ joined: function(member) {
+ users = $module.data('users');
+ if(member.id != 'anonymous' && users[ member.id ] === undefined ) {
+ users[ member.id ] = member.info;
+ if(settings.randomColor && member.info.color === undefined) {
+ member.info.color = settings.templates.color(member.id);
+ }
+ html = settings.templates.userList(member.info);
+ if(member.info.isAdmin) {
+ $(html)
+ .prependTo($userList)
+ ;
+ }
+ else {
+ $(html)
+ .appendTo($userList)
+ ;
+ }
+ if(settings.partingMessages) {
+ $log
+ .append( settings.templates.joined(member.info) )
+ ;
+ module.message.scroll.test();
+ }
+ module.user.updateCount();
+ }
+ },
+
+ // remove user from user list
+ left: function(member) {
+ users = $module.data('users');
+ if(member !== undefined && member.id !== 'anonymous') {
+ delete users[ member.id ];
+ $module
+ .data('users', users)
+ ;
+ $userList
+ .find('[data-id='+ member.id + ']')
+ .remove()
+ ;
+ if(settings.partingMessages) {
+ $log
+ .append( settings.templates.left(member.info) )
+ ;
+ module.message.scroll.test();
+ }
+ module.user.updateCount();
+ }
+ },
+
+ list: {
+
+ // receives list of members and generates user list
+ create: function(members) {
+ users = {};
+ members.each(function(member) {
+ if(member.id !== 'anonymous' && member.id !== 'undefined') {
+ if(settings.randomColor && member.info.color === undefined) {
+ member.info.color = settings.templates.color(member.id);
+ }
+ // sort list with admin first
+ html = (member.info.isAdmin)
+ ? settings.templates.userList(member.info) + html
+ : html + settings.templates.userList(member.info)
+ ;
+ users[ member.id ] = member.info;
+ }
+ });
+ $module
+ .data('users', users)
+ .data('user', users[members.me.id] )
+ .removeClass(className.loading)
+ ;
+ $userList
+ .html(html)
+ ;
+ module.user.updateCount();
+ $.proxy(settings.onJoin, $userList.children())();
+ },
+
+ // shows user list
+ show: function() {
+ $log
+ .animate({
+ width: (module.width.log - module.width.userList)
+ }, {
+ duration : settings.speed,
+ easing : settings.easing,
+ complete : module.message.scroll.move
+ })
+ ;
+ },
+
+ // hides user list
+ hide: function() {
+ $log
+ .stop()
+ .animate({
+ width: (module.width.log)
+ }, {
+ duration : settings.speed,
+ easing : settings.easing,
+ complete : module.message.scroll.move
+ })
+ ;
+ }
+
+ }
+
+ },
+
+ message: {
+
+ // handles scrolling of chat log
+ scroll: {
+ test: function() {
+ height = $log.prop('scrollHeight') - $log.height();
+ if( Math.abs($log.scrollTop() - height) < settings.scrollArea) {
+ module.message.scroll.move();
+ }
+ },
+
+ move: function() {
+ height = $log.prop('scrollHeight') - $log.height();
+ $log
+ .scrollTop(height)
+ ;
+ }
+ },
+
+ // sends chat message
+ send: function(message) {
+ if( !module.utils.emptyString(message) ) {
+ $.api({
+ url : settings.endpoint.message,
+ method : 'POST',
+ data : {
+ 'message': {
+ content : message,
+ timestamp : new Date().getTime()
+ }
+ }
+ });
+ }
+ },
+
+ // receives chat response and processes
+ receive: function(response) {
+ message = response.data;
+ users = $module.data('users');
+ loggedInUser = $module.data('user');
+ if(users[ message.userID] !== undefined) {
+ // logged in user's messages already pushed instantly
+ if(loggedInUser === undefined || loggedInUser.id != message.userID) {
+ message.user = users[ message.userID ];
+ module.message.display(message);
+ }
+ }
+ },
+
+ // displays message in chat log
+ display: function(message) {
+ $log
+ .append( settings.templates.message(message) )
+ ;
+ module.message.scroll.test();
+ $.proxy(settings.onMessage, $log.children().last() )();
+ }
+
+ },
+
+ expand: function() {
+ $module
+ .addClass(className.expand)
+ ;
+ $.proxy(settings.onExpand, $module )();
+ module.refresh();
+ },
+
+ contract: function() {
+ $module
+ .removeClass(className.expand)
+ ;
+ $.proxy(settings.onContract, $module )();
+ module.refresh();
+ },
+
+ event: {
+
+ input: {
+
+ keydown: function(event) {
+ if(event.which == 13) {
+ $messageButton
+ .addClass(className.down)
+ ;
+ }
+ },
+
+ keyup: function(event) {
+ if(event.which == 13) {
+ $messageButton
+ .removeClass(className.down)
+ ;
+ module.event.submit();
+ }
+ }
+
+ },
+
+ // handles message form submit
+ submit: function() {
+ var
+ message = $messageInput.val(),
+ loggedInUser = $module.data('user')
+ ;
+ if(loggedInUser !== undefined && !module.utils.emptyString(message)) {
+ module.message.send(message);
+ // display immediately
+ module.message.display({
+ user: loggedInUser,
+ text: message
+ });
+ module.message.scroll.move();
+ $messageInput
+ .val('')
+ ;
+
+ }
+ },
+
+ // handles button click on expand button
+ toggleExpand: function() {
+ if( !$module.hasClass(className.expand) ) {
+ $expandButton
+ .addClass(className.active)
+ ;
+ module.expand();
+ }
+ else {
+ $expandButton
+ .removeClass(className.active)
+ ;
+ module.contract();
+ }
+ },
+
+ // handles button click on user list button
+ toggleUserList: function() {
+ if( !$log.is(':animated') ) {
+ if( !$userListButton.hasClass(className.active) ) {
+ $userListButton
+ .addClass(className.active)
+ ;
+ module.user.list.show();
+ }
+ else {
+ $userListButton
+ .removeClass('active')
+ ;
+ module.user.list.hide();
+ }
+ }
+
+ }
+ },
+
+ utils: {
+
+ emptyString: function(string) {
+ if(typeof string == 'string') {
+ return (string.search(/\S/) == -1);
+ }
+ return false;
+ }
+
+ },
+
+ setting: function(name, value) {
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else {
+ settings[name] = value;
+ }
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ maxDepth,
+ found
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && instance !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) {
+ instance = instance[value];
+ }
+ else if( instance[value] !== undefined ) {
+ found = instance[value];
+ }
+ else {
+ module.error(error.method, query);
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ return found.apply(context, passedArguments);
+ }
+ return found || false;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+ $.fn.chatroom.settings = {
+
+ name : 'Chat',
+ debug : false,
+ namespace : 'chat',
+
+ channel : 'present-chat',
+
+ onJoin : function(){},
+ onMessage : function(){},
+ onExpand : function(){},
+ onContract : function(){},
+
+ customEvents : {},
+
+ partingMessages : false,
+ userCount : true,
+ randomColor : true,
+
+ speed : 300,
+ easing : 'easeOutQuint',
+
+ // pixels from bottom of chat log that should trigger auto scroll to bottom
+ scrollArea : 9999,
+
+ endpoint : {
+ message : false,
+ authentication : false
+ },
+
+ error: {
+ method : 'The method you called is not defined',
+ endpoint : 'Please define a message and authentication endpoint.',
+ key : 'You must specify a pusher key and channel.',
+ pusher : 'You must include the Pusher library.'
+ },
+
+ className : {
+ expand : 'expand',
+ active : 'active',
+ hover : 'hover',
+ down : 'down',
+ loading : 'loading'
+ },
+
+ selector : {
+ userCount : '.actions .message',
+ userListButton : '.actions .list.button',
+ expandButton : '.actions .expand.button',
+ room : '.room',
+ userList : '.room .list',
+ log : '.room .log',
+ message : '.room .log .message',
+ author : '.room log .message .author',
+ messageInput : '.talk input',
+ messageButton : '.talk .send.button'
+ },
+
+ templates: {
+
+ userCount: function(number) {
+ return number + ' users in chat';
+ },
+
+ color: function(userID) {
+ var
+ colors = [
+ '#000000',
+ '#333333',
+ '#666666',
+ '#999999',
+ '#CC9999',
+ '#CC6666',
+ '#CC3333',
+ '#993333',
+ '#663333',
+ '#CC6633',
+ '#CC9966',
+ '#CC9933',
+ '#999966',
+ '#CCCC66',
+ '#99CC66',
+ '#669933',
+ '#669966',
+ '#33A3CC',
+ '#336633',
+ '#33CCCC',
+ '#339999',
+ '#336666',
+ '#336699',
+ '#6666CC',
+ '#9966CC',
+ '#333399',
+ '#663366',
+ '#996699',
+ '#993366',
+ '#CC6699'
+ ]
+ ;
+ return colors[ Math.floor( Math.random() * colors.length) ];
+ },
+
+ message: function(message) {
+ var
+ html = ''
+ ;
+ if(message.user.isAdmin) {
+ message.user.color = '#55356A';
+ html += '
';
+ html += '
';
+ }
+ /*
+ else if(message.user.isPro) {
+ html += '
';
+ html += '
';
+ }
+ */
+ else {
+ html += '
';
+ }
+ html += '
';
+ if(message.user.color !== undefined) {
+ html += '' + message.user.name + ' : ';
+ }
+ else {
+ html += '' + message.user.name + ' : ';
+ }
+ html += ''
+ + message.text
+ + '
'
+ + '
'
+ ;
+ return html;
+ },
+
+ joined: function(member) {
+ return (typeof member.name !== undefined)
+ ? '
' + member.name + ' has joined the chat.
'
+ : false
+ ;
+ },
+ left: function(member) {
+ return (typeof member.name !== undefined)
+ ? '
' + member.name + ' has left the chat.
'
+ : false
+ ;
+ },
+
+ userList: function(member) {
+ var
+ html = ''
+ ;
+ if(member.isAdmin) {
+ member.color = '#55356A';
+ }
+ html += ''
+ + '
';
+ return html;
+ }
+
+ }
+
+ };
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/uncompressed/modules/checkbox.css b/css/semantic/rtl/uncompressed/modules/checkbox.css
new file mode 100644
index 0000000..da45533
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/checkbox.css
@@ -0,0 +1,394 @@
+/*
+ * # Semantic - Checkbox
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Checkbox
+*******************************/
+
+/*--------------
+ Standard
+---------------*/
+
+/*--- Content ---*/
+
+.ui.checkbox {
+ position: relative;
+ display: inline-block;
+ min-width: 1em;
+ height: 1.25em;
+ line-height: 1em;
+ outline: none;
+ vertical-align: middle;
+}
+
+.ui.checkbox input {
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ opacity: 0;
+ outline: none;
+}
+
+/*--- Box ---*/
+
+.ui.checkbox .box,
+.ui.checkbox label {
+ cursor: pointer;
+ padding-right: 2em;
+ outline: none;
+}
+
+.ui.checkbox .box:before,
+.ui.checkbox label:before {
+ position: absolute;
+ top: 0em;
+ line-height: 1;
+ width: 1em;
+ height: 1em;
+ right: 0em;
+ content: '';
+ border-radius: 4px;
+ background: #FFFFFF;
+ -webkit-transition: background-color 0.3s ease, -webkit-box-shadow 0.3s ease;
+ -moz-transition: background-color 0.3s ease, box-shadow 0.3s ease;
+ transition: background-color 0.3s ease, box-shadow 0.3s ease;
+ -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.2);
+ box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.2);
+}
+
+/*--- Checkbox ---*/
+
+.ui.checkbox .box:after,
+.ui.checkbox label:after {
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
+ filter: alpha(opacity=0);
+ opacity: 0;
+ content: '';
+ position: absolute;
+ background: transparent;
+ border: 0.2em solid #333333;
+ border-top: none;
+ border-left: none;
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+}
+
+.ui.checkbox .box:after,
+.ui.checkbox label:after {
+ top: 0.275em;
+ right: 0.2em;
+ width: 0.45em;
+ height: 0.15em;
+}
+
+/*--- Inside Label ---*/
+
+.ui.checkbox label {
+ color: rgba(0, 0, 0, 0.6);
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+.ui.checkbox label:hover {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.checkbox input:focus ~ label {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--- Outside Label ---*/
+
+.ui.checkbox ~ label {
+ cursor: pointer;
+ opacity: 0.85;
+ vertical-align: middle;
+}
+
+.ui.checkbox ~ label:hover {
+ opacity: 1;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--- Hover ---*/
+
+.ui.checkbox .box:hover::before,
+.ui.checkbox label:hover::before {
+ -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
+ box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
+}
+
+/*--- Down ---*/
+
+.ui.checkbox .box:active::before,
+.ui.checkbox label:active::before {
+ background-color: #F5F5F5;
+}
+
+/*--- Focus ---*/
+
+.ui.checkbox input:focus ~ .box:before,
+.ui.checkbox input:focus ~ label:before {
+ -webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
+ box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
+}
+
+/*--- Active ---*/
+
+.ui.checkbox input:checked ~ .box:after,
+.ui.checkbox input:checked ~ label:after {
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
+ filter: alpha(opacity=100);
+ opacity: 1;
+}
+
+/*--- Disabled ---*/
+
+.ui.disabled.checkbox ~ .box:after,
+.ui.checkbox input[disabled] ~ .box:after,
+.ui.disabled.checkbox label,
+.ui.checkbox input[disabled] ~ label {
+ opacity: 0.4;
+ color: rgba(0, 0, 0, 0.3);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Radio
+---------------*/
+
+.ui.radio.checkbox .box:before,
+.ui.radio.checkbox label:before {
+ min-width: 1em;
+ height: 1em;
+ border-radius: 500px;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+}
+
+.ui.radio.checkbox .box:after,
+.ui.radio.checkbox label:after {
+ border: none;
+ top: 0.2em;
+ right: 0.2em;
+ width: 0.6em;
+ height: 0.6em;
+ background-color: #555555;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+ border-radius: 500px;
+}
+
+/*--------------
+ Slider
+---------------*/
+
+.ui.slider.checkbox {
+ cursor: pointer;
+ min-width: 3em;
+}
+
+/* Line */
+
+.ui.slider.checkbox:after {
+ position: absolute;
+ top: 0.5em;
+ right: 0em;
+ content: '';
+ width: 3em;
+ height: 2px;
+ background-color: rgba(0, 0, 0, 0.1);
+}
+
+/* Button */
+
+.ui.slider.checkbox .box,
+.ui.slider.checkbox label {
+ padding-right: 4em;
+}
+
+.ui.slider.checkbox .box:before,
+.ui.slider.checkbox label:before {
+ cursor: pointer;
+ display: block;
+ position: absolute;
+ top: -0.25em;
+ right: 0em;
+ z-index: 1;
+ width: 1.5em;
+ height: 1.5em;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ border-radius: 50rem;
+ -webkit-transition: right 0.3s ease 0s;
+ -moz-transition: right 0.3s ease 0s;
+ transition: right 0.3s ease 0s;
+}
+
+/* Button Activation Light */
+
+.ui.slider.checkbox .box:after,
+.ui.slider.checkbox label:after {
+ opacity: 1;
+ position: absolute;
+ content: '';
+ top: 0.15em;
+ right: 0em;
+ z-index: 2;
+ margin-right: 0.375em;
+ border: none;
+ width: 0.75em;
+ height: 0.75em;
+ border-radius: 50rem;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+ -webkit-transition: background 0.3s ease 0s,
+ right 0.3s ease 0s;
+ -moz-transition: background 0.3s ease 0s,
+ right 0.3s ease 0s;
+ transition: background 0.3s ease 0s,
+ right 0.3s ease 0s;
+}
+
+/* Selected Slider Toggle */
+
+.ui.slider.checkbox input:checked ~ .box:before,
+.ui.slider.checkbox input:checked ~ label:before,
+.ui.slider.checkbox input:checked ~ .box:after,
+.ui.slider.checkbox input:checked ~ label:after {
+ right: 1.75em;
+}
+
+/* Off Color */
+
+.ui.slider.checkbox .box:after,
+.ui.slider.checkbox label:after {
+ background-color: #D95C5C;
+}
+
+/* On Color */
+
+.ui.slider.checkbox input:checked ~ .box:after,
+.ui.slider.checkbox input:checked ~ label:after {
+ background-color: #89B84C;
+}
+
+/*--------------
+ Toggle
+---------------*/
+
+.ui.toggle.checkbox {
+ cursor: pointer;
+}
+
+.ui.toggle.checkbox .box,
+.ui.toggle.checkbox label {
+ padding-right: 4em;
+}
+
+/* Switch */
+
+.ui.toggle.checkbox .box:before,
+.ui.toggle.checkbox label:before {
+ cursor: pointer;
+ display: block;
+ position: absolute;
+ content: '';
+ top: -0.25em;
+ right: 0em;
+ z-index: 1;
+ background-color: #FFFFFF;
+ width: 3em;
+ height: 1.5em;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ transform: none;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ border-radius: 50rem;
+}
+
+/* Activation Light */
+
+.ui.toggle.checkbox .box:after,
+.ui.toggle.checkbox label:after {
+ opacity: 1;
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ content: '';
+ position: absolute;
+ top: 0.15em;
+ right: 0.5em;
+ z-index: 2;
+ border: none;
+ width: 0.75em;
+ height: 0.75em;
+ background-color: #D95C5C;
+ border-radius: 50rem;
+ -webkit-transition: background 0.3s ease 0s,
+ right 0.3s ease 0s;
+ -moz-transition: background 0.3s ease 0s,
+ right 0.3s ease 0s;
+ transition: background 0.3s ease 0s,
+ right 0.3s ease 0s;
+}
+
+/* Active */
+
+.ui.toggle.checkbox:active .box:before,
+.ui.toggle.checkbox:active label:before {
+ background-color: #F5F5F5;
+}
+
+/* Active */
+
+.ui.toggle.checkbox input:checked ~ .box:after,
+.ui.toggle.checkbox input:checked ~ label:after {
+ right: 1.75em;
+ background-color: #89B84C;
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+.ui.checkbox {
+ font-size: 1em;
+}
+
+.ui.large.checkbox {
+ font-size: 1.25em;
+}
+
+.ui.huge.checkbox {
+ font-size: 1.5em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/modules/checkbox.js b/css/semantic/rtl/uncompressed/modules/checkbox.js
new file mode 100644
index 0000000..0ec3923
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/checkbox.js
@@ -0,0 +1,347 @@
+/*
+ * # Semantic - Checkbox
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.checkbox = function(parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = $.extend(true, {}, $.fn.checkbox.settings, parameters),
+
+ className = settings.className,
+ namespace = settings.namespace,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $label = $(this).next(settings.selector.label).first(),
+ $input = $(this).find(settings.selector.input),
+
+ selector = $module.selector || '',
+ instance = $module.data(moduleNamespace),
+
+ element = this,
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing checkbox', settings);
+ if(settings.context && selector !== '') {
+ module.verbose('Adding delegated events');
+ $(element, settings.context)
+ .on(selector, 'click' + eventNamespace, module.toggle)
+ .on(selector + ' + ' + settings.selector.label, 'click' + eventNamespace, module.toggle)
+ ;
+ }
+ else {
+ $module
+ .on('click' + eventNamespace, module.toggle)
+ .data(moduleNamespace, module)
+ ;
+ $label
+ .on('click' + eventNamespace, module.toggle)
+ ;
+ }
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module');
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ is: {
+ radio: function() {
+ return $module.hasClass(className.radio);
+ },
+ enabled: function() {
+ return $input.prop('checked') !== undefined && $input.prop('checked');
+ },
+ disabled: function() {
+ return !module.is.enabled();
+ }
+ },
+
+ can: {
+ disable: function() {
+ return (typeof settings.required === 'boolean')
+ ? settings.required
+ : !module.is.radio()
+ ;
+ }
+ },
+
+ enable: function() {
+ module.debug('Enabling checkbox', $input);
+ $input
+ .prop('checked', true)
+ .trigger('change')
+ ;
+ $.proxy(settings.onChange, $input.get())();
+ $.proxy(settings.onEnable, $input.get())();
+ },
+
+ disable: function() {
+ module.debug('Disabling checkbox');
+ $input
+ .prop('checked', false)
+ .trigger('change')
+ ;
+ $.proxy(settings.onChange, $input.get())();
+ $.proxy(settings.onDisable, $input.get())();
+ },
+
+ toggle: function(event) {
+ module.verbose('Determining new checkbox state');
+ if( module.is.disabled() ) {
+ module.enable();
+ }
+ else if( module.is.enabled() && module.can.disable() ) {
+ module.disable();
+ }
+ },
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.checkbox.settings = {
+
+ name : 'Checkbox',
+ namespace : 'checkbox',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ // delegated event context
+ context : false,
+ required : 'auto',
+
+ onChange : function(){},
+ onEnable : function(){},
+ onDisable : function(){},
+
+ error : {
+ method : 'The method you called is not defined.'
+ },
+
+ selector : {
+ input : 'input[type=checkbox], input[type=radio]',
+ label : 'label'
+ },
+
+ className : {
+ radio : 'radio'
+ }
+
+};
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/uncompressed/modules/dimmer.css b/css/semantic/rtl/uncompressed/modules/dimmer.css
new file mode 100644
index 0000000..2a5b03e
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/dimmer.css
@@ -0,0 +1,184 @@
+/*
+ * # Semantic - Dimmer
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Dimmer
+*******************************/
+
+.ui.dimmable {
+ position: relative;
+}
+
+.ui.dimmer {
+ display: none;
+ position: absolute;
+ top: 0em !important;
+ right: 0em !important;
+ width: 0%;
+ height: 0%;
+ text-align: center;
+ vertical-align: middle;
+ background-color: rgba(0, 0, 0, 0.85);
+ opacity: 0;
+ line-height: 1;
+ -webkit-animation-fill-mode: both;
+ -moz-animation-fill-mode: both;
+ animation-fill-mode: both;
+ -webkit-animation-duration: 0.5s;
+ -moz-animation-duration: 0.5s;
+ animation-duration: 0.5s;
+ -webkit-transition: background-color 0.5s linear;
+ -moz-transition: background-color 0.5s linear;
+ transition: background-color 0.5s linear;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ z-index: 1000;
+}
+
+/* Dimmer Content */
+
+.ui.dimmer > .content {
+ width: 100%;
+ height: 100%;
+ display: table;
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+}
+
+.ui.dimmer > .content > div {
+ display: table-cell;
+ vertical-align: middle;
+ color: #FFFFFF;
+}
+
+/* Loose Coupling */
+
+.ui.segment > .ui.dimmer {
+ border-radius: 5px;
+}
+
+.ui.horizontal.segment > .ui.dimmer,
+.ui.vertical.segment > .ui.dimmer {
+ border-radius: 5px;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.dimmed.dimmable:not(body) {
+ overflow: hidden;
+}
+
+.ui.dimmed.dimmable > .ui.animating.dimmer,
+.ui.dimmed.dimmable > .ui.visible.dimmer,
+.ui.active.dimmer {
+ display: block;
+ width: 100%;
+ height: 100%;
+ opacity: 1;
+}
+
+.ui.disabled.dimmer {
+ width: 0em !important;
+ height: 0em !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Page
+---------------*/
+
+.ui.page.dimmer {
+ position: fixed;
+ -webkit-transform-style: preserve-3d;
+ -moz-transform-style: preserve-3d;
+ -ms-transform-style: preserve-3d;
+ transform-style: preserve-3d;
+ -webkit-perspective: 2000px;
+ -moz-perspective: 2000px;
+ -ms-perspective: 2000px;
+ perspective: 2000px;
+ -webkit-transform-origin: center center;
+ -moz-transform-origin: center center;
+ -ms-transform-origin: center center;
+ transform-origin: center center;
+}
+
+.ui.scrolling.dimmable > .dimmer,
+.ui.scrolling.page.dimmer {
+ position: absolute;
+}
+
+/*--------------
+ Aligned
+---------------*/
+
+.ui.dimmer > .top.aligned.content > * {
+ vertical-align: top;
+}
+
+.ui.dimmer > .bottom.aligned.content > * {
+ vertical-align: bottom;
+}
+
+/*--------------
+ Inverted
+---------------*/
+
+.ui.inverted.dimmer {
+ background-color: rgba(255, 255, 255, 0.85);
+}
+
+.ui.inverted.dimmer > .content > * {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--------------
+ Simple
+---------------*/
+
+/* Displays without javascript */
+
+.ui.simple.dimmer {
+ display: block;
+ overflow: hidden;
+ opacity: 1;
+ z-index: -100;
+ background-color: rgba(0, 0, 0, 0);
+}
+
+.ui.dimmed.dimmable > .ui.simple.dimmer {
+ overflow: visible;
+ opacity: 1;
+ width: 100%;
+ height: 100%;
+ background-color: rgba(0, 0, 0, 0.85);
+ z-index: 1;
+}
+
+.ui.simple.inverted.dimmer {
+ background-color: rgba(255, 255, 255, 0);
+}
+
+.ui.dimmed.dimmable > .ui.simple.inverted.dimmer {
+ background-color: rgba(255, 255, 255, 0.85);
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/modules/dimmer.js b/css/semantic/rtl/uncompressed/modules/dimmer.js
new file mode 100644
index 0000000..e2f97ce
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/dimmer.js
@@ -0,0 +1,593 @@
+/*
+ * # Semantic - Dimmer
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.dimmer = function(parameters) {
+ var
+ $allModules = $(this),
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.dimmer.settings, parameters)
+ : $.extend({}, $.fn.dimmer.settings),
+
+ selector = settings.selector,
+ namespace = settings.namespace,
+ className = settings.className,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+ moduleSelector = $allModules.selector || '',
+
+ clickEvent = ('ontouchstart' in document.documentElement)
+ ? 'touchstart'
+ : 'click',
+
+ $module = $(this),
+ $dimmer,
+ $dimmable,
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ preinitialize: function() {
+ if( module.is.dimmer() ) {
+ $dimmable = $module.parent();
+ $dimmer = $module;
+ }
+ else {
+ $dimmable = $module;
+ if( module.has.dimmer() ) {
+ $dimmer = $dimmable.children(selector.dimmer).first();
+ }
+ else {
+ $dimmer = module.create();
+ }
+ }
+ },
+
+ initialize: function() {
+ module.debug('Initializing dimmer', settings);
+ if(settings.on == 'hover') {
+ $dimmable
+ .on('mouseenter' + eventNamespace, module.show)
+ .on('mouseleave' + eventNamespace, module.hide)
+ ;
+ }
+ else if(settings.on == 'click') {
+ $dimmable
+ .on(clickEvent + eventNamespace, module.toggle)
+ ;
+ }
+
+ if( module.is.page() ) {
+ module.debug('Setting as a page dimmer', $dimmable);
+ module.set.pageDimmer();
+ }
+
+ if(settings.closable) {
+ module.verbose('Adding dimmer close event', $dimmer);
+ $dimmer
+ .on(clickEvent + eventNamespace, module.event.click)
+ ;
+ }
+ module.set.dimmable();
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module', $dimmer);
+ $module
+ .removeData(moduleNamespace)
+ ;
+ $dimmable
+ .off(eventNamespace)
+ ;
+ $dimmer
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+
+ click: function(event) {
+ module.verbose('Determining if event occured on dimmer', event);
+ if( $dimmer.find(event.target).size() === 0 || $(event.target).is(selector.content) ) {
+ module.hide();
+ event.stopImmediatePropagation();
+ }
+ }
+
+ },
+
+ addContent: function(element) {
+ var
+ $content = $(element)
+ ;
+ module.debug('Add content to dimmer', $content);
+ if($content.parent()[0] !== $dimmer[0]) {
+ $content.detach().appendTo($dimmer);
+ }
+ },
+
+ create: function() {
+ return $( settings.template.dimmer() ).appendTo($dimmable);
+ },
+
+ animate: {
+ show: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.set.dimmed();
+ if(settings.on != 'hover' && settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {
+ $dimmer
+ .transition({
+ animation : settings.transition + ' in',
+ queue : true,
+ duration : module.get.duration(),
+ complete : function() {
+ module.set.active();
+ callback();
+ }
+ })
+ ;
+ }
+ else {
+ module.verbose('Showing dimmer animation with javascript');
+ $dimmer
+ .stop()
+ .css({
+ opacity : 0,
+ width : '100%',
+ height : '100%'
+ })
+ .fadeTo(module.get.duration(), 1, function() {
+ $dimmer.removeAttr('style');
+ module.set.active();
+ callback();
+ })
+ ;
+ }
+ },
+ hide: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if(settings.on != 'hover' && settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {
+ module.verbose('Hiding dimmer with css');
+ $dimmer
+ .transition({
+ animation : settings.transition + ' out',
+ duration : module.get.duration(),
+ queue : true,
+ complete : function() {
+ module.remove.dimmed();
+ module.remove.active();
+ callback();
+ }
+ })
+ ;
+ }
+ else {
+ module.verbose('Hiding dimmer with javascript');
+ $dimmer
+ .stop()
+ .fadeOut(module.get.duration(), function() {
+ $dimmer.removeAttr('style');
+ module.remove.dimmed();
+ module.remove.active();
+ callback();
+ })
+ ;
+ }
+ }
+ },
+
+ get: {
+ dimmer: function() {
+ return $dimmer;
+ },
+ duration: function() {
+ if(typeof settings.duration == 'object') {
+ if( module.is.active() ) {
+ return settings.duration.hide;
+ }
+ else {
+ return settings.duration.show;
+ }
+ }
+ return settings.duration;
+ }
+ },
+
+ has: {
+ dimmer: function() {
+ return ( $module.children(selector.dimmer).size() > 0 );
+ }
+ },
+
+ is: {
+ active: function() {
+ return $dimmer.hasClass(className.active);
+ },
+ animating: function() {
+ return ( $dimmer.is(':animated') || $dimmer.hasClass(className.transition) );
+ },
+ dimmer: function() {
+ return $module.is(selector.dimmer);
+ },
+ dimmable: function() {
+ return $module.is(selector.dimmable);
+ },
+ dimmed: function() {
+ return $dimmable.hasClass(className.dimmed);
+ },
+ disabled: function() {
+ return $dimmable.hasClass(className.disabled);
+ },
+ enabled: function() {
+ return !module.is.disabled();
+ },
+ page: function () {
+ return $dimmable.is('body');
+ },
+ pageDimmer: function() {
+ return $dimmer.hasClass(className.pageDimmer);
+ }
+ },
+
+ can: {
+ show: function() {
+ return !$dimmer.hasClass(className.disabled);
+ }
+ },
+
+ set: {
+ active: function() {
+ module.set.dimmed();
+ $dimmer
+ .removeClass(className.transition)
+ .addClass(className.active)
+ ;
+ },
+ dimmable: function() {
+ $dimmable.addClass(className.dimmable);
+ },
+ dimmed: function() {
+ $dimmable.addClass(className.dimmed);
+ },
+ pageDimmer: function() {
+ $dimmer.addClass(className.pageDimmer);
+ },
+ disabled: function() {
+ $dimmer.addClass(className.disabled);
+ }
+ },
+
+ remove: {
+ active: function() {
+ $dimmer
+ .removeClass(className.transition)
+ .removeClass(className.active)
+ ;
+ },
+ dimmed: function() {
+ $dimmable.removeClass(className.dimmed);
+ },
+ disabled: function() {
+ $dimmer.removeClass(className.disabled);
+ }
+ },
+
+ show: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.debug('Showing dimmer', $dimmer, settings);
+ if( !module.is.active() && module.is.enabled() ) {
+ module.animate.show(callback);
+ $.proxy(settings.onShow, element)();
+ $.proxy(settings.onChange, element)();
+ }
+ else {
+ module.debug('Dimmer is already shown or disabled');
+ }
+ },
+
+ hide: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( module.is.active() || module.is.animating() ) {
+ module.debug('Hiding dimmer', $dimmer);
+ module.animate.hide(callback);
+ $.proxy(settings.onHide, element)();
+ $.proxy(settings.onChange, element)();
+ }
+ else {
+ module.debug('Dimmer is not visible');
+ }
+ },
+
+ toggle: function() {
+ module.verbose('Toggling dimmer visibility', $dimmer);
+ if( !module.is.dimmed() ) {
+ module.show();
+ }
+ else {
+ module.hide();
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ module.preinitialize();
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.dimmer.settings = {
+
+ name : 'Dimmer',
+ namespace : 'dimmer',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ transition : 'fade',
+ useCSS : true,
+ on : false,
+ closable : true,
+
+ duration : {
+ show : 500,
+ hide : 500
+ },
+
+ onChange : function(){},
+ onShow : function(){},
+ onHide : function(){},
+
+ error : {
+ method : 'The method you called is not defined.'
+ },
+
+ selector: {
+ dimmable : '.ui.dimmable',
+ dimmer : '.ui.dimmer',
+ content : '.ui.dimmer > .content, .ui.dimmer > .content > .center'
+ },
+
+ template: {
+ dimmer: function() {
+ return $('
').attr('class', 'ui dimmer');
+ }
+ },
+
+ className : {
+ active : 'active',
+ dimmable : 'ui dimmable',
+ dimmed : 'dimmed',
+ disabled : 'disabled',
+ pageDimmer : 'page',
+ hide : 'hide',
+ show : 'show',
+ transition : 'transition'
+ }
+
+};
+
+})( jQuery, window , document );
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/modules/dropdown.css b/css/semantic/rtl/uncompressed/modules/dropdown.css
new file mode 100644
index 0000000..fd439ed
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/dropdown.css
@@ -0,0 +1,554 @@
+/*
+ * # Semantic - Dropdown
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Dropdown
+*******************************/
+
+.ui.dropdown {
+ cursor: pointer;
+ position: relative;
+ display: inline-block;
+ line-height: 1;
+ -webkit-transition: border-radius 0.1s ease, width 0.2s ease;
+ -moz-transition: border-radius 0.1s ease, width 0.2s ease;
+ transition: border-radius 0.1s ease, width 0.2s ease;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -moz-tap-highlight-color: rgba(0, 0, 0, 0);
+ tap-highlight-color: rgba(0, 0, 0, 0);
+}
+
+/*******************************
+ Content
+*******************************/
+
+/*--------------
+ Menu
+---------------*/
+
+.ui.dropdown .menu {
+ cursor: auto;
+ position: absolute;
+ display: none;
+ top: 100%;
+ margin: 0em;
+ background-color: #FFFFFF;
+ min-width: 100%;
+ white-space: nowrap;
+ font-size: 0.875em;
+ text-shadow: none;
+ -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1);
+ border-radius: 0px 0px 0.325em 0.325em;
+ -webkit-transition: opacity 0.2s ease;
+ -moz-transition: opacity 0.2s ease;
+ transition: opacity 0.2s ease;
+ z-index: 11;
+}
+
+/*--------------
+ Icon
+---------------*/
+
+.ui.dropdown > .dropdown.icon {
+ width: auto;
+ margin: 0em 1em 0em 0em;
+}
+
+.ui.dropdown > .dropdown.icon:before {
+ content: "\f0d7";
+}
+
+.ui.dropdown .menu .item .dropdown.icon {
+ width: auto;
+ float: left;
+ margin: 0em 0.5em 0em 0em;
+}
+
+.ui.dropdown .menu .item .dropdown.icon:before {
+ content: "\f0da" /*rtl:"\f0d9"*/;
+}
+
+/*--------------
+ Text
+---------------*/
+
+.ui.dropdown > .text {
+ display: inline-block;
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+/* Flyout Direction */
+
+.ui.dropdown .menu {
+ right: 0px;
+}
+
+/*--------------
+ Sub Menu
+---------------*/
+
+.ui.dropdown .menu .menu {
+ top: 0% !important;
+ right: 100% !important;
+ margin: 0em !important;
+ border-radius: 0 0.325em 0.325em 0em !important;
+}
+
+.ui.dropdown .menu .menu:after {
+ display: none;
+}
+
+.ui.dropdown .menu .item {
+ cursor: pointer;
+ border: none;
+ border-top: 1px solid rgba(0, 0, 0, 0.05);
+ height: auto;
+ font-size: 0.875em;
+ display: block;
+ color: rgba(0, 0, 0, 0.75);
+ padding: 0.85em 1em !important;
+ font-size: 0.875rem;
+ text-transform: none;
+ font-weight: normal;
+ text-align: right;
+ -webkit-touch-callout: none;
+}
+
+.ui.dropdown .menu .item:before {
+ display: none;
+}
+
+.ui.dropdown .menu .item .icon {
+ margin-left: 0.75em;
+}
+
+.ui.dropdown .menu .item:first-child {
+ border-top: none;
+}
+
+/*******************************
+ Coupling
+*******************************/
+
+/* Opposite on last menu on right */
+
+.ui.menu .right.menu .dropdown:last-child .menu,
+.ui.buttons > .ui.dropdown:last-child .menu {
+ right: auto;
+ left: 0px;
+}
+
+.ui.vertical.menu .dropdown.item > .dropdown.icon:before {
+ content: "\f0da" /*rtl:"\f0d9"*/;
+}
+
+.ui.dropdown.icon.button > .dropdown.icon {
+ margin: 0em;
+}
+
+/*******************************
+ States
+*******************************/
+
+/* Dropdown Visible */
+
+.ui.visible.dropdown > .menu {
+ display: block;
+}
+
+/*--------------------
+ Hover
+----------------------*/
+
+/* Menu Item Hover */
+
+.ui.dropdown .menu .item:hover {
+ background-color: rgba(0, 0, 0, 0.02);
+ z-index: 12;
+}
+
+/*--------------------
+ Active
+----------------------*/
+
+/* Menu Item Active */
+
+.ui.dropdown .menu .active.item {
+ background-color: rgba(0, 0, 0, 0.06) !important;
+ border-right: none;
+ border-color: transparent !important;
+ -webkit-box-shadow: none;
+ -moz-shadow: none;
+ box-shadow: none;
+ z-index: 12;
+}
+
+/*--------------------
+ Default Text
+----------------------*/
+
+.ui.dropdown > .default.text,
+.ui.default.dropdown > .text {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.dropdown:hover > .default.text,
+.ui.default.dropdown:hover > .text {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*--------------------
+ Error
+----------------------*/
+
+.ui.dropdown.error,
+.ui.dropdown.error > .text,
+.ui.dropdown.error > .default.text {
+ color: #D95C5C !important;
+}
+
+.ui.selection.dropdown.error {
+ background-color: #FFFAFA;
+ -webkit-box-shadow: 0px 0px 0px 1px #e7bebe !important;
+ box-shadow: 0px 0px 0px 1px #e7bebe !important;
+}
+
+.ui.selection.dropdown.error:hover {
+ -webkit-box-shadow: 0px 0px 0px 1px #e7bebe !important;
+ box-shadow: 0px 0px 0px 1px #e7bebe !important;
+}
+
+.ui.dropdown.error > .menu,
+.ui.dropdown.error > .menu .menu {
+ -webkit-box-shadow: 0px 0px 1px 1px #E7BEBE !important;
+ box-shadow: 0px 0px 1px 1px #E7BEBE !important;
+}
+
+.ui.dropdown.error > .menu .item {
+ color: #D95C5C !important;
+}
+
+/* Item Hover */
+
+.ui.dropdown.error > .menu .item:hover {
+ background-color: #FFF2F2 !important;
+}
+
+/* Item Active */
+
+.ui.dropdown.error > .menu .active.item {
+ background-color: #FDCFCF !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Simple
+---------------*/
+
+/* Displays without javascript */
+
+.ui.simple.dropdown .menu:before,
+.ui.simple.dropdown .menu:after {
+ display: none;
+}
+
+.ui.simple.dropdown .menu {
+ display: block;
+ overflow: hidden;
+ top: -9999px !important;
+ position: absolute;
+ opacity: 0;
+ width: 0;
+ height: 0;
+ -webkit-transition: opacity 0.2s ease-out;
+ -moz-transition: opacity 0.2s ease-out;
+ transition: opacity 0.2s ease-out;
+}
+
+.ui.simple.active.dropdown,
+.ui.simple.dropdown:hover {
+ border-bottom-right-radius: 0em !important;
+ border-bottom-left-radius: 0em !important;
+}
+
+.ui.simple.active.dropdown > .menu,
+.ui.simple.dropdown:hover > .menu {
+ overflow: visible;
+ width: auto;
+ height: auto;
+ top: 100% !important;
+ opacity: 1;
+}
+
+.ui.simple.dropdown > .menu .item:active > .menu,
+.ui.simple.dropdown:hover > .menu .item:hover > .menu {
+ overflow: visible;
+ width: auto;
+ height: auto;
+ top: 0% !important;
+ right: 100% !important;
+ opacity: 1;
+}
+
+.ui.simple.disabled.dropdown:hover .menu {
+ display: none;
+ height: 0px;
+ width: 0px;
+ overflow: hidden;
+}
+
+/*--------------
+ Selection
+---------------*/
+
+/* Displays like a select box */
+
+.ui.selection.dropdown {
+ cursor: pointer;
+ display: inline-block;
+ word-wrap: break-word;
+ white-space: normal;
+ background-color: #FFFFFF;
+ padding: 0.65em 1em;
+ line-height: 1.33;
+ color: rgba(0, 0, 0, 0.8);
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) !important;
+ border-radius: !important 0.3125em;
+}
+
+.ui.selection.dropdown select {
+ display: none;
+}
+
+.ui.selection.dropdown > .dropdown.icon {
+ opacity: 0.7;
+ margin: 0.2em 1.25em 0.2em 0em;
+ -webkit-transition: opacity 0.2s ease-out;
+ -moz-transition: opacity 0.2s ease-out;
+ transition: opacity 0.2s ease-out;
+}
+
+.ui.selection.dropdown,
+.ui.selection.dropdown .menu {
+ -webkit-transition: -webkit-box-shadow 0.2s ease-out;
+ -moz-transition: box-shadow 0.2s ease-out;
+ transition: box-shadow 0.2s ease-out;
+}
+
+.ui.selection.dropdown .menu {
+ top: 100%;
+ max-height: 312px;
+ overflow-x: hidden;
+ overflow-y: auto;
+ -webkit-box-shadow: 0px 1px 0px 1px #E0E0E0;
+ box-shadow: 0px 1px 0px 1px #E0E0E0;
+ border-radius: 0px 0px 0.325em 0.325em;
+}
+
+.ui.selection.dropdown .menu:after,
+.ui.selection.dropdown .menu:before {
+ display: none;
+}
+
+.ui.selection.dropdown .menu img {
+ height: 2.5em;
+ display: inline-block;
+ vertical-align: middle;
+ margin-left: 0.5em;
+}
+
+/* Visible */
+
+.ui.visible.selection.dropdown {
+ border-bottom-right-radius: 0em !important;
+ border-bottom-left-radius: 0em !important;
+}
+
+/* Active */
+
+.ui.active.selection.dropdown {
+ border-radius: 0.3125em 0.3125em 0em 0em !important;
+}
+
+.ui.active.selection.dropdown > .dropdown.icon {
+ opacity: 1;
+}
+
+/*--------------
+ Fluid
+---------------*/
+
+.ui.fluid.dropdown {
+ display: block;
+}
+
+.ui.fluid.dropdown > .dropdown.icon {
+ float: left;
+}
+
+/*--------------
+ Inline
+---------------*/
+
+.ui.inline.dropdown {
+ cursor: pointer;
+ display: inline-block;
+ color: inherit;
+}
+
+.ui.inline.dropdown .dropdown.icon {
+ margin: 0em 0.25em 0em 0.5em;
+}
+
+.ui.inline.dropdown .text {
+ font-weight: bold;
+}
+
+.ui.inline.dropdown .menu {
+ cursor: auto;
+ margin-top: 0.25em;
+ border-radius: 0.325em;
+}
+
+/*--------------
+ Floating
+---------------*/
+
+.ui.floating.dropdown .menu {
+ right: 0;
+ left: auto;
+ margin-top: 0.5em !important;
+ border-radius: 0.325em;
+}
+
+/*--------------
+ Pointing
+---------------*/
+
+.ui.pointing.dropdown .menu {
+ top: 100%;
+ margin-top: 0.75em;
+ border-radius: 0.325em;
+}
+
+.ui.pointing.dropdown .menu:after {
+ display: block;
+ position: absolute;
+ pointer-events: none;
+ content: " ";
+ visibility: visible;
+ width: 0.5em;
+ height: 0.5em;
+ -webkit-box-shadow: -1px -1px 0px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: -1px -1px 0px 1px rgba(0, 0, 0, 0.05);
+ background-image: none;
+ background-color: #FFFFFF;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ z-index: 2;
+}
+
+.ui.pointing.dropdown .menu .active.item:first-child {
+ background: transparent -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.03));
+ background: transparent -moz-linear-gradient(transparent, rgba(0, 0, 0, 0.03));
+ background: transparent-webkit-gradient(linear, right top, right bottom, from(transparent), to(rgba(0, 0, 0, 0.03)));
+ background: transparent linear-gradient(transparent, rgba(0, 0, 0, 0.03));
+}
+
+/* Directions */
+
+.ui.pointing.dropdown .menu:after {
+ top: -0.25em;
+ right: 50%;
+ margin: 0em -0.25em 0em 0em;
+}
+
+.ui.top.left.pointing.dropdown .menu {
+ top: 100%;
+ bottom: auto;
+ right: 0%;
+ left: auto;
+ margin: 0.75em 0em 0em;
+}
+
+.ui.top.left.pointing.dropdown .menu:after {
+ top: -0.25em;
+ right: 1.25em;
+ left: auto;
+ margin: 0em;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+}
+
+.ui.top.right.pointing.dropdown .menu {
+ top: 100%;
+ bottom: auto;
+ left: 0%;
+ right: auto;
+ margin: 0.75em 0em 0em;
+}
+
+.ui.top.right.pointing.dropdown .menu:after {
+ top: -0.25em;
+ right: auto;
+ left: 1.25em;
+ margin: 0em;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+}
+
+.ui.left.pointing.dropdown .menu {
+ top: 0%;
+ right: 100%;
+ left: auto;
+ margin: 0em 0.75em 0em 0em;
+}
+
+.ui.left.pointing.dropdown .menu:after {
+ top: 1em;
+ right: -0.25em;
+ margin: 0em 0em 0em 0em;
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+}
+
+.ui.right.pointing.dropdown .menu {
+ top: 0%;
+ right: auto;
+ left: 100%;
+ margin: 0em 0em 0em 0.75em;
+}
+
+.ui.right.pointing.dropdown .menu:after {
+ top: 1em;
+ right: auto;
+ left: -0.25em;
+ margin: 0em 0em 0em 0em;
+ -webkit-transform: rotate(135deg);
+ -moz-transform: rotate(135deg);
+ -ms-transform: rotate(135deg);
+ transform: rotate(135deg);
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/modules/dropdown.js b/css/semantic/rtl/uncompressed/modules/dropdown.js
new file mode 100644
index 0000000..3577c3b
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/dropdown.js
@@ -0,0 +1,932 @@
+/*
+ * # Semantic - Dropdown
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+;(function ( $, window, document, undefined ) {
+
+$.fn.dropdown = function(parameters) {
+ var
+ $allModules = $(this),
+ $document = $(document),
+
+ moduleSelector = $allModules.selector || '',
+
+ hasTouch = ('ontouchstart' in document.documentElement),
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.dropdown.settings, parameters)
+ : $.extend({}, $.fn.dropdown.settings),
+
+ className = settings.className,
+ metadata = settings.metadata,
+ namespace = settings.namespace,
+ selector = settings.selector,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $item = $module.find(selector.item),
+ $text = $module.find(selector.text),
+ $input = $module.find(selector.input),
+
+ $menu = $module.children(selector.menu),
+
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing dropdown', settings);
+
+ module.save.defaults();
+ module.set.selected();
+
+ if(hasTouch) {
+ module.bind.touchEvents();
+ }
+ module.bind.mouseEvents();
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of dropdown', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous dropdown for', $module);
+ $item
+ .off(eventNamespace)
+ ;
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ bind: {
+ touchEvents: function() {
+ module.debug('Touch device detected binding touch events');
+ $module
+ .on('touchstart' + eventNamespace, module.event.test.toggle)
+ ;
+ $item
+ .on('touchstart' + eventNamespace, module.event.item.mouseenter)
+ .on('touchstart' + eventNamespace, module.event.item.click)
+ ;
+ },
+ mouseEvents: function() {
+ module.verbose('Mouse detected binding mouse events');
+ if(settings.on == 'click') {
+ $module
+ .on('click' + eventNamespace, module.event.test.toggle)
+ ;
+ }
+ else if(settings.on == 'hover') {
+ $module
+ .on('mouseenter' + eventNamespace, module.delay.show)
+ .on('mouseleave' + eventNamespace, module.delay.hide)
+ ;
+ }
+ else {
+ $module
+ .on(settings.on + eventNamespace, module.toggle)
+ ;
+ }
+ $item
+ .on('mouseenter' + eventNamespace, module.event.item.mouseenter)
+ .on('mouseleave' + eventNamespace, module.event.item.mouseleave)
+ .on('click' + eventNamespace, module.event.item.click)
+ ;
+ },
+ intent: function() {
+ module.verbose('Binding hide intent event to document');
+ if(hasTouch) {
+ $document
+ .on('touchstart' + eventNamespace, module.event.test.touch)
+ .on('touchmove' + eventNamespace, module.event.test.touch)
+ ;
+ }
+ $document
+ .on('click' + eventNamespace, module.event.test.hide)
+ ;
+ }
+ },
+
+ unbind: {
+ intent: function() {
+ module.verbose('Removing hide intent event from document');
+ if(hasTouch) {
+ $document
+ .off('touchstart' + eventNamespace)
+ .off('touchmove' + eventNamespace)
+ ;
+ }
+ $document
+ .off('click' + eventNamespace)
+ ;
+ }
+ },
+
+ event: {
+ test: {
+ toggle: function(event) {
+ if( module.determine.intent(event, module.toggle) ) {
+ event.preventDefault();
+ }
+ },
+ touch: function(event) {
+ module.determine.intent(event, function() {
+ if(event.type == 'touchstart') {
+ module.timer = setTimeout(module.hide, settings.delay.touch);
+ }
+ else if(event.type == 'touchmove') {
+ clearTimeout(module.timer);
+ }
+ });
+ event.stopPropagation();
+ },
+ hide: function(event) {
+ module.determine.intent(event, module.hide);
+ }
+ },
+
+ item: {
+
+ mouseenter: function(event) {
+ var
+ $currentMenu = $(this).find(selector.submenu),
+ $otherMenus = $(this).siblings(selector.item).children(selector.menu)
+ ;
+ if($currentMenu.length > 0 || $otherMenus.length > 0) {
+ clearTimeout(module.itemTimer);
+ module.itemTimer = setTimeout(function() {
+ if($otherMenus.length > 0) {
+ module.animate.hide(false, $otherMenus.filter(':visible'));
+ }
+ if($currentMenu.length > 0) {
+ module.verbose('Showing sub-menu', $currentMenu);
+ module.animate.show(false, $currentMenu);
+ }
+ }, settings.delay.show * 2);
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ },
+
+ mouseleave: function(event) {
+ var
+ $currentMenu = $(this).find(selector.menu)
+ ;
+ if($currentMenu.size() > 0) {
+ clearTimeout(module.itemTimer);
+ module.itemTimer = setTimeout(function() {
+ module.verbose('Hiding sub-menu', $currentMenu);
+ module.animate.hide(false, $currentMenu);
+ }, settings.delay.hide);
+ }
+ },
+
+ click: function (event) {
+ var
+ $choice = $(this),
+ text = ( $choice.data(metadata.text) !== undefined )
+ ? $choice.data(metadata.text)
+ : $choice.text(),
+ value = ( $choice.data(metadata.value) !== undefined)
+ ? $choice.data(metadata.value)
+ : (typeof text === 'string')
+ ? text.toLowerCase()
+ : text,
+ callback = function() {
+ module.determine.selectAction(text, value);
+ $.proxy(settings.onChange, element)(value, text);
+ }
+ ;
+ if( $choice.find(selector.menu).size() === 0 ) {
+ if(event.type == 'touchstart') {
+ $choice.one('click', callback);
+ }
+ else {
+ callback();
+ }
+ }
+ }
+
+ },
+
+ resetStyle: function() {
+ $(this).removeAttr('style');
+ }
+
+ },
+
+ determine: {
+ selectAction: function(text, value) {
+ module.verbose('Determining action', settings.action);
+ if( $.isFunction( module.action[settings.action] ) ) {
+ module.verbose('Triggering preset action', settings.action, text, value);
+ module.action[ settings.action ](text, value);
+ }
+ else if( $.isFunction(settings.action) ) {
+ module.verbose('Triggering user action', settings.action, text, value);
+ settings.action(text, value);
+ }
+ else {
+ module.error(error.action, settings.action);
+ }
+ },
+ intent: function(event, callback) {
+ module.debug('Determining whether event occurred in dropdown', event.target);
+ callback = callback || function(){};
+ if( $(event.target).closest($menu).size() === 0 ) {
+ module.verbose('Triggering event', callback);
+ callback();
+ return true;
+ }
+ else {
+ module.verbose('Event occurred in dropdown, canceling callback');
+ return false;
+ }
+ }
+ },
+
+ action: {
+
+ nothing: function() {},
+
+ hide: function() {
+ module.hide();
+ },
+
+ activate: function(text, value) {
+ value = (value !== undefined)
+ ? value
+ : text
+ ;
+ module.set.selected(value);
+ module.set.value(value);
+ module.hide();
+ },
+
+ /* Deprecated */
+ auto: function(text, value) {
+ value = (value !== undefined)
+ ? value
+ : text
+ ;
+ module.set.selected(value);
+ module.set.value(value);
+ module.hide();
+ },
+
+ /* Deprecated */
+ changeText: function(text, value) {
+ value = (value !== undefined)
+ ? value
+ : text
+ ;
+ module.set.selected(value);
+ module.hide();
+ },
+
+ /* Deprecated */
+ updateForm: function(text, value) {
+ value = (value !== undefined)
+ ? value
+ : text
+ ;
+ module.set.selected(value);
+ module.set.value(value);
+ module.hide();
+ }
+
+ },
+
+ get: {
+ text: function() {
+ return $text.text();
+ },
+ value: function() {
+ return ($input.size() > 0)
+ ? $input.val()
+ : $module.data(metadata.value)
+ ;
+ },
+ item: function(value, strict) {
+ var
+ $selectedItem = false
+ ;
+ value = (value !== undefined)
+ ? value
+ : ( module.get.value() !== undefined)
+ ? module.get.value()
+ : module.get.text()
+ ;
+ if(strict === undefined && value === '') {
+ module.debug('Ambiguous dropdown value using strict type check', value);
+ strict = true;
+ }
+ else {
+ strict = strict || false;
+ }
+ if(value !== undefined) {
+ $item
+ .each(function() {
+ var
+ $choice = $(this),
+ optionText = ( $choice.data(metadata.text) !== undefined )
+ ? $choice.data(metadata.text)
+ : $choice.text(),
+ optionValue = ( $choice.data(metadata.value) !== undefined )
+ ? $choice.data(metadata.value)
+ : (typeof optionText === 'string')
+ ? optionText.toLowerCase()
+ : optionText
+ ;
+ if(strict) {
+ if( optionValue === value ) {
+ $selectedItem = $(this);
+ }
+ else if( !$selectedItem && optionText === value ) {
+ $selectedItem = $(this);
+ }
+ }
+ else {
+ if( optionValue == value ) {
+ $selectedItem = $(this);
+ }
+ else if( !$selectedItem && optionText == value ) {
+ $selectedItem = $(this);
+ }
+ }
+ })
+ ;
+ }
+ else {
+ value = module.get.text();
+ }
+ return $selectedItem || false;
+ }
+ },
+
+ restore: {
+ defaults: function() {
+ module.restore.defaultText();
+ module.restore.defaultValue();
+ },
+ defaultText: function() {
+ var
+ defaultText = $module.data(metadata.defaultText)
+ ;
+ module.debug('Restoring default text', defaultText);
+ module.set.text(defaultText);
+ },
+ defaultValue: function() {
+ var
+ defaultValue = $module.data(metadata.defaultValue)
+ ;
+ if(defaultValue !== undefined) {
+ module.debug('Restoring default value', defaultValue);
+ module.set.selected(defaultValue);
+ module.set.value(defaultValue);
+ }
+ }
+ },
+
+ save: {
+ defaults: function() {
+ module.save.defaultText();
+ module.save.defaultValue();
+ },
+ defaultValue: function() {
+ $module.data(metadata.defaultValue, module.get.value() );
+ },
+ defaultText: function() {
+ $module.data(metadata.defaultText, $text.text() );
+ }
+ },
+
+ set: {
+ text: function(text) {
+ module.debug('Changing text', text, $text);
+ $text.removeClass(className.placeholder);
+ $text.text(text);
+ },
+ value: function(value) {
+ module.debug('Adding selected value to hidden input', value, $input);
+ if($input.size() > 0) {
+ $input
+ .val(value)
+ .trigger('change')
+ ;
+ }
+ else {
+ $module.data(metadata.value, value);
+ }
+ },
+ active: function() {
+ $module.addClass(className.active);
+ },
+ visible: function() {
+ $module.addClass(className.visible);
+ },
+ selected: function(value) {
+ var
+ $selectedItem = module.get.item(value),
+ selectedText
+ ;
+ if($selectedItem) {
+ module.debug('Setting selected menu item to', $selectedItem);
+ selectedText = ($selectedItem.data(metadata.text) !== undefined)
+ ? $selectedItem.data(metadata.text)
+ : $selectedItem.text()
+ ;
+ $item
+ .removeClass(className.active)
+ ;
+ $selectedItem
+ .addClass(className.active)
+ ;
+ module.set.text(selectedText);
+ }
+ }
+ },
+
+ remove: {
+ active: function() {
+ $module.removeClass(className.active);
+ },
+ visible: function() {
+ $module.removeClass(className.visible);
+ }
+ },
+
+ is: {
+ selection: function() {
+ return $module.hasClass(className.selection);
+ },
+ animated: function($subMenu) {
+ return ($subMenu)
+ ? $subMenu.is(':animated') || $subMenu.transition('is animating')
+ : $menu.is(':animated') || $menu.transition('is animating')
+ ;
+ },
+ visible: function($subMenu) {
+ return ($subMenu)
+ ? $subMenu.is(':visible')
+ : $menu.is(':visible')
+ ;
+ },
+ hidden: function($subMenu) {
+ return ($subMenu)
+ ? $subMenu.is(':not(:visible)')
+ : $menu.is(':not(:visible)')
+ ;
+ }
+ },
+
+ can: {
+ click: function() {
+ return (hasTouch || settings.on == 'click');
+ },
+ show: function() {
+ return !$module.hasClass(className.disabled);
+ }
+ },
+
+ animate: {
+ show: function(callback, $subMenu) {
+ var
+ $currentMenu = $subMenu || $menu
+ ;
+ callback = callback || function(){};
+ if( module.is.hidden($currentMenu) ) {
+ module.verbose('Doing menu show animation', $currentMenu);
+ if(settings.transition == 'none') {
+ callback();
+ }
+ else if($.fn.transition !== undefined && $module.transition('is supported')) {
+ $currentMenu
+ .transition({
+ animation : settings.transition + ' in',
+ duration : settings.duration,
+ complete : callback,
+ queue : false
+ })
+ ;
+ }
+ else if(settings.transition == 'slide down') {
+ $currentMenu
+ .hide()
+ .clearQueue()
+ .children()
+ .clearQueue()
+ .css('opacity', 0)
+ .delay(50)
+ .animate({
+ opacity : 1
+ }, settings.duration, 'easeOutQuad', module.event.resetStyle)
+ .end()
+ .slideDown(100, 'easeOutQuad', function() {
+ $.proxy(module.event.resetStyle, this)();
+ callback();
+ })
+ ;
+ }
+ else if(settings.transition == 'fade') {
+ $currentMenu
+ .hide()
+ .clearQueue()
+ .fadeIn(settings.duration, function() {
+ $.proxy(module.event.resetStyle, this)();
+ callback();
+ })
+ ;
+ }
+ else {
+ module.error(error.transition, settings.transition);
+ }
+ }
+ },
+ hide: function(callback, $subMenu) {
+ var
+ $currentMenu = $subMenu || $menu
+ ;
+ callback = callback || function(){};
+ if(module.is.visible($currentMenu) ) {
+ module.verbose('Doing menu hide animation', $currentMenu);
+ if($.fn.transition !== undefined && $module.transition('is supported')) {
+ $currentMenu
+ .transition({
+ animation : settings.transition + ' out',
+ duration : settings.duration,
+ complete : callback,
+ queue : false
+ })
+ ;
+ }
+ else if(settings.transition == 'none') {
+ callback();
+ }
+ else if(settings.transition == 'slide down') {
+ $currentMenu
+ .show()
+ .clearQueue()
+ .children()
+ .clearQueue()
+ .css('opacity', 1)
+ .animate({
+ opacity : 0
+ }, 100, 'easeOutQuad', module.event.resetStyle)
+ .end()
+ .delay(50)
+ .slideUp(100, 'easeOutQuad', function() {
+ $.proxy(module.event.resetStyle, this)();
+ callback();
+ })
+ ;
+ }
+ else if(settings.transition == 'fade') {
+ $currentMenu
+ .show()
+ .clearQueue()
+ .fadeOut(150, function() {
+ $.proxy(module.event.resetStyle, this)();
+ callback();
+ })
+ ;
+ }
+ else {
+ module.error(error.transition);
+ }
+ }
+ }
+ },
+
+ show: function() {
+ module.debug('Checking if dropdown can show');
+ if( module.is.hidden() ) {
+ module.hideOthers();
+ module.set.active();
+ module.animate.show(function() {
+ if( module.can.click() ) {
+ module.bind.intent();
+ }
+ module.set.visible();
+ });
+ $.proxy(settings.onShow, element)();
+ }
+ },
+
+ hide: function() {
+ if( !module.is.animated() && module.is.visible() ) {
+ module.debug('Hiding dropdown');
+ if( module.can.click() ) {
+ module.unbind.intent();
+ }
+ module.remove.active();
+ module.animate.hide(module.remove.visible);
+ $.proxy(settings.onHide, element)();
+ }
+ },
+
+ delay: {
+ show: function() {
+ module.verbose('Delaying show event to ensure user intent');
+ clearTimeout(module.timer);
+ module.timer = setTimeout(module.show, settings.delay.show);
+ },
+ hide: function() {
+ module.verbose('Delaying hide event to ensure user intent');
+ clearTimeout(module.timer);
+ module.timer = setTimeout(module.hide, settings.delay.hide);
+ }
+ },
+
+ hideOthers: function() {
+ module.verbose('Finding other dropdowns to hide');
+ $allModules
+ .not($module)
+ .has(selector.menu + ':visible')
+ .dropdown('hide')
+ ;
+ },
+
+ toggle: function() {
+ module.verbose('Toggling menu visibility');
+ if( module.is.hidden() ) {
+ module.show();
+ }
+ else {
+ module.hide();
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ module.error(error.method, query);
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.dropdown.settings = {
+
+ name : 'Dropdown',
+ namespace : 'dropdown',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ on : 'click',
+ action : 'activate',
+
+ delay: {
+ show : 200,
+ hide : 300,
+ touch : 50
+ },
+
+ transition : 'slide down',
+ duration : 250,
+
+ onChange : function(value, text){},
+ onShow : function(){},
+ onHide : function(){},
+
+ error : {
+ action : 'You called a dropdown action that was not defined',
+ method : 'The method you called is not defined.',
+ transition : 'The requested transition was not found'
+ },
+
+ metadata: {
+ defaultText : 'defaultText',
+ defaultValue : 'defaultValue',
+ text : 'text',
+ value : 'value'
+ },
+
+ selector : {
+ menu : '.menu',
+ submenu : '> .menu',
+ item : '.menu > .item',
+ text : '> .text',
+ input : '> input[type="hidden"]'
+ },
+
+ className : {
+ active : 'active',
+ placeholder : 'default',
+ disabled : 'disabled',
+ visible : 'visible',
+ selection : 'selection'
+ }
+
+};
+
+// Adds easing
+$.extend( $.easing, {
+ easeOutQuad: function (x, t, b, c, d) {
+ return -c *(t/=d)*(t-2) + b;
+ },
+});
+
+
+})( jQuery, window , document );
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/modules/modal.css b/css/semantic/rtl/uncompressed/modules/modal.css
new file mode 100644
index 0000000..580d275
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/modal.css
@@ -0,0 +1,308 @@
+/*
+ * # Semantic - Modal
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Modal
+*******************************/
+
+.ui.modal {
+ display: none;
+ position: fixed;
+ z-index: 1001;
+ top: 50%;
+ right: 50%;
+ text-align: right;
+ width: 90%;
+ margin-right: -45%;
+ background-color: #FFFFFF;
+ border: 1px solid #DDDDDD;
+ border-radius: 5px;
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+}
+
+/*******************************
+ Content
+*******************************/
+
+/*--------------
+ Close
+---------------*/
+
+.ui.modal > .close {
+ cursor: pointer;
+ position: absolute;
+ z-index: 1;
+ opacity: 0.8;
+ font-size: 1.25em;
+ top: -1.75em;
+ left: -1.75em;
+ color: #FFFFFF;
+}
+
+.ui.modal > .close:hover {
+ opacity: 1;
+}
+
+/*--------------
+ Header
+---------------*/
+
+.ui.modal > .header {
+ margin: 0em;
+ padding: 1.5rem 2rem;
+ font-size: 1.6em;
+ font-weight: bold;
+ border-radius: 0.325em 0.325em 0px 0px;
+}
+
+/*--------------
+ Content
+---------------*/
+
+.ui.modal > .content {
+ display: table;
+ width: 100%;
+ position: relative;
+ padding: 2em;
+ background-color: #F4F4F4;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.modal > .content > .left:not(.ui) {
+ display: table-cell;
+ padding-left: 1.5%;
+ min-width: 25%;
+}
+
+.ui.modal > .content > .right:not(.ui) {
+ display: table-cell;
+ padding-right: 1.5%;
+ vertical-align: top;
+}
+
+/*rtl:ignore*/
+
+.ui.modal > .content > .left:not(.ui) > i.icon {
+ font-size: 8em;
+ margin: 0em;
+}
+
+.ui.modal > .content p {
+ line-height: 1.6;
+}
+
+/*--------------
+ Actions
+---------------*/
+
+.ui.modal .actions {
+ padding: 1rem 2rem;
+ text-align: left;
+}
+
+.ui.modal .actions > .button {
+ margin-right: 0.75em;
+}
+
+/*-------------------
+ Sizing
+--------------------*/
+
+/* Mobile Only */
+
+@media only screen and (max-width: 768px) {
+ /*rtl:ignore*/
+
+ .ui.modal .content > .left:not(.ui) {
+ display: block;
+ padding: 0em 0em 1em;
+ }
+
+ /*rtl:ignore*/
+
+ .ui.modal .content > .right:not(.ui) {
+ display: block;
+ padding: 1em 0em 0em;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+
+ .ui.modal .content .image {
+ width: auto !important;
+ max-width: 100%;
+ }
+
+ .ui.modal .actions {
+ padding-bottom: 0em;
+ }
+
+ .ui.modal .actions > .buttons,
+ .ui.modal .actions > .button {
+ margin-bottom: 1em;
+ }
+}
+
+/* Tablet and Mobile */
+
+@media only screen and (max-width: 998px) {
+ .ui.modal {
+ width: 92%;
+ margin-right: -46%;
+ }
+
+ .ui.modal > .close {
+ color: rgba(0, 0, 0, 0.8);
+ top: 1.5rem;
+ left: 1rem;
+ }
+}
+
+/* Computer / Responsive */
+
+@media only screen and (min-width: 998px) {
+ .ui.modal {
+ width: 74%;
+ margin-right: -37%;
+ }
+}
+
+@media only screen and (min-width: 1500px) {
+ .ui.modal {
+ width: 56%;
+ margin-right: -28%;
+ }
+}
+
+@media only screen and (min-width: 1750px) {
+ .ui.modal {
+ width: 42%;
+ margin-right: -21%;
+ }
+}
+
+@media only screen and (min-width: 2000px) {
+ .ui.modal {
+ width: 36%;
+ margin-right: -18%;
+ }
+}
+
+/*******************************
+ Types
+*******************************/
+
+.ui.basic.modal {
+ background-color: transparent;
+ border: none;
+ color: #FFFFFF;
+}
+
+.ui.basic.modal > .close {
+ top: 1.5rem;
+ left: 1rem;
+}
+
+.ui.basic.modal .content {
+ background-color: transparent;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/* A modal that cannot fit on the page */
+
+.ui.modal.scrolling {
+ position: absolute;
+ margin-top: 10px;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.active.modal {
+ display: block;
+}
+
+/*--------------
+ Size
+---------------*/
+
+/* Small */
+
+.ui.small.modal > .header {
+ font-size: 1.3em;
+}
+
+@media only screen and (min-width: 998px) {
+ .ui.small.modal {
+ width: 58%;
+ margin-right: -29%;
+ }
+}
+
+@media only screen and (min-width: 1500px) {
+ .ui.small.modal {
+ width: 40%;
+ margin-right: -20%;
+ }
+}
+
+@media only screen and (min-width: 1750px) {
+ .ui.small.modal {
+ width: 26%;
+ margin-right: -13%;
+ }
+}
+
+@media only screen and (min-width: 2000px) {
+ .ui.small.modal {
+ width: 20%;
+ margin-right: -10%;
+ }
+}
+
+/* Large */
+
+@media only screen and (min-width: 998px) {
+ .ui.large.modal {
+ width: 74%;
+ margin-right: -37%;
+ }
+}
+
+@media only screen and (min-width: 1500px) {
+ .ui.large.modal {
+ width: 64%;
+ margin-right: -32%;
+ }
+}
+
+@media only screen and (min-width: 1750px) {
+ .ui.large.modal {
+ width: 54%;
+ margin-right: -27%;
+ }
+}
+
+@media only screen and (min-width: 2000px) {
+ .ui.large.modal {
+ width: 44%;
+ margin-right: -22%;
+ }
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/modules/modal.js b/css/semantic/rtl/uncompressed/modules/modal.js
new file mode 100644
index 0000000..e778d0c
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/modal.js
@@ -0,0 +1,743 @@
+/*
+ * # Semantic - Modal
+ * http://github.com/semantic-org/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.modal = function(parameters) {
+ var
+ $allModules = $(this),
+ $window = $(window),
+ $document = $(document),
+ $body = $('body'),
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ requestAnimationFrame = window.requestAnimationFrame
+ || window.mozRequestAnimationFrame
+ || window.webkitRequestAnimationFrame
+ || window.msRequestAnimationFrame
+ || function(callback) { setTimeout(callback, 0); },
+
+ returnedValue
+ ;
+
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.modal.settings, parameters)
+ : $.extend({}, $.fn.modal.settings),
+
+ selector = settings.selector,
+ className = settings.className,
+ namespace = settings.namespace,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+ moduleSelector = $allModules.selector || '',
+
+ $module = $(this),
+ $context = $(settings.context),
+ $close = $module.find(selector.close),
+
+ $allModals,
+ $otherModals,
+ $focusedElement,
+ $dimmable,
+ $dimmer,
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing dimmer', $context);
+
+ if($.fn.dimmer === undefined) {
+ module.error(error.dimmer);
+ return;
+ }
+ $dimmable = $context
+ .dimmer({
+ closable : false,
+ useCSS : true,
+ duration : {
+ show : settings.duration * 0.9,
+ hide : settings.duration * 1.1
+ }
+ })
+ ;
+
+ if(settings.detachable) {
+ $dimmable.dimmer('add content', $module);
+ }
+
+ $dimmer = $dimmable
+ .dimmer('get dimmer')
+ ;
+
+ $otherModals = $module.siblings(selector.modal);
+ $allModals = $otherModals.add($module);
+
+ module.verbose('Attaching close events', $close);
+ $close
+ .on('click' + eventNamespace, module.event.close)
+ ;
+ $window
+ .on('resize' + eventNamespace, module.event.resize)
+ ;
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of modal');
+ instance = module;
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous modal');
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ $close
+ .off(eventNamespace)
+ ;
+ $context
+ .dimmer('destroy')
+ ;
+ },
+
+ refresh: function() {
+ module.remove.scrolling();
+ module.cacheSizes();
+ module.set.screenHeight();
+ module.set.type();
+ module.set.position();
+ },
+
+ attachEvents: function(selector, event) {
+ var
+ $toggle = $(selector)
+ ;
+ event = $.isFunction(module[event])
+ ? module[event]
+ : module.toggle
+ ;
+ if($toggle.size() > 0) {
+ module.debug('Attaching modal events to element', selector, event);
+ $toggle
+ .off(eventNamespace)
+ .on('click' + eventNamespace, event)
+ ;
+ }
+ else {
+ module.error(error.notFound);
+ }
+ },
+
+ event: {
+ close: function() {
+ module.verbose('Closing element pressed');
+ if( $(this).is(selector.approve) ) {
+ if($.proxy(settings.onApprove, element)() !== false) {
+ module.hide();
+ }
+ else {
+ module.verbose('Approve callback returned false cancelling hide');
+ }
+ }
+ else if( $(this).is(selector.deny) ) {
+ if($.proxy(settings.onDeny, element)() !== false) {
+ module.hide();
+ }
+ else {
+ module.verbose('Deny callback returned false cancelling hide');
+ }
+ }
+ else {
+ module.hide();
+ }
+ },
+ click: function(event) {
+ if( $(event.target).closest(selector.modal).size() === 0 ) {
+ module.debug('Dimmer clicked, hiding all modals');
+ if(settings.allowMultiple) {
+ module.hide();
+ }
+ else {
+ module.hideAll();
+ }
+ event.stopImmediatePropagation();
+ }
+ },
+ debounce: function(method, delay) {
+ clearTimeout(module.timer);
+ module.timer = setTimeout(method, delay);
+ },
+ keyboard: function(event) {
+ var
+ keyCode = event.which,
+ escapeKey = 27
+ ;
+ if(keyCode == escapeKey) {
+ if(settings.closable) {
+ module.debug('Escape key pressed hiding modal');
+ module.hide();
+ }
+ else {
+ module.debug('Escape key pressed, but closable is set to false');
+ }
+ event.preventDefault();
+ }
+ },
+ resize: function() {
+ if( $dimmable.dimmer('is active') ) {
+ requestAnimationFrame(module.refresh);
+ }
+ }
+ },
+
+ toggle: function() {
+ if( module.is.active() ) {
+ module.hide();
+ }
+ else {
+ module.show();
+ }
+ },
+
+ show: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.showDimmer();
+ module.showModal(callback);
+ },
+
+ showModal: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( !module.is.active() ) {
+ module.cacheSizes();
+ module.set.position();
+ module.set.screenHeight();
+ module.set.type();
+
+ if( $otherModals.filter(':visible').size() > 0 && !settings.allowMultiple) {
+ module.debug('Other modals visible, queueing show animation');
+ module.hideOthers(module.showModal);
+ }
+ else {
+ $.proxy(settings.onShow, element)();
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ module.debug('Showing modal with css animations');
+ $module
+ .transition(settings.transition + ' in', settings.duration, function() {
+ $.proxy(settings.onVisible, element)();
+ module.set.active();
+ callback();
+ })
+ ;
+ }
+ else {
+ module.debug('Showing modal with javascript');
+ $module
+ .fadeIn(settings.duration, settings.easing, function() {
+ $.proxy(settings.onVisible, element)();
+ module.set.active();
+ callback();
+ })
+ ;
+ }
+ }
+ }
+ else {
+ module.debug('Modal is already visible');
+ }
+ },
+
+ showDimmer: function() {
+ if( !$dimmable.dimmer('is active') ) {
+ module.debug('Showing dimmer');
+ $dimmable.dimmer('show');
+ }
+ else {
+ module.debug('Dimmer already visible');
+ }
+ },
+
+ hide: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if($allModals.filter(':visible').size() <= 1) {
+ module.hideDimmer();
+ }
+ module.hideModal(callback);
+ },
+
+ hideDimmer: function() {
+ if( !module.is.active() ) {
+ module.debug('Dimmer is not visible cannot hide');
+ return;
+ }
+ module.debug('Hiding dimmer');
+ if(settings.closable) {
+ $dimmer
+ .off('click' + eventNamespace)
+ ;
+ }
+ $dimmable.dimmer('hide', function() {
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $module
+ .transition('reset')
+ ;
+ module.remove.screenHeight();
+ }
+ module.remove.active();
+ });
+ },
+
+ hideModal: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( !module.is.active() ) {
+ module.debug('Cannot hide modal it is not active');
+ return;
+ }
+ module.debug('Hiding modal');
+ module.remove.keyboardShortcuts();
+ $.proxy(settings.onHide, element)();
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $module
+ .transition(settings.transition + ' out', settings.duration, function() {
+ $.proxy(settings.onHidden, element)();
+ module.remove.active();
+ module.restore.focus();
+ callback();
+ })
+ ;
+ }
+ else {
+ $module
+ .fadeOut(settings.duration, settings.easing, function() {
+ $.proxy(settings.onHidden, element)();
+ module.remove.active();
+ module.restore.focus();
+ callback();
+ })
+ ;
+ }
+ },
+
+ hideAll: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( $allModals.is(':visible') ) {
+ module.debug('Hiding all visible modals');
+ module.hideDimmer();
+ $allModals
+ .filter(':visible')
+ .modal('hide modal', callback)
+ ;
+ }
+ },
+
+ hideOthers: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ if( $otherModals.is(':visible') ) {
+ module.debug('Hiding other modals');
+ $otherModals
+ .filter(':visible')
+ .modal('hide modal', callback)
+ ;
+ }
+ },
+
+ add: {
+ keyboardShortcuts: function() {
+ module.verbose('Adding keyboard shortcuts');
+ $document
+ .on('keyup' + eventNamespace, module.event.keyboard)
+ ;
+ }
+ },
+
+ save: {
+ focus: function() {
+ $focusedElement = $(document.activeElement).blur();
+ }
+ },
+
+ restore: {
+ focus: function() {
+ if($focusedElement && $focusedElement.size() > 0) {
+ $focusedElement.focus();
+ }
+ }
+ },
+
+ remove: {
+ active: function() {
+ $module.removeClass(className.active);
+ },
+ screenHeight: function() {
+ if(module.cache.height > module.cache.pageHeight) {
+ module.debug('Removing page height');
+ $body
+ .css('height', '')
+ ;
+ }
+ },
+ keyboardShortcuts: function() {
+ module.verbose('Removing keyboard shortcuts');
+ $document
+ .off('keyup' + eventNamespace)
+ ;
+ },
+ scrolling: function() {
+ $dimmable.removeClass(className.scrolling);
+ $module.removeClass(className.scrolling);
+ }
+ },
+
+ cacheSizes: function() {
+ module.cache = {
+ pageHeight : $body.outerHeight(),
+ height : $module.outerHeight() + settings.offset,
+ contextHeight : (settings.context == 'body')
+ ? $(window).height()
+ : $dimmable.height()
+ };
+ module.debug('Caching modal and container sizes', module.cache);
+ },
+
+ can: {
+ fit: function() {
+ return (module.cache.height < module.cache.contextHeight);
+ }
+ },
+
+ is: {
+ active: function() {
+ return $module.hasClass(className.active);
+ },
+ modernBrowser: function() {
+ // appName for IE11 reports 'Netscape' can no longer use
+ return !(window.ActiveXObject || "ActiveXObject" in window);
+ }
+ },
+
+ set: {
+ screenHeight: function() {
+ if(module.cache.height > module.cache.pageHeight) {
+ module.debug('Modal is taller than page content, resizing page height');
+ $body
+ .css('height', module.cache.height + settings.padding)
+ ;
+ }
+ },
+ active: function() {
+ module.add.keyboardShortcuts();
+ module.save.focus();
+ $module
+ .addClass(className.active)
+ ;
+ if(settings.closable) {
+ $dimmer
+ .off('click' + eventNamespace)
+ .on('click' + eventNamespace, module.event.click)
+ ;
+ }
+ },
+ scrolling: function() {
+ $dimmable.addClass(className.scrolling);
+ $module.addClass(className.scrolling);
+ },
+ type: function() {
+ if(module.can.fit()) {
+ module.verbose('Modal fits on screen');
+ module.remove.scrolling();
+ }
+ else {
+ module.verbose('Modal cannot fit on screen setting to scrolling');
+ module.set.scrolling();
+ }
+ },
+ position: function() {
+ module.verbose('Centering modal on page', module.cache);
+ if(module.can.fit()) {
+ $module
+ .css({
+ top: '',
+ marginTop: -(module.cache.height / 2)
+ })
+ ;
+ }
+ else {
+ $module
+ .css({
+ marginTop : '1em',
+ top : $document.scrollTop()
+ })
+ ;
+ }
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.modal.settings = {
+
+ name : 'Modal',
+ namespace : 'modal',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ allowMultiple : true,
+ detachable : true,
+ closable : true,
+ context : 'body',
+
+ duration : 500,
+ easing : 'easeOutExpo',
+ offset : 0,
+ transition : 'scale',
+
+ padding : 30,
+
+ onShow : function(){},
+ onHide : function(){},
+
+ onVisible : function(){},
+ onHidden : function(){},
+
+ onApprove : function(){ return true; },
+ onDeny : function(){ return true; },
+
+ selector : {
+ close : '.close, .actions .button',
+ approve : '.actions .positive, .actions .approve, .actions .ok',
+ deny : '.actions .negative, .actions .deny, .actions .cancel',
+ modal : '.ui.modal'
+ },
+ error : {
+ dimmer : 'UI Dimmer, a required component is not included in this page',
+ method : 'The method you called is not defined.'
+ },
+ className : {
+ active : 'active',
+ scrolling : 'scrolling'
+ }
+};
+
+
+})( jQuery, window , document );
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/modules/nag.css b/css/semantic/rtl/uncompressed/modules/nag.css
new file mode 100644
index 0000000..a13816a
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/nag.css
@@ -0,0 +1,140 @@
+/*
+ * # Semantic - Nag
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Nag
+*******************************/
+
+.ui.nag {
+ display: none;
+ opacity: 0.95;
+ position: relative;
+ top: 0px;
+ right: 0%;
+ z-index: 101;
+ min-height: 0;
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 0em;
+ line-height: 3em;
+ padding: 0em 1em;
+ background-color: #555555;
+ -webkit-box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2);
+ box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2);
+ font-size: 1em;
+ text-align: center;
+ color: rgba(255, 255, 255, 0.8);
+ border-radius: 0px 0px 5px 5px;
+ -webkit-transition: 0.2s background;
+ -moz-transition: 0.2s background;
+ transition: 0.2s background;
+}
+
+a.ui.nag {
+ cursor: pointer;
+}
+
+.ui.nag > .title {
+ display: inline-block;
+ margin: 0em 0.5em;
+ color: #FFFFFF;
+}
+
+.ui.nag > .close.icon {
+ cursor: pointer;
+ opacity: 0.4;
+ position: absolute;
+ top: 50%;
+ left: 1em;
+ margin-top: -0.5em;
+ color: #FFFFFF;
+ -webkit-transition: 0.1s opacity;
+ -moz-transition: 0.1s opacity;
+ transition: 0.1s opacity;
+}
+
+/*******************************
+ States
+*******************************/
+
+/* Hover */
+
+.ui.nag:hover {
+ opacity: 1;
+}
+
+.ui.nag .close:hover {
+ opacity: 1;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Static
+---------------*/
+
+.ui.overlay.nag {
+ position: absolute;
+ display: block;
+}
+
+/*--------------
+ Fixed
+---------------*/
+
+.ui.fixed.nag {
+ position: fixed;
+}
+
+/*--------------
+ Bottom
+---------------*/
+
+.ui.bottom.nag {
+ border-radius: 5px 5px 0px 0px;
+}
+
+.ui.fixed.bottom.nags,
+.ui.fixed.bottom.nag {
+ top: auto;
+ bottom: 0px;
+}
+
+/*--------------
+ White
+---------------*/
+
+.ui.white.nags .nag,
+.ui.white.nag {
+ background-color: #F1F1F1;
+ text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.8);
+ color: #ACACAC;
+}
+
+.ui.white.nags .nag .close,
+.ui.white.nags .nag .title,
+.ui.white.nag .close,
+.ui.white.nag .title {
+ color: #333333;
+}
+
+/*******************************
+ Groups
+*******************************/
+
+.ui.nags .nag {
+ border-radius: 0px;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/modules/nag.js b/css/semantic/rtl/uncompressed/modules/nag.js
new file mode 100644
index 0000000..18c88b9
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/nag.js
@@ -0,0 +1,543 @@
+/*
+ * # Semantic - Nag
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.nag = function(parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $(this)
+ .each(function() {
+ var
+ settings = $.extend(true, {}, $.fn.nag.settings, parameters),
+
+ className = settings.className,
+ selector = settings.selector,
+ error = settings.error,
+ namespace = settings.namespace,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = namespace + '-module',
+
+ $module = $(this),
+
+ $close = $module.find(selector.close),
+ $context = $(settings.context),
+
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+
+ moduleOffset,
+ moduleHeight,
+
+ contextWidth,
+ contextHeight,
+ contextOffset,
+
+ yOffset,
+ yPosition,
+
+ timer,
+ module,
+
+ requestAnimationFrame = window.requestAnimationFrame
+ || window.mozRequestAnimationFrame
+ || window.webkitRequestAnimationFrame
+ || window.msRequestAnimationFrame
+ || function(callback) { setTimeout(callback, 0); }
+ ;
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing element');
+ // calculate module offset once
+ moduleOffset = $module.offset();
+ moduleHeight = $module.outerHeight();
+ contextWidth = $context.outerWidth();
+ contextHeight = $context.outerHeight();
+ contextOffset = $context.offset();
+
+ $module
+ .data(moduleNamespace, module)
+ ;
+ $close
+ .on('click' + eventNamespace, module.dismiss)
+ ;
+ // lets avoid javascript if we dont need to reposition
+ if(settings.context == window && settings.position == 'fixed') {
+ $module
+ .addClass(className.fixed)
+ ;
+ }
+ if(settings.sticky) {
+ module.verbose('Adding scroll events');
+ // retrigger on scroll for absolute
+ if(settings.position == 'absolute') {
+ $context
+ .on('scroll' + eventNamespace, module.event.scroll)
+ .on('resize' + eventNamespace, module.event.scroll)
+ ;
+ }
+ // fixed is always relative to window
+ else {
+ $(window)
+ .on('scroll' + eventNamespace, module.event.scroll)
+ .on('resize' + eventNamespace, module.event.scroll)
+ ;
+ }
+ // fire once to position on init
+ $.proxy(module.event.scroll, this)();
+ }
+
+ if(settings.displayTime > 0) {
+ setTimeout(module.hide, settings.displayTime);
+ }
+ if(module.should.show()) {
+ if( !$module.is(':visible') ) {
+ module.show();
+ }
+ }
+ else {
+ module.hide();
+ }
+ },
+
+ destroy: function() {
+ module.verbose('Destroying instance');
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ if(settings.sticky) {
+ $context
+ .off(eventNamespace)
+ ;
+ }
+ },
+
+ refresh: function() {
+ module.debug('Refreshing cached calculations');
+ moduleOffset = $module.offset();
+ moduleHeight = $module.outerHeight();
+ contextWidth = $context.outerWidth();
+ contextHeight = $context.outerHeight();
+ contextOffset = $context.offset();
+ },
+
+ show: function() {
+ module.debug('Showing nag', settings.animation.show);
+ if(settings.animation.show == 'fade') {
+ $module
+ .fadeIn(settings.duration, settings.easing)
+ ;
+ }
+ else {
+ $module
+ .slideDown(settings.duration, settings.easing)
+ ;
+ }
+ },
+
+ hide: function() {
+ module.debug('Showing nag', settings.animation.hide);
+ if(settings.animation.show == 'fade') {
+ $module
+ .fadeIn(settings.duration, settings.easing)
+ ;
+ }
+ else {
+ $module
+ .slideUp(settings.duration, settings.easing)
+ ;
+ }
+ },
+
+ onHide: function() {
+ module.debug('Removing nag', settings.animation.hide);
+ $module.remove();
+ if (settings.onHide) {
+ settings.onHide();
+ }
+ },
+
+ stick: function() {
+ module.refresh();
+
+ if(settings.position == 'fixed') {
+ var
+ windowScroll = $(window).prop('pageYOffset') || $(window).scrollTop(),
+ fixedOffset = ( $module.hasClass(className.bottom) )
+ ? contextOffset.top + (contextHeight - moduleHeight) - windowScroll
+ : contextOffset.top - windowScroll
+ ;
+ $module
+ .css({
+ position : 'fixed',
+ top : fixedOffset,
+ left : contextOffset.left,
+ width : contextWidth - settings.scrollBarWidth
+ })
+ ;
+ }
+ else {
+ $module
+ .css({
+ top : yPosition
+ })
+ ;
+ }
+ },
+ unStick: function() {
+ $module
+ .css({
+ top : ''
+ })
+ ;
+ },
+ dismiss: function(event) {
+ if(settings.storageMethod) {
+ module.storage.set(settings.storedKey, settings.storedValue);
+ }
+ module.hide();
+ event.stopImmediatePropagation();
+ event.preventDefault();
+ },
+
+ should: {
+ show: function() {
+ if(settings.persist) {
+ module.debug('Persistent nag is set, can show nag');
+ return true;
+ }
+ if(module.storage.get(settings.storedKey) != settings.storedValue) {
+ module.debug('Stored value is not set, can show nag', module.storage.get(settings.storedKey));
+ return true;
+ }
+ module.debug('Stored value is set, cannot show nag', module.storage.get(settings.storedKey));
+ return false;
+ },
+ stick: function() {
+ yOffset = $context.prop('pageYOffset') || $context.scrollTop();
+ yPosition = ( $module.hasClass(className.bottom) )
+ ? (contextHeight - $module.outerHeight() ) + yOffset
+ : yOffset
+ ;
+ // absolute position calculated when y offset met
+ if(yPosition > moduleOffset.top) {
+ return true;
+ }
+ else if(settings.position == 'fixed') {
+ return true;
+ }
+ return false;
+ }
+ },
+
+ storage: {
+
+ set: function(key, value) {
+ module.debug('Setting stored value', key, value, settings.storageMethod);
+ if(settings.storageMethod == 'local' && window.store !== undefined) {
+ window.store.set(key, value);
+ }
+ // store by cookie
+ else if($.cookie !== undefined) {
+ $.cookie(key, value);
+ }
+ else {
+ module.error(error.noStorage);
+ }
+ },
+ get: function(key) {
+ module.debug('Getting stored value', key, settings.storageMethod);
+ if(settings.storageMethod == 'local' && window.store !== undefined) {
+ return window.store.get(key);
+ }
+ // get by cookie
+ else if($.cookie !== undefined) {
+ return $.cookie(key);
+ }
+ else {
+ module.error(error.noStorage);
+ }
+ }
+
+ },
+
+ event: {
+ scroll: function() {
+ if(timer !== undefined) {
+ clearTimeout(timer);
+ }
+ timer = setTimeout(function() {
+ if(module.should.stick() ) {
+ requestAnimationFrame(module.stick);
+ }
+ else {
+ module.unStick();
+ }
+ }, settings.lag);
+ }
+ },
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ module.debug('Changing internal', name, value);
+ if(value !== undefined) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else {
+ module[name] = value;
+ }
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ })
+ ;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.nag.settings = {
+
+ name : 'Nag',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ namespace : 'Nag',
+
+ // allows cookie to be overriden
+ persist : false,
+
+ // set to zero to manually dismiss, otherwise hides on its own
+ displayTime : 0,
+
+ animation : {
+ show: 'slide',
+ hide: 'slide'
+ },
+
+ // method of stickyness
+ position : 'fixed',
+ scrollBarWidth : 18,
+
+ // type of storage to use
+ storageMethod : 'cookie',
+
+ // value to store in dismissed localstorage/cookie
+ storedKey : 'nag',
+ storedValue : 'dismiss',
+
+ // need to calculate stickyness on scroll
+ sticky : false,
+
+ // how often to check scroll event
+ lag : 0,
+
+ // context for scroll event
+ context : window,
+
+ error: {
+ noStorage : 'Neither $.cookie or store is defined. A storage solution is required for storing state',
+ method : 'The method you called is not defined.'
+ },
+
+ className : {
+ bottom : 'bottom',
+ fixed : 'fixed'
+ },
+
+ selector : {
+ close: '.icon.close'
+ },
+
+ speed : 500,
+ easing : 'easeOutQuad',
+
+ onHide: function() {}
+
+};
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/uncompressed/modules/popup.css b/css/semantic/rtl/uncompressed/modules/popup.css
new file mode 100644
index 0000000..84a6871
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/popup.css
@@ -0,0 +1,253 @@
+/*
+ * # Semantic - Popup
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Popup
+*******************************/
+
+.ui.popup {
+ display: none;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ z-index: 900;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ max-width: 250px;
+ background-color: #FFFFFF;
+ padding: 0.8em 1.2em;
+ font-size: 0.875rem;
+ font-weight: normal;
+ font-style: normal;
+ color: rgba(0, 0, 0, 0.7);
+ border-radius: 0.2em;
+ -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
+}
+
+.ui.popup .header {
+ padding: 0em 0em 0.5em;
+ font-size: 1.125em;
+ line-height: 1.2;
+ font-weight: bold;
+}
+
+.ui.popup:before {
+ position: absolute;
+ content: "";
+ width: 0.75em;
+ height: 0.75rem;
+ background-image: none;
+ background-color: #FFFFFF;
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ z-index: 2;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
+}
+
+.ui.popup .ui.button {
+ width: 100%;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Spacing
+---------------*/
+
+.ui.popup {
+ margin: 0em;
+}
+
+.ui.popup.bottom {
+ margin: 0.75em 0em 0em;
+}
+
+.ui.popup.top {
+ margin: 0em 0em 0.75em;
+}
+
+.ui.popup.left.center {
+ margin: 0em 0em 0em 0.75em;
+}
+
+.ui.popup.right.center {
+ margin: 0em 0.75em 0em 0em;
+}
+
+.ui.popup.center {
+ margin-right: -1.25em;
+}
+
+/*--------------
+ Pointer
+---------------*/
+
+/*--- Below ---*/
+
+.ui.bottom.center.popup:before {
+ margin-right: -0.4em;
+ top: -0.4em;
+ right: 50%;
+ left: auto;
+ bottom: auto;
+ -webkit-box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+}
+
+.ui.bottom.left.popup {
+ margin-left: -2em;
+}
+
+.ui.bottom.left.popup:before {
+ top: -0.4em;
+ left: 1em;
+ bottom: auto;
+ right: auto;
+ margin-right: 0em;
+ -webkit-box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+}
+
+.ui.bottom.right.popup {
+ margin-right: -2em;
+}
+
+.ui.bottom.right.popup:before {
+ top: -0.4em;
+ right: 1em;
+ left: auto;
+ bottom: auto;
+ margin-right: 0em;
+ -webkit-box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.2);
+}
+
+/*--- Above ---*/
+
+.ui.top.center.popup:before {
+ top: auto;
+ left: auto;
+ bottom: -0.4em;
+ right: 50%;
+ margin-right: -0.4em;
+}
+
+.ui.top.left.popup {
+ margin-left: -2em;
+}
+
+.ui.top.left.popup:before {
+ bottom: -0.4em;
+ left: 1em;
+ top: auto;
+ right: auto;
+ margin-right: 0em;
+}
+
+.ui.top.right.popup {
+ margin-right: -2em;
+}
+
+.ui.top.right.popup:before {
+ bottom: -0.4em;
+ right: 1em;
+ top: auto;
+ left: auto;
+ margin-right: 0em;
+}
+
+/*--- Left Center ---*/
+
+.ui.left.center.popup:before {
+ top: 50%;
+ left: -0.35em;
+ bottom: auto;
+ right: auto;
+ margin-top: -0.4em;
+ -webkit-box-shadow: 1px -1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: 1px -1px 1px rgba(0, 0, 0, 0.2);
+}
+
+/*--- Right Center ---*/
+
+.ui.right.center.popup:before {
+ top: 50%;
+ right: -0.35em;
+ bottom: auto;
+ left: auto;
+ margin-top: -0.4em;
+ -webkit-box-shadow: -1px 1px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: -1px 1px 1px rgba(0, 0, 0, 0.2);
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.loading.popup {
+ display: block;
+ visibility: hidden;
+}
+
+.ui.animating.popup,
+.ui.visible.popup {
+ display: block;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Size
+---------------*/
+
+.ui.small.popup {
+ font-size: 0.75rem;
+}
+
+.ui.large.popup {
+ font-size: 1rem;
+}
+
+/*--------------
+ Colors
+---------------*/
+
+/* Inverted colors */
+
+.ui.inverted.popup {
+ background-color: #333333;
+ border: none;
+ color: #FFFFFF;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui.inverted.popup .header {
+ background-color: rgba(0, 0, 0, 0.2);
+ color: #FFFFFF;
+}
+
+.ui.inverted.popup:before {
+ background-color: #333333;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/modules/popup.js b/css/semantic/rtl/uncompressed/modules/popup.js
new file mode 100644
index 0000000..1a2cc95
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/popup.js
@@ -0,0 +1,857 @@
+/*
+ * # Semantic - Popup
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.popup = function(parameters) {
+ var
+ $allModules = $(this),
+ $document = $(document),
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.popup.settings, parameters)
+ : $.extend({}, $.fn.popup.settings),
+
+ selector = settings.selector,
+ className = settings.className,
+ error = settings.error,
+ metadata = settings.metadata,
+ namespace = settings.namespace,
+
+ eventNamespace = '.' + settings.namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $context = $(settings.context),
+ $target = (settings.target)
+ ? $(settings.target)
+ : $module,
+
+ $window = $(window),
+
+ $offsetParent = (settings.inline)
+ ? $target.offsetParent()
+ : $window,
+ $popup = (settings.inline)
+ ? $target.next(settings.selector.popup)
+ : $window.children(settings.selector.popup).last(),
+
+ searchDepth = 0,
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ // binds events
+ initialize: function() {
+ module.debug('Initializing module', $module);
+ if(settings.on == 'click') {
+ $module
+ .on('click', module.toggle)
+ ;
+ }
+ else {
+ $module
+ .on(module.get.startEvent() + eventNamespace, module.event.start)
+ .on(module.get.endEvent() + eventNamespace, module.event.end)
+ ;
+ }
+ if(settings.target) {
+ module.debug('Target set to element', $target);
+ }
+ $window
+ .on('resize' + eventNamespace, module.event.resize)
+ ;
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ refresh: function() {
+ if(settings.inline) {
+ $popup = $target.next(selector.popup);
+ $offsetParent = $target.offsetParent();
+ }
+ else {
+ $popup = $window.children(selector.popup).last();
+ }
+ },
+
+ destroy: function() {
+ module.debug('Destroying previous module');
+ $window
+ .off(eventNamespace)
+ ;
+ $popup
+ .remove()
+ ;
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ event: {
+ start: function(event) {
+ module.timer = setTimeout(function() {
+ if( module.is.hidden() ) {
+ module.show();
+ }
+ }, settings.delay);
+ },
+ end: function() {
+ clearTimeout(module.timer);
+ if( module.is.visible() ) {
+ module.hide();
+ }
+ },
+ resize: function() {
+ if( module.is.visible() ) {
+ module.set.position();
+ }
+ }
+ },
+
+ // generates popup html from metadata
+ create: function() {
+ module.debug('Creating pop-up html');
+ var
+ html = $module.data(metadata.html) || settings.html,
+ variation = $module.data(metadata.variation) || settings.variation,
+ title = $module.data(metadata.title) || settings.title,
+ content = $module.data(metadata.content) || $module.attr('title') || settings.content
+ ;
+ if(html || content || title) {
+ if(!html) {
+ html = settings.template({
+ title : title,
+ content : content
+ });
+ }
+ $popup = $('
')
+ .addClass(className.popup)
+ .addClass(variation)
+ .html(html)
+ ;
+ if(settings.inline) {
+ module.verbose('Inserting popup element inline', $popup);
+ $popup
+ .data(moduleNamespace, instance)
+ .insertAfter($module)
+ ;
+ }
+ else {
+ module.verbose('Appending popup element to body', $popup);
+ $popup
+ .data(moduleNamespace, instance)
+ .appendTo( $context )
+ ;
+ }
+ $.proxy(settings.onCreate, $popup)();
+ }
+ else {
+ module.error(error.content);
+ }
+ },
+
+ // determines popup state
+ toggle: function() {
+ module.debug('Toggling pop-up');
+ if( module.is.hidden() ) {
+ module.debug('Popup is hidden, showing pop-up');
+ module.unbind.close();
+ module.hideAll();
+ module.show();
+ }
+ else {
+ module.debug('Popup is visible, hiding pop-up');
+ module.hide();
+ }
+ },
+
+ show: function(callback) {
+ callback = callback || function(){};
+ module.debug('Showing pop-up', settings.transition);
+ if(!settings.preserve) {
+ module.refresh();
+ }
+ if( !module.exists() ) {
+ module.create();
+ }
+ module.save.conditions();
+ module.set.position();
+ module.animate.show(callback);
+ },
+
+
+ hide: function(callback) {
+ callback = callback || function(){};
+ $module
+ .removeClass(className.visible)
+ ;
+ module.restore.conditions();
+ module.unbind.close();
+ if( module.is.visible() ) {
+ module.animate.hide(callback);
+ }
+ },
+
+ hideAll: function() {
+ $(selector.popup)
+ .filter(':visible')
+ .popup('hide')
+ ;
+ },
+
+ hideGracefully: function(event) {
+ // don't close on clicks inside popup
+ if(event && $(event.target).closest(selector.popup).size() === 0) {
+ module.debug('Click occurred outside popup hiding popup');
+ module.hide();
+ }
+ else {
+ module.debug('Click was inside popup, keeping popup open');
+ }
+ },
+
+ exists: function() {
+ if(settings.inline) {
+ return ( $popup.size() !== 0 );
+ }
+ else {
+ return ( $popup.parent($context).size() );
+ }
+ },
+
+ remove: function() {
+ module.debug('Removing popup');
+ $popup
+ .remove()
+ ;
+ },
+
+ save: {
+ conditions: function() {
+ module.cache = {
+ title: $module.attr('title')
+ };
+ if (module.cache.title) {
+ $module.removeAttr('title');
+ }
+ module.verbose('Saving original attributes', module.cache.title);
+ }
+ },
+ restore: {
+ conditions: function() {
+ if(module.cache && module.cache.title) {
+ $module.attr('title', module.cache.title);
+ module.verbose('Restoring original attributes', module.cache.title);
+ }
+ return true;
+ }
+ },
+ animate: {
+ show: function(callback) {
+ callback = callback || function(){};
+ $module
+ .addClass(className.visible)
+ ;
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $popup
+ .transition(settings.transition + ' in', settings.duration, function() {
+ module.bind.close();
+ $.proxy(callback, element)();
+ })
+ ;
+ }
+ else {
+ $popup
+ .stop()
+ .fadeIn(settings.duration, settings.easing, function() {
+ module.bind.close();
+ $.proxy(callback, element)();
+ })
+ ;
+ }
+ $.proxy(settings.onShow, element)();
+ },
+ hide: function(callback) {
+ callback = callback || function(){};
+ module.debug('Hiding pop-up');
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $popup
+ .transition(settings.transition + ' out', settings.duration, function() {
+ module.reset();
+ callback();
+ })
+ ;
+ }
+ else {
+ $popup
+ .stop()
+ .fadeOut(settings.duration, settings.easing, function() {
+ module.reset();
+ callback();
+ })
+ ;
+ }
+ $.proxy(settings.onHide, element)();
+ }
+ },
+
+ get: {
+ startEvent: function() {
+ if(settings.on == 'hover') {
+ return 'mouseenter';
+ }
+ else if(settings.on == 'focus') {
+ return 'focus';
+ }
+ },
+ endEvent: function() {
+ if(settings.on == 'hover') {
+ return 'mouseleave';
+ }
+ else if(settings.on == 'focus') {
+ return 'blur';
+ }
+ },
+ offstagePosition: function() {
+ var
+ boundary = {
+ top : $(window).scrollTop(),
+ bottom : $(window).scrollTop() + $(window).height(),
+ left : 0,
+ right : $(window).width()
+ },
+ popup = {
+ width : $popup.width(),
+ height : $popup.outerHeight(),
+ position : $popup.offset()
+ },
+ offstage = {},
+ offstagePositions = []
+ ;
+ if(popup.position) {
+ offstage = {
+ top : (popup.position.top < boundary.top),
+ bottom : (popup.position.top + popup.height > boundary.bottom),
+ right : (popup.position.left + popup.width > boundary.right),
+ left : (popup.position.left < boundary.left)
+ };
+ }
+ module.verbose('Checking if outside viewable area', popup.position);
+ // return only boundaries that have been surpassed
+ $.each(offstage, function(direction, isOffstage) {
+ if(isOffstage) {
+ offstagePositions.push(direction);
+ }
+ });
+ return (offstagePositions.length > 0)
+ ? offstagePositions.join(' ')
+ : false
+ ;
+ },
+ nextPosition: function(position) {
+ switch(position) {
+ case 'top left':
+ position = 'bottom left';
+ break;
+ case 'bottom left':
+ position = 'top right';
+ break;
+ case 'top right':
+ position = 'bottom right';
+ break;
+ case 'bottom right':
+ position = 'top center';
+ break;
+ case 'top center':
+ position = 'bottom center';
+ break;
+ case 'bottom center':
+ position = 'right center';
+ break;
+ case 'right center':
+ position = 'left center';
+ break;
+ case 'left center':
+ position = 'top center';
+ break;
+ }
+ return position;
+ }
+ },
+
+ set: {
+ position: function(position, arrowOffset) {
+ var
+ windowWidth = $(window).width(),
+ windowHeight = $(window).height(),
+
+ width = $target.outerWidth(),
+ height = $target.outerHeight(),
+
+ popupWidth = $popup.width(),
+ popupHeight = $popup.outerHeight(),
+
+ parentWidth = $offsetParent.outerWidth(),
+ parentHeight = $offsetParent.outerHeight(),
+
+ distanceAway = settings.distanceAway,
+
+ offset = (settings.inline)
+ ? $target.position()
+ : $target.offset(),
+
+ positioning,
+ offstagePosition
+ ;
+ position = position || $module.data(metadata.position) || settings.position;
+ arrowOffset = arrowOffset || $module.data(metadata.offset) || settings.offset;
+ // adjust for margin when inline
+ if(settings.inline) {
+ if(position == 'left center' || position == 'right center') {
+ arrowOffset += parseInt( window.getComputedStyle(element).getPropertyValue('margin-top'), 10);
+ distanceAway += -parseInt( window.getComputedStyle(element).getPropertyValue('margin-left'), 10);
+ }
+ else {
+ arrowOffset += parseInt( window.getComputedStyle(element).getPropertyValue('margin-left'), 10);
+ distanceAway += parseInt( window.getComputedStyle(element).getPropertyValue('margin-top'), 10);
+ }
+ }
+ module.debug('Calculating offset for position', position);
+ switch(position) {
+ case 'top left':
+ positioning = {
+ bottom : parentHeight - offset.top + distanceAway,
+ right : parentWidth - offset.left - arrowOffset,
+ top : 'auto',
+ left : 'auto'
+ };
+ break;
+ case 'top center':
+ positioning = {
+ bottom : parentHeight - offset.top + distanceAway,
+ left : offset.left + (width / 2) - (popupWidth / 2) + arrowOffset,
+ top : 'auto',
+ right : 'auto'
+ };
+ break;
+ case 'top right':
+ positioning = {
+ top : 'auto',
+ bottom : parentHeight - offset.top + distanceAway,
+ left : offset.left + width + arrowOffset,
+ right : 'auto'
+ };
+ break;
+ case 'left center':
+ positioning = {
+ top : offset.top + (height / 2) - (popupHeight / 2) + arrowOffset,
+ right : parentWidth - offset.left + distanceAway,
+ left : 'auto',
+ bottom : 'auto'
+ };
+ break;
+ case 'right center':
+ positioning = {
+ top : offset.top + (height / 2) - (popupHeight / 2) + arrowOffset,
+ left : offset.left + width + distanceAway,
+ bottom : 'auto',
+ right : 'auto'
+ };
+ break;
+ case 'bottom left':
+ positioning = {
+ top : offset.top + height + distanceAway,
+ right : parentWidth - offset.left - arrowOffset,
+ left : 'auto',
+ bottom : 'auto'
+ };
+ break;
+ case 'bottom center':
+ positioning = {
+ top : offset.top + height + distanceAway,
+ left : offset.left + (width / 2) - (popupWidth / 2) + arrowOffset,
+ bottom : 'auto',
+ right : 'auto'
+ };
+ break;
+ case 'bottom right':
+ positioning = {
+ top : offset.top + height + distanceAway,
+ left : offset.left + width + arrowOffset,
+ bottom : 'auto',
+ right : 'auto'
+ };
+ break;
+ }
+ // tentatively place on stage
+ $popup
+ .css(positioning)
+ .removeClass(className.position)
+ .addClass(position)
+ .addClass(className.loading)
+ ;
+ // check if is offstage
+ offstagePosition = module.get.offstagePosition();
+
+ // recursively find new positioning
+ if(offstagePosition) {
+ module.debug('Element is outside boundaries', offstagePosition);
+ if(searchDepth < settings.maxSearchDepth) {
+ position = module.get.nextPosition(position);
+ searchDepth++;
+ module.debug('Trying new position', position);
+ return module.set.position(position);
+ }
+ else {
+ module.error(error.recursion);
+ searchDepth = 0;
+ module.reset();
+ $popup.removeClass(className.loading);
+ return false;
+ }
+ }
+ else {
+ module.debug('Position is on stage', position);
+ searchDepth = 0;
+ $popup.removeClass(className.loading);
+ return true;
+ }
+ }
+
+ },
+
+ bind: {
+ close:function() {
+ if(settings.on == 'click' && settings.closable) {
+ module.verbose('Binding popup close event to document');
+ $document
+ .on('click' + eventNamespace, function(event) {
+ module.verbose('Pop-up clickaway intent detected');
+ $.proxy(module.hideGracefully, this)(event);
+ })
+ ;
+ }
+ }
+ },
+
+ unbind: {
+ close: function() {
+ if(settings.on == 'click' && settings.closable) {
+ module.verbose('Removing close event from document');
+ $document
+ .off('click' + eventNamespace)
+ ;
+ }
+ }
+ },
+
+ is: {
+ animating: function() {
+ return ( $popup.is(':animated') || $popup.hasClass(className.animating) );
+ },
+ visible: function() {
+ return $popup.is(':visible');
+ },
+ hidden: function() {
+ return !module.is.visible();
+ }
+ },
+
+ reset: function() {
+ $popup
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ if(!settings.preserve) {
+ module.remove();
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.popup.settings = {
+
+ name : 'Popup',
+ debug : false,
+ verbose : true,
+ performance : true,
+ namespace : 'popup',
+
+ onCreate : function(){},
+ onShow : function(){},
+ onHide : function(){},
+
+ variation : '',
+ content : false,
+ html : false,
+ title : false,
+
+ on : 'hover',
+ target : false,
+ closable : true,
+
+ context : 'body',
+ position : 'top center',
+ delay : 150,
+ inline : false,
+ preserve : false,
+
+ duration : 250,
+ easing : 'easeOutQuint',
+ transition : 'scale',
+
+ distanceAway : 0,
+ offset : 0,
+ maxSearchDepth : 10,
+
+ error: {
+ content : 'Your popup has no content specified',
+ method : 'The method you called is not defined.',
+ recursion : 'Popup attempted to reposition element to fit, but could not find an adequate position.'
+ },
+
+ metadata: {
+ content : 'content',
+ html : 'html',
+ offset : 'offset',
+ position : 'position',
+ title : 'title',
+ variation : 'variation'
+ },
+
+ className : {
+ animating : 'animating',
+ loading : 'loading',
+ popup : 'ui popup',
+ position : 'top left center bottom right',
+ visible : 'visible'
+ },
+
+ selector : {
+ popup : '.ui.popup'
+ },
+
+ template: function(text) {
+ var html = '';
+ if(typeof text !== undefined) {
+ if(typeof text.title !== undefined && text.title) {
+ html += '';
+ }
+ if(typeof text.content !== undefined && text.content) {
+ html += '
' + text.content + '
';
+ }
+ }
+ return html;
+ }
+
+};
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/uncompressed/modules/rating.css b/css/semantic/rtl/uncompressed/modules/rating.css
new file mode 100644
index 0000000..1b29223
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/rating.css
@@ -0,0 +1,167 @@
+/*
+ * # Semantic - Rating
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Rating
+*******************************/
+
+.ui.rating {
+ display: inline-block;
+ font-size: 0em;
+ vertical-align: middle;
+ margin: 0em 0em 0em 0.5rem;
+}
+
+.ui.rating:last-child {
+ margin-left: 0em;
+}
+
+.ui.rating:before {
+ display: block;
+ content: '';
+ visibility: hidden;
+ clear: both;
+ height: 0;
+}
+
+/* Icon */
+
+.ui.rating .icon {
+ cursor: pointer;
+ margin: 0em;
+ width: 1em;
+ height: auto;
+ padding: 0em;
+ color: rgba(0, 0, 0, 0.15);
+ font-weight: normal;
+ font-style: normal;
+}
+
+.ui.rating .icon:before {
+ content: "\2605";
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Star
+--------------------*/
+
+.ui.star.rating .icon {
+ width: 1.2em;
+}
+
+/* Star */
+
+.ui.star.rating .icon:before {
+ content: '\f006';
+ font-family: 'Icons';
+}
+
+/* Active Star */
+
+.ui.star.rating .active.icon:before {
+ content: '\f005';
+ font-family: 'Icons';
+}
+
+/*-------------------
+ Heart
+--------------------*/
+
+.ui.heart.rating .icon {
+ width: 1.2em;
+}
+
+.ui.heart.rating .icon:before {
+ content: '\f08a';
+ font-family: 'Icons';
+}
+
+/* Active */
+
+.ui.heart.rating .active.icon:before {
+ content: '\f004';
+ font-family: 'Icons';
+}
+
+.ui.heart.rating .active.icon {
+ color: #EF404A !important;
+}
+
+/* Hovered */
+
+.ui.heart.rating .hover.icon,
+.ui.heart.rating .active.hover.icon {
+ color: #FF2733 !important;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*-------------------
+ Active
+--------------------*/
+
+/* disabled rating */
+
+.ui.disabled.rating .icon {
+ cursor: default;
+}
+
+/* active icons */
+
+.ui.rating .active.icon {
+ color: #FFCB08 !important;
+}
+
+/*-------------------
+ Hover
+--------------------*/
+
+/* rating */
+
+.ui.rating.hover .active.icon {
+ opacity: 0.5;
+}
+
+/* icon */
+
+.ui.rating .icon.hover,
+.ui.rating .icon.hover.active {
+ opacity: 1;
+ color: #FFB70A !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.small.rating .icon {
+ font-size: 0.75rem;
+}
+
+.ui.rating .icon {
+ font-size: 1rem;
+}
+
+.ui.large.rating .icon {
+ font-size: 1.5rem;
+ vertical-align: middle;
+}
+
+.ui.huge.rating .icon {
+ font-size: 2rem;
+ vertical-align: middle;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/modules/rating.js b/css/semantic/rtl/uncompressed/modules/rating.js
new file mode 100644
index 0000000..4399c10
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/rating.js
@@ -0,0 +1,407 @@
+/*
+ * # Semantic - Rating
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.rating = function(parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.rating.settings, parameters)
+ : $.extend({}, $.fn.rating.settings),
+
+ namespace = settings.namespace,
+ className = settings.className,
+ metadata = settings.metadata,
+ selector = settings.selector,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ element = this,
+ instance = $(this).data(moduleNamespace),
+
+ $module = $(this),
+ $icon = $module.find(selector.icon),
+
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing rating module', settings);
+
+ if(settings.interactive) {
+ module.enable();
+ }
+ else {
+ module.disable();
+ }
+
+ if(settings.initialRating) {
+ module.debug('Setting initial rating');
+ module.setRating(settings.initialRating);
+ }
+ if( $module.data(metadata.rating) ) {
+ module.debug('Rating found in metadata');
+ module.setRating( $module.data(metadata.rating) );
+ }
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Instantiating module', settings);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous instance', instance);
+ $module
+ .removeData(moduleNamespace)
+ ;
+ $icon
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+ mouseenter: function() {
+ var
+ $activeIcon = $(this)
+ ;
+ $activeIcon
+ .nextAll()
+ .removeClass(className.hover)
+ ;
+ $module
+ .addClass(className.hover)
+ ;
+ $activeIcon
+ .addClass(className.hover)
+ .prevAll()
+ .addClass(className.hover)
+ ;
+ },
+ mouseleave: function() {
+ $module
+ .removeClass(className.hover)
+ ;
+ $icon
+ .removeClass(className.hover)
+ ;
+ },
+ click: function() {
+ var
+ $activeIcon = $(this),
+ currentRating = module.getRating(),
+ rating = $icon.index($activeIcon) + 1
+ ;
+ if(settings.clearable && currentRating == rating) {
+ module.clearRating();
+ }
+ else {
+ module.setRating( rating );
+ }
+ }
+ },
+
+ clearRating: function() {
+ module.debug('Clearing current rating');
+ module.setRating(0);
+ },
+
+ getRating: function() {
+ var
+ currentRating = $icon.filter('.' + className.active).size()
+ ;
+ module.verbose('Current rating retrieved', currentRating);
+ return currentRating;
+ },
+
+ enable: function() {
+ module.debug('Setting rating to interactive mode');
+ $icon
+ .on('mouseenter' + eventNamespace, module.event.mouseenter)
+ .on('mouseleave' + eventNamespace, module.event.mouseleave)
+ .on('click' + eventNamespace, module.event.click)
+ ;
+ $module
+ .removeClass(className.disabled)
+ ;
+ },
+
+ disable: function() {
+ module.debug('Setting rating to read-only mode');
+ $icon
+ .off(eventNamespace)
+ ;
+ $module
+ .addClass(className.disabled)
+ ;
+ },
+
+ setRating: function(rating) {
+ var
+ ratingIndex = (rating - 1 >= 0)
+ ? (rating - 1)
+ : 0,
+ $activeIcon = $icon.eq(ratingIndex)
+ ;
+ $module
+ .removeClass(className.hover)
+ ;
+ $icon
+ .removeClass(className.hover)
+ .removeClass(className.active)
+ ;
+ if(rating > 0) {
+ module.verbose('Setting current rating to', rating);
+ $activeIcon
+ .addClass(className.active)
+ .prevAll()
+ .addClass(className.active)
+ ;
+ }
+ $.proxy(settings.onRate, element)(rating);
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.rating.settings = {
+
+ name : 'Rating',
+ namespace : 'rating',
+
+ verbose : true,
+ debug : false,
+ performance : true,
+
+ initialRating : 0,
+ interactive : true,
+ clearable : false,
+
+ onRate : function(rating){},
+
+ error : {
+ method : 'The method you called is not defined'
+ },
+
+ metadata: {
+ rating: 'rating'
+ },
+
+ className : {
+ active : 'active',
+ disabled : 'disabled',
+ hover : 'hover',
+ loading : 'loading'
+ },
+
+ selector : {
+ icon : '.icon'
+ }
+
+};
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/uncompressed/modules/search.css b/css/semantic/rtl/uncompressed/modules/search.css
new file mode 100644
index 0000000..793d94a
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/search.css
@@ -0,0 +1,255 @@
+/*
+ * # Semantic - Search
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Search
+*******************************/
+
+.ui.search {
+ position: relative;
+ text-shadow: none;
+ font-style: normal;
+ font-weight: normal;
+}
+
+.ui.search input {
+ border-radius: 500rem;
+}
+
+/*--------------
+ Button
+---------------*/
+
+.ui.search > .button {
+ position: relative;
+ z-index: 2;
+ float: left;
+ margin: 0px -15px 0px 0px;
+ padding: 6px 15px 7px;
+ border-radius: 15px 0px 0px 15px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+/*--------------
+ Results
+---------------*/
+
+.ui.search .results {
+ display: none;
+ position: absolute;
+ z-index: 999;
+ top: 100%;
+ right: 0px;
+ overflow: hidden;
+ background-color: #FFFFFF;
+ margin-top: 0.5em;
+ width: 380px;
+ font-size: 0.875em;
+ line-height: 1.2;
+ color: #555555;
+ border-radius: 3px;
+ -webkit-box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1), 0px -2px 0px 0px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.1), 0px -2px 0px 0px rgba(0, 0, 0, 0.1) inset;
+}
+
+.ui.search .result {
+ cursor: pointer;
+ overflow: hidden;
+ padding: 0.5em 1em;
+}
+
+.ui.search .result:first-child {
+ border-top: none;
+}
+
+.ui.search .result .image {
+ background: #F0F0F0;
+ margin-left: 10px;
+ float: right;
+ overflow: hidden;
+ border-radius: 3px;
+ width: 38px;
+ height: 38px;
+}
+
+.ui.search .result .image img {
+ display: block;
+ width: 38px;
+ height: 38px;
+}
+
+.ui.search .result .image ~ .info {
+ float: none;
+ margin-right: 50px;
+}
+
+.ui.search .result .info {
+ float: right;
+}
+
+.ui.search .result .title {
+ font-weight: bold;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.search .result .description {
+ color: rgba(0, 0, 0, 0.6);
+}
+
+.ui.search .result .price {
+ float: left;
+ color: #5BBD72;
+ font-weight: bold;
+}
+
+/*--------------
+ Message
+---------------*/
+
+.ui.search .message {
+ padding: 1em;
+}
+
+.ui.search .message .text .title {
+ margin: 0em 0em 0.5rem;
+ font-size: 1.25rem;
+ font-weight: bold;
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.search .message .text .description {
+ margin: 0em;
+ font-size: 1rem;
+ color: rgba(0, 0, 0, 0.5);
+}
+
+/*--------------
+ Categories
+---------------*/
+
+.ui.search .results .category {
+ background-color: #FAFAFA;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ -webkit-transition: background 0.2s ease-in;
+ -moz-transition: background 0.2s ease-in;
+ transition: background 0.2s ease-in;
+}
+
+.ui.search .results .category:first-child {
+ border-top: none;
+}
+
+.ui.search .results .category > .name {
+ float: right;
+ padding: 12px 8px 0px 0px;
+ font-weight: bold;
+ color: #777777;
+ text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.8);
+}
+
+.ui.search .results .category .result {
+ background-color: #FFFFFF;
+ margin-right: 80px;
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* View All Results */
+
+.ui.search .all {
+ display: block;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ background-color: #FAFAFA;
+ height: 2em;
+ line-height: 2em;
+ color: rgba(0, 0, 0, 0.6);
+ font-weight: bold;
+ text-align: center;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.search .result:hover,
+.ui.search .category .result:hover {
+ background-color: #F8F8F8;
+}
+
+.ui.search .all:hover {
+ background-color: #F0F0F0;
+}
+
+/*--------------
+ Loading
+---------------*/
+
+.ui.search.loading .input .icon {
+ background: url(../images/loader-mini.gif) no-repeat 50% 50%;
+}
+
+.ui.search.loading .input .icon:before,
+.ui.search.loading .input .icon:after {
+ display: none;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.search .results .category.active {
+ background-color: #F1F1F1;
+}
+
+.ui.search .results .category.active > .name {
+ color: #333333;
+}
+
+.ui.search .result.active,
+.ui.search .category .result.active {
+ background-color: #FBFBFB;
+}
+
+.ui.search .result.active .title {
+ color: #000000;
+}
+
+.ui.search .result.active .description {
+ color: #555555;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/* Large */
+
+.ui.search .large.result .image,
+.ui.search .large.result .image img {
+ width: 50px;
+ height: 50px;
+}
+
+.ui.search .large.results .indented.info {
+ margin-right: 65px;
+}
+
+.ui.search .large.results .info .title {
+ font-size: 16px;
+}
+
+.ui.search .large.results .info .description {
+ font-size: 11px;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/modules/search.js b/css/semantic/rtl/uncompressed/modules/search.js
new file mode 100644
index 0000000..1d7f7a0
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/search.js
@@ -0,0 +1,766 @@
+/*
+ * # Semantic - Search
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+$.fn.search = function(source, parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $(this)
+ .each(function() {
+ var
+ settings = $.extend(true, {}, $.fn.search.settings, parameters),
+
+ className = settings.className,
+ selector = settings.selector,
+ error = settings.error,
+ namespace = settings.namespace,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = namespace + '-module',
+
+ $module = $(this),
+ $prompt = $module.find(selector.prompt),
+ $searchButton = $module.find(selector.searchButton),
+ $results = $module.find(selector.results),
+ $result = $module.find(selector.result),
+ $category = $module.find(selector.category),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+
+ module
+ ;
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing module');
+ var
+ prompt = $prompt[0],
+ inputEvent = (prompt.oninput !== undefined)
+ ? 'input'
+ : (prompt.onpropertychange !== undefined)
+ ? 'propertychange'
+ : 'keyup'
+ ;
+ // attach events
+ $prompt
+ .on('focus' + eventNamespace, module.event.focus)
+ .on('blur' + eventNamespace, module.event.blur)
+ .on('keydown' + eventNamespace, module.handleKeyboard)
+ ;
+ if(settings.automatic) {
+ $prompt
+ .on(inputEvent + eventNamespace, module.search.throttle)
+ ;
+ }
+ $searchButton
+ .on('click' + eventNamespace, module.search.query)
+ ;
+ $results
+ .on('click' + eventNamespace, selector.result, module.results.select)
+ ;
+ module.instantiate();
+ },
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+ destroy: function() {
+ module.verbose('Destroying instance');
+ $module
+ .removeData(moduleNamespace)
+ ;
+ },
+ event: {
+ focus: function() {
+ $module
+ .addClass(className.focus)
+ ;
+ module.results.show();
+ },
+ blur: function() {
+ module.search.cancel();
+ $module
+ .removeClass(className.focus)
+ ;
+ module.results.hide();
+ }
+ },
+ handleKeyboard: function(event) {
+ var
+ // force latest jq dom
+ $result = $module.find(selector.result),
+ $category = $module.find(selector.category),
+ keyCode = event.which,
+ keys = {
+ backspace : 8,
+ enter : 13,
+ escape : 27,
+ upArrow : 38,
+ downArrow : 40
+ },
+ activeClass = className.active,
+ currentIndex = $result.index( $result.filter('.' + activeClass) ),
+ resultSize = $result.size(),
+ newIndex
+ ;
+ // search shortcuts
+ if(keyCode == keys.escape) {
+ module.verbose('Escape key pressed, blurring search field');
+ $prompt
+ .trigger('blur')
+ ;
+ }
+ // result shortcuts
+ if($results.filter(':visible').size() > 0) {
+ if(keyCode == keys.enter) {
+ module.verbose('Enter key pressed, selecting active result');
+ if( $result.filter('.' + activeClass).exists() ) {
+ $.proxy(module.results.select, $result.filter('.' + activeClass) )();
+ event.preventDefault();
+ return false;
+ }
+ }
+ else if(keyCode == keys.upArrow) {
+ module.verbose('Up key pressed, changing active result');
+ newIndex = (currentIndex - 1 < 0)
+ ? currentIndex
+ : currentIndex - 1
+ ;
+ $category
+ .removeClass(activeClass)
+ ;
+ $result
+ .removeClass(activeClass)
+ .eq(newIndex)
+ .addClass(activeClass)
+ .closest($category)
+ .addClass(activeClass)
+ ;
+ event.preventDefault();
+ }
+ else if(keyCode == keys.downArrow) {
+ module.verbose('Down key pressed, changing active result');
+ newIndex = (currentIndex + 1 >= resultSize)
+ ? currentIndex
+ : currentIndex + 1
+ ;
+ $category
+ .removeClass(activeClass)
+ ;
+ $result
+ .removeClass(activeClass)
+ .eq(newIndex)
+ .addClass(activeClass)
+ .closest($category)
+ .addClass(activeClass)
+ ;
+ event.preventDefault();
+ }
+ }
+ else {
+ // query shortcuts
+ if(keyCode == keys.enter) {
+ module.verbose('Enter key pressed, executing query');
+ module.search.query();
+ $searchButton
+ .addClass(className.down)
+ ;
+ $prompt
+ .one('keyup', function(){
+ $searchButton
+ .removeClass(className.down)
+ ;
+ })
+ ;
+ }
+ }
+ },
+ search: {
+ cancel: function() {
+ var
+ xhr = $module.data('xhr') || false
+ ;
+ if( xhr && xhr.state() != 'resolved') {
+ module.debug('Cancelling last search');
+ xhr.abort();
+ }
+ },
+ throttle: function() {
+ var
+ searchTerm = $prompt.val(),
+ numCharacters = searchTerm.length
+ ;
+ clearTimeout(module.timer);
+ if(numCharacters >= settings.minCharacters) {
+ module.timer = setTimeout(module.search.query, settings.searchThrottle);
+ }
+ else {
+ module.results.hide();
+ }
+ },
+ query: function() {
+ var
+ searchTerm = $prompt.val(),
+ cachedHTML = module.search.cache.read(searchTerm)
+ ;
+ if(cachedHTML) {
+ module.debug("Reading result for '" + searchTerm + "' from cache");
+ module.results.add(cachedHTML);
+ }
+ else {
+ module.debug("Querying for '" + searchTerm + "'");
+ if(typeof source == 'object') {
+ module.search.local(searchTerm);
+ }
+ else {
+ module.search.remote(searchTerm);
+ }
+ $.proxy(settings.onSearchQuery, $module)(searchTerm);
+ }
+ },
+ local: function(searchTerm) {
+ var
+ results = [],
+ fullTextResults = [],
+ searchFields = $.isArray(settings.searchFields)
+ ? settings.searchFields
+ : [settings.searchFields],
+
+ searchRegExp = new RegExp('(?:\s|^)' + searchTerm, 'i'),
+ fullTextRegExp = new RegExp(searchTerm, 'i'),
+ searchHTML
+ ;
+ $module
+ .addClass(className.loading)
+ ;
+ // iterate through search fields in array order
+ $.each(searchFields, function(index, field) {
+ $.each(source, function(label, thing) {
+ if(typeof thing[field] == 'string' && ($.inArray(thing, results) == -1) && ($.inArray(thing, fullTextResults) == -1) ) {
+ if( searchRegExp.test( thing[field] ) ) {
+ results.push(thing);
+ }
+ else if( fullTextRegExp.test( thing[field] ) ) {
+ fullTextResults.push(thing);
+ }
+ }
+ });
+ });
+ searchHTML = module.results.generate({
+ results: $.merge(results, fullTextResults)
+ });
+ $module
+ .removeClass(className.loading)
+ ;
+ module.search.cache.write(searchTerm, searchHTML);
+ module.results.add(searchHTML);
+ },
+ remote: function(searchTerm) {
+ var
+ apiSettings = {
+ stateContext : $module,
+ url : source,
+ urlData: { query: searchTerm },
+ success : function(response) {
+ searchHTML = module.results.generate(response);
+ module.search.cache.write(searchTerm, searchHTML);
+ module.results.add(searchHTML);
+ },
+ failure : module.error
+ },
+ searchHTML
+ ;
+ module.search.cancel();
+ module.debug('Executing search');
+ $.extend(true, apiSettings, settings.apiSettings);
+ $.api(apiSettings);
+ },
+
+ cache: {
+ read: function(name) {
+ var
+ cache = $module.data('cache')
+ ;
+ return (settings.cache && (typeof cache == 'object') && (cache[name] !== undefined) )
+ ? cache[name]
+ : false
+ ;
+ },
+ write: function(name, value) {
+ var
+ cache = ($module.data('cache') !== undefined)
+ ? $module.data('cache')
+ : {}
+ ;
+ cache[name] = value;
+ $module
+ .data('cache', cache)
+ ;
+ }
+ }
+ },
+
+ results: {
+ generate: function(response) {
+ module.debug('Generating html from response', response);
+ var
+ template = settings.templates[settings.type],
+ html = ''
+ ;
+ if(($.isPlainObject(response.results) && !$.isEmptyObject(response.results)) || ($.isArray(response.results) && response.results.length > 0) ) {
+ if(settings.maxResults > 0) {
+ response.results = $.makeArray(response.results).slice(0, settings.maxResults);
+ }
+ if(response.results.length > 0) {
+ if($.isFunction(template)) {
+ html = template(response);
+ }
+ else {
+ module.error(error.noTemplate, false);
+ }
+ }
+ }
+ else {
+ html = module.message(error.noResults, 'empty');
+ }
+ $.proxy(settings.onResults, $module)(response);
+ return html;
+ },
+ add: function(html) {
+ if(settings.onResultsAdd == 'default' || $.proxy(settings.onResultsAdd, $results)(html) == 'default') {
+ $results
+ .html(html)
+ ;
+ }
+ module.results.show();
+ },
+ show: function() {
+ if( ($results.filter(':visible').size() === 0) && ($prompt.filter(':focus').size() > 0) && $results.html() !== '') {
+ $results
+ .stop()
+ .fadeIn(200)
+ ;
+ $.proxy(settings.onResultsOpen, $results)();
+ }
+ },
+ hide: function() {
+ if($results.filter(':visible').size() > 0) {
+ $results
+ .stop()
+ .fadeOut(200)
+ ;
+ $.proxy(settings.onResultsClose, $results)();
+ }
+ },
+ select: function(event) {
+ module.debug('Search result selected');
+ var
+ $result = $(this),
+ $title = $result.find('.title'),
+ title = $title.html()
+ ;
+ if(settings.onSelect == 'default' || $.proxy(settings.onSelect, this)(event) == 'default') {
+ var
+ $link = $result.find('a[href]').eq(0),
+ href = $link.attr('href') || false,
+ target = $link.attr('target') || false
+ ;
+ module.results.hide();
+ $prompt
+ .val(title)
+ ;
+ if(href) {
+ if(target == '_blank' || event.ctrlKey) {
+ window.open(href);
+ }
+ else {
+ window.location.href = (href);
+ }
+ }
+ }
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.search.settings = {
+
+ name : 'Search Module',
+ namespace : 'search',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ // onSelect default action is defined in module
+ onSelect : 'default',
+ onResultsAdd : 'default',
+
+ onSearchQuery : function(){},
+ onResults : function(response){},
+
+ onResultsOpen : function(){},
+ onResultsClose : function(){},
+
+ automatic : 'true',
+ type : 'simple',
+ minCharacters : 3,
+ searchThrottle : 300,
+ maxResults : 7,
+ cache : true,
+
+ searchFields : [
+ 'title',
+ 'description'
+ ],
+
+ // api config
+ apiSettings: {
+
+ },
+
+ className: {
+ active : 'active',
+ down : 'down',
+ focus : 'focus',
+ empty : 'empty',
+ loading : 'loading'
+ },
+
+ error : {
+ noResults : 'Your search returned no results',
+ logging : 'Error in debug logging, exiting.',
+ noTemplate : 'A valid template name was not specified.',
+ serverError : 'There was an issue with querying the server.',
+ method : 'The method you called is not defined.'
+ },
+
+ selector : {
+ prompt : '.prompt',
+ searchButton : '.search.button',
+ results : '.results',
+ category : '.category',
+ result : '.result'
+ },
+
+ templates: {
+ message: function(message, type) {
+ var
+ html = ''
+ ;
+ if(message !== undefined && type !== undefined) {
+ html += ''
+ + '
'
+ ;
+ // message type
+ if(type == 'empty') {
+ html += ''
+ + ''
+ + '
' + message + '
'
+ ;
+ }
+ else {
+ html += '
' + message + '
';
+ }
+ html += '
';
+ }
+ return html;
+ },
+ categories: function(response) {
+ var
+ html = ''
+ ;
+ if(response.results !== undefined) {
+ // each category
+ $.each(response.results, function(index, category) {
+ if(category.results !== undefined && category.results.length > 0) {
+ html += ''
+ + '
'
+ + '
' + category.name + '
'
+ ;
+ // each item inside category
+ $.each(category.results, function(index, result) {
+ html += '
';
+ html += '
';
+ if(result.image !== undefined) {
+ html+= ''
+ + '
'
+ + '
'
+ + '
'
+ ;
+ }
+ html += '
';
+ if(result.price !== undefined) {
+ html+= '
' + result.price + '
';
+ }
+ if(result.title !== undefined) {
+ html+= '
' + result.title + '
';
+ }
+ if(result.description !== undefined) {
+ html+= '
' + result.description + '
';
+ }
+ html += ''
+ + '
'
+ + '
'
+ ;
+ });
+ html += ''
+ + '
'
+ ;
+ }
+ });
+ if(response.resultPage) {
+ html += ''
+ + '
'
+ + response.resultPage.text
+ + ' ';
+ }
+ return html;
+ }
+ return false;
+ },
+ simple: function(response) {
+ var
+ html = ''
+ ;
+ if(response.results !== undefined) {
+
+ // each result
+ $.each(response.results, function(index, result) {
+ html += '
';
+ if(result.image !== undefined) {
+ html+= ''
+ + ''
+ + '
'
+ + '
'
+ ;
+ }
+ html += '';
+ if(result.price !== undefined) {
+ html+= '
' + result.price + '
';
+ }
+ if(result.title !== undefined) {
+ html+= '
' + result.title + '
';
+ }
+ if(result.description !== undefined) {
+ html+= '
' + result.description + '
';
+ }
+ html += ''
+ + '
'
+ + ' '
+ ;
+ });
+
+ if(response.resultPage) {
+ html += ''
+ + '
'
+ + response.resultPage.text
+ + ' ';
+ }
+ return html;
+ }
+ return false;
+ }
+ }
+};
+
+})( jQuery, window , document );
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/modules/shape.css b/css/semantic/rtl/uncompressed/modules/shape.css
new file mode 100644
index 0000000..9f5089b
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/shape.css
@@ -0,0 +1,162 @@
+/*
+ * # Semantic - Shape
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Shape
+*******************************/
+
+.ui.shape {
+ display: inline-block;
+ position: relative;
+ -webkit-perspective: 2000px;
+ -moz-perspective: 2000px;
+ -ms-perspective: 2000px;
+ perspective: 2000px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.shape .sides {
+ -webkit-transform-style: preserve-3d;
+ -moz-transform-style: preserve-3d;
+ -ms-transform-style: preserve-3d;
+ transform-style: preserve-3d;
+}
+
+.ui.shape .side {
+ opacity: 1;
+ width: 100%;
+ margin: 0em !important;
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ -ms-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.ui.shape .side {
+ display: none;
+}
+
+/*******************************
+ Types
+*******************************/
+
+.ui.cube.shape .side {
+ min-width: 15em;
+ height: 15em;
+ padding: 2em;
+ background-color: #E6E6E6;
+ color: rgba(0, 0, 0, 0.6);
+ -webkit-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.3);
+ box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.3);
+}
+
+.ui.cube.shape .side > .content {
+ width: 100%;
+ height: 100%;
+ display: table;
+ text-align: center;
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ -ms-user-select: text;
+ user-select: text;
+}
+
+.ui.cube.shape .side > .content > div {
+ display: table-cell;
+ vertical-align: middle;
+ font-size: 2em;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.text.shape.animating .sides {
+ position: static;
+}
+
+.ui.text.shape .side {
+ white-space: nowrap;
+}
+
+.ui.text.shape .side > * {
+ white-space: normal;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Loading
+---------------*/
+
+.ui.loading.shape {
+ position: absolute;
+ top: -9999px;
+ right: -9999px;
+}
+
+/*--------------
+ Animating
+---------------*/
+
+.ui.shape .animating.side {
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ z-index: 100;
+}
+
+.ui.shape .hidden.side {
+ opacity: 0.4;
+}
+
+/*--------------
+ CSS
+---------------*/
+
+.ui.shape.animating {
+ -webkit-transition: all 0.6s ease-in-out;
+ -moz-transition: all 0.6s ease-in-out;
+ transition: all 0.6s ease-in-out;
+}
+
+.ui.shape.animating .sides {
+ position: absolute;
+}
+
+.ui.shape.animating .sides {
+ -webkit-transition: all 0.6s ease-in-out;
+ -moz-transition: all 0.6s ease-in-out;
+ transition: all 0.6s ease-in-out;
+}
+
+.ui.shape.animating .side {
+ -webkit-transition: opacity 0.6s ease-in-out;
+ -moz-transition: opacity 0.6s ease-in-out;
+ transition: opacity 0.6s ease-in-out;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.shape .active.side {
+ display: block;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/modules/shape.js b/css/semantic/rtl/uncompressed/modules/shape.js
new file mode 100644
index 0000000..b1d8bef
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/shape.js
@@ -0,0 +1,787 @@
+/*
+ * # Semantic - Shape
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.shape = function(parameters) {
+ var
+ $allModules = $(this),
+ $body = $('body'),
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ moduleSelector = $allModules.selector || '',
+ settings = $.extend(true, {}, $.fn.shape.settings, parameters),
+
+ // internal aliases
+ namespace = settings.namespace,
+ selector = settings.selector,
+ error = settings.error,
+ className = settings.className,
+
+ // define namespaces for modules
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ // selector cache
+ $module = $(this),
+ $sides = $module.find(selector.sides),
+ $side = $module.find(selector.side),
+
+ // private variables
+ nextSelector = false,
+ $activeSide,
+ $nextSide,
+
+ // standard module
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing module for', element);
+ module.set.defaultSide();
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module for', element);
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing selector cache for', element);
+ $module = $(element);
+ $sides = $(this).find(selector.shape);
+ $side = $(this).find(selector.side);
+ },
+
+ repaint: function() {
+ module.verbose('Forcing repaint event');
+ var
+ shape = $sides.get(0) || document.createElement('div'),
+ fakeAssignment = shape.offsetWidth
+ ;
+ },
+
+ animate: function(propertyObject, callback) {
+ module.verbose('Animating box with properties', propertyObject);
+ callback = callback || function(event) {
+ module.verbose('Executing animation callback');
+ if(event !== undefined) {
+ event.stopPropagation();
+ }
+ module.reset();
+ module.set.active();
+ };
+ $.proxy(settings.beforeChange, $nextSide[0])();
+ if(module.get.transitionEvent()) {
+ module.verbose('Starting CSS animation');
+ $module
+ .addClass(className.animating)
+ ;
+ module.repaint();
+ $module
+ .addClass(className.animating)
+ ;
+ $activeSide
+ .addClass(className.hidden)
+ ;
+ $sides
+ .css(propertyObject)
+ .one(module.get.transitionEvent(), callback)
+ ;
+ module.set.duration(settings.duration);
+ }
+ else {
+ callback();
+ }
+ },
+
+ queue: function(method) {
+ module.debug('Queueing animation of', method);
+ $sides
+ .one(module.get.transitionEvent(), function() {
+ module.debug('Executing queued animation');
+ setTimeout(function(){
+ $module.shape(method);
+ }, 0);
+ })
+ ;
+ },
+
+ reset: function() {
+ module.verbose('Animating states reset');
+ $module
+ .removeClass(className.animating)
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ // removeAttr style does not consistently work in safari
+ $sides
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ $side
+ .attr('style', '')
+ .removeAttr('style')
+ .removeClass(className.hidden)
+ ;
+ $nextSide
+ .removeClass(className.animating)
+ .attr('style', '')
+ .removeAttr('style')
+ ;
+ },
+
+ is: {
+ animating: function() {
+ return $module.hasClass(className.animating);
+ }
+ },
+
+ set: {
+
+ defaultSide: function() {
+ $activeSide = $module.find('.' + settings.className.active);
+ $nextSide = ( $activeSide.next(selector.side).size() > 0 )
+ ? $activeSide.next(selector.side)
+ : $module.find(selector.side).first()
+ ;
+ nextSelector = false;
+ module.verbose('Active side set to', $activeSide);
+ module.verbose('Next side set to', $nextSide);
+ },
+
+ duration: function(duration) {
+ duration = duration || settings.duration;
+ duration = (typeof duration == 'number')
+ ? duration + 'ms'
+ : duration
+ ;
+ module.verbose('Setting animation duration', duration);
+ $sides.add($side)
+ .css({
+ '-webkit-transition-duration': duration,
+ '-moz-transition-duration': duration,
+ '-ms-transition-duration': duration,
+ '-o-transition-duration': duration,
+ 'transition-duration': duration
+ })
+ ;
+ },
+
+ stageSize: function() {
+ var
+ $clone = $module.clone().addClass(className.loading),
+ $activeSide = $clone.find('.' + settings.className.active),
+ $nextSide = (nextSelector)
+ ? $clone.find(nextSelector)
+ : ( $activeSide.next(selector.side).size() > 0 )
+ ? $activeSide.next(selector.side)
+ : $clone.find(selector.side).first(),
+ newSize = {}
+ ;
+ $activeSide.removeClass(className.active);
+ $nextSide.addClass(className.active);
+ $clone.prependTo($body);
+ newSize = {
+ width : $nextSide.outerWidth(),
+ height : $nextSide.outerHeight()
+ };
+ $clone.remove();
+ $module
+ .css(newSize)
+ ;
+ module.verbose('Resizing stage to fit new content', newSize);
+ },
+
+ nextSide: function(selector) {
+ nextSelector = selector;
+ $nextSide = $module.find(selector);
+ if($nextSide.size() === 0) {
+ module.error(error.side);
+ }
+ module.verbose('Next side manually set to', $nextSide);
+ },
+
+ active: function() {
+ module.verbose('Setting new side to active', $nextSide);
+ $side
+ .removeClass(className.active)
+ ;
+ $nextSide
+ .addClass(className.active)
+ ;
+ $.proxy(settings.onChange, $nextSide[0])();
+ module.set.defaultSide();
+ }
+ },
+
+ flip: {
+
+ up: function() {
+ module.debug('Flipping up', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.above();
+ module.animate( module.get.transform.up() );
+ }
+ else {
+ module.queue('flip up');
+ }
+ },
+
+ down: function() {
+ module.debug('Flipping down', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.below();
+ module.animate( module.get.transform.down() );
+ }
+ else {
+ module.queue('flip down');
+ }
+ },
+
+ left: function() {
+ module.debug('Flipping left', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.left();
+ module.animate(module.get.transform.left() );
+ }
+ else {
+ module.queue('flip left');
+ }
+ },
+
+ right: function() {
+ module.debug('Flipping right', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.right();
+ module.animate(module.get.transform.right() );
+ }
+ else {
+ module.queue('flip right');
+ }
+ },
+
+ over: function() {
+ module.debug('Flipping over', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.behind();
+ module.animate(module.get.transform.over() );
+ }
+ else {
+ module.queue('flip over');
+ }
+ },
+
+ back: function() {
+ module.debug('Flipping back', $nextSide);
+ if( !module.is.animating() ) {
+ module.set.stageSize();
+ module.stage.behind();
+ module.animate(module.get.transform.back() );
+ }
+ else {
+ module.queue('flip back');
+ }
+ }
+
+ },
+
+ get: {
+
+ transform: {
+ up: function() {
+ var
+ translate = {
+ y: -(($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
+ z: -($activeSide.outerHeight() / 2)
+ }
+ ;
+ return {
+ transform: 'translateY(' + translate.y + 'px) translateZ('+ translate.z + 'px) rotateX(-90deg)'
+ };
+ },
+
+ down: function() {
+ var
+ translate = {
+ y: -(($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
+ z: -($activeSide.outerHeight() / 2)
+ }
+ ;
+ return {
+ transform: 'translateY(' + translate.y + 'px) translateZ('+ translate.z + 'px) rotateX(90deg)'
+ };
+ },
+
+ left: function() {
+ var
+ translate = {
+ x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2),
+ z : -($activeSide.outerWidth() / 2)
+ }
+ ;
+ return {
+ transform: 'translateX(' + translate.x + 'px) translateZ(' + translate.z + 'px) rotateY(90deg)'
+ };
+ },
+
+ right: function() {
+ var
+ translate = {
+ x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2),
+ z : -($activeSide.outerWidth() / 2)
+ }
+ ;
+ return {
+ transform: 'translateX(' + translate.x + 'px) translateZ(' + translate.z + 'px) rotateY(-90deg)'
+ };
+ },
+
+ over: function() {
+ var
+ translate = {
+ x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2)
+ }
+ ;
+ return {
+ transform: 'translateX(' + translate.x + 'px) rotateY(180deg)'
+ };
+ },
+
+ back: function() {
+ var
+ translate = {
+ x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2)
+ }
+ ;
+ return {
+ transform: 'translateX(' + translate.x + 'px) rotateY(-180deg)'
+ };
+ }
+ },
+
+ transitionEvent: function() {
+ var
+ element = document.createElement('element'),
+ transitions = {
+ 'transition' :'transitionend',
+ 'OTransition' :'oTransitionEnd',
+ 'MozTransition' :'transitionend',
+ 'WebkitTransition' :'webkitTransitionEnd'
+ },
+ transition
+ ;
+ for(transition in transitions){
+ if( element.style[transition] !== undefined ){
+ return transitions[transition];
+ }
+ }
+ },
+
+ nextSide: function() {
+ return ( $activeSide.next(selector.side).size() > 0 )
+ ? $activeSide.next(selector.side)
+ : $module.find(selector.side).first()
+ ;
+ }
+
+ },
+
+ stage: {
+
+ above: function() {
+ var
+ box = {
+ origin : (($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
+ depth : {
+ active : ($nextSide.outerHeight() / 2),
+ next : ($activeSide.outerHeight() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as above', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'top' : box.origin + 'px',
+ 'transform' : 'rotateX(90deg) translateZ(' + box.depth.next + 'px)'
+ })
+ ;
+ },
+
+ below: function() {
+ var
+ box = {
+ origin : (($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
+ depth : {
+ active : ($nextSide.outerHeight() / 2),
+ next : ($activeSide.outerHeight() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as below', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'top' : box.origin + 'px',
+ 'transform' : 'rotateX(-90deg) translateZ(' + box.depth.next + 'px)'
+ })
+ ;
+ },
+
+ left: function() {
+ var
+ box = {
+ origin : ( ( $activeSide.outerWidth() - $nextSide.outerWidth() ) / 2),
+ depth : {
+ active : ($nextSide.outerWidth() / 2),
+ next : ($activeSide.outerWidth() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as left', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'left' : box.origin + 'px',
+ 'transform' : 'rotateY(-90deg) translateZ(' + box.depth.next + 'px)'
+ })
+ ;
+ },
+
+ right: function() {
+ var
+ box = {
+ origin : ( ( $activeSide.outerWidth() - $nextSide.outerWidth() ) / 2),
+ depth : {
+ active : ($nextSide.outerWidth() / 2),
+ next : ($activeSide.outerWidth() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as left', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'left' : box.origin + 'px',
+ 'transform' : 'rotateY(90deg) translateZ(' + box.depth.next + 'px)'
+ })
+ ;
+ },
+
+ behind: function() {
+ var
+ box = {
+ origin : ( ( $activeSide.outerWidth() - $nextSide.outerWidth() ) / 2),
+ depth : {
+ active : ($nextSide.outerWidth() / 2),
+ next : ($activeSide.outerWidth() / 2)
+ }
+ }
+ ;
+ module.verbose('Setting the initial animation position as behind', $nextSide, box);
+ $activeSide
+ .css({
+ 'transform' : 'rotateY(0deg)'
+ })
+ ;
+ $nextSide
+ .addClass(className.animating)
+ .css({
+ 'display' : 'block',
+ 'left' : box.origin + 'px',
+ 'transform' : 'rotateY(-180deg)'
+ })
+ ;
+ }
+ },
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.shape.settings = {
+
+ // module info
+ name : 'Shape',
+
+ // debug content outputted to console
+ debug : false,
+
+ // verbose debug output
+ verbose : true,
+
+ // performance data output
+ performance: true,
+
+ // event namespace
+ namespace : 'shape',
+
+ // callback occurs on side change
+ beforeChange : function() {},
+ onChange : function() {},
+
+ // animation duration
+ duration : 700,
+
+ // possible errors
+ error: {
+ side : 'You tried to switch to a side that does not exist.',
+ method : 'The method you called is not defined'
+ },
+
+ // classnames used
+ className : {
+ animating : 'animating',
+ hidden : 'hidden',
+ loading : 'loading',
+ active : 'active'
+ },
+
+ // selectors used
+ selector : {
+ sides : '.sides',
+ side : '.side'
+ }
+
+};
+
+
+})( jQuery, window , document );
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/modules/sidebar.css b/css/semantic/rtl/uncompressed/modules/sidebar.css
new file mode 100644
index 0000000..315b5f0
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/sidebar.css
@@ -0,0 +1,235 @@
+/*
+ * # Semantic - Sidebar
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Sidebar
+*******************************/
+
+body {
+ -webkit-transition: margin 0.3s ease, -webkit-transform 0.3s ease /*rtl:append:,
+ padding 0.3s ease*/;
+ -moz-transition: margin 0.3s ease, -moz-transform 0.3s ease /*rtl:append:,
+ padding 0.3s ease*/;
+ transition: margin 0.3s ease, transform 0.3s ease /*rtl:append:,
+ padding 0.3s ease*/;
+}
+
+.ui.sidebar {
+ position: fixed;
+ margin: 0 !important;
+ height: 100% !important;
+ border-radius: !important 0px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ -ms-overflow-y: auto;
+ overflow-y: auto;
+ top: 0px;
+ right: 0px;
+ z-index: 999;
+ -webkit-transition: margin-right 0.3s ease, margin-top 0.3s ease;
+ -moz-transition: margin-right 0.3s ease, margin-top 0.3s ease;
+ transition: margin-right 0.3s ease, margin-top 0.3s ease;
+}
+
+/*-------------------
+ Coupling
+--------------------*/
+
+body.pushed.scrolling.ui.dimmable {
+ position: static;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Direction
+--------------------*/
+
+.ui.right.very.thin.sidebar,
+.ui.right.thin.sidebar,
+.ui.right.sidebar,
+.ui.right.wide.sidebar,
+.ui.right.very.wide.sidebar {
+ right: 100%;
+ margin: 0px !important;
+}
+
+.ui.top.sidebar {
+ width: 100% !important;
+}
+
+.ui.bottom.sidebar {
+ width: 100% !important;
+ top: 100%;
+ margin: 0px !important;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.active.sidebar {
+ margin-right: 0px !important;
+}
+
+.ui.active.top.sidebar,
+.ui.active.bottom.sidebar {
+ margin-top: 0px !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Formatted
+--------------------*/
+
+.ui.styled.sidebar {
+ padding: 1em 1.5em;
+ background-color: #FFFFFF;
+ -webkit-box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1);
+ box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.1);
+}
+
+.ui.styled.very.thin.sidebar {
+ padding: 0.5em;
+}
+
+.ui.styled.thin.sidebar {
+ padding: 1em;
+}
+
+/*-------------------
+ Floating
+--------------------*/
+
+.ui.floating.sidebar {
+ -webkit-box-shadow: 2px 0px 2px rgba(0, 0, 0, 0.2);
+ box-shadow: 2px 0px 2px rgba(0, 0, 0, 0.2);
+}
+
+.ui.right.floating.sidebar {
+ -webkit-box-shadow: -2px 0px 2px rgba(0, 0, 0, 0.2);
+ box-shadow: -2px 0px 2px rgba(0, 0, 0, 0.2);
+}
+
+.ui.top.floating.sidebar {
+ -webkit-box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.2);
+ box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.2);
+}
+
+.ui.bottom.floating.sidebar {
+ -webkit-box-shadow: 0px -4px 4px rgba(0, 0, 0, 0.2);
+ box-shadow: 0px -4px 4px rgba(0, 0, 0, 0.2);
+}
+
+/*-------------------
+ Width
+--------------------*/
+
+/* Very Thin */
+
+.ui.very.thin.sidebar {
+ width: 60px !important;
+ margin-right: -60px !important;
+}
+
+.ui.active.very.thin.sidebar {
+ margin-right: 0px !important;
+}
+
+.ui.active.right.very.thin.sidebar {
+ margin-right: -60px !important;
+}
+
+/* Thin */
+
+.ui.thin.sidebar {
+ width: 200px !important;
+ margin-right: -200px !important;
+}
+
+.ui.active.thin.sidebar {
+ margin-right: 0px !important;
+}
+
+.ui.active.right.thin.sidebar {
+ margin-right: -200px !important;
+}
+
+/* Standard */
+
+.ui.sidebar {
+ width: 275px !important;
+ margin-right: -275px !important;
+}
+
+.ui.active.sidebar {
+ margin-right: 0px !important;
+}
+
+.ui.active.right.sidebar {
+ margin-right: -275px !important;
+}
+
+/* Wide */
+
+.ui.wide.sidebar {
+ width: 350px !important;
+ margin-right: -350px !important;
+}
+
+.ui.active.wide.sidebar {
+ margin-right: 0px !important;
+}
+
+.ui.active.right.wide.sidebar {
+ margin-right: -350px !important;
+}
+
+/* Very Wide */
+
+.ui.very.wide.sidebar {
+ width: 475px !important;
+ margin-right: -475px !important;
+}
+
+.ui.active.very.wide.sidebar {
+ margin-right: 0px !important;
+}
+
+.ui.active.right.very.wide.sidebar {
+ margin-right: -475px !important;
+}
+
+/*-------------------
+ Height
+--------------------*/
+
+/* Standard */
+
+.ui.top.sidebar {
+ margin: -40px 0px 0px 0px !important;
+}
+
+.ui.top.sidebar,
+.ui.bottom.sidebar {
+ height: 40px !important;
+}
+
+.ui.active.bottom.sidebar {
+ margin-top: -40px !important;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/modules/sidebar.js b/css/semantic/rtl/uncompressed/modules/sidebar.js
new file mode 100644
index 0000000..521cc9a
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/sidebar.js
@@ -0,0 +1,514 @@
+/*
+ * # Semantic - Sidebar
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.sidebar = function(parameters) {
+ var
+ $allModules = $(this),
+ $body = $('body'),
+ $head = $('head'),
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.sidebar.settings, parameters)
+ : $.extend({}, $.fn.sidebar.settings),
+
+ selector = settings.selector,
+ className = settings.className,
+ namespace = settings.namespace,
+ error = settings.error,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $style = $('style[title=' + namespace + ']'),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing sidebar', $module);
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module for', $module);
+ $module
+ .off(eventNamespace)
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing selector cache');
+ $style = $('style[title=' + namespace + ']');
+ },
+
+ attachEvents: function(selector, event) {
+ var
+ $toggle = $(selector)
+ ;
+ event = $.isFunction(module[event])
+ ? module[event]
+ : module.toggle
+ ;
+ if($toggle.size() > 0) {
+ module.debug('Attaching sidebar events to element', selector, event);
+ $toggle
+ .off(eventNamespace)
+ .on('click' + eventNamespace, event)
+ ;
+ }
+ else {
+ module.error(error.notFound);
+ }
+ },
+
+ show: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.debug('Showing sidebar', callback);
+ if(module.is.closed()) {
+ if(!settings.overlay) {
+ if(settings.exclusive) {
+ module.hideAll();
+ }
+ module.pushPage();
+ }
+ module.set.active();
+ callback();
+ $.proxy(settings.onChange, element)();
+ $.proxy(settings.onShow, element)();
+ }
+ else {
+ module.debug('Sidebar is already visible');
+ }
+ },
+
+ hide: function(callback) {
+ callback = $.isFunction(callback)
+ ? callback
+ : function(){}
+ ;
+ module.debug('Hiding sidebar', callback);
+ if(module.is.open()) {
+ if(!settings.overlay) {
+ module.pullPage();
+ module.remove.pushed();
+ }
+ module.remove.active();
+ callback();
+ $.proxy(settings.onChange, element)();
+ $.proxy(settings.onHide, element)();
+ }
+ },
+
+ hideAll: function() {
+ $(selector.sidebar)
+ .filter(':visible')
+ .sidebar('hide')
+ ;
+ },
+
+ toggle: function() {
+ if(module.is.closed()) {
+ module.show();
+ }
+ else {
+ module.hide();
+ }
+ },
+
+ pushPage: function() {
+ var
+ direction = module.get.direction(),
+ distance = (module.is.vertical())
+ ? $module.outerHeight()
+ : $module.outerWidth()
+ ;
+ if(settings.useCSS) {
+ module.debug('Using CSS to animate body');
+ module.add.bodyCSS(direction, distance);
+ module.set.pushed();
+ }
+ else {
+ module.animatePage(direction, distance, module.set.pushed);
+ }
+ },
+
+ pullPage: function() {
+ var
+ direction = module.get.direction()
+ ;
+ if(settings.useCSS) {
+ module.debug('Resetting body position css');
+ module.remove.bodyCSS();
+ }
+ else {
+ module.debug('Resetting body position using javascript');
+ module.animatePage(direction, 0);
+ }
+ module.remove.pushed();
+ },
+
+ animatePage: function(direction, distance) {
+ var
+ animateSettings = {}
+ ;
+ animateSettings['padding-' + direction] = distance;
+ module.debug('Using javascript to animate body', animateSettings);
+ $body
+ .animate(animateSettings, settings.duration, module.set.pushed)
+ ;
+ },
+
+ add: {
+ bodyCSS: function(direction, distance) {
+ var
+ style
+ ;
+ if(direction !== className.bottom) {
+ style = ''
+ + ''
+ ;
+ }
+ $head.append(style);
+ module.debug('Adding body css to head', $style);
+ }
+ },
+
+
+ remove: {
+ bodyCSS: function() {
+ module.debug('Removing body css styles', $style);
+ module.refresh();
+ $style.remove();
+ },
+ active: function() {
+ $module.removeClass(className.active);
+ },
+ pushed: function() {
+ module.verbose('Removing body push state', module.get.direction());
+ $body
+ .removeClass(className[ module.get.direction() ])
+ .removeClass(className.pushed)
+ ;
+ }
+ },
+
+ set: {
+ active: function() {
+ $module.addClass(className.active);
+ },
+ pushed: function() {
+ module.verbose('Adding body push state', module.get.direction());
+ $body
+ .addClass(className[ module.get.direction() ])
+ .addClass(className.pushed)
+ ;
+ }
+ },
+
+ get: {
+ direction: function() {
+ if($module.hasClass(className.top)) {
+ return className.top;
+ }
+ else if($module.hasClass(className.right)) {
+ return className.right;
+ }
+ else if($module.hasClass(className.bottom)) {
+ return className.bottom;
+ }
+ else {
+ return className.left;
+ }
+ },
+ transitionEvent: function() {
+ var
+ element = document.createElement('element'),
+ transitions = {
+ 'transition' :'transitionend',
+ 'OTransition' :'oTransitionEnd',
+ 'MozTransition' :'transitionend',
+ 'WebkitTransition' :'webkitTransitionEnd'
+ },
+ transition
+ ;
+ for(transition in transitions){
+ if( element.style[transition] !== undefined ){
+ return transitions[transition];
+ }
+ }
+ }
+ },
+
+ is: {
+ open: function() {
+ return $module.is(':animated') || $module.hasClass(className.active);
+ },
+ closed: function() {
+ return !module.is.open();
+ },
+ vertical: function() {
+ return $module.hasClass(className.top);
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.sidebar.settings = {
+
+ name : 'Sidebar',
+ namespace : 'sidebar',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ useCSS : true,
+ exclusive : true,
+ overlay : false,
+ duration : 300,
+
+ onChange : function(){},
+ onShow : function(){},
+ onHide : function(){},
+
+ className: {
+ active : 'active',
+ pushed : 'pushed',
+ top : 'top',
+ left : 'left',
+ right : 'right',
+ bottom : 'bottom'
+ },
+
+ selector: {
+ sidebar: '.ui.sidebar'
+ },
+
+ error : {
+ method : 'The method you called is not defined.',
+ notFound : 'There were no elements that matched the specified selector'
+ }
+
+};
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/uncompressed/modules/tab.css b/css/semantic/rtl/uncompressed/modules/tab.css
new file mode 100644
index 0000000..aeb6f46
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/tab.css
@@ -0,0 +1,63 @@
+/*
+ * # Semantic - Tab
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ UI Tabs
+*******************************/
+
+.ui.tab {
+ display: none;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------------
+ Active
+---------------------*/
+
+.ui.tab.active,
+.ui.tab.open {
+ display: block;
+}
+
+/*--------------------
+ Loading
+---------------------*/
+
+.ui.tab.loading {
+ position: relative;
+ overflow: hidden;
+ display: block;
+ min-height: 250px;
+ text-indent: -10000px;
+}
+
+.ui.tab.loading * {
+ position: relative !important;
+ right: -10000px !important;
+}
+
+.ui.tab.loading:after {
+ position: absolute;
+ top: 50px;
+ right: 50%;
+ content: 'Loading...';
+ margin-right: -32px;
+ text-indent: 5px;
+ color: rgba(0, 0, 0, 0.4);
+ width: 100%;
+ height: 100%;
+ padding-top: 75px;
+ background: url(../images/loader-large.gif) no-repeat 0px 0px;
+ visibility: visible;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/modules/tab.js b/css/semantic/rtl/uncompressed/modules/tab.js
new file mode 100644
index 0000000..4dbf98c
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/tab.js
@@ -0,0 +1,710 @@
+/*
+ * # Semantic - Tab
+ * http://github.com/jlukic/semantic-ui/
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+
+;(function ($, window, document, undefined) {
+
+ $.fn.tab = function(parameters) {
+
+ var
+ settings = $.extend(true, {}, $.fn.tab.settings, parameters),
+
+ $module = $(this),
+ $tabs = $(settings.context).find(settings.selector.tabs),
+
+ moduleSelector = $module.selector || '',
+
+ cache = {},
+ firstLoad = true,
+ recursionDepth = 0,
+
+ activeTabPath,
+ parameterArray,
+ historyEvent,
+
+ element = this,
+ time = new Date().getTime(),
+ performance = [],
+
+ className = settings.className,
+ metadata = settings.metadata,
+ error = settings.error,
+
+ eventNamespace = '.' + settings.namespace,
+ moduleNamespace = 'module-' + settings.namespace,
+
+ instance = $module.data(moduleNamespace),
+
+ query = arguments[0],
+ methodInvoked = (instance !== undefined && typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ module,
+ returnedValue
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing Tabs', $module);
+
+ // set up automatic routing
+ if(settings.auto) {
+ module.verbose('Setting up automatic tab retrieval from server');
+ settings.apiSettings = {
+ url: settings.path + '/{$tab}'
+ };
+ }
+
+ // attach history events
+ if(settings.history) {
+ module.debug('Initializing page state');
+ if( $.address === undefined ) {
+ module.error(error.state);
+ return false;
+ }
+ else {
+ if(settings.historyType == 'hash') {
+ module.debug('Using hash state change to manage state');
+ }
+ if(settings.historyType == 'html5') {
+ module.debug('Using HTML5 to manage state');
+ if(settings.path !== false) {
+ $.address
+ .history(true)
+ .state(settings.path)
+ ;
+ }
+ else {
+ module.error(error.path);
+ return false;
+ }
+ }
+ $.address
+ .unbind('change')
+ .bind('change', module.event.history.change)
+ ;
+ }
+ }
+
+ // attach events if navigation wasn't set to window
+ if( !$.isWindow( element ) ) {
+ module.debug('Attaching tab activation events to element', $module);
+ $module
+ .on('click' + eventNamespace, module.event.click)
+ ;
+ }
+ module.instantiate();
+ },
+
+ instantiate: function () {
+ module.verbose('Storing instance of module', module);
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.debug('Destroying tabs', $module);
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ },
+
+ event: {
+ click: function(event) {
+ var
+ tabPath = $(this).data(metadata.tab)
+ ;
+ if(tabPath !== undefined) {
+ if(settings.history) {
+ module.verbose('Updating page state', event);
+ $.address.value(tabPath);
+ }
+ else {
+ module.verbose('Changing tab without state management', event);
+ module.changeTab(tabPath);
+ }
+ event.preventDefault();
+ }
+ else {
+ module.debug('No tab specified');
+ }
+ },
+ history: {
+ change: function(event) {
+ var
+ tabPath = event.pathNames.join('/') || module.get.initialPath(),
+ pageTitle = settings.templates.determineTitle(tabPath) || false
+ ;
+ module.debug('History change event', tabPath, event);
+ historyEvent = event;
+ if(tabPath !== undefined) {
+ module.changeTab(tabPath);
+ }
+ if(pageTitle) {
+ $.address.title(pageTitle);
+ }
+ }
+ }
+ },
+
+ refresh: function() {
+ if(activeTabPath) {
+ module.debug('Refreshing tab', activeTabPath);
+ module.changeTab(activeTabPath);
+ }
+ },
+
+ cache: {
+
+ read: function(cacheKey) {
+ return (cacheKey !== undefined)
+ ? cache[cacheKey]
+ : false
+ ;
+ },
+ add: function(cacheKey, content) {
+ cacheKey = cacheKey || activeTabPath;
+ module.debug('Adding cached content for', cacheKey);
+ cache[cacheKey] = content;
+ },
+ remove: function(cacheKey) {
+ cacheKey = cacheKey || activeTabPath;
+ module.debug('Removing cached content for', cacheKey);
+ delete cache[cacheKey];
+ }
+ },
+
+ set: {
+ state: function(url) {
+ $.address.value(url);
+ }
+ },
+
+ changeTab: function(tabPath) {
+ var
+ pushStateAvailable = (window.history && window.history.pushState),
+ shouldIgnoreLoad = (pushStateAvailable && settings.ignoreFirstLoad && firstLoad),
+ remoteContent = (settings.auto || $.isPlainObject(settings.apiSettings) ),
+ // only get default path if not remote content
+ pathArray = (remoteContent && !shouldIgnoreLoad)
+ ? module.utilities.pathToArray(tabPath)
+ : module.get.defaultPathArray(tabPath)
+ ;
+ tabPath = module.utilities.arrayToPath(pathArray);
+ module.deactivate.all();
+ $.each(pathArray, function(index, tab) {
+ var
+ currentPathArray = pathArray.slice(0, index + 1),
+ currentPath = module.utilities.arrayToPath(currentPathArray),
+
+ isTab = module.is.tab(currentPath),
+ isLastIndex = (index + 1 == pathArray.length),
+
+ $tab = module.get.tabElement(currentPath),
+ nextPathArray,
+ nextPath,
+ isLastTab
+ ;
+ module.verbose('Looking for tab', tab);
+ if(isTab) {
+ module.verbose('Tab was found', tab);
+
+ // scope up
+ activeTabPath = currentPath;
+ parameterArray = module.utilities.filterArray(pathArray, currentPathArray);
+
+ if(isLastIndex) {
+ isLastTab = true;
+ }
+ else {
+ nextPathArray = pathArray.slice(0, index + 2);
+ nextPath = module.utilities.arrayToPath(nextPathArray);
+ isLastTab = ( !module.is.tab(nextPath) );
+ if(isLastTab) {
+ module.verbose('Tab parameters found', nextPathArray);
+ }
+ }
+ if(isLastTab && remoteContent) {
+ if(!shouldIgnoreLoad) {
+ module.activate.navigation(currentPath);
+ module.content.fetch(currentPath, tabPath);
+ }
+ else {
+ module.debug('Ignoring remote content on first tab load', currentPath);
+ firstLoad = false;
+ module.cache.add(tabPath, $tab.html());
+ module.activate.all(currentPath);
+ $.proxy(settings.onTabInit, $tab)(currentPath, parameterArray, historyEvent);
+ $.proxy(settings.onTabLoad, $tab)(currentPath, parameterArray, historyEvent);
+ }
+ return false;
+ }
+ else {
+ module.debug('Opened local tab', currentPath);
+ module.activate.all(currentPath);
+ if( !module.cache.read(currentPath) ) {
+ module.cache.add(currentPath, true);
+ module.debug('First time tab loaded calling tab init');
+ $.proxy(settings.onTabInit, $tab)(currentPath, parameterArray, historyEvent);
+ }
+ $.proxy(settings.onTabLoad, $tab)(currentPath, parameterArray, historyEvent);
+ }
+ }
+ else {
+ module.error(error.missingTab, tab);
+ return false;
+ }
+ });
+ },
+
+ content: {
+
+ fetch: function(tabPath, fullTabPath) {
+ var
+ $tab = module.get.tabElement(tabPath),
+ apiSettings = {
+ dataType : 'html',
+ stateContext : $tab,
+ success : function(response) {
+ module.cache.add(fullTabPath, response);
+ module.content.update(tabPath, response);
+ if(tabPath == activeTabPath) {
+ module.debug('Content loaded', tabPath);
+ module.activate.tab(tabPath);
+ }
+ else {
+ module.debug('Content loaded in background', tabPath);
+ }
+ $.proxy(settings.onTabInit, $tab)(tabPath, parameterArray, historyEvent);
+ $.proxy(settings.onTabLoad, $tab)(tabPath, parameterArray, historyEvent);
+ },
+ urlData: { tab: fullTabPath }
+ },
+ request = $tab.data(metadata.promise) || false,
+ existingRequest = ( request && request.state() === 'pending' ),
+ requestSettings,
+ cachedContent
+ ;
+
+ fullTabPath = fullTabPath || tabPath;
+ cachedContent = module.cache.read(fullTabPath);
+
+ if(settings.cache && cachedContent) {
+ module.debug('Showing existing content', fullTabPath);
+ module.content.update(tabPath, cachedContent);
+ module.activate.tab(tabPath);
+ $.proxy(settings.onTabLoad, $tab)(tabPath, parameterArray, historyEvent);
+ }
+ else if(existingRequest) {
+ module.debug('Content is already loading', fullTabPath);
+ $tab
+ .addClass(className.loading)
+ ;
+ }
+ else if($.api !== undefined) {
+ console.log(settings.apiSettings);
+ requestSettings = $.extend(true, { headers: { 'X-Remote': true } }, settings.apiSettings, apiSettings);
+ module.debug('Retrieving remote content', fullTabPath, requestSettings);
+ $.api( requestSettings );
+ }
+ else {
+ module.error(error.api);
+ }
+ },
+
+ update: function(tabPath, html) {
+ module.debug('Updating html for', tabPath);
+ var
+ $tab = module.get.tabElement(tabPath)
+ ;
+ $tab
+ .html(html)
+ ;
+ }
+ },
+
+ activate: {
+ all: function(tabPath) {
+ module.activate.tab(tabPath);
+ module.activate.navigation(tabPath);
+ },
+ tab: function(tabPath) {
+ var
+ $tab = module.get.tabElement(tabPath)
+ ;
+ module.verbose('Showing tab content for', $tab);
+ $tab.addClass(className.active);
+ },
+ navigation: function(tabPath) {
+ var
+ $navigation = module.get.navElement(tabPath)
+ ;
+ module.verbose('Activating tab navigation for', $navigation, tabPath);
+ $navigation.addClass(className.active);
+ }
+ },
+
+ deactivate: {
+ all: function() {
+ module.deactivate.navigation();
+ module.deactivate.tabs();
+ },
+ navigation: function() {
+ $module
+ .removeClass(className.active)
+ ;
+ },
+ tabs: function() {
+ $tabs
+ .removeClass(className.active + ' ' + className.loading)
+ ;
+ }
+ },
+
+ is: {
+ tab: function(tabName) {
+ return (tabName !== undefined)
+ ? ( module.get.tabElement(tabName).size() > 0 )
+ : false
+ ;
+ }
+ },
+
+ get: {
+ initialPath: function() {
+ return $module.eq(0).data(metadata.tab) || $tabs.eq(0).data(metadata.tab);
+ },
+ path: function() {
+ return $.address.value();
+ },
+ // adds default tabs to tab path
+ defaultPathArray: function(tabPath) {
+ return module.utilities.pathToArray( module.get.defaultPath(tabPath) );
+ },
+ defaultPath: function(tabPath) {
+ var
+ $defaultNav = $module.filter('[data-' + metadata.tab + '^="' + tabPath + '/"]').eq(0),
+ defaultTab = $defaultNav.data(metadata.tab) || false
+ ;
+ if( defaultTab ) {
+ module.debug('Found default tab', defaultTab);
+ if(recursionDepth < settings.maxDepth) {
+ recursionDepth++;
+ return module.get.defaultPath(defaultTab);
+ }
+ module.error(error.recursion);
+ }
+ else {
+ module.debug('No default tabs found for', tabPath, $tabs);
+ }
+ recursionDepth = 0;
+ return tabPath;
+ },
+ navElement: function(tabPath) {
+ tabPath = tabPath || activeTabPath;
+ return $module.filter('[data-' + metadata.tab + '="' + tabPath + '"]');
+ },
+ tabElement: function(tabPath) {
+ var
+ $fullPathTab,
+ $simplePathTab,
+ tabPathArray,
+ lastTab
+ ;
+ tabPath = tabPath || activeTabPath;
+ tabPathArray = module.utilities.pathToArray(tabPath);
+ lastTab = module.utilities.last(tabPathArray);
+ $fullPathTab = $tabs.filter('[data-' + metadata.tab + '="' + lastTab + '"]');
+ $simplePathTab = $tabs.filter('[data-' + metadata.tab + '="' + tabPath + '"]');
+ return ($fullPathTab.size() > 0)
+ ? $fullPathTab
+ : $simplePathTab
+ ;
+ },
+ tab: function() {
+ return activeTabPath;
+ }
+ },
+
+ utilities: {
+ filterArray: function(keepArray, removeArray) {
+ return $.grep(keepArray, function(keepValue) {
+ return ( $.inArray(keepValue, removeArray) == -1);
+ });
+ },
+ last: function(array) {
+ return $.isArray(array)
+ ? array[ array.length - 1]
+ : false
+ ;
+ },
+ pathToArray: function(pathName) {
+ if(pathName === undefined) {
+ pathName = activeTabPath;
+ }
+ return typeof pathName == 'string'
+ ? pathName.split('/')
+ : [pathName]
+ ;
+ },
+ arrayToPath: function(pathArray) {
+ return $.isArray(pathArray)
+ ? pathArray.join('/')
+ : false
+ ;
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+
+ };
+
+ // shortcut for tabbed content with no defined navigation
+ $.tab = function(settings) {
+ $(window).tab(settings);
+ };
+
+ $.fn.tab.settings = {
+
+ name : 'Tab',
+ debug : false,
+ verbose : true,
+ performance : true,
+ namespace : 'tab',
+
+ // only called first time a tab's content is loaded (when remote source)
+ onTabInit : function(tabPath, parameterArray, historyEvent) {},
+ // called on every load
+ onTabLoad : function(tabPath, parameterArray, historyEvent) {},
+
+ templates : {
+ determineTitle: function(tabArray) {}
+ },
+
+ // uses pjax style endpoints fetching content from same url with remote-content headers
+ auto : false,
+ history : true,
+ historyType : 'hash',
+ path : false,
+
+ context : 'body',
+
+ // max depth a tab can be nested
+ maxDepth : 25,
+ // dont load content on first load
+ ignoreFirstLoad : false,
+ // load tab content new every tab click
+ alwaysRefresh : false,
+ // cache the content requests to pull locally
+ cache : true,
+ // settings for api call
+ apiSettings : false,
+
+ error: {
+ api : 'You attempted to load content without API module',
+ method : 'The method you called is not defined',
+ missingTab : 'Tab cannot be found',
+ noContent : 'The tab you specified is missing a content url.',
+ path : 'History enabled, but no path was specified',
+ recursion : 'Max recursive depth reached',
+ state : 'The state library has not been initialized'
+ },
+
+ metadata : {
+ tab : 'tab',
+ loaded : 'loaded',
+ promise: 'promise'
+ },
+
+ className : {
+ loading : 'loading',
+ active : 'active'
+ },
+
+ selector : {
+ tabs : '.ui.tab'
+ }
+
+ };
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/uncompressed/modules/transition.css b/css/semantic/rtl/uncompressed/modules/transition.css
new file mode 100644
index 0000000..286343c
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/transition.css
@@ -0,0 +1,1218 @@
+/*******************************
+ Semantic - Transition
+ Author: Jack Lukic
+
+ CSS animation definitions for
+ transition module
+
+*******************************/
+
+/*
+ Some transitions adapted from Animate CSS
+ https://github.com/daneden/animate.css
+*/
+
+.ui.transition {
+ -webkit-animation-iteration-count: 1;
+ -moz-animation-iteration-count: 1;
+ animation-iteration-count: 1;
+ -webkit-animation-duration: 1s;
+ -moz-animation-duration: 1s;
+ animation-duration: 1s;
+ -webkit-animation-timing-function: ease;
+ -moz-animation-timing-function: ease;
+ animation-timing-function: ease;
+ -webkit-animation-fill-mode: both;
+ -moz-animation-fill-mode: both;
+ animation-fill-mode: both;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.animating.transition {
+ display: block;
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ -ms-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-transform: translateZ(0);
+ -moz-transform: translateZ(0);
+ -ms-transform: translateZ(0);
+ transform: translateZ(0);
+}
+
+/* Loading */
+
+.ui.loading.transition {
+ position: absolute;
+ top: -999999px;
+ right: -99999px;
+}
+
+/* Hidden */
+
+.ui.hidden.transition {
+ display: none;
+}
+
+/* Visible */
+
+.ui.visible.transition {
+ display: block;
+ visibility: visible;
+}
+
+/* Disabled */
+
+.ui.disabled.transition {
+ -webkit-animation-play-state: paused;
+ -moz-animation-play-state: paused;
+ animation-play-state: paused;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.looping.transition {
+ -webkit-animation-iteration-count: infinite;
+ -moz-animation-iteration-count: infinite;
+ animation-iteration-count: infinite;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Emphasis
+---------------*/
+
+.ui.flash.transition {
+ -webkit-animation-name: flash;
+ -moz-animation-name: flash;
+ animation-name: flash;
+}
+
+.ui.shake.transition {
+ -webkit-animation-name: shake;
+ -moz-animation-name: shake;
+ animation-name: shake;
+}
+
+.ui.bounce.transition {
+ -webkit-animation-name: bounce;
+ -moz-animation-name: bounce;
+ animation-name: bounce;
+}
+
+.ui.tada.transition {
+ -webkit-animation-name: tada;
+ -moz-animation-name: tada;
+ animation-name: tada;
+}
+
+/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
+
+.ui.pulse.transition {
+ -webkit-animation-name: pulse;
+ -moz-animation-name: pulse;
+ animation-name: pulse;
+}
+
+/*--------------
+ Flips
+---------------*/
+
+.ui.flip.transition.in,
+.ui.flip.transition.out {
+ -webkit-perspective: 2000px;
+ -moz-perspective: 2000px;
+ -ms-perspective: 2000px;
+ perspective: 2000px;
+}
+
+.ui.horizontal.flip.transition.in,
+.ui.horizontal.flip.transition.out {
+ -webkit-animation-name: horizontalFlip;
+ -moz-animation-name: horizontalFlip;
+ animation-name: horizontalFlip;
+}
+
+.ui.horizontal.flip.transition.out {
+ -webkit-animation-name: horizontalFlipOut;
+ -moz-animation-name: horizontalFlipOut;
+ animation-name: horizontalFlipOut;
+}
+
+.ui.vertical.flip.transition.in,
+.ui.vertical.flip.transition.out {
+ -webkit-animation-name: verticalFlip;
+ -moz-animation-name: verticalFlip;
+ animation-name: verticalFlip;
+}
+
+.ui.vertical.flip.transition.out {
+ -webkit-animation-name: verticalFlipOut;
+ -moz-animation-name: verticalFlipOut;
+ animation-name: verticalFlipOut;
+}
+
+/*--------------
+ Fades
+---------------*/
+
+.ui.fade.transition.in {
+ -webkit-animation-name: fade;
+ -moz-animation-name: fade;
+ animation-name: fade;
+}
+
+.ui.fade.transition.out {
+ -webkit-animation-name: fadeOut;
+ -moz-animation-name: fadeOut;
+ animation-name: fadeOut;
+}
+
+.ui.fade.up.transition.in {
+ -webkit-animation-name: fadeUp;
+ -moz-animation-name: fadeUp;
+ animation-name: fadeUp;
+}
+
+.ui.fade.up.transition.out {
+ -webkit-animation-name: fadeUpOut;
+ -moz-animation-name: fadeUpOut;
+ animation-name: fadeUpOut;
+}
+
+.ui.fade.down.transition.in {
+ -webkit-animation-name: fadeDown;
+ -moz-animation-name: fadeDown;
+ animation-name: fadeDown;
+}
+
+.ui.fade.down.transition.out {
+ -webkit-animation-name: fadeDownOut;
+ -moz-animation-name: fadeDownOut;
+ animation-name: fadeDownOut;
+}
+
+/*--------------
+ Scale
+---------------*/
+
+.ui.scale.transition.in {
+ -webkit-animation-name: scale;
+ -moz-animation-name: scale;
+ animation-name: scale;
+}
+
+.ui.scale.transition.out {
+ -webkit-animation-name: scaleOut;
+ -moz-animation-name: scaleOut;
+ animation-name: scaleOut;
+}
+
+/*--------------
+ Slide
+---------------*/
+
+.ui.slide.down.transition.in {
+ -webkit-animation-name: slide;
+ -moz-animation-name: slide;
+ animation-name: slide;
+ -moz-transform-origin: 50% 0%;
+ transform-origin: 50% 0%;
+ -ms-transform-origin: 50% 0%;
+ -webkit-transform-origin: 50% 0%;
+}
+
+.ui.slide.down.transition.out {
+ -webkit-animation-name: slideOut;
+ -moz-animation-name: slideOut;
+ animation-name: slideOut;
+ -webkit-transform-origin: 50% 0%;
+ -moz-transform-origin: 50% 0%;
+ -ms-transform-origin: 50% 0%;
+ transform-origin: 50% 0%;
+}
+
+.ui.slide.up.transition.in {
+ -webkit-animation-name: slide;
+ -moz-animation-name: slide;
+ animation-name: slide;
+ -webkit-transform-origin: 50% 100%;
+ -moz-transform-origin: 50% 100%;
+ -ms-transform-origin: 50% 100%;
+ transform-origin: 50% 100%;
+}
+
+.ui.slide.up.transition.out {
+ -webkit-animation-name: slideOut;
+ -moz-animation-name: slideOut;
+ animation-name: slideOut;
+ -webkit-transform-origin: 50% 100%;
+ -moz-transform-origin: 50% 100%;
+ -ms-transform-origin: 50% 100%;
+ transform-origin: 50% 100%;
+}
+
+@-webkit-keyframes slide {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+}
+
+@-moz-keyframes slide {
+ 0% {
+ opacity: 0;
+ -moz-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+}
+
+@keyframes slide {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ -moz-transform: scaleY(0);
+ -ms-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ -moz-transform: scaleY(1);
+ -ms-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+}
+
+@-webkit-keyframes slideOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+}
+
+@-moz-keyframes slideOut {
+ 0% {
+ opacity: 1;
+ -moz-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+}
+
+@keyframes slideOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: scaleY(1);
+ -moz-transform: scaleY(1);
+ -ms-transform: scaleY(1);
+ transform: scaleY(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scaleY(0);
+ -moz-transform: scaleY(0);
+ -ms-transform: scaleY(0);
+ transform: scaleY(0);
+ }
+}
+
+/*******************************
+ Animations
+*******************************/
+
+/*--------------
+ Emphasis
+---------------*/
+
+/* Flash */
+
+@-webkit-keyframes flash {
+ 0%, 50%, 100% {
+ opacity: 1;
+ }
+
+ 25%, 75% {
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes flash {
+ 0%, 50%, 100% {
+ opacity: 1;
+ }
+
+ 25%, 75% {
+ opacity: 0;
+ }
+}
+
+@keyframes flash {
+ 0%, 50%, 100% {
+ opacity: 1;
+ }
+
+ 25%, 75% {
+ opacity: 0;
+ }
+}
+
+/* Shake */
+
+@-webkit-keyframes shake {
+ 0%, 100% {
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ }
+
+ 10%, 30%, 50%, 70%, 90% {
+ -webkit-transform: translateX(-10px);
+ transform: translateX(-10px);
+ }
+
+ 20%, 40%, 60%, 80% {
+ -webkit-transform: translateX(10px);
+ transform: translateX(10px);
+ }
+}
+
+@-moz-keyframes shake {
+ 0%, 100% {
+ -moz-transform: translateX(0);
+ transform: translateX(0);
+ }
+
+ 10%, 30%, 50%, 70%, 90% {
+ -moz-transform: translateX(-10px);
+ transform: translateX(-10px);
+ }
+
+ 20%, 40%, 60%, 80% {
+ -moz-transform: translateX(10px);
+ transform: translateX(10px);
+ }
+}
+
+@keyframes shake {
+ 0%, 100% {
+ -webkit-transform: translateX(0);
+ -moz-transform: translateX(0);
+ -ms-transform: translateX(0);
+ transform: translateX(0);
+ }
+
+ 10%, 30%, 50%, 70%, 90% {
+ -webkit-transform: translateX(-10px);
+ -moz-transform: translateX(-10px);
+ -ms-transform: translateX(-10px);
+ transform: translateX(-10px);
+ }
+
+ 20%, 40%, 60%, 80% {
+ -webkit-transform: translateX(10px);
+ -moz-transform: translateX(10px);
+ -ms-transform: translateX(10px);
+ transform: translateX(10px);
+ }
+}
+
+/* Bounce */
+
+@-webkit-keyframes bounce {
+ 0%, 20%, 50%, 80%, 100% {
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 40% {
+ -webkit-transform: translateY(-30px);
+ transform: translateY(-30px);
+ }
+
+ 60% {
+ -webkit-transform: translateY(-15px);
+ transform: translateY(-15px);
+ }
+}
+
+@-moz-keyframes bounce {
+ 0%, 20%, 50%, 80%, 100% {
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 40% {
+ -moz-transform: translateY(-30px);
+ transform: translateY(-30px);
+ }
+
+ 60% {
+ -moz-transform: translateY(-15px);
+ transform: translateY(-15px);
+ }
+}
+
+@keyframes bounce {
+ 0%, 20%, 50%, 80%, 100% {
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 40% {
+ -webkit-transform: translateY(-30px);
+ -moz-transform: translateY(-30px);
+ -ms-transform: translateY(-30px);
+ transform: translateY(-30px);
+ }
+
+ 60% {
+ -webkit-transform: translateY(-15px);
+ -moz-transform: translateY(-15px);
+ -ms-transform: translateY(-15px);
+ transform: translateY(-15px);
+ }
+}
+
+/* Tada */
+
+@-webkit-keyframes tada {
+ 0% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 10%, 20% {
+ -webkit-transform: scale(0.9) rotate(-3deg);
+ transform: scale(0.9) rotate(-3deg);
+ }
+
+ 30%, 50%, 70%, 90% {
+ -webkit-transform: scale(1.1) rotate(3deg);
+ transform: scale(1.1) rotate(3deg);
+ }
+
+ 40%, 60%, 80% {
+ -webkit-transform: scale(1.1) rotate(-3deg);
+ transform: scale(1.1) rotate(-3deg);
+ }
+
+ 100% {
+ -webkit-transform: scale(1) rotate(0);
+ transform: scale(1) rotate(0);
+ }
+}
+
+@-moz-keyframes tada {
+ 0% {
+ -moz-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 10%, 20% {
+ -moz-transform: scale(0.9) rotate(-3deg);
+ transform: scale(0.9) rotate(-3deg);
+ }
+
+ 30%, 50%, 70%, 90% {
+ -moz-transform: scale(1.1) rotate(3deg);
+ transform: scale(1.1) rotate(3deg);
+ }
+
+ 40%, 60%, 80% {
+ -moz-transform: scale(1.1) rotate(-3deg);
+ transform: scale(1.1) rotate(-3deg);
+ }
+
+ 100% {
+ -moz-transform: scale(1) rotate(0);
+ transform: scale(1) rotate(0);
+ }
+}
+
+@keyframes tada {
+ 0% {
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 10%, 20% {
+ -webkit-transform: scale(0.9) rotate(-3deg);
+ -moz-transform: scale(0.9) rotate(-3deg);
+ -ms-transform: scale(0.9) rotate(-3deg);
+ transform: scale(0.9) rotate(-3deg);
+ }
+
+ 30%, 50%, 70%, 90% {
+ -webkit-transform: scale(1.1) rotate(3deg);
+ -moz-transform: scale(1.1) rotate(3deg);
+ -ms-transform: scale(1.1) rotate(3deg);
+ transform: scale(1.1) rotate(3deg);
+ }
+
+ 40%, 60%, 80% {
+ -webkit-transform: scale(1.1) rotate(-3deg);
+ -moz-transform: scale(1.1) rotate(-3deg);
+ -ms-transform: scale(1.1) rotate(-3deg);
+ transform: scale(1.1) rotate(-3deg);
+ }
+
+ 100% {
+ -webkit-transform: scale(1) rotate(0);
+ -moz-transform: scale(1) rotate(0);
+ -ms-transform: scale(1) rotate(0);
+ transform: scale(1) rotate(0);
+ }
+}
+
+/* Pulse */
+
+@-webkit-keyframes pulse {
+ 0% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+
+ 50% {
+ -webkit-transform: scale(0.9);
+ transform: scale(0.9);
+ opacity: 0.7;
+ }
+
+ 100% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes pulse {
+ 0% {
+ -moz-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+
+ 50% {
+ -moz-transform: scale(0.9);
+ transform: scale(0.9);
+ opacity: 0.7;
+ }
+
+ 100% {
+ -moz-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+@keyframes pulse {
+ 0% {
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+
+ 50% {
+ -webkit-transform: scale(0.9);
+ -moz-transform: scale(0.9);
+ -ms-transform: scale(0.9);
+ transform: scale(0.9);
+ opacity: 0.7;
+ }
+
+ 100% {
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+/*--------------
+ Flips
+---------------*/
+
+/* Horizontal */
+
+@-webkit-keyframes horizontalFlip {
+ 0% {
+ -webkit-transform: rotateY(-90deg);
+ transform: rotateY(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes horizontalFlip {
+ 0% {
+ -moz-transform: rotateY(-90deg);
+ transform: rotateY(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+}
+
+@keyframes horizontalFlip {
+ 0% {
+ -webkit-transform: rotateY(-90deg);
+ -moz-transform: rotateY(-90deg);
+ -ms-transform: rotateY(-90deg);
+ transform: rotateY(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: rotateY(0deg);
+ -moz-transform: rotateY(0deg);
+ -ms-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+}
+
+/* Horizontal */
+
+@-webkit-keyframes horizontalFlipOut {
+ 0% {
+ -webkit-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: rotateY(90deg);
+ transform: rotateY(90deg);
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes horizontalFlipOut {
+ 0% {
+ -moz-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -moz-transform: rotateY(90deg);
+ transform: rotateY(90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes horizontalFlipOut {
+ 0% {
+ -webkit-transform: rotateY(0deg);
+ -moz-transform: rotateY(0deg);
+ -ms-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: rotateY(90deg);
+ -moz-transform: rotateY(90deg);
+ -ms-transform: rotateY(90deg);
+ transform: rotateY(90deg);
+ opacity: 0;
+ }
+}
+
+/* Vertical */
+
+@-webkit-keyframes verticalFlip {
+ 0% {
+ -webkit-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes verticalFlip {
+ 0% {
+ -moz-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+}
+
+@keyframes verticalFlip {
+ 0% {
+ -webkit-transform: rotateX(-90deg);
+ -moz-transform: rotateX(-90deg);
+ -ms-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform: rotateX(0deg);
+ -moz-transform: rotateX(0deg);
+ -ms-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+}
+
+@-webkit-keyframes verticalFlipOut {
+ 0% {
+ -webkit-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes verticalFlipOut {
+ 0% {
+ -moz-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -moz-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes verticalFlipOut {
+ 0% {
+ -webkit-transform: rotateX(0deg);
+ -moz-transform: rotateX(0deg);
+ -ms-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: rotateX(-90deg);
+ -moz-transform: rotateX(-90deg);
+ -ms-transform: rotateX(-90deg);
+ transform: rotateX(-90deg);
+ opacity: 0;
+ }
+}
+
+/*--------------
+ Fades
+---------------*/
+
+/* Fade */
+
+@-webkit-keyframes fade {
+ 0% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes fade {
+ 0% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ }
+}
+
+@keyframes fade {
+ 0% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ }
+}
+
+@-webkit-keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+}
+
+@keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+}
+
+/* Fade Up */
+
+@-webkit-keyframes fadeUp {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@-moz-keyframes fadeUp {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@keyframes fadeUp {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ -moz-transform: translateY(20px);
+ -ms-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@-webkit-keyframes fadeUpOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+}
+
+@-moz-keyframes fadeUpOut {
+ 0% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+}
+
+@keyframes fadeUpOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ -moz-transform: translateY(20px);
+ -ms-transform: translateY(20px);
+ transform: translateY(20px);
+ }
+}
+
+/* Fade Down */
+
+@-webkit-keyframes fadeDown {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@-moz-keyframes fadeDown {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@keyframes fadeDown {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ -moz-transform: translateY(-20px);
+ -ms-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+}
+
+@-webkit-keyframes fadeDownOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+}
+
+@-moz-keyframes fadeDownOut {
+ 0% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+}
+
+@keyframes fadeDownOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ -moz-transform: translateY(-20px);
+ -ms-transform: translateY(-20px);
+ transform: translateY(-20px);
+ }
+}
+
+/*--------------
+ Scale
+---------------*/
+
+/* Scale */
+
+@-webkit-keyframes scale {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+@-moz-keyframes scale {
+ 0% {
+ opacity: 0;
+ -moz-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+@keyframes scale {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ -moz-transform: scale(0.7);
+ -ms-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+@-webkit-keyframes scaleOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+}
+
+@-moz-keyframes scaleOut {
+ 0% {
+ opacity: 1;
+ -moz-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+}
+
+@keyframes scaleOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ -moz-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale(0.7);
+ -moz-transform: scale(0.7);
+ -ms-transform: scale(0.7);
+ transform: scale(0.7);
+ }
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/modules/transition.js b/css/semantic/rtl/uncompressed/modules/transition.js
new file mode 100644
index 0000000..62a9148
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/transition.js
@@ -0,0 +1,813 @@
+/*
+ * # Semantic - Transition
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ( $, window, document, undefined ) {
+
+$.fn.transition = function() {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ moduleArguments = arguments,
+ query = moduleArguments[0],
+ queryArguments = [].slice.call(arguments, 1),
+ methodInvoked = (typeof query === 'string'),
+
+ requestAnimationFrame = window.requestAnimationFrame
+ || window.mozRequestAnimationFrame
+ || window.webkitRequestAnimationFrame
+ || window.msRequestAnimationFrame
+ || function(callback) { setTimeout(callback, 0); },
+
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ $module = $(this),
+ element = this,
+
+ // set at run time
+ settings,
+ instance,
+
+ error,
+ className,
+ metadata,
+ animationEnd,
+ animationName,
+
+ namespace,
+ moduleNamespace,
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ // get settings
+ settings = module.get.settings.apply(element, moduleArguments);
+ module.verbose('Converted arguments into settings object', settings);
+
+ // set shortcuts
+ error = settings.error;
+ className = settings.className;
+ namespace = settings.namespace;
+ metadata = settings.metadata;
+ moduleNamespace = 'module-' + namespace;
+
+ animationEnd = module.get.animationEvent();
+ animationName = module.get.animationName();
+
+ instance = $module.data(moduleNamespace) || module;
+
+ if(methodInvoked) {
+ methodInvoked = module.invoke(query);
+ }
+ // no internal method was found matching query or query not made
+ if(methodInvoked === false) {
+ module.animate();
+ }
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module for', element);
+ $module
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing display type on next animation');
+ delete instance.displayType;
+ },
+
+ forceRepaint: function() {
+ module.verbose('Forcing element repaint');
+ var
+ $parentElement = $module.parent(),
+ $nextElement = $module.next()
+ ;
+ if($nextElement.size() === 0) {
+ $module.detach().appendTo($parentElement);
+ }
+ else {
+ $module.detach().insertBefore($nextElement);
+ }
+ },
+
+ repaint: function() {
+ module.verbose('Repainting element');
+ var
+ fakeAssignment = element.offsetWidth
+ ;
+ },
+
+ animate: function(overrideSettings) {
+ settings = overrideSettings || settings;
+ if(!module.is.supported()) {
+ module.error(error.support);
+ return false;
+ }
+ module.debug('Preparing animation', settings.animation);
+ if(module.is.animating() && settings.queue) {
+ if(!settings.allowRepeats && module.has.direction() && module.is.occuring() && instance.queuing !== true) {
+ module.error(error.repeated);
+ }
+ else {
+ module.queue(settings.animation);
+ }
+ return false;
+ }
+ if(module.can.animate) {
+ module.set.animating(settings.animation);
+ }
+ else {
+ module.error(error.noAnimation, settings.animation);
+ }
+ },
+
+ reset: function() {
+ module.debug('Resetting animation to beginning conditions');
+ $module.off(animationEnd);
+ module.restore.conditions();
+ module.hide();
+ module.remove.animating();
+ },
+
+ queue: function(animation) {
+ module.debug('Queueing animation of', animation);
+ instance.queuing = true;
+ $module
+ .one(animationEnd, function() {
+ instance.queuing = false;
+ module.repaint();
+ module.animate.apply(this, settings);
+ })
+ ;
+ },
+
+ complete: function () {
+ module.verbose('CSS animation complete', settings.animation);
+ if(!module.is.looping()) {
+ if( module.is.outward() ) {
+ module.verbose('Animation is outward, hiding element');
+ module.restore.conditions();
+ module.remove.display();
+ module.hide();
+ $.proxy(settings.onHide, this)();
+ }
+ else if( module.is.inward() ) {
+ module.verbose('Animation is outward, showing element');
+ module.restore.conditions();
+ module.show();
+ $.proxy(settings.onShow, this)();
+ }
+ else {
+ module.restore.conditions();
+ }
+ module.remove.duration();
+ module.remove.animating();
+ }
+ $.proxy(settings.complete, this)();
+ },
+
+ has: {
+ direction: function(animation) {
+ animation = animation || settings.animation;
+ if( animation.search(className.inward) !== -1 || animation.search(className.outward) !== -1) {
+ module.debug('Direction already set in animation');
+ return true;
+ }
+ return false;
+ }
+ },
+
+ set: {
+
+ animating: function(animation) {
+ animation = animation || settings.animation;
+ module.save.conditions();
+ if(module.can.transition() && !module.has.direction()) {
+ module.set.direction();
+ }
+ module.remove.hidden();
+ module.set.display();
+ $module
+ .addClass(className.animating)
+ .addClass(className.transition)
+ .addClass(animation)
+ .one(animationEnd, module.complete)
+ ;
+ module.set.duration(settings.duration);
+ module.debug('Starting tween', settings.animation, $module.attr('class'));
+ },
+
+ display: function() {
+ var
+ displayType = module.get.displayType()
+ ;
+ if(displayType !== 'block') {
+ module.verbose('Setting final visibility to', displayType);
+ $module
+ .css({
+ display: displayType
+ })
+ ;
+ }
+ },
+
+ direction: function() {
+ if($module.is(':visible')) {
+ module.debug('Automatically determining the direction of animation', 'Outward');
+ $module
+ .removeClass(className.inward)
+ .addClass(className.outward)
+ ;
+ }
+ else {
+ module.debug('Automatically determining the direction of animation', 'Inward');
+ $module
+ .removeClass(className.outward)
+ .addClass(className.inward)
+ ;
+ }
+ },
+
+ looping: function() {
+ module.debug('Transition set to loop');
+ $module
+ .addClass(className.looping)
+ ;
+ },
+
+ duration: function(duration) {
+ duration = duration || settings.duration;
+ duration = (typeof duration == 'number')
+ ? duration + 'ms'
+ : duration
+ ;
+ module.verbose('Setting animation duration', duration);
+ $module
+ .css({
+ '-webkit-animation-duration': duration,
+ '-moz-animation-duration': duration,
+ '-ms-animation-duration': duration,
+ '-o-animation-duration': duration,
+ 'animation-duration': duration
+ })
+ ;
+ },
+
+ hidden: function() {
+ $module
+ .addClass(className.transition)
+ .addClass(className.hidden)
+ ;
+ },
+
+ visible: function() {
+ $module
+ .addClass(className.transition)
+ .addClass(className.visible)
+ ;
+ }
+ },
+
+ save: {
+ displayType: function(displayType) {
+ instance.displayType = displayType;
+ },
+ transitionExists: function(animation, exists) {
+ $.fn.transition.exists[animation] = exists;
+ module.verbose('Saving existence of transition', animation, exists);
+ },
+ conditions: function() {
+ instance.cache = {
+ className : $module.attr('class'),
+ style : $module.attr('style')
+ };
+ module.verbose('Saving original attributes', instance.cache);
+ }
+ },
+
+ restore: {
+ conditions: function() {
+ if(instance.cache === undefined) {
+ return false;
+ }
+ if(instance.cache.className) {
+ $module.attr('class', instance.cache.className);
+ }
+ else {
+ $module.removeAttr('class');
+ }
+ if(instance.cache.style) {
+ $module.attr('style', instance.cache.style);
+ }
+ else {
+ if(module.get.displayType() === 'block') {
+ $module.removeAttr('style');
+ }
+ }
+ if(module.is.looping()) {
+ module.remove.looping();
+ }
+ module.verbose('Restoring original attributes', instance.cache);
+ }
+ },
+
+ remove: {
+
+ animating: function() {
+ $module.removeClass(className.animating);
+ },
+
+ display: function() {
+ if(instance.displayType !== undefined) {
+ $module.css('display', '');
+ }
+ },
+
+ duration: function() {
+ $module
+ .css({
+ '-webkit-animation-duration' : '',
+ '-moz-animation-duration' : '',
+ '-ms-animation-duration' : '',
+ '-o-animation-duration' : '',
+ 'animation-duration' : ''
+ })
+ ;
+ },
+
+ hidden: function() {
+ $module.removeClass(className.hidden);
+ },
+
+ visible: function() {
+ $module.removeClass(className.visible);
+ },
+
+ looping: function() {
+ module.debug('Transitions are no longer looping');
+ $module
+ .removeClass(className.looping)
+ ;
+ module.forceRepaint();
+ }
+
+ },
+
+ get: {
+
+ settings: function(animation, duration, complete) {
+ // single settings object
+ if(typeof animation == 'object') {
+ return $.extend(true, {}, $.fn.transition.settings, animation);
+ }
+ // all arguments provided
+ else if(typeof complete == 'function') {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation,
+ complete : complete,
+ duration : duration
+ });
+ }
+ // only duration provided
+ else if(typeof duration == 'string' || typeof duration == 'number') {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation,
+ duration : duration
+ });
+ }
+ // duration is actually settings object
+ else if(typeof duration == 'object') {
+ return $.extend({}, $.fn.transition.settings, duration, {
+ animation : animation
+ });
+ }
+ // duration is actually callback
+ else if(typeof duration == 'function') {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation,
+ complete : duration
+ });
+ }
+ // only animation provided
+ else {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation
+ });
+ }
+ return $.fn.transition.settings;
+ },
+
+ displayType: function() {
+ if(instance.displayType === undefined) {
+ // create fake element to determine display state
+ module.can.transition();
+ }
+ return instance.displayType;
+ },
+
+ transitionExists: function(animation) {
+ return $.fn.transition.exists[animation];
+ },
+
+ animationName: function() {
+ var
+ element = document.createElement('div'),
+ animations = {
+ 'animation' :'animationName',
+ 'OAnimation' :'oAnimationName',
+ 'MozAnimation' :'mozAnimationName',
+ 'WebkitAnimation' :'webkitAnimationName'
+ },
+ animation
+ ;
+ for(animation in animations){
+ if( element.style[animation] !== undefined ){
+ module.verbose('Determined animation vendor name property', animations[animation]);
+ return animations[animation];
+ }
+ }
+ return false;
+ },
+
+ animationEvent: function() {
+ var
+ element = document.createElement('div'),
+ animations = {
+ 'animation' :'animationend',
+ 'OAnimation' :'oAnimationEnd',
+ 'MozAnimation' :'animationend',
+ 'WebkitAnimation' :'webkitAnimationEnd'
+ },
+ animation
+ ;
+ for(animation in animations){
+ if( element.style[animation] !== undefined ){
+ module.verbose('Determined animation vendor end event', animations[animation]);
+ return animations[animation];
+ }
+ }
+ return false;
+ }
+
+ },
+
+ can: {
+ animate: function() {
+ if($module.css(settings.animation) !== 'none') {
+ module.debug('CSS definition found', $module.css(settings.animation));
+ return true;
+ }
+ else {
+ module.debug('Unable to find css definition', $module.attr('class'));
+ return false;
+ }
+ },
+ transition: function() {
+ var
+ elementClass = $module.attr('class'),
+ animation = settings.animation,
+ transitionExists = module.get.transitionExists(settings.animation),
+ $clone,
+ currentAnimation,
+ inAnimation,
+ displayType
+ ;
+ if( transitionExists === undefined || instance.displayType === undefined) {
+ module.verbose('Determining whether animation exists');
+ $clone = $('
').addClass( elementClass ).appendTo($('body'));
+ currentAnimation = $clone
+ .removeClass(className.inward)
+ .removeClass(className.outward)
+ .addClass(className.animating)
+ .addClass(className.transition)
+ .addClass(animation)
+ .css(animationName)
+ ;
+ inAnimation = $clone
+ .addClass(className.inward)
+ .css(animationName)
+ ;
+ displayType = $clone
+ .attr('class', elementClass)
+ .show()
+ .css('display')
+ ;
+ module.verbose('Determining final display state', displayType);
+ if(currentAnimation != inAnimation) {
+ module.debug('Transition exists for animation', animation);
+ transitionExists = true;
+ }
+ else {
+ module.debug('Static animation found', animation, displayType);
+ transitionExists = false;
+ }
+ $clone.remove();
+ module.save.displayType(displayType);
+ module.save.transitionExists(animation, transitionExists);
+ }
+ return transitionExists;
+ }
+ },
+
+ is: {
+ animating: function() {
+ return $module.hasClass(className.animating);
+ },
+ inward: function() {
+ return $module.hasClass(className.inward);
+ },
+ outward: function() {
+ return $module.hasClass(className.outward);
+ },
+ looping: function() {
+ return $module.hasClass(className.looping);
+ },
+ occuring: function(animation) {
+ animation = animation || settings.animation;
+ return ( $module.hasClass(animation) );
+ },
+ visible: function() {
+ return $module.is(':visible');
+ },
+ supported: function() {
+ return(animationName !== false && animationEnd !== false);
+ }
+ },
+
+ hide: function() {
+ module.verbose('Hiding element');
+ module.remove.visible();
+ module.set.hidden();
+ module.repaint();
+ },
+
+ show: function(display) {
+ module.verbose('Showing element', display);
+ module.remove.hidden();
+ module.set.visible();
+ module.repaint();
+ },
+
+ start: function() {
+ module.verbose('Starting animation');
+ $module.removeClass(className.disabled);
+ },
+
+ stop: function() {
+ module.debug('Stopping animation');
+ $module.addClass(className.disabled);
+ },
+
+ toggle: function() {
+ module.debug('Toggling play status');
+ $module.toggleClass(className.disabled);
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found || false;
+ }
+ };
+ module.initialize();
+ })
+ ;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.transition.exists = {};
+
+$.fn.transition.settings = {
+
+ // module info
+ name : 'Transition',
+
+ // debug content outputted to console
+ debug : false,
+
+ // verbose debug output
+ verbose : true,
+
+ // performance data output
+ performance : true,
+
+ // event namespace
+ namespace : 'transition',
+
+ // animation complete event
+ complete : function() {},
+ onShow : function() {},
+ onHide : function() {},
+
+ // whether animation can occur twice in a row
+ allowRepeats : false,
+
+ // animation duration
+ animation : 'fade',
+ duration : '700ms',
+
+ // new animations will occur after previous ones
+ queue : true,
+
+ className : {
+ animating : 'animating',
+ disabled : 'disabled',
+ hidden : 'hidden',
+ inward : 'in',
+ loading : 'loading',
+ looping : 'looping',
+ outward : 'out',
+ transition : 'ui transition',
+ visible : 'visible'
+ },
+
+ // possible errors
+ error: {
+ noAnimation : 'There is no css animation matching the one you specified.',
+ repeated : 'That animation is already occurring, cancelling repeated animation',
+ method : 'The method you called is not defined',
+ support : 'This browser does not support CSS animations'
+ }
+
+};
+
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/uncompressed/modules/video.css b/css/semantic/rtl/uncompressed/modules/video.css
new file mode 100644
index 0000000..375baad
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/video.css
@@ -0,0 +1,95 @@
+/*
+ * # Semantic - Video
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Video
+*******************************/
+
+.ui.video {
+ position: relative;
+ max-width: 100%;
+}
+
+/*--------------
+ Content
+---------------*/
+
+/* Placeholder Image */
+
+.ui.video .placeholder {
+ background-color: #333333;
+}
+
+/* Play Icon Overlay */
+
+.ui.video .play {
+ cursor: pointer;
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ z-index: 10;
+ width: 100%;
+ height: 100%;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
+ filter: alpha(opacity=60);
+ opacity: 0.6;
+ -webkit-transition: opacity 0.3s;
+ -moz-transition: opacity 0.3s;
+ transition: opacity 0.3s;
+}
+
+.ui.video .play.icon:before {
+ position: absolute;
+ top: 50%;
+ right: 50%;
+ z-index: 11;
+ font-size: 6rem;
+ margin: -3rem -3rem 0em 0em;
+ color: #FFFFFF;
+ text-shadow: 0px 3px 3px rgba(0, 0, 0, 0.4);
+}
+
+.ui.video .placeholder {
+ display: block;
+ width: 100%;
+ height: 100%;
+}
+
+/* IFrame Embed */
+
+.ui.video .embed {
+ display: none;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------
+ Hover
+---------------*/
+
+.ui.video .play:hover {
+ opacity: 1;
+}
+
+/*--------------
+ Active
+---------------*/
+
+.ui.video.active .play,
+.ui.video.active .placeholder {
+ display: none;
+}
+
+.ui.video.active .embed {
+ display: block;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/modules/video.js b/css/semantic/rtl/uncompressed/modules/video.js
new file mode 100644
index 0000000..284218e
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/modules/video.js
@@ -0,0 +1,459 @@
+/* ******************************
+ Module - Video
+ Author: Jack Lukic
+
+ This is a video playlist and video embed plugin which helps
+ provide helpers for adding embed code for vimeo and youtube and
+ abstracting event handlers for each library
+
+****************************** */
+
+;(function ($, window, document, undefined) {
+
+$.fn.video = function(parameters) {
+
+ var
+ $allModules = $(this),
+
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+
+ returnedValue
+ ;
+
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.video.settings, parameters)
+ : $.extend({}, $.fn.video.settings),
+
+ selector = settings.selector,
+ className = settings.className,
+ error = settings.error,
+ metadata = settings.metadata,
+ namespace = settings.namespace,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = 'module-' + namespace,
+
+ $module = $(this),
+ $placeholder = $module.find(selector.placeholder),
+ $playButton = $module.find(selector.playButton),
+ $embed = $module.find(selector.embed),
+
+ element = this,
+ instance = $module.data(moduleNamespace),
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+ module.debug('Initializing video');
+ $placeholder
+ .on('click' + eventNamespace, module.play)
+ ;
+ $playButton
+ .on('click' + eventNamespace, module.play)
+ ;
+ module.instantiate();
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, module)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous instance of video');
+ $module
+ .removeData(moduleNamespace)
+ .off(eventNamespace)
+ ;
+ $placeholder
+ .off(eventNamespace)
+ ;
+ $playButton
+ .off(eventNamespace)
+ ;
+ },
+
+ // sets new video
+ change: function(source, id, url) {
+ module.debug('Changing video to ', source, id, url);
+ $module
+ .data(metadata.source, source)
+ .data(metadata.id, id)
+ .data(metadata.url, url)
+ ;
+ settings.onChange();
+ },
+
+ // clears video embed
+ reset: function() {
+ module.debug('Clearing video embed and showing placeholder');
+ $module
+ .removeClass(className.active)
+ ;
+ $embed
+ .html(' ')
+ ;
+ $placeholder
+ .show()
+ ;
+ settings.onReset();
+ },
+
+ // plays current video
+ play: function() {
+ module.debug('Playing video');
+ var
+ source = $module.data(metadata.source) || false,
+ url = $module.data(metadata.url) || false,
+ id = $module.data(metadata.id) || false
+ ;
+ $embed
+ .html( module.generate.html(source, id, url) )
+ ;
+ $module
+ .addClass(className.active)
+ ;
+ settings.onPlay();
+ },
+
+ generate: {
+ // generates iframe html
+ html: function(source, id, url) {
+ module.debug('Generating embed html');
+ var
+ width = (settings.width == 'auto')
+ ? $module.width()
+ : settings.width,
+ height = (settings.height == 'auto')
+ ? $module.height()
+ : settings.height,
+ html
+ ;
+ if(source && id) {
+ if(source == 'vimeo') {
+ html = ''
+ + '
'
+ ;
+ }
+ else if(source == 'youtube') {
+ html = ''
+ + '
VIDEO '
+ ;
+ }
+ }
+ else if(url) {
+ html = ''
+ + '
'
+ ;
+ }
+ else {
+ module.error(error.noVideo);
+ }
+ return html;
+ },
+
+ // generate url parameters
+ url: function(source) {
+ var
+ api = (settings.api)
+ ? 1
+ : 0,
+ autoplay = (settings.autoplay)
+ ? 1
+ : 0,
+ hd = (settings.hd)
+ ? 1
+ : 0,
+ showUI = (settings.showUI)
+ ? 1
+ : 0,
+ // opposite used for some params
+ hideUI = !(settings.showUI)
+ ? 1
+ : 0,
+ url = ''
+ ;
+ if(source == 'vimeo') {
+ url = ''
+ + 'api=' + api
+ + '&title=' + showUI
+ + '&byline=' + showUI
+ + '&portrait=' + showUI
+ + '&autoplay=' + autoplay
+ ;
+ if(settings.color) {
+ url += '&color=' + settings.color;
+ }
+ }
+ if(source == 'ustream') {
+ url = ''
+ + 'autoplay=' + autoplay
+ ;
+ if(settings.color) {
+ url += '&color=' + settings.color;
+ }
+ }
+ else if(source == 'youtube') {
+ url = ''
+ + 'enablejsapi=' + api
+ + '&autoplay=' + autoplay
+ + '&autohide=' + hideUI
+ + '&hq=' + hd
+ + '&modestbranding=1'
+ ;
+ if(settings.color) {
+ url += '&color=' + settings.color;
+ }
+ }
+ return url;
+ }
+ },
+
+ setting: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ settings[name] = value;
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Element' : element,
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 100);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.size() > 1) {
+ title += ' ' + '(' + $allModules.size() + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if($.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ module.destroy();
+ }
+ module.initialize();
+ }
+ })
+ ;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.video.settings = {
+
+ name : 'Video',
+ namespace : 'video',
+
+ debug : false,
+ verbose : true,
+ performance : true,
+
+ metadata : {
+ source : 'source',
+ id : 'id',
+ url : 'url'
+ },
+
+ onPlay : function(){},
+ onReset : function(){},
+ onChange : function(){},
+
+ // callbacks not coded yet (needs to use jsapi)
+ onPause : function() {},
+ onStop : function() {},
+
+ width : 'auto',
+ height : 'auto',
+
+ autoplay : false,
+ color : '#442359',
+ hd : true,
+ showUI : false,
+ api : true,
+
+ error : {
+ noVideo : 'No video specified',
+ method : 'The method you called is not defined'
+ },
+
+ className : {
+ active : 'active'
+ },
+
+ selector : {
+ embed : '.embed',
+ placeholder : '.placeholder',
+ playButton : '.play'
+ }
+};
+
+
+})( jQuery, window , document );
diff --git a/css/semantic/rtl/uncompressed/views/comment.css b/css/semantic/rtl/uncompressed/views/comment.css
new file mode 100644
index 0000000..499b766
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/views/comment.css
@@ -0,0 +1,219 @@
+/*
+ * # Semantic Comment View
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: April 17 2013
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------
+ Comments
+---------------*/
+
+.ui.comments a {
+ cursor: pointer;
+}
+
+/*--------------
+ Comment
+---------------*/
+
+.ui.comments .comment {
+ position: relative;
+ margin-top: 0.5em;
+ padding-top: 0.5em;
+}
+
+.ui.comments .comment:first-child {
+ margin-top: 0em;
+ padding-top: 0em;
+}
+
+/*--------------------
+ Avatar (Optional)
+---------------------*/
+
+.ui.comments .comment .avatar {
+ display: block;
+ float: right;
+ width: 4em;
+}
+
+.ui.comments .comment .avatar img {
+ display: block;
+ margin: 0em auto;
+ width: 3em;
+ height: 3em;
+ border-radius: 500px;
+}
+
+/*--------------
+ Content
+---------------*/
+
+.ui.comments .comment > .content,
+.ui.comments .comment > .avatar {
+ display: block;
+}
+
+.ui.comments .comment .avatar ~ .content {
+ padding: 0em 1em;
+}
+
+/* If there is an avatar move content over */
+
+.ui.comments .comment > .avatar ~ .content {
+ padding-top: 0.25em;
+ margin-right: 3.5em;
+}
+
+.ui.comments .comment .metadata {
+ display: inline-block;
+ margin-right: 0.3em;
+ color: rgba(0, 0, 0, 0.4);
+}
+
+.ui.comments .comment .metadata > * {
+ display: inline-block;
+ margin: 0em 0em 0em 0.3em;
+}
+
+/*--------------------
+ Comment Text
+---------------------*/
+
+.ui.comments .comment .text {
+ margin: 0.25em 0em 0.5em;
+ word-wrap: break-word;
+}
+
+/*--------------------
+ User Actions
+---------------------*/
+
+.ui.comments .comment .actions {
+ font-size: 0.9em;
+}
+
+.ui.comments .comment .actions a {
+ display: inline-block;
+ margin: 0em 0em 0em 0.3em;
+ color: rgba(0, 0, 0, 0.3);
+}
+
+.ui.comments .comment .actions a.active,
+.ui.comments .comment .actions a:hover {
+ color: rgba(0, 0, 0, 0.6);
+}
+
+/*--------------------
+ Reply Form
+---------------------*/
+
+.ui.comments .reply.form {
+ margin-top: 0.75em;
+ width: 100%;
+ max-width: 30em;
+}
+
+.ui.comments .comment .reply.form {
+ margin-right: 2em;
+}
+
+.ui.comments > .reply.form {
+ margin-top: 1.5em;
+ max-width: 40em;
+}
+
+.ui.comments .reply.form textarea {
+ height: 12em;
+}
+
+/*--------------------
+ Nested Comments
+---------------------*/
+
+.ui.comments .comment .comments {
+ margin-top: 0.5em;
+ padding-top: 0.5em;
+ padding-bottom: 1em;
+}
+
+.ui.comments .comment .comments:before {
+ position: absolute;
+ top: 0px;
+ right: 0px;
+}
+
+/* One Deep */
+
+.ui.comments > .comment .comments {
+ margin-right: 2em;
+}
+
+/* Two Deep */
+
+.ui.comments > .comment > .comments > .comment > .comments {
+ margin-right: 1.75em;
+}
+
+/* Three Deep */
+
+.ui.comments > .comment > .comments > .comment > .comments > .comment > .comments {
+ margin-right: 1.5em;
+}
+
+/* Four Deep or more */
+
+.ui.comments > .comment > .comments > .comment > .comments > .comment > .comments > .comment .comments {
+ margin-right: 0.5em;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------------
+ Threaded
+---------------------*/
+
+.ui.threaded.comments .comment .comments {
+ margin-right: 2em !important;
+ padding-right: 2em !important;
+ -webkit-box-shadow: -1px 0px 0px rgba(0, 0, 0, 0.05);
+ box-shadow: -1px 0px 0px rgba(0, 0, 0, 0.05);
+}
+
+/*--------------------
+ Minimal
+---------------------*/
+
+.ui.minimal.comments .comment .actions {
+ opacity: 0;
+ -webkit-transition: opacity 0.1s ease-out;
+ -moz-transition: opacity 0.1s ease-out;
+ transition: opacity 0.1s ease-out;
+ -webkit-transition-delay: 0.1s;
+ -moz-transition-delay: 0.1s;
+ transition-delay: 0.1s;
+}
+
+.ui.minimal.comments .comment > .content:hover > .actions {
+ opacity: 1;
+}
+
+/*--------------------
+ Sizes
+---------------------*/
+
+.ui.small.comments {
+ font-size: 0.875em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/views/feed.css b/css/semantic/rtl/uncompressed/views/feed.css
new file mode 100644
index 0000000..91d9e41
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/views/feed.css
@@ -0,0 +1,160 @@
+/*
+ * # Activity Feed View
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: May 22, 2013
+ */
+
+/*******************************
+ Activity Feed
+*******************************/
+
+.ui.feed a {
+ cursor: pointer;
+}
+
+.ui.feed,
+.ui.feed .event,
+.ui.feed .label,
+.ui.feed .content,
+.ui.feed .extra {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*******************************
+ Content
+*******************************/
+
+/* Event */
+
+.ui.feed .event {
+ width: 100%;
+ display: table;
+ padding: 1em;
+}
+
+.ui.feed .event:first-child {
+ border-top: 0px;
+}
+
+.ui.feed .event:last-child {
+ margin-bottom: 1em;
+}
+
+/* Event Label */
+
+.ui.feed .label {
+ width: 3em;
+ display: table-cell;
+ vertical-align: top;
+ text-align: right;
+}
+
+.ui.feed .label .icon {
+ font-size: 1.5em;
+ padding: 0.5em;
+ margin: 0em;
+}
+
+.ui.feed .label img {
+ width: 3em;
+ margin: 0em;
+ border-radius: 50em;
+}
+
+.ui.feed .label + .content {
+ padding: 0.75em 1em 0em;
+}
+
+/* Content */
+
+.ui.feed .content {
+ display: table-cell;
+ vertical-align: top;
+ text-align: right;
+ word-wrap: break-word;
+}
+
+/* Date */
+
+.ui.feed .content .date {
+ float: left;
+ padding-right: 1em;
+ color: rgba(0, 0, 0, 0.4);
+}
+
+/* Summary */
+
+.ui.feed .content .summary {
+ color: rgba(0, 0, 0, 0.75);
+}
+
+.ui.feed .content .summary img {
+ display: inline-block;
+ margin-left: 0.25em;
+ width: 4em;
+ border-radius: 500px;
+}
+
+/* Additional Information */
+
+.ui.feed .content .extra {
+ margin: 1em 0em 0em;
+ padding: 0.5em 0em 0em;
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.feed .content .extra.images img {
+ display: inline-block;
+ margin-left: 0.25em;
+ width: 6em;
+}
+
+.ui.feed .content .extra.text {
+ padding: 0.5em 1em;
+ border-right: 0.2em solid rgba(0, 0, 0, 0.1);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.small.feed {
+ font-size: 0.875em;
+}
+
+.ui.small.feed .label img {
+ width: 2.5em;
+}
+
+.ui.small.feed .label .icon {
+ font-size: 1.25em;
+}
+
+.ui.feed .event {
+ padding: 0.75em 0em;
+}
+
+.ui.small.feed .label + .content {
+ padding: 0.5em 0.5em 0;
+}
+
+.ui.small.feed .content .extra.images img {
+ width: 5em;
+}
+
+.ui.small.feed .content .extra {
+ margin: 0.5em 0em 0em;
+}
+
+.ui.small.feed .content .extra.text {
+ padding: 0.25em 0.5em;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/views/item.css b/css/semantic/rtl/uncompressed/views/item.css
new file mode 100644
index 0000000..8202d2a
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/views/item.css
@@ -0,0 +1,685 @@
+/*
+ * # Semantic Item View
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: April 17 2013
+ */
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------
+ Items
+---------------*/
+
+.ui.items {
+ margin: 1em 0em 0em;
+}
+
+.ui.items:first-child {
+ margin-top: 0em;
+}
+
+.ui.items:last-child {
+ margin-bottom: -1em;
+}
+
+/* Force Clearing */
+
+.ui.items:after {
+ display: block;
+ content: ' ';
+ height: 0px;
+ clear: both;
+ overflow: hidden;
+ visibility: hidden;
+}
+
+/*--------------
+ Item
+---------------*/
+
+.ui.items > .row > .item,
+.ui.items > .item {
+ display: block;
+ float: right;
+ position: relative;
+ top: 0px;
+ width: 316px;
+ min-height: 375px;
+ margin: 0em 0.5em 2.5em;
+ padding: 0em;
+ background-color: #FFFFFF;
+ line-height: 1.2;
+ font-size: 1em;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+ border-bottom: 0.2em solid rgba(0, 0, 0, 0.2);
+ border-radius: 0.33em;
+ -webkit-transition: -webkit-box-shadow 0.2s ease;
+ -moz-transition: box-shadow 0.2s ease;
+ transition: box-shadow 0.2s ease;
+ padding: 0.5em;
+}
+
+.ui.items a.item,
+.ui.items .item a {
+ cursor: pointer;
+}
+
+.ui.items .item,
+.ui.items .item > .image,
+.ui.items .item > .image .overlay,
+.ui.items .item > .content,
+.ui.items .item > .content > .meta,
+.ui.items .item > .content > .extra {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/*--------------
+ Images
+---------------*/
+
+.ui.items .item > .image {
+ display: block;
+ position: relative;
+ background-color: rgba(0, 0, 0, 0.05);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ border-radius: 0.2em;
+}
+
+.ui.items .item > .image > img {
+ display: block;
+ width: 100%;
+}
+
+/*--------------
+ Content
+---------------*/
+
+.ui.items .item > .content {
+ padding: 0.75em 0.5em;
+}
+
+.ui.items .item > .content > .name {
+ display: block;
+ font-size: 1.25em;
+ font-weight: bold;
+ margin-bottom: 0.2em;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.items .item > .content > .description {
+ clear: both;
+ margin: 0em 0em;
+ color: rgba(0, 0, 0, 0.45);
+}
+
+.ui.items .item > .content > .description p {
+ margin: 0em 0em 0.2em;
+}
+
+.ui.items .item > .content > .description p:last-child {
+ margin-bottom: 0em;
+}
+
+/*--------------
+ Meta
+---------------*/
+
+.ui.items .item .meta {
+ float: left;
+ color: rgba(0, 0, 0, 0.35);
+}
+
+.ui.items .item > .content > .meta + .name {
+ float: right;
+}
+
+/*--------------
+ Labels
+---------------*/
+
+/*-----star----- */
+
+/* hover */
+
+.ui.items .item .star.label:hover::after {
+ border-left-color: #F6EFC3;
+}
+
+.ui.items .item .star.label:hover::after {
+ border-top-color: #F6EFC3;
+}
+
+.ui.items .item .star.label:hover .icon {
+ color: #ac9400;
+}
+
+/* active */
+
+.ui.items .item .star.label.active::after {
+ border-left-color: #F6EFC3;
+}
+
+.ui.items .item .star.label.active::after {
+ border-top-color: #F6EFC3;
+}
+
+.ui.items .item .star.label.active .icon {
+ color: #ac9400;
+}
+
+/*-----like----- */
+
+/* hover */
+
+.ui.items .item .like.label:hover::after {
+ border-left-color: #F5E1E2;
+}
+
+.ui.items .item .like.label.active::after {
+ border-top-color: #F5E1E2;
+}
+
+.ui.items .item .like.label:hover .icon {
+ color: #ef404a;
+}
+
+/* active */
+
+.ui.items .item .like.label.active::after {
+ border-left-color: #F5E1E2;
+}
+
+.ui.items .item .like.label.active::after {
+ border-top-color: #F5E1E2;
+}
+
+.ui.items .item .like.label.active .icon {
+ color: #ef404a;
+}
+
+/*--------------
+ Extra
+---------------*/
+
+.ui.items .item .extra {
+ position: absolute;
+ width: 100%;
+ padding: 0em 0.5em;
+ bottom: -2em;
+ right: 0em;
+ height: 1.5em;
+ color: rgba(0, 0, 0, 0.25);
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+.ui.items .item .extra > img {
+ display: inline-block;
+ border-radius: 500px 500px 500px 500px;
+ margin-left: 0.25em;
+ vertical-align: middle;
+ width: 2em;
+}
+
+.ui.items .item .extra .left {
+ float: right;
+}
+
+.ui.items .item .extra .right {
+ float: left;
+}
+
+/*******************************
+ States
+*******************************/
+
+.ui.items .item:hover {
+ cursor: pointer;
+ z-index: 5;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2);
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2);
+}
+
+.ui.items .item:hover .extra {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.items .item:nth-of-type(6n+1):hover {
+ border-bottom-color: #6ECFF5 !important;
+}
+
+.ui.items .item:nth-of-type(6n+2):hover {
+ border-bottom-color: #5C6166 !important;
+}
+
+.ui.items .item:nth-of-type(6n+3):hover {
+ border-bottom-color: #A1CF64 !important;
+}
+
+.ui.items .item:nth-of-type(6n+4):hover {
+ border-bottom-color: #D95C5C !important;
+}
+
+.ui.items .item:nth-of-type(6n+5):hover {
+ border-bottom-color: #00B5AD !important;
+}
+
+.ui.items .item:nth-of-type(6n+6):hover {
+ border-bottom-color: #564F8A !important;
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Connected
+---------------*/
+
+.ui.connected.items {
+ display: table;
+ width: 100%;
+ margin-right: 0em !important;
+ margin-left: 0em !important;
+}
+
+.ui.connected.items > .row > .item,
+.ui.connected.items > .item {
+ float: none;
+ display: table-cell;
+ vertical-align: top;
+ height: auto;
+ border-radius: 0px;
+ margin: 0em;
+ width: 33.33%;
+}
+
+.ui.connected.items > .row {
+ display: table;
+ margin: 0.5em 0em;
+}
+
+.ui.connected.items > .row:first-child {
+ margin-top: 0em;
+}
+
+/* Borders */
+
+.ui.connected.items > .item,
+.ui.connected.items > .row:last-child > .item {
+ border-bottom: 0.2em solid rgba(0, 0, 0, 0.2);
+}
+
+.ui.connected.items > .row:last-child > .item:first-child,
+.ui.connected.items > .item:first-child {
+ border-radius: 0em 0em 0.33em 0em;
+}
+
+.ui.connected.items > .row:last-child > .item:last-child,
+.ui.connected.items > .item:last-child {
+ border-radius: 0em 0em 0em 0.33em;
+}
+
+/* Hover */
+
+.ui.connected.items .item:hover {
+ border-bottom-width: 0.2em;
+}
+
+/* Item Count */
+
+.ui.one.connected.items > .row > .item,
+.ui.one.connected.items > .item {
+ width: 50%;
+ padding-right: 2%;
+ padding-left: 2%;
+}
+
+.ui.two.connected.items > .row > .item,
+.ui.two.connected.items > .item {
+ width: 50%;
+ padding-right: 1%;
+ padding-left: 1%;
+}
+
+.ui.three.connected.items > .row > .item,
+.ui.three.connected.items > .item {
+ width: 33.333%;
+ padding-right: 1%;
+ padding-left: 1%;
+}
+
+.ui.four.connected.items > .row > .item,
+.ui.four.connected.items > .item {
+ width: 25%;
+ padding-right: 0.5%;
+ padding-left: 0.5%;
+}
+
+.ui.five.connected.items > .row > .item,
+.ui.five.connected.items > .item {
+ width: 20%;
+ padding-right: 0.5%;
+ padding-left: 0.5%;
+}
+
+.ui.six.connected.items > .row > .item,
+.ui.six.connected.items > .item {
+ width: 16.66%;
+ padding-right: 0.5%;
+ padding-left: 0.5%;
+}
+
+.ui.seven.connected.items > .row > .item,
+.ui.seven.connected.items > .item {
+ width: 14.28%;
+ padding-right: 0.5%;
+ padding-left: 0.5%;
+}
+
+.ui.eight.connected.items > .row > .item,
+.ui.eight.connected.items > .item {
+ width: 12.5%;
+ padding-right: 0.25%;
+ padding-left: 0.25%;
+}
+
+.ui.nine.connected.items > .row > .item,
+.ui.nine.connected.items > .item {
+ width: 11.11%;
+ padding-right: 0.25%;
+ padding-left: 0.25%;
+}
+
+.ui.ten.connected.items > .row > .item,
+.ui.ten.connected.items > .item {
+ width: 10%;
+ padding-right: 0.2%;
+ padding-left: 0.2%;
+}
+
+.ui.eleven.connected.items > .row > .item,
+.ui.eleven.connected.items > .item {
+ width: 9.09%;
+ padding-right: 0.2%;
+ padding-left: 0.2%;
+}
+
+.ui.twelve.connected.items > .row > .item,
+.ui.twelve.connected.items > .item {
+ width: 8.3333%;
+ padding-right: 0.1%;
+ padding-left: 0.1%;
+}
+
+/*-------------------
+ Responsive
+--------------------*/
+
+@media only screen and (max-width: 768px) {
+ .ui.stackable.items {
+ display: block !important;
+ }
+
+ .ui.stackable.items > .item,
+ .ui.stackable.items > .row > .item {
+ display: block !important;
+ height: auto !important;
+ width: auto !important;
+ padding: 0% !important;
+ }
+}
+
+/*--------------------
+ Horizontal
+---------------------*/
+
+.ui.horizontal.items > .item,
+.ui.items > .horizontal.item {
+ display: table;
+}
+
+.ui.horizontal.items > .item > .image,
+.ui.items > .horizontal.item > .image {
+ display: table-cell;
+ width: 50%;
+}
+
+.ui.horizontal.items > .item > .image + .content,
+.ui.items > .horizontal.item > .image + .content {
+ width: 50%;
+ display: table-cell;
+}
+
+.ui.horizontal.items > .item > .content,
+.ui.items > .horizontal.item > .content {
+ padding: 1% 3% 11% 1.7%;
+ vertical-align: top;
+}
+
+.ui.horizontal.items > .item > .meta,
+.ui.items > .horizontal.item > .meta {
+ position: absolute;
+ padding: 0%;
+ bottom: 7%;
+ right: 3%;
+ width: 94%;
+}
+
+.ui.horizontal.items > .item > .image + .content + .meta,
+.ui.items > .horizontal.item > .image + .content + .meta {
+ bottom: 7%;
+ right: 53%;
+ width: 44%;
+}
+
+.ui.horizontal.items > .item .avatar,
+.ui.items > .horizontal.item .avatar {
+ width: 11.5%;
+}
+
+.ui.items > .item .avatar {
+ max-width: 25px;
+}
+
+/*--------------
+ Item Count
+---------------*/
+
+.ui.one.items {
+ margin-right: -2%;
+ margin-left: -2%;
+}
+
+.ui.one.items > .item {
+ width: 100%;
+ margin-right: 2%;
+ margin-left: 2%;
+}
+
+.ui.two.items {
+ margin-right: -1%;
+ margin-left: -1%;
+}
+
+.ui.two.items > .item {
+ width: 48%;
+ margin-right: 1%;
+ margin-left: 1%;
+}
+
+.ui.two.items > .item:nth-child(2n+1) {
+ clear: right;
+}
+
+.ui.three.items {
+ margin-right: -1%;
+ margin-left: -1%;
+}
+
+.ui.three.items > .item {
+ width: 31.333%;
+ margin-right: 1%;
+ margin-left: 1%;
+}
+
+.ui.three.items > .item:nth-child(3n+1) {
+ clear: right;
+}
+
+.ui.four.items {
+ margin-right: -0.5%;
+ margin-left: -0.5%;
+}
+
+.ui.four.items > .item {
+ width: 24%;
+ margin-right: 0.5%;
+ margin-left: 0.5%;
+}
+
+.ui.four.items > .item:nth-child(4n+1) {
+ clear: right;
+}
+
+.ui.five.items {
+ margin-right: -0.5%;
+ margin-left: -0.5%;
+}
+
+.ui.five.items > .item {
+ width: 19%;
+ margin-right: 0.5%;
+ margin-left: 0.5%;
+}
+
+.ui.five.items > .item:nth-child(5n+1) {
+ clear: right;
+}
+
+.ui.six.items {
+ margin-right: -0.5%;
+ margin-left: -0.5%;
+}
+
+.ui.six.items > .item {
+ width: 15.66%;
+ margin-right: 0.5%;
+ margin-left: 0.5%;
+}
+
+.ui.six.items > .item:nth-child(6n+1) {
+ clear: right;
+}
+
+.ui.seven.items {
+ margin-right: -0.5%;
+ margin-left: -0.5%;
+}
+
+.ui.seven.items > .item {
+ width: 13.28%;
+ margin-right: 0.5%;
+ margin-left: 0.5%;
+ font-size: 11px;
+}
+
+.ui.seven.items > .item:nth-child(7n+1) {
+ clear: right;
+}
+
+.ui.eight.items {
+ margin-right: -0.25%;
+ margin-left: -0.25%;
+}
+
+.ui.eight.items > .item {
+ width: 12.0%;
+ margin-right: 0.25%;
+ margin-left: 0.25%;
+ font-size: 11px;
+}
+
+.ui.eight.items > .item:nth-child(8n+1) {
+ clear: right;
+}
+
+.ui.nine.items {
+ margin-right: -0.25%;
+ margin-left: -0.25%;
+}
+
+.ui.nine.items > .item {
+ width: 10.61%;
+ margin-right: 0.25%;
+ margin-left: 0.25%;
+ font-size: 10px;
+}
+
+.ui.nine.items > .item:nth-child(9n+1) {
+ clear: right;
+}
+
+.ui.ten.items {
+ margin-right: -0.2%;
+ margin-left: -0.2%;
+}
+
+.ui.ten.items > .item {
+ width: 9.6%;
+ margin-right: 0.2%;
+ margin-left: 0.2%;
+ font-size: 10px;
+}
+
+.ui.ten.items > .item:nth-child(10n+1) {
+ clear: right;
+}
+
+.ui.eleven.items {
+ margin-right: -0.2%;
+ margin-left: -0.2%;
+}
+
+.ui.eleven.items > .item {
+ width: 8.69%;
+ margin-right: 0.2%;
+ margin-left: 0.2%;
+ font-size: 9px;
+}
+
+.ui.eleven.items > .item:nth-child(11n+1) {
+ clear: right;
+}
+
+.ui.twelve.items {
+ margin-right: -0.1%;
+ margin-left: -0.1%;
+}
+
+.ui.twelve.items > .item {
+ width: 8.1333%;
+ margin-right: 0.1%;
+ margin-left: 0.1%;
+ font-size: 9px;
+}
+
+.ui.twelve.items > .item:nth-child(12n+1) {
+ clear: right;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/views/list.css b/css/semantic/rtl/uncompressed/views/list.css
new file mode 100644
index 0000000..b35525c
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/views/list.css
@@ -0,0 +1,695 @@
+/*
+ * # Semantic List - Flat
+ * http://github.com/jlukic/semantic-ui/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: April 26 2013
+ */
+
+/*******************************
+ List
+*******************************/
+
+ul.ui.list,
+ol.ui.list,
+.ui.list {
+ list-style-type: none;
+ margin: 1em 0em;
+ padding: 0em;
+}
+
+ul.ui.list ul,
+ol.ui.list ol,
+.ui.list .list {
+ margin: 0em;
+ padding: 0.5em 1em 0.5em 0em;
+}
+
+ul.ui.list:first-child,
+ol.ui.list:first-child,
+.ui.list:first-child {
+ margin-top: 0em;
+}
+
+ul.ui.list:last-child,
+ol.ui.list:last-child,
+.ui.list:last-child {
+ margin-bottom: 0em;
+}
+
+/*******************************
+ Content
+*******************************/
+
+/* List Item */
+
+ul.ui.list li,
+ol.ui.list li,
+.ui.list .item {
+ display: list-item;
+ list-style-type: none;
+ list-style-position: inside;
+ padding: 0.3em 0em;
+ line-height: 1.2em;
+}
+
+.ui.list .item:after {
+ content: '';
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+/* Sub-List */
+
+.ui.list .list {
+ clear: both;
+}
+
+/* Icon */
+
+.ui.list .item > .icon {
+ display: block;
+ float: right;
+ margin: 0em 0em 0em 1em;
+ padding: 0.1em 0em 0em 0em;
+}
+
+.ui.list .item > .icon:only-child {
+ display: inline-block;
+}
+
+.ui.horizontal.list .item > .icon {
+ margin: 0em;
+ padding: 0em 0em 0em 0.25em;
+}
+
+.ui.horizontal.list .item > .icon,
+.ui.horizontal.list .item > .icon + .content {
+ float: none;
+ display: inline-block;
+}
+
+/* Image */
+
+.ui.list .item > img {
+ display: block;
+ float: right;
+ margin-left: 1em;
+ vertical-align: middle;
+}
+
+/* Content */
+
+.ui.list .item > .content {
+ display: inline-block;
+ vertical-align: middle;
+ line-height: 1.2em;
+}
+
+.ui.list .item > .icon + .content {
+ display: table-cell;
+ vertical-align: top;
+}
+
+/* Link */
+
+.ui.list a {
+ cursor: pointer;
+}
+
+.ui.list a .icon {
+ color: rgba(0, 0, 0, 0.6);
+ -webkit-transition: color 0.2s ease;
+ -moz-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+}
+
+/* Header */
+
+.ui.list .header {
+ font-weight: bold;
+}
+
+.ui.list .description {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+/* Floated Content */
+
+.ui.list .item > .left.floated {
+ margin-left: 1em;
+ float: right;
+}
+
+.ui.list .item > .right.floated {
+ margin-right: 1em;
+ float: left;
+}
+
+/*******************************
+ Types
+*******************************/
+
+/*-------------------
+ Horizontal
+--------------------*/
+
+.ui.horizontal.list {
+ display: inline-block;
+ font-size: 0em;
+}
+
+.ui.horizontal.list > .item {
+ display: inline-block;
+ margin-right: 1em;
+ font-size: 1rem;
+}
+
+.ui.horizontal.list > .item:first-child {
+ margin-right: 0em;
+}
+
+.ui.horizontal.list .list {
+ padding-right: 0em;
+ padding-bottom: 0em;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*-------------------
+ Hover
+--------------------*/
+
+.ui.list a:hover .icon {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/*******************************
+ Variations
+*******************************/
+
+/*-------------------
+ Inverted
+--------------------*/
+
+.ui.inverted.list a .icon {
+ color: rgba(255, 255, 255, 0.6);
+}
+
+.ui.inverted.list .description {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.link.list .item {
+ color: rgba(255, 255, 255, 0.4);
+}
+
+/*-------------------
+ Link
+--------------------*/
+
+.ui.link.list .item {
+ color: rgba(0, 0, 0, 0.3);
+}
+
+.ui.link.list a.item,
+.ui.link.list .item a {
+ color: rgba(0, 0, 0, 0.5);
+}
+
+.ui.link.list a.item:hover,
+.ui.link.list .item a:hover {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.link.list a.item:active,
+.ui.link.list .item a:active {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+.ui.link.list a.active.item,
+.ui.link.list .active.item a {
+ color: rgba(0, 0, 0, 0.8);
+}
+
+/* Inverted */
+
+.ui.inverted.link.list a.item,
+.ui.inverted.link.list .item a {
+ color: rgba(255, 255, 255, 0.6);
+}
+
+.ui.inverted.link.list a.item:hover,
+.ui.inverted.link.list .item a:hover {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.link.list a.item:active,
+.ui.inverted.link.list .item a:active {
+ color: rgba(255, 255, 255, 0.9);
+}
+
+.ui.inverted.link.list a.active.item,
+.ui.inverted.link.list .active.item a {
+ color: rgba(255, 255, 255, 0.8);
+}
+
+/*-------------------
+ Selection
+--------------------*/
+
+.ui.selection.list .item {
+ cursor: pointer;
+ color: rgba(0, 0, 0, 0.4);
+ padding: 0.5em;
+ -webkit-transition: 0.2s color ease, 0.2s padding-right ease, 0.2s background-color ease;
+ -moz-transition: 0.2s color ease, 0.2s padding-right ease, 0.2s background-color ease;
+ transition: 0.2s color ease, 0.2s padding-right ease, 0.2s background-color ease;
+}
+
+.ui.selection.list .item:hover {
+ background-color: rgba(0, 0, 0, 0.02);
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.selection.list .item:active {
+ background-color: rgba(0, 0, 0, 0.05);
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.selection.list .item.active {
+ background-color: rgba(0, 0, 0, 0.04);
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.animated.list .item {
+ -webkit-transition: 0.2s color ease, 0.2s padding-right ease, 0.2s background-color ease;
+ -moz-transition: 0.2s color ease, 0.2s padding-right ease, 0.2s background-color ease;
+ transition: 0.2s color ease, 0.2s padding-right ease, 0.2s background-color ease;
+}
+
+.ui.animated.list:not(.horizontal) .item:hover {
+ padding-right: 1em;
+}
+
+.ui.animated.list:not(.horizontal) .item:hover .item:hover {
+ padding-right: 0.5em;
+}
+
+/* Inverted */
+
+.ui.inverted.selection.list .item {
+ color: rgba(255, 255, 255, 0.6);
+}
+
+.ui.inverted.selection.list .item:hover {
+ background-color: rgba(255, 255, 255, 0.04);
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.ui.inverted.selection.list .item:active {
+ background-color: rgba(255, 255, 255, 0.1);
+ color: rgba(255, 255, 255, 0.7);
+}
+
+.ui.inverted.selection.list .item.active {
+ background-color: rgba(255, 255, 255, 0.08);
+ color: #FFFFFF;
+}
+
+/*-------------------
+ Bulleted
+--------------------*/
+
+ul.ui.list,
+.ui.bulleted.list {
+ margin-right: 1.5em;
+}
+
+ul.ui.list li,
+.ui.bulleted.list .item {
+ position: relative;
+}
+
+ul.ui.list li:before,
+.ui.bulleted.list .item:before {
+ position: absolute;
+ right: -1.5em;
+ content: '•';
+}
+
+ul.ui.list ul,
+.ui.bulleted.list .list {
+ padding-right: 1.5em;
+}
+
+/* Horizontal Bulleted */
+
+ul.ui.horizontal.bulleted.list,
+.ui.horizontal.bulleted.list {
+ margin-right: 0em;
+}
+
+ul.ui.horizontal.bulleted.list li,
+.ui.horizontal.bulleted.list .item {
+ margin-right: 1.5em;
+}
+
+ul.ui.horizontal.bulleted.list li:before,
+.ui.horizontal.bulleted.list .item:before {
+ right: -0.9em;
+}
+
+ul.ui.horizontal.bulleted.list li:first-child,
+.ui.horizontal.bulleted.list .item:first-child {
+ margin-right: 0em;
+}
+
+ul.ui.horizontal.bulleted.list li:first-child::before,
+.ui.horizontal.bulleted.list .item:first-child::before {
+ display: none;
+}
+
+/*-------------------
+ Ordered
+--------------------*/
+
+ol.ui.list,
+.ui.ordered.list {
+ counter-reset: ordered;
+ margin-right: 2em;
+ list-style-type: none;
+}
+
+ol.ui.list li,
+.ui.ordered.list .item {
+ list-style-type: none;
+ position: relative;
+}
+
+ol.ui.list li:before,
+.ui.ordered.list .item:before {
+ position: absolute;
+ right: -2em;
+ counter-increment: ordered;
+ content: counters(ordered, ".");
+ text-align: left;
+ vertical-align: top;
+ opacity: 0.75;
+}
+
+ol.ui.list ol,
+.ui.ordered.list .list {
+ counter-reset: ordered;
+ padding-right: 2.5em;
+}
+
+ol.ui.list ol li:before,
+.ui.ordered.list .list .item:before {
+ right: -2.5em;
+}
+
+/* Horizontal Ordered */
+
+ol.ui.horizontal.list,
+.ui.ordered.horizontal.list {
+ margin-right: 0em;
+}
+
+ol.ui.horizontal.list li:before,
+.ui.ordered.horizontal.list .item:before {
+ position: static;
+ right: 0em;
+ margin: 0em 0em 0em 0.5em;
+}
+
+/*-------------------
+ Divided
+--------------------*/
+
+.ui.divided.list > .item,
+.ui.divided.list:not(.horizontal) > .list {
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ padding-right: 0.5em;
+ padding-left: 0.5em;
+}
+
+.ui.divided.list .item .menu .item {
+ border-width: 0px;
+}
+
+.ui.divided.list .item:first-child {
+ border-top-width: 0px;
+}
+
+/* Sub Menu */
+
+.ui.divided.list:not(.horizontal) .list {
+ margin-right: -0.5em;
+ margin-left: -0.5em;
+}
+
+.ui.divided.list:not(.horizontal) .list .item {
+ padding-right: 1em;
+ padding-left: 1em;
+}
+
+.ui.divided.list:not(.horizontal) .list .item:first-child {
+ border-top-width: 1px;
+}
+
+/* Divided bulleted */
+
+.ui.divided.bulleted.list {
+ margin-right: 0em;
+}
+
+.ui.divided.bulleted.list .item {
+ padding-right: 1.5em;
+}
+
+.ui.divided.bulleted.list .item:before {
+ right: 0.5em;
+}
+
+/* Divided ordered */
+
+.ui.divided.ordered.list {
+ margin-right: 0em;
+}
+
+.ui.divided.ordered.list > .item {
+ padding-right: 2em;
+ padding-left: 2em;
+}
+
+.ui.divided.ordered.list > .item:before {
+ right: 0.5em;
+}
+
+.ui.divided.ordered.list .item .list {
+ margin-right: -2em;
+ margin-left: -2em;
+}
+
+/* Divided horizontal */
+
+.ui.divided.horizontal.list {
+ margin-right: 0em;
+}
+
+.ui.divided.horizontal.list > .item {
+ border-top: none;
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
+ margin: 0em;
+ padding-right: 0.75em;
+ padding-left: 0.75em;
+ line-height: 0.6em;
+}
+
+.ui.horizontal.divided.list > .item:first-child {
+ border-right: none;
+ padding-right: 0em;
+}
+
+/* Inverted */
+
+.ui.divided.inverted.list > .item,
+.ui.divided.inverted.list > .list {
+ border-color: rgba(255, 255, 255, 0.2);
+}
+
+.ui.divided.inverted.horizontal.list .item {
+ border-color: rgba(255, 255, 255, 0.2);
+}
+
+/*-------------------
+ Celled
+--------------------*/
+
+.ui.celled.list > .item,
+.ui.celled.list > .list {
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ padding-right: 0.5em;
+ padding-left: 0.5em;
+}
+
+.ui.celled.list > .item:last-child {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* Sub Menu */
+
+.ui.celled.list .item .list {
+ margin-right: -0.5em;
+ margin-left: -0.5em;
+}
+
+.ui.celled.list .item .list .item {
+ border-width: 0px;
+}
+
+.ui.celled.list .list .item:first-child {
+ border-top-width: 0px;
+}
+
+/* Celled Bulleted */
+
+.ui.celled.bulleted.list {
+ margin-right: 0em;
+}
+
+.ui.celled.bulleted.list > .item {
+ padding-right: 1.5em;
+}
+
+.ui.celled.bulleted.list > .item:before {
+ right: 0.5em;
+}
+
+/* Celled Ordered */
+
+.ui.celled.ordered.list {
+ margin-right: 0em;
+}
+
+.ui.celled.ordered.list .item {
+ padding-right: 2em;
+ padding-left: 2em;
+}
+
+.ui.celled.ordered.list .item:before {
+ right: 0.5em;
+}
+
+.ui.celled.ordered.list .item .list {
+ margin-right: -2em;
+ margin-left: -2em;
+}
+
+/* Celled Horizontal */
+
+.ui.horizontal.celled.list {
+ margin-right: 0em;
+}
+
+.ui.horizontal.celled.list .item {
+ border-top: none;
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
+ margin: 0em;
+ padding-right: 0.75em;
+ padding-left: 0.75em;
+ line-height: 0.6em;
+}
+
+.ui.horizontal.celled.list .item:last-child {
+ border-bottom: none;
+ border-left: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+/* Inverted */
+
+.ui.celled.inverted.list > .item,
+.ui.celled.inverted.list > .list {
+ border-color: rgba(255, 255, 255, 0.2);
+}
+
+.ui.celled.inverted.horizontal.list .item {
+ border-color: rgba(255, 255, 255, 0.2);
+}
+
+/*-------------------
+ Relaxed
+--------------------*/
+
+.ui.relaxed.list:not(.horizontal) .item {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+}
+
+.ui.relaxed.list .header {
+ margin-bottom: 0.25em;
+}
+
+.ui.horizontal.relaxed.list .item {
+ padding-right: 1.25em;
+ padding-left: 1.25em;
+}
+
+.ui.very.relaxed.list:not(.horizontal) .item {
+ padding-top: 1em;
+ padding-bottom: 1em;
+}
+
+.ui.very.relaxed.list .header {
+ margin-bottom: 0.5em;
+}
+
+.ui.horizontal.very.relaxed.list .item {
+ padding-right: 2em;
+ padding-left: 2em;
+}
+
+/*-------------------
+ Sizes
+--------------------*/
+
+.ui.mini.list .item {
+ font-size: 0.7rem;
+}
+
+.ui.tiny.list .item {
+ font-size: 0.8125rem;
+}
+
+.ui.small.list .item {
+ font-size: 0.875rem;
+}
+
+.ui.list .item {
+ font-size: 1em;
+}
+
+.ui.large.list .item {
+ font-size: 1.125rem;
+}
+
+.ui.big.list .item {
+ font-size: 1.25rem;
+}
+
+.ui.huge.list .item {
+ font-size: 1.375rem;
+}
+
+.ui.massive.list .item {
+ font-size: 1.5rem;
+}
\ No newline at end of file
diff --git a/css/semantic/rtl/uncompressed/views/statistic.css b/css/semantic/rtl/uncompressed/views/statistic.css
new file mode 100644
index 0000000..7d76c16
--- /dev/null
+++ b/css/semantic/rtl/uncompressed/views/statistic.css
@@ -0,0 +1,32 @@
+/*
+ * # Statistic
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ * Released: Aug 20, 2013
+ */
+
+/*******************************
+ Statistic
+*******************************/
+
+.ui.statistic {
+ text-align: center;
+}
+
+/*******************************
+ Content
+*******************************/
+
+.ui.statistic > .number {
+ font-size: 4em;
+ font-weight: bold;
+ color: rgba(0, 0, 0, 0.7);
+}
+
+.ui.statistic > .description {
+ opacity: 0.8;
+}
\ No newline at end of file
diff --git a/css/semantic/server/README.md b/css/semantic/server/README.md
new file mode 100755
index 0000000..e6a1fb7
--- /dev/null
+++ b/css/semantic/server/README.md
@@ -0,0 +1,17 @@
+# Semantic Docs
+
+## How to Use
+
+This folder contains the templates used to generate the static website for Semantic UI
+
+To create the docs yourself, run the commands in the top-level directory:
+
+```
+npm install -g docpad
+docpad install eco;
+docpad update; docpad upgrade;
+```
+
+This node project uses docpad to generate the static documentation files for Semantic UI.
+
+
diff --git a/css/semantic/server/documents/collection.html.eco b/css/semantic/server/documents/collection.html.eco
new file mode 100755
index 0000000..d921e00
--- /dev/null
+++ b/css/semantic/server/documents/collection.html.eco
@@ -0,0 +1,137 @@
+---
+layout : 'default'
+css : 'index'
+
+title : 'UI Collections'
+description : 'UI collections are elements which contain other elements which often appear together.'
+type : 'Semantic'
+---
+
+<%- @partial('header') %>
+
+
+
+
+
+
+
+
+
Breadcrumb
+
A breadcrumb is a menu to show the location of the current section in relation to other sections.
+
+
+
+
+
+
Form
+
A form is used to solicit a user response
+
+
+
+
+
+
Grid
+
A grid helps harmonize negative space in a layout
+
+
+
+
+
+
+
+
+
Menu
+
A menu organizes related links
+
+
+
+
+
+
+
+
Please enter your name
+
+
+
+
Message
+
Messages alert a user to something important.
+
+
+
+
+
+
+
+ Name
+ Status
+
+
+
+ John
+ Approved
+
+ John
+ Unconfirmed
+
+
+ Sally
+ Denied
+
+
+
+
+
+
Table
+
A table collects related data into rows of content
+
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/server/documents/collections/breadcrumb.html.eco b/css/semantic/server/documents/collections/breadcrumb.html.eco
new file mode 100755
index 0000000..bfbbdd4
--- /dev/null
+++ b/css/semantic/server/documents/collections/breadcrumb.html.eco
@@ -0,0 +1,92 @@
+---
+layout : 'default'
+css : 'breadcrumb'
+title : 'Breadcrumb'
+description : 'A breadcrumb is a menu to show the location of the current section in relation to other sections.'
+type : 'UI Collection'
+---
+
+<%- @partial('header') %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
A breadcrumb can contain a divider to show the relationship between sections, this can be formatted as an icon or text.
+
+
+
+
+
+
A breadcrumb can contain sections that can either be formatted as a link or text
+
+
+
+
+
+
+
+
A breadcrumb can vary in size
+
+
+
+
+
+
diff --git a/css/semantic/server/documents/collections/form.html.eco b/css/semantic/server/documents/collections/form.html.eco
new file mode 100755
index 0000000..111085c
--- /dev/null
+++ b/css/semantic/server/documents/collections/form.html.eco
@@ -0,0 +1,645 @@
+---
+layout : 'default'
+css : 'form'
+
+title : 'Form'
+description : 'A form is a collection of user input elements'
+type : 'UI Collection'
+---
+
+
+<%- @partial('header') %>
+
+
+
+
+
+
+
+
+
+
+ Forms always include fields, and fields always contain form elements. Fields themselves may also include:
+ inputs , standard form fields, labels , selection dropdowns , textareas, as well as:
+ checkboxes , and message blocks .
+
+
Validation messages use messages which are formatted for use inside forms.
+
+
If you are looking for form validation, you should check out form validation .
+
+
+
This example uses a ui segment to add the padding and background color. This is not required.
+
+
+
+
+
+
+
+
+
A field is a form element containing a label and an input
+
+
+
+
+
+
A textarea uses the default form element
+
+
+
+
+
+
UI Checkboxes allow a user to select individual options in a form
+
+
+ $('.ui.checkbox')
+ .checkbox()
+ ;
+
+
+
+
+
+
+
+
+
Using checkboxes with HTML only, you must match the for attribute of your label to the id attribute of your checkbox.
+
+
+
+
+
+
Radio boxes are a type of UI Checkboxes allowing only exclusive choice of options
+
+ $('.ui.radio.checkbox')
+ .checkbox()
+ ;
+
+
+
+
+
+
+
Using checkboxes with HTML only, you must match the for attribute of your label to the id attribute of your checkbox.
+
+
+
+
+
+
+
+
Text blocks have special meaning inside a form tag. Any info, error, or warning message blocks found inside a form are hidden by default.
+
+
+
+
+
+
+
+
+
+
If a form is in loading state, it will automatically show a loading indicator:
+
+
+
+
+
+
+
If a form is in an error state, it will automatically show any error message blocks:
+
+
+
+
+
+
If a form is in warning state, it will automatically show any warning message block:
+
+
+
+
+
+
+
+
+
Individual fields may contain an error state
+
+
+
+
+
+
+
Individual fields may be disabled or read only
+
+
+
+
+
+
+
+
+
+
+
A form can take the width of its container
+
+
+
+
+
+
A form can also be small or large
+
+
+
+
+
+
+
+
A form on a dark background may have to invert its color scheme
+
+
+
+
+
+
+
+
+
+
A field can have its label next to instead of above it.
+
+
+
+
+
+
+
A field can let users know they are for dates
+
+
+
+
+
+
+
+
+
Fields can exist together side by side
+
+
+
+
+
Grouped fields automatically receive responsive styling, swapping to one field per row for mobile.
+
+
+
+
+
+
+
+
Fields can be grouped to show related choices
+
+
+
+
+
+
Multiple fields may be inline in a row
+
+
+
+
diff --git a/css/semantic/server/documents/collections/grid.html.eco b/css/semantic/server/documents/collections/grid.html.eco
new file mode 100755
index 0000000..81e16c6
--- /dev/null
+++ b/css/semantic/server/documents/collections/grid.html.eco
@@ -0,0 +1,889 @@
+---
+layout : 'default'
+css : 'Grid'
+
+title : 'Grid'
+description : 'A grid is a structure used to harmonize negative space in a layout'
+type : 'UI Collection'
+---
+
+<%- @partial('header') %>
+
+
+
+
+
+
+
+
+
+
+
+
A grid is made up of columns of content with gutters to provide negative space between columns.
+
+
All grid systems must assume an arbitrary amount of column rows. Semantic by default assumes 16 columns
+
+
+
+
+
+
A page grid is used to layout page contents into a grid system. Page grids exists on the top level of a web site. A page grid has gutters to the left and right of its columns to center content on a page.
+
+
+ Semantic UI's page grid by default will change the page gutters to increase at 250pixel intervals.
+
+
+
+
+
+
+
+
+
Inbox
+
Welcome to your inbox. Would you like to see more information?
+
+
+
+
+
+
+
+
A grid can have dividers between its columns
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
+
+
+
A grid can have dividers between rows
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
+
+
+
+
A grid can have rows divided into cells
+
+
+
+
+
+
Lorem ipsum dolor sitos. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
+
+
+
+
+
A row is used to create vertical padding between groups of columns on a page. If no rows are specified columns will sit flush vertically.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Columns each contain gutters giving them equal vertical spacing from other columns. Columns by default do not take up their entire row height.
+
+
+
+
+
+
+
+
+
+
A grid can have a different number of columns per row
+
+
+
+
+
+
A grid can increase its gutters to allow for more negative space
+
+
+
+
+
+
A grid can double its
+
+ A grid will round its columns to the closest reasonable value when doubling, for example a five column grid will double 1 mobile, 3 tablet, 5 desktop
+
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
+
+
+
A grid can have its columns stack on-top of each other after reaching mobile breakpoints
+
+ To see a grid stack, try resizing your browser to a small width
+
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
+
+
+
+
A grid can specify its text alignment
+
+
+
+
+
+
A grid can specify its vertical alignment to have all its columns vertically centered.
+
+
+
+
+
+
+
+
A grid can have its columns, or rows only show content for computer, tablet, or mobile.
+
+ Breakpoints are 768px and below for mobile, 768-992px for tablet and 992px+ for computer
+
+
+
+
+
+
+
+ Tablet and Mobile
+
+
+
+
+
+
+
+
+
+
+
+
+
A row can specify that it is equal height so all of its columns appear the length of its longest column.
+
+
+
+
+
+
This is a very long row with lots of text in it and way more text than the other rows
+
It might even span for multiple paragraphs.
+
+
+
+
+
+
+
A row can also specify its vertical alignment to have its columns vertically centered.
+
+
+
+
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam blandit sagittis elit, nec pharetra justo lobortis vitae. Quisque sed libero ut lacus mattis lacinia. Pellentesque pharetra vel quam sed tristique. Aenean sit amet purus sed sapien suscipit rhoncus. Nunc vel pharetra elit. Integer eleifend in turpis vel suscipit. Mauris porttitor nunc ante, eu vestibulum augue facilisis lacinia. Curabitur blandit urna lorem, et ornare mi laoreet iaculis. Nunc volutpat ultrices libero quis molestie. Nunc ac porta odio. Quisque interdum sodales augue, quis facilisis sem elementum quis.
+
+
+
+
+
+
+
+
+
+
+
+
A column can be "floated" to either the left or right of its row.
+
+
+
+
+
A column can vary in width taking up more than a single grid column.
+
+
+
Column One Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum iaculis sapien.
+
+
+
Column Two Aliquam lobortis commodo sem ac accumsan. Vestibulum non faucibus lorem. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Curabitur sed lorem lorem. Nam augue erat, dignissim nec aliquam vel, congue et sapien. Integer viverra justo vel nibh suscipit commodo. Nullam ut turpis nibh, in luctus risus. Sed ut risus nec dui mattis porta. Nam nisi magna, ornare mollis congue a, suscipit at nisl.
+
+
+
Column Three Donec semper mollis condimentum. Aenean eget rutrum magna. Mauris ornare nibh scelerisque turpis lobortis dignissim. Etiam eleifend justo eget quam semper vulputate. Nulla et risus convallis velit molestie iaculis. Aliquam erat volutpat.
+
+
+
+
+
diff --git a/css/semantic/server/documents/collections/menu.html.eco b/css/semantic/server/documents/collections/menu.html.eco
new file mode 100755
index 0000000..f6f537a
--- /dev/null
+++ b/css/semantic/server/documents/collections/menu.html.eco
@@ -0,0 +1,1007 @@
+---
+layout : 'default'
+css : 'menu'
+
+title : 'Menu'
+description : 'A menu is a collection of elements showing related user actions'
+type : 'UI Collection'
+---
+
+
+<%- @partial('header') %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
A vertical menu displays elements vertically..
+
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 .
+
+
+
+
+
+
+
A pagination menu is specially formatted to present links to pages of content
+
+
+
+
+
+
A message can be formatted to show tabs of information
+
+
+
+
+
+
A tiered menu can show the sub-sections available as part of an activated section.
+
+
+
+
+
+
A tiered menu can show the sub-sections available as part of an activated section.
+
+
+
+
+
+
+
A secondary menu allows for a section of content on a page to be activated
+
+
+
+
+
+
+
+
+
+
A menu can point to content to show relationship
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
A menu can display simple text links
+
+
+
+
+
+
+
+
+
+
+
A menu may have a header to help label sections of a menu.
+
+
+
+
+
+
A menu may have a simple text item.
+
+
Single paragraphs are automatically formatted as text. You can also specify an item as textual by adding the classname text
+
+
+
+
+
+
+
A menu item can contain an input inside of it
+
+
+
+
+
+
+
A menu item can contain a button inside of it
+
+
+
+
+
+
+
+
A menu may contain a link item, or an item formatted as if it is a link.
+
+
+
Items that are anchor tags will automatically be formatted as a link.
+
+
+
+
+
+
+
An item may contain a nested menu in a dropdown.
+
+
Dropdowns use UI dropdown elements . To have a dropdown open without javascript, use the simple variation
+
+
+
+
+
+
A menu may contain another menu group in the same level as menu items.
+
+
+
+
+
+
A menu item may contain another menu nested inside that acts as a grouped sub-menu.
+
+
+
+
+
+
+
+
+
A menu item can be hovered
+
Menu items are only hoverable if they are links, defined with the variant "link", or are given the class name hover programmatically.
+
+
+
+
+
+
+
A menu item can be pressed in
+
+
+
+
+
+
A menu item can be active
+
+
+
+
+
+
+
+
+
+
A menu may have its colors inverted to show greater contrast
+
+
+
+
+
Additional colors can be specified.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
These colors can also be inverted
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
A menu may have just icons
+
+
+
+
+
+
+
+
A menu may have labeled icons
+
+
+
+
+
+
+
+
+
A vertical menu may take the size of its container. (A horizontal menu does this by default)
+
+
+
+
+
+
A menu may divide its items evenly
+
+
+
+
+
A vertical menu can point to content adjacent to itself to show ownership
+
+
+
+
+
+
+
A menu may be attached to other content segments
+
+
+ There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.
+
+
+
+
+
+
A horizontal menu can vary in size
+
+
+
+
+
+
+
A vertical menu can also vary in size
+
+
+
+
+
+
+
+
+
+
+
A menu item or menu can remove element padding, vertically or horizontally
+
+
+
+
+
+
+
A menu item or menu can have no borders
+
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/server/documents/collections/message.html.eco b/css/semantic/server/documents/collections/message.html.eco
new file mode 100755
index 0000000..f65e58b
--- /dev/null
+++ b/css/semantic/server/documents/collections/message.html.eco
@@ -0,0 +1,250 @@
+---
+layout : 'default'
+css : 'text'
+
+title : 'Message'
+description : 'Messages alert a user to information they must immediately consider before proceeding on to the normal content of the page'
+type : 'UI Collection'
+---
+
+<%- @partial('header') %>
+
+
+
+
+
+
+
+
+
+
+
+
A basic message
+
+
+
+ It's good to see you again. I have had a lot to think about since our last visit, I've changed much as a person and I can see that you have too.
+
+
+ Perhaps we can talk about it if you have the time.
+
+
+
+
+
+
+
A message with a list
+
+
+
+ It's good to see you again.
+ Did you know it's been a while?
+
+
+
+
+
+
+
A message can contain an icon.
+
+
+
+
+
Get all the best inventions in your e-mail every day. Sign up now!
+
+
+
+
+
+
+
A message that the user can choose to hide
+
+
+
+
This is a special notification which you can dismiss if you're bored with it.
+
+
+
Dismissable blocks do not automatically close when using the close icon, this behavior must be defined using javascript, for example:
+
+ $('.message .close').on('click', function() {
+ $(this).closest('.message').fadeOut();
+ });
+
+
+
+
+
+
+
+
+
+
Text Blocks can be hidden
+
+
+
+
+
+
Text Blocks can be set to visible if they need to force themselves to be shown.
+
+
You can always see me
+
+
+
+
+
+
+
+
A message can float above content that it is related to
+
+
+
+
+
+
A message can only take up the width of its content.
+
+
Get all the best inventions in your e-mail every day. Sign up now!
+
+
+
+
+
+
A message can be formatted to attach itself to other content
+
+
+
Get all the best inventions in your e-mail every day. Sign up now!
+
+
+
+ Are you sure you know what you're doing?
+
+
+
+
+
A message can be formatted to be different colors
+
Red
+
Blue
+
Green
+
Yellow
+
+
+
+
+
+
A message may be formatted to display warning messages.
+
+
+
+ Visit our registration page, then try again
+
+
+
+
+
+
A message may be formatted to display information.
+
+
+
+
+ It's good to see you again.
+ Did you know it's been a while?
+
+
+
+
+
+
+
A message may be formatted to display a success message.
+
+
+
+
+
+
+
+
+
A message may be formatted to display errors.
+
+
+
+
+ It's good to see you again.
+ Did you know it's been a while?
+
+
+
+
+
+
+
A message can have different sizes
+
+ This is a very small message.
+
+
+ This is large
+
+
+ This is huge
+
+
+ This is massive
+
+
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/server/documents/collections/table.html.eco b/css/semantic/server/documents/collections/table.html.eco
new file mode 100755
index 0000000..f195c89
--- /dev/null
+++ b/css/semantic/server/documents/collections/table.html.eco
@@ -0,0 +1,683 @@
+---
+layout : 'default'
+css : 'table'
+
+title : 'Table'
+description : 'Tables display collections of data grouped into rows'
+type : 'UI Collection'
+---
+
+
+<%- @partial('header') %>
+
+
+
+
+
+
+
+
+
+
+
A standard table
+
+
+
+
+
Tables are designed to be responsive. Table cells will stack when a mobile viewport size is reached.
+
+
+
+
This example uses a segment to add padding and a background color.
+
+
+
+ Name
+ Status
+ Notes
+
+
+
+ John
+ Approved
+ None
+
+
+ Jamie
+ Approved
+ Requires call
+
+
+ Jill
+ Denied
+ None
+
+
+
+
+ Add User
+
+
+
+
+
+
+
+
+
+
A cell or row may let a user know whether a value is good or bad
+
+
+ Name
+ Status
+ Notes
+
+
+
+ No Name Specified
+ Unknown
+ None
+
+
+ Jimmy
+ Approved
+ None
+
+
+ Jamie
+ Unknown
+ Requires call
+
+
+ Jill
+ Unknown
+ None
+
+
+
+
+
+
+
+
+
A cell or row may attention the user to an error or a negative value
+
+
+ Name
+ Status
+ Notes
+
+
+
+ No Name Specified
+ Approved
+ None
+
+
+ Jimmy
+ Cannot pull data
+ None
+
+
+ Jamie
+ Approved
+ Classified
+
+
+ Jill
+ Approved
+ None
+
+
+
+
+
+
+
+
A cell or row may warn a user
+
+
+ Name
+ Status
+ Notes
+
+
+
+ No Name Specified
+ Unknown
+ None
+
+
+ Jimmy
+ Requires Action
+ None
+
+
+ Jamie
+ Unknown
+ Hostile
+
+
+ Jill
+ Unknown
+ None
+
+
+
+
+
+
+
+
A cell or row can be active or selected by a user
+
+
+ Name
+ Status
+ Notes
+
+
+
+ Jamie
+ Approved
+ Requires call
+
+
+ John
+ Selected
+ None
+
+
+ Jamie
+ Approved
+ Requires call
+
+
+ Jill
+ Approved
+ None
+
+
+
+
+
+
+
A cell can be disabled
+
+
+ Name
+ Status
+ Notes
+
+
+
+ Jamie
+ Approved
+ Requires call
+
+
+ John
+ Selected
+ None
+
+
+ Jamie
+ Approved
+ Requires call
+
+
+ Jill
+ Approved
+ None
+
+
+
+
+
+
+
+
+
+
+
A table may be divided each row into separate cells
+
+
+ Name
+ Status
+ Notes
+
+
+
+ John
+ Approved
+ None
+
+
+ Jamie
+ Approved
+ Requires call
+
+
+ Jill
+ Denied
+ None
+
+
+
+ 3 People
+ 2 Approved
+
+
+
+
+
+
+
+
A table can reduce its complexity to increase readability.
+
+
+ Name
+ Status
+ Notes
+
+
+
+ John
+ Approved
+ None
+
+
+ Jamie
+ Approved
+ Requires call
+
+
+ Jill
+ Denied
+ None
+
+
+
+
+
+
+
+
+
A table can specify its column count to divide its content evenly
+
+
+ Name
+ Status
+ Age
+ Gender
+ Notes
+
+
+
+ John
+ Approved
+ 22
+ Male
+ None
+
+
+ Jamie
+ Approved
+ 32
+ Male
+ Requires call
+
+
+ Jill
+ Denied
+ 22
+ Female
+ None
+
+
+
+ 3 People
+ 2 Approved
+
+
+
+
+
+
+
+
+
+
A table can specify the width of individual columns independently.
+
Tables use a 16 column grid. This should be the total width of all elements in a column
+
+
+ Name
+ Status
+
+
+
+ John
+ Approved
+
+
+ Jamie
+ Approved
+
+
+ Jill
+ Denied
+
+
+
+ 3 People
+ 2 Approved
+
+
+
+
+
+
+
+
By default tables take the size of their container. A collapsing takes up only as much space as its rows.
+
+
+ Name
+ Status
+ Notes
+
+
+
+ John
+ Approved
+ None
+
+
+ Jamie
+ Approved
+ Requires call
+
+
+ Jill
+ Denied
+ None
+
+
+
+ 3 People
+ 2 Approved
+
+
+
+
+
+
+
+
+
A tables colors can be inverted
+
+
+ Name
+ Status
+ Notes
+
+
+
+ John
+ Approved
+ None
+
+
+ Jamie
+ Approved
+ Requires call
+
+
+ Jill
+ Denied
+ None
+
+
+
+ 3 People
+ 2 Approved
+
+
+
+
+
+
+
+ Name
+ Status
+ Notes
+
+
+
+ John
+ Approved
+ None
+
+
+ Jamie
+ Approved
+ Requires call
+
+
+ Jill
+ Denied
+ None
+
+
+
+ 3 People
+ 2 Approved
+
+
+
+
+
+
+
+
A table may be formatted specifically to provide definitions
+
+
+ Behavior
+ Arguments
+ Description
+
+
+
+ reset rating
+ None
+ Resets rating to default value
+
+
+ set rating
+ rating (integer)
+ Sets the current star rating to specified value
+
+
+
+
+
+
+
A table may allow a user to sort contents by clicking on a table header.
+
+
Adding a classname of
ascending or
descending to the
th will show the user the direction of sort. This example uses a modified version of the kylefox's
tablesort plugin to provide the proper class names.
+
+
+
+
+ Name
+ Status
+ Notes
+
+
+
+ John
+ No Action
+ None
+
+
+ Jamie
+ Approved
+ Requires call
+
+
+ Jill
+ Denied
+ None
+
+
+
+ 3 People
+ 2 Approved
+
+
+
+
+
+
+
A table may sometimes need to be more padded for legibility
+
+
+ Name
+ Status
+ Notes
+
+
+
+ John
+ Approved
+ He is a very nice guy and I enjoyed talking to him on the telephone. I hope we get to talk again.
+
+
+ Jamie
+ Approved
+ Jamie was not interested in purchasing our product.
+
+
+
+
+
+
+
A table may sometimes need to be more compact to make more rows visible at a time
+
+
+ Name
+ Status
+ Notes
+
+
+
+ John
+ Approved
+ None
+
+
+ Jamie
+ Approved
+ Requires call
+
+
+ John
+ Approved
+ None
+
+
+ Jamie
+ Approved
+ Requires call
+
+
+ John
+ Approved
+ None
+
+
+ Jamie
+ Approved
+ Requires call
+
+
+ John
+ Approved
+ None
+
+
+ Jamie
+ Approved
+ Requires call
+
+
+
+
+
+
+
+
A table can also be small or large
+
+
+ Name
+ Status
+ Notes
+
+
+
+ John
+ Approved
+ None
+
+
+ Jamie
+ Approved
+ Requires call
+
+
+ Jill
+ Denied
+ None
+
+
+
+ 3 People
+ 2 Approved
+
+
+
+
+
+
+
+ Name
+ Status
+ Notes
+
+
+
+ John
+ Approved
+ None
+
+
+ Jamie
+ Approved
+ Requires call
+
+
+ Jill
+ Denied
+ None
+
+
+
+ 3 People
+ 2 Approved
+
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/server/documents/download.html.eco b/css/semantic/server/documents/download.html.eco
new file mode 100755
index 0000000..6dc91d4
--- /dev/null
+++ b/css/semantic/server/documents/download.html.eco
@@ -0,0 +1,15 @@
+---
+layout : 'default'
+css : 'download'
+
+title : 'Download'
+description : 'Build your Semantic download'
+type : 'Library'
+---
+
+<%- @partial('header') %>
+
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/server/documents/element.html.eco b/css/semantic/server/documents/element.html.eco
new file mode 100755
index 0000000..b8839c5
--- /dev/null
+++ b/css/semantic/server/documents/element.html.eco
@@ -0,0 +1,257 @@
+---
+layout : 'default'
+css : 'progress'
+
+title : 'UI Elements'
+description : 'Elements are the basic building blocks of a website.'
+type : 'Semantic'
+---
+
+<%- @partial('header') %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Button
+
A button indicates a possible user action.
+
+
+
+
+
+
Divider
+
A divider visually segments content into separate groups
+
+
+
+
+
+
+
+
Header
+
Headers provide a short summary of content
+
+
+
+
+
+
Progress Bar
+
A progress bar displays progress on a task
+
+
+
+
+
+
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante.
+
+
+
+
Segment
+
A segment is used to create a grouping of related content.
+
+
+
+
+
+
+
+
+
+
+
+
+
Image
+
An image is a graphic representation of something
+
+
+
+
+
+
+ First
+
+
+ Second
+
+
+ Third
+
+
+ Last
+
+
+
+
+
Step
+
Steps show the current activity in a series of steps.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Icon
+
An icon is a glyph used to represent another concept more simply
+
+
+
+
+
+
Label
+
Labels give descriptions to sections of content.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/server/documents/elements/button.html.eco b/css/semantic/server/documents/elements/button.html.eco
new file mode 100755
index 0000000..873eccc
--- /dev/null
+++ b/css/semantic/server/documents/elements/button.html.eco
@@ -0,0 +1,470 @@
+---
+layout : 'default'
+css : 'button'
+title : 'Button'
+description : 'Buttons indicate a possible user action.'
+type : 'UI Element'
+---
+
+
+<%- @partial('header') %>
+
+
+
+
+
+
+
+
+
+
+
A standard button
+
+ Follow
+
+
+
+
+
+
A button can animate to show hidden content
+
The button will be automatically sized according to the visible content size. Make sure there is enough room for the hidden content to show
+
+
+
+
+
+
+
+
+
+
A button can have only an icon
+
+
+
+
+
+
+
+
A button can have an icon and a label
+
+
+ Pause
+
+
+
+ Next
+
+
+
+
+
+
+
Buttons can exist together as a group
+
+
+
+
+
+
Button groups can show groups of icons
+
+
+
+
+
+
+
+
Button groups can be separated by conditionals
+
+
+
+
+
+
+
+
A button can change to show a user has hovered their mouse
+
+ Follow
+
+
+
+
+
+
A button can change when pressed using touch or mouse events
+
+
+ Follow
+
+
+
+
+
+
A button can show it is currently the active user selection
+
+
+ Follow
+
+
+
+
+
+
A button can show it is currently unable to be interacted with
+
+
+ Followed
+
+
+
+
+
+
A button can show a loading indicator
+
Loading Button
+
+
+
+
+
+
+
+
A button can be formatted to link to a social website
+
+
+ Facebook
+
+
+
+
+ Google Plus
+
+
+
+ VK
+
+
+
+
+ LinkedIn
+
+
+
+ Instagram
+
+
+
+ YouTube
+
+
+
+
+
+
+
A button can have different sizes:
+
+ Mini
+
+
+ Tiny
+
+
+ Small
+
+
+ Medium
+
+
+ Large
+
+
+ Big
+
+
+ Huge
+
+
+ Massive
+
+
+
+
+
+
A button can be formatted to show different levels of emphasis
+
+ Add to Cart
+
+
+ Save
+
+
+
+
+
+
A basic button removes all unnecessary formatting
+
+
+ Add Friend
+
+
+
+
+
+
+ Change Language
+
+
+
+
+
+
+
+
+
+
A button can be formatted to toggle on and off
+
+ Vote
+
+
+
+
+
+
A button can be positive or negative:
+
Positive Button
+
Negative Button
+
+
+
+
+
A button can fit parent container:
+
Fits container
+
+
+
+
+
A button can be circular:
+
Rounded
+
+
+
+
+
+
+
A button can be attached to the top or bottom of other content
+
Top
+
+
Bottom
+
+
+
+
+
A button can be attached to the left or right of other content
+
Left
+
Right
+
+
+
+
+
+
+
+
Groups can be formatted to appear vertically
+
+
+
+
+
+
Groups can be formatted as icons
+
+
+
+
+
+
Groups can be formatted as labeled icons
+
+
+
+
+
+
+
Groups can be divided evenly to fit parent
+
Evenly divided elements can either use the number or the word, i.e. 2 or "two"
+
+
+
+
+
+
+
+
+
+
+
Groups can have a shared color
+
+
+
+
+
+
A button group can be formatted to remove extra formatting
+
+
+
+
+
+
Groups can have a shared size
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/server/documents/elements/divider.html.eco b/css/semantic/server/documents/elements/divider.html.eco
new file mode 100755
index 0000000..f0c2af3
--- /dev/null
+++ b/css/semantic/server/documents/elements/divider.html.eco
@@ -0,0 +1,148 @@
+---
+layout : 'default'
+css : 'divider'
+title : 'Divider'
+description : 'A divider visually segments content into separate groups'
+type : 'UI Element'
+---
+
+<%- @partial('header') %>
+
+
+
+
+
+
+
+
+
+
+
If you are looking to add a divider in between grid rows, you can use the
ui divided grid variation. For more information check out
the grid definition
+
A standard divider
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
A divider can segment content vertically
+
+
+
+
+
+
A divider can segment content horizontally
+
+
+
+ Or
+
+
+ Create New Order
+
+
+
+
+
+
+
A divider can include an icon
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
+
+
+
A divider can have its colors inverted
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
+
A divider can be fitted, without any space above or below it.
+
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
+
A divider can provide greater margins to divide sections of content
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
A divider can clear the contents above it
+
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/server/documents/elements/header.html.eco b/css/semantic/server/documents/elements/header.html.eco
new file mode 100755
index 0000000..95e52dc
--- /dev/null
+++ b/css/semantic/server/documents/elements/header.html.eco
@@ -0,0 +1,236 @@
+---
+layout : 'default'
+css : 'header'
+title : 'Header'
+description : 'Headers provide a short summary of content'
+type : 'UI Element'
+---
+
+<%- @partial('header') %>
+
+
+
+
+
+
+
+
+
+
+
A standard header
+
+
+
+
+
+
Headers may have sub headers containing further context to the section
+
+
+
+
+
+
+
+
A header can be formatted to emphasize an icon
+
+
+
+
+
+
+
+
Page headings size themselves relative to the base font of the entire page not the surrounding text.
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
Donec nec justo eget felis facilisis fermentum. Aliquam porttitor mauris sit amet orci. Aenean dignissim pellentesque felis.
+
+
Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.
+
+
Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus.
+
+
Phasellus ultrices nulla quis nibh. Quisque a lectus. Donec consectetuer ligula vulputate sem tristique cursus. Nam nulla quam, gravida non, commodo a, sodales sit amet, nisi.
+
+
+
+
+
+
+
Headers may be oriented to give the importance of a section in the context of the content that surrounds it
+
Content headings size themselves relative to the base font of the surrounding text
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
Donec nec justo eget felis facilisis fermentum. Aliquam porttitor mauris sit amet orci. Aenean dignissim pellentesque felis.
+
+
Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.
+
+
Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus.
+
+
Phasellus ultrices nulla quis nibh. Quisque a lectus. Donec consectetuer ligula vulputate sem tristique cursus. Nam nulla quam, gravida non, commodo a, sodales sit amet, nisi.
+
+
+
+
+
+
+
+
+
A header can show that it is inactive
+
+
+
+
+
+
+
+
A header can be attached to other content
+
+
+
Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.
+
Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus.
+
+
+
+
+
+
+
A header can sit to the left or right of other content
+
+
+
+
+
+
+
+
A header can have its text aligned to a side
+
+
+
+
+
+
+
+
+
+
+
A header can be formatted with different colors
+
+
+
+
+
+
+
+
+
+
+
A header can be formatted to divide itself from the content below it
+
+
Understanding how dogs behave in nature can help us to better fulfill their needs when we bring them into our homes.
+
When a puppy enters the world, his first pack leader is his mother. Canine moms teach rules, boundaries, and limitations from day one!
+
Newborn puppies don't get a name like we do. The closest thing to a personality is a dog's status within the pack. In the animal world, there are two positions: the leader and the follower.
+
+
+
+
+
+
A header can be formatted to create a block
+
+
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
+
+
+
+
+
+
A header can have its colors inverted for contrast
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/server/documents/elements/icon.html.eco b/css/semantic/server/documents/elements/icon.html.eco
new file mode 100755
index 0000000..2af13a9
--- /dev/null
+++ b/css/semantic/server/documents/elements/icon.html.eco
@@ -0,0 +1,1283 @@
+---
+layout : 'default'
+css : 'icon'
+title : 'Icon'
+description : 'An icon is a glyph used to represent another concept more simply'
+type : 'UI Element'
+---
+
+<%- @partial('header') %>
+
+
+
+
+
+
+
+
+
+
+
+
An icon sets contains an arbitrary number of glyphs
+
+ Icons serve a very similar function to text in a page. In semantic icons receive a special tag "i" which allow for an abbreviated markup when sitting along-side text.
+
+
+
+
+
+
+
+
+
+
+
+
Icons can represent types of web content
+
+
Archive
+
Attachment
+
Browser
+
Bug
+
Calendar
+
Cart
+
Certificate
+
Chat
+
Cloud
+
Code
+
Comment
+
Dashboard
+
Desktop
+
Empty Calendar
+
External URL
+
External URL Sign
+
File
+
File Outline
+
Folder
+
Open Folder
+
Open Folder Outline
+
Folder Outline
+
Help
+
Home
+
Inbox
+
Info
+
Info Letter
+
Legal
+
Location
+
Mail
+
Mail Outline
+
Map
+
Map Marker
+
Mobile
+
Music
+
Chat Outline
+
Comment Outline
+
Payment
+
Photo
+
QR Code
+
Question
+
RSS
+
RSS Sign
+
Setting
+
Settings
+
Signal
+
Sitemap
+
Table
+
Tablet
+
Tag
+
Tags
+
Tasks
+
Terminal
+
Text File
+
Text File Outline
+
Time
+
Trash
+
URL
+
User
+
Users
+
Video
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Icons can represent a possible user action
+
+
Add
+
Add Sign
+
Add Sign Box
+
Adjust
+
Empty Bookmark
+
Bookmark
+
Cloud Download
+
Cloud Upload
+
Collapse
+
Crop
+
Download Disk
+
Download
+
Edit
+
Edit sign
+
Empty Flag
+
Exchange
+
Expand
+
Filter
+
Flag
+
Fork Code
+
Forward Mail
+
Fullscreen
+
Hide
+
Level Down
+
Level Up
+
Off
+
Refresh
+
Remove Circle
+
Remove
+
Remove Sign
+
Reorder
+
Reply All Mail
+
Reply Mail
+
Retweet
+
Save
+
Screenshot
+
Search
+
Share
+
Share Sign
+
Sign in
+
Sign out
+
Tint
+
Unhide
+
Upload Disk
+
Upload
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Icons can represent actions that modify a page view
+
+
Block Layout
+
Column Layout
+
Grid Layout
+
List Layout
+
Resize Full
+
Resize Horizontal
+
Resize Small
+
Resize Vertical
+
Sort Alphabet Descending
+
Sort Alphabet Ascending
+
Sort Ascending
+
Sort Attributes Descending
+
Sort Attributes Ascending
+
Sort Descending
+
Sort
+
Sort Order Descending
+
Sort Order Ascending
+
Zoom In
+
Zoom Out
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Icons can represent actions that modify text
+
+
Align Center
+
Align Justify
+
Align Left
+
Align Right
+
Bold
+
Copy
+
Cut
+
Ellipsis Horizontal
+
Ellipsis Vertical
+
Font
+
Indent Left
+
Indent Right
+
Italic
+
List
+
Move
+
Ordered List
+
Paste
+
Print
+
Quote left
+
Quote right
+
Strikethrough
+
Subscript
+
Superscript
+
Text Height
+
Text Width
+
Underline
+
Undo
+
Unlink
+
Unordered List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Icons can represent actions that occur on media
+
+
Backward
+
Forward
+
Eject
+
Fast Backward
+
Fast Forward
+
Mute
+
Pause
+
Play Circle
+
Play
+
Play Sign
+
Shuffle
+
Repeat
+
Step Backward
+
Step Forward
+
Stop
+
Unmute
+
Volume Down
+
Volume Off
+
Volume Up
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Icons can represent literal objects
+
+
Ambulance
+
Anchor
+
Barcode
+
Lab
+
Beer
+
Bell Outline
+
Bolt
+
Book
+
Briefcase
+
Building
+
Bullhorn
+
Bullseye
+
Camera
+
Camera retro
+
Coffee
+
Doctor
+
Eraser
+
Female
+
Fighter Jet
+
Fire Extinguisher
+
Fire
+
Checkered Flag
+
Food
+
Gamepad
+
Gift
+
Glass
+
Globe
+
HDD
+
Headphones
+
Hospital
+
Key
+
Keyboard
+
Laptop
+
Leaf
+
Lemon
+
Lightbulb
+
Magic
+
Magnet
+
Male
+
Medkit
+
Money
+
Moon
+
Pencil
+
Phone
+
Phone Sign
+
Pin
+
Plane
+
Puzzle Piece
+
Road
+
Rocket
+
Shield
+
Stethoscope
+
Suitcase
+
Sun
+
Ticket
+
Trophy
+
Truck
+
Umbrella
+
Wrench
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Icons can indicate the status of something
+
+
Ban Circle
+
Checkmark
+
Checkmark Sign
+
Minus Checkbox
+
Empty Checkbox
+
Checked Checkbox
+
Exclamation
+
Attention
+
Frown
+
Heart Empty
+
Heart
+
Loading
+
Lock
+
Meh
+
OK Circle
+
OK Sign
+
Smile
+
Empty Star
+
Half Empty Star
+
Half Star
+
Star
+
Thumbs Down
+
Thumbs Down Outline
+
Thumbs Up
+
Thumbs Up Outline
+
Unlock Alternate
+
Unlock
+
Warning
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Icons can represent common symbols
+
+
Angle Down
+
Angle Left
+
Angle Right
+
Angle up
+
Arrow Box Down
+
Arrow Box Right
+
Arrow Box Up
+
Down
+
Left
+
Right
+
Up
+
Asterisk
+
Triangle Down
+
Triangle Left
+
Triangle Right
+
Triangle Up
+
Down Arrow
+
Left Arrow
+
Right Arrow
+
Up Arrow
+
Arrow Sign Down
+
Arrow Sign Left
+
Arrow Sign Right
+
Arrow Sign Up
+
Circle Left
+
Circle Right
+
Circle Up
+
Circle Down
+
Circle Blank
+
Circle
+
Double Angle Down
+
Double Angle Left
+
Double angle Right
+
Double Angle Up
+
Hand Down
+
Hand Left
+
Hand Right
+
Hand Up
+
Long Arrow Down
+
Long Arrow Left
+
Long Arrow Right
+
Long Arrow Up
+
Minus
+
Minus Sign Alternate
+
Minus sign
+
Sign
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Icons can represent units of currency
+
+
Dollar
+
Euro
+
Pound
+
Rupee
+
Won
+
Yen
+
Yuan
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Icons can represent logos to common brands
+
+
Adn
+
Android
+
Apple
+
Bitbucket
+
Bitbucket Sign
+
Bitcoin
+
CSS3
+
Dribbble
+
Dropbox
+
Facebook
+
Facebook Sign
+
Facetime Video
+
Flickr
+
Foursquare
+
Github Alternate
+
Github
+
Github Sign
+
Gittip
+
Google Plus
+
Google Plus Sign
+
H Sign
+
HTML5
+
Instagram
+
Linkedin
+
Linkedin Sign
+
Linux
+
Maxcdn
+
Pinterest
+
Pinterest Sign
+
Renren
+
Skype
+
Stackexchange
+
Trello
+
Tumblr
+
Tumblr Sign
+
Twitter
+
Twitter Sign
+
Vk
+
Weibo
+
Windows
+
Xing
+
Xing Sign
+
YouTube
+
YouTube Play
+
YouTube Sign
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This icon set was built using a custom combination of fonts using the amazing web tool Fontello , to only include the most frequently used icons for websites. The filesize for the basic icon set is about 50% smaller than the standard icon set.
+
+
+
Basic.icons uses a sub-class i.basic.icon so they can be used on the same page as other icon sets. If this is your only icon set, you can safely remove the prefix.
+
+
+
+
+
Icons can represent typical web content
+
+
Attachment
+
Barcode
+
Bookmark
+
Cart
+
Chart
+
Bar Chart
+
Pie Chart
+
Date
+
Doc
+
Docs
+
Email
+
Folder
+
Open Folder
+
Home
+
Mail
+
Photo
+
Photos
+
Search
+
Setting
+
Settings
+
Tag
+
Tags
+
Time
+
Top List
+
Trash
+
Community
+
URL
+
User
+
Users
+
Chat
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Icons can represent special types of web content
+
+
Trophy
+
Cloud
+
Flight
+
Gift
+
Dollar
+
Lab
+
RSS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Icons can represent a possible user action
+
+
Add User
+
Block
+
Hide
+
Unhide
+
Lock
+
Unlock
+
Flag
+
Cancel
+
Close
+
Delete
+
Check
+
Edit
+
Open
+
Export
+
Forward
+
Upload
+
Like
+
Dislike
+
Pin
+
Star
+
Empty Star
+
Half Star
+
Print
+
Comment
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Icons can represent ways to modify a page view
+
+
Content
+
Grid Layout
+
Block Layout
+
List Layout
>
+
Resize Full
+
Resize Horizontal
+
Resize Small
+
Resize Vertical
+
Zoom in
+
Zoom out
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Icons can represent actions that occur on media
+
+
Eject
+
Fast-forward
+
Pause
+
Play
+
To-start
+
To-end
+
Forward
+
Shuffle
+
Clockwise
+
Counter clockwise
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Icons can represent literal objects
+
+
Book
+
Calendar
+
Color
+
Desk globe
+
Fire
+
Globe
+
Headphones
+
Id
+
Idea
+
Lightning
+
Money
+
Paint
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Icons can indicate the status of something
+
+
Cancel Circle
+
Asterisk
+
Attention Circle
+
Attention
+
Empty Heart
+
Heart
+
Thumbs Down
+
Thumbs Up
+
Terminal
+
Direction
+
Location
+
Help
+
Info
+
Mic
+
Off
+
Add
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Icons can represent common symbols
+
+
Left Arrow
+
Left Triangle
+
Left
+
Right
+
Right Triangle
+
Right Arrow
+
Up
+
Up Triangle
+
Up Arrow
+
Down Arrow
+
Down Triangle
+
Down
+
Cube
+
Minus
+
Plus
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Icons can represent logos to common websites
+
+
Facebook
+
Twitter
+
Github
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
An icon can show that it is disabled
+
+
+
+
+
+
+
+
An icon can vary in size
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
An icon can be formatted as a link
+
+
+
+
+
+
+
An icon can be flipped
+
+
+
+
+
+
+
An icon can be rotated
+
+
+
+
+
+
+
+
An icon can be formatted to appear circular
+
+
+
+
+
+
+
+
+
+
An icon can be formatted to appear square
+
+
+
+
+
+
+
+
+
An icon can be formatted with different colors
+
+
+
+
+
+
+
+
+
+
+
an icon can have its colors inverted for contrast
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/server/documents/elements/image.html.eco b/css/semantic/server/documents/elements/image.html.eco
new file mode 100755
index 0000000..e10d653
--- /dev/null
+++ b/css/semantic/server/documents/elements/image.html.eco
@@ -0,0 +1,122 @@
+---
+layout : 'default'
+css : 'image'
+title : 'Image'
+description : 'An image is a graphic representation of something'
+type : 'UI Element'
+---
+
+<%- @partial('header') %>
+
+
+
+
+
+
+
+
+
+
+
An image
+
Images will, by default, take up the same size as the original image. Specifying an image size will force an image to only take up a specific size.
+
+
+
+
+
+
An image can be formatted to link to other content
+
+
+
+
+
+
+
+
+
+
An image can show that it is disabled and cannot be selected
+
+
+
+
+
+
+
+
An image may be formatted to appear inline with text as an avatar
+
Dog Doggington
+
+
+
+
+
An image may appear rounded
+
+
+
+
+
+
An image may appear circular
+
+
+
+
+
+
An image can sit to the left or right of other content
+
+
+
Te eum doming eirmod, nominati pertinacia argumentum ad his. Ex eam alia facete scriptorem, est autem aliquip detraxit at. Usu ocurreret referrentur at, cu epicurei appellantur vix. Cum ea laoreet recteque electram, eos choro alterum definiebas in. Vim dolorum definiebas an. Mei ex natum rebum iisque.
+
+
Audiam quaerendum eu sea, pro omittam definiebas ex. Te est latine definitiones. Quot wisi nulla ex duo. Vis sint solet expetenda ne, his te phaedrum referrentur consectetuer. Id vix fabulas oporteat, ei quo vide phaedrum, vim vivendum maiestatis in.
+
+
Eu quo homero blandit intellegebat. Incorrupte consequuntur mei id. Mei ut facer dolores adolescens, no illum aperiri quo, usu odio brute at. Qui te porro electram, ea dico facete utroque quo. Populo quodsi te eam, wisi everti eos ex, eum elitr altera utamur at. Quodsi convenire mnesarchum eu per, quas minimum postulant per id.
+
+
+
+
+
+
An image may be formatted to be different sizes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
A group of images can be formatted to have the same size.
+
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/server/documents/elements/input.html.eco b/css/semantic/server/documents/elements/input.html.eco
new file mode 100755
index 0000000..99be9fb
--- /dev/null
+++ b/css/semantic/server/documents/elements/input.html.eco
@@ -0,0 +1,172 @@
+---
+layout : 'default'
+css : 'input'
+title : 'Input'
+description : 'Inputs allow a user to enter information'
+type : 'UI Element'
+---
+
+<%- @partial('header') %>
+
+
+
+
+
+
+
+
+
+
+
A standard input
+
+
+
+
+
+
+
+
+
+
An input field can show a user is currently interacting with it
+
+
+
+
+
+
+
+
An icon input field can show that it is currently loading data
+
+
+
+
+
+
+
+
+
An input field can show the data contains errors
+
+
+
+
+
+
+
+
+
+
An input can be formatted with an icon
+
+
+
+
+
+
+
+
+
+
+
+
An input can be formatted with a label
+
+
+
+
+
+
An input can be formatted to alert the user to an action they may perform
+
+
+
+
+
+
+
+
An input can take the size of its container
+
+
+
+
+
+
+
+
+
+
+
An input can vary in size
+
Inputs will automatically size themselves unless you manually declare a width
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/server/documents/elements/label.html.eco b/css/semantic/server/documents/elements/label.html.eco
new file mode 100755
index 0000000..4adddfa
--- /dev/null
+++ b/css/semantic/server/documents/elements/label.html.eco
@@ -0,0 +1,390 @@
+---
+layout : 'default'
+css : "label"
+title : 'Label'
+description : 'Labels give descriptions to pieces of content'
+type : 'UI Element'
+---
+
+<%- @partial('header') %>
+
+
+
+
+
+
+
+
+
+
+
+
A basic label
+
+ 23
+
+
+
+
+
A label can contain a detail
+
+
+
+
+
+
A label can contain a delete icon
+
+ Witty
+
+
+
+
+
+
+
A label can contain a text link
+
+
+
+
+
+
+
+
A label can position itself in the corner of an element
+
A corner label must be positioned inside a container with position: relative to display properly
+
+
+
+
+
+ This is a normal text segment
+
+
+
+
+
+
+
+
A label can appear as a ribbon attaching itself to an element.
+
+
+
+
+
Dogs
+
Pretty nice animals.
+
Cats
+
Also pretty nice animals, but can prefer solitude.
+
Ogres and monsters
+
Never seen one as a pet before, but I imagine they'd make pretty terrible companions.
+
+
+
+
+
+
+
+
+
+
A label can attach to a content segment
+
+
+
+
+
HTML
+
This is some pretend content
+
+
+
+
+
CSS
+
This is some pretend content
+
+
+
+
+
Code
+
This is some pretend content
+
+
+
+
+
+
+
View
+
This is some pretend content
+
+
+
+
+
User View
+
This is some pretend content
+
+
+
+
+
Admin View
+
This is some pretend content
+
+
+
+
+
+
HTML
+
CSS
+
Code
+
View
+
User View
+
Admin View
+
+
+
+
+
+
+
+
+
A horizontal label is formatted to label content along-side it horizontally
+
+
+
+
+
+
+
+
+
A label can float above another element
+
+
+
+
+
+
+
+
A label can point to content next to it
+
+
+
+
+
+
A label can be small or large
+
+ Fun
+
+
+
+ Fun
+
+
+
+
+
+
+
+
Labels can share sizes together
+
+
+ Fun
+
+
+ Happy
+
+
+ Smart
+
+
+ Witty
+
+
+
+
+
+
Labels can share colors together
+
+
+
+
+
+
Labels can share shapes
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/server/documents/elements/loader.html.eco b/css/semantic/server/documents/elements/loader.html.eco
new file mode 100755
index 0000000..ffe7540
--- /dev/null
+++ b/css/semantic/server/documents/elements/loader.html.eco
@@ -0,0 +1,135 @@
+---
+layout : 'default'
+css : 'loader'
+title : 'Loader'
+description : 'Loaders lets a user know to wait for activity to finish'
+type : 'UI Element'
+---
+
+<%- @partial('header') %>
+
+
+
+
+
+
+
+
+
+
+
A loader
+
Loaders by default are hidden unless inside of a dimmer.
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
+
+
A loader can contain text
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
+
+
+
+
A loader can be active or visible
+
+
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
+
A loader can be disabled or hidden
+
+
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
+
+
+
+
Loaders can appear inline with content
+
+
+
+
+
Loaders can have different sizes
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
+
Loaders can have their colors inverted.
+
Loaders will automatically be inverted inside dimmers to maintain consistency
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/server/documents/elements/progress.html.eco b/css/semantic/server/documents/elements/progress.html.eco
new file mode 100755
index 0000000..9ef0588
--- /dev/null
+++ b/css/semantic/server/documents/elements/progress.html.eco
@@ -0,0 +1,130 @@
+---
+layout : 'default'
+css : 'progress'
+title : 'Progress'
+description : 'Progress bars show the percent of a task complete'
+type : 'UI Element'
+---
+
+<%- @partial('header') %>
+
+
+
+
+
+
+
+
+
+
+
A standard progress bar
+
+
+
+
+
+
+
+
A progress bar can show activity
+
+
+
+
+
+
+
A progress bar can show success
+
+
+
+
+
+
A progress bar can show a warning state
+
+
+
+
+
+
A progress bar can show failure
+
+
+
+
+
+
A progress bar can be disabled
+
+
+
+
+
+
+
+
+
A progress bar can show progress of an element
+
+
+
+
+
+
+
+
+
Can have different colors:
+
+
+
+
+
+
+
+
+
+
+
+
A progress bar can be striped
+
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/server/documents/elements/segment.html.eco b/css/semantic/server/documents/elements/segment.html.eco
new file mode 100755
index 0000000..0c8bcf6
--- /dev/null
+++ b/css/semantic/server/documents/elements/segment.html.eco
@@ -0,0 +1,246 @@
+---
+layout : 'default'
+css : 'segment'
+title : 'Segment'
+description : 'A segment is used to create a grouping of related content.'
+type : 'UI Element'
+---
+<%- @partial('header') %>
+
+
+
+
+
+
+
+
+
+
+
A segment of content
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
A vertical segment divides content vertically
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
A horizontal segment divides content horizontally
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
+
A segment can be formatted to look like a pile of pages
+
+
A header
+
Te eum doming eirmod, nominati pertinacia argumentum ad his. Ex eam alia facete scriptorem, est autem aliquip detraxit at. Usu ocurreret referrentur at, cu epicurei appellantur vix. Cum ea laoreet recteque electram, eos choro alterum definiebas in. Vim dolorum definiebas an. Mei ex natum rebum iisque.
+
+
Audiam quaerendum eu sea, pro omittam definiebas ex. Te est latine definitiones. Quot wisi nulla ex duo. Vis sint solet expetenda ne, his te phaedrum referrentur consectetuer. Id vix fabulas oporteat, ei quo vide phaedrum, vim vivendum maiestatis in.
+
+
Eu quo homero blandit intellegebat. Incorrupte consequuntur mei id. Mei ut facer dolores adolescens, no illum aperiri quo, usu odio brute at. Qui te porro electram, ea dico facete utroque quo. Populo quodsi te eam, wisi everti eos ex, eum elitr altera utamur at. Quodsi convenire mnesarchum eu per, quas minimum postulant per id.
+
+
+
+
+
+
A segment can be formatted to show it contains multiple pages
+
+
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
+
+
+
+
+
+
+
+
+
+
A segment may show its content is disabled
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
+
+
+
A segment can have its colors inverted for contrast
+
+
I'm here to tell you something, and you will probably read me first.
+
+
+
+
+
+
A segment may be formatted to raise above the page.
+
+
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
+
+
+
+
+
+
A segment can be colored
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
+
+
+
+
These colors can be inverted
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
+
+
+
+
+
+
A segment can be formatted to appear more or less noticeable
+
+
I'm here to tell you something, and you will probably read me first.
+
+
+
I am pretty noticeable but you might check out other content before you look at me.
+
+
+
If you notice me you must be looking very hard.
+
+
+
+
Inverted colors may also be more or less noticeable
+
+
I'm here to tell you something, and you will probably read me first.
+
+
+
I am pretty noticeable but you might check out other content before you look at me.
+
+
+
If you notice me you must be looking very hard.
+
+
+
+
+
I'm here to tell you something, and you will probably read me first.
+
+
+
I am pretty noticeable but you might check out other content before you look at me.
+
+
+
If you notice me you must be looking very hard.
+
+
+
+
+
+
A segment can be circular
+
A circular segment will most likely have to have its content manually sized to be equal width and height, otherwise it will flow to the size of your content
+
+
+
+
+
+
+
+
+
+
+
+
+
A segment cant sit to the left or right of other content
+
+
This segment will appear to the right
+
+
+ This segment will appear to the left
+
+
+
+
+
+
A segment cant have its text aligned to a side
+
+ Right
+
+
+ Left
+
+
+ Center
+
+
+ This segment is justified to take up the whole width. Justified content must be at least the content width to be justified correctly.
+
+
+
+
+
+
A basic segment has no special formatting
+
+
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
+
+
+
+
+
A segment can be attached to other content on a page
+
+
+
This segment is on top
+
+
+
This segment is attached on both sides
+
+
+
This segment is on bottom
+
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/server/documents/elements/step.html.eco b/css/semantic/server/documents/elements/step.html.eco
new file mode 100755
index 0000000..bcb37a2
--- /dev/null
+++ b/css/semantic/server/documents/elements/step.html.eco
@@ -0,0 +1,156 @@
+---
+layout : 'default'
+css : 'steps'
+title : 'Step'
+description : 'Steps show the current activity in a series of consecutive activities.'
+type : 'UI Element'
+---
+
+<%- @partial('header') %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
A set of step
+
+
+ Shipping
+
+
+ Billing
+
+
+ Confirm Order
+
+
+ Complete
+
+
+
+
+
+
+
+
+
Vertical steps display each step stacked vertically
+
Vertical steps items can include a two line variation to allow for long names or names with line breaks
+
+
+ Shipping
+
+
+ Billing & Order Confirmation
+
+
+ Review
+
+
+ Receipt
+
+
+
+
+
+
+
+
+
A step can be highlighted as active
+
+
+
+
+
+
A step can show that it cannot be selected
+
+
+
+
+
+
+
+
Steps can have different sizes
+
+
+
+ Shipping
+
+
+ Billing
+
+
+ Confirm Order
+
+
+ Complete
+
+
+
+
+
+ Shipping
+
+
+ Billing
+
+
+ Confirm Order
+
+
+ Complete
+
+
+
+
+
+
+
+
Steps can be divided evenly inside their parent
+
+
+ Shipping
+
+
+ Billing
+
+
+ Confirm Order
+
+
+ Complete
+
+
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/server/documents/guide/cssguide.html.eco b/css/semantic/server/documents/guide/cssguide.html.eco
new file mode 100755
index 0000000..4a60cec
--- /dev/null
+++ b/css/semantic/server/documents/guide/cssguide.html.eco
@@ -0,0 +1,551 @@
+ ---
+layout : 'default'
+css : 'guide'
+
+title : 'CSS'
+description : 'Suggestions for CSS development practices'
+type : 'UI Guide'
+---
+<%- @partial('header') %>
+
+
+
+
+
+
+
+
+
+
+
+
Sometimes content should be formatted differently depending on whether other content exists alongside it. A useful way to do that is use the next adjacent sibling selector '+'. The content that should have the conditional formatting should always appear second because there is no previous sibling selector in css.
+
+
+ .ui.widget .image {
+ float: left;
+ width: 2em;
+ }
+ .ui.widget .content {
+ color: #000000;
+ }
+ /* content is only floated if image exists */
+ .ui.widget .image + .content {
+ margin-left: 3em;
+ }
+
+
+
+
Unfortunately box shadow must be defined as a single rule, without the ability, like border, to be broken up into separate parts for positioning, color and distance. There is however one trick to allowing for a single box shadow definition to appear as multiple colors. Box shadow inherits its color from the color attribute if no color is specified.
+
+ .ui.widget {
+ -webkit-box-shadow: 0em 0.2em 0em inset;
+ -moz-box-shadow: 0em 0.2em 0em inset;
+ box-shadow: 0em 0.2em 0em inset;
+ }
+ /* This will also have a red box shadow */
+ .ui.red.widget {
+ color: #FF0000;
+ }
+
+
+
+
+
If content needs to fill a specified size exactly, but may be made up of parts with arbitrary size, it can be useful to use display table and table-cell. This will make sure the parent width is always obeyed regardless of alterations to an element's width.
+
Keep in mind any table-cell element must have a parent with display:table to appear formatted correctly.
+
+
+ .ui.input {
+ display: table;
+ }
+ /* these two elements will always fill the input exactly regardlesss of the text content of the button */
+ .ui.input input {
+ display: table-cell;
+ }
+ .ui.input .button {
+ display: table-cell;
+ }
+
+
+
+
In HTML usually whitespace doesn't change a page's layouts. However, when using inline block any whitespace will create unwanted space between consecutive inline-block elements. The simple and effective fix is to make sure font-size on the parent element is 0, making all whitespace 0 pixels. Then you can reset font-size on the child element to body font size or 1 relative em.
+
+ /* remove whitespace */
+ .ui.group {
+ font-size: 0em;
+ }
+ .ui.group .item {
+ display: inline-block;
+ font-size: 1rem;
+ }
+
+
+
+
Inheritance can be hell sometimes. Consider changing the opacity of an element. There is no way to "cancel out" of that opacity change on content inside.
+
Sometimes the only way to avoid creating inheritance problems is to specify what elements should not receive a set of rules. Consider blurring content while a dimmer is present. Blurring should only apply to elements that are not inside the dimmer, but there is no way to know what the content is beforehand.
+
+ /* blur everything but the dimmer */
+ body.dimmed :not(.dimmer){
+ -webkit-filter: blur(15px) grayscale(0.7);
+ -moz-filter: blur(15px) grayscale(0.7);
+ }
+
+
+
+
Sometimes text can be accidentally highlighted when a user double clicks an element. No need to pull out javascript to solve this.
+
+ .ui.thingy {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ }
+
+
+
+
It's fairly commonly known that you can set text selection colors in css for a page, but its less commonly known that you can use multiple highlight colors in a single page.
+
+ /* text selected turns highlighted yellow */
+ ::-webkit-selection {
+ background-color: #FFFFCC;
+ color: #555555;
+ }
+ ::-moz-selection {
+ background-color: #FFFFCC;
+ color: #555555;
+ }
+ ::selection {
+ background-color: #FFFFCC;
+ color: #555555;
+ }
+ /* headers selected turn red */
+ h1::-moz-selection,
+ h2::-moz-selection,
+ h3::-moz-selection {
+ background-color: #F1C1C2;
+ color: #222222;
+ }
+ h1::selection,
+ h2::selection,
+ h3::selection {
+ background-color: #F1C1C2;
+ color: #222222;
+ }
+
+
+
+
+
When you have colored content that needs a border to match its current color, try using a 1 pixel inset box shadow with an RGBA value.
+
+
+
+ /* this border will be grey */
+ .ui.thingy {
+ -moz-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+ }
+ /* this border will be red tinted */
+ .ui.red.thingy {
+ background-color: #FFF8F8;
+ }
+
+
+
+
+
Sometimes bordered content must sit next to other bordered content. If each element uses border the borders will double. Consider using either outline or a box shadow to accomplish the same effect but without overlapping borders.
+
+ /* this might not go so well */
+ .ui.thingy {
+ border: 1px solid #DDDDDD;
+ }
+ /* rgba is great, but keep in mind the overlapping borders will be added together to create a darker shade */
+ .ui.thingy {
+ outline: 1px solid rgba(0, 0, 0, 0.1);
+ }
+ /* classic but works */
+ .ui.thingy {
+ outline: 1px solid #DDDDDD;
+ }
+ /* this works too */
+ .ui.thingy {
+ -moz-box-shadow: 0px 0px 0px 1px #DDDDDD;
+ -webkit-box-shadow: 0px 0px 0px 1px #DDDDDD;
+ box-shadow: 0px 0px 0px 1px #DDDDDD;
+ }
+
+
+
+
RGBA colors in css allow you to specify colors with a transparency channel. This is very useful.
+
Consider for example, defining the text states of an element. If the elements color changes, the text might appear more complementary as a shade of black with a portion of the original color. This can be done easily with rgba
+
+ .ui.thingy {
+ background-color: #FAFAFA;
+ color: rgba(0, 0, 0, 0.7);
+ }
+ .red.ui.thingy {
+ background-color: #FF0000;
+ }
+
+
+
+
CSS fixed allows you to have content stick to an offset position in a page regardlesss of the scroll position of the page. Fixed menus will use the page as the offset parent, in all circumstances except when css transform is used on a parent element. This will change the offset context to the transformed element instead of the page .
+
This behavior may seem unexpected, but using this quirk can allow you to have fixed position content relative to any element in a page.
+
+ .ui.content {
+ transform: rotateZ(0deg);
+ overflow: scroll;
+ }
+ /* fixed will stay in its current offset relative to the parent container */
+ .ui.content .fixed.thingy {
+ position: fixed;
+ top: 0px;
+ width: 100%;
+ }
+
+
+
+
Using percentages in CSS will give you a ratio based on the size of the parent element. For example, setting content to be left 50% will set content to start at exactly halfway across its parent.
+
If you want content to positioned relative to its own size use transform. Percentages specified inside a transform are unique in that they are based on the current element size not its parent.
+
+
+ /* doesnt work */
+ .ui.modal {
+ width: 800px;
+ height: 500px;
+ left: 50%;
+ top: 50%;
+ margin: -50% 0px 0px -50%x;
+ }
+
+ /* works with measurements */
+ .ui.modal {
+ width: 800px;
+ height: 500px;
+ left: 50%;
+ top: 50%;
+ margin: -250px 0px 0px -400px;
+ }
+
+ /* with transform no measurements needed */
+ .ui.modal {
+ position: absolute;
+ width: 800px;
+ top: 50%;
+ left: 50%;
+ transform: transformX(-50%) transformY(-50%);
+ }
+
+
+
+
CSS floats can create issues with the containing element not receiving the size of its children. Using overflow:hidden to clear floats means that no piece of an element can be shown outside the bounding box of the element, which limits the possibilities in an element. Clearfixes can use up one of two available pseudo class which can often be useful for styling elements.
+
Consider using another means of putting content side by side like inline-block or table-cell. These provide more freedom than floated block elements, and can add additional benefits.
+
To avoid issues with inline-block causing spacing between elements, specify no font size on the group and 1rem on the floated content
+
+ /* not the best */
+ .ui.thingy {
+ display: block;
+ overflow: hidden;
+ }
+ .ui.thingy .part {
+ display: block;
+ float: left;
+ }
+
+ /* these do the same thing */
+ .ui.thingy {
+ display: block;
+ font-size: 0rem;
+ }
+ .ui.thingy .part {
+ display: inline-block;
+ font-size: 1rem;
+ }
+
+
+
+
+
One technique that is useful for allowing for multiple color variations of an element, without having to completely reskin each variation and shade is to use background-image gradients to define shading and state, and background-color to define the color of an element. If done well you can add a variety of colors with very little code.
+
+ .ui.thingy {
+ background-color: #FAFAFA;
+ }
+ .ui.red.thingy {
+ background-color: #FF0000;
+ }
+ .ui.green.thingy {
+ background-color: #00FF00;
+ }
+ .ui.blue.thingy {
+ background-color: #0000FF;
+ }
+ .ui.thingy:hover {
+ background-image:
+ -webkit-gradient(linear, 0 0, 0 100%, from(rgba(0, 0, 0, 0.1)), to(rgba(0, 0, 0, 0.05)))
+ ;
+ background-image: -webkit-linear-gradient(
+ rgba(0, 0, 0, 0.1) 0%,
+ rgba(0, 0, 0, 0.05) 100%)
+ ;
+ background-image: -moz-linear-gradient(
+ rgba(0, 0, 0, 0.1) 0%,
+ rgba(0, 0, 0, 0.05) 100%)
+ ;
+ background-image: -o-linear-gradient(
+ rgba(0, 0, 0, 0.1) 0%,
+ rgba(0, 0, 0, 0.05) 100%)
+ ;
+ background-image: linear-gradient(
+ rgba(0, 0, 0, 0.1) 0%,
+ rgba(0, 0, 0, 0.05) 100%)
+ ;
+ }
+
+
+
+
+
+
+
+
All elements are designed to include their own namespace. As long as rules descend from their parent element there is no possibility of rule collision.
+
Hyphenated class names often describe the intersection of separate concepts, and can be better written to represent each concept separately.
+
+ /* no no no */
+ .ui.button-active-red {
+ background-color: #FF0000;
+ font-weight: bold;
+ color: #FFFFFF;
+ }
+
+ /* better */
+ .red.ui.button {
+ background-color: #FF0000;
+ color: #FFFFFF;
+ }
+ .active.ui.button {
+ font-weight: bold;
+ }
+
+
+
+
Adding extra formatting can help increase clarity in your code. We suggest separating css selectors on separate lines, adding a space after css properties with commas (like box-shadow) and placing a zero before any decimal value.
+
+
+ /* not so easy to read */
+ .ui.widgets .widget, ui.widget, .ui.widget.type, ui.widgets .widget.type {
+ color: #FFFFFF;
+ }
+ /* this should have spaces after commas and a zero before any decimal value */
+ .ui.widget {
+ color:rgba(0,0,0,.3);
+ }
+
+ /* easier to read */
+ .ui.widgets .widget,
+ .ui.widget,
+ .ui.widgets .widget.type,
+ .ui.widget.type {
+ color: #FFFFFF;
+ }
+ /* properly formatted */
+ .ui.widget {
+ color: rgba(0, 0, 0, 0.3);
+ }
+
+
+
+
+
Although css rule order may be considered a chore, grouping related rules together can help keep css code organized.
+
An easy way to do this is to consider ordering rules from the outside in. First describing positioning rules, then border rules, margin, sizing, padding, font-size, line height and ending with vendor prefixed attributes.
+
+
+ /* not so easy to read */
+ .ui.widgets .widget, ui.widget, .ui.widget.type, ui.widgets .widget.type {
+ color: #FFFFFF;
+ }
+ /* more legible */
+ .ui.widgets .widget,
+ .ui.widget,
+ .ui.widgets .widget.type,
+ .ui.widget.type {
+ color: #FFFFFF;
+ }
+
+ /* i have some extra time so lets group these rules */
+ .ui.widget {
+ position: relative;
+ top: 0em;
+ left: 0em;
+
+ margin: 1em;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ width: 100px;
+ height: 100px;
+ padding: 1em;
+
+ font-size: 1.2em;
+ color: rgba(0, 0, 0, 0.8);
+ line-height: 1.2em;
+
+ -webkit-border-radius: 0.3em;
+ -moz-border-radius: 0.3em;
+ border-radius: 0.3em;
+ }
+
+
+
+
UI elements should be designed to include the minimum footprint of an element. If extra styling is needed, consider using pseudo selectors :after and :before. This allows for the creation of two extra divs inside each div context which can almost always be enough to accommodate extra styling.
+
If there is no other option than wrapping content in a containing HTML element, consider using a singular/plural relationship by having the wrapper describe its contents instead of an arbitrary class name like wrapper
+
+ /* not tops */
+ .ui.message .wrapper .title,
+ .ui.message .wrapper .description {
+
+ }
+ /* better */
+ .ui.message .content .title,
+ .ui.message .content .description {
+
+ }
+
+
+
+
Adding default margins to your content allow for it to have vertical rhythm in a page, but be careful about forcing margin in all circumstances. Here's a useful way to make sure content inside container elements doesn't receieve unnecessary padding.
+
+ .ui.thingy {
+ margin: 1em 0em;
+ }
+ .ui.thingy:first-child {
+ margin-top: 0em;
+ }
+ .ui.thingy:last-child {
+ margin-bottom: 0em;
+ }
+
+
+
+
+
Consider using similar class syntax as if you were actually describing the element in English. Although this is by no means required it may help provide clarity in some circumstances.
+
+ /* confusing word order */
+ .ui.red.button.pointing {
+
+ }
+ /* much more semantic */
+ .red.pointing.ui.button {
+
+ }
+
+
+
+
Border box fixes the box model, and allows padding to be included as part of width and height definitions. Using it opens up another world of possibilities for sizing content to fit fluidly
+
+ .two.ui.thingies .ui.thingy {
+ width: 50%;
+ padding: 1em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ }
+
+
+
+
+
+
CSS provides a broad selection of measurements for values. It is helpful to keep unit definitions consistent across a single property definition. Including consistent units for 0 values also allows for quicker tweaking and shows greater precision in a property definition.
+
+
+ /* not tops */
+ .ui.widget {
+ padding: 0 16px .6em;
+ }
+ /* hex are uppercase */
+ .ui.widget {
+ color: #09ffda;
+ }
+ /* good */
+ .ui.widget {
+ padding: 0em 0em 0em 0.2em;
+ color: #009FDA;
+ }
+
+
+
+
Many CSS properties can use the value 'inherit' to specify, quite unintuitively, to take on the value of parent element for values that do not normally inherit. For example, an element can use inherit to double whatever its parents padding size is, or to receive the same type of border as a parent without knowing what it is beforehand.
+
+ /* inheriting borders */
+ .ui.widget {
+ border: 2px solid rgba(0, 0, 0, 0.1);
+ }
+ /* will receive same border treatment as parent */
+ .ui.widget .foo {
+ border: inherit;
+ }
+ /* inheriting positioning */
+ .ui.widget {
+ padding: 0.5em 1em;
+ }
+ /* will use the same padding as parent */
+ .ui.widget .foo {
+ padding: inherit;
+ }
+
+
+
+
EMs are defined so that 1em is equal to the current font size inside of an element. Using EMs can allow you to size content inside an element in proportion to the overall size of the element. Be careful though because this will stack with nested elements.
+
+ .ui.thingy {
+ font-size: 14px;
+ }
+ /* this is 28 pixels */
+ .ui.thingy .thing {
+ font-size: 2em;
+ }
+ /* woah this is now 48 pixels */
+ .ui.thingy .thing .thing {
+ font-size: 2em;
+ }
+
+ /* .ui.thingy .thingy should grow as well */
+ .ui.large.thingy {
+ font-size: 16px;
+ }
+
+
+
+
Using EMs multiplicative nature can be used to your advantage. Instead of defining multiple tiers of a menu system, consider using ems to reduce each tier's sizing. As you continue to nest menu elements each nested menu will computer its values with smaller proportions.
+
+ .ui.menu {
+ font-size: 1rem;
+ }
+ .ui.menu .menu {
+ margin-left: 0.5em;
+ font-size: 0.9em;
+ }
+
+
+
+
Relative EMs (rems) are calculated relative to the font size of the entire page. This is needed to explain how content should be sized related to the overall size of elements on the page, and will not increase geometrically when nested like EMs.
+
+ /* i am a weird page with very tiny fonts */
+ html {
+ font-size: 10px;
+ }
+ /* thats ok i am sizing everything relative to your tiny fonts */
+ .ui.menu {
+ font-size: 1rem;
+ }
+ /* i am sizing relative to the menu element */
+ .ui.menu .menu {
+ font-size: 0.8em;
+ }
+ /* i am the same size as the rule above */
+ .ui.menu .menu .menu {
+ font-size: 0.8em;
+ }
+
+
\ No newline at end of file
diff --git a/css/semantic/server/documents/guide/javascriptguide.html.eco b/css/semantic/server/documents/guide/javascriptguide.html.eco
new file mode 100755
index 0000000..b7609d8
--- /dev/null
+++ b/css/semantic/server/documents/guide/javascriptguide.html.eco
@@ -0,0 +1,97 @@
+ ---
+layout : 'default'
+css : 'javascript'
+
+title : 'Javascript'
+description : 'Suggestions for Javascript development practices'
+type : 'UI Guide'
+---
+
+<%- @partial('header') %>
+
+
+
+
+
+
+
+
+
Airbnb has compiled a wonderful list for a mostly reasonable approach to javascript. This is an excellent starting point for community consensus on javascript standards.
+
+
https://github.com/airbnb/javascript
+
+
+
+
Matching equal signs increases code legibility but may take more time. There is a great plugin for Sublime Text called Alignment which can automatically manage this for you.
+
+ var
+ dog = 'Poodle',
+ cat = 'Cat',
+ elephant = 'A long name'
+ ;
+
+
+
Indent chained code to show changes in the original selector. Use the ending semicolon as you would a closing bracket to show the original indentation level of the rule
+
+ $element
+ .find('.one')
+ .doSomething()
+ .end()
+ .find('.two')
+ .doSomethingElse()
+ ;
+
+
+
When creating javascript modules consider using verbs to show behavior. This may be more intuitive than allowing a user to directly set properties or manage your internal namespace.
+
+
+ // this might require some more times with docs
+ $element
+ .widget('states.select.set')
+ ;
+
+ // reduce complexity to api
+ $(element)
+ .widget('activate', true)
+ ;
+
+
+
Using an OR value allows you to set defaults for any falsey value
+
+ (function(someBoolean, name) {
+ var
+ // this will have issues (false will evaluate same as undefined)
+ someBoolean = someBoolean || true,
+ // default name will be sally
+ name = name || 'Sally'
+ ;
+ if(someBoolean) {
+ alert(name);
+ }
+ }());
+
+
+
\ No newline at end of file
diff --git a/css/semantic/server/documents/guide/styleguide.html.eco b/css/semantic/server/documents/guide/styleguide.html.eco
new file mode 100755
index 0000000..444c371
--- /dev/null
+++ b/css/semantic/server/documents/guide/styleguide.html.eco
@@ -0,0 +1,176 @@
+ ---
+layout : 'default'
+css : 'guide'
+
+title : 'Language'
+description : 'Suggestions for language usage when developing user interfaces'
+type : 'UI Guide'
+---
+<%- @partial('header') %>
+
+
+
+
+
+
+
+
+
Defining anything will involve some subjectivity. The goal of semantic is not to create code that is free from prescription, but to create code that tends to avoid arbitrary decisions if a conventional choice presents itself.
+
The following are some guidelines which help avoid some common pitfalls in writing UI element definitions.
+
+
+
+
In order to make UI components be able to exist in most websites, the prototype version of an element should be neutrally styled using greytones and neutral colors. This will allow other elements to be more robust giving other developers freedom to make decisions about color and style when adapting your element for their website.
+
+
All css code must live inside a namespace. By default all ui elements use the class "ui". This prevents rules from altering styles of other content in the page. This also helps differentiate between UI elements and parts of an element
+
Tags inside of a ui element do not need to be prefixed with ui. They can simple descend from the element.
+
+ /* incorrect */
+ .menu {
+
+ }
+
+ /* incorrect */
+ .ui.menu .ui.item {
+
+ }
+
+ /* correct */
+ .ui.menu {
+
+ }
+ .ui.menu .item {
+
+ }
+
+
Try to use the most obvious names for classes. If you're not sure, prototype the element, then ask a friend or two what they would call it.
+
+ /* hmm */
+ .ginormous.ui.thingy {
+ font-size: 1.5em;
+ }
+ /* better */
+ .large.ui.thingy {
+ font-size: 1.5em;
+ }
+
+
+
Classes should be defined in one word, if the concept cannot be reduced to a single word then consider factoring it into multiple sub classes
+
+ .attached.ui.thingy {
+ position: relative;
+ }
+ .left.attached.ui.thingy {
+ left: 0px;
+ top: 50%;
+ margin-top: -0.5em;
+ }
+ .right.attached.ui.thingy {
+ right: 0px;
+ top: 50%;
+ margin-top: -0.5em
+ }
+
+
+
Abbreviations are useful for taking notes, but css definitions should attempt to use consistent, common language.
+
+ /* nope */
+ .ui.btn {
+
+ }
+ .ui.widget .cpttext {
+
+ }
+ /* good */
+ .ui.button {
+
+ }
+ .ui.widget .caption {
+
+ }
+
+
+
Avoid requiring any specific tags in your definitions. This will allow developers to choose which tags they would like to use with an element.
+
Sometimes however it makes sense to allow for common tags to be used in place of classnames for brevity. Paragraph tags, links, labels, and tables may be useful to use in a UI element definition without classnames.
+
Be cautious though, for example, requiring a form definition to use a form tag limits a developers ability to nest form elements inside other forms. The same is true for anchor tags
+
+
+ /* hey how do you know this is the third heading? */
+ /* and what about all the other possible sizes? */
+ .ui.thingy h3 {
+
+ }
+
+ /* yay the developer can choose what type of heading tag to use */
+ .ui.thingy .header {
+
+ }
+
+
+
+
+ /* wow this guy is going to have to do a lot of typing... */
+ .ui.table .cell {
+
+ }
+ /* this seems like a reasonable assumption, html is a bit strict about these things */
+ .ui.table td {
+
+ }
+
+
+
+
+
+
Multiple elements may contain similar variations that function slightly different.
+
For example it may be useful for various elements to float left or right. At first it may seem most useful to write a helper class that floats all UI element types when given a certain class name, but the way which an element may be floated might vary depending on the type of element.
+
+ /*
+ this element will default to floating left if any float is specified
+ it will receive margins on its float relative to its size
+ */
+ .ui.floated.widget,
+ .ui.left.floated.widget {
+ float: left;
+ margin-right: 1em;
+ }
+ .ui.right.floated.widget {
+ float: right;
+ margin-left: 1em;
+ }
+ /* this will not receive margins when floated and will default to floating right */
+ .ui.floated.thingy,
+ .ui.right.floated.thingy {
+ float: right;
+ }
+ .ui.right.floated.thingy {
+ float: left;
+ }
+
+
+
Elements are often inverted to stand out on dark backgrounds. Consider creating a variation of your element defines how the element can invert its colors.
+
Keep in mind you might have to increase the contrast between shades of your element when inverting colors, its much easier to detect in a design between multiple shades of a light color than a dark one.
+
+ .ui.thingy {
+ background-color: #FFFFFF;
+ color: rgba(0, 0, 0, 0.7);
+ }
+ .ui.inverted.thingy {
+ background-color: #222222;
+ color: rgba(255, 255, 255, 0.7);
+ }
+
+
+
+
\ No newline at end of file
diff --git a/css/semantic/server/documents/hotfix.html.eco b/css/semantic/server/documents/hotfix.html.eco
new file mode 100755
index 0000000..102eaf6
--- /dev/null
+++ b/css/semantic/server/documents/hotfix.html.eco
@@ -0,0 +1,51 @@
+---
+layout : 'default'
+css : 'hotfix'
+
+title : 'Test Page'
+type : 'Library'
+---
+<%- @partial('header') %>
+
+
+
+