kube_for_rails 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ if("undefined"==typeof jQuery)throw new Error("Kube's requires jQuery");!function(t){var e=t.fn.jquery.split(".");if(1==e[0]&&e[1]<8)throw new Error("Kube's requires at least jQuery v1.8")}(jQuery),function(){Function.prototype.inherits=function(t){var e=function(){};e.prototype=t.prototype;var s=new e;for(var i in this.prototype)s[i]=this.prototype[i];this.prototype=s,this.prototype["super"]=t.prototype};var t=function(t,e){e="object"==typeof e?e:{},this.$element=$(t),this.opts=$.extend(!0,this.defaults,$.fn[this.namespace].options,this.$element.data(),e),this.$target="string"==typeof this.opts.target?$(this.opts.target):null};t.prototype={getInstance:function(){return this.$element.data("fn."+this.namespace)},hasTarget:function(){return!(null===this.$target)},callback:function(t){var e=[].slice.call(arguments).splice(1);return this.$element&&(e=this._fireCallback($._data(this.$element[0],"events"),t,this.namespace,e)),this.$target&&(e=this._fireCallback($._data(this.$target[0],"events"),t,this.namespace,e)),this.opts&&this.opts.callbacks&&$.isFunction(this.opts.callbacks[t])?this.opts.callbacks[t].apply(this,e):e},_fireCallback:function(t,e,s,i){if(t&&"undefined"!=typeof t[e])for(var n=t[e].length,o=0;n>o;o++){var a=t[e][o].namespace;if(a===s)var h=t[e][o].handler.apply(this,i)}return"undefined"==typeof h?i:h}},window.Kube=t}(),function(t){t.Plugin={create:function(e,s){return s="undefined"==typeof s?e.toLowerCase():s,$.fn[s]=function(i,n){var o=Array.prototype.slice.call(arguments,1),a="fn."+s,h=[];return this.each(function(){var s=$(this),l=s.data(a);if(n="object"==typeof i?i:n,l||(s.data(a,{}),s.data(a,l=new t[e](this,n))),"string"==typeof i)if($.isFunction(l[i])){var c=l[i].apply(l,o);void 0!==c&&h.push(c)}else $.error('No such method "'+i+'" for '+e)}),0===h.length||1===h.length?0===h.length?this:h[0]:h},$.fn[s].options={},this},autoload:function(t){for(var e=t.split(","),s=e.length,i=0;s>i;i++){var n=e[i].toLowerCase().split(",").map(function(t){return t.trim()}).join(",");this.autoloadQueue.push(n)}return this},autoloadQueue:[],startAutoload:function(){if(window.MutationObserver&&0!==this.autoloadQueue.length){var t=this,e=new MutationObserver(function(e){e.forEach(function(e){var s=e.addedNodes;0===s.length||1===s.length&&3===s.nodeType||t.startAutoloadOnce()})});e.observe(document,{subtree:!0,childList:!0})}},startAutoloadOnce:function(){var t=this,e=$("[data-component]").not("[data-loaded]");e.each(function(){var e=$(this),s=e.data("component");-1!==t.autoloadQueue.indexOf(s)&&(e.attr("data-loaded",!0),e[s]())})},watch:function(){t.Plugin.startAutoloadOnce(),t.Plugin.startAutoload()}},$(window).on("load",function(){t.Plugin.watch()})}(Kube),function(t){t.Animation=function(e,s,i){this.namespace="animation",this.defaults={},t.apply(this,arguments),this.effect=s,this.completeCallback="undefined"==typeof i?!1:i,this.prefixes=["","-moz-","-o-animation-","-webkit-"],this.queue=[],this.start()},t.Animation.prototype={start:function(){this.isSlideEffect()&&this.setElementHeight(),this.addToQueue(),this.clean(),this.animate()},addToQueue:function(){this.queue.push(this.effect)},setElementHeight:function(){this.$element.height(this.$element.height())},removeElementHeight:function(){this.$element.css("height","")},isSlideEffect:function(){return"slideDown"===this.effect||"slideUp"===this.effect},isHideableEffect:function(){var t=["fadeOut","slideUp","flipOut","zoomOut","slideOutUp","slideOutRight","slideOutLeft"];return-1!==$.inArray(this.effect,t)},isToggleEffect:function(){return"show"===this.effect||"hide"===this.effect},storeHideClasses:function(){this.$element.hasClass("hide-sm")?this.$element.data("hide-sm-class",!0):this.$element.hasClass("hide-md")&&this.$element.data("hide-md-class",!0)},revertHideClasses:function(){this.$element.data("hide-sm-class")?this.$element.addClass("hide-sm").removeData("hide-sm-class"):this.$element.data("hide-md-class")?this.$element.addClass("hide-md").removeData("hide-md-class"):this.$element.addClass("hide")},removeHideClass:function(){this.$element.data("hide-sm-class")?this.$element.removeClass("hide-sm"):this.$element.data("hide-md-class")?this.$element.removeClass("hide-md"):this.$element.removeClass("hide")},animate:function(){if(this.storeHideClasses(),this.isToggleEffect())return this.makeSimpleEffects();this.$element.addClass("kubeanimated"),this.$element.addClass(this.queue[0]),this.removeHideClass();var t=this.queue.length>1?null:this.completeCallback;this.complete("AnimationEnd",$.proxy(this.makeComplete,this),t)},makeSimpleEffects:function(){"show"===this.effect?this.removeHideClass():"hide"===this.effect&&this.revertHideClasses(),"function"==typeof this.completeCallback&&this.completeCallback(this)},makeComplete:function(){this.$element.hasClass(this.queue[0])&&(this.clean(),this.queue.shift(),this.queue.length&&this.animate())},complete:function(t,e,s){var i=t.toLowerCase()+" webkit"+t+" o"+t+" MS"+t;this.$element.one(i,$.proxy(function(){"function"==typeof e&&e(),this.isHideableEffect()&&this.revertHideClasses(),this.isSlideEffect()&&this.removeElementHeight(),"function"==typeof s&&s(this),this.$element.off(i)},this))},clean:function(){this.$element.removeClass("kubeanimated").removeClass(this.queue[0])}},t.Animation.inherits(t)}(Kube),function(t){t.fn.animation=function(e,s){var i="fn.animation";return this.each(function(){var n=t(this),o=n.data(i);n.data(i,{}),n.data(i,o=new Kube.Animation(this,e,s))})},t.fn.animation.options={}}(jQuery),function(t){t.Detect=function(){},t.Detect.prototype={isMobile:function(){return/(iPhone|iPod|BlackBerry|Android)/.test(navigator.userAgent)},isDesktop:function(){return!/(iPhone|iPod|iPad|BlackBerry|Android)/.test(navigator.userAgent)},isMobileScreen:function(){return $(window).width()<=768},isTabletScreen:function(){return $(window).width()>=768&&$(window).width()<=1024},isDesktopScreen:function(){return $(window).width()>1024}}}(Kube),function(t){t.FormData=function(t){this.opts=t.opts},t.FormData.prototype={set:function(t){this.data=t},get:function(t){return this.formdata=t,this.opts.appendForms&&this.appendForms(),this.opts.appendFields&&this.appendFields(),this.data},appendFields:function(){var t=$(this.opts.appendFields);if(0!==t.length){var e=this,s="";this.formdata?t.each(function(){e.data.append($(this).attr("name"),$(this).val())}):(t.each(function(){s+="&"+$(this).attr("name")+"="+$(this).val()}),this.data=""===this.data?s.replace(/^&/,""):this.data+s)}},appendForms:function(){var t=$(this.opts.appendForms);if(0!==t.length)if(this.formdata){var e=this,s=$(this.opts.appendForms).serializeArray();$.each(s,function(t,s){e.data.append(s.name,s.value)})}else{var i=t.serialize();this.data=""===this.data?i:this.data+"&"+i}}}}(Kube),function(t){t.Response=function(t){},t.Response.prototype={parse:function(t){if(""===t)return!1;var e={};try{e=JSON.parse(t)}catch(s){return!1}if(void 0!==e[0])for(var i in e)this.parseItem(e[i]);else this.parseItem(e);return e},parseItem:function(t){return"value"===t.type?$.each(t.data,$.proxy(function(t,e){e=null===e||e===!1?0:e,e=e===!0?1:e,$(t).val(e)},this)):"html"===t.type?$.each(t.data,$.proxy(function(t,e){e=null===e||e===!1?"":e,$(t).html(this.stripslashes(e))},this)):"addClass"===t.type?$.each(t.data,function(t,e){$(t).addClass(e)}):"removeClass"===t.type?$.each(t.data,function(t,e){$(t).removeClass(e)}):"command"===t.type?$.each(t.data,function(t,e){$(e)[t]()}):"animation"===t.type?$.each(t.data,function(t,e){e.opts="undefined"==typeof e.opts?{}:e.opts,$(t).animation(e.name,e.opts)}):"location"===t.type?top.location.href=t.data:"notify"===t.type&&$.notify(t.data),t},stripslashes:function(t){return(t+"").replace(/\0/g,"0").replace(/\\([\\'"])/g,"$1")}}}(Kube),function(t){t.Utils=function(){},t.Utils.prototype={disableBodyScroll:function(){var t=$("html"),e=window.innerWidth;if(!e){var s=document.documentElement.getBoundingClientRect();e=s.right-Math.abs(s.left)}var i=document.body.clientWidth<e,n=this.measureScrollbar();t.css("overflow","hidden"),i&&t.css("padding-right",n)},measureScrollbar:function(){var t=$("body"),e=document.createElement("div");e.className="scrollbar-measure",t.append(e);var s=e.offsetWidth-e.clientWidth;return t[0].removeChild(e),s},enableBodyScroll:function(){$("html").css({overflow:"","padding-right":""})}}}(Kube),function(t){t.Message=function(e,s){this.namespace="message",this.defaults={closeSelector:".close",closeEvent:"click",animationOpen:"fadeIn",animationClose:"fadeOut",callbacks:["open","opened","close","closed"]},t.apply(this,arguments),this.start()},t.Message.prototype={start:function(){this.$close=this.$element.find(this.opts.closeSelector),this.$close.on(this.opts.closeEvent+"."+this.namespace,$.proxy(this.close,this)),this.$element.addClass("open")},stop:function(){this.$close.off("."+this.namespace),this.$element.removeClass("open")},open:function(t){t&&t.preventDefault(),this.isOpened()||(this.callback("open"),this.$element.animation(this.opts.animationOpen,$.proxy(this.onOpened,this)))},isOpened:function(){return this.$element.hasClass("open")},onOpened:function(){this.callback("opened"),this.$element.addClass("open")},close:function(t){t&&t.preventDefault(),this.isOpened()&&(this.callback("close"),this.$element.animation(this.opts.animationClose,$.proxy(this.onClosed,this)))},onClosed:function(){this.callback("closed"),this.$element.removeClass("open")}},t.Message.inherits(t),t.Plugin.create("Message"),t.Plugin.autoload("Message")}(Kube),function(t){t.Sticky=function(e,s){this.namespace="sticky",this.defaults={classname:"fixed",offset:0,callbacks:["fixed","unfixed"]},t.apply(this,arguments),this.start()},t.Sticky.prototype={start:function(){this.offsetTop=this.getOffsetTop(),this.load(),$(window).scroll($.proxy(this.load,this))},getOffsetTop:function(){return this.$element.offset().top},load:function(){return this.isFix()?this.fixed():this.unfixed()},isFix:function(){return $(window).scrollTop()>this.offsetTop+this.opts.offset},fixed:function(){this.$element.addClass(this.opts.classname).css("top",this.opts.offset+"px"),this.callback("fixed")},unfixed:function(){this.$element.removeClass(this.opts.classname).css("top",""),this.callback("unfixed")}},t.Sticky.inherits(t),t.Plugin.create("Sticky"),t.Plugin.autoload("Sticky")}(Kube),function(t){t.Toggleme=function(e,s){this.namespace="toggleme",this.defaults={toggleEvent:"click",target:null,text:"",animationOpen:"slideDown",animationClose:"slideUp",callbacks:["open","opened","close","closed"]},t.apply(this,arguments),this.start()},t.Toggleme.prototype={start:function(){this.hasTarget()&&this.$element.on(this.opts.toggleEvent+"."+this.namespace,$.proxy(this.toggle,this))},stop:function(){this.$element.off("."+this.namespace),this.revertText()},toggle:function(t){this.isOpened()?this.close(t):this.open(t)},open:function(t){t&&t.preventDefault(),this.isOpened()||(this.storeText(),this.callback("open"),this.$target.animation("slideDown",$.proxy(this.onOpened,this)),setTimeout($.proxy(this.replaceText,this),100))},close:function(t){t&&t.preventDefault(),this.isOpened()&&(this.callback("close"),this.$target.animation("slideUp",$.proxy(this.onClosed,this)))},isOpened:function(){return this.$target.hasClass("open")},onOpened:function(){this.$target.addClass("open"),this.callback("opened")},onClosed:function(){this.$target.removeClass("open"),this.revertText(),this.callback("closed")},storeText:function(){this.$element.data("replacement-text",this.$element.html())},revertText:function(){var t=this.$element.data("replacement-text");t&&this.$element.html(t),this.$element.removeData("replacement-text")},replaceText:function(){""!==this.opts.text&&this.$element.html(this.opts.text)}},t.Toggleme.inherits(t),t.Plugin.create("Toggleme"),t.Plugin.autoload("Toggleme")}(Kube),function(t){t.Offcanvas=function(e,s){this.namespace="offcanvas",this.defaults={target:null,push:!0,width:"250px",direction:"left",toggleEvent:"click",clickOutside:!0,animationOpen:"slideInLeft",animationClose:"slideOutLeft",callbacks:["open","opened","close","closed"]},t.apply(this,arguments),this.utils=new t.Utils,this.detect=new t.Detect,this.start()},t.Offcanvas.prototype={start:function(){this.hasTarget()&&(this.buildTargetWidth(),this.buildAnimationDirection(),this.$close=this.getCloseLink(),this.$element.on(this.opts.toggleEvent+"."+this.namespace,$.proxy(this.toggle,this)),this.$target.addClass("offcanvas"))},stop:function(){this.closeAll(),this.$element.off("."+this.namespace),this.$close.off("."+this.namespace),$(document).off("."+this.namespace)},toggle:function(t){this.isOpened()?this.close(t):this.open(t)},buildTargetWidth:function(){this.opts.width=$(window).width()<parseInt(this.opts.width)?"100%":this.opts.width},buildAnimationDirection:function(){"right"===this.opts.direction&&(this.opts.animationOpen="slideInRight",this.opts.animationClose="slideOutRight")},getCloseLink:function(){return this.$target.find(".close")},open:function(t){t&&t.preventDefault(),this.isOpened()||(this.closeAll(),this.callback("open"),this.$target.addClass("offcanvas-"+this.opts.direction),this.$target.css("width",this.opts.width),this.pushBody(),this.$target.animation(this.opts.animationOpen,$.proxy(this.onOpened,this)))},closeAll:function(){var t=$(document).find(".offcanvas");0!==t.length&&(t.each(function(){var t=$(this);t.hasClass("open")&&(t.css("width","").animation("hide"),t.removeClass("open offcanvas-left offcanvas-right"))}),$(document).off("."+this.namespace),$("body").css("left",""))},close:function(t){if(t){var e=$(t.target),s="A"===e[0].tagName||"BUTTON"===e[0].tagName;if(s&&0!==e.closest(".offcanvas").length&&!e.hasClass("close"))return;t.preventDefault()}this.isOpened()&&(this.utils.enableBodyScroll(),this.callback("close"),this.pullBody(),this.$target.animation(this.opts.animationClose,$.proxy(this.onClosed,this)))},isOpened:function(){return this.$target.hasClass("open")},onOpened:function(){this.opts.clickOutside&&$(document).on("click."+this.namespace,$.proxy(this.close,this)),this.detect.isMobileScreen()&&$("html").addClass("no-scroll"),$(document).on("keyup."+this.namespace,$.proxy(this.handleKeyboard,this)),this.$close.on("click."+this.namespace,$.proxy(this.close,this)),this.utils.disableBodyScroll(),this.$target.addClass("open"),this.callback("opened")},onClosed:function(){this.detect.isMobileScreen()&&$("html").removeClass("no-scroll"),this.$target.css("width","").removeClass("offcanvas-"+this.opts.direction),this.$close.off("."+this.namespace),$(document).off("."+this.namespace),this.$target.removeClass("open"),this.callback("closed")},handleKeyboard:function(t){27===t.which&&this.close()},pullBody:function(){this.opts.push&&$("body").animate({left:0},350,function(){$(this).removeClass("offcanvas-push-body")})},pushBody:function(){if(this.opts.push){var t="left"===this.opts.direction?{left:this.opts.width}:{left:"-"+this.opts.width};$("body").addClass("offcanvas-push-body").animate(t,200)}}},t.Offcanvas.inherits(t),t.Plugin.create("Offcanvas"),t.Plugin.autoload("Offcanvas")}(Kube),function(t){t.Collapse=function(e,s){this.namespace="collapse",this.defaults={target:null,toggle:!0,active:!1,toggleClass:"collapse-toggle",boxClass:"collapse-box",callbacks:["open","opened","close","closed"],hashes:[],currentHash:!1,currentItem:!1},t.apply(this,arguments),this.start()},t.Collapse.prototype={start:function(){this.$items=this.getItems(),this.$items.each($.proxy(this.loadItems,this)),this.$boxes=this.getBoxes(),this.setActiveItem()},getItems:function(){return this.$element.find("."+this.opts.toggleClass)},getBoxes:function(){return this.$element.find("."+this.opts.boxClass)},loadItems:function(t,e){var s=this.getItem(e);s.$el.attr("rel",s.hash),$(s.hash).hasClass("hide")||(this.opts.currentItem=s,this.opts.active=s.hash,s.$el.addClass("active")),s.$el.on("click.collapse",$.proxy(this.toggle,this))},setActiveItem:function(){this.opts.active!==!1&&(this.opts.currentItem=this.getItemBy(this.opts.active),this.opts.active=this.opts.currentItem.hash),this.opts.currentItem!==!1&&(this.addActive(this.opts.currentItem),this.opts.currentItem.$box.removeClass("hide"))},addActive:function(t){t.$box.removeClass("hide").addClass("open"),t.$el.addClass("active"),t.$caret!==!1&&t.$caret.removeClass("down").addClass("up"),t.$parent!==!1&&t.$parent.addClass("active"),this.opts.currentItem=t},removeActive:function(t){t.$box.removeClass("open"),t.$el.removeClass("active"),t.$caret!==!1&&t.$caret.addClass("down").removeClass("up"),t.$parent!==!1&&t.$parent.removeClass("active"),this.opts.currentItem=!1},toggle:function(t){t&&t.preventDefault();var e=$(t.target).closest("."+this.opts.toggleClass).get(0)||t.target,s=this.getItem(e);this.isOpened(s.hash)?this.close(s.hash):this.open(t)},openAll:function(){this.$items.addClass("active"),this.$boxes.addClass("open").removeClass("hide")},open:function(t,e){if("undefined"!=typeof t){"object"==typeof t&&t.preventDefault();var s=$(t.target).closest("."+this.opts.toggleClass).get(0)||t.target,i="object"==typeof t?this.getItem(s):this.getItemBy(t);i.$box.hasClass("open")||(this.opts.toggle&&this.closeAll(),this.callback("open",i),this.addActive(i),i.$box.animation("slideDown",$.proxy(this.onOpened,this)))}},onOpened:function(){this.callback("opened",this.opts.currentItem)},closeAll:function(){this.$items.removeClass("active").closest("li").removeClass("active"),this.$boxes.removeClass("open").addClass("hide")},close:function(t){var e=this.getItemBy(t);this.callback("close",e),this.opts.currentItem=e,e.$box.animation("slideUp",$.proxy(this.onClosed,this))},onClosed:function(){var t=this.opts.currentItem;this.removeActive(t),this.callback("closed",t)},isOpened:function(t){return $(t).hasClass("open")},getItem:function(t){var e={};e.$el=$(t),e.hash=e.$el.attr("href"),e.$box=$(e.hash);var s=e.$el.parent();e.$parent="LI"===s[0].tagName?s:!1;var i=e.$el.find(".caret");return e.$caret=0!==i.length?i:!1,e},getItemBy:function(t){var e="number"==typeof t?this.$items.eq(t-1):this.$element.find('[rel="'+t+'"]');return this.getItem(e)}},t.Collapse.inherits(t),t.Plugin.create("Collapse"),t.Plugin.autoload("Collapse")}(Kube),function(t){t.Dropdown=function(e,s){this.namespace="dropdown",this.defaults={target:null,toggleEvent:"click",height:!1,width:!1,animationOpen:"slideDown",animationClose:"slideUp",caretUp:!1,callbacks:["open","opened","close","closed"]},t.apply(this,arguments),this.utils=new t.Utils,this.detect=new t.Detect,this.start()},t.Dropdown.prototype={start:function(){this.buildClose(),this.buildCaret(),this.detect.isMobile()&&this.buildMobileAnimation(),this.$target.addClass("hide"),this.$element.on(this.opts.toggleEvent+"."+this.namespace,$.proxy(this.toggle,this))},stop:function(){this.$element.off("."+this.namespace),this.$target.removeClass("open").addClass("hide"),this.disableEvents()},buildMobileAnimation:function(){this.opts.animationOpen="fadeIn",this.opts.animationClose="fadeOut"},buildClose:function(){this.$close=this.$target.find(".close")},buildCaret:function(){this.$caret=this.getCaret(),this.buildCaretPosition()},buildCaretPosition:function(){var t=this.$element.offset().top+this.$element.innerHeight()+this.$target.innerHeight();$(document).height()>t||(this.opts.caretUp=!0,this.$caret.addClass("up"))},getCaret:function(){return this.$element.find(".caret")},toggleCaretOpen:function(){this.opts.caretUp?this.$caret.removeClass("up").addClass("down"):this.$caret.removeClass("down").addClass("up")},toggleCaretClose:function(){this.opts.caretUp?this.$caret.removeClass("down").addClass("up"):this.$caret.removeClass("up").addClass("down")},toggle:function(t){this.isOpened()?this.close(t):this.open(t)},open:function(t){t&&t.preventDefault(),this.callback("open"),$(".dropdown").removeClass("open").addClass("hide"),this.opts.height&&this.$target.css("min-height",this.opts.height+"px"),this.opts.width&&this.$target.width(this.opts.width),this.setPosition(),this.toggleCaretOpen(),this.$target.animation(this.opts.animationOpen,$.proxy(this.onOpened,this))},close:function(t){if(this.isOpened()){if(t){if(this.shouldNotBeClosed(t.target))return;t.preventDefault()}this.utils.enableBodyScroll(),this.callback("close"),this.toggleCaretClose(),this.$target.animation(this.opts.animationClose,$.proxy(this.onClosed,this))}},onClosed:function(){this.$target.removeClass("open"),this.disableEvents(),this.callback("closed")},onOpened:function(){this.$target.addClass("open"),this.enableEvents(),this.callback("opened")},isOpened:function(){return this.$target.hasClass("open")},enableEvents:function(){this.detect.isDesktop()&&this.$target.on("mouseover."+this.namespace,$.proxy(this.utils.disableBodyScroll,this.utils)).on("mouseout."+this.namespace,$.proxy(this.utils.enableBodyScroll,this.utils)),$(document).on("scroll."+this.namespace,$.proxy(this.setPosition,this)),$(window).on("resize."+this.namespace,$.proxy(this.setPosition,this)),$(document).on("click."+this.namespace+" touchstart."+this.namespace,$.proxy(this.close,this)),$(document).on("keydown."+this.namespace,$.proxy(this.handleKeyboard,this)),this.$target.find('[data-action="dropdown-close"]').on("click."+this.namespace,$.proxy(this.close,this))},disableEvents:function(){this.$target.off("."+this.namespace),$(document).off("."+this.namespace),$(window).off("."+this.namespace)},handleKeyboard:function(t){27===t.which&&this.close(t)},shouldNotBeClosed:function(t){return"dropdown-close"===$(t).attr("data-action")||t===this.$close[0]?!1:0!==$(t).closest(".dropdown").length},isNavigationFixed:function(){return 0!==this.$element.closest(".fixed").length},getPlacement:function(t){return $(document).height()<t?"top":"bottom"},getOffset:function(t){return this.isNavigationFixed()?this.$element.position():this.$element.offset()},getPosition:function(){return this.isNavigationFixed()?"fixed":"absolute"},setPosition:function(){if(this.detect.isMobile())return void this.$target.addClass("dropdown-mobile");var t,e=this.getPosition(),s=this.getOffset(e),i=this.$target.innerHeight(),n=this.$target.innerWidth(),o=this.getPlacement(s.top+i+this.$element.innerHeight()),a=$(window).width()<s.left+n?n-this.$element.innerWidth():0,h=s.left-a;"bottom"===o?(this.isOpened()||this.$caret.removeClass("up").addClass("down"),this.opts.caretUp=!1,t=s.top+this.$element.outerHeight()+1):(this.opts.animationOpen="show",this.opts.animationClose="hide",this.isOpened()||this.$caret.addClass("up").removeClass("down"),this.opts.caretUp=!0,t=s.top-i-1),this.$target.css({position:e,top:t+"px",left:h+"px"})}},t.Dropdown.inherits(t),t.Plugin.create("Dropdown"),t.Plugin.autoload("Dropdown")}(Kube),function(t){t.Tabs=function(e,s){this.namespace="tabs",this.defaults={equals:!1,active:!1,live:!1,hash:!0,callbacks:["init","next","prev","open","opened","close","closed"]},t.apply(this,arguments),this.start()},t.Tabs.prototype={start:function(){this.opts.live!==!1&&this.buildLiveTabs(),this.tabsCollection=[],this.hashesCollection=[],this.currentHash=[],this.currentItem=!1,this.$items=this.getItems(),this.$items.each($.proxy(this.loadItems,this)),this.$tabs=this.getTabs(),this.currentHash=this.getLocationHash(),this.closeAll(),this.setActiveItem(),this.setItemHeight(),this.callback("init")},getTabs:function(){return $(this.tabsCollection).map(function(){return this.toArray()})},getItems:function(){return this.$element.find("a")},loadItems:function(t,e){var s=this.getItem(e);s.$el.attr("rel",s.hash),this.collectItem(s),s.$parent.hasClass("active")&&(this.currentItem=s,this.opts.active=s.hash),s.$el.on("click.tabs",$.proxy(this.open,this))},collectItem:function(t){this.tabsCollection.push(t.$tab),this.hashesCollection.push(t.hash)},buildLiveTabs:function(){var t=$(this.opts.live);0!==t.length&&(this.$liveTabsList=$("<ul />"),t.each($.proxy(this.buildLiveItem,this)),this.$element.html("").append(this.$liveTabsList))},buildLiveItem:function(t,e){var s=$(e),i=$("<li />"),n=$("<a />"),o=t+1;s.attr("id",this.getLiveItemId(s,o));var a="#"+s.attr("id"),h=this.getLiveItemTitle(s);n.attr("href",a).attr("rel",a).text(h),i.append(n),this.$liveTabsList.append(i)},getLiveItemId:function(t,e){return"undefined"==typeof t.attr("id")?this.opts.live.replace(".","")+e:t.attr("id")},getLiveItemTitle:function(t){return"undefined"==typeof t.attr("data-title")?t.attr("id"):t.attr("data-title")},setActiveItem:function(){this.currentHash?(this.currentItem=this.getItemBy(this.currentHash),this.opts.active=this.currentHash):this.opts.active===!1&&(this.currentItem=this.getItem(this.$items.first()),this.opts.active=this.currentItem.hash),this.addActive(this.currentItem)},addActive:function(t){t.$parent.addClass("active"),t.$tab.removeClass("hide").addClass("open"),this.currentItem=t},removeActive:function(t){t.$parent.removeClass("active"),t.$tab.addClass("hide").removeClass("open"),this.currentItem=!1},next:function(t){t&&t.preventDefault();var e=this.getItem(this.fetchElement("next"));this.open(e.hash),this.callback("next",e)},prev:function(t){t&&t.preventDefault();var e=this.getItem(this.fetchElement("prev"));this.open(e.hash),this.callback("prev",e)},fetchElement:function(t){var e;if(this.currentItem!==!1){if(e=this.currentItem.$parent[t]().find("a"),0===e.length)return}else e=this.$items[0];return e},open:function(t,e){if("undefined"!=typeof t){"object"==typeof t&&t.preventDefault();var s="object"==typeof t?this.getItem(t.target):this.getItemBy(t);this.closeAll(),this.callback("open",s),this.addActive(s),this.pushStateOpen(e,s),this.callback("opened",s)}},pushStateOpen:function(t,e){t!==!1&&this.opts.hash!==!1&&history.pushState(!1,!1,e.hash)},close:function(t){var e=this.getItemBy(t);e.$parent.hasClass("active")&&(this.callback("close",e),this.removeActive(e),this.pushStateClose(),this.callback("closed",e))},pushStateClose:function(){this.opts.hash!==!1&&history.pushState(!1,!1," ")},closeAll:function(){this.$tabs.removeClass("open").addClass("hide"),this.$items.parent().removeClass("active")},getItem:function(t){var e={};return e.$el=$(t),e.hash=e.$el.attr("href"),e.$parent=e.$el.parent(),e.$tab=$(e.hash),e},getItemBy:function(t){var e="number"==typeof t?this.$items.eq(t-1):this.$element.find('[rel="'+t+'"]');return this.getItem(e)},getLocationHash:function(){return this.opts.hash===!1?!1:this.isHash()?top.location.hash:!1},isHash:function(){return!(""===top.location.hash||-1===$.inArray(top.location.hash,this.hashesCollection))},setItemHeight:function(){if(this.opts.equals){var t=this.getItemMaxHeight()+"px";this.$tabs.css("min-height",t)}},getItemMaxHeight:function(){var t=0;return this.$tabs.each(function(){var e=$(this).height();t=e>t?e:t}),t}},t.Tabs.inherits(t),t.Plugin.create("Tabs"),t.Plugin.autoload("Tabs")}(Kube),function(t){t.modalcurrent=null,t.modalwindow=function(e){var s=t.extend({},e,{show:!0}),i=t("<span />");i.modal(s)}}(jQuery),function(t){t.Modal=function(e,s){this.namespace="modal",this.defaults={target:null,show:!1,url:!1,header:!1,width:"600px",height:!1,maxHeight:!1,position:"center",overlay:!0,appendForms:!1,appendFields:!1,animationOpen:"show",animationClose:"hide",callbacks:["open","opened","close","closed"]},t.apply(this,arguments),this.utils=new t.Utils,this.detect=new t.Detect,this.start()},t.Modal.prototype={start:function(){this.hasTarget()&&(this.opts.show?this.load():this.$element.on("click."+this.namespace,$.proxy(this.load,this)))},buildModal:function(){this.$modal=this.$target.find(".modal"),this.$header=this.$target.find(".modal-header"),this.$close=this.$target.find(".close"),this.$body=this.$target.find(".modal-body")},buildOverlay:function(){this.opts.overlay!==!1&&(0!==$("#modal-overlay").length?this.$overlay=$("#modal-overlay"):(this.$overlay=$('<div id="modal-overlay">').addClass("hide"),$("body").prepend(this.$overlay)),this.$overlay.addClass("overlay"))},buildHeader:function(){this.opts.header&&this.$header.html(this.opts.header)},load:function(t){this.buildModal(),this.buildOverlay(),this.buildHeader(),this.opts.url?this.buildContent():this.open(t)},open:function(t){t&&t.preventDefault(),this.isOpened()||(this.detect.isMobile()&&(this.opts.width="96%"),this.opts.overlay&&this.$overlay.removeClass("hide"),this.$target.removeClass("hide"),this.$modal.removeClass("hide"),this.enableEvents(),this.findActions(),this.resize(),$(window).on("resize."+this.namespace,$.proxy(this.resize,this)),this.detect.isDesktop()&&this.utils.disableBodyScroll(),this.$modal.find("input[type=text],input[type=url],input[type=email]").on("keydown."+this.namespace,$.proxy(this.handleEnter,this)),this.callback("open"),this.$modal.animation(this.opts.animationOpen,$.proxy(this.onOpened,this)))},close:function(t){if(this.$modal&&this.isOpened()){if(t){if(this.shouldNotBeClosed(t.target))return;t.preventDefault()}this.callback("close"),this.disableEvents(),this.$modal.animation(this.opts.animationClose,$.proxy(this.onClosed,this)),this.opts.overlay&&this.$overlay.animation(this.opts.animationClose)}},onOpened:function(){this.$modal.addClass("open"),this.callback("opened"),$.modalcurrent=this},onClosed:function(){this.callback("closed"),this.$target.addClass("hide"),this.$modal.removeClass("open"),this.detect.isDesktop()&&this.utils.enableBodyScroll(),this.$body.css("height",""),$.modalcurrent=null},isOpened:function(){return this.$modal.hasClass("open")},getData:function(){var e=new t.FormData(this);return e.set(""),e.get()},buildContent:function(){$.ajax({url:this.opts.url+"?"+(new Date).getTime(),cache:!1,type:"post",data:this.getData(),success:$.proxy(function(t){this.$body.html(t),this.open()},this)})},buildWidth:function(){var t=this.opts.width,e="2%",s="2%",i=t.match(/%$/);parseInt(this.opts.width)>$(window).width()&&!i?t="96%":i||(e="16px",s="16px"),this.$modal.css({width:t,"margin-top":e,"margin-bottom":s})},buildPosition:function(){if("center"===this.opts.position){var t=$(window).height(),e=this.$modal.outerHeight(),s=t/2-e/2+"px";this.detect.isMobile()?s="2%":e>t&&(s="16px"),this.$modal.css("margin-top",s)}},buildHeight:function(){var t=$(window).height();if(this.opts.maxHeight){var e=parseInt(this.$body.css("padding-top"))+parseInt(this.$body.css("padding-bottom")),s=parseInt(this.$modal.css("margin-top"))+parseInt(this.$modal.css("margin-bottom")),i=t-this.$header.innerHeight()-e-s;this.$body.height(i)}else this.opts.height!==!1&&this.$body.css("height",this.opts.height);var n=this.$modal.outerHeight();n>t&&(this.opts.animationOpen="show",this.opts.animationClose="hide")},resize:function(){this.buildWidth(),this.buildPosition(),this.buildHeight()},enableEvents:function(){this.$close.on("click."+this.namespace,$.proxy(this.close,this)),$(document).on("keyup."+this.namespace,$.proxy(this.handleEscape,this)),this.$target.on("click."+this.namespace,$.proxy(this.close,this))},disableEvents:function(){this.$close.off("."+this.namespace),$(document).off("."+this.namespace),this.$target.off("."+this.namespace),$(window).off("."+this.namespace)},findActions:function(){this.$body.find('[data-action="modal-close"]').on("mousedown."+this.namespace,$.proxy(this.close,this))},setHeader:function(t){this.$header.html(t)},setContent:function(t){this.$body.html(t)},setWidth:function(t){this.opts.width=t,this.resize()},getModal:function(){return this.$modal},getBody:function(){return this.$body},getHeader:function(){return this.$header},handleEnter:function(t){13===t.which&&(t.preventDefault(),this.close(!1))},handleEscape:function(t){return 27===t.which?this.close(!1):!0},shouldNotBeClosed:function(t){return"modal-close"===$(t).attr("data-action")||t===this.$close[0]?!1:0!==$(t).closest(".modal").length}},t.Modal.inherits(t),t.Plugin.create("Modal"),t.Plugin.autoload("Modal")}(Kube);
@@ -0,0 +1,585 @@
1
+ // BREAKPOINTS
2
+ // ---------------------------------------------------------------------------
3
+ $sm: 768px !default;
4
+ $md: 1024px !default;
5
+ $lg: 1200px !default;
6
+
7
+
8
+ // WIDTH
9
+ // ---------------------------------------------------------------------------
10
+ $w-small: 480px !default;
11
+ $w-medium: 600px !default;
12
+ $w-big: 740px !default;
13
+ $w-large: 840px !default;
14
+
15
+
16
+ // Z-INDEX
17
+ // ---------------------------------------------------------------------------
18
+ $z-over-content: 100 !default;
19
+ $z-over-control: 200 !default;
20
+ $z-over-page: 300 !default;
21
+ $z-over-screen: 400 !default;
22
+ $z-over-all: 500 !default;
23
+
24
+
25
+ // GRID
26
+ // ---------------------------------------------------------------------------
27
+ $grid-columns: 12 !default;
28
+ $grid-gutter: 2% !default;
29
+
30
+
31
+ // FONT FAMILY
32
+ // ---------------------------------------------------------------------------
33
+ $text-font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif !default;
34
+ $monospace-font-family: Consolas, Monaco, 'Courier New', monospace !default;
35
+ $headings-font-family: $text-font-family !default;
36
+ $buttons-font-family: $text-font-family !default;
37
+ $input-font-family: $text-font-family !default;
38
+
39
+
40
+ // COLORS
41
+ // ---------------------------------------------------------------------------
42
+
43
+ // Text
44
+ $color-text: #313439 !default;
45
+ $color-headings: #0d0d0e !default;
46
+
47
+ // Links
48
+ $color-link: #3794de !default;
49
+ $color-link-hover: #f03c69 !default;
50
+
51
+ // Button
52
+ $color-button-primary: #1c86f2 !default;
53
+ $color-button-primary-text: #fff !default;
54
+ $color-button-secondary: #313439 !default;
55
+ $color-button-secondary-text: #fff !default;
56
+
57
+ // States
58
+ $color-error: #f03c69 !default;
59
+ $color-success: #35beb1 !default;
60
+ $color-warning: #f7ba45 !default;
61
+ $color-focus: #1c86f2 !default;
62
+
63
+ // Extra
64
+ $color-inverted: #fff !default;
65
+ $color-highlight: #edf2ff !default; // color-focus 15% opacity
66
+
67
+ // Grayscale
68
+ $color-black: #0d0d0e !default;
69
+ $color-darkgray: #313439 !default;
70
+ $color-midgray: #676b72 !default;
71
+ $color-gray: #bdbdbd !default;
72
+ $color-lightgray: #d4d4d4 !default;
73
+ $color-silver: #e0e1e1 !default;
74
+ $color-aluminum: #f8f8f8 !default;
75
+
76
+
77
+ // TEXT
78
+ // ---------------------------------------------------------------------------
79
+
80
+ // Font Size
81
+ $font-size: 16px !default;
82
+ $font-size-smaller: $font-size - 4px !default;
83
+ $font-size-small: $font-size - 2px !default;
84
+ $font-size-big: $font-size + 2px !default;
85
+ $font-size-large: $font-size + 4px !default;
86
+
87
+ // Baseline
88
+ $base-line: 24px !default;
89
+ $base-line-smaller: 20px !default;
90
+ $base-line-small: 20px !default;
91
+ $base-line-big: 28px !default;
92
+ $base-line-large: 32px !default;
93
+
94
+ // Margin
95
+ $text-margin-bottom: $font-size !default;
96
+
97
+
98
+ // HEADINGS
99
+ // ---------------------------------------------------------------------------
100
+
101
+ // Font Size
102
+ // By default: 60, 48, 36, 24, 21, 18, 16
103
+ $heading-font-size-title: 60px !default;
104
+ $heading-font-size-1: 48px !default;
105
+ $heading-font-size-2: 36px !default;
106
+ $heading-font-size-3: 24px !default;
107
+ $heading-font-size-4: 21px !default;
108
+ $heading-font-size-5: 18px !default;
109
+ $heading-font-size-6: 16px !default;
110
+
111
+ // Baseline
112
+ $heading-base-line-title: 64px !default;
113
+ $heading-base-line-1: 52px !default;
114
+ $heading-base-line-2: 40px !default;
115
+ $heading-base-line-3: 32px !default;
116
+ $heading-base-line-4: 32px !default;
117
+ $heading-base-line-5: 28px !default;
118
+ $heading-base-line-6: 24px !default;
119
+
120
+ // Margin
121
+ $heading-margin-bottom: $font-size !default;
122
+
123
+
124
+ // TABLES
125
+ // ---------------------------------------------------------------------------
126
+
127
+ // Font Size
128
+ $table-font-size: $font-size - 1px !default;
129
+
130
+ // Baseline
131
+ $table-base-line: 24px !default;
132
+
133
+ // Padding
134
+ $table-padding-tb: 1rem !default;
135
+ $table-padding-rl: 1rem !default;
136
+
137
+ // Border
138
+ $table-border: 1px solid rgba(0, 0, 0, .05) !default;
139
+
140
+ // Striped
141
+ $table-background-striped: $color-aluminum !default;
142
+
143
+
144
+ // BUTTONS
145
+ // ---------------------------------------------------------------------------
146
+
147
+ // Font Size
148
+ $button-font-size: 15px !default;
149
+ $button-font-size-smaller: $button-font-size - 4px !default;
150
+ $button-font-size-small: $button-font-size - 2px !default;
151
+ $button-font-size-big: $button-font-size + 2px !default;
152
+ $button-font-size-large: $button-font-size + 4px !default;
153
+
154
+ // Baseline
155
+ $button-base-line: 20px !default;
156
+
157
+ // Height
158
+ $button-height: 40px !default;
159
+ $button-height-small: 36px !default;
160
+ $button-height-big: 48px !default;
161
+ $button-height-large: 56px !default;
162
+
163
+ // Padding
164
+ $button-padding-tb: 8px !default;
165
+ $button-padding-rl: 20px !default;
166
+ $button-padding-small-tb: 6px !default;
167
+ $button-padding-small-rl: 20px !default;
168
+ $button-padding-big-tb: 13px !default;
169
+ $button-padding-big-rl: 24px !default;
170
+ $button-padding-large-tb: 20px !default;
171
+ $button-padding-large-rl: 36px !default;
172
+
173
+ // Weight
174
+ $button-font-weight: 500 !default;
175
+
176
+ // Radius
177
+ $button-border-radius: 3px !default;
178
+
179
+
180
+ // INPUTS
181
+ // ---------------------------------------------------------------------------
182
+
183
+ // Font Size
184
+ $input-font-size: 15px !default;
185
+ $input-font-size-smaller: $input-font-size - 4px !default;
186
+ $input-font-size-small: $input-font-size - 2px !default;
187
+ $input-font-size-big: $input-font-size + 2px !default;
188
+ $input-font-size-large: $input-font-size + 4px !default;
189
+
190
+ // Baseline
191
+ $textarea-base-line: $base-line !default;
192
+
193
+ // Height
194
+ $input-height: 40px !default;
195
+ $input-height-small: 36px !default;
196
+ $input-height-big: 48px !default;
197
+ $input-height-large: 56px !default;
198
+
199
+ // Padding
200
+ $input-padding-rl: 12px !default;
201
+ $input-padding-small-rl: 12px !default;
202
+ $input-padding-big-rl: 12px !default;
203
+ $input-padding-large-rl: 12px !default;
204
+ $input-textarea-padding-tb: 8px !default;
205
+
206
+ // States
207
+ $input-border-width: 1px !default;
208
+ $input-border-color: $color-lightgray !default;
209
+ $input-background-color: #fff !default;
210
+ $input-box-shadow: none !default;
211
+
212
+ $input-focus-background-color: #fff !default;
213
+ $input-focus-border-color: $color-focus !default;
214
+ $input-focus-box-shadow: 0 0 1px $color-focus inset !default;
215
+
216
+ $input-error-background-color: $color-error !default;
217
+ $input-error-border-color: $color-error !default;
218
+ $input-error-focus-box-shadow: 0 0 1px $color-error inset !default;
219
+
220
+ $input-success-background-color: $color-success !default;
221
+ $input-success-border-color: $color-success !default;
222
+ $input-success-focus-box-shadow: 0 0 1px $color-success inset !default;
223
+
224
+ $input-disabled-opacity: .6;
225
+ $input-disabled-color: rgba(0, 0, 0, .5);
226
+
227
+ // Radius
228
+ $input-border-radius: 3px !default;
229
+
230
+
231
+ // OVERLAY
232
+ // ---------------------------------------------------------------------------
233
+ $overlay-background-color: rgba(#fff, .95);
234
+ @mixin breakpoint($min: 0, $max: 0) {
235
+
236
+ $type: type-of($min);
237
+
238
+ @if $type == string
239
+ {
240
+ @if $min == sm
241
+ {
242
+ @media (max-width: $sm) { @content; }
243
+ }
244
+ @else if $min == md
245
+ {
246
+ @media (min-width: $sm) and (max-width: $md) { @content; }
247
+ }
248
+ @else if $min == lg
249
+ {
250
+ @media (min-width: $lg) { @content; }
251
+ }
252
+ }
253
+ @else if $type == number
254
+ {
255
+ $query: "all" !default;
256
+ @if $min != 0 and $max != 0 { $query: "(min-width: #{$min}) and (max-width: #{$max})"; }
257
+ @else if $min != 0 and $max == 0 { $query: "(min-width: #{$min})"; }
258
+ @else if $min == 0 and $max != 0 { $query: "(max-width: #{$max})"; }
259
+ @media #{$query} { @content; }
260
+ }
261
+ }
262
+ // Text
263
+ @mixin text-font($font) {
264
+ body {
265
+ font-family: #{$font};
266
+ }
267
+ }
268
+
269
+ // Headings
270
+ @mixin headings-font($font) {
271
+ h1.title, h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
272
+ font-family: #{$font};
273
+ }
274
+ }
275
+
276
+ // Buttons
277
+ @mixin buttons-font($font) {
278
+ button, .button {
279
+ font-family: #{$font};
280
+ }
281
+ }
282
+
283
+ // Inputs
284
+ @mixin inputs-font($font) {
285
+ input, textarea, select {
286
+ font-family: #{$font};
287
+ }
288
+ }
289
+ // display
290
+ @mixin flex {
291
+ display: flex;
292
+ }
293
+
294
+ // basis
295
+ @mixin flex-basis($width) {
296
+ flex-basis: $width;
297
+ }
298
+
299
+ // items wrap
300
+ @mixin flex-items-wrap {
301
+ flex-wrap: wrap;
302
+ }
303
+
304
+ // items nowrap
305
+ @mixin flex-items-nowrap {
306
+ flex-wrap: nowrap;
307
+ }
308
+
309
+ // items row
310
+ @mixin flex-items-row {
311
+ flex-direction: row;
312
+ }
313
+
314
+ // items columns
315
+ @mixin flex-items-column {
316
+ flex-direction: column;
317
+ }
318
+
319
+ // items left
320
+ @mixin flex-items-left {
321
+ justify-content: flex-start;
322
+ }
323
+
324
+ // items right
325
+ @mixin flex-items-right {
326
+ justify-content: flex-end;
327
+ }
328
+
329
+ // items center
330
+ @mixin flex-items-center {
331
+ justify-content: center;
332
+ }
333
+
334
+ // items between
335
+ @mixin flex-items-space-between {
336
+ justify-content: space-between;
337
+ }
338
+
339
+ // items around
340
+ @mixin flex-items-space-around {
341
+ justify-content: space-around;
342
+ }
343
+
344
+ // items vertical top
345
+ @mixin flex-items-top {
346
+ align-items: flex-start;
347
+ }
348
+
349
+ // items vertical middle
350
+ @mixin flex-items-middle {
351
+ align-items: center;
352
+ }
353
+
354
+ // items vertical bottom
355
+ @mixin flex-items-bottom {
356
+ align-items: flex-end;
357
+ }
358
+
359
+ // item grow
360
+ @mixin flex-item-grow($grow: 0) {
361
+ flex-grow: $grow;
362
+ }
363
+
364
+
365
+ // item auto
366
+ @mixin flex-item-auto {
367
+ flex: auto;
368
+ }
369
+
370
+ // item one
371
+ @mixin flex-item-one {
372
+ flex: 1;
373
+ }
374
+
375
+ // item shrink
376
+ @mixin flex-item-shrink($num: 0) {
377
+ flex-shrink: $num;
378
+ }
379
+
380
+ // item width
381
+ @mixin flex-item-width($width) {
382
+ flex: 0 0 $width;
383
+
384
+ @include breakpoint(sm) {
385
+ flex: 0 0 100% !important;
386
+ }
387
+ }
388
+ // Make Row
389
+ @mixin grid-row {
390
+ @include flex;
391
+ @include flex-items-row;
392
+ @include flex-items-wrap;
393
+
394
+ @include breakpoint(sm) {
395
+ @include flex-items-column;
396
+ @include flex-items-nowrap;
397
+ }
398
+ }
399
+
400
+ // Generate Columns
401
+ @mixin generate-grid-columns {
402
+
403
+ @for $i from 1 through $grid-columns
404
+ {
405
+ .col-#{$i} {
406
+ width: 100% / $grid-columns * $i;
407
+ }
408
+ .offset-#{$i} {
409
+ $width: 100% / $grid-columns * $i;
410
+ margin-left: $width;
411
+ }
412
+
413
+ }
414
+
415
+ .gutters {
416
+ @for $i from 1 through $grid-columns
417
+ {
418
+ & > .col-#{$i} {
419
+ $width: 100% / $grid-columns * $i;
420
+ width: calc(#{$width} - #{$grid-gutter});
421
+ }
422
+ & > .offset-#{$i} {
423
+ $width: 100% / $grid-columns * $i;
424
+ margin-left: calc(#{$width} + #{$grid-gutter}) !important;
425
+ }
426
+ }
427
+ }
428
+ }
429
+
430
+
431
+ // Grid Media Columns
432
+ @mixin grid-media-columns($num) {
433
+
434
+ -webkit-column-count: $num;
435
+ -moz-column-count: $num;
436
+ column-count: $num;
437
+
438
+ -webkit-column-gap: $grid-gutter;
439
+ -moz-column-gap: $grid-gutter;
440
+ column-gap: $grid-gutter;
441
+
442
+ & > div {
443
+ display: inline-block;
444
+ width: 100%;
445
+ }
446
+
447
+ @include breakpoint(sm) {
448
+ -webkit-column-count: 1;
449
+ -moz-column-count: 1;
450
+ column-count: 1;
451
+ }
452
+ }
453
+ // Clearfix
454
+ @mixin clearfix {
455
+ &:after {
456
+ content: '';
457
+ display: table;
458
+ clear: both;
459
+ }
460
+ }
461
+
462
+ // Transition
463
+ @mixin transition($transition: all linear .2s) {
464
+ -moz-transition: $transition;
465
+ transition: $transition;
466
+ }
467
+
468
+ // transform
469
+ @mixin transform($transforms) {
470
+ -moz-transform: $transforms;
471
+ -ms-transform: $transforms;
472
+ -webkit-transform: $transforms;
473
+ transform: $transforms;
474
+ }
475
+
476
+ // blur
477
+ @mixin blur($radius) {
478
+ -webkit-filter: blur($radius);
479
+ -moz-filter: blur($radius);
480
+ -ms-filter: blur($radius);
481
+ filter: blur($radius);
482
+ }
483
+
484
+ // striped
485
+ @mixin striped($color: rgba(255, 255, 255, .2), $angle: 45deg) {
486
+ background-image: -webkit-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
487
+ background-image: -o-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
488
+ background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
489
+ }
490
+
491
+ // animation
492
+ @mixin animation($animation) {
493
+ -webkit-animation: $animation;
494
+ -moz-animation: $animation;
495
+ animation: $animation;
496
+ }
497
+
498
+
499
+ // Retina Images
500
+ @mixin retina-background-image($file, $type, $width: auto, $height: auto) {
501
+
502
+ background-repeat: no-repeat;
503
+ background-image: url($file + '.' + $type);
504
+
505
+ @media
506
+ only screen and (-webkit-min-device-pixel-ratio: 2),
507
+ only screen and (min--moz-device-pixel-ratio: 2),
508
+ only screen and (-o-min-device-pixel-ratio: 2/1),
509
+ only screen and (min-device-pixel-ratio: 2),
510
+ only screen and (min-resolution: 192dpi),
511
+ only screen and (min-resolution: 2dppx) {
512
+ background-image: url($file + '-2x.' + $type);
513
+ background-size: $width $height;
514
+ }
515
+ }
516
+ @mixin button($color-text, $color-back)
517
+ {
518
+ color: $color-text;
519
+ background-color: $color-back;
520
+
521
+ &:hover {
522
+ color: $color-text;
523
+ background-color: lighten($color-back, 20%);
524
+ }
525
+ &:disabled,
526
+ &.disabled {
527
+ color: rgba($color-text, .7);
528
+ background-color: rgba($color-back, .7);
529
+ }
530
+ &.outline {
531
+ background: none;
532
+ color: $color-back;
533
+ border-color: $color-back;
534
+
535
+ &:hover {
536
+ color: rgba($color-back, .6);
537
+ border-color: rgba($color-back, .5);
538
+ }
539
+ &:disabled,
540
+ &.disabled {
541
+ background: none;
542
+ color: rgba($color-back, .7);
543
+ border-color: rgba($color-back, .5);
544
+ }
545
+ }
546
+ }
547
+ // vertical
548
+ @mixin gradient-vertical($start: #555, $end: #333) {
549
+ background-color: $start;
550
+ background-image: linear-gradient(to bottom, $start 0%, $end 100%);
551
+ }
552
+
553
+ // vertical to opacity
554
+ @mixin gradient-vertical-to-opacity($color, $opacity: 0) {
555
+ $rgba: rgba(red($color), green($color), blue($color), $opacity);
556
+ background: linear-gradient(to bottom, $color 0%, $rgba 100%);
557
+ }
558
+
559
+ // horizontal
560
+ @mixin gradient-horizontal($start: #555, $end: #333) {
561
+ background-color: $start;
562
+ background: linear-gradient(to right, $start 0%, $end 100%);
563
+ }
564
+
565
+ // horizontal to opacity
566
+ @mixin gradient-horizontal-to-opacity($color: #555, $opacity: 0) {
567
+ $rgba: rgba(red($color), green($color), blue($color), $opacity);
568
+ background: linear-gradient(to right, $color 0%, $rgba 100%);
569
+ }
570
+
571
+ // radial
572
+ @mixin gradient-radial($inner: #555, $outer: #333) {
573
+ background-image: radial-gradient(circle, $inner, $outer);
574
+ }
575
+ @mixin label($text, $back) {
576
+ background: $back;
577
+ color: $text;
578
+
579
+ &.tag,
580
+ &.outline {
581
+ background: none;
582
+ border-color: $back;
583
+ color: $back;
584
+ }
585
+ }
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "kube_for_rails"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here