Browse Source

Adds new accordion module and docs for it

Former-commit-id: 1b8702b1f6e8b6a6a8f2cf7da1c27b3880d9b11e
Former-commit-id: f3994e1b062c16587f86c95f280cb035f6cfe05f
beta
Jack Lukic 12 years ago
parent
commit
b017c1430e
  1. 2
      build/minified/collections/grid.min.css
  2. 2
      build/minified/elements/step.min.css
  3. 451
      build/minified/modules/accordion.js
  4. 2
      build/minified/modules/accordion.min.css
  5. 2
      build/minified/modules/accordion.min.js
  6. 2
      build/minified/modules/behavior/animation.min.js
  7. 2
      build/minified/modules/behavior/api.min.js
  8. 2
      build/minified/modules/behavior/colorize.min.js
  9. 2
      build/minified/modules/behavior/default-text.min.js
  10. 2
      build/minified/modules/behavior/form.min.js
  11. 2
      build/minified/modules/behavior/state.min.js
  12. 2
      build/minified/modules/carousel.min.js
  13. 2
      build/minified/modules/chat.min.js
  14. 2
      build/minified/modules/checkbox.min.js
  15. 2
      build/minified/modules/dimmer.min.js
  16. 2
      build/minified/modules/dropdown.min.js
  17. 2
      build/minified/modules/form.min.js
  18. 2
      build/minified/modules/tab.min.css
  19. 2
      build/minified/modules/video.min.js
  20. 451
      build/packaged/modules/accordion.js
  21. 2
      build/packaged/semantic.min.css.REMOVED.git-id
  22. 2
      build/packaged/semantic.min.js.REMOVED.git-id
  23. 3
      build/uncompressed/collections/grid.css
  24. 4
      build/uncompressed/elements/button.css
  25. 3
      build/uncompressed/elements/step.css
  26. 121
      build/uncompressed/modules/accordion.css
  27. 451
      build/uncompressed/modules/accordion.js
  28. 4
      build/uncompressed/modules/tab.css
  29. 1
      node/src/documents/elements/icon.html
  30. 6
      node/src/documents/elements/step.html
  31. 14
      node/src/documents/index.html
  32. 149
      node/src/documents/modules/accordion.html
  33. 5
      node/src/files/404.html
  34. 3
      node/src/files/components/semantic/collections/grid.css
  35. 4
      node/src/files/components/semantic/elements/button.css
  36. 3
      node/src/files/components/semantic/elements/step.css
  37. 121
      node/src/files/components/semantic/modules/accordion.css
  38. 451
      node/src/files/components/semantic/modules/accordion.js
  39. 4
      node/src/files/components/semantic/modules/tab.css
  40. 22
      node/src/files/javascript/accordion.js
  41. 1
      node/src/files/javascript/semantic.js
  42. 1
      node/src/layouts/default.html.eco
  43. 3
      src/collections/grid.less
  44. 4
      src/elements/button.less
  45. 3
      src/elements/step.less
  46. 451
      src/modules/accordion.js
  47. 154
      src/modules/accordion.less
  48. 4
      src/modules/tab.less

2
build/minified/collections/grid.min.css

File diff suppressed because one or more lines are too long

2
build/minified/elements/step.min.css

@ -1 +1 @@
.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:0;right:-1.48em;border-bottom:1.5em solid transparent;border-left:1.5em solid #FFF;border-top:1.5em solid transparent;width:0;height:0}.ui.step,.ui.steps .step,.ui.steps .step:after{-webkit-transition:opacity .1s ease,color .1s ease,box-shadow .1s ease;-moz-transition:opacity .1s ease,color .1s ease,box-shadow .1s ease;-o-transition:opacity .1s ease,color .1s ease,box-shadow .1s ease;-ms-transition:opacity .1s ease,color .1s ease,box-shadow .1s ease;transition:opacity .1s ease,color .1s ease,box-shadow .1s ease}.ui.steps{cursor:pointer;display:inline-block;font-size:0;-moz-box-shadow:0 0 0 1px rgba(0,0,0,.1);-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;-moz-border-radius:.3125rem;-webkit-border-radius:.3125rem;border-radius:.3125rem}.ui.steps .step:first-child{padding-left:1.35em;-webkit-border-radius:.3125em 0 0 .3125em;-moz-border-radius:.3125em 0 0 .3125em;border-radius:.3125em 0 0 .3125em}.ui.steps .step:last-child{-webkit-border-radius:0 .3125em .3125em 0;-moz-border-radius:0 .3125em .3125em 0;border-radius:0 .3125em .3125em 0}.ui.steps .step:only-child{-webkit-border-radius:.3125em;-moz-border-radius:.3125em;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{border-left-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{border-left-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{border-left-color:#555}.ui.steps .disabled.step,.ui.disabled.step{cursor:auto;background-color:#FFF;color:#CBCBCB}.ui.disabled.step:after{border:0;background-color:#FFF;top:.42em;right:-1em;width:2.15em;height:2.15em;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-o-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-box-shadow:-1px -1px 0 0 rgba(0,0,0,.1) inset;-moz-box-shadow:-1px -1px 0 0 rgba(0,0,0,.1) inset;box-shadow:-1px -1px 0 0 rgba(0,0,0,.1) inset}.attached.ui.steps{margin:0;-webkit-border-radius:.3125em .3125em 0 0;-moz-border-radius:.3125em .3125em 0 0;border-radius:.3125em .3125em 0 0}.attached.ui.steps .step:first-child{-webkit-border-radius:.3125em 0 0;-moz-border-radius:.3125em 0 0;border-radius:.3125em 0 0}.attached.ui.steps .step:last-child{-webkit-border-radius:0 .3125em 0 0;-moz-border-radius:0 .3125em 0 0;border-radius:0 .3125em 0 0}.bottom.attached.ui.steps{margin-top:-1px;-webkit-border-radius:0 0 .3125em .3125em;-moz-border-radius:0 0 .3125em .3125em;border-radius:0 0 .3125em .3125em}.bottom.attached.ui.steps .step:first-child{-webkit-border-radius:0 0 0 .3125em;-moz-border-radius:0 0 0 .3125em;border-radius:0 0 0 .3125em}.bottom.attached.ui.steps .step:last-child{-webkit-border-radius:0 0 .3125em;-moz-border-radius:0 0 .3125em;border-radius:0 0 .3125em}.ui.steps,.ui.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.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:0;right:-1.48em;border-bottom:1.5em solid transparent;border-left:1.5em solid #FFF;border-top:1.5em solid transparent;width:0;height:0}.ui.step,.ui.steps .step,.ui.steps .step:after{-webkit-transition:opacity .1s ease,color .1s ease,box-shadow .1s ease;-moz-transition:opacity .1s ease,color .1s ease,box-shadow .1s ease;-o-transition:opacity .1s ease,color .1s ease,box-shadow .1s ease;-ms-transition:opacity .1s ease,color .1s ease,box-shadow .1s ease;transition:opacity .1s ease,color .1s ease,box-shadow .1s ease}.ui.steps{cursor:pointer;display:inline-block;font-size:0;-moz-box-shadow:0 0 0 1px rgba(0,0,0,.1);-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;-moz-border-radius:.3125rem;-webkit-border-radius:.3125rem;border-radius:.3125rem}.ui.steps .step:first-child{padding-left:1.35em;-webkit-border-radius:.3125em 0 0 .3125em;-moz-border-radius:.3125em 0 0 .3125em;border-radius:.3125em 0 0 .3125em}.ui.steps .step:last-child{-webkit-border-radius:0 .3125em .3125em 0;-moz-border-radius:0 .3125em .3125em 0;border-radius:0 .3125em .3125em 0}.ui.steps .step:only-child{-webkit-border-radius:.3125em;-moz-border-radius:.3125em;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{border-left-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{border-left-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{border-left-color:#555}.ui.steps .disabled.step,.ui.disabled.step{cursor:auto;background-color:#FFF;color:#CBCBCB}.ui.disabled.step:after{border:0;background-color:#FFF;top:.42em;right:-1em;width:2.15em;height:2.15em;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-o-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-box-shadow:-1px -1px 0 0 rgba(0,0,0,.1) inset;-moz-box-shadow:-1px -1px 0 0 rgba(0,0,0,.1) inset;box-shadow:-1px -1px 0 0 rgba(0,0,0,.1) inset}.attached.ui.steps{margin:0;-webkit-border-radius:.3125em .3125em 0 0;-moz-border-radius:.3125em .3125em 0 0;border-radius:.3125em .3125em 0 0}.attached.ui.steps .step:first-child{-webkit-border-radius:.3125em 0 0;-moz-border-radius:.3125em 0 0;border-radius:.3125em 0 0}.attached.ui.steps .step:last-child{-webkit-border-radius:0 .3125em 0 0;-moz-border-radius:0 .3125em 0 0;border-radius:0 .3125em 0 0}.bottom.attached.ui.steps{margin-top:-1px;-webkit-border-radius:0 0 .3125em .3125em;-moz-border-radius:0 0 .3125em .3125em;border-radius:0 0 .3125em .3125em}.bottom.attached.ui.steps .step:first-child{-webkit-border-radius:0 0 0 .3125em;-moz-border-radius:0 0 0 .3125em;border-radius:0 0 0 .3125em}.bottom.attached.ui.steps .step:last-child{-webkit-border-radius:0 0 .3125em;-moz-border-radius:0 0 .3125em;border-radius:0 0 .3125em}.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}

451
build/minified/modules/accordion.js

@ -8,189 +8,344 @@
;(function ($, window, document, undefined) {
$.fn.accordion = function(parameters) {
var
settings = $.extend(true, {}, $.fn.accordion.settings, parameters),
// hoist arguments
moduleArguments = arguments || false
;
$(this)
.each(function() {
var
$module = $(this),
$title = $module.find(settings.selector.title),
$icon = $module.find(settings.selector.icon),
$content = $module.find(settings.selector.content),
instance = $module.data('module'),
className = settings.className,
module
;
module = {
initialize: function() {
// initializing
$title
.on('click', module.change)
;
$module
.data('module', module)
;
},
change: function() {
$.fn.accordion = function(parameters) {
var
$allModules = $(this),
settings = ( $.isPlainObject(parameters) )
? $.extend(true, {}, $.fn.accordion.settings, parameters)
: $.fn.accordion.settings,
eventNamespace = '.' + settings.namespace,
moduleNamespace = 'module-' + settings.namespace,
moduleSelector = $allModules.selector || '',
time = new Date().getTime(),
performance = [],
query = arguments[0],
methodInvoked = (typeof query == 'string'),
queryArguments = [].slice.call(arguments, 1),
invokedResponse,
allModules
;
$allModules
.each(function() {
var
$module = $(this),
$title = $module.find(settings.selector.title),
$icon = $module.find(settings.selector.icon),
$content = $module.find(settings.selector.content),
selector = $module.selector || '',
element = this,
instance = $module.data('module-' + settings.namespace),
className = settings.className,
metadata = settings.metadata,
namespace = settings.namespace,
animation = settings.animation,
errors = settings.errors,
module
;
module = {
initialize: function() {
module.debug('Initializing accordion with bound events', $module);
// initializing
$title
.on('click', module.event.click)
;
$module
.data('module', module)
;
},
destroy: function() {
module.debug('Destroying previous accordion for', $module);
$module
.off(namespace)
;
},
event: {
click: function() {
var
$activeTitle = $(this),
$activeContent = $activeTitle.next($content),
contentIsOpen = $activeTitle.hasClass(className.active)
$activeTitle = $(this),
activeIndex = $title.index($activeTitle),
contentIsOpen = $activeTitle.next($content).hasClass(className.active)
;
module.verbose('Accordion title clicked', $activeTitle);
if(contentIsOpen) {
if(settings.collapsible) {
$.proxy(module.close, $activeTitle)();
module.close(activeIndex);
}
else {
module.debug('Cannot close accordion content collapsing is disabled');
}
}
else {
$.proxy(module.open, $activeTitle)();
module.open(activeIndex);
}
},
}
open: function() {
var
$activeTitle = $(this),
$activeContent = $activeTitle.next($content),
$currentTitle = $title.filter('.' + className.active),
$currentContent = $currentTitle.next($title)
;
if(settings.exclusive && $currentTitle.size() > 0) {
},
$currentTitle
.removeClass('active')
;
$currentContent
.stop()
.slideUp(settings.speed , settings.easing, function() {
$(this)
.removeClass('active')
.removeAttr('style')
;
})
;
}
$activeTitle
.addClass(className.active)
open: function(index) {
var
$activeTitle = $title.eq(index),
$activeContent = $activeTitle.next($content),
$previousTitle = $title.filter('.' + className.active),
$previousContent = $previousTitle.next($title),
contentIsOpen = ($previousTitle.size() > 0)
;
module.debug('Opening accordion content', $activeTitle);
if(settings.exclusive && contentIsOpen) {
$previousTitle
.removeClass(className.active)
;
$activeContent
.hide()
.addClass(className.active)
$previousContent
.stop()
.slideDown(settings.speed, settings.easing, function() {
$(this)
.children()
.animate({
opacity: 0
}, settings.speed)
.end()
.slideUp(settings.speed , settings.easing, function() {
$previousContent
.removeClass(className.active)
.removeAttr('style')
.children()
.removeAttr('style')
;
})
;
},
}
$activeTitle
.addClass(className.active)
;
$activeContent
.stop()
.slideDown(settings.speed, settings.easing, function() {
$activeContent
.addClass(className.active)
.removeAttr('style')
;
$.proxy(settings.onOpen, $activeContent)();
$.proxy(settings.onChange, $activeContent)();
})
;
},
close: function() {
close: function(index) {
var
$activeTitle = $title.eq(index),
$activeContent = $activeTitle.next($content)
;
module.debug('Closing accordion content', $activeTitle);
$activeTitle
.removeClass(className.active)
;
$activeContent
.removeClass(className.active)
.show()
.stop()
.slideUp(settings.speed, settings.easing, function(){
$activeContent
.removeAttr('style')
;
$.proxy(settings.onClose, $activeContent)();
$.proxy(settings.onChange, $activeContent)();
})
;
},
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.moduleName + ':');
}
}
},
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.moduleName + ':');
}
}
},
error: function() {
module.error = Function.prototype.bind.call(console.log, console, settings.moduleName + ':');
},
performance: {
log: function(message) {
var
$activeTitle = $(this),
$activeContent = $activeTitle.next($content)
;
$activeTitle
.removeClass(className.active)
currentTime,
executionTime,
previousTime
;
$activeContent
.removeClass(className.active)
.show()
.stop()
.slideUp(settings.speed, settings.easing, function(){
$(this)
.removeAttr('style')
;
})
;
},
debug: function(message) {
if(settings.debug) {
console.info(settings.moduleName + ': ' + message);
if(settings.performance) {
currentTime = new Date().getTime();
previousTime = time || currentTime,
executionTime = currentTime - previousTime;
time = currentTime;
performance.push({
'Element' : element,
'Name' : message[0],
'Arguments' : message[1] || '',
'Execution Time' : executionTime
});
}
clearTimeout(module.performance.timer);
module.performance.timer = setTimeout(module.performance.display, 100);
},
error: function(errorMessage) {
console.warn(settings.moduleName + ': ' + errorMessage);
},
invoke: function(methodName, context, methodArguments) {
display: function() {
var
method
title = settings.moduleName + ':',
totalTime = 0
;
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.errors.method);
return false;
});
time = false;
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});
title += ' ' + totalTime + 'ms';
if(moduleSelector) {
title += ' \'' + moduleSelector + '\'';
}
if ( $.isFunction( method ) ) {
return method.apply(context, methodArguments);
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();
}
// return retrieved variable or chain
return method;
performance = [];
}
};
// calling a method
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 );
},
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];
return true;
}
else if( instance[value] !== undefined ) {
found = instance[value];
return true;
}
module.error(errors.method);
return false;
});
}
return module.invoke(moduleArguments[0], this, Array.prototype.slice.call( moduleArguments, 1 ) );
if ( $.isFunction( found ) ) {
instance.verbose('Executing invoked function', found);
return found.apply(context, passedArguments);
}
return found || false;
}
};
if(methodInvoked) {
if(instance === undefined) {
module.initialize();
}
invokedResponse = module.invoke(query);
}
else {
if(instance !== undefined) {
module.destroy();
}
// initializing
module.initialize();
}
})
;
return (invokedResponse)
? invokedResponse
: this
;
};
})
;
return this;
};
$.fn.accordion.settings = {
moduleName : 'Accordion',
$.fn.accordion.settings = {
moduleName : 'Accordion',
debug : false,
exclusive : true,
collapsible : true,
debug : true,
verbose : true,
performance : false,
exclusive : true,
collapsible : true,
onOpen : function(){},
onClose : function(){},
onChange : function(){},
errors: {
method : 'The method you called is not defined'
},
errors: {
method : 'The method you called is not defined'
},
className : {
active : 'active',
hover : 'hover'
},
className : {
active : 'active',
hover : 'hover'
},
selector : {
title : '.title',
icon : '.icon',
content : '.content'
},
selector : {
title : '.title',
icon : '.icon',
content : '.content'
},
speed : 500,
easing : 'easeInOutQuint'
speed : 500,
easing : 'easeInOutQuint'
};
};
})( jQuery, window , document );

2
build/minified/modules/accordion.min.css

@ -1 +1 @@
.ui.accordion .title{cursor:pointer;font-size:16px;font-weight:700;color:#3E2151;margin-top:8px;padding:8px;border:1px solid transparent;border-top:1px solid #E0E0E0;-webkit-box-shadow:0 1px 0 #FFF inset;-moz-box-shadow:0 1px 0 #FFF inset;box-shadow:0 1px 0 #FFF inset;transition:color .2s ease-out}.ui.accordion .title:first-child{margin-top:0;border-top-color:transparent;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.ui.accordion .title:hover,.ui.accordion .title.active{color:#335687}.ui.accordion .title.active{background-color:#E0E0E0;border:1px solid #BBB;-webkit-box-shadow:0 1px 0 #FFF inset;-moz-box-shadow:0 1px 0 #FFF inset;box-shadow:0 1px 0 #FFF inset;color:#335687}.ui.accordion .icon{margin:0 4px 4px 2px;display:inline-block;text-indent:-9999px;vertical-align:middle;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:6px solid #3E2151;border-right:4px solid transparent}.ui.accordion .title:hover .icon{border-left-color:#335687}.ui.accordion .title.active .icon{border-left:4px solid transparent;border-top:6px solid #335687;margin-left:0;margin-bottom:0}.ui.accordion .content{display:none;padding:10px 20px;margin:0;font-size:12px;line-height:2}.ui.accordion .content p{margin:12px 0;font-size:12px}.ui.accordion .content.active{display:block;background-color:#EEE;-webkit-box-shadow:0 0 2px rgba(0,0,0,.25) inset;-moz-box-shadow:0 0 2px rgba(0,0,0,.25) inset;box-shadow:0 0 2px rgba(0,0,0,.25) inset}.ui.accordion.connected{background-color:#FAFAFA;border:1px solid #DDD}.ui.accordion.connected .title{margin-top:0}
.ui.accordion{overflow:hidden;font-size:1rem;border-radius:.3125em;background-color:#FFF;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);-moz-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{cursor:pointer;padding:.75em 1em;font-weight:700;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;-o-transition:background-color .2s ease-out;-ms-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.ui.accordion .title:first-child{border-top:0}.ui.accordion .content{display:none;padding:1.3em 1em}.ui.accordion .title:hover,.ui.accordion .title.active{color:rgba(0,0,0,.8)}.ui.accordion .title.active{background-color:rgba(0,0,0,.1);color:rgba(0,0,0,.8)}.ui.accordion .content.active{display:block}

2
build/minified/modules/accordion.min.js

@ -1 +1 @@
(function(e,t,i,n){e.fn.accordion=function(t){var i=e.extend(!0,{},e.fn.accordion.settings,t),o=arguments||!1;return e(this).each(function(){var t,s=e(this),c=s.find(i.selector.title),a=(s.find(i.selector.icon),s.find(i.selector.content)),r=s.data("module"),l=i.className;return t={initialize:function(){c.on("click",t.change),s.data("module",t)},change:function(){var n=e(this),o=(n.next(a),n.hasClass(l.active));o?i.collapsible&&e.proxy(t.close,n)():e.proxy(t.open,n)()},open:function(){var t=e(this),n=t.next(a),o=c.filter("."+l.active),s=o.next(c);i.exclusive&&o.size()>0&&(o.removeClass("active"),s.stop().slideUp(i.speed,i.easing,function(){e(this).removeClass("active").removeAttr("style")})),t.addClass(l.active),n.hide().addClass(l.active).stop().slideDown(i.speed,i.easing,function(){e(this).removeAttr("style")})},close:function(){var t=e(this),n=t.next(a);t.removeClass(l.active),n.removeClass(l.active).show().stop().slideUp(i.speed,i.easing,function(){e(this).removeAttr("style")})},debug:function(e){i.debug&&console.info(i.moduleName+": "+e)},error:function(e){console.warn(i.moduleName+": "+e)},invoke:function(o,s,c){var a;return c=c||Array.prototype.slice.call(arguments,2),"string"==typeof o&&r!==n&&(o=o.split("."),e.each(o,function(n,o){return e.isPlainObject(r[o])?(r=r[o],!0):e.isFunction(r[o])?(a=r[o],!0):(t.error(i.errors.method),!1)})),e.isFunction(a)?a.apply(s,c):a}},r!==n&&o?("invoke"==o[0]&&(o=Array.prototype.slice.call(o,1)),t.invoke(o[0],this,Array.prototype.slice.call(o,1))):(t.initialize(),n)}),this},e.fn.accordion.settings={moduleName:"Accordion",debug:!1,exclusive:!0,collapsible:!0,errors:{method:"The method you called is not defined"},className:{active:"active",hover:"hover"},selector:{title:".title",icon:".icon",content:".content"},speed:500,easing:"easeInOutQuint"}})(jQuery,window,document);
(function(e,n,o,t){e.fn.accordion=function(n){var o,i=e(this),c=e.isPlainObject(n)?e.extend(!0,{},e.fn.accordion.settings,n):e.fn.accordion.settings,a=("."+c.namespace,"module-"+c.namespace,i.selector||""),s=(new Date).getTime(),r=[],l=arguments[0],u="string"==typeof l,d=[].slice.call(arguments,1);return i.each(function(){var n,i=e(this),m=i.find(c.selector.title),p=(i.find(c.selector.icon),i.find(c.selector.content)),g=(i.selector||"",this),f=i.data("module-"+c.namespace),v=c.className,b=(c.metadata,c.namespace),h=(c.animation,c.errors);n={initialize:function(){n.debug("Initializing accordion with bound events",i),m.on("click",n.event.click),i.data("module",n)},destroy:function(){n.debug("Destroying previous accordion for",i),i.off(b)},event:{click:function(){var o=e(this),t=m.index(o),i=o.next(p).hasClass(v.active);n.verbose("Accordion title clicked",o),i?c.collapsible?n.close(t):n.debug("Cannot close accordion content collapsing is disabled"):n.open(t)}},open:function(o){var t=m.eq(o),i=t.next(p),a=m.filter("."+v.active),s=a.next(m),r=a.size()>0;n.debug("Opening accordion content",t),c.exclusive&&r&&(a.removeClass(v.active),s.stop().children().animate({opacity:0},c.speed).end().slideUp(c.speed,c.easing,function(){s.removeClass(v.active).removeAttr("style").children().removeAttr("style")})),t.addClass(v.active),i.stop().slideDown(c.speed,c.easing,function(){i.addClass(v.active).removeAttr("style"),e.proxy(c.onOpen,i)(),e.proxy(c.onChange,i)()})},close:function(o){var t=m.eq(o),i=t.next(p);n.debug("Closing accordion content",t),t.removeClass(v.active),i.removeClass(v.active).show().stop().slideUp(c.speed,c.easing,function(){i.removeAttr("style"),e.proxy(c.onClose,i)(),e.proxy(c.onChange,i)()})},setting:function(o,i){return n.debug("Changing setting",o,i),i===t?c[o]:(e.isPlainObject(o)?e.extend(!0,c,o):c[o]=i,t)},internal:function(o,i){return n.debug("Changing internal",o,i),i===t?n[o]:(e.isPlainObject(o)?e.extend(!0,n,o):n[o]=i,t)},debug:function(){c.debug&&(c.performance?n.performance.log(arguments):n.debug=Function.prototype.bind.call(console.info,console,c.moduleName+":"))},verbose:function(){c.verbose&&c.debug&&(c.performance?n.performance.log(arguments):n.verbose=Function.prototype.bind.call(console.info,console,c.moduleName+":"))},error:function(){n.error=Function.prototype.bind.call(console.log,console,c.moduleName+":")},performance:{log:function(e){var o,t,i;c.performance&&(o=(new Date).getTime(),i=s||o,t=o-i,s=o,r.push({Element:g,Name:e[0],Arguments:e[1]||"","Execution Time":t})),clearTimeout(n.performance.timer),n.performance.timer=setTimeout(n.performance.display,100)},display:function(){var n=c.moduleName+":",o=0;s=!1,e.each(r,function(e,n){o+=n["Execution Time"]}),n+=" "+o+"ms",a&&(n+=" '"+a+"'"),(console.group!==t||console.table!==t)&&r.length>0&&(console.groupCollapsed(n),console.table?console.table(r):e.each(r,function(e,n){console.log(n.Name+": "+n["Execution Time"]+"ms")}),console.groupEnd()),r=[]}},invoke:function(o,i,c){var a,s;return i=i||d,c=g||c,"string"==typeof o&&f!==t&&(o=o.split("."),a=o.length-1,e.each(o,function(o,i){return e.isPlainObject(f[i])&&o!=a?(f=f[i],!0):f[i]!==t?(s=f[i],!0):(n.error(h.method),!1)})),e.isFunction(s)?(f.verbose("Executing invoked function",s),s.apply(c,i)):s||!1}},u?(f===t&&n.initialize(),o=n.invoke(l)):(f!==t&&n.destroy(),n.initialize())}),o?o:this},e.fn.accordion.settings={moduleName:"Accordion",debug:!0,verbose:!0,performance:!1,exclusive:!0,collapsible:!0,onOpen:function(){},onClose:function(){},onChange:function(){},errors:{method:"The method you called is not defined"},className:{active:"active",hover:"hover"},selector:{title:".title",icon:".icon",content:".content"},speed:500,easing:"easeInOutQuint"}})(jQuery,window,document);

2
build/minified/modules/behavior/animation.min.js

@ -1 +1 @@
(function(e,t,n,i){e.animationSettings=function(t,n,a,o){return t=n===i?t:"object"==typeof n?e.extend({},t,n):"function"==typeof a?e.extend({},t,{duration:n,complete:a}):"object"==typeof a?e.extend(!0,{},t,{duration:n},a):e.extend({},t,{duration:n,easing:a,complete:o})},e.fn.popIn=function(t,n,i){var a=e.animationSettings(e.fn.popIn.settings,t,n,i),o=e(this),s=o.size(),c=0,r=function(){0==o.filter(":animated").size(),c++,e(this).css("transform","").removeClass(a.className.init),e.proxy(a.eachComplete,this)(),c==s&&e.proxy(a.complete,o)()},l=function(t){e(this).delay(a.delay*t).animate({opacity:a.endOpacity,transform:"scale("+a.endScale+")"},a.duration,a.easing,r)};return a.isLegacyBrowser?o.show():o.addClass(a.className.init).show().css({opacity:a.startOpacity,transform:"scale("+a.startScale+")"}).each(l),e(this)},e.fn.popOut=function(t,n,i){var a=e.animationSettings(e.fn.popIn.settings,t,n,i),o={complete:function(){e(this).hide(),e.proxy(a.complete,this)()},startOpacity:a.endOpacity,endOpacity:0,startScale:a.endScale,endScale:a.startScale},s=e.extend(!0,{},a,o);e(this).popIn(s)},e.fn.popIn.settings={isLegacyBrowser:!1,className:{init:"init"},duration:450,easing:"easeOutExpo",delay:100,startOpacity:0,endOpacity:1,startScale:.7,endScale:1,eachComplete:function(){},complete:function(){}},e.fn.kenBurns=function(t,n,a){var o=e.animationSettings(e.fn.kenBurns.settings,t,n,a),s={randomPosition:function(e,t,n){var n=n!==i?n:t,a=Math.random()*(e+n-(e-t))+(e-t);return parseInt(a,10)},animate:function(){var t={},n={};t=o.useStartPosition?{x:parseInt(e(this).css("background-position-x"),10),y:parseInt(e(this).css("background-position-y"),10)}:{x:s.randomPosition(50,o.xRange),y:s.randomPosition(50,o.yRange)},n.x=t.x>50?s.randomPosition(t.x,o.xMaxTravelDistance,-o.xMinTravelDistance):s.randomPosition(t.x,-o.xMinTravelDistance,o.xMaxTravelDistance),n.y=t.y>50?s.randomPosition(t.y,o.yMaxTravelDistance,-o.yMinTravelDistance):s.randomPosition(t.y,-o.yMinTravelDistance,o.yMaxTravelDistance),e(this).css({backgroundPosition:t.x+"%",backgroundPositionY:t.y+"%"}).stop().animate({backgroundPosition:n.x+"%",backgroundPositionY:n.y+"%"},o.duration,o.easing,o.complete)}};return o.isLegacyBrowser||e(this).each(s.animate),e(this)},e.fn.kenBurns.settings={isLegacyBrowser:!1,duration:1e4,easing:"linear",useStartPosition:!1,xRange:40,yRange:20,xMinTravelDistance:30,xMaxTravelDistance:60,yMinTravelDistance:20,yMaxTravelDistance:40,scale:.1,complete:function(){}}})(jQuery,window,document);
(function(e,n,t,o){e.animationSettings=function(n,t,i,a){return n=t===o?n:"object"==typeof t?e.extend({},n,t):"function"==typeof i?e.extend({},n,{duration:t,complete:i}):"object"==typeof i?e.extend(!0,{},n,{duration:t},i):e.extend({},n,{duration:t,easing:i,complete:a})},e.fn.popIn=function(n,t,o){var i=e.animationSettings(e.fn.popIn.settings,n,t,o),a=e(this),s=a.size(),c=0,r=function(){0==a.filter(":animated").size(),c++,e(this).css("transform","").removeClass(i.className.init),e.proxy(i.eachComplete,this)(),c==s&&e.proxy(i.complete,a)()},l=function(n){e(this).delay(i.delay*n).animate({opacity:i.endOpacity,transform:"scale("+i.endScale+")"},i.duration,i.easing,r)};return i.isLegacyBrowser?a.show():a.addClass(i.className.init).show().css({opacity:i.startOpacity,transform:"scale("+i.startScale+")"}).each(l),e(this)},e.fn.popOut=function(n,t,o){var i=e.animationSettings(e.fn.popIn.settings,n,t,o),a={complete:function(){e(this).hide(),e.proxy(i.complete,this)()},startOpacity:i.endOpacity,endOpacity:0,startScale:i.endScale,endScale:i.startScale},s=e.extend(!0,{},i,a);e(this).popIn(s)},e.fn.popIn.settings={isLegacyBrowser:!1,className:{init:"init"},duration:450,easing:"easeOutExpo",delay:100,startOpacity:0,endOpacity:1,startScale:.7,endScale:1,eachComplete:function(){},complete:function(){}},e.fn.kenBurns=function(n,t,i){var a=e.animationSettings(e.fn.kenBurns.settings,n,t,i),s={randomPosition:function(e,n,t){var t=t!==o?t:n,i=Math.random()*(e+t-(e-n))+(e-n);return parseInt(i,10)},animate:function(){var n={},t={};n=a.useStartPosition?{x:parseInt(e(this).css("background-position-x"),10),y:parseInt(e(this).css("background-position-y"),10)}:{x:s.randomPosition(50,a.xRange),y:s.randomPosition(50,a.yRange)},t.x=n.x>50?s.randomPosition(n.x,a.xMaxTravelDistance,-a.xMinTravelDistance):s.randomPosition(n.x,-a.xMinTravelDistance,a.xMaxTravelDistance),t.y=n.y>50?s.randomPosition(n.y,a.yMaxTravelDistance,-a.yMinTravelDistance):s.randomPosition(n.y,-a.yMinTravelDistance,a.yMaxTravelDistance),e(this).css({backgroundPosition:n.x+"%",backgroundPositionY:n.y+"%"}).stop().animate({backgroundPosition:t.x+"%",backgroundPositionY:t.y+"%"},a.duration,a.easing,a.complete)}};return a.isLegacyBrowser||e(this).each(s.animate),e(this)},e.fn.kenBurns.settings={isLegacyBrowser:!1,duration:1e4,easing:"linear",useStartPosition:!1,xRange:40,yRange:20,xMinTravelDistance:30,xMaxTravelDistance:60,yMinTravelDistance:20,yMaxTravelDistance:40,scale:.1,complete:function(){}}})(jQuery,window,document);

2
build/minified/modules/behavior/api.min.js

File diff suppressed because one or more lines are too long

2
build/minified/modules/behavior/colorize.min.js

@ -1 +1 @@
(function(e,t,n,o){e.fn.colorize=function(t){var n=e.extend(!0,{},e.fn.colorize.settings,t),i=arguments||!1;return e(this).each(function(t){var a,r,s,c,l,u,d,g,f=e(this),m=e("<canvas />")[0],p=e("<canvas />")[0],h=e("<canvas />")[0],y=new Image,v=n.colors,x=(n.paths,n.namespace),b=n.errors,w=f.data("module-"+x);return g={checkPreconditions:function(){return g.debug("Checking pre-conditions"),!e.isPlainObject(v)||e.isEmptyObject(v)?(g.error(b.undefinedColors),!1):!0},async:function(e){n.async?setTimeout(e,0):e()},getMetadata:function(){g.debug("Grabbing metadata"),c=f.data("image")||n.image||o,l=f.data("name")||n.name||t,u=n.width||f.width(),d=n.height||f.height(),(0===u||0===d)&&g.error(b.undefinedSize)},initialize:function(){g.debug("Initializing with colors",v),g.checkPreconditions()&&g.async(function(){g.getMetadata(),g.canvas.create(),g.draw.image(function(){g.draw.colors(),g.canvas.merge()}),f.data("module-"+x,g)})},redraw:function(){g.debug("Redrawing image"),g.async(function(){g.canvas.clear(),g.draw.colors(),g.canvas.merge()})},change:{color:function(e,t){return g.debug("Changing color",e),v[e]===o?(g.error(b.missingColor),!1):(v[e]=t,g.redraw(),o)}},canvas:{create:function(){g.debug("Creating canvases"),m.width=u,m.height=d,p.width=u,p.height=d,h.width=u,h.height=d,a=m.getContext("2d"),r=p.getContext("2d"),s=h.getContext("2d"),f.append(m),a=f.children("canvas")[0].getContext("2d")},clear:function(){g.debug("Clearing canvas"),s.fillStyle="#FFFFFF",s.fillRect(0,0,u,d)},merge:function(){return e.isFunction(a.blendOnto)?(a.putImageData(r.getImageData(0,0,u,d),0,0),s.blendOnto(a,"multiply"),o):(g.error(b.missingPlugin),o)}},draw:{image:function(e){g.debug("Drawing image"),e=e||function(){},c?(y.src=c,y.onload=function(){r.drawImage(y,0,0),e()}):(g.error(b.noImage),e())},colors:function(){g.debug("Drawing color overlays",v),e.each(v,function(e,t){n.onDraw(s,l,e,t)})}},debug:function(e,t){n.debug&&(t!==o?console.info(n.moduleName+": "+e,t):console.info(n.moduleName+": "+e))},error:function(e){console.warn(n.moduleName+": "+e)},invoke:function(t,i,a){var r;return a=a||Array.prototype.slice.call(arguments,2),"string"==typeof t&&w!==o&&(t=t.split("."),e.each(t,function(t,o){return e.isPlainObject(w[o])?(w=w[o],!0):e.isFunction(w[o])?(r=w[o],!0):(g.error(n.errors.method),!1)})),e.isFunction(r)?r.apply(i,a):!1}},w!==o&&i?("invoke"==i[0]&&(i=Array.prototype.slice.call(i,1)),g.invoke(i[0],this,Array.prototype.slice.call(i,1))):(g.initialize(),o)}),this},e.fn.colorize.settings={moduleName:"Image Colorizer",debug:!0,namespace:"colorize",onDraw:function(){},async:!0,colors:{},metadata:{image:"image",name:"name"},errors:{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(e,n,t,o){e.fn.colorize=function(n){var t=e.extend(!0,{},e.fn.colorize.settings,n),i=arguments||!1;return e(this).each(function(n){var a,r,s,c,l,u,d,g,m=e(this),p=e("<canvas />")[0],f=e("<canvas />")[0],h=e("<canvas />")[0],y=new Image,v=t.colors,b=(t.paths,t.namespace),x=t.errors,C=m.data("module-"+b);return g={checkPreconditions:function(){return g.debug("Checking pre-conditions"),!e.isPlainObject(v)||e.isEmptyObject(v)?(g.error(x.undefinedColors),!1):!0},async:function(e){t.async?setTimeout(e,0):e()},getMetadata:function(){g.debug("Grabbing metadata"),c=m.data("image")||t.image||o,l=m.data("name")||t.name||n,u=t.width||m.width(),d=t.height||m.height(),(0===u||0===d)&&g.error(x.undefinedSize)},initialize:function(){g.debug("Initializing with colors",v),g.checkPreconditions()&&g.async(function(){g.getMetadata(),g.canvas.create(),g.draw.image(function(){g.draw.colors(),g.canvas.merge()}),m.data("module-"+b,g)})},redraw:function(){g.debug("Redrawing image"),g.async(function(){g.canvas.clear(),g.draw.colors(),g.canvas.merge()})},change:{color:function(e,n){return g.debug("Changing color",e),v[e]===o?(g.error(x.missingColor),!1):(v[e]=n,g.redraw(),o)}},canvas:{create:function(){g.debug("Creating canvases"),p.width=u,p.height=d,f.width=u,f.height=d,h.width=u,h.height=d,a=p.getContext("2d"),r=f.getContext("2d"),s=h.getContext("2d"),m.append(p),a=m.children("canvas")[0].getContext("2d")},clear:function(){g.debug("Clearing canvas"),s.fillStyle="#FFFFFF",s.fillRect(0,0,u,d)},merge:function(){return e.isFunction(a.blendOnto)?(a.putImageData(r.getImageData(0,0,u,d),0,0),s.blendOnto(a,"multiply"),o):(g.error(x.missingPlugin),o)}},draw:{image:function(e){g.debug("Drawing image"),e=e||function(){},c?(y.src=c,y.onload=function(){r.drawImage(y,0,0),e()}):(g.error(x.noImage),e())},colors:function(){g.debug("Drawing color overlays",v),e.each(v,function(e,n){t.onDraw(s,l,e,n)})}},debug:function(e,n){t.debug&&(n!==o?console.info(t.moduleName+": "+e,n):console.info(t.moduleName+": "+e))},error:function(e){console.warn(t.moduleName+": "+e)},invoke:function(n,i,a){var r;return a=a||Array.prototype.slice.call(arguments,2),"string"==typeof n&&C!==o&&(n=n.split("."),e.each(n,function(n,o){return e.isPlainObject(C[o])?(C=C[o],!0):e.isFunction(C[o])?(r=C[o],!0):(g.error(t.errors.method),!1)})),e.isFunction(r)?r.apply(i,a):!1}},C!==o&&i?("invoke"==i[0]&&(i=Array.prototype.slice.call(i,1)),g.invoke(i[0],this,Array.prototype.slice.call(i,1))):(g.initialize(),o)}),this},e.fn.colorize.settings={moduleName:"Image Colorizer",debug:!0,namespace:"colorize",onDraw:function(){},async:!0,colors:{},metadata:{image:"image",name:"name"},errors:{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);

2
build/minified/modules/behavior/default-text.min.js

@ -1 +1 @@
(function(e){e.fn.defaultText=function(t){var n="string"==typeof t?e.extend({},e.fn.defaultText.settings,{defaultValue:t}):e.extend(!0,{},e.fn.defaultText.settings,t);return"string"==typeof t&&(t={defaultValue:t}),e.extend(n,t),e(this).each(function(){var t=e(this),a={checkDefault:function(){t.val().toLowerCase()!=n.defaultValue.toLowerCase()&&t.addClass(n.filledClass)},placeholder:{add:function(){0===t.filter(n.disabledClassList).size()&&(t.val()==n.replaceValue?n.alwaysReplace?t.removeClass(n.filledClass).val(t.attr("last")).removeAttr("last"):t.removeClass(n.filledClass).val(n.defaultValue):t.addClass(n.filledClass))},remove:function(){0===t.filter(n.disabledClassList).size()&&(n.alwaysReplace?t.attr("last",t.val()).val(n.replaceValue):t.val().toLowerCase()==n.defaultValue.toLowerCase()&&t.val(n.replaceValue))}}};"auto"==n.defaultValue&&(n.defaultValue=e(this).val()),t.on("focus",a.placeholder.remove).on("blur",a.placeholder.add),a.checkDefault()}),this},e.fn.defaultText.settings={defaultValue:"auto",replaceValue:"",alwaysReplace:!1,disabledClassList:".readonly, .disabled",filledClass:"filled"}})(jQuery,window,document);
(function(e){e.fn.defaultText=function(t){var n="string"==typeof t?e.extend({},e.fn.defaultText.settings,{defaultValue:t}):e.extend(!0,{},e.fn.defaultText.settings,t);return"string"==typeof t&&(t={defaultValue:t}),e.extend(n,t),e(this).each(function(){var t=e(this),o={checkDefault:function(){t.val().toLowerCase()!=n.defaultValue.toLowerCase()&&t.addClass(n.filledClass)},placeholder:{add:function(){0===t.filter(n.disabledClassList).size()&&(t.val()==n.replaceValue?n.alwaysReplace?t.removeClass(n.filledClass).val(t.attr("last")).removeAttr("last"):t.removeClass(n.filledClass).val(n.defaultValue):t.addClass(n.filledClass))},remove:function(){0===t.filter(n.disabledClassList).size()&&(n.alwaysReplace?t.attr("last",t.val()).val(n.replaceValue):t.val().toLowerCase()==n.defaultValue.toLowerCase()&&t.val(n.replaceValue))}}};"auto"==n.defaultValue&&(n.defaultValue=e(this).val()),t.on("focus",o.placeholder.remove).on("blur",o.placeholder.add),o.checkDefault()}),this},e.fn.defaultText.settings={defaultValue:"auto",replaceValue:"",alwaysReplace:!1,disabledClassList:".readonly, .disabled",filledClass:"filled"}})(jQuery,window,document);

2
build/minified/modules/behavior/form.min.js

File diff suppressed because one or more lines are too long

2
build/minified/modules/behavior/state.min.js

File diff suppressed because one or more lines are too long

2
build/minified/modules/carousel.min.js

@ -1 +1 @@
(function(e,t,n,o){e.fn.carousel=function(t){var n,i=e(this),a=e.extend(!0,{},e.fn.carousel.settings,t),r=("."+a.namespace,"module-"+a.namespace,i.selector||""),s=(new Date).getTime(),c=[],l=arguments[0],u="string"==typeof l,d=[].slice.call(arguments,1);return i.each(function(){var t,f=e(this),m=(e(a.selector.arrows),e(a.selector.leftArrow)),g=e(a.selector.rightArrow),p=e(a.selector.content),v=(e(a.selector.navigation),e(a.selector.navItem)),h=(f.selector||"",this),b=f.data("module-"+a.namespace),x=a.className,y=a.namespace,w=a.errors;t={initialize:function(){t.openingAnimation(),t.marquee.autoAdvance(),m.on("click",t.marquee.left),g.on("click",t.marquee.right),v.on("click",t.marquee.change)},destroy:function(){t.verbose("Destroying previous module for",f),f.off(y)},left:function(){var e=p.filter("."+x.active),t=p.index(e),n=p.size(),o=-1!=t-1?t-1:n-1;v.eq(o).trigger("click")},right:function(){var e=p.filter("."+x.active),t=p.index(e),n=p.size(),o=t+1!=n?t+1:0;v.eq(o).trigger("click")},change:function(){var n=e(this),o=v.index(n),i=p.eq(o);t.marquee.autoAdvance(),n.addClass("active").siblings().removeClass("active"),i.addClass("active animated fadeIn").siblings("."+x.active).removeClass("animated fadeIn scaleIn").animate({opacity:0},500,function(){e(this).removeClass("active").removeAttr("style")})},autoAdvance:function(){clearInterval(t.timer),t.timer=setInterval(t.marquee.right,a.duration)},setting:function(n,i){return i===o?a[n]:(e.isPlainObject(n)?(t.verbose("Modifying settings object",n,i),e.extend(!0,a,n)):(t.verbose("Modifying setting",n,i),a[n]=i),o)},internal:function(n,i){return i===o?t[n]:(e.isPlainObject(n)?(t.verbose("Modifying internal property",n,i),e.extend(!0,t,n)):(t.verbose("Changing internal method to",i),t[n]=i),o)},debug:function(){a.debug&&(a.performance?t.performance.log(arguments):t.debug=Function.prototype.bind.call(console.info,console,a.moduleName+":"))},verbose:function(){a.verbose&&a.debug&&(a.performance?t.performance.log(arguments):t.verbose=Function.prototype.bind.call(console.info,console,a.moduleName+":"))},error:function(){t.error=Function.prototype.bind.call(console.log,console,a.moduleName+":")},performance:{log:function(e){var n,o,i;a.performance&&(n=(new Date).getTime(),i=s||n,o=n-i,s=n,c.push({Element:h,Name:e[0],Arguments:e[1]||"None","Execution Time":o}),clearTimeout(t.performance.timer),t.performance.timer=setTimeout(t.performance.display,100))},display:function(){var t=a.moduleName,n=(a.moduleName+": "+r+"("+i.size()+" elements)",0);r&&(t+=" Performance ("+r+")"),(console.group!==o||console.table!==o)&&c.length>0&&(console.groupCollapsed(t),console.table?(e.each(c,function(e,t){n+=t["Execution Time"]}),console.table(c)):e.each(c,function(e,t){n+=t["Execution Time"],console.log(t.Name+": "+t["Execution Time"]+"ms")}),console.log("Total Execution Time:",n+"ms"),console.groupEnd(),c=[],s=!1)}},invoke:function(n,i,a){var r,s;return i=i||d,a=h||a,"string"==typeof n&&b!==o&&(n=n.split("."),r=n.length-1,e.each(n,function(n,i){return e.isPlainObject(b[i])&&n!=r?(b=b[i],!0):b[i]!==o?(s=b[i],!0):(t.error(w.method),!1)})),e.isFunction(s)?(b.verbose("Executing invoked function",s),s.apply(a,i)):s||!1}},u?(b===o&&t.initialize(),n=t.invoke(l)):(b!==o&&t.destroy(),t.initialize())}),n?n:this},e.fn.carousel.settings={moduleName:"Carousel Module",namespace:"carousel",verbose:!0,debug:!0,performance:!0,duration:5e3,errors:{method:"The method you called is not defined."},selector:{arrows:".arrow",leftArrow:".left.arrow",rightArrow:".right.arrow",content:".content",navigation:".navigation",navItem:".navigation .icon"},className:{active:"active"}}})(jQuery,window,document);
(function(e,t,n,o){e.fn.carousel=function(t){var n,i=e(this),a=e.extend(!0,{},e.fn.carousel.settings,t),r=("."+a.namespace,"module-"+a.namespace,i.selector||""),s=(new Date).getTime(),c=[],l=arguments[0],u="string"==typeof l,d=[].slice.call(arguments,1);return i.each(function(){var t,f=e(this),m=(e(a.selector.arrows),e(a.selector.leftArrow)),g=e(a.selector.rightArrow),p=e(a.selector.content),v=(e(a.selector.navigation),e(a.selector.navItem)),h=(f.selector||"",this),b=f.data("module-"+a.namespace),x=a.className,y=a.namespace,C=a.errors;t={initialize:function(){t.openingAnimation(),t.marquee.autoAdvance(),m.on("click",t.marquee.left),g.on("click",t.marquee.right),v.on("click",t.marquee.change)},destroy:function(){t.verbose("Destroying previous module for",f),f.off(y)},left:function(){var e=p.filter("."+x.active),t=p.index(e),n=p.size(),o=-1!=t-1?t-1:n-1;v.eq(o).trigger("click")},right:function(){var e=p.filter("."+x.active),t=p.index(e),n=p.size(),o=t+1!=n?t+1:0;v.eq(o).trigger("click")},change:function(){var n=e(this),o=v.index(n),i=p.eq(o);t.marquee.autoAdvance(),n.addClass("active").siblings().removeClass("active"),i.addClass("active animated fadeIn").siblings("."+x.active).removeClass("animated fadeIn scaleIn").animate({opacity:0},500,function(){e(this).removeClass("active").removeAttr("style")})},autoAdvance:function(){clearInterval(t.timer),t.timer=setInterval(t.marquee.right,a.duration)},setting:function(n,i){return i===o?a[n]:(e.isPlainObject(n)?(t.verbose("Modifying settings object",n,i),e.extend(!0,a,n)):(t.verbose("Modifying setting",n,i),a[n]=i),o)},internal:function(n,i){return i===o?t[n]:(e.isPlainObject(n)?(t.verbose("Modifying internal property",n,i),e.extend(!0,t,n)):(t.verbose("Changing internal method to",i),t[n]=i),o)},debug:function(){a.debug&&(a.performance?t.performance.log(arguments):t.debug=Function.prototype.bind.call(console.info,console,a.moduleName+":"))},verbose:function(){a.verbose&&a.debug&&(a.performance?t.performance.log(arguments):t.verbose=Function.prototype.bind.call(console.info,console,a.moduleName+":"))},error:function(){t.error=Function.prototype.bind.call(console.log,console,a.moduleName+":")},performance:{log:function(e){var n,o,i;a.performance&&(n=(new Date).getTime(),i=s||n,o=n-i,s=n,c.push({Element:h,Name:e[0],Arguments:e[1]||"None","Execution Time":o}),clearTimeout(t.performance.timer),t.performance.timer=setTimeout(t.performance.display,100))},display:function(){var t=a.moduleName,n=(a.moduleName+": "+r+"("+i.size()+" elements)",0);r&&(t+=" Performance ("+r+")"),(console.group!==o||console.table!==o)&&c.length>0&&(console.groupCollapsed(t),console.table?(e.each(c,function(e,t){n+=t["Execution Time"]}),console.table(c)):e.each(c,function(e,t){n+=t["Execution Time"],console.log(t.Name+": "+t["Execution Time"]+"ms")}),console.log("Total Execution Time:",n+"ms"),console.groupEnd(),c=[],s=!1)}},invoke:function(n,i,a){var r,s;return i=i||d,a=h||a,"string"==typeof n&&b!==o&&(n=n.split("."),r=n.length-1,e.each(n,function(n,i){return e.isPlainObject(b[i])&&n!=r?(b=b[i],!0):b[i]!==o?(s=b[i],!0):(t.error(C.method),!1)})),e.isFunction(s)?(b.verbose("Executing invoked function",s),s.apply(a,i)):s||!1}},u?(b===o&&t.initialize(),n=t.invoke(l)):(b!==o&&t.destroy(),t.initialize())}),n?n:this},e.fn.carousel.settings={moduleName:"Carousel Module",namespace:"carousel",verbose:!0,debug:!0,performance:!0,duration:5e3,errors:{method:"The method you called is not defined."},selector:{arrows:".arrow",leftArrow:".left.arrow",rightArrow:".right.arrow",content:".content",navigation:".navigation",navItem:".navigation .icon"},className:{active:"active"}}})(jQuery,window,document);

2
build/minified/modules/chat.min.js

File diff suppressed because one or more lines are too long

2
build/minified/modules/checkbox.min.js

@ -1 +1 @@
(function(e,t,n,o){e.fn.checkbox=function(t){var n,i=e(this),a=e.extend(!0,{},e.fn.checkbox.settings,t),s="."+a.namespace,r="module-"+a.namespace,c=i.selector||"",l=(new Date).getTime(),u=[],d=arguments[0],f="string"==typeof d,m=[].slice.call(arguments,1);return i.each(function(){var t,i=e(this),p=e(this).find(a.selector.input),g=i.selector||"",h=this,v=i.data("module-"+a.namespace),b=a.className,y=a.namespace,x=a.errors;t={initialize:function(){a.context&&""!==g?(t.verbose("Initializing checkbox with delegated events",i),e(h,a.context).on(g,"click"+s,t.toggle).data(r,t)):(t.verbose("Initializing checkbox with bound events",i),i.on("click"+s,t.toggle).data(r,t))},destroy:function(){t.verbose("Destroying previous module for",i),i.off(y)},is:{radio:function(){return i.hasClass(b.radio)}},can:{disable:function(){return"boolean"==typeof a.required?a.required:!t.is.radio()}},enable:function(){t.debug("Enabling checkbox"),i.addClass(b.active),p.prop("checked",!0),e.proxy(a.onChange,p.get())(),e.proxy(a.onEnable,p.get())()},disable:function(){t.debug("Disabling checkbox"),i.removeClass(b.active),p.prop("checked",!1),e.proxy(a.onChange,p.get())(),e.proxy(a.onDisable,p.get())()},toggle:function(){t.verbose("Toggling checkbox state"),p.prop("checked")!==o&&p.prop("checked")?t.can.disable()&&t.disable():t.enable()},setting:function(n,i){return i===o?a[n]:(e.isPlainObject(n)?(t.verbose("Modifying settings object",n,i),e.extend(!0,a,n)):(t.verbose("Modifying setting",n,i),a[n]=i),o)},internal:function(n,i){return i===o?t[n]:(e.isPlainObject(n)?(t.verbose("Modifying internal property",n,i),e.extend(!0,t,n)):(t.verbose("Changing internal method to",i),t[n]=i),o)},debug:function(){a.debug&&(a.performance?t.performance.log(arguments):t.debug=Function.prototype.bind.call(console.info,console,a.moduleName+":"))},verbose:function(){a.verbose&&a.debug&&(a.performance?t.performance.log(arguments):t.verbose=Function.prototype.bind.call(console.info,console,a.moduleName+":"))},error:function(){t.error=Function.prototype.bind.call(console.log,console,a.moduleName+":")},performance:{log:function(e){var n,o,i;a.performance&&(n=(new Date).getTime(),i=l||n,o=n-i,l=n,u.push({Element:h,Name:e[0],Arguments:e[1]||"","Execution Time":o})),clearTimeout(t.performance.timer),t.performance.timer=setTimeout(t.performance.display,100)},display:function(){var t=a.moduleName+":",n=0;l=!1,e.each(u,function(e,t){n+=t["Execution Time"]}),t+=" "+n+"ms",c&&(t+=" '"+c+"'"),(console.group!==o||console.table!==o)&&u.length>0&&(console.groupCollapsed(t),console.table?console.table(u):e.each(u,function(e,t){console.log(t.Name+": "+t["Execution Time"]+"ms")}),console.groupEnd()),u=[]}},invoke:function(n,i,a){var s,r;return i=i||m,a=h||a,"string"==typeof n&&v!==o&&(n=n.split("."),s=n.length-1,e.each(n,function(n,i){return e.isPlainObject(v[i])&&n!=s?(v=v[i],!0):v[i]!==o?(r=v[i],!0):(t.error(x.method),!1)})),e.isFunction(r)?(v.verbose("Executing invoked function",r),r.apply(a,i)):r||!1}},f?(v===o&&t.initialize(),n=t.invoke(d)):(v!==o&&t.destroy(),t.initialize())}),n?n:this},e.fn.checkbox.settings={moduleName:"Checkbox",namespace:"checkbox",verbose:!0,debug:!0,performance:!0,context:!1,required:"auto",onChange:function(){},onEnable:function(){},onDisable:function(){},errors:{method:"The method you called is not defined."},selector:{input:"input"},className:{active:"active",radio:"radio"}}})(jQuery,window,document);
(function(e,t,n,o){e.fn.checkbox=function(t){var n,i=e(this),a=e.extend(!0,{},e.fn.checkbox.settings,t),r="."+a.namespace,s="module-"+a.namespace,c=i.selector||"",l=(new Date).getTime(),u=[],d=arguments[0],f="string"==typeof d,m=[].slice.call(arguments,1);return i.each(function(){var t,i=e(this),p=e(this).find(a.selector.input),g=i.selector||"",v=this,h=i.data("module-"+a.namespace),b=a.className,y=a.namespace,x=a.errors;t={initialize:function(){a.context&&""!==g?(t.verbose("Initializing checkbox with delegated events",i),e(v,a.context).on(g,"click"+r,t.toggle).data(s,t)):(t.verbose("Initializing checkbox with bound events",i),i.on("click"+r,t.toggle).data(s,t))},destroy:function(){t.verbose("Destroying previous module for",i),i.off(y)},is:{radio:function(){return i.hasClass(b.radio)}},can:{disable:function(){return"boolean"==typeof a.required?a.required:!t.is.radio()}},enable:function(){t.debug("Enabling checkbox"),i.addClass(b.active),p.prop("checked",!0),e.proxy(a.onChange,p.get())(),e.proxy(a.onEnable,p.get())()},disable:function(){t.debug("Disabling checkbox"),i.removeClass(b.active),p.prop("checked",!1),e.proxy(a.onChange,p.get())(),e.proxy(a.onDisable,p.get())()},toggle:function(){t.verbose("Toggling checkbox state"),p.prop("checked")!==o&&p.prop("checked")?t.can.disable()&&t.disable():t.enable()},setting:function(n,i){return i===o?a[n]:(e.isPlainObject(n)?(t.verbose("Modifying settings object",n,i),e.extend(!0,a,n)):(t.verbose("Modifying setting",n,i),a[n]=i),o)},internal:function(n,i){return i===o?t[n]:(e.isPlainObject(n)?(t.verbose("Modifying internal property",n,i),e.extend(!0,t,n)):(t.verbose("Changing internal method to",i),t[n]=i),o)},debug:function(){a.debug&&(a.performance?t.performance.log(arguments):t.debug=Function.prototype.bind.call(console.info,console,a.moduleName+":"))},verbose:function(){a.verbose&&a.debug&&(a.performance?t.performance.log(arguments):t.verbose=Function.prototype.bind.call(console.info,console,a.moduleName+":"))},error:function(){t.error=Function.prototype.bind.call(console.log,console,a.moduleName+":")},performance:{log:function(e){var n,o,i;a.performance&&(n=(new Date).getTime(),i=l||n,o=n-i,l=n,u.push({Element:v,Name:e[0],Arguments:e[1]||"","Execution Time":o})),clearTimeout(t.performance.timer),t.performance.timer=setTimeout(t.performance.display,100)},display:function(){var t=a.moduleName+":",n=0;l=!1,e.each(u,function(e,t){n+=t["Execution Time"]}),t+=" "+n+"ms",c&&(t+=" '"+c+"'"),(console.group!==o||console.table!==o)&&u.length>0&&(console.groupCollapsed(t),console.table?console.table(u):e.each(u,function(e,t){console.log(t.Name+": "+t["Execution Time"]+"ms")}),console.groupEnd()),u=[]}},invoke:function(n,i,a){var r,s;return i=i||m,a=v||a,"string"==typeof n&&h!==o&&(n=n.split("."),r=n.length-1,e.each(n,function(n,i){return e.isPlainObject(h[i])&&n!=r?(h=h[i],!0):h[i]!==o?(s=h[i],!0):(t.error(x.method),!1)})),e.isFunction(s)?(h.verbose("Executing invoked function",s),s.apply(a,i)):s||!1}},f?(h===o&&t.initialize(),n=t.invoke(d)):(h!==o&&t.destroy(),t.initialize())}),n?n:this},e.fn.checkbox.settings={moduleName:"Checkbox",namespace:"checkbox",verbose:!0,debug:!0,performance:!0,context:!1,required:"auto",onChange:function(){},onEnable:function(){},onDisable:function(){},errors:{method:"The method you called is not defined."},selector:{input:"input"},className:{active:"active",radio:"radio"}}})(jQuery,window,document);

2
build/minified/modules/dimmer.min.js

File diff suppressed because one or more lines are too long

2
build/minified/modules/dropdown.min.js

File diff suppressed because one or more lines are too long

2
build/minified/modules/form.min.js

File diff suppressed because one or more lines are too long

2
build/minified/modules/tab.min.css

@ -1 +1 @@
.ui.tab{display:none;background-color:#FFF;border:1px solid #DADADA;border-top-color:transparent;border-top-width:0}.ui.tab.active,.ui.tab.open{display:block}.ui.tab.loading>.throbber{display:block}.ui.tab.simple{background-color:transparent;border:0}
.ui.tab{display:none}.ui.tab.active,.ui.tab.open{display:block}.ui.tab.loading>.throbber{display:block}.ui.tab.simple{background-color:transparent;border:0}

2
build/minified/modules/video.min.js

@ -1 +1 @@
(function(e,t,n,o){e.fn.video=function(t){var n,i=e.extend(!0,{},e.fn.video.settings,t),a=arguments||!1;return e(this).each(function(){var r,s=e(this),l=s.find(i.selector.placeholder),c=s.find(i.selector.playButton),u=s.find(i.selector.embed),d=s.data("module-"+i.namespace),m="string"==typeof t,f=i.namespace,p=i.metadata,g=i.className;r={initialize:function(){r.debug("Initializing video"),l.off(".video").on("click."+f,r.play),c.off(".video").on("click."+f,r.play),s.data("module-"+f,r)},change:function(e,t){r.debug("Changing video to ",t),s.data(p.source,e).data(p.flv,t),i.onChange()},reset:function(){r.debug("Clearing video embed and showing placeholder"),s.removeClass(g.active),u.html(" "),l.show(),i.onReset()},play:function(){r.debug("Playing video");var e=s.data(p.source),t=s.data(p.flv);u.html(r.generate.html(e,t)),s.addClass(g.active),i.onPlay()},generate:{html:function(e,t){r.debug("Generating embed html");var n,o="auto"==i.width?s.width():i.width,a="auto"==i.height?s.height():i.height;return"vimeo"==e?n='<iframe src="http://player.vimeo.com/video/'+t+"?="+r.generate.url(e)+'"'+' width="'+o+'" height="'+a+'"'+' frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>':"youtube"==e&&(n='<iframe src="http://www.youtube.com/embed/'+t+"?="+r.generate.url(e)+'"'+' width="'+o+'" height="'+a+'"'+' frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>'),n},url:function(e){var t=i.api?1:0,n=i.autoplay?1:0,o=i.hd?1:0,a=i.showUI?1:0,r=i.showUI?0:1,s="";return"vimeo"==e?(s="api="+t+"&amp;title="+a+"&amp;byline="+a+"&amp;portrait="+a+"&amp;autoplay="+n,i.color&&(s+="&amp;color="+i.color)):"youtube"==e&&(s="enablejsapi="+t+"&amp;autoplay="+n+"&amp;autohide="+r+"&amp;hq="+o+"&amp;modestbranding=1",i.color&&(s+="&amp;color="+i.color)),s}},debug:function(e,t){i.debug&&(t!==o?console.info(i.moduleName+": "+e,t):console.info(i.moduleName+": "+e))},error:function(e){console.warn(i.moduleName+": "+e)},invoke:function(t,n,a){var s;return a=a||Array.prototype.slice.call(arguments,2),"string"==typeof t&&d!==o&&(t=t.split("."),e.each(t,function(t,n){return e.isPlainObject(d[n])?(d=d[n],!0):e.isFunction(d[n])?(s=d[n],!0):(r.error(i.errors.method),!1)})),e.isFunction(s)?s.apply(n,a):s}},m?n=r.invoke(a[0],this,Array.prototype.slice.call(a,1)):(d&&r.destroy(),r.initialize())}),n!==o?n:this},e.fn.videoPlaylist=function(t,n){var o=e(this),i=e(t),a=i.find(".embed iframe"),r=e.extend({},e.fn.videoPlaylist.settings,n,!0);o.each(function(){var t=e(this),n=r.metadata,a=r.namespace,s=r.className,l={initialize:function(){t.on("click."+a,l.changeVideo)},changeVideo:function(){var a=t.data(n.flv)||!1,l=t.data(n.source)||!1,c=t.data(n.placeholder)||!1;if(a&&l){if(i.data(n.source,l).data(n.flv,a),r.showPlaceholder)i.removeClass(s.active).find(e.fn.video.selector.placeholder).attr("src",c);else try{i.video("play")}catch(u){console.warn("Video Playlist Module: "+r.error.init)}o.removeClass(s.active),t.addClass(s.active)}}};l.initialize()}),r.playFirst&&(o.eq(0).trigger("click"),a.size()>0&&a.attr("src",a.attr("src").replace("autoplay=1","autoplay=0")))},e.fn.video.settings={moduleName:"Video",namespace:"video",debug:!1,metadata:{source:"source",flv:"flv"},onPlay:function(){},onReset:function(){},onChange:function(){},play:function(){},pause:function(){},stop:function(){},width:"auto",height:"auto",autoplay:!1,color:"#442359",hd:!0,showUI:!1,api:!0,errors:{method:"The method you called is not defined"},className:{active:"active"},selector:{embed:".embed",placeholder:".placeholder",playButton:".play"}},e.fn.videoPlaylist.settings={moduleName:"Video Playlist",namespace:"videoPlaylist",source:"vimeo",showPlaceholder:!1,playFirst:!0,metadata:{flv:"flv",source:"source",placeholder:"placeholder"},errors:{init:"The video player you specified was not yet initialized"},className:{active:"active"}}})(jQuery,window,document);
(function(e,t,n,o){e.fn.video=function(t){var n,i=e.extend(!0,{},e.fn.video.settings,t),a=arguments||!1;return e(this).each(function(){var r,s=e(this),c=s.find(i.selector.placeholder),l=s.find(i.selector.playButton),u=s.find(i.selector.embed),d=s.data("module-"+i.namespace),m="string"==typeof t,f=i.namespace,p=i.metadata,g=i.className;r={initialize:function(){r.debug("Initializing video"),c.off(".video").on("click."+f,r.play),l.off(".video").on("click."+f,r.play),s.data("module-"+f,r)},change:function(e,t){r.debug("Changing video to ",t),s.data(p.source,e).data(p.flv,t),i.onChange()},reset:function(){r.debug("Clearing video embed and showing placeholder"),s.removeClass(g.active),u.html(" "),c.show(),i.onReset()},play:function(){r.debug("Playing video");var e=s.data(p.source),t=s.data(p.flv);u.html(r.generate.html(e,t)),s.addClass(g.active),i.onPlay()},generate:{html:function(e,t){r.debug("Generating embed html");var n,o="auto"==i.width?s.width():i.width,a="auto"==i.height?s.height():i.height;return"vimeo"==e?n='<iframe src="http://player.vimeo.com/video/'+t+"?="+r.generate.url(e)+'"'+' width="'+o+'" height="'+a+'"'+' frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>':"youtube"==e&&(n='<iframe src="http://www.youtube.com/embed/'+t+"?="+r.generate.url(e)+'"'+' width="'+o+'" height="'+a+'"'+' frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>'),n},url:function(e){var t=i.api?1:0,n=i.autoplay?1:0,o=i.hd?1:0,a=i.showUI?1:0,r=i.showUI?0:1,s="";return"vimeo"==e?(s="api="+t+"&amp;title="+a+"&amp;byline="+a+"&amp;portrait="+a+"&amp;autoplay="+n,i.color&&(s+="&amp;color="+i.color)):"youtube"==e&&(s="enablejsapi="+t+"&amp;autoplay="+n+"&amp;autohide="+r+"&amp;hq="+o+"&amp;modestbranding=1",i.color&&(s+="&amp;color="+i.color)),s}},debug:function(e,t){i.debug&&(t!==o?console.info(i.moduleName+": "+e,t):console.info(i.moduleName+": "+e))},error:function(e){console.warn(i.moduleName+": "+e)},invoke:function(t,n,a){var s;return a=a||Array.prototype.slice.call(arguments,2),"string"==typeof t&&d!==o&&(t=t.split("."),e.each(t,function(t,n){return e.isPlainObject(d[n])?(d=d[n],!0):e.isFunction(d[n])?(s=d[n],!0):(r.error(i.errors.method),!1)})),e.isFunction(s)?s.apply(n,a):s}},m?n=r.invoke(a[0],this,Array.prototype.slice.call(a,1)):(d&&r.destroy(),r.initialize())}),n!==o?n:this},e.fn.videoPlaylist=function(t,n){var o=e(this),i=e(t),a=i.find(".embed iframe"),r=e.extend({},e.fn.videoPlaylist.settings,n,!0);o.each(function(){var t=e(this),n=r.metadata,a=r.namespace,s=r.className,c={initialize:function(){t.on("click."+a,c.changeVideo)},changeVideo:function(){var a=t.data(n.flv)||!1,c=t.data(n.source)||!1,l=t.data(n.placeholder)||!1;if(a&&c){if(i.data(n.source,c).data(n.flv,a),r.showPlaceholder)i.removeClass(s.active).find(e.fn.video.selector.placeholder).attr("src",l);else try{i.video("play")}catch(u){console.warn("Video Playlist Module: "+r.error.init)}o.removeClass(s.active),t.addClass(s.active)}}};c.initialize()}),r.playFirst&&(o.eq(0).trigger("click"),a.size()>0&&a.attr("src",a.attr("src").replace("autoplay=1","autoplay=0")))},e.fn.video.settings={moduleName:"Video",namespace:"video",debug:!1,metadata:{source:"source",flv:"flv"},onPlay:function(){},onReset:function(){},onChange:function(){},play:function(){},pause:function(){},stop:function(){},width:"auto",height:"auto",autoplay:!1,color:"#442359",hd:!0,showUI:!1,api:!0,errors:{method:"The method you called is not defined"},className:{active:"active"},selector:{embed:".embed",placeholder:".placeholder",playButton:".play"}},e.fn.videoPlaylist.settings={moduleName:"Video Playlist",namespace:"videoPlaylist",source:"vimeo",showPlaceholder:!1,playFirst:!0,metadata:{flv:"flv",source:"source",placeholder:"placeholder"},errors:{init:"The video player you specified was not yet initialized"},className:{active:"active"}}})(jQuery,window,document);

451
build/packaged/modules/accordion.js

@ -8,189 +8,344 @@
;(function ($, window, document, undefined) {
$.fn.accordion = function(parameters) {
var
settings = $.extend(true, {}, $.fn.accordion.settings, parameters),
// hoist arguments
moduleArguments = arguments || false
;
$(this)
.each(function() {
var
$module = $(this),
$title = $module.find(settings.selector.title),
$icon = $module.find(settings.selector.icon),
$content = $module.find(settings.selector.content),
instance = $module.data('module'),
className = settings.className,
module
;
module = {
initialize: function() {
// initializing
$title
.on('click', module.change)
;
$module
.data('module', module)
;
},
change: function() {
$.fn.accordion = function(parameters) {
var
$allModules = $(this),
settings = ( $.isPlainObject(parameters) )
? $.extend(true, {}, $.fn.accordion.settings, parameters)
: $.fn.accordion.settings,
eventNamespace = '.' + settings.namespace,
moduleNamespace = 'module-' + settings.namespace,
moduleSelector = $allModules.selector || '',
time = new Date().getTime(),
performance = [],
query = arguments[0],
methodInvoked = (typeof query == 'string'),
queryArguments = [].slice.call(arguments, 1),
invokedResponse,
allModules
;
$allModules
.each(function() {
var
$module = $(this),
$title = $module.find(settings.selector.title),
$icon = $module.find(settings.selector.icon),
$content = $module.find(settings.selector.content),
selector = $module.selector || '',
element = this,
instance = $module.data('module-' + settings.namespace),
className = settings.className,
metadata = settings.metadata,
namespace = settings.namespace,
animation = settings.animation,
errors = settings.errors,
module
;
module = {
initialize: function() {
module.debug('Initializing accordion with bound events', $module);
// initializing
$title
.on('click', module.event.click)
;
$module
.data('module', module)
;
},
destroy: function() {
module.debug('Destroying previous accordion for', $module);
$module
.off(namespace)
;
},
event: {
click: function() {
var
$activeTitle = $(this),
$activeContent = $activeTitle.next($content),
contentIsOpen = $activeTitle.hasClass(className.active)
$activeTitle = $(this),
activeIndex = $title.index($activeTitle),
contentIsOpen = $activeTitle.next($content).hasClass(className.active)
;
module.verbose('Accordion title clicked', $activeTitle);
if(contentIsOpen) {
if(settings.collapsible) {
$.proxy(module.close, $activeTitle)();
module.close(activeIndex);
}
else {
module.debug('Cannot close accordion content collapsing is disabled');
}
}
else {
$.proxy(module.open, $activeTitle)();
module.open(activeIndex);
}
},
}
open: function() {
var
$activeTitle = $(this),
$activeContent = $activeTitle.next($content),
$currentTitle = $title.filter('.' + className.active),
$currentContent = $currentTitle.next($title)
;
if(settings.exclusive && $currentTitle.size() > 0) {
},
$currentTitle
.removeClass('active')
;
$currentContent
.stop()
.slideUp(settings.speed , settings.easing, function() {
$(this)
.removeClass('active')
.removeAttr('style')
;
})
;
}
$activeTitle
.addClass(className.active)
open: function(index) {
var
$activeTitle = $title.eq(index),
$activeContent = $activeTitle.next($content),
$previousTitle = $title.filter('.' + className.active),
$previousContent = $previousTitle.next($title),
contentIsOpen = ($previousTitle.size() > 0)
;
module.debug('Opening accordion content', $activeTitle);
if(settings.exclusive && contentIsOpen) {
$previousTitle
.removeClass(className.active)
;
$activeContent
.hide()
.addClass(className.active)
$previousContent
.stop()
.slideDown(settings.speed, settings.easing, function() {
$(this)
.children()
.animate({
opacity: 0
}, settings.speed)
.end()
.slideUp(settings.speed , settings.easing, function() {
$previousContent
.removeClass(className.active)
.removeAttr('style')
.children()
.removeAttr('style')
;
})
;
},
}
$activeTitle
.addClass(className.active)
;
$activeContent
.stop()
.slideDown(settings.speed, settings.easing, function() {
$activeContent
.addClass(className.active)
.removeAttr('style')
;
$.proxy(settings.onOpen, $activeContent)();
$.proxy(settings.onChange, $activeContent)();
})
;
},
close: function() {
close: function(index) {
var
$activeTitle = $title.eq(index),
$activeContent = $activeTitle.next($content)
;
module.debug('Closing accordion content', $activeTitle);
$activeTitle
.removeClass(className.active)
;
$activeContent
.removeClass(className.active)
.show()
.stop()
.slideUp(settings.speed, settings.easing, function(){
$activeContent
.removeAttr('style')
;
$.proxy(settings.onClose, $activeContent)();
$.proxy(settings.onChange, $activeContent)();
})
;
},
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.moduleName + ':');
}
}
},
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.moduleName + ':');
}
}
},
error: function() {
module.error = Function.prototype.bind.call(console.log, console, settings.moduleName + ':');
},
performance: {
log: function(message) {
var
$activeTitle = $(this),
$activeContent = $activeTitle.next($content)
;
$activeTitle
.removeClass(className.active)
currentTime,
executionTime,
previousTime
;
$activeContent
.removeClass(className.active)
.show()
.stop()
.slideUp(settings.speed, settings.easing, function(){
$(this)
.removeAttr('style')
;
})
;
},
debug: function(message) {
if(settings.debug) {
console.info(settings.moduleName + ': ' + message);
if(settings.performance) {
currentTime = new Date().getTime();
previousTime = time || currentTime,
executionTime = currentTime - previousTime;
time = currentTime;
performance.push({
'Element' : element,
'Name' : message[0],
'Arguments' : message[1] || '',
'Execution Time' : executionTime
});
}
clearTimeout(module.performance.timer);
module.performance.timer = setTimeout(module.performance.display, 100);
},
error: function(errorMessage) {
console.warn(settings.moduleName + ': ' + errorMessage);
},
invoke: function(methodName, context, methodArguments) {
display: function() {
var
method
title = settings.moduleName + ':',
totalTime = 0
;
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.errors.method);
return false;
});
time = false;
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});
title += ' ' + totalTime + 'ms';
if(moduleSelector) {
title += ' \'' + moduleSelector + '\'';
}
if ( $.isFunction( method ) ) {
return method.apply(context, methodArguments);
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();
}
// return retrieved variable or chain
return method;
performance = [];
}
};
// calling a method
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 );
},
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];
return true;
}
else if( instance[value] !== undefined ) {
found = instance[value];
return true;
}
module.error(errors.method);
return false;
});
}
return module.invoke(moduleArguments[0], this, Array.prototype.slice.call( moduleArguments, 1 ) );
if ( $.isFunction( found ) ) {
instance.verbose('Executing invoked function', found);
return found.apply(context, passedArguments);
}
return found || false;
}
};
if(methodInvoked) {
if(instance === undefined) {
module.initialize();
}
invokedResponse = module.invoke(query);
}
else {
if(instance !== undefined) {
module.destroy();
}
// initializing
module.initialize();
}
})
;
return (invokedResponse)
? invokedResponse
: this
;
};
})
;
return this;
};
$.fn.accordion.settings = {
moduleName : 'Accordion',
$.fn.accordion.settings = {
moduleName : 'Accordion',
debug : false,
exclusive : true,
collapsible : true,
debug : true,
verbose : true,
performance : false,
exclusive : true,
collapsible : true,
onOpen : function(){},
onClose : function(){},
onChange : function(){},
errors: {
method : 'The method you called is not defined'
},
errors: {
method : 'The method you called is not defined'
},
className : {
active : 'active',
hover : 'hover'
},
className : {
active : 'active',
hover : 'hover'
},
selector : {
title : '.title',
icon : '.icon',
content : '.content'
},
selector : {
title : '.title',
icon : '.icon',
content : '.content'
},
speed : 500,
easing : 'easeInOutQuint'
speed : 500,
easing : 'easeInOutQuint'
};
};
})( jQuery, window , document );

2
build/packaged/semantic.min.css.REMOVED.git-id

@ -1 +1 @@
ee56553797de7db20d068816c781bed8c186abd7
7ebb53b371f136b0d0f2253048a19c1e4108aabd

2
build/packaged/semantic.min.js.REMOVED.git-id

@ -1 +1 @@
bb2f5a577f6450a45c1b7d7e797d6059011256af
239a182ea4d5b614ddb1da271d8219eddfb49cc3

3
build/uncompressed/collections/grid.css

@ -269,6 +269,7 @@
width: 100%;
}
/* Increase Gutters */
/*
.ui.two.column.grid,
.ui.three.column.grid,
.ui.four.column.grid {
@ -284,6 +285,7 @@
padding-left: 3%;
padding-right: 3%;
}
.ui.five.column.grid,
.ui.six.column.grid,
.ui.seven.column.grid,
@ -302,6 +304,7 @@
padding-left: 2%;
padding-right: 2%;
}
*/
/*----------------------
"Floated"
-----------------------*/

4
build/uncompressed/elements/button.css

@ -1,5 +1,5 @@
/*
* # Semantic Button - Flat
* # Semantic Button
* http://github.com/quirkyinc/semantic
*
*
@ -94,7 +94,7 @@
color: #666666;
}
/*--------------
Hover
Hover
---------------*/
.ui.button:hover,
.ui.button.hover {

3
build/uncompressed/elements/step.css

@ -189,8 +189,7 @@
border-radius: 0em 0em 0.3125em 0em;
}
/* Fluid */
.ui.steps,
.ui.steps > .step {
.ui.one.steps > .step {
width: 100%;
}
.ui.two.steps > .step {

121
build/uncompressed/modules/accordion.css

@ -1,78 +1,71 @@
/*
* # Semantic Accordion
* http://github.com/quirkyinc/semantic
*
*
* Copyright 2013 Contributors
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
* Released: April 17 2013
*/
/*******************************
Button
*******************************/
.ui.accordion {
overflow: hidden;
font-size: 1rem;
border-radius: 0.3125em;
background-color: #FFFFFF;
-webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
-moz-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 {
cursor: pointer;
font-size: 16px;
padding: 0.75em 1em;
font-weight: bold;
color: #3E2151;
margin-top: 8px;
padding: 8px 8px;
border: 1px solid transparent;
border-top: 1px solid #E0E0E0;
-webkit-box-shadow: 0px 1px 0px #FFFFFF inset;
-moz-box-shadow: 0px 1px 0px #FFFFFF inset;
box-shadow: 0px 1px 0px #FFFFFF inset;
transition: color 0.2s ease-out;
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;
-o-transition: background-color 0.2s ease-out;
-ms-transition: background-color 0.2s ease-out;
transition: background-color 0.2s ease-out;
}
.ui.accordion .title:first-child {
margin-top: 0px;
border-top-color: transparent;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
border-top: none;
}
/* Content */
.ui.accordion .content {
display: none;
padding: 1.3em 1em;
/*
border-left: 0.2em solid rgba(0, 0, 0, 0.1);
border-right: 0.2em solid rgba(0, 0, 0, 0.1);
border-bottom: 0.2em solid rgba(0, 0, 0, 0.1);*/
}
/*******************************
States
*******************************/
/*--------------
Hover
---------------*/
.ui.accordion .title:hover,
.ui.accordion .title.active {
color: #335687;
color: rgba(0, 0, 0, 0.8);
}
/*--------------
Active
---------------*/
.ui.accordion .title.active {
background-color: #E0E0E0;
border: 1px solid #BBBBBB;
-webkit-box-shadow: 0px 1px 0px #FFFFFF inset;
-moz-box-shadow: 0px 1px 0px #FFFFFF inset;
box-shadow: 0px 1px 0px #FFFFFF inset;
color: #335687;
}
.ui.accordion .icon {
margin: 0px 4px 4px 2px;
display: inline-block;
text-indent: -9999px;
vertical-align: middle;
border-top: 4px solid transparent;
border-bottom: 4px solid transparent;
border-left: 6px solid #3E2151;
border-right: 4px solid transparent;
}
.ui.accordion .title:hover .icon {
border-left-color: #335687;
}
.ui.accordion .title.active .icon {
border-left: 4px solid transparent;
border-top: 6px solid #335687;
margin-left: 0px;
margin-bottom: 0px;
}
.ui.accordion .content {
display: none;
padding: 10px 20px;
margin: 0px;
font-size: 12px;
line-height: 2;
}
.ui.accordion .content p {
margin: 12px 0px;
font-size: 12px;
background-color: rgba(0, 0, 0, 0.1);
color: rgba(0, 0, 0, 0.8);
}
.ui.accordion .content.active {
display: block;
background-color: #EEEEEE;
-webkit-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.25) inset;
-moz-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.25) inset;
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.25) inset;
}
/* Connected Accordion */
.ui.accordion.connected {
background-color: #FAFAFA;
border: 1px solid #DDDDDD;
}
.ui.accordion.connected .title {
margin-top: 0px;
}
/*******************************
Variations
*******************************/

451
build/uncompressed/modules/accordion.js

@ -8,189 +8,344 @@
;(function ($, window, document, undefined) {
$.fn.accordion = function(parameters) {
var
settings = $.extend(true, {}, $.fn.accordion.settings, parameters),
// hoist arguments
moduleArguments = arguments || false
;
$(this)
.each(function() {
var
$module = $(this),
$title = $module.find(settings.selector.title),
$icon = $module.find(settings.selector.icon),
$content = $module.find(settings.selector.content),
instance = $module.data('module'),
className = settings.className,
module
;
module = {
initialize: function() {
// initializing
$title
.on('click', module.change)
;
$module
.data('module', module)
;
},
change: function() {
$.fn.accordion = function(parameters) {
var
$allModules = $(this),
settings = ( $.isPlainObject(parameters) )
? $.extend(true, {}, $.fn.accordion.settings, parameters)
: $.fn.accordion.settings,
eventNamespace = '.' + settings.namespace,
moduleNamespace = 'module-' + settings.namespace,
moduleSelector = $allModules.selector || '',
time = new Date().getTime(),
performance = [],
query = arguments[0],
methodInvoked = (typeof query == 'string'),
queryArguments = [].slice.call(arguments, 1),
invokedResponse,
allModules
;
$allModules
.each(function() {
var
$module = $(this),
$title = $module.find(settings.selector.title),
$icon = $module.find(settings.selector.icon),
$content = $module.find(settings.selector.content),
selector = $module.selector || '',
element = this,
instance = $module.data('module-' + settings.namespace),
className = settings.className,
metadata = settings.metadata,
namespace = settings.namespace,
animation = settings.animation,
errors = settings.errors,
module
;
module = {
initialize: function() {
module.debug('Initializing accordion with bound events', $module);
// initializing
$title
.on('click', module.event.click)
;
$module
.data('module', module)
;
},
destroy: function() {
module.debug('Destroying previous accordion for', $module);
$module
.off(namespace)
;
},
event: {
click: function() {
var
$activeTitle = $(this),
$activeContent = $activeTitle.next($content),
contentIsOpen = $activeTitle.hasClass(className.active)
$activeTitle = $(this),
activeIndex = $title.index($activeTitle),
contentIsOpen = $activeTitle.next($content).hasClass(className.active)
;
module.verbose('Accordion title clicked', $activeTitle);
if(contentIsOpen) {
if(settings.collapsible) {
$.proxy(module.close, $activeTitle)();
module.close(activeIndex);
}
else {
module.debug('Cannot close accordion content collapsing is disabled');
}
}
else {
$.proxy(module.open, $activeTitle)();
module.open(activeIndex);
}
},
}
open: function() {
var
$activeTitle = $(this),
$activeContent = $activeTitle.next($content),
$currentTitle = $title.filter('.' + className.active),
$currentContent = $currentTitle.next($title)
;
if(settings.exclusive && $currentTitle.size() > 0) {
},
$currentTitle
.removeClass('active')
;
$currentContent
.stop()
.slideUp(settings.speed , settings.easing, function() {
$(this)
.removeClass('active')
.removeAttr('style')
;
})
;
}
$activeTitle
.addClass(className.active)
open: function(index) {
var
$activeTitle = $title.eq(index),
$activeContent = $activeTitle.next($content),
$previousTitle = $title.filter('.' + className.active),
$previousContent = $previousTitle.next($title),
contentIsOpen = ($previousTitle.size() > 0)
;
module.debug('Opening accordion content', $activeTitle);
if(settings.exclusive && contentIsOpen) {
$previousTitle
.removeClass(className.active)
;
$activeContent
.hide()
.addClass(className.active)
$previousContent
.stop()
.slideDown(settings.speed, settings.easing, function() {
$(this)
.children()
.animate({
opacity: 0
}, settings.speed)
.end()
.slideUp(settings.speed , settings.easing, function() {
$previousContent
.removeClass(className.active)
.removeAttr('style')
.children()
.removeAttr('style')
;
})
;
},
}
$activeTitle
.addClass(className.active)
;
$activeContent
.stop()
.slideDown(settings.speed, settings.easing, function() {
$activeContent
.addClass(className.active)
.removeAttr('style')
;
$.proxy(settings.onOpen, $activeContent)();
$.proxy(settings.onChange, $activeContent)();
})
;
},
close: function() {
close: function(index) {
var
$activeTitle = $title.eq(index),
$activeContent = $activeTitle.next($content)
;
module.debug('Closing accordion content', $activeTitle);
$activeTitle
.removeClass(className.active)
;
$activeContent
.removeClass(className.active)
.show()
.stop()
.slideUp(settings.speed, settings.easing, function(){
$activeContent
.removeAttr('style')
;
$.proxy(settings.onClose, $activeContent)();
$.proxy(settings.onChange, $activeContent)();
})
;
},
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.moduleName + ':');
}
}
},
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.moduleName + ':');
}
}
},
error: function() {
module.error = Function.prototype.bind.call(console.log, console, settings.moduleName + ':');
},
performance: {
log: function(message) {
var
$activeTitle = $(this),
$activeContent = $activeTitle.next($content)
;
$activeTitle
.removeClass(className.active)
currentTime,
executionTime,
previousTime
;
$activeContent
.removeClass(className.active)
.show()
.stop()
.slideUp(settings.speed, settings.easing, function(){
$(this)
.removeAttr('style')
;
})
;
},
debug: function(message) {
if(settings.debug) {
console.info(settings.moduleName + ': ' + message);
if(settings.performance) {
currentTime = new Date().getTime();
previousTime = time || currentTime,
executionTime = currentTime - previousTime;
time = currentTime;
performance.push({
'Element' : element,
'Name' : message[0],
'Arguments' : message[1] || '',
'Execution Time' : executionTime
});
}
clearTimeout(module.performance.timer);
module.performance.timer = setTimeout(module.performance.display, 100);
},
error: function(errorMessage) {
console.warn(settings.moduleName + ': ' + errorMessage);
},
invoke: function(methodName, context, methodArguments) {
display: function() {
var
method
title = settings.moduleName + ':',
totalTime = 0
;
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.errors.method);
return false;
});
time = false;
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});
title += ' ' + totalTime + 'ms';
if(moduleSelector) {
title += ' \'' + moduleSelector + '\'';
}
if ( $.isFunction( method ) ) {
return method.apply(context, methodArguments);
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();
}
// return retrieved variable or chain
return method;
performance = [];
}
};
// calling a method
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 );
},
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];
return true;
}
else if( instance[value] !== undefined ) {
found = instance[value];
return true;
}
module.error(errors.method);
return false;
});
}
return module.invoke(moduleArguments[0], this, Array.prototype.slice.call( moduleArguments, 1 ) );
if ( $.isFunction( found ) ) {
instance.verbose('Executing invoked function', found);
return found.apply(context, passedArguments);
}
return found || false;
}
};
if(methodInvoked) {
if(instance === undefined) {
module.initialize();
}
invokedResponse = module.invoke(query);
}
else {
if(instance !== undefined) {
module.destroy();
}
// initializing
module.initialize();
}
})
;
return (invokedResponse)
? invokedResponse
: this
;
};
})
;
return this;
};
$.fn.accordion.settings = {
moduleName : 'Accordion',
$.fn.accordion.settings = {
moduleName : 'Accordion',
debug : false,
exclusive : true,
collapsible : true,
debug : true,
verbose : true,
performance : false,
exclusive : true,
collapsible : true,
onOpen : function(){},
onClose : function(){},
onChange : function(){},
errors: {
method : 'The method you called is not defined'
},
errors: {
method : 'The method you called is not defined'
},
className : {
active : 'active',
hover : 'hover'
},
className : {
active : 'active',
hover : 'hover'
},
selector : {
title : '.title',
icon : '.icon',
content : '.content'
},
selector : {
title : '.title',
icon : '.icon',
content : '.content'
},
speed : 500,
easing : 'easeInOutQuint'
speed : 500,
easing : 'easeInOutQuint'
};
};
})( jQuery, window , document );

4
build/uncompressed/modules/tab.css

@ -3,10 +3,6 @@
*******************************/
.ui.tab {
display: none;
background-color: #FFFFFF;
border: 1px solid #DADADA;
border-top-color: transparent;
border-top-width: 0px;
}
.ui.tab.active,
.ui.tab.open {

1
node/src/documents/elements/icon.html

@ -4,7 +4,6 @@ css : 'icon'
title : 'Icon'
type : 'UI Element'
---
<link rel="stylesheet" type="text/css" class="ui" href="/icons/sketchy.icons.css">
<div class="segment">
<div class="container">

6
node/src/documents/elements/step.html

@ -15,10 +15,10 @@ type : 'UI Element'
<div class="peek">
<div class="ui vertical pointing secondary menu">
<a class="active item">Standard</a>
<a class="active item">Element</a>
<a class="item">Groups</a>
<a class="item">States</a>
<a class="item">Variations</a>
<a class="item">Groups</a>
</div>
</div>
@ -116,7 +116,7 @@ type : 'UI Element'
<div class="example">
<h4 class="ui header">Step</h4>
<p>Steps can be divided evenly inside their parent</p>
<div class="ui four fluid steps">
<div class="ui four steps">
<div class="ui active step">
Shipping
</div>

14
node/src/documents/index.html

@ -63,7 +63,7 @@ type : 'Semantic'
<div class="column">
<h3 class="ui header">Definitions</h3>
<p>HTML elements are nouns.</p>
<div class="code">
<div class="code" data-type="html">
<div class="ui button">Submit</div>
</div>
</div>
@ -71,7 +71,6 @@ type : 'Semantic'
<div class="ui button">Submit</div>
</div>
</div>
<div class="ui divider"></div>
<div class="equal row">
<div class="column">
<h3 class="ui header">Variations</h3>
@ -97,7 +96,6 @@ type : 'Semantic'
</div>
</div>
</div>
<div class="ui divider"></div>
<div class="equal row">
<div class="column">
<h3 class="ui header">Plurality</h3>
@ -122,7 +120,7 @@ type : 'Semantic'
<div class="column">
<h3 class="ui header">Behavior</h3>
<p>Elements may contain definitions of their behavior. An element's behavior is defined as a public API which other parts of your code can invoke.</p>
<div class="ui label">HTML</div>
<div class="ui black label">HTML</div>
<div class="code" data-type="html">
<div class="ui pointing secondary menu">
<div class="active red item" data-tab="first">First</div>
@ -132,11 +130,11 @@ type : 'Semantic'
<div class="oddball item">Open third</div>
</div>
</div>
<div class="ui active tab" data-tab="first">First</div>
<div class="ui tab" data-tab="second">Second</div>
<div class="ui tab" data-tab="third">Third</div>
<div class="ui active tab segment" data-tab="first">First</div>
<div class="ui tab segment" data-tab="second">Second</div>
<div class="ui tab segment" data-tab="third">Third</div>
</div>
<div class="ui label">Javascript</div>
<div class="ui black label">Javascript</div>
<div class="code" data-type="javascript">
// navigation items should open tabs and preserve history
$('.ui.navigation .item')

149
node/src/documents/modules/accordion.html

@ -0,0 +1,149 @@
---
layout : 'default'
css : 'accordion'
title : 'Accordion'
type : 'UI Module'
---
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/modules/accordion.css">
<script src="/javascript/accordion.js"></script>
<script src="/components/semantic/modules/accordion.js"></script>
<div class="segment">
<div class="container">
<h1 class="ui dividing header">Accordion</h1>
<p>An accordion displays a single piece of content, while allowing the option of displaying other content.</p>
</div>
</div>
<div class="main container">
<div class="peek">
<div class="ui vertical pointing secondary menu">
<a class="active item">Standard</a>
<a class="item">Variations</a>
<a class="item">Behavior</a>
<a class="item">Examples</a>
<a class="item">Usage</a>
</div>
</div>
<h2 class="ui dividing header">Standard</h2>
<div class="example">
<h4 class="ui header">Accordion</h4>
<p>A standard accordion</p>
<div class="ui accordion">
<div class="active title"><i class="icon sketchy question"></i> What is a dog?</div>
<div class="active content">
<p>A dog is a type of domesticated animal. Known for its loyalty and faithfulness, it can be found as a welcome guest in many households across the world.</p>
</div>
<div class="title"><i class="icon sketchy question"></i> What kinds of dogs are there?</div>
<div class="content">
<p>There are many breeds of dogs. Each breed varies in size and temperament. Owners often select a breed of dog that they find to be compatible with their own lifestyle and desires from a companion.</p>
</div>
<div class="title"><i class="icon sketchy question"></i> How do you acquire a dog?</div>
<div class="content">
<p>Three common ways for a prospective owner to acquire a dog is from pet shops, private owners, or shelters.</p>
<p>A pet shop may be the most convenient way to buy a dog. Buying a dog from a private owner allows you to assess the pedigree and upbringing of your dog before choosing to take it home. Lastly, finding your dog from a shelter, helps give a good home to a dog who may not find one so readily.</p>
</div>
</div>
</div>
<h2 class="ui dividing header">Usage</h2>
<h3 class="ui header">Initializing an accordion</h3>
<div class="code">
$('.ui.accordion')
.accordion()
;
</div>
<h3 class="ui header">Settings</h3>
<table class="ui red table segment">
<thead>
<th colspan="3">Accordion Settings</th>
</thead>
<tbody>
<tr>
<td>exclusive</td>
<td>true</td>
<td>Set to false to allow multiple sections to be open at the same time</td>
</tr>
<tr>
<td>collapsible</td>
<td>true</td>
<td>Set to false to require an accordion to always have a section open</td>
</tr>
</tbody>
</table>
<table class="ui teal table segment">
<thead>
<th colspan="3">Callbacks</th>
</thead>
<tbody>
<tr>
<td>onOpen</td>
<td>None</td>
<td>Callback after a accordion section is opened.</td>
</tr>
<tr>
<td>onClose</td>
<td>None</td>
<td>Callback after a accordion section is closed.</td>
</tr>
<tr>
<td>onChange</td>
<td>None</td>
<td>Callback after a accordion section is changed.</td>
</tr>
</tbody>
</table>
<table class="ui blue table segment">
<thead>
<th colspan="3">UI Module Settings</th>
</thead>
<tbody>
<tr>
<td>moduleName</td>
<td>Accordion</td>
<td>Name used in debug logs</td>
</tr>
<tr>
<td>debug</td>
<td>True</td>
<td>Provides standard debug output to console</td>
</tr>
<tr>
<td>performance</td>
<td>False</td>
<td>Provides standard debug output to console</td>
</tr>
<tr>
<td>verbose</td>
<td>False</td>
<td>Provides ancillary debug output to console</td>
</tr>
<tr>
<td>namespace</td>
<td>accordion</td>
<td>Event namespace. Makes sure module teardown does not effect other events attached to an element.</td>
</tr>
<tr>
<td>errors</td>
<td colspan="2">
<div class="code">
errors : {
method : 'The method you called is not defined.'
}
</div>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>

5
node/src/files/404.html

@ -30,6 +30,7 @@
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/modules/popup.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/modules/shape.css">
<link rel="stylesheet" type="text/css" class="ui" href="/icons/sketchy.icons.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/library/sidr.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/semantic.css">
@ -50,7 +51,9 @@
<div class="masthead error segment">
<div class="container">
<h1 class="ui dividing header"><i class="icon info circle"></i>That happens not to be a page :(</h1>
<h1 class="ui dividing header">
That happens not to be a page <i class="icon sketchy problem"></i>
</h1>
<p>Rewind and try another one</p>
</div>
</div>

3
node/src/files/components/semantic/collections/grid.css

@ -269,6 +269,7 @@
width: 100%;
}
/* Increase Gutters */
/*
.ui.two.column.grid,
.ui.three.column.grid,
.ui.four.column.grid {
@ -284,6 +285,7 @@
padding-left: 3%;
padding-right: 3%;
}
.ui.five.column.grid,
.ui.six.column.grid,
.ui.seven.column.grid,
@ -302,6 +304,7 @@
padding-left: 2%;
padding-right: 2%;
}
*/
/*----------------------
"Floated"
-----------------------*/

4
node/src/files/components/semantic/elements/button.css

@ -1,5 +1,5 @@
/*
* # Semantic Button - Flat
* # Semantic Button
* http://github.com/quirkyinc/semantic
*
*
@ -94,7 +94,7 @@
color: #666666;
}
/*--------------
Hover
Hover
---------------*/
.ui.button:hover,
.ui.button.hover {

3
node/src/files/components/semantic/elements/step.css

@ -189,8 +189,7 @@
border-radius: 0em 0em 0.3125em 0em;
}
/* Fluid */
.ui.steps,
.ui.steps > .step {
.ui.one.steps > .step {
width: 100%;
}
.ui.two.steps > .step {

121
node/src/files/components/semantic/modules/accordion.css

@ -1,78 +1,71 @@
/*
* # Semantic Accordion
* http://github.com/quirkyinc/semantic
*
*
* Copyright 2013 Contributors
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
* Released: April 17 2013
*/
/*******************************
Button
*******************************/
.ui.accordion {
overflow: hidden;
font-size: 1rem;
border-radius: 0.3125em;
background-color: #FFFFFF;
-webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
-moz-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 {
cursor: pointer;
font-size: 16px;
padding: 0.75em 1em;
font-weight: bold;
color: #3E2151;
margin-top: 8px;
padding: 8px 8px;
border: 1px solid transparent;
border-top: 1px solid #E0E0E0;
-webkit-box-shadow: 0px 1px 0px #FFFFFF inset;
-moz-box-shadow: 0px 1px 0px #FFFFFF inset;
box-shadow: 0px 1px 0px #FFFFFF inset;
transition: color 0.2s ease-out;
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;
-o-transition: background-color 0.2s ease-out;
-ms-transition: background-color 0.2s ease-out;
transition: background-color 0.2s ease-out;
}
.ui.accordion .title:first-child {
margin-top: 0px;
border-top-color: transparent;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
border-top: none;
}
/* Content */
.ui.accordion .content {
display: none;
padding: 1.3em 1em;
/*
border-left: 0.2em solid rgba(0, 0, 0, 0.1);
border-right: 0.2em solid rgba(0, 0, 0, 0.1);
border-bottom: 0.2em solid rgba(0, 0, 0, 0.1);*/
}
/*******************************
States
*******************************/
/*--------------
Hover
---------------*/
.ui.accordion .title:hover,
.ui.accordion .title.active {
color: #335687;
color: rgba(0, 0, 0, 0.8);
}
/*--------------
Active
---------------*/
.ui.accordion .title.active {
background-color: #E0E0E0;
border: 1px solid #BBBBBB;
-webkit-box-shadow: 0px 1px 0px #FFFFFF inset;
-moz-box-shadow: 0px 1px 0px #FFFFFF inset;
box-shadow: 0px 1px 0px #FFFFFF inset;
color: #335687;
}
.ui.accordion .icon {
margin: 0px 4px 4px 2px;
display: inline-block;
text-indent: -9999px;
vertical-align: middle;
border-top: 4px solid transparent;
border-bottom: 4px solid transparent;
border-left: 6px solid #3E2151;
border-right: 4px solid transparent;
}
.ui.accordion .title:hover .icon {
border-left-color: #335687;
}
.ui.accordion .title.active .icon {
border-left: 4px solid transparent;
border-top: 6px solid #335687;
margin-left: 0px;
margin-bottom: 0px;
}
.ui.accordion .content {
display: none;
padding: 10px 20px;
margin: 0px;
font-size: 12px;
line-height: 2;
}
.ui.accordion .content p {
margin: 12px 0px;
font-size: 12px;
background-color: rgba(0, 0, 0, 0.1);
color: rgba(0, 0, 0, 0.8);
}
.ui.accordion .content.active {
display: block;
background-color: #EEEEEE;
-webkit-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.25) inset;
-moz-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.25) inset;
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.25) inset;
}
/* Connected Accordion */
.ui.accordion.connected {
background-color: #FAFAFA;
border: 1px solid #DDDDDD;
}
.ui.accordion.connected .title {
margin-top: 0px;
}
/*******************************
Variations
*******************************/

451
node/src/files/components/semantic/modules/accordion.js

@ -8,189 +8,344 @@
;(function ($, window, document, undefined) {
$.fn.accordion = function(parameters) {
var
settings = $.extend(true, {}, $.fn.accordion.settings, parameters),
// hoist arguments
moduleArguments = arguments || false
;
$(this)
.each(function() {
var
$module = $(this),
$title = $module.find(settings.selector.title),
$icon = $module.find(settings.selector.icon),
$content = $module.find(settings.selector.content),
instance = $module.data('module'),
className = settings.className,
module
;
module = {
initialize: function() {
// initializing
$title
.on('click', module.change)
;
$module
.data('module', module)
;
},
change: function() {
$.fn.accordion = function(parameters) {
var
$allModules = $(this),
settings = ( $.isPlainObject(parameters) )
? $.extend(true, {}, $.fn.accordion.settings, parameters)
: $.fn.accordion.settings,
eventNamespace = '.' + settings.namespace,
moduleNamespace = 'module-' + settings.namespace,
moduleSelector = $allModules.selector || '',
time = new Date().getTime(),
performance = [],
query = arguments[0],
methodInvoked = (typeof query == 'string'),
queryArguments = [].slice.call(arguments, 1),
invokedResponse,
allModules
;
$allModules
.each(function() {
var
$module = $(this),
$title = $module.find(settings.selector.title),
$icon = $module.find(settings.selector.icon),
$content = $module.find(settings.selector.content),
selector = $module.selector || '',
element = this,
instance = $module.data('module-' + settings.namespace),
className = settings.className,
metadata = settings.metadata,
namespace = settings.namespace,
animation = settings.animation,
errors = settings.errors,
module
;
module = {
initialize: function() {
module.debug('Initializing accordion with bound events', $module);
// initializing
$title
.on('click', module.event.click)
;
$module
.data('module', module)
;
},
destroy: function() {
module.debug('Destroying previous accordion for', $module);
$module
.off(namespace)
;
},
event: {
click: function() {
var
$activeTitle = $(this),
$activeContent = $activeTitle.next($content),
contentIsOpen = $activeTitle.hasClass(className.active)
$activeTitle = $(this),
activeIndex = $title.index($activeTitle),
contentIsOpen = $activeTitle.next($content).hasClass(className.active)
;
module.verbose('Accordion title clicked', $activeTitle);
if(contentIsOpen) {
if(settings.collapsible) {
$.proxy(module.close, $activeTitle)();
module.close(activeIndex);
}
else {
module.debug('Cannot close accordion content collapsing is disabled');
}
}
else {
$.proxy(module.open, $activeTitle)();
module.open(activeIndex);
}
},
}
open: function() {
var
$activeTitle = $(this),
$activeContent = $activeTitle.next($content),
$currentTitle = $title.filter('.' + className.active),
$currentContent = $currentTitle.next($title)
;
if(settings.exclusive && $currentTitle.size() > 0) {
},
$currentTitle
.removeClass('active')
;
$currentContent
.stop()
.slideUp(settings.speed , settings.easing, function() {
$(this)
.removeClass('active')
.removeAttr('style')
;
})
;
}
$activeTitle
.addClass(className.active)
open: function(index) {
var
$activeTitle = $title.eq(index),
$activeContent = $activeTitle.next($content),
$previousTitle = $title.filter('.' + className.active),
$previousContent = $previousTitle.next($title),
contentIsOpen = ($previousTitle.size() > 0)
;
module.debug('Opening accordion content', $activeTitle);
if(settings.exclusive && contentIsOpen) {
$previousTitle
.removeClass(className.active)
;
$activeContent
.hide()
.addClass(className.active)
$previousContent
.stop()
.slideDown(settings.speed, settings.easing, function() {
$(this)
.children()
.animate({
opacity: 0
}, settings.speed)
.end()
.slideUp(settings.speed , settings.easing, function() {
$previousContent
.removeClass(className.active)
.removeAttr('style')
.children()
.removeAttr('style')
;
})
;
},
}
$activeTitle
.addClass(className.active)
;
$activeContent
.stop()
.slideDown(settings.speed, settings.easing, function() {
$activeContent
.addClass(className.active)
.removeAttr('style')
;
$.proxy(settings.onOpen, $activeContent)();
$.proxy(settings.onChange, $activeContent)();
})
;
},
close: function() {
close: function(index) {
var
$activeTitle = $title.eq(index),
$activeContent = $activeTitle.next($content)
;
module.debug('Closing accordion content', $activeTitle);
$activeTitle
.removeClass(className.active)
;
$activeContent
.removeClass(className.active)
.show()
.stop()
.slideUp(settings.speed, settings.easing, function(){
$activeContent
.removeAttr('style')
;
$.proxy(settings.onClose, $activeContent)();
$.proxy(settings.onChange, $activeContent)();
})
;
},
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.moduleName + ':');
}
}
},
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.moduleName + ':');
}
}
},
error: function() {
module.error = Function.prototype.bind.call(console.log, console, settings.moduleName + ':');
},
performance: {
log: function(message) {
var
$activeTitle = $(this),
$activeContent = $activeTitle.next($content)
;
$activeTitle
.removeClass(className.active)
currentTime,
executionTime,
previousTime
;
$activeContent
.removeClass(className.active)
.show()
.stop()
.slideUp(settings.speed, settings.easing, function(){
$(this)
.removeAttr('style')
;
})
;
},
debug: function(message) {
if(settings.debug) {
console.info(settings.moduleName + ': ' + message);
if(settings.performance) {
currentTime = new Date().getTime();
previousTime = time || currentTime,
executionTime = currentTime - previousTime;
time = currentTime;
performance.push({
'Element' : element,
'Name' : message[0],
'Arguments' : message[1] || '',
'Execution Time' : executionTime
});
}
clearTimeout(module.performance.timer);
module.performance.timer = setTimeout(module.performance.display, 100);
},
error: function(errorMessage) {
console.warn(settings.moduleName + ': ' + errorMessage);
},
invoke: function(methodName, context, methodArguments) {
display: function() {
var
method
title = settings.moduleName + ':',
totalTime = 0
;
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.errors.method);
return false;
});
time = false;
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});
title += ' ' + totalTime + 'ms';
if(moduleSelector) {
title += ' \'' + moduleSelector + '\'';
}
if ( $.isFunction( method ) ) {
return method.apply(context, methodArguments);
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();
}
// return retrieved variable or chain
return method;
performance = [];
}
};
// calling a method
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 );
},
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];
return true;
}
else if( instance[value] !== undefined ) {
found = instance[value];
return true;
}
module.error(errors.method);
return false;
});
}
return module.invoke(moduleArguments[0], this, Array.prototype.slice.call( moduleArguments, 1 ) );
if ( $.isFunction( found ) ) {
instance.verbose('Executing invoked function', found);
return found.apply(context, passedArguments);
}
return found || false;
}
};
if(methodInvoked) {
if(instance === undefined) {
module.initialize();
}
invokedResponse = module.invoke(query);
}
else {
if(instance !== undefined) {
module.destroy();
}
// initializing
module.initialize();
}
})
;
return (invokedResponse)
? invokedResponse
: this
;
};
})
;
return this;
};
$.fn.accordion.settings = {
moduleName : 'Accordion',
$.fn.accordion.settings = {
moduleName : 'Accordion',
debug : false,
exclusive : true,
collapsible : true,
debug : true,
verbose : true,
performance : false,
exclusive : true,
collapsible : true,
onOpen : function(){},
onClose : function(){},
onChange : function(){},
errors: {
method : 'The method you called is not defined'
},
errors: {
method : 'The method you called is not defined'
},
className : {
active : 'active',
hover : 'hover'
},
className : {
active : 'active',
hover : 'hover'
},
selector : {
title : '.title',
icon : '.icon',
content : '.content'
},
selector : {
title : '.title',
icon : '.icon',
content : '.content'
},
speed : 500,
easing : 'easeInOutQuint'
speed : 500,
easing : 'easeInOutQuint'
};
};
})( jQuery, window , document );

4
node/src/files/components/semantic/modules/tab.css

@ -3,10 +3,6 @@
*******************************/
.ui.tab {
display: none;
background-color: #FFFFFF;
border: 1px solid #DADADA;
border-top-color: transparent;
border-top-width: 0px;
}
.ui.tab.active,
.ui.tab.open {

22
node/src/files/javascript/accordion.js

@ -0,0 +1,22 @@
semantic.accordion = {};
// ready event
semantic.accordion.ready = function() {
// selector cache
var
$accordion = $('.ui.accordion'),
// alias
handler
;
$accordion
.accordion()
;
};
// attach ready event
$(document)
.ready(semantic.accordion.ready)
;

1
node/src/files/javascript/semantic.js

@ -448,6 +448,7 @@ semantic.ready = function() {
offset: 'bottom-in-view'
})
;
$peek
.waypoint('sticky', {
offset : 85,

1
node/src/layouts/default.html.eco

@ -58,6 +58,7 @@
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/modules/checkbox.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/modules/dimmer.css">
<link rel="stylesheet" type="text/css" class="ui" href="/icons/sketchy.icons.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/library/sidr.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/semantic.css">

3
src/collections/grid.less

@ -321,6 +321,7 @@
/* Increase Gutters */
/*
.ui.two.column.grid,
.ui.three.column.grid,
.ui.four.column.grid {
@ -355,7 +356,7 @@
padding-left: 2%;
padding-right: 2%;
}
*/
/*----------------------
"Floated"

4
src/elements/button.less

@ -1,5 +1,5 @@
/*
* # Semantic Button - Flat
* # Semantic Button
* http://github.com/quirkyinc/semantic
*
*
@ -163,7 +163,7 @@
}
/*--------------
Hover
Hover
---------------*/
.ui.button:hover,

3
src/elements/step.less

@ -238,8 +238,7 @@
}
/* Fluid */
.ui.steps,
.ui.steps > .step {
.ui.one.steps > .step {
width: 100%;
}
.ui.two.steps > .step {

451
src/modules/accordion.js

@ -8,189 +8,344 @@
;(function ($, window, document, undefined) {
$.fn.accordion = function(parameters) {
var
settings = $.extend(true, {}, $.fn.accordion.settings, parameters),
// hoist arguments
moduleArguments = arguments || false
;
$(this)
.each(function() {
var
$module = $(this),
$title = $module.find(settings.selector.title),
$icon = $module.find(settings.selector.icon),
$content = $module.find(settings.selector.content),
instance = $module.data('module'),
className = settings.className,
module
;
module = {
initialize: function() {
// initializing
$title
.on('click', module.change)
;
$module
.data('module', module)
;
},
change: function() {
$.fn.accordion = function(parameters) {
var
$allModules = $(this),
settings = ( $.isPlainObject(parameters) )
? $.extend(true, {}, $.fn.accordion.settings, parameters)
: $.fn.accordion.settings,
eventNamespace = '.' + settings.namespace,
moduleNamespace = 'module-' + settings.namespace,
moduleSelector = $allModules.selector || '',
time = new Date().getTime(),
performance = [],
query = arguments[0],
methodInvoked = (typeof query == 'string'),
queryArguments = [].slice.call(arguments, 1),
invokedResponse,
allModules
;
$allModules
.each(function() {
var
$module = $(this),
$title = $module.find(settings.selector.title),
$icon = $module.find(settings.selector.icon),
$content = $module.find(settings.selector.content),
selector = $module.selector || '',
element = this,
instance = $module.data('module-' + settings.namespace),
className = settings.className,
metadata = settings.metadata,
namespace = settings.namespace,
animation = settings.animation,
errors = settings.errors,
module
;
module = {
initialize: function() {
module.debug('Initializing accordion with bound events', $module);
// initializing
$title
.on('click', module.event.click)
;
$module
.data('module', module)
;
},
destroy: function() {
module.debug('Destroying previous accordion for', $module);
$module
.off(namespace)
;
},
event: {
click: function() {
var
$activeTitle = $(this),
$activeContent = $activeTitle.next($content),
contentIsOpen = $activeTitle.hasClass(className.active)
$activeTitle = $(this),
activeIndex = $title.index($activeTitle),
contentIsOpen = $activeTitle.next($content).hasClass(className.active)
;
module.verbose('Accordion title clicked', $activeTitle);
if(contentIsOpen) {
if(settings.collapsible) {
$.proxy(module.close, $activeTitle)();
module.close(activeIndex);
}
else {
module.debug('Cannot close accordion content collapsing is disabled');
}
}
else {
$.proxy(module.open, $activeTitle)();
module.open(activeIndex);
}
},
}
open: function() {
var
$activeTitle = $(this),
$activeContent = $activeTitle.next($content),
$currentTitle = $title.filter('.' + className.active),
$currentContent = $currentTitle.next($title)
;
if(settings.exclusive && $currentTitle.size() > 0) {
},
$currentTitle
.removeClass('active')
;
$currentContent
.stop()
.slideUp(settings.speed , settings.easing, function() {
$(this)
.removeClass('active')
.removeAttr('style')
;
})
;
}
$activeTitle
.addClass(className.active)
open: function(index) {
var
$activeTitle = $title.eq(index),
$activeContent = $activeTitle.next($content),
$previousTitle = $title.filter('.' + className.active),
$previousContent = $previousTitle.next($title),
contentIsOpen = ($previousTitle.size() > 0)
;
module.debug('Opening accordion content', $activeTitle);
if(settings.exclusive && contentIsOpen) {
$previousTitle
.removeClass(className.active)
;
$activeContent
.hide()
.addClass(className.active)
$previousContent
.stop()
.slideDown(settings.speed, settings.easing, function() {
$(this)
.children()
.animate({
opacity: 0
}, settings.speed)
.end()
.slideUp(settings.speed , settings.easing, function() {
$previousContent
.removeClass(className.active)
.removeAttr('style')
.children()
.removeAttr('style')
;
})
;
},
}
$activeTitle
.addClass(className.active)
;
$activeContent
.stop()
.slideDown(settings.speed, settings.easing, function() {
$activeContent
.addClass(className.active)
.removeAttr('style')
;
$.proxy(settings.onOpen, $activeContent)();
$.proxy(settings.onChange, $activeContent)();
})
;
},
close: function() {
close: function(index) {
var
$activeTitle = $title.eq(index),
$activeContent = $activeTitle.next($content)
;
module.debug('Closing accordion content', $activeTitle);
$activeTitle
.removeClass(className.active)
;
$activeContent
.removeClass(className.active)
.show()
.stop()
.slideUp(settings.speed, settings.easing, function(){
$activeContent
.removeAttr('style')
;
$.proxy(settings.onClose, $activeContent)();
$.proxy(settings.onChange, $activeContent)();
})
;
},
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.moduleName + ':');
}
}
},
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.moduleName + ':');
}
}
},
error: function() {
module.error = Function.prototype.bind.call(console.log, console, settings.moduleName + ':');
},
performance: {
log: function(message) {
var
$activeTitle = $(this),
$activeContent = $activeTitle.next($content)
;
$activeTitle
.removeClass(className.active)
currentTime,
executionTime,
previousTime
;
$activeContent
.removeClass(className.active)
.show()
.stop()
.slideUp(settings.speed, settings.easing, function(){
$(this)
.removeAttr('style')
;
})
;
},
debug: function(message) {
if(settings.debug) {
console.info(settings.moduleName + ': ' + message);
if(settings.performance) {
currentTime = new Date().getTime();
previousTime = time || currentTime,
executionTime = currentTime - previousTime;
time = currentTime;
performance.push({
'Element' : element,
'Name' : message[0],
'Arguments' : message[1] || '',
'Execution Time' : executionTime
});
}
clearTimeout(module.performance.timer);
module.performance.timer = setTimeout(module.performance.display, 100);
},
error: function(errorMessage) {
console.warn(settings.moduleName + ': ' + errorMessage);
},
invoke: function(methodName, context, methodArguments) {
display: function() {
var
method
title = settings.moduleName + ':',
totalTime = 0
;
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.errors.method);
return false;
});
time = false;
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});
title += ' ' + totalTime + 'ms';
if(moduleSelector) {
title += ' \'' + moduleSelector + '\'';
}
if ( $.isFunction( method ) ) {
return method.apply(context, methodArguments);
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();
}
// return retrieved variable or chain
return method;
performance = [];
}
};
// calling a method
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 );
},
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];
return true;
}
else if( instance[value] !== undefined ) {
found = instance[value];
return true;
}
module.error(errors.method);
return false;
});
}
return module.invoke(moduleArguments[0], this, Array.prototype.slice.call( moduleArguments, 1 ) );
if ( $.isFunction( found ) ) {
instance.verbose('Executing invoked function', found);
return found.apply(context, passedArguments);
}
return found || false;
}
};
if(methodInvoked) {
if(instance === undefined) {
module.initialize();
}
invokedResponse = module.invoke(query);
}
else {
if(instance !== undefined) {
module.destroy();
}
// initializing
module.initialize();
}
})
;
return (invokedResponse)
? invokedResponse
: this
;
};
})
;
return this;
};
$.fn.accordion.settings = {
moduleName : 'Accordion',
$.fn.accordion.settings = {
moduleName : 'Accordion',
debug : false,
exclusive : true,
collapsible : true,
debug : true,
verbose : true,
performance : false,
exclusive : true,
collapsible : true,
onOpen : function(){},
onClose : function(){},
onChange : function(){},
errors: {
method : 'The method you called is not defined'
},
errors: {
method : 'The method you called is not defined'
},
className : {
active : 'active',
hover : 'hover'
},
className : {
active : 'active',
hover : 'hover'
},
selector : {
title : '.title',
icon : '.icon',
content : '.content'
},
selector : {
title : '.title',
icon : '.icon',
content : '.content'
},
speed : 500,
easing : 'easeInOutQuint'
speed : 500,
easing : 'easeInOutQuint'
};
};
})( jQuery, window , document );

154
src/modules/accordion.less

@ -1,92 +1,102 @@
/*
* # Semantic Accordion
* http://github.com/quirkyinc/semantic
*
*
* Copyright 2013 Contributors
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
* Released: April 17 2013
*/
/*******************************
Button
*******************************/
.ui.accordion {
overflow: hidden;
font-size: 1rem;
border-radius: 0.3125em;
background-color: #FFFFFF;
-webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
-moz-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 {
cursor: pointer;
font-size: 16px;
font-weight: bold;
color: #3E2151;
margin-top: 8px;
padding: 8px 8px;
border: 1px solid transparent;
border-top: 1px solid #E0E0E0;
-webkit-box-shadow: 0px 1px 0px #FFFFFF inset;
-moz-box-shadow: 0px 1px 0px #FFFFFF inset;
box-shadow: 0px 1px 0px #FFFFFF inset;
transition: color 0.2s ease-out;
padding: 0.75em 1em;
font-weight: bold;
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
;
-o-transition:
background-color 0.2s ease-out
;
-ms-transition:
background-color 0.2s ease-out
;
transition:
background-color 0.2s ease-out
;
}
.ui.accordion .title:first-child {
margin-top: 0px;
border-top-color: transparent;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
border-top: none;
}
.ui.accordion .title:hover,
.ui.accordion .title.active {
color: #335687;
}
.ui.accordion .title.active {
background-color: #E0E0E0;
border: 1px solid #BBBBBB;
-webkit-box-shadow: 0px 1px 0px #FFFFFF inset;
-moz-box-shadow: 0px 1px 0px #FFFFFF inset;
box-shadow: 0px 1px 0px #FFFFFF inset;
color: #335687;
/* Content */
.ui.accordion .content {
display: none;
padding: 1.3em 1em;
/*
border-left: 0.2em solid rgba(0, 0, 0, 0.1);
border-right: 0.2em solid rgba(0, 0, 0, 0.1);
border-bottom: 0.2em solid rgba(0, 0, 0, 0.1);*/
}
.ui.accordion .icon {
margin: 0px 4px 4px 2px;
display: inline-block;
text-indent: -9999px;
vertical-align: middle;
/*******************************
States
*******************************/
border-top: 4px solid transparent;
border-bottom: 4px solid transparent;
border-left: 6px solid #3E2151;
border-right: 4px solid transparent;
}
.ui.accordion .title:hover .icon {
border-left-color: #335687;
}
.ui.accordion .title.active .icon {
border-left: 4px solid transparent;
border-top: 6px solid #335687;
margin-left: 0px;
margin-bottom: 0px;
}
.ui.accordion .content {
display: none;
padding: 10px 20px;
margin: 0px;
font-size: 12px;
line-height: 2;
/*--------------
Hover
---------------*/
.ui.accordion .title:hover,
.ui.accordion .title.active {
color: rgba(0, 0, 0, 0.8);
}
.ui.accordion .content p {
margin: 12px 0px;
font-size: 12px;
/*--------------
Active
---------------*/
.ui.accordion .title.active {
background-color: rgba(0, 0, 0, 0.1);
color: rgba(0, 0, 0, 0.8);
}
.ui.accordion .content.active {
display: block;
background-color: #EEEEEE;
-webkit-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.25) inset;
-moz-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.25) inset;
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.25) inset;
display: block;
}
/* Connected Accordion */
.ui.accordion.connected {
background-color: #FAFAFA;
border: 1px solid #DDDDDD;
}
.ui.accordion.connected .title {
margin-top: 0px;
}
/*******************************
Variations
*******************************/

4
src/modules/tab.less

@ -5,10 +5,6 @@
.ui.tab {
display: none;
background-color: #FFFFFF;
border: 1px solid #DADADA;
border-top-color: transparent;
border-top-width: 0px;
}
.ui.tab.active,
.ui.tab.open {

Loading…
Cancel
Save