├── .gitignore ├── assets ├── libs │ ├── bootswatch │ │ ├── .gitignore │ │ ├── flatly │ │ │ ├── thumbnail.png │ │ │ ├── bootswatch.less │ │ │ └── variables.less │ │ ├── .travis.yml │ │ └── .bower.json │ ├── bootstrap │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ └── glyphicons-halflings-regular.woff │ │ └── css │ │ │ ├── bootstrap-theme-3.0.3.min.css │ │ │ └── bootstrap-theme-3.0.3.css │ ├── messenger │ │ ├── js │ │ │ ├── messenger-theme-flat.js │ │ │ ├── messenger-theme-future.js │ │ │ └── messenger.min.js │ │ └── css │ │ │ ├── messenger.css │ │ │ ├── messenger-theme-block.css │ │ │ ├── messenger-theme-ice.css │ │ │ ├── messenger-spinner.css │ │ │ ├── messenger-theme-air.css │ │ │ ├── messenger-theme-flat.css │ │ │ └── messenger-theme-future.css │ ├── glow.js │ └── vex │ │ ├── vex.combined.min.js │ │ ├── vex.css │ │ └── vex-theme-default.css ├── css │ └── main.css └── js │ ├── atomDB.js │ └── main.js ├── dev ├── nginxConfig └── buildVagrant.sh ├── Vagrantfile ├── README.md ├── LICENSE └── index.html /.gitignore: -------------------------------------------------------------------------------- 1 | .vagrant/ 2 | -------------------------------------------------------------------------------- /assets/libs/bootswatch/.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | components 3 | node_modules 4 | build 5 | _site 6 | *.lock -------------------------------------------------------------------------------- /assets/libs/bootswatch/flatly/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/es/orgoShmorgo/HEAD/assets/libs/bootswatch/flatly/thumbnail.png -------------------------------------------------------------------------------- /assets/libs/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/es/orgoShmorgo/HEAD/assets/libs/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /assets/libs/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/es/orgoShmorgo/HEAD/assets/libs/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /assets/libs/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/es/orgoShmorgo/HEAD/assets/libs/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /dev/nginxConfig: -------------------------------------------------------------------------------- 1 | 2 | # the nginx server instance 3 | server { 4 | listen 80; 5 | #server_name localhost; 6 | #server_name yourdomain.com yourdomain; 7 | root /vagrant; 8 | } 9 | -------------------------------------------------------------------------------- /assets/libs/bootswatch/.travis.yml: -------------------------------------------------------------------------------- 1 | branches: 2 | only: 3 | - master 4 | - gh-pages 5 | 6 | language: node_js 7 | 8 | node_js: 9 | - "0.8.11" 10 | 11 | before_install: 12 | - npm install -g grunt-cli recess bower 13 | - bower install 14 | 15 | script: "grunt swatch" -------------------------------------------------------------------------------- /dev/buildVagrant.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | apt-get update 3 | apt-get install -y nginx vim git-core 4 | 5 | # Setting up nginx 6 | rm /etc/nginx/sites-enabled/default 7 | cp /vagrant/dev/nginxConfig /etc/nginx/sites-enabled/ 8 | sed -i 's/sendfile on;/sendfile off;/g' /etc/nginx/nginx.conf 9 | service nginx restart 10 | -------------------------------------------------------------------------------- /Vagrantfile: -------------------------------------------------------------------------------- 1 | # -*- mode: ruby -*- 2 | # vi: set ft=ruby : 3 | 4 | Vagrant.configure("2") do |config| 5 | config.vm.box = "precise32" 6 | config.vm.network :forwarded_port, guest: 80, host: 8080 7 | #config.vm.network :forwarded_port, guest: 3000, host: 3000 8 | config.vm.provision :shell, :path => "dev/buildVagrant.sh" 9 | end 10 | -------------------------------------------------------------------------------- /assets/css/main.css: -------------------------------------------------------------------------------- 1 | .link line { 2 | stroke: #696969; 3 | } 4 | 5 | .selectedNode { 6 | stroke: rgb(31, 117, 196) !important; 7 | stroke-width: 5px !important; 8 | opacity: 0.3; 9 | } 10 | 11 | .link line.double { 12 | stroke: #fff; 13 | stroke-width: 2px; 14 | } 15 | 16 | .link line.triple { 17 | stroke-width: 3px; 18 | } 19 | 20 | .node circle { 21 | stroke: #000; 22 | stroke-width: 1.5px; 23 | } 24 | 25 | .node text { 26 | font: 10px sans-serif; 27 | pointer-events: none; 28 | } 29 | -------------------------------------------------------------------------------- /assets/js/atomDB.js: -------------------------------------------------------------------------------- 1 | var atomDB = {}; 2 | 3 | atomDB ['C'] = { 4 | name: 'Carbon', 5 | symbol: 'C', 6 | lonePairs: 4, 7 | size: 12 8 | }; 9 | 10 | atomDB ['O'] = { 11 | name: 'Oxygen', 12 | symbol: 'O', 13 | lonePairs: 2, 14 | size: 12 15 | }; 16 | 17 | atomDB ['N'] = { 18 | name: 'Nitrogen', 19 | symbol: 'N', 20 | lonePairs: 3, 21 | size: 12 22 | }; 23 | 24 | atomDB ['Cl'] = { 25 | name: 'Chlorine', 26 | symbol: 'Cl', 27 | lonePairs: 1, 28 | size: 12 29 | }; 30 | 31 | atomDB ['Br'] = { 32 | name: 'Bromine', 33 | symbol: 'Br', 34 | lonePairs: 1, 35 | size: 12 36 | }; 37 | 38 | atomDB ['I'] = { 39 | name: 'Iodine', 40 | symbol: 'I', 41 | lonePairs: 1, 42 | size: 12 43 | }; 44 | 45 | atomDB ['F'] = { 46 | name: 'Fluorine', 47 | symbol: 'F', 48 | lonePairs: 1, 49 | size: 12 50 | }; -------------------------------------------------------------------------------- /assets/libs/bootswatch/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootswatch", 3 | "description": "Bootswatch is a collection of themes for Bootstrap.", 4 | "version": "3.0.2+2", 5 | "author": "Thomas Park", 6 | "homepage": "http://bootswatch.com", 7 | "repository": { 8 | "type": "git", 9 | "url": "git://github.com/thomaspark/bootswatch.git" 10 | }, 11 | "dependencies": { 12 | "bootstrap": "~3.0.2", 13 | "font-awesome": "~4.0.0" 14 | }, 15 | "licenses": [ 16 | { 17 | "type": "Apache-2.0", 18 | "url": "http://www.apache.org/licenses/LICENSE-2.0" 19 | } 20 | ], 21 | "_release": "3.0.2+2", 22 | "_resolution": { 23 | "type": "version", 24 | "tag": "v3.0.2+2", 25 | "commit": "226c4f61450ee35e868c2de1c1469cb720bbb8b5" 26 | }, 27 | "_source": "git://github.com/thomaspark/bootswatch.git", 28 | "_target": "*", 29 | "_originalSource": "bootswatch" 30 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | OrgoShmorgo 2 | ===================== 3 | [OrgoShmorgo](http://emils.github.io/orgoShmorgo/) is an organic molecule visualizer built using D3.js. 4 | 5 | Getting Started 6 | --------- 7 | OrgoShmorgo has [Vagrant](http://www.vagrantup.com/) manage all the development setup. Once you have Vagrant setup, simply run `vagrant up` in the root of your clone. You now have an OrgoShmrogo instance running on [localhost:8080](localhost:8080). 8 | 9 | 10 | Project Goals 11 | --------- 12 | The future goals of the project: 13 | 14 | - Fully IUPAC conformant naming engine 15 | - Addition of a lot more functional groups 16 | - Ability to create rings 17 | - Integration with Wikipedia to display data on created organic molecules 18 | 19 | Credit 20 | --------- 21 | Built on top of [mbostock's](https://github.com/mbostock) original [molecule example](http://bl.ocks.org/mbostock/3037015). 22 | 23 | 24 | License 25 | --------- 26 | 27 | MIT © [Emil Stolarsky](http://stolarsky.com/) 28 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 Emil Stolarsky 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /assets/libs/messenger/js/messenger-theme-flat.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var $, FlatMessage, spinner_template, 3 | __hasProp = {}.hasOwnProperty, 4 | __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; 5 | 6 | $ = jQuery; 7 | 8 | spinner_template = '
\n \n \n \n \n \n \n
'; 9 | 10 | FlatMessage = (function(_super) { 11 | 12 | __extends(FlatMessage, _super); 13 | 14 | function FlatMessage() { 15 | return FlatMessage.__super__.constructor.apply(this, arguments); 16 | } 17 | 18 | FlatMessage.prototype.template = function(opts) { 19 | var $message; 20 | $message = FlatMessage.__super__.template.apply(this, arguments); 21 | $message.append($(spinner_template)); 22 | return $message; 23 | }; 24 | 25 | return FlatMessage; 26 | 27 | })(window.Messenger.Message); 28 | 29 | window.Messenger.themes.flat = { 30 | Message: FlatMessage 31 | }; 32 | 33 | }).call(this); 34 | -------------------------------------------------------------------------------- /assets/libs/messenger/js/messenger-theme-future.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var $, FutureMessage, spinner_template, 3 | __hasProp = {}.hasOwnProperty, 4 | __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; 5 | 6 | $ = jQuery; 7 | 8 | spinner_template = '
\n \n \n \n \n \n \n
'; 9 | 10 | FutureMessage = (function(_super) { 11 | 12 | __extends(FutureMessage, _super); 13 | 14 | function FutureMessage() { 15 | return FutureMessage.__super__.constructor.apply(this, arguments); 16 | } 17 | 18 | FutureMessage.prototype.template = function(opts) { 19 | var $message; 20 | $message = FutureMessage.__super__.template.apply(this, arguments); 21 | $message.append($(spinner_template)); 22 | return $message; 23 | }; 24 | 25 | return FutureMessage; 26 | 27 | })(window.Messenger.Message); 28 | 29 | window.Messenger.themes.future = { 30 | Message: FutureMessage 31 | }; 32 | 33 | }).call(this); 34 | -------------------------------------------------------------------------------- /assets/libs/glow.js: -------------------------------------------------------------------------------- 1 | function glow(url) { 2 | var stdDeviation = 2, 3 | rgb = "#1F75C4", 4 | colorMatrix = "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"; 5 | 6 | if (!arguments.length) { 7 | url = "glow"; 8 | } 9 | 10 | function my() { 11 | 12 | var defs = this.append("defs"); 13 | 14 | var filter = defs.append("filter") 15 | .attr("id", url) 16 | .attr("x", "-20%") 17 | .attr("y", "-20%") 18 | .attr("width", "140%") 19 | .attr("height", "140%") 20 | .call(function() { 21 | this.append("feColorMatrix") 22 | .attr("type", "matrix") 23 | .attr("values", colorMatrix); 24 | this.append("feGaussianBlur") 25 | // .attr("in", "SourceGraphics") 26 | .attr("stdDeviation", stdDeviation) 27 | .attr("result", "coloredBlur"); 28 | }); 29 | 30 | filter.append("feMerge") 31 | .call(function() { 32 | this.append("feMergeNode") 33 | .attr("in", "coloredBlur"); 34 | this.append("feMergeNode") 35 | .attr("in", "SourceGraphic"); 36 | }); 37 | } 38 | 39 | my.rgb = function(value) { 40 | if (!arguments.length) return color; 41 | rgb = value; 42 | color = d3.rgb(value); 43 | var matrix = "0 0 0 red 0 0 0 0 0 green 0 0 0 0 blue 0 0 0 1 0"; 44 | colorMatrix = matrix 45 | .replace("red", color.r/256) 46 | .replace("green", color.g/256) 47 | .replace("blue", color.b/256); 48 | return my; 49 | }; 50 | 51 | my.stdDeviation = function(value) { 52 | if (!arguments.length) return stdDeviation; 53 | stdDeviation = value; 54 | return my; 55 | }; 56 | 57 | return my; 58 | } -------------------------------------------------------------------------------- /assets/libs/messenger/css/messenger.css: -------------------------------------------------------------------------------- 1 | /* line 4, ../../src/sass/messenger.sass */ 2 | ul.messenger { 3 | margin: 0; 4 | padding: 0; 5 | } 6 | /* line 8, ../../src/sass/messenger.sass */ 7 | ul.messenger li { 8 | list-style: none; 9 | margin: 0; 10 | padding: 0; 11 | } 12 | /* line 14, ../../src/sass/messenger.sass */ 13 | ul.messenger.messenger-empty { 14 | display: none; 15 | } 16 | /* line 17, ../../src/sass/messenger.sass */ 17 | ul.messenger .messenger-message { 18 | overflow: hidden; 19 | *zoom: 1; 20 | } 21 | /* line 20, ../../src/sass/messenger.sass */ 22 | ul.messenger .messenger-message.messenger-hidden { 23 | display: none; 24 | } 25 | /* line 23, ../../src/sass/messenger.sass */ 26 | ul.messenger .messenger-message .messenger-phrase, ul.messenger .messenger-message .messenger-actions a { 27 | padding-right: 5px; 28 | } 29 | /* line 26, ../../src/sass/messenger.sass */ 30 | ul.messenger .messenger-message .messenger-actions { 31 | float: right; 32 | } 33 | /* line 29, ../../src/sass/messenger.sass */ 34 | ul.messenger .messenger-message .messenger-actions a { 35 | cursor: pointer; 36 | text-decoration: underline; 37 | } 38 | /* line 33, ../../src/sass/messenger.sass */ 39 | ul.messenger.messenger-fixed { 40 | position: fixed; 41 | z-index: 10000; 42 | } 43 | /* line 37, ../../src/sass/messenger.sass */ 44 | ul.messenger.messenger-fixed .messenger-message { 45 | min-width: 0; 46 | -webkit-box-sizing: border-box; 47 | -moz-box-sizing: border-box; 48 | box-sizing: border-box; 49 | } 50 | /* line 42, ../../src/sass/messenger.sass */ 51 | ul.messenger.messenger-fixed .message .messenger-actions { 52 | float: left; 53 | } 54 | /* line 45, ../../src/sass/messenger.sass */ 55 | ul.messenger.messenger-fixed.messenger-on-top { 56 | top: 20px; 57 | } 58 | /* line 48, ../../src/sass/messenger.sass */ 59 | ul.messenger.messenger-fixed.messenger-on-bottom { 60 | bottom: 20px; 61 | } 62 | /* line 51, ../../src/sass/messenger.sass */ 63 | ul.messenger.messenger-fixed.messenger-on-top, ul.messenger.messenger-fixed.messenger-on-bottom { 64 | left: 50%; 65 | width: 800px; 66 | margin-left: -400px; 67 | } 68 | @media (max-width: 960px) { 69 | /* line 51, ../../src/sass/messenger.sass */ 70 | ul.messenger.messenger-fixed.messenger-on-top, ul.messenger.messenger-fixed.messenger-on-bottom { 71 | left: 10%; 72 | width: 80%; 73 | margin-left: 0px; 74 | } 75 | } 76 | /* line 61, ../../src/sass/messenger.sass */ 77 | ul.messenger.messenger-fixed.messenger-on-top.messenger-on-right, ul.messenger.messenger-fixed.messenger-on-bottom.messenger-on-right { 78 | right: 20px; 79 | left: auto; 80 | } 81 | /* line 65, ../../src/sass/messenger.sass */ 82 | ul.messenger.messenger-fixed.messenger-on-top.messenger-on-left, ul.messenger.messenger-fixed.messenger-on-bottom.messenger-on-left { 83 | left: 20px; 84 | margin-left: 0px; 85 | } 86 | /* line 69, ../../src/sass/messenger.sass */ 87 | ul.messenger.messenger-fixed.messenger-on-right, ul.messenger.messenger-fixed.messenger-on-left { 88 | width: 350px; 89 | } 90 | /* line 72, ../../src/sass/messenger.sass */ 91 | ul.messenger.messenger-fixed.messenger-on-right .messenger-actions, ul.messenger.messenger-fixed.messenger-on-left .messenger-actions { 92 | float: left; 93 | } 94 | /* line 75, ../../src/sass/messenger.sass */ 95 | ul.messenger .messenger-spinner { 96 | display: none; 97 | } 98 | -------------------------------------------------------------------------------- /assets/libs/bootswatch/flatly/bootswatch.less: -------------------------------------------------------------------------------- 1 | // Flatly 3.0.2 2 | // Bootswatch 3 | // ----------------------------------------------------- 4 | 5 | @import url("//fonts.googleapis.com/css?family=Lato:400,700,900,400italic"); 6 | 7 | // Navbar ===================================================================== 8 | 9 | // Buttons ==================================================================== 10 | 11 | .btn:active { 12 | .box-shadow(none); 13 | } 14 | 15 | .btn-group.open .dropdown-toggle { 16 | .box-shadow(none); 17 | } 18 | 19 | // Typography ================================================================= 20 | 21 | .text-primary, 22 | .text-primary:hover { 23 | color: @brand-primary; 24 | } 25 | 26 | .text-success, 27 | .text-success:hover { 28 | color: @brand-success; 29 | } 30 | 31 | .text-danger, 32 | .text-danger:hover { 33 | color: @brand-danger; 34 | } 35 | 36 | .text-warning, 37 | .text-warning:hover { 38 | color: @brand-warning; 39 | } 40 | 41 | .text-info, 42 | .text-info:hover { 43 | color: @brand-info; 44 | } 45 | 46 | // Tables ===================================================================== 47 | 48 | .table { 49 | 50 | tr.success, 51 | tr.warning, 52 | tr.danger { 53 | color: #fff; 54 | } 55 | } 56 | 57 | // Forms ====================================================================== 58 | 59 | .form-control,textarea.form-control, 60 | input[type="text"], 61 | input[type="password"], 62 | input[type="datetime"], 63 | input[type="datetime-local"], 64 | input[type="date"], 65 | input[type="month"], 66 | input[type="time"], 67 | input[type="week"], 68 | input[type="number"], 69 | input[type="email"], 70 | input[type="url"], 71 | input[type="search"], 72 | input[type="tel"], 73 | input[type="color"], 74 | .uneditable-input { 75 | border-width: 2px; 76 | .box-shadow(none); 77 | 78 | &:focus { 79 | .box-shadow(none); 80 | } 81 | } 82 | 83 | .has-warning { 84 | .help-block, 85 | .control-label { 86 | color: @brand-warning; 87 | } 88 | 89 | .form-control, 90 | .form-control:focus { 91 | border: 2px solid @brand-warning; 92 | } 93 | } 94 | 95 | .has-error { 96 | .help-block, 97 | .control-label { 98 | color: @brand-danger; 99 | } 100 | 101 | .form-control, 102 | .form-control:focus { 103 | border: 2px solid @brand-danger; 104 | } 105 | } 106 | 107 | .has-success { 108 | .help-block, 109 | .control-label { 110 | color: @brand-success; 111 | } 112 | 113 | .form-control, 114 | .form-control:focus { 115 | border: 2px solid @brand-success; 116 | } 117 | } 118 | 119 | // Navs ======================================================================= 120 | 121 | .nav { 122 | .open > a, 123 | .open > a:hover, 124 | .open > a:focus { 125 | border-color: transparent; 126 | } 127 | } 128 | 129 | .pagination { 130 | 131 | a, 132 | a:hover { 133 | color: #fff; 134 | } 135 | 136 | .disabled { 137 | &>a, 138 | &>a:hover, 139 | &>a:focus, 140 | &>span { 141 | background-color: lighten(@brand-success, 15%); 142 | } 143 | } 144 | } 145 | 146 | .pager { 147 | a, 148 | a:hover { 149 | color: #fff; 150 | } 151 | 152 | .disabled { 153 | &>a, 154 | &>a:hover, 155 | &>a:focus, 156 | &>span { 157 | background-color: lighten(@brand-success, 15%); 158 | } 159 | } 160 | } 161 | 162 | // Indicators ================================================================= 163 | 164 | .alert { 165 | 166 | a, 167 | .alert-link { 168 | color: #fff; 169 | text-decoration: underline; 170 | } 171 | } 172 | 173 | // Progress bars ============================================================== 174 | 175 | .progress { 176 | height: 10px; 177 | .box-shadow(none); 178 | } 179 | 180 | // Containers ================================================================= 181 | 182 | .well { 183 | .box-shadow(none); 184 | border-width: 0; 185 | } 186 | -------------------------------------------------------------------------------- /assets/libs/messenger/css/messenger-theme-block.css: -------------------------------------------------------------------------------- 1 | /* line 4, ../../src/sass/messenger-theme-block.sass */ 2 | ul.messenger.messenger-theme-block.messenger-fixed { 3 | width: 100%; 4 | top: 0; 5 | left: 0; 6 | margin-left: 0px; 7 | } 8 | /* line 10, ../../src/sass/messenger-theme-block.sass */ 9 | ul.messenger.messenger-theme-block.messenger-fixed.messenger-on-bottom { 10 | top: auto; 11 | bottom: 0; 12 | } 13 | /* line 14, ../../src/sass/messenger-theme-block.sass */ 14 | ul.messenger.messenger-theme-block.messenger-fixed.messenger-on-top { 15 | top: 0px; 16 | bottom: auto; 17 | } 18 | /* line 18, ../../src/sass/messenger-theme-block.sass */ 19 | ul.messenger.messenger-theme-block.messenger-fixed.messenger-on-top, ul.messenger.messenger-theme-block.messenger-fixed.messenger-on-bottom { 20 | left: 0px; 21 | right: 0px; 22 | } 23 | /* line 22, ../../src/sass/messenger-theme-block.sass */ 24 | ul.messenger.messenger-theme-block.messenger-fixed.messenger-on-top.messenger-on-right, ul.messenger.messenger-theme-block.messenger-fixed.messenger-on-top.messenger-on-left, ul.messenger.messenger-theme-block.messenger-fixed.messenger-on-bottom.messenger-on-right, ul.messenger.messenger-theme-block.messenger-fixed.messenger-on-bottom.messenger-on-left { 25 | width: 350px; 26 | } 27 | /* line 25, ../../src/sass/messenger-theme-block.sass */ 28 | ul.messenger.messenger-theme-block.messenger-fixed.messenger-on-top.messenger-on-left, ul.messenger.messenger-theme-block.messenger-fixed.messenger-on-bottom.messenger-on-left { 29 | right: auto; 30 | } 31 | /* line 28, ../../src/sass/messenger-theme-block.sass */ 32 | ul.messenger.messenger-theme-block.messenger-fixed.messenger-on-top.messenger-on-right, ul.messenger.messenger-theme-block.messenger-fixed.messenger-on-bottom.messenger-on-right { 33 | left: auto; 34 | } 35 | /* line 31, ../../src/sass/messenger-theme-block.sass */ 36 | ul.messenger.messenger-theme-block.messenger-fixed .messenger-message-slot { 37 | max-width: none; 38 | } 39 | /* line 34, ../../src/sass/messenger-theme-block.sass */ 40 | ul.messenger.messenger-theme-block.messenger-fixed .messenger-message { 41 | text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); 42 | border-width: 1px; 43 | border-style: solid; 44 | text-align: center; 45 | padding: 1em; 46 | } 47 | /* line 41, ../../src/sass/messenger-theme-block.sass */ 48 | ul.messenger.messenger-theme-block.messenger-fixed .messenger-message.alert-warning { 49 | color: #c09853; 50 | background-color: #fcf8e3; 51 | border-color: #fbeed5; 52 | } 53 | /* line 46, ../../src/sass/messenger-theme-block.sass */ 54 | ul.messenger.messenger-theme-block.messenger-fixed .messenger-message.alert-error, ul.messenger.messenger-theme-block.messenger-fixed .messenger-message.alert-danger { 55 | color: #b94a48; 56 | background-color: #f2dede; 57 | border-color: #eed3d7; 58 | } 59 | /* line 51, ../../src/sass/messenger-theme-block.sass */ 60 | ul.messenger.messenger-theme-block.messenger-fixed .messenger-message.alert-success { 61 | color: #468847; 62 | background-color: #dff0d8; 63 | border-color: #d6e9c6; 64 | } 65 | /* line 56, ../../src/sass/messenger-theme-block.sass */ 66 | ul.messenger.messenger-theme-block.messenger-fixed .messenger-message.alert-info { 67 | color: #3a87ad; 68 | background-color: #d9edf7; 69 | border-color: #bce8f1; 70 | } 71 | /* line 61, ../../src/sass/messenger-theme-block.sass */ 72 | ul.messenger.messenger-theme-block.messenger-fixed .messenger-message .messenger-close { 73 | filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50); 74 | opacity: 0.5; 75 | padding: 0; 76 | cursor: pointer; 77 | color: inherit; 78 | background: transparent; 79 | border: 0; 80 | -webkit-appearance: none; 81 | float: right; 82 | position: relative; 83 | top: -13px; 84 | left: 11px; 85 | font-size: 22px; 86 | } 87 | /* line 75, ../../src/sass/messenger-theme-block.sass */ 88 | ul.messenger.messenger-theme-block.messenger-fixed .messenger-message .messenger-close:hover { 89 | filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80); 90 | opacity: 0.8; 91 | } 92 | /* line 78, ../../src/sass/messenger-theme-block.sass */ 93 | ul.messenger.messenger-theme-block.messenger-fixed .messenger-message .messenger-close:active { 94 | filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); 95 | opacity: 1; 96 | } 97 | -------------------------------------------------------------------------------- /assets/libs/messenger/css/messenger-theme-ice.css: -------------------------------------------------------------------------------- 1 | @import url("http://fonts.googleapis.com/css?family=Raleway:400"); 2 | /* line 12, ../../src/sass/messenger-theme-ice.sass */ 3 | ul.messenger-theme-ice { 4 | -moz-user-select: none; 5 | -webkit-user-select: none; 6 | -o-user-select: none; 7 | user-select: none; 8 | font-family: "Raleway", sans-serif; 9 | } 10 | /* line 16, ../../src/sass/messenger-theme-ice.sass */ 11 | ul.messenger-theme-ice .messenger-message { 12 | -webkit-border-radius: 5px; 13 | -moz-border-radius: 5px; 14 | -ms-border-radius: 5px; 15 | -o-border-radius: 5px; 16 | border-radius: 5px; 17 | -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.14), 0 4px #aaaaaa, 0 5px rgba(0, 0, 0, 0.05); 18 | -moz-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.14), 0 4px #aaaaaa, 0 5px rgba(0, 0, 0, 0.05); 19 | box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.14), 0 4px #aaaaaa, 0 5px rgba(0, 0, 0, 0.05); 20 | border: 0px; 21 | background-color: #f6f6f6; 22 | position: relative; 23 | margin-bottom: 1.5em; 24 | font-size: 13px; 25 | color: #666666; 26 | font-weight: 500; 27 | padding: 12px 22px; 28 | } 29 | /* line 28, ../../src/sass/messenger-theme-ice.sass */ 30 | ul.messenger-theme-ice .messenger-message .messenger-close { 31 | position: absolute; 32 | top: 0px; 33 | right: 0px; 34 | color: #888888; 35 | opacity: 1; 36 | font-weight: bold; 37 | display: block; 38 | font-size: 20px; 39 | line-height: 20px; 40 | padding: 8px 10px 7px 7px; 41 | cursor: pointer; 42 | background: transparent; 43 | border: 0; 44 | -webkit-appearance: none; 45 | } 46 | /* line 44, ../../src/sass/messenger-theme-ice.sass */ 47 | ul.messenger-theme-ice .messenger-message .messenger-close:hover { 48 | color: #444444; 49 | } 50 | /* line 47, ../../src/sass/messenger-theme-ice.sass */ 51 | ul.messenger-theme-ice .messenger-message .messenger-close:active { 52 | color: #222222; 53 | } 54 | /* line 50, ../../src/sass/messenger-theme-ice.sass */ 55 | ul.messenger-theme-ice .messenger-message .messenger-actions { 56 | float: none; 57 | margin-top: 10px; 58 | } 59 | /* line 54, ../../src/sass/messenger-theme-ice.sass */ 60 | ul.messenger-theme-ice .messenger-message .messenger-actions a { 61 | -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1), inset 0px 1px rgba(255, 255, 255, 0.05); 62 | -moz-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1), inset 0px 1px rgba(255, 255, 255, 0.05); 63 | box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1), inset 0px 1px rgba(255, 255, 255, 0.05); 64 | -webkit-border-radius: 4px; 65 | -moz-border-radius: 4px; 66 | -ms-border-radius: 4px; 67 | -o-border-radius: 4px; 68 | border-radius: 4px; 69 | position: relative; 70 | text-decoration: none; 71 | display: inline-block; 72 | padding: 10px; 73 | color: #888888; 74 | margin-right: 10px; 75 | padding: 3px 10px 5px; 76 | text-transform: capitalize; 77 | } 78 | /* line 66, ../../src/sass/messenger-theme-ice.sass */ 79 | ul.messenger-theme-ice .messenger-message .messenger-actions a:hover, ul.messenger-theme-ice .messenger-message .messenger-actions a:active { 80 | -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1), inset 0px 1px rgba(255, 255, 255, 0.15), 0 2px #aaaaaa; 81 | -moz-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1), inset 0px 1px rgba(255, 255, 255, 0.15), 0 2px #aaaaaa; 82 | box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1), inset 0px 1px rgba(255, 255, 255, 0.15), 0 2px #aaaaaa; 83 | color: #444444; 84 | } 85 | /* line 70, ../../src/sass/messenger-theme-ice.sass */ 86 | ul.messenger-theme-ice .messenger-message .messenger-actions a:active { 87 | -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1), inset 0px 1px rgba(255, 255, 255, 0.15), 0 1px #aaaaaa; 88 | -moz-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1), inset 0px 1px rgba(255, 255, 255, 0.15), 0 1px #aaaaaa; 89 | box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1), inset 0px 1px rgba(255, 255, 255, 0.15), 0 1px #aaaaaa; 90 | top: 1px; 91 | } 92 | /* line 74, ../../src/sass/messenger-theme-ice.sass */ 93 | ul.messenger-theme-ice .messenger-message .messenger-actions .messenger-phrase { 94 | display: none; 95 | } 96 | /* line 77, ../../src/sass/messenger-theme-ice.sass */ 97 | ul.messenger-theme-ice .messenger-message .messenger-message-inner:before { 98 | display: block; 99 | z-index: 20; 100 | font-weight: bold; 101 | margin-bottom: 2px; 102 | } 103 | /* line 84, ../../src/sass/messenger-theme-ice.sass */ 104 | ul.messenger-theme-ice .messenger-message.alert-success .messenger-message-inner:before { 105 | content: "Success"; 106 | } 107 | /* line 88, ../../src/sass/messenger-theme-ice.sass */ 108 | ul.messenger-theme-ice .messenger-message.alert-error .messenger-message-inner:before { 109 | content: "Error"; 110 | } 111 | /* line 92, ../../src/sass/messenger-theme-ice.sass */ 112 | ul.messenger-theme-ice .messenger-message.alert-info .messenger-message-inner:before { 113 | content: "Information"; 114 | } 115 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | orgoShmorgo 4 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 |
27 |
28 |
29 |
30 | 34 | 47 | 48 | 49 | 50 |
51 |
52 |
53 |
54 | 55 | 56 |
57 |
58 |
59 |
60 |
61 | 62 | 63 |
64 | 67 | 71 |
72 |
73 | 76 | 82 |
83 |
84 | 87 | 92 |
93 | 94 |
95 |
96 | 97 |
98 |
99 |
100 |
101 |
102 | 103 |
104 | 107 |
108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | -------------------------------------------------------------------------------- /assets/libs/vex/vex.combined.min.js: -------------------------------------------------------------------------------- 1 | /*! vex.js, vex.dialog.js 2.0.1 */ 2 | (function(){var a;a=function(a){var b,c;return b=!1,a(function(){var d;return d=(document.body||document.documentElement).style,b=void 0!==d.animation||void 0!==d.WebkitAnimation||void 0!==d.MozAnimation||void 0!==d.MsAnimation||void 0!==d.OAnimation,a(window).bind("keyup.vex",function(a){return 27===a.keyCode?c.closeByEscape():void 0})}),c={globalID:1,animationEndEvent:"animationend webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend",baseClassNames:{vex:"vex",content:"vex-content",overlay:"vex-overlay",close:"vex-close",closing:"vex-closing",open:"vex-open"},defaultOptions:{content:"",showCloseButton:!0,escapeButtonCloses:!0,overlayClosesOnClick:!0,appendLocation:"body",className:"",css:{},overlayClassName:"",overlayCSS:{},contentClassName:"",contentCSS:{},closeClassName:"",closeCSS:{}},open:function(b){return b=a.extend({},c.defaultOptions,b),b.id=c.globalID,c.globalID+=1,b.$vex=a("
").addClass(c.baseClassNames.vex).addClass(b.className).css(b.css).data({vex:b}),b.$vexOverlay=a("
").addClass(c.baseClassNames.overlay).addClass(b.overlayClassName).css(b.overlayCSS).data({vex:b}),b.overlayClosesOnClick&&b.$vexOverlay.bind("click.vex",function(b){return b.target===this?c.close(a(this).data().vex.id):void 0}),b.$vex.append(b.$vexOverlay),b.$vexContent=a("
").addClass(c.baseClassNames.content).addClass(b.contentClassName).css(b.contentCSS).append(b.content).data({vex:b}),b.$vex.append(b.$vexContent),b.showCloseButton&&(b.$closeButton=a("
").addClass(c.baseClassNames.close).addClass(b.closeClassName).css(b.closeCSS).data({vex:b}).bind("click.vex",function(){return c.close(a(this).data().vex.id)}),b.$vexContent.append(b.$closeButton)),a(b.appendLocation).append(b.$vex),c.setupBodyClassName(b.$vex),b.afterOpen&&b.afterOpen(b.$vexContent,b),setTimeout(function(){return b.$vexContent.trigger("vexOpen",b)},0),b.$vexContent},getAllVexes:function(){return a("."+c.baseClassNames.vex+':not(".'+c.baseClassNames.closing+'") .'+c.baseClassNames.content)},getVexByID:function(b){return c.getAllVexes().filter(function(){return a(this).data().vex.id===b})},close:function(a){var b;if(!a){if(b=c.getAllVexes().last(),!b.length)return!1;a=b.data().vex.id}return c.closeByID(a)},closeAll:function(){var b;return b=c.getAllVexes().map(function(){return a(this).data().vex.id}).toArray(),(null!=b?b.length:void 0)?(a.each(b.reverse(),function(a,b){return c.closeByID(b)}),!0):!1},closeByID:function(d){var e,f,g,h,i;return f=c.getVexByID(d),f.length?(e=f.data().vex.$vex,i=a.extend({},f.data().vex),g=function(){return i.beforeClose?i.beforeClose(f,i):void 0},h=function(){return f.trigger("vexClose",i),e.remove(),i.afterClose?i.afterClose(f,i):void 0},b?(g(),e.unbind(c.animationEndEvent).bind(c.animationEndEvent,function(){return h()}).addClass(c.baseClassNames.closing)):(g(),h()),!0):void 0},closeByEscape:function(){var b,d,e;return e=c.getAllVexes().map(function(){return a(this).data().vex.id}).toArray(),(null!=e?e.length:void 0)?(d=Math.max.apply(Math,e),b=c.getVexByID(d),b.data().vex.escapeButtonCloses!==!0?!1:c.closeByID(d)):!1},setupBodyClassName:function(b){return b.bind("vexOpen.vex",function(){return a("body").addClass(c.baseClassNames.open)}).bind("vexClose.vex",function(){return c.getAllVexes().length?void 0:a("body").removeClass(c.baseClassNames.open)})},hideLoading:function(){return a(".vex-loading-spinner").remove()},showLoading:function(){return c.hideLoading(),a("body").append('
')}}},"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):window.vex=a(jQuery)}).call(this),function(){var a;a=function(a,b){var c,d;return null==b?a.error("Vex is required to use vex.dialog"):(c=function(b){var c;return c={},a.each(b.serializeArray(),function(){return c[this.name]?(c[this.name].push||(c[this.name]=[c[this.name]]),c[this.name].push(this.value||"")):c[this.name]=this.value||""}),c},d={},d.buttons={YES:{text:"OK",type:"submit",className:"vex-dialog-button-primary"},NO:{text:"Cancel",type:"button",className:"vex-dialog-button-secondary",click:function(a){return a.data().vex.value=!1,b.close(a.data().vex.id)}}},d.defaultOptions={callback:function(){},afterOpen:function(){},message:"Message",input:'',value:!1,buttons:[d.buttons.YES,d.buttons.NO],showCloseButton:!1,onSubmit:function(e){var f,g;return f=a(this),g=f.parent(),e.preventDefault(),e.stopPropagation(),g.data().vex.value=d.getFormValueOnSubmit(c(f)),b.close(g.data().vex.id)},focusFirstInput:!0},d.defaultAlertOptions={message:"Alert",buttons:[d.buttons.YES]},d.defaultConfirmOptions={message:"Confirm"},d.open=function(c){var e;return c=a.extend({},b.defaultOptions,d.defaultOptions,c),c.content=d.buildDialogForm(c),c.beforeClose=function(a){return c.callback(a.data().vex.value)},e=b.open(c),c.focusFirstInput&&e.find('input[type="submit"], textarea, input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="email"], input[type="month"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="time"], input[type="url"], input[type="week"]').first().focus(),e},d.alert=function(b){return"string"==typeof b&&(b={message:b}),b=a.extend({},d.defaultAlertOptions,b),d.open(b)},d.confirm=function(b){return"string"==typeof b?a.error("dialog.confirm(options) requires options.callback."):(b=a.extend({},d.defaultConfirmOptions,b),d.open(b))},d.prompt=function(b){var c;return"string"==typeof b?a.error("dialog.prompt(options) requires options.callback."):(c={message:'",input:''},b=a.extend({},c,b),d.open(b))},d.buildDialogForm=function(b){var c,e,f;return c=a('
'),f=a('
'),e=a('
'),c.append(f.append(b.message)).append(e.append(b.input)).append(d.buttonsToDOM(b.buttons)).bind("submit.vex",b.onSubmit),c},d.getFormValueOnSubmit=function(a){return a.vex||""===a.vex?"_vex-empty-value"===a.vex?!0:a.vex:a},d.buttonsToDOM=function(c){var d;return d=a('
'),a.each(c,function(e,f){return d.append(a('').val(f.text).addClass(f.className+" vex-dialog-button "+(0===e?"vex-first ":"")+(e===c.length-1?"vex-last ":"")).bind("click.vex",function(c){return f.click?f.click(a(this).parents("."+b.baseClassNames.content),c):void 0}))}),d},d)},"function"==typeof define&&define.amd?define(["jquery","vex"],a):"object"==typeof exports?module.exports=a(require("jquery"),require("vex")):window.vex.dialog=a(window.jQuery,window.vex)}.call(this); -------------------------------------------------------------------------------- /assets/libs/messenger/css/messenger-spinner.css: -------------------------------------------------------------------------------- 1 | @-webkit-keyframes ui-spinner-rotate-right { 2 | /* line 64, ../../src/sass/messenger-spinner.scss */ 3 | 0% { 4 | -webkit-transform: rotate(0deg); 5 | } 6 | 7 | /* line 65, ../../src/sass/messenger-spinner.scss */ 8 | 25% { 9 | -webkit-transform: rotate(180deg); 10 | } 11 | 12 | /* line 66, ../../src/sass/messenger-spinner.scss */ 13 | 50% { 14 | -webkit-transform: rotate(180deg); 15 | } 16 | 17 | /* line 67, ../../src/sass/messenger-spinner.scss */ 18 | 75% { 19 | -webkit-transform: rotate(360deg); 20 | } 21 | 22 | /* line 68, ../../src/sass/messenger-spinner.scss */ 23 | 100% { 24 | -webkit-transform: rotate(360deg); 25 | } 26 | } 27 | 28 | @-webkit-keyframes ui-spinner-rotate-left { 29 | /* line 72, ../../src/sass/messenger-spinner.scss */ 30 | 0% { 31 | -webkit-transform: rotate(0deg); 32 | } 33 | 34 | /* line 73, ../../src/sass/messenger-spinner.scss */ 35 | 25% { 36 | -webkit-transform: rotate(0deg); 37 | } 38 | 39 | /* line 74, ../../src/sass/messenger-spinner.scss */ 40 | 50% { 41 | -webkit-transform: rotate(180deg); 42 | } 43 | 44 | /* line 75, ../../src/sass/messenger-spinner.scss */ 45 | 75% { 46 | -webkit-transform: rotate(180deg); 47 | } 48 | 49 | /* line 76, ../../src/sass/messenger-spinner.scss */ 50 | 100% { 51 | -webkit-transform: rotate(360deg); 52 | } 53 | } 54 | 55 | @-moz-keyframes ui-spinner-rotate-right { 56 | /* line 80, ../../src/sass/messenger-spinner.scss */ 57 | 0% { 58 | -moz-transform: rotate(0deg); 59 | } 60 | 61 | /* line 81, ../../src/sass/messenger-spinner.scss */ 62 | 25% { 63 | -moz-transform: rotate(180deg); 64 | } 65 | 66 | /* line 82, ../../src/sass/messenger-spinner.scss */ 67 | 50% { 68 | -moz-transform: rotate(180deg); 69 | } 70 | 71 | /* line 83, ../../src/sass/messenger-spinner.scss */ 72 | 75% { 73 | -moz-transform: rotate(360deg); 74 | } 75 | 76 | /* line 84, ../../src/sass/messenger-spinner.scss */ 77 | 100% { 78 | -moz-transform: rotate(360deg); 79 | } 80 | } 81 | 82 | @-moz-keyframes ui-spinner-rotate-left { 83 | /* line 88, ../../src/sass/messenger-spinner.scss */ 84 | 0% { 85 | -moz-transform: rotate(0deg); 86 | } 87 | 88 | /* line 89, ../../src/sass/messenger-spinner.scss */ 89 | 25% { 90 | -moz-transform: rotate(0deg); 91 | } 92 | 93 | /* line 90, ../../src/sass/messenger-spinner.scss */ 94 | 50% { 95 | -moz-transform: rotate(180deg); 96 | } 97 | 98 | /* line 91, ../../src/sass/messenger-spinner.scss */ 99 | 75% { 100 | -moz-transform: rotate(180deg); 101 | } 102 | 103 | /* line 92, ../../src/sass/messenger-spinner.scss */ 104 | 100% { 105 | -moz-transform: rotate(360deg); 106 | } 107 | } 108 | 109 | @keyframes ui-spinner-rotate-right { 110 | /* line 96, ../../src/sass/messenger-spinner.scss */ 111 | 0% { 112 | transform: rotate(0deg); 113 | } 114 | 115 | /* line 97, ../../src/sass/messenger-spinner.scss */ 116 | 25% { 117 | transform: rotate(180deg); 118 | } 119 | 120 | /* line 98, ../../src/sass/messenger-spinner.scss */ 121 | 50% { 122 | transform: rotate(180deg); 123 | } 124 | 125 | /* line 99, ../../src/sass/messenger-spinner.scss */ 126 | 75% { 127 | transform: rotate(360deg); 128 | } 129 | 130 | /* line 100, ../../src/sass/messenger-spinner.scss */ 131 | 100% { 132 | transform: rotate(360deg); 133 | } 134 | } 135 | 136 | @keyframes ui-spinner-rotate-left { 137 | /* line 104, ../../src/sass/messenger-spinner.scss */ 138 | 0% { 139 | transform: rotate(0deg); 140 | } 141 | 142 | /* line 105, ../../src/sass/messenger-spinner.scss */ 143 | 25% { 144 | transform: rotate(0deg); 145 | } 146 | 147 | /* line 106, ../../src/sass/messenger-spinner.scss */ 148 | 50% { 149 | transform: rotate(180deg); 150 | } 151 | 152 | /* line 107, ../../src/sass/messenger-spinner.scss */ 153 | 75% { 154 | transform: rotate(180deg); 155 | } 156 | 157 | /* line 108, ../../src/sass/messenger-spinner.scss */ 158 | 100% { 159 | transform: rotate(360deg); 160 | } 161 | } 162 | 163 | /* line 116, ../../src/sass/messenger-spinner.scss */ 164 | .messenger-spinner { 165 | position: relative; 166 | border-radius: 100%; 167 | } 168 | /* line 120, ../../src/sass/messenger-spinner.scss */ 169 | ul.messenger.messenger-spinner-active .messenger-spinner .messenger-spinner { 170 | display: block; 171 | } 172 | /* line 124, ../../src/sass/messenger-spinner.scss */ 173 | .messenger-spinner .messenger-spinner-side { 174 | width: 50%; 175 | height: 100%; 176 | overflow: hidden; 177 | position: absolute; 178 | } 179 | /* line 130, ../../src/sass/messenger-spinner.scss */ 180 | .messenger-spinner .messenger-spinner-side .messenger-spinner-fill { 181 | border-radius: 999px; 182 | position: absolute; 183 | width: 100%; 184 | height: 100%; 185 | -webkit-animation-iteration-count: infinite; 186 | -moz-animation-iteration-count: infinite; 187 | -ms-animation-iteration-count: infinite; 188 | -o-animation-iteration-count: infinite; 189 | animation-iteration-count: infinite; 190 | -webkit-animation-timing-function: linear; 191 | -moz-animation-timing-function: linear; 192 | -ms-animation-timing-function: linear; 193 | -o-animation-timing-function: linear; 194 | animation-timing-function: linear; 195 | } 196 | /* line 140, ../../src/sass/messenger-spinner.scss */ 197 | .messenger-spinner .messenger-spinner-side-left { 198 | left: 0; 199 | } 200 | /* line 143, ../../src/sass/messenger-spinner.scss */ 201 | .messenger-spinner .messenger-spinner-side-left .messenger-spinner-fill { 202 | left: 100%; 203 | border-top-left-radius: 0; 204 | border-bottom-left-radius: 0; 205 | -webkit-animation-name: ui-spinner-rotate-left; 206 | -moz-animation-name: ui-spinner-rotate-left; 207 | -ms-animation-name: ui-spinner-rotate-left; 208 | -o-animation-name: ui-spinner-rotate-left; 209 | animation-name: ui-spinner-rotate-left; 210 | -webkit-transform-origin: 0 50%; 211 | -moz-transform-origin: 0 50%; 212 | -ms-transform-origin: 0 50%; 213 | -o-transform-origin: 0 50%; 214 | transform-origin: 0 50%; 215 | } 216 | /* line 152, ../../src/sass/messenger-spinner.scss */ 217 | .messenger-spinner .messenger-spinner-side-right { 218 | left: 50%; 219 | } 220 | /* line 155, ../../src/sass/messenger-spinner.scss */ 221 | .messenger-spinner .messenger-spinner-side-right .messenger-spinner-fill { 222 | left: -100%; 223 | border-top-right-radius: 0; 224 | border-bottom-right-radius: 0; 225 | -webkit-animation-name: ui-spinner-rotate-right; 226 | -moz-animation-name: ui-spinner-rotate-right; 227 | -ms-animation-name: ui-spinner-rotate-right; 228 | -o-animation-name: ui-spinner-rotate-right; 229 | animation-name: ui-spinner-rotate-right; 230 | -webkit-transform-origin: 100% 50%; 231 | -moz-transform-origin: 100% 50%; 232 | -ms-transform-origin: 100% 50%; 233 | -o-transform-origin: 100% 50%; 234 | transform-origin: 100% 50%; 235 | } 236 | -------------------------------------------------------------------------------- /assets/libs/vex/vex.css: -------------------------------------------------------------------------------- 1 | @keyframes vex-fadein { 2 | /* line 9, ../sass/_keyframes.sass */ 3 | 0% { 4 | opacity: 0; 5 | } 6 | 7 | /* line 11, ../sass/_keyframes.sass */ 8 | 100% { 9 | opacity: 1; 10 | } 11 | } 12 | 13 | @-webkit-keyframes vex-fadein { 14 | /* line 9, ../sass/_keyframes.sass */ 15 | 0% { 16 | opacity: 0; 17 | } 18 | 19 | /* line 11, ../sass/_keyframes.sass */ 20 | 100% { 21 | opacity: 1; 22 | } 23 | } 24 | 25 | @-moz-keyframes vex-fadein { 26 | /* line 9, ../sass/_keyframes.sass */ 27 | 0% { 28 | opacity: 0; 29 | } 30 | 31 | /* line 11, ../sass/_keyframes.sass */ 32 | 100% { 33 | opacity: 1; 34 | } 35 | } 36 | 37 | @-ms-keyframes vex-fadein { 38 | /* line 9, ../sass/_keyframes.sass */ 39 | 0% { 40 | opacity: 0; 41 | } 42 | 43 | /* line 11, ../sass/_keyframes.sass */ 44 | 100% { 45 | opacity: 1; 46 | } 47 | } 48 | 49 | @-o-keyframes vex-fadein { 50 | /* line 9, ../sass/_keyframes.sass */ 51 | 0% { 52 | opacity: 0; 53 | } 54 | 55 | /* line 11, ../sass/_keyframes.sass */ 56 | 100% { 57 | opacity: 1; 58 | } 59 | } 60 | 61 | @keyframes vex-fadeout { 62 | /* line 16, ../sass/_keyframes.sass */ 63 | 0% { 64 | opacity: 1; 65 | } 66 | 67 | /* line 18, ../sass/_keyframes.sass */ 68 | 100% { 69 | opacity: 0; 70 | } 71 | } 72 | 73 | @-webkit-keyframes vex-fadeout { 74 | /* line 16, ../sass/_keyframes.sass */ 75 | 0% { 76 | opacity: 1; 77 | } 78 | 79 | /* line 18, ../sass/_keyframes.sass */ 80 | 100% { 81 | opacity: 0; 82 | } 83 | } 84 | 85 | @-moz-keyframes vex-fadeout { 86 | /* line 16, ../sass/_keyframes.sass */ 87 | 0% { 88 | opacity: 1; 89 | } 90 | 91 | /* line 18, ../sass/_keyframes.sass */ 92 | 100% { 93 | opacity: 0; 94 | } 95 | } 96 | 97 | @-ms-keyframes vex-fadeout { 98 | /* line 16, ../sass/_keyframes.sass */ 99 | 0% { 100 | opacity: 1; 101 | } 102 | 103 | /* line 18, ../sass/_keyframes.sass */ 104 | 100% { 105 | opacity: 0; 106 | } 107 | } 108 | 109 | @-o-keyframes vex-fadeout { 110 | /* line 16, ../sass/_keyframes.sass */ 111 | 0% { 112 | opacity: 1; 113 | } 114 | 115 | /* line 18, ../sass/_keyframes.sass */ 116 | 100% { 117 | opacity: 0; 118 | } 119 | } 120 | 121 | @keyframes vex-rotation { 122 | /* line 95, ../sass/_keyframes.sass */ 123 | 0% { 124 | transform: rotate(0deg); 125 | -webkit-transform: rotate(0deg); 126 | -moz-transform: rotate(0deg); 127 | -ms-transform: rotate(0deg); 128 | -o-transform: rotate(0deg); 129 | } 130 | 131 | /* line 97, ../sass/_keyframes.sass */ 132 | 100% { 133 | transform: rotate(359deg); 134 | -webkit-transform: rotate(359deg); 135 | -moz-transform: rotate(359deg); 136 | -ms-transform: rotate(359deg); 137 | -o-transform: rotate(359deg); 138 | } 139 | } 140 | 141 | @-webkit-keyframes vex-rotation { 142 | /* line 95, ../sass/_keyframes.sass */ 143 | 0% { 144 | transform: rotate(0deg); 145 | -webkit-transform: rotate(0deg); 146 | -moz-transform: rotate(0deg); 147 | -ms-transform: rotate(0deg); 148 | -o-transform: rotate(0deg); 149 | } 150 | 151 | /* line 97, ../sass/_keyframes.sass */ 152 | 100% { 153 | transform: rotate(359deg); 154 | -webkit-transform: rotate(359deg); 155 | -moz-transform: rotate(359deg); 156 | -ms-transform: rotate(359deg); 157 | -o-transform: rotate(359deg); 158 | } 159 | } 160 | 161 | @-moz-keyframes vex-rotation { 162 | /* line 95, ../sass/_keyframes.sass */ 163 | 0% { 164 | transform: rotate(0deg); 165 | -webkit-transform: rotate(0deg); 166 | -moz-transform: rotate(0deg); 167 | -ms-transform: rotate(0deg); 168 | -o-transform: rotate(0deg); 169 | } 170 | 171 | /* line 97, ../sass/_keyframes.sass */ 172 | 100% { 173 | transform: rotate(359deg); 174 | -webkit-transform: rotate(359deg); 175 | -moz-transform: rotate(359deg); 176 | -ms-transform: rotate(359deg); 177 | -o-transform: rotate(359deg); 178 | } 179 | } 180 | 181 | @-ms-keyframes vex-rotation { 182 | /* line 95, ../sass/_keyframes.sass */ 183 | 0% { 184 | transform: rotate(0deg); 185 | -webkit-transform: rotate(0deg); 186 | -moz-transform: rotate(0deg); 187 | -ms-transform: rotate(0deg); 188 | -o-transform: rotate(0deg); 189 | } 190 | 191 | /* line 97, ../sass/_keyframes.sass */ 192 | 100% { 193 | transform: rotate(359deg); 194 | -webkit-transform: rotate(359deg); 195 | -moz-transform: rotate(359deg); 196 | -ms-transform: rotate(359deg); 197 | -o-transform: rotate(359deg); 198 | } 199 | } 200 | 201 | @-o-keyframes vex-rotation { 202 | /* line 95, ../sass/_keyframes.sass */ 203 | 0% { 204 | transform: rotate(0deg); 205 | -webkit-transform: rotate(0deg); 206 | -moz-transform: rotate(0deg); 207 | -ms-transform: rotate(0deg); 208 | -o-transform: rotate(0deg); 209 | } 210 | 211 | /* line 97, ../sass/_keyframes.sass */ 212 | 100% { 213 | transform: rotate(359deg); 214 | -webkit-transform: rotate(359deg); 215 | -moz-transform: rotate(359deg); 216 | -ms-transform: rotate(359deg); 217 | -o-transform: rotate(359deg); 218 | } 219 | } 220 | 221 | /* line 11, ../sass/vex.sass */ 222 | .vex, .vex *, .vex *:before, .vex *:after { 223 | -webkit-box-sizing: border-box; 224 | -moz-box-sizing: border-box; 225 | box-sizing: border-box; 226 | } 227 | 228 | /* line 14, ../sass/vex.sass */ 229 | .vex { 230 | position: fixed; 231 | overflow: auto; 232 | -webkit-overflow-scrolling: touch; 233 | z-index: 1111; 234 | top: 0; 235 | right: 0; 236 | bottom: 0; 237 | left: 0; 238 | } 239 | 240 | /* line 25, ../sass/vex.sass */ 241 | .vex-overlay { 242 | background: black; 243 | filter: alpha(opacity=40); 244 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; 245 | } 246 | 247 | /* line 30, ../sass/vex.sass */ 248 | .vex-overlay { 249 | animation: vex-fadein 0.5s; 250 | -webkit-animation: vex-fadein 0.5s; 251 | -moz-animation: vex-fadein 0.5s; 252 | -ms-animation: vex-fadein 0.5s; 253 | -o-animation: vex-fadein 0.5s; 254 | -webkit-backface-visibility: hidden; 255 | position: fixed; 256 | background: rgba(0, 0, 0, 0.4); 257 | top: 0; 258 | right: 0; 259 | bottom: 0; 260 | left: 0; 261 | } 262 | /* line 39, ../sass/vex.sass */ 263 | .vex.vex-closing .vex-overlay { 264 | animation: vex-fadeout 0.5s; 265 | -webkit-animation: vex-fadeout 0.5s; 266 | -moz-animation: vex-fadeout 0.5s; 267 | -ms-animation: vex-fadeout 0.5s; 268 | -o-animation: vex-fadeout 0.5s; 269 | -webkit-backface-visibility: hidden; 270 | } 271 | 272 | /* line 42, ../sass/vex.sass */ 273 | .vex-content { 274 | animation: vex-fadein 0.5s; 275 | -webkit-animation: vex-fadein 0.5s; 276 | -moz-animation: vex-fadein 0.5s; 277 | -ms-animation: vex-fadein 0.5s; 278 | -o-animation: vex-fadein 0.5s; 279 | -webkit-backface-visibility: hidden; 280 | background: white; 281 | } 282 | /* line 46, ../sass/vex.sass */ 283 | .vex.vex-closing .vex-content { 284 | animation: vex-fadeout 0.5s; 285 | -webkit-animation: vex-fadeout 0.5s; 286 | -moz-animation: vex-fadeout 0.5s; 287 | -ms-animation: vex-fadeout 0.5s; 288 | -o-animation: vex-fadeout 0.5s; 289 | -webkit-backface-visibility: hidden; 290 | } 291 | 292 | /* line 49, ../sass/vex.sass */ 293 | .vex-close:before { 294 | font-family: Arial, sans-serif; 295 | content: "\00D7"; 296 | } 297 | 298 | /* line 53, ../sass/vex.sass */ 299 | .vex-dialog-form { 300 | margin: 0; 301 | } 302 | 303 | /* line 56, ../sass/vex.sass */ 304 | .vex-dialog-button { 305 | -webkit-appearance: none; 306 | cursor: pointer; 307 | } 308 | 309 | /* line 60, ../sass/vex.sass */ 310 | .vex-loading-spinner { 311 | animation: vex-rotation 0.7s linear infinite; 312 | -webkit-animation: vex-rotation 0.7s linear infinite; 313 | -moz-animation: vex-rotation 0.7s linear infinite; 314 | -ms-animation: vex-rotation 0.7s linear infinite; 315 | -o-animation: vex-rotation 0.7s linear infinite; 316 | -webkit-backface-visibility: hidden; 317 | -webkit-box-shadow: 0 0 1em rgba(0, 0, 0, 0.1); 318 | -moz-box-shadow: 0 0 1em rgba(0, 0, 0, 0.1); 319 | box-shadow: 0 0 1em rgba(0, 0, 0, 0.1); 320 | position: fixed; 321 | z-index: 1112; 322 | margin: auto; 323 | top: 0; 324 | right: 0; 325 | bottom: 0; 326 | left: 0; 327 | height: 2em; 328 | width: 2em; 329 | background: white; 330 | } 331 | 332 | /* line 76, ../sass/vex.sass */ 333 | body.vex-open { 334 | overflow: hidden; 335 | } 336 | -------------------------------------------------------------------------------- /assets/libs/bootstrap/css/bootstrap-theme-3.0.3.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.0.3 (http://getbootstrap.com) 3 | * Copyright 2013 Twitter, Inc. 4 | * Licensed under http://www.apache.org/licenses/LICENSE-2.0 5 | */ 6 | 7 | .btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn:active,.btn.active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe0e0e0',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-primary{background-image:-webkit-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:linear-gradient(to bottom,#428bca 0,#2d6ca2 100%);background-repeat:repeat-x;border-color:#2b669a;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff2d6ca2',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus{background-color:#2d6ca2;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#2d6ca2;border-color:#2b669a}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);background-repeat:repeat-x;border-color:#3e8f3e;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',endColorstr='#ff419641',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);background-repeat:repeat-x;border-color:#e38d13;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',endColorstr='#ffeb9316',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);background-repeat:repeat-x;border-color:#b92c28;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',endColorstr='#ffc12e2a',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);background-repeat:repeat-x;border-color:#28a4c9;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2aabd2',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#ffe8e8e8',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-color:#357ebd;background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff357ebd',GradientType=0)}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);background-repeat:repeat-x;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff8f8f8',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075)}.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb',endColorstr='#fff3f3f3',GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.075);box-shadow:inset 0 3px 9px rgba(0,0,0,0.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,0.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#222 0,#282828 100%);background-image:linear-gradient(to bottom,#222 0,#282828 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff282828',GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.25);box-shadow:inset 0 3px 9px rgba(0,0,0,0.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;border-color:#b2dba1;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',endColorstr='#ffc8e5bc',GradientType=0)}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);background-repeat:repeat-x;border-color:#9acfea;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',endColorstr='#ffb9def0',GradientType=0)}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);background-repeat:repeat-x;border-color:#f5e79e;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',endColorstr='#fff8efc0',GradientType=0)}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);background-repeat:repeat-x;border-color:#dca7a7;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',endColorstr='#ffe7c3c3',GradientType=0)}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb',endColorstr='#fff5f5f5',GradientType=0)}.progress-bar{background-image:-webkit-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3071a9',GradientType=0)}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',endColorstr='#ff449d44',GradientType=0)}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff31b0d5',GradientType=0)}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',endColorstr='#ffec971f',GradientType=0)}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',endColorstr='#ffc9302c',GradientType=0)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);background-repeat:repeat-x;border-color:#3278b3;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3278b3',GradientType=0)}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#ffe8e8e8',GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff357ebd',GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',endColorstr='#ffd0e9c6',GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',endColorstr='#ffc4e3f3',GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',endColorstr='#fffaf2cc',GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',endColorstr='#ffebcccc',GradientType=0)}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);background-repeat:repeat-x;border-color:#dcdcdc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8',endColorstr='#fff5f5f5',GradientType=0);-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1)} -------------------------------------------------------------------------------- /assets/libs/messenger/css/messenger-theme-air.css: -------------------------------------------------------------------------------- 1 | @import url("http://fonts.googleapis.com/css?family=Raleway:400"); 2 | @-webkit-keyframes ui-spinner-rotate-right { 3 | /* line 64, ../../src/sass/messenger-spinner.scss */ 4 | 0% { 5 | -webkit-transform: rotate(0deg); 6 | } 7 | 8 | /* line 65, ../../src/sass/messenger-spinner.scss */ 9 | 25% { 10 | -webkit-transform: rotate(180deg); 11 | } 12 | 13 | /* line 66, ../../src/sass/messenger-spinner.scss */ 14 | 50% { 15 | -webkit-transform: rotate(180deg); 16 | } 17 | 18 | /* line 67, ../../src/sass/messenger-spinner.scss */ 19 | 75% { 20 | -webkit-transform: rotate(360deg); 21 | } 22 | 23 | /* line 68, ../../src/sass/messenger-spinner.scss */ 24 | 100% { 25 | -webkit-transform: rotate(360deg); 26 | } 27 | } 28 | 29 | @-webkit-keyframes ui-spinner-rotate-left { 30 | /* line 72, ../../src/sass/messenger-spinner.scss */ 31 | 0% { 32 | -webkit-transform: rotate(0deg); 33 | } 34 | 35 | /* line 73, ../../src/sass/messenger-spinner.scss */ 36 | 25% { 37 | -webkit-transform: rotate(0deg); 38 | } 39 | 40 | /* line 74, ../../src/sass/messenger-spinner.scss */ 41 | 50% { 42 | -webkit-transform: rotate(180deg); 43 | } 44 | 45 | /* line 75, ../../src/sass/messenger-spinner.scss */ 46 | 75% { 47 | -webkit-transform: rotate(180deg); 48 | } 49 | 50 | /* line 76, ../../src/sass/messenger-spinner.scss */ 51 | 100% { 52 | -webkit-transform: rotate(360deg); 53 | } 54 | } 55 | 56 | @-moz-keyframes ui-spinner-rotate-right { 57 | /* line 80, ../../src/sass/messenger-spinner.scss */ 58 | 0% { 59 | -moz-transform: rotate(0deg); 60 | } 61 | 62 | /* line 81, ../../src/sass/messenger-spinner.scss */ 63 | 25% { 64 | -moz-transform: rotate(180deg); 65 | } 66 | 67 | /* line 82, ../../src/sass/messenger-spinner.scss */ 68 | 50% { 69 | -moz-transform: rotate(180deg); 70 | } 71 | 72 | /* line 83, ../../src/sass/messenger-spinner.scss */ 73 | 75% { 74 | -moz-transform: rotate(360deg); 75 | } 76 | 77 | /* line 84, ../../src/sass/messenger-spinner.scss */ 78 | 100% { 79 | -moz-transform: rotate(360deg); 80 | } 81 | } 82 | 83 | @-moz-keyframes ui-spinner-rotate-left { 84 | /* line 88, ../../src/sass/messenger-spinner.scss */ 85 | 0% { 86 | -moz-transform: rotate(0deg); 87 | } 88 | 89 | /* line 89, ../../src/sass/messenger-spinner.scss */ 90 | 25% { 91 | -moz-transform: rotate(0deg); 92 | } 93 | 94 | /* line 90, ../../src/sass/messenger-spinner.scss */ 95 | 50% { 96 | -moz-transform: rotate(180deg); 97 | } 98 | 99 | /* line 91, ../../src/sass/messenger-spinner.scss */ 100 | 75% { 101 | -moz-transform: rotate(180deg); 102 | } 103 | 104 | /* line 92, ../../src/sass/messenger-spinner.scss */ 105 | 100% { 106 | -moz-transform: rotate(360deg); 107 | } 108 | } 109 | 110 | @keyframes ui-spinner-rotate-right { 111 | /* line 96, ../../src/sass/messenger-spinner.scss */ 112 | 0% { 113 | transform: rotate(0deg); 114 | } 115 | 116 | /* line 97, ../../src/sass/messenger-spinner.scss */ 117 | 25% { 118 | transform: rotate(180deg); 119 | } 120 | 121 | /* line 98, ../../src/sass/messenger-spinner.scss */ 122 | 50% { 123 | transform: rotate(180deg); 124 | } 125 | 126 | /* line 99, ../../src/sass/messenger-spinner.scss */ 127 | 75% { 128 | transform: rotate(360deg); 129 | } 130 | 131 | /* line 100, ../../src/sass/messenger-spinner.scss */ 132 | 100% { 133 | transform: rotate(360deg); 134 | } 135 | } 136 | 137 | @keyframes ui-spinner-rotate-left { 138 | /* line 104, ../../src/sass/messenger-spinner.scss */ 139 | 0% { 140 | transform: rotate(0deg); 141 | } 142 | 143 | /* line 105, ../../src/sass/messenger-spinner.scss */ 144 | 25% { 145 | transform: rotate(0deg); 146 | } 147 | 148 | /* line 106, ../../src/sass/messenger-spinner.scss */ 149 | 50% { 150 | transform: rotate(180deg); 151 | } 152 | 153 | /* line 107, ../../src/sass/messenger-spinner.scss */ 154 | 75% { 155 | transform: rotate(180deg); 156 | } 157 | 158 | /* line 108, ../../src/sass/messenger-spinner.scss */ 159 | 100% { 160 | transform: rotate(360deg); 161 | } 162 | } 163 | 164 | /* line 116, ../../src/sass/messenger-spinner.scss */ 165 | .messenger-spinner { 166 | position: relative; 167 | border-radius: 100%; 168 | } 169 | /* line 120, ../../src/sass/messenger-spinner.scss */ 170 | ul.messenger.messenger-spinner-active .messenger-spinner .messenger-spinner { 171 | display: block; 172 | } 173 | /* line 124, ../../src/sass/messenger-spinner.scss */ 174 | .messenger-spinner .messenger-spinner-side { 175 | width: 50%; 176 | height: 100%; 177 | overflow: hidden; 178 | position: absolute; 179 | } 180 | /* line 130, ../../src/sass/messenger-spinner.scss */ 181 | .messenger-spinner .messenger-spinner-side .messenger-spinner-fill { 182 | border-radius: 999px; 183 | position: absolute; 184 | width: 100%; 185 | height: 100%; 186 | -webkit-animation-iteration-count: infinite; 187 | -moz-animation-iteration-count: infinite; 188 | -ms-animation-iteration-count: infinite; 189 | -o-animation-iteration-count: infinite; 190 | animation-iteration-count: infinite; 191 | -webkit-animation-timing-function: linear; 192 | -moz-animation-timing-function: linear; 193 | -ms-animation-timing-function: linear; 194 | -o-animation-timing-function: linear; 195 | animation-timing-function: linear; 196 | } 197 | /* line 140, ../../src/sass/messenger-spinner.scss */ 198 | .messenger-spinner .messenger-spinner-side-left { 199 | left: 0; 200 | } 201 | /* line 143, ../../src/sass/messenger-spinner.scss */ 202 | .messenger-spinner .messenger-spinner-side-left .messenger-spinner-fill { 203 | left: 100%; 204 | border-top-left-radius: 0; 205 | border-bottom-left-radius: 0; 206 | -webkit-animation-name: ui-spinner-rotate-left; 207 | -moz-animation-name: ui-spinner-rotate-left; 208 | -ms-animation-name: ui-spinner-rotate-left; 209 | -o-animation-name: ui-spinner-rotate-left; 210 | animation-name: ui-spinner-rotate-left; 211 | -webkit-transform-origin: 0 50%; 212 | -moz-transform-origin: 0 50%; 213 | -ms-transform-origin: 0 50%; 214 | -o-transform-origin: 0 50%; 215 | transform-origin: 0 50%; 216 | } 217 | /* line 152, ../../src/sass/messenger-spinner.scss */ 218 | .messenger-spinner .messenger-spinner-side-right { 219 | left: 50%; 220 | } 221 | /* line 155, ../../src/sass/messenger-spinner.scss */ 222 | .messenger-spinner .messenger-spinner-side-right .messenger-spinner-fill { 223 | left: -100%; 224 | border-top-right-radius: 0; 225 | border-bottom-right-radius: 0; 226 | -webkit-animation-name: ui-spinner-rotate-right; 227 | -moz-animation-name: ui-spinner-rotate-right; 228 | -ms-animation-name: ui-spinner-rotate-right; 229 | -o-animation-name: ui-spinner-rotate-right; 230 | animation-name: ui-spinner-rotate-right; 231 | -webkit-transform-origin: 100% 50%; 232 | -moz-transform-origin: 100% 50%; 233 | -ms-transform-origin: 100% 50%; 234 | -o-transform-origin: 100% 50%; 235 | transform-origin: 100% 50%; 236 | } 237 | 238 | /* line 16, ../../src/sass/messenger-theme-air.sass */ 239 | ul.messenger-theme-air { 240 | -moz-user-select: none; 241 | -webkit-user-select: none; 242 | -o-user-select: none; 243 | user-select: none; 244 | font-family: "Raleway", sans-serif; 245 | } 246 | /* line 20, ../../src/sass/messenger-theme-air.sass */ 247 | ul.messenger-theme-air .messenger-message { 248 | -webkit-transition: background-color 0.4s; 249 | -moz-transition: background-color 0.4s; 250 | -o-transition: background-color 0.4s; 251 | transition: background-color 0.4s; 252 | -webkit-border-radius: 5px; 253 | -moz-border-radius: 5px; 254 | -ms-border-radius: 5px; 255 | -o-border-radius: 5px; 256 | border-radius: 5px; 257 | -webkit-box-shadow: inset 0 0 0 1px white, inset 0 2px white, 0 0 0 1px rgba(0, 0, 0, 0.1), 0 1px rgba(0, 0, 0, 0.2); 258 | -moz-box-shadow: inset 0 0 0 1px white, inset 0 2px white, 0 0 0 1px rgba(0, 0, 0, 0.1), 0 1px rgba(0, 0, 0, 0.2); 259 | box-shadow: inset 0 0 0 1px white, inset 0 2px white, 0 0 0 1px rgba(0, 0, 0, 0.1), 0 1px rgba(0, 0, 0, 0.2); 260 | border: 0px; 261 | background-color: rgba(255, 255, 255, 0.8); 262 | position: relative; 263 | margin-bottom: 1em; 264 | font-size: 13px; 265 | color: #666666; 266 | font-weight: 500; 267 | padding: 10px 30px 11px 46px; 268 | } 269 | /* line 33, ../../src/sass/messenger-theme-air.sass */ 270 | ul.messenger-theme-air .messenger-message:hover { 271 | background-color: white; 272 | } 273 | /* line 36, ../../src/sass/messenger-theme-air.sass */ 274 | ul.messenger-theme-air .messenger-message .messenger-close { 275 | position: absolute; 276 | top: 0px; 277 | right: 0px; 278 | color: #888888; 279 | opacity: 1; 280 | font-weight: bold; 281 | display: block; 282 | font-size: 20px; 283 | line-height: 20px; 284 | padding: 8px 10px 7px 7px; 285 | cursor: pointer; 286 | background: transparent; 287 | border: 0; 288 | -webkit-appearance: none; 289 | } 290 | /* line 52, ../../src/sass/messenger-theme-air.sass */ 291 | ul.messenger-theme-air .messenger-message .messenger-close:hover { 292 | color: #444444; 293 | } 294 | /* line 55, ../../src/sass/messenger-theme-air.sass */ 295 | ul.messenger-theme-air .messenger-message .messenger-close:active { 296 | color: #222222; 297 | } 298 | /* line 58, ../../src/sass/messenger-theme-air.sass */ 299 | ul.messenger-theme-air .messenger-message .messenger-actions { 300 | float: none; 301 | margin-top: 10px; 302 | } 303 | /* line 62, ../../src/sass/messenger-theme-air.sass */ 304 | ul.messenger-theme-air .messenger-message .messenger-actions a { 305 | -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1), inset 0px 1px rgba(255, 255, 255, 0.05); 306 | -moz-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1), inset 0px 1px rgba(255, 255, 255, 0.05); 307 | box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1), inset 0px 1px rgba(255, 255, 255, 0.05); 308 | -webkit-border-radius: 4px; 309 | -moz-border-radius: 4px; 310 | -ms-border-radius: 4px; 311 | -o-border-radius: 4px; 312 | border-radius: 4px; 313 | text-decoration: none; 314 | display: inline-block; 315 | padding: 10px; 316 | color: #888888; 317 | margin-right: 10px; 318 | padding: 3px 10px 5px; 319 | text-transform: capitalize; 320 | } 321 | /* line 73, ../../src/sass/messenger-theme-air.sass */ 322 | ul.messenger-theme-air .messenger-message .messenger-actions a:hover { 323 | -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1), inset 0px 1px rgba(255, 255, 255, 0.15); 324 | -moz-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1), inset 0px 1px rgba(255, 255, 255, 0.15); 325 | box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1), inset 0px 1px rgba(255, 255, 255, 0.15); 326 | color: #444444; 327 | } 328 | /* line 77, ../../src/sass/messenger-theme-air.sass */ 329 | ul.messenger-theme-air .messenger-message .messenger-actions a:active { 330 | -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.18), inset 0px 1px rgba(0, 0, 0, 0.05); 331 | -moz-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.18), inset 0px 1px rgba(0, 0, 0, 0.05); 332 | box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.18), inset 0px 1px rgba(0, 0, 0, 0.05); 333 | background: rgba(0, 0, 0, 0.04); 334 | color: #444444; 335 | } 336 | /* line 82, ../../src/sass/messenger-theme-air.sass */ 337 | ul.messenger-theme-air .messenger-message .messenger-actions .messenger-phrase { 338 | display: none; 339 | } 340 | /* line 85, ../../src/sass/messenger-theme-air.sass */ 341 | ul.messenger-theme-air .messenger-message .messenger-message-inner:before { 342 | -webkit-box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.3); 343 | -moz-box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.3); 344 | box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.3); 345 | -webkit-border-radius: 50%; 346 | -moz-border-radius: 50%; 347 | -ms-border-radius: 50%; 348 | -o-border-radius: 50%; 349 | border-radius: 50%; 350 | position: absolute; 351 | left: 17px; 352 | display: block; 353 | content: " "; 354 | top: 50%; 355 | margin-top: -8px; 356 | height: 13px; 357 | width: 13px; 358 | z-index: 20; 359 | } 360 | /* line 99, ../../src/sass/messenger-theme-air.sass */ 361 | ul.messenger-theme-air .messenger-message.alert-success .messenger-message-inner:before { 362 | background-color: #5fca4a; 363 | } 364 | /* line 32, ../../src/sass/messenger-spinner.scss */ 365 | ul.messenger-theme-air .messenger-message.alert-error.messenger-retry-soon .messenger-spinner { 366 | width: 24px; 367 | height: 24px; 368 | background: transparent; 369 | } 370 | /* line 37, ../../src/sass/messenger-spinner.scss */ 371 | ul.messenger-theme-air .messenger-message.alert-error.messenger-retry-soon .messenger-spinner .messenger-spinner-side .messenger-spinner-fill { 372 | background: #dd6a45; 373 | -webkit-animation-duration: 20s; 374 | -moz-animation-duration: 20s; 375 | -ms-animation-duration: 20s; 376 | -o-animation-duration: 20s; 377 | animation-duration: 20s; 378 | opacity: 1; 379 | } 380 | /* line 45, ../../src/sass/messenger-spinner.scss */ 381 | ul.messenger-theme-air .messenger-message.alert-error.messenger-retry-soon .messenger-spinner:after { 382 | content: ""; 383 | background: white; 384 | position: absolute; 385 | width: 19px; 386 | height: 19px; 387 | border-radius: 50%; 388 | top: 2px; 389 | left: 2px; 390 | display: block; 391 | } 392 | /* line 32, ../../src/sass/messenger-spinner.scss */ 393 | ul.messenger-theme-air .messenger-message.alert-error.messenger-retry-later .messenger-spinner { 394 | width: 24px; 395 | height: 24px; 396 | background: transparent; 397 | } 398 | /* line 37, ../../src/sass/messenger-spinner.scss */ 399 | ul.messenger-theme-air .messenger-message.alert-error.messenger-retry-later .messenger-spinner .messenger-spinner-side .messenger-spinner-fill { 400 | background: #dd6a45; 401 | -webkit-animation-duration: 600s; 402 | -moz-animation-duration: 600s; 403 | -ms-animation-duration: 600s; 404 | -o-animation-duration: 600s; 405 | animation-duration: 600s; 406 | opacity: 1; 407 | } 408 | /* line 45, ../../src/sass/messenger-spinner.scss */ 409 | ul.messenger-theme-air .messenger-message.alert-error.messenger-retry-later .messenger-spinner:after { 410 | content: ""; 411 | background: white; 412 | position: absolute; 413 | width: 19px; 414 | height: 19px; 415 | border-radius: 50%; 416 | top: 2px; 417 | left: 2px; 418 | display: block; 419 | } 420 | /* line 109, ../../src/sass/messenger-theme-air.sass */ 421 | ul.messenger-theme-air .messenger-message.alert-error .messenger-message-inner:before { 422 | background-color: #dd6a45; 423 | } 424 | /* line 113, ../../src/sass/messenger-theme-air.sass */ 425 | ul.messenger-theme-air .messenger-message.alert-info .messenger-message-inner:before { 426 | background-color: #61c4b8; 427 | } 428 | /* line 116, ../../src/sass/messenger-theme-air.sass */ 429 | ul.messenger-theme-air .messenger-spinner { 430 | display: block; 431 | position: absolute; 432 | left: 12px; 433 | top: 50%; 434 | margin-top: -13px; 435 | z-index: 999; 436 | height: 24px; 437 | width: 24px; 438 | z-index: 10; 439 | } 440 | -------------------------------------------------------------------------------- /assets/libs/messenger/css/messenger-theme-flat.css: -------------------------------------------------------------------------------- 1 | @-webkit-keyframes ui-spinner-rotate-right { 2 | /* line 64, ../../src/sass/messenger-spinner.scss */ 3 | 0% { 4 | -webkit-transform: rotate(0deg); 5 | } 6 | 7 | /* line 65, ../../src/sass/messenger-spinner.scss */ 8 | 25% { 9 | -webkit-transform: rotate(180deg); 10 | } 11 | 12 | /* line 66, ../../src/sass/messenger-spinner.scss */ 13 | 50% { 14 | -webkit-transform: rotate(180deg); 15 | } 16 | 17 | /* line 67, ../../src/sass/messenger-spinner.scss */ 18 | 75% { 19 | -webkit-transform: rotate(360deg); 20 | } 21 | 22 | /* line 68, ../../src/sass/messenger-spinner.scss */ 23 | 100% { 24 | -webkit-transform: rotate(360deg); 25 | } 26 | } 27 | 28 | @-webkit-keyframes ui-spinner-rotate-left { 29 | /* line 72, ../../src/sass/messenger-spinner.scss */ 30 | 0% { 31 | -webkit-transform: rotate(0deg); 32 | } 33 | 34 | /* line 73, ../../src/sass/messenger-spinner.scss */ 35 | 25% { 36 | -webkit-transform: rotate(0deg); 37 | } 38 | 39 | /* line 74, ../../src/sass/messenger-spinner.scss */ 40 | 50% { 41 | -webkit-transform: rotate(180deg); 42 | } 43 | 44 | /* line 75, ../../src/sass/messenger-spinner.scss */ 45 | 75% { 46 | -webkit-transform: rotate(180deg); 47 | } 48 | 49 | /* line 76, ../../src/sass/messenger-spinner.scss */ 50 | 100% { 51 | -webkit-transform: rotate(360deg); 52 | } 53 | } 54 | 55 | @-moz-keyframes ui-spinner-rotate-right { 56 | /* line 80, ../../src/sass/messenger-spinner.scss */ 57 | 0% { 58 | -moz-transform: rotate(0deg); 59 | } 60 | 61 | /* line 81, ../../src/sass/messenger-spinner.scss */ 62 | 25% { 63 | -moz-transform: rotate(180deg); 64 | } 65 | 66 | /* line 82, ../../src/sass/messenger-spinner.scss */ 67 | 50% { 68 | -moz-transform: rotate(180deg); 69 | } 70 | 71 | /* line 83, ../../src/sass/messenger-spinner.scss */ 72 | 75% { 73 | -moz-transform: rotate(360deg); 74 | } 75 | 76 | /* line 84, ../../src/sass/messenger-spinner.scss */ 77 | 100% { 78 | -moz-transform: rotate(360deg); 79 | } 80 | } 81 | 82 | @-moz-keyframes ui-spinner-rotate-left { 83 | /* line 88, ../../src/sass/messenger-spinner.scss */ 84 | 0% { 85 | -moz-transform: rotate(0deg); 86 | } 87 | 88 | /* line 89, ../../src/sass/messenger-spinner.scss */ 89 | 25% { 90 | -moz-transform: rotate(0deg); 91 | } 92 | 93 | /* line 90, ../../src/sass/messenger-spinner.scss */ 94 | 50% { 95 | -moz-transform: rotate(180deg); 96 | } 97 | 98 | /* line 91, ../../src/sass/messenger-spinner.scss */ 99 | 75% { 100 | -moz-transform: rotate(180deg); 101 | } 102 | 103 | /* line 92, ../../src/sass/messenger-spinner.scss */ 104 | 100% { 105 | -moz-transform: rotate(360deg); 106 | } 107 | } 108 | 109 | @keyframes ui-spinner-rotate-right { 110 | /* line 96, ../../src/sass/messenger-spinner.scss */ 111 | 0% { 112 | transform: rotate(0deg); 113 | } 114 | 115 | /* line 97, ../../src/sass/messenger-spinner.scss */ 116 | 25% { 117 | transform: rotate(180deg); 118 | } 119 | 120 | /* line 98, ../../src/sass/messenger-spinner.scss */ 121 | 50% { 122 | transform: rotate(180deg); 123 | } 124 | 125 | /* line 99, ../../src/sass/messenger-spinner.scss */ 126 | 75% { 127 | transform: rotate(360deg); 128 | } 129 | 130 | /* line 100, ../../src/sass/messenger-spinner.scss */ 131 | 100% { 132 | transform: rotate(360deg); 133 | } 134 | } 135 | 136 | @keyframes ui-spinner-rotate-left { 137 | /* line 104, ../../src/sass/messenger-spinner.scss */ 138 | 0% { 139 | transform: rotate(0deg); 140 | } 141 | 142 | /* line 105, ../../src/sass/messenger-spinner.scss */ 143 | 25% { 144 | transform: rotate(0deg); 145 | } 146 | 147 | /* line 106, ../../src/sass/messenger-spinner.scss */ 148 | 50% { 149 | transform: rotate(180deg); 150 | } 151 | 152 | /* line 107, ../../src/sass/messenger-spinner.scss */ 153 | 75% { 154 | transform: rotate(180deg); 155 | } 156 | 157 | /* line 108, ../../src/sass/messenger-spinner.scss */ 158 | 100% { 159 | transform: rotate(360deg); 160 | } 161 | } 162 | 163 | /* line 116, ../../src/sass/messenger-spinner.scss */ 164 | .messenger-spinner { 165 | position: relative; 166 | border-radius: 100%; 167 | } 168 | /* line 120, ../../src/sass/messenger-spinner.scss */ 169 | ul.messenger.messenger-spinner-active .messenger-spinner .messenger-spinner { 170 | display: block; 171 | } 172 | /* line 124, ../../src/sass/messenger-spinner.scss */ 173 | .messenger-spinner .messenger-spinner-side { 174 | width: 50%; 175 | height: 100%; 176 | overflow: hidden; 177 | position: absolute; 178 | } 179 | /* line 130, ../../src/sass/messenger-spinner.scss */ 180 | .messenger-spinner .messenger-spinner-side .messenger-spinner-fill { 181 | border-radius: 999px; 182 | position: absolute; 183 | width: 100%; 184 | height: 100%; 185 | -webkit-animation-iteration-count: infinite; 186 | -moz-animation-iteration-count: infinite; 187 | -ms-animation-iteration-count: infinite; 188 | -o-animation-iteration-count: infinite; 189 | animation-iteration-count: infinite; 190 | -webkit-animation-timing-function: linear; 191 | -moz-animation-timing-function: linear; 192 | -ms-animation-timing-function: linear; 193 | -o-animation-timing-function: linear; 194 | animation-timing-function: linear; 195 | } 196 | /* line 140, ../../src/sass/messenger-spinner.scss */ 197 | .messenger-spinner .messenger-spinner-side-left { 198 | left: 0; 199 | } 200 | /* line 143, ../../src/sass/messenger-spinner.scss */ 201 | .messenger-spinner .messenger-spinner-side-left .messenger-spinner-fill { 202 | left: 100%; 203 | border-top-left-radius: 0; 204 | border-bottom-left-radius: 0; 205 | -webkit-animation-name: ui-spinner-rotate-left; 206 | -moz-animation-name: ui-spinner-rotate-left; 207 | -ms-animation-name: ui-spinner-rotate-left; 208 | -o-animation-name: ui-spinner-rotate-left; 209 | animation-name: ui-spinner-rotate-left; 210 | -webkit-transform-origin: 0 50%; 211 | -moz-transform-origin: 0 50%; 212 | -ms-transform-origin: 0 50%; 213 | -o-transform-origin: 0 50%; 214 | transform-origin: 0 50%; 215 | } 216 | /* line 152, ../../src/sass/messenger-spinner.scss */ 217 | .messenger-spinner .messenger-spinner-side-right { 218 | left: 50%; 219 | } 220 | /* line 155, ../../src/sass/messenger-spinner.scss */ 221 | .messenger-spinner .messenger-spinner-side-right .messenger-spinner-fill { 222 | left: -100%; 223 | border-top-right-radius: 0; 224 | border-bottom-right-radius: 0; 225 | -webkit-animation-name: ui-spinner-rotate-right; 226 | -moz-animation-name: ui-spinner-rotate-right; 227 | -ms-animation-name: ui-spinner-rotate-right; 228 | -o-animation-name: ui-spinner-rotate-right; 229 | animation-name: ui-spinner-rotate-right; 230 | -webkit-transform-origin: 100% 50%; 231 | -moz-transform-origin: 100% 50%; 232 | -ms-transform-origin: 100% 50%; 233 | -o-transform-origin: 100% 50%; 234 | transform-origin: 100% 50%; 235 | } 236 | 237 | /* line 15, ../../src/sass/messenger-theme-flat.sass */ 238 | ul.messenger-theme-flat { 239 | -webkit-border-radius: 4px; 240 | -moz-border-radius: 4px; 241 | -ms-border-radius: 4px; 242 | -o-border-radius: 4px; 243 | border-radius: 4px; 244 | -moz-user-select: none; 245 | -webkit-user-select: none; 246 | -o-user-select: none; 247 | user-select: none; 248 | background: #404040; 249 | } 250 | /* line 20, ../../src/sass/messenger-theme-flat.sass */ 251 | ul.messenger-theme-flat.messenger-empty { 252 | display: none; 253 | } 254 | /* line 23, ../../src/sass/messenger-theme-flat.sass */ 255 | ul.messenger-theme-flat .messenger-message { 256 | -webkit-box-shadow: inset 0px 1px rgba(255, 255, 255, 0.13), inset 48px 0px 0px #292929; 257 | -moz-box-shadow: inset 0px 1px rgba(255, 255, 255, 0.13), inset 48px 0px 0px #292929; 258 | box-shadow: inset 0px 1px rgba(255, 255, 255, 0.13), inset 48px 0px 0px #292929; 259 | -webkit-border-radius: 0px; 260 | -moz-border-radius: 0px; 261 | -ms-border-radius: 0px; 262 | -o-border-radius: 0px; 263 | border-radius: 0px; 264 | position: relative; 265 | border: 0px; 266 | margin-bottom: 0px; 267 | font-size: 13px; 268 | background: transparent; 269 | color: #f0f0f0; 270 | font-weight: 500; 271 | padding: 10px 30px 13px 65px; 272 | } 273 | /* line 35, ../../src/sass/messenger-theme-flat.sass */ 274 | ul.messenger-theme-flat .messenger-message .messenger-close { 275 | position: absolute; 276 | top: 0px; 277 | right: 0px; 278 | color: #888888; 279 | opacity: 1; 280 | font-weight: bold; 281 | display: block; 282 | font-size: 20px; 283 | line-height: 20px; 284 | padding: 8px 10px 7px 7px; 285 | cursor: pointer; 286 | background: transparent; 287 | border: 0; 288 | -webkit-appearance: none; 289 | } 290 | /* line 51, ../../src/sass/messenger-theme-flat.sass */ 291 | ul.messenger-theme-flat .messenger-message .messenger-close:hover { 292 | color: #bbbbbb; 293 | } 294 | /* line 54, ../../src/sass/messenger-theme-flat.sass */ 295 | ul.messenger-theme-flat .messenger-message .messenger-close:active { 296 | color: #777777; 297 | } 298 | /* line 57, ../../src/sass/messenger-theme-flat.sass */ 299 | ul.messenger-theme-flat .messenger-message .messenger-actions { 300 | float: none; 301 | margin-top: 10px; 302 | } 303 | /* line 61, ../../src/sass/messenger-theme-flat.sass */ 304 | ul.messenger-theme-flat .messenger-message .messenger-actions a { 305 | -webkit-border-radius: 4px; 306 | -moz-border-radius: 4px; 307 | -ms-border-radius: 4px; 308 | -o-border-radius: 4px; 309 | border-radius: 4px; 310 | text-decoration: none; 311 | color: #aaaaaa; 312 | background: #2e2e2e; 313 | display: inline-block; 314 | padding: 10px; 315 | margin-right: 10px; 316 | padding: 4px 11px 6px; 317 | text-transform: capitalize; 318 | } 319 | /* line 72, ../../src/sass/messenger-theme-flat.sass */ 320 | ul.messenger-theme-flat .messenger-message .messenger-actions a:hover { 321 | color: #f0f0f0; 322 | background: #2e2e2e; 323 | } 324 | /* line 76, ../../src/sass/messenger-theme-flat.sass */ 325 | ul.messenger-theme-flat .messenger-message .messenger-actions a:active { 326 | background: #292929; 327 | color: #aaaaaa; 328 | } 329 | /* line 80, ../../src/sass/messenger-theme-flat.sass */ 330 | ul.messenger-theme-flat .messenger-message .messenger-actions .messenger-phrase { 331 | display: none; 332 | } 333 | /* line 83, ../../src/sass/messenger-theme-flat.sass */ 334 | ul.messenger-theme-flat .messenger-message .messenger-message-inner:before { 335 | -webkit-border-radius: 50%; 336 | -moz-border-radius: 50%; 337 | -ms-border-radius: 50%; 338 | -o-border-radius: 50%; 339 | border-radius: 50%; 340 | position: absolute; 341 | left: 17px; 342 | display: block; 343 | content: " "; 344 | top: 50%; 345 | margin-top: -8px; 346 | height: 13px; 347 | width: 13px; 348 | z-index: 20; 349 | } 350 | /* line 95, ../../src/sass/messenger-theme-flat.sass */ 351 | ul.messenger-theme-flat .messenger-message.alert-success .messenger-message-inner:before { 352 | background: #5fca4a; 353 | } 354 | /* line 98, ../../src/sass/messenger-theme-flat.sass */ 355 | ul.messenger-theme-flat .messenger-message.alert-info .messenger-message-inner:before { 356 | background: #61c4b8; 357 | } 358 | /* line 103, ../../src/sass/messenger-theme-flat.sass */ 359 | ul.messenger-theme-flat .messenger-message.alert-error .messenger-message-inner:before { 360 | background: #dd6a45; 361 | } 362 | /* line 32, ../../src/sass/messenger-spinner.scss */ 363 | ul.messenger-theme-flat .messenger-message.alert-error.messenger-retry-soon .messenger-spinner { 364 | width: 32px; 365 | height: 32px; 366 | background: transparent; 367 | } 368 | /* line 37, ../../src/sass/messenger-spinner.scss */ 369 | ul.messenger-theme-flat .messenger-message.alert-error.messenger-retry-soon .messenger-spinner .messenger-spinner-side .messenger-spinner-fill { 370 | background: #dd6a45; 371 | -webkit-animation-duration: 20s; 372 | -moz-animation-duration: 20s; 373 | -ms-animation-duration: 20s; 374 | -o-animation-duration: 20s; 375 | animation-duration: 20s; 376 | opacity: 1; 377 | } 378 | /* line 45, ../../src/sass/messenger-spinner.scss */ 379 | ul.messenger-theme-flat .messenger-message.alert-error.messenger-retry-soon .messenger-spinner:after { 380 | content: ""; 381 | background: #292929; 382 | position: absolute; 383 | width: 26px; 384 | height: 26px; 385 | border-radius: 50%; 386 | top: 3px; 387 | left: 3px; 388 | display: block; 389 | } 390 | /* line 32, ../../src/sass/messenger-spinner.scss */ 391 | ul.messenger-theme-flat .messenger-message.alert-error.messenger-retry-later .messenger-spinner { 392 | width: 32px; 393 | height: 32px; 394 | background: transparent; 395 | } 396 | /* line 37, ../../src/sass/messenger-spinner.scss */ 397 | ul.messenger-theme-flat .messenger-message.alert-error.messenger-retry-later .messenger-spinner .messenger-spinner-side .messenger-spinner-fill { 398 | background: #dd6a45; 399 | -webkit-animation-duration: 600s; 400 | -moz-animation-duration: 600s; 401 | -ms-animation-duration: 600s; 402 | -o-animation-duration: 600s; 403 | animation-duration: 600s; 404 | opacity: 1; 405 | } 406 | /* line 45, ../../src/sass/messenger-spinner.scss */ 407 | ul.messenger-theme-flat .messenger-message.alert-error.messenger-retry-later .messenger-spinner:after { 408 | content: ""; 409 | background: #292929; 410 | position: absolute; 411 | width: 26px; 412 | height: 26px; 413 | border-radius: 50%; 414 | top: 3px; 415 | left: 3px; 416 | display: block; 417 | } 418 | /* line 114, ../../src/sass/messenger-theme-flat.sass */ 419 | ul.messenger-theme-flat .messenger-message-slot.messenger-last .messenger-message { 420 | -webkit-border-radius: 4px 4px 0px 0px; 421 | -moz-border-radius: 4px 4px 0px 0px; 422 | -ms-border-radius: 4px 4px 0px 0px; 423 | -o-border-radius: 4px 4px 0px 0px; 424 | border-radius: 4px 4px 0px 0px; 425 | -webkit-box-shadow: inset 48px 0px 0px #292929; 426 | -moz-box-shadow: inset 48px 0px 0px #292929; 427 | box-shadow: inset 48px 0px 0px #292929; 428 | } 429 | /* line 118, ../../src/sass/messenger-theme-flat.sass */ 430 | ul.messenger-theme-flat .messenger-message-slot.messenger-first .messenger-message { 431 | -webkit-border-radius: 0px 0px 4px 4px; 432 | -moz-border-radius: 0px 0px 4px 4px; 433 | -ms-border-radius: 0px 0px 4px 4px; 434 | -o-border-radius: 0px 0px 4px 4px; 435 | border-radius: 0px 0px 4px 4px; 436 | -webkit-box-shadow: inset 0px 1px rgba(255, 255, 255, 0.13), inset 48px 0px 0px #292929; 437 | -moz-box-shadow: inset 0px 1px rgba(255, 255, 255, 0.13), inset 48px 0px 0px #292929; 438 | box-shadow: inset 0px 1px rgba(255, 255, 255, 0.13), inset 48px 0px 0px #292929; 439 | } 440 | /* line 122, ../../src/sass/messenger-theme-flat.sass */ 441 | ul.messenger-theme-flat .messenger-message-slot.messenger-first.messenger-last .messenger-message { 442 | -webkit-border-radius: 4px; 443 | -moz-border-radius: 4px; 444 | -ms-border-radius: 4px; 445 | -o-border-radius: 4px; 446 | border-radius: 4px; 447 | -webkit-box-shadow: inset 48px 0px 0px #292929; 448 | -moz-box-shadow: inset 48px 0px 0px #292929; 449 | box-shadow: inset 48px 0px 0px #292929; 450 | } 451 | /* line 126, ../../src/sass/messenger-theme-flat.sass */ 452 | ul.messenger-theme-flat .messenger-spinner { 453 | display: block; 454 | position: absolute; 455 | left: 7px; 456 | top: 50%; 457 | margin-top: -18px; 458 | z-index: 999; 459 | height: 32px; 460 | width: 32px; 461 | z-index: 10; 462 | } 463 | -------------------------------------------------------------------------------- /assets/libs/bootstrap/css/bootstrap-theme-3.0.3.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.0.3 (http://getbootstrap.com) 3 | * Copyright 2013 Twitter, Inc. 4 | * Licensed under http://www.apache.org/licenses/LICENSE-2.0 5 | */ 6 | 7 | .btn-default, 8 | .btn-primary, 9 | .btn-success, 10 | .btn-info, 11 | .btn-warning, 12 | .btn-danger { 13 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); 14 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); 15 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); 16 | } 17 | 18 | .btn-default:active, 19 | .btn-primary:active, 20 | .btn-success:active, 21 | .btn-info:active, 22 | .btn-warning:active, 23 | .btn-danger:active, 24 | .btn-default.active, 25 | .btn-primary.active, 26 | .btn-success.active, 27 | .btn-info.active, 28 | .btn-warning.active, 29 | .btn-danger.active { 30 | -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); 31 | box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); 32 | } 33 | 34 | .btn:active, 35 | .btn.active { 36 | background-image: none; 37 | } 38 | 39 | .btn-default { 40 | text-shadow: 0 1px 0 #fff; 41 | background-image: -webkit-linear-gradient(top, #ffffff 0%, #e0e0e0 100%); 42 | background-image: linear-gradient(to bottom, #ffffff 0%, #e0e0e0 100%); 43 | background-repeat: repeat-x; 44 | border-color: #dbdbdb; 45 | border-color: #ccc; 46 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0); 47 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 48 | } 49 | 50 | .btn-default:hover, 51 | .btn-default:focus { 52 | background-color: #e0e0e0; 53 | background-position: 0 -15px; 54 | } 55 | 56 | .btn-default:active, 57 | .btn-default.active { 58 | background-color: #e0e0e0; 59 | border-color: #dbdbdb; 60 | } 61 | 62 | .btn-primary { 63 | background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%); 64 | background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%); 65 | background-repeat: repeat-x; 66 | border-color: #2b669a; 67 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0); 68 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 69 | } 70 | 71 | .btn-primary:hover, 72 | .btn-primary:focus { 73 | background-color: #2d6ca2; 74 | background-position: 0 -15px; 75 | } 76 | 77 | .btn-primary:active, 78 | .btn-primary.active { 79 | background-color: #2d6ca2; 80 | border-color: #2b669a; 81 | } 82 | 83 | .btn-success { 84 | background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%); 85 | background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%); 86 | background-repeat: repeat-x; 87 | border-color: #3e8f3e; 88 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0); 89 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 90 | } 91 | 92 | .btn-success:hover, 93 | .btn-success:focus { 94 | background-color: #419641; 95 | background-position: 0 -15px; 96 | } 97 | 98 | .btn-success:active, 99 | .btn-success.active { 100 | background-color: #419641; 101 | border-color: #3e8f3e; 102 | } 103 | 104 | .btn-warning { 105 | background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); 106 | background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%); 107 | background-repeat: repeat-x; 108 | border-color: #e38d13; 109 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0); 110 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 111 | } 112 | 113 | .btn-warning:hover, 114 | .btn-warning:focus { 115 | background-color: #eb9316; 116 | background-position: 0 -15px; 117 | } 118 | 119 | .btn-warning:active, 120 | .btn-warning.active { 121 | background-color: #eb9316; 122 | border-color: #e38d13; 123 | } 124 | 125 | .btn-danger { 126 | background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%); 127 | background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%); 128 | background-repeat: repeat-x; 129 | border-color: #b92c28; 130 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0); 131 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 132 | } 133 | 134 | .btn-danger:hover, 135 | .btn-danger:focus { 136 | background-color: #c12e2a; 137 | background-position: 0 -15px; 138 | } 139 | 140 | .btn-danger:active, 141 | .btn-danger.active { 142 | background-color: #c12e2a; 143 | border-color: #b92c28; 144 | } 145 | 146 | .btn-info { 147 | background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); 148 | background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%); 149 | background-repeat: repeat-x; 150 | border-color: #28a4c9; 151 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0); 152 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 153 | } 154 | 155 | .btn-info:hover, 156 | .btn-info:focus { 157 | background-color: #2aabd2; 158 | background-position: 0 -15px; 159 | } 160 | 161 | .btn-info:active, 162 | .btn-info.active { 163 | background-color: #2aabd2; 164 | border-color: #28a4c9; 165 | } 166 | 167 | .thumbnail, 168 | .img-thumbnail { 169 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); 170 | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); 171 | } 172 | 173 | .dropdown-menu > li > a:hover, 174 | .dropdown-menu > li > a:focus { 175 | background-color: #e8e8e8; 176 | background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); 177 | background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); 178 | background-repeat: repeat-x; 179 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); 180 | } 181 | 182 | .dropdown-menu > .active > a, 183 | .dropdown-menu > .active > a:hover, 184 | .dropdown-menu > .active > a:focus { 185 | background-color: #357ebd; 186 | background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%); 187 | background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%); 188 | background-repeat: repeat-x; 189 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0); 190 | } 191 | 192 | .navbar-default { 193 | background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%); 194 | background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%); 195 | background-repeat: repeat-x; 196 | border-radius: 4px; 197 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0); 198 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 199 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075); 200 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075); 201 | } 202 | 203 | .navbar-default .navbar-nav > .active > a { 204 | background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%); 205 | background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%); 206 | background-repeat: repeat-x; 207 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0); 208 | -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075); 209 | box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075); 210 | } 211 | 212 | .navbar-brand, 213 | .navbar-nav > li > a { 214 | text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); 215 | } 216 | 217 | .navbar-inverse { 218 | background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222222 100%); 219 | background-image: linear-gradient(to bottom, #3c3c3c 0%, #222222 100%); 220 | background-repeat: repeat-x; 221 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); 222 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 223 | } 224 | 225 | .navbar-inverse .navbar-nav > .active > a { 226 | background-image: -webkit-linear-gradient(top, #222222 0%, #282828 100%); 227 | background-image: linear-gradient(to bottom, #222222 0%, #282828 100%); 228 | background-repeat: repeat-x; 229 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0); 230 | -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25); 231 | box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25); 232 | } 233 | 234 | .navbar-inverse .navbar-brand, 235 | .navbar-inverse .navbar-nav > li > a { 236 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 237 | } 238 | 239 | .navbar-static-top, 240 | .navbar-fixed-top, 241 | .navbar-fixed-bottom { 242 | border-radius: 0; 243 | } 244 | 245 | .alert { 246 | text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2); 247 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); 248 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); 249 | } 250 | 251 | .alert-success { 252 | background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); 253 | background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); 254 | background-repeat: repeat-x; 255 | border-color: #b2dba1; 256 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0); 257 | } 258 | 259 | .alert-info { 260 | background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%); 261 | background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); 262 | background-repeat: repeat-x; 263 | border-color: #9acfea; 264 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0); 265 | } 266 | 267 | .alert-warning { 268 | background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); 269 | background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); 270 | background-repeat: repeat-x; 271 | border-color: #f5e79e; 272 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0); 273 | } 274 | 275 | .alert-danger { 276 | background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); 277 | background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); 278 | background-repeat: repeat-x; 279 | border-color: #dca7a7; 280 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); 281 | } 282 | 283 | .progress { 284 | background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); 285 | background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); 286 | background-repeat: repeat-x; 287 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0); 288 | } 289 | 290 | .progress-bar { 291 | background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%); 292 | background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%); 293 | background-repeat: repeat-x; 294 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0); 295 | } 296 | 297 | .progress-bar-success { 298 | background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%); 299 | background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); 300 | background-repeat: repeat-x; 301 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); 302 | } 303 | 304 | .progress-bar-info { 305 | background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); 306 | background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); 307 | background-repeat: repeat-x; 308 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); 309 | } 310 | 311 | .progress-bar-warning { 312 | background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); 313 | background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); 314 | background-repeat: repeat-x; 315 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); 316 | } 317 | 318 | .progress-bar-danger { 319 | background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%); 320 | background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); 321 | background-repeat: repeat-x; 322 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); 323 | } 324 | 325 | .list-group { 326 | border-radius: 4px; 327 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); 328 | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); 329 | } 330 | 331 | .list-group-item.active, 332 | .list-group-item.active:hover, 333 | .list-group-item.active:focus { 334 | text-shadow: 0 -1px 0 #3071a9; 335 | background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%); 336 | background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%); 337 | background-repeat: repeat-x; 338 | border-color: #3278b3; 339 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0); 340 | } 341 | 342 | .panel { 343 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); 344 | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); 345 | } 346 | 347 | .panel-default > .panel-heading { 348 | background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); 349 | background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); 350 | background-repeat: repeat-x; 351 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); 352 | } 353 | 354 | .panel-primary > .panel-heading { 355 | background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%); 356 | background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%); 357 | background-repeat: repeat-x; 358 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0); 359 | } 360 | 361 | .panel-success > .panel-heading { 362 | background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); 363 | background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); 364 | background-repeat: repeat-x; 365 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0); 366 | } 367 | 368 | .panel-info > .panel-heading { 369 | background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); 370 | background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); 371 | background-repeat: repeat-x; 372 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0); 373 | } 374 | 375 | .panel-warning > .panel-heading { 376 | background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); 377 | background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); 378 | background-repeat: repeat-x; 379 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0); 380 | } 381 | 382 | .panel-danger > .panel-heading { 383 | background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%); 384 | background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); 385 | background-repeat: repeat-x; 386 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0); 387 | } 388 | 389 | .well { 390 | background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); 391 | background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%); 392 | background-repeat: repeat-x; 393 | border-color: #dcdcdc; 394 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0); 395 | -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1); 396 | box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1); 397 | } -------------------------------------------------------------------------------- /assets/js/main.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | (function () { 4 | var width = 1160, 5 | height = 600; 6 | 7 | var color = d3.scale.category20(); 8 | 9 | var moleculeExamples = {}; 10 | 11 | var radius = d3.scale.sqrt() 12 | .range([0, 6]); 13 | 14 | var selectionGlove = glow("selectionGlove").rgb("#0000A0").stdDeviation(7); 15 | var atomSelected; 16 | var atomClicked = function (dataPoint) { 17 | if (dataPoint.symbol === "H") 18 | return; 19 | 20 | if (atomSelected) 21 | atomSelected.style("filter", ""); 22 | 23 | atomSelected = d3.select(this) 24 | .select("circle") 25 | .style("filter", "url(#selectionGlove)"); 26 | }; 27 | 28 | var bondSelected; 29 | var bondClicked = function (dataPoint) { 30 | Messenger().post({ 31 | message: 'New Bond Selected', 32 | type: 'info', 33 | hideAfter: 3, 34 | showCloseButton: true 35 | }); 36 | 37 | if (bondSelected) 38 | bondSelected.style("filter", ""); 39 | 40 | bondSelected = d3.select(this) 41 | .select("line") 42 | .style("filter", "url(#selectionGlove)"); 43 | }; 44 | 45 | var generateRandomID = function () { 46 | return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { 47 | var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8); 48 | return v.toString(16); 49 | }); 50 | } 51 | 52 | var svg = d3.select("#moleculeDisplay").append("svg") 53 | .attr("width", width) 54 | .attr("height", height) 55 | .call(selectionGlove); 56 | 57 | var getRandomInt = function (min, max) { 58 | return Math.floor(Math.random() * (max - min + 1) + min); 59 | } 60 | 61 | window.loadMolecule = function () { 62 | vex.dialog.open({ 63 | message: 'Copy your saved molecule data:', 64 | input: "Molecule:
\n", 65 | buttons: [ 66 | $.extend({}, vex.dialog.buttons.YES, { 67 | text: 'Load' 68 | }), $.extend({}, vex.dialog.buttons.NO, { 69 | text: 'Cancel' 70 | }) 71 | ], 72 | callback: function(data) { 73 | if (data !== false) { 74 | 75 | newMoleculeSimulation(JSON.parse(data.molecule)); 76 | } 77 | } 78 | }); 79 | }; 80 | 81 | var newMoleculeSimulation = function (newMolecule, example) { 82 | // Might be super dirty, but it works! 83 | $('#moleculeDisplay').empty(); 84 | svg = d3.select("#moleculeDisplay").append("svg") 85 | .attr("width", width) 86 | .attr("height", height) 87 | .call(selectionGlove); 88 | if (example) 89 | newMolecule = newMolecule[example]; 90 | newMolecule = $.extend(true, {}, newMolecule); 91 | orgoShmorgo(newMolecule); 92 | 93 | Messenger().post({ 94 | message: 'New Molecule Loaded', 95 | type: 'success', 96 | showCloseButton: true, 97 | hideAfter: 2 98 | }); 99 | }; 100 | 101 | window.loadMoleculeExample = function () { 102 | newMoleculeSimulation (moleculeExamples, $('#moleculeExample').val().trim()); 103 | }; 104 | 105 | $.getJSON("molecules.json", function(json) { 106 | moleculeExamples = json; 107 | newMoleculeSimulation (moleculeExamples, '2-amino-propanoic_acid'); 108 | }); 109 | 110 | var orgoShmorgo = function(graph) { 111 | var nodesList, linksList; 112 | nodesList = graph.nodes; 113 | linksList = graph.links; 114 | 115 | 116 | var force = d3.layout.force() 117 | .nodes(nodesList) 118 | .links(linksList) 119 | .size([width, height]) 120 | .charge(-400) 121 | .linkStrength(function (d) { return d.bondType * 1;}) 122 | .linkDistance(function(d) { return radius(d.source.size) + radius(d.target.size) + 20; }) 123 | .on("tick", tick); 124 | 125 | var links = force.links(), 126 | nodes = force.nodes(), 127 | link = svg.selectAll(".link"), 128 | node = svg.selectAll(".node"); 129 | 130 | buildMolecule(); 131 | 132 | function buildMolecule () { 133 | // Update link data 134 | link = link.data(links, function (d) {return d.id; }); 135 | 136 | // Create new links 137 | link.enter().insert("g", ".node") 138 | .attr("class", "link") 139 | .each(function(d) { 140 | // Add bond line 141 | d3.select(this) 142 | .append("line") 143 | .style("stroke-width", function(d) { return (d.bondType * 3 - 2) * 2 + "px"; }); 144 | 145 | // If double add second line 146 | d3.select(this) 147 | .filter(function(d) { return d.bondType >= 2; }).append("line") 148 | .style("stroke-width", function(d) { return (d.bondType * 2 - 2) * 2 + "px"; }) 149 | .attr("class", "double"); 150 | 151 | d3.select(this) 152 | .filter(function(d) { return d.bondType === 3; }).append("line") 153 | .attr("class", "triple"); 154 | 155 | // Give bond the power to be selected 156 | d3.select(this) 157 | .on("click", bondClicked); 158 | }); 159 | 160 | // Delete removed links 161 | link.exit().remove(); 162 | 163 | // Update node data 164 | node = node.data(nodes, function (d) {return d.id; }); 165 | 166 | // Create new nodes 167 | node.enter().append("g") 168 | .attr("class", "node") 169 | .each(function(d) { 170 | // Add node circle 171 | d3.select(this) 172 | .append("circle") 173 | .attr("r", function(d) { return radius(d.size); }) 174 | .style("fill", function(d) { return color(d.symbol); }); 175 | 176 | // Add atom symbol 177 | d3.select(this) 178 | .append("text") 179 | .attr("dy", ".35em") 180 | .attr("text-anchor", "middle") 181 | .text(function(d) { return d.symbol; }); 182 | 183 | // Give atom the power to be selected 184 | d3.select(this) 185 | .on("click", atomClicked); 186 | 187 | // Grant atom the power of gravity 188 | d3.select(this) 189 | .call(force.drag); 190 | }); 191 | 192 | // Delete removed nodes 193 | node.exit().remove(); 194 | 195 | force.start(); 196 | } 197 | 198 | window.saveMolecule = function () { 199 | var specialLinks = [], specialNodes = [], nodeIdArr = []; 200 | for (var i = nodes.length - 1; i >=0; i--) { 201 | specialNodes.push({ 202 | symbol: nodes[i].symbol, 203 | size: nodes[i].size, 204 | x: nodes[i].x, 205 | y: nodes[i].y, 206 | id: nodes[i].id, 207 | bonds: nodes[i].bonds 208 | }); 209 | nodeIdArr.push(nodes[i].id); 210 | } 211 | for (var i = links.length - 1; i >=0; i--) { 212 | specialLinks.push({ 213 | source: nodeIdArr.indexOf(links[i].source.id), 214 | target: nodeIdArr.indexOf(links[i].target.id), 215 | id: links[i].id, 216 | bondType: links[i].bondType 217 | }); 218 | } 219 | molecule = { 220 | nodes: specialNodes, 221 | links: specialLinks 222 | }; 223 | vex.dialog.open({ 224 | message: 'To save your current molecule, copy the data below. Next time you visit click on the load molecule and input your saved data:', 225 | input: "Molecule:
\n", 226 | buttons: [ 227 | $.extend({}, vex.dialog.buttons.YES, { 228 | text: 'Ok' 229 | }) 230 | ], 231 | callback: function(data) {} 232 | }); 233 | }; 234 | 235 | window.changeBond = function (newBondType) { 236 | if (!bondSelected) { 237 | Messenger().post({ 238 | message: 'No Bond Selected', 239 | type: 'error', 240 | showCloseButton: true 241 | }); 242 | return; 243 | } 244 | var bondData = getAtomData(bondSelected); 245 | var changeInCharge = newBondType - bondData.bondType; 246 | var bondChangePossible = function (bond) { 247 | return (bond.target.bonds + changeInCharge <= atomDB[bond.target.symbol].lonePairs && bond.source.bonds + changeInCharge <= atomDB[bond.source.symbol].lonePairs); 248 | }; 249 | 250 | if (!newBondType || newBondType < 1 || newBondType > 3) { 251 | Messenger().post({ 252 | message: 'Internal error :(', 253 | type: 'error', 254 | showCloseButton: true 255 | }); 256 | return; 257 | } 258 | else if (!bondChangePossible(bondData, newBondType)) { 259 | Messenger().post({ 260 | message: 'That type of bond cannot exist there!', 261 | type: 'error', 262 | showCloseButton: true 263 | }); 264 | return; 265 | } 266 | 267 | for (var i = links.length - 1; i >= 0; i--) { 268 | if (links[i].id === bondData.id) { 269 | var changeInCharge = newBondType - bondData.bondType; 270 | var source = retriveAtom(links[i].source.id), 271 | target = retriveAtom(links[i].target.id); 272 | if (changeInCharge === 2) { 273 | removeHydrogen(source); 274 | removeHydrogen(source); 275 | removeHydrogen(target); 276 | removeHydrogen(target); 277 | } 278 | else if (changeInCharge === 1) { 279 | removeHydrogen(source); 280 | removeHydrogen(target); 281 | } 282 | else if (changeInCharge === -1) { 283 | addHydrogens(source, 1); 284 | addHydrogens(target, 1); 285 | } 286 | else if (changeInCharge === -2) { 287 | addHydrogens(source, 1); 288 | addHydrogens(source, 1); 289 | addHydrogens(target, 1); 290 | addHydrogens(target, 1); 291 | } 292 | source.bonds += changeInCharge; 293 | target.bonds += changeInCharge; 294 | 295 | // Remove old bond, create new one and add it to links list 296 | // Simple change of bond value is buggy 297 | links.splice(i, 1); 298 | var newBond = { 299 | source: bondData.source, 300 | target: bondData.target, 301 | bondType: newBondType, 302 | id: generateRandomID() 303 | }; 304 | links.push(newBond); 305 | 306 | // Clear previous bond selection 307 | bondSelected.style("filter", ""); 308 | bondSelected = null; 309 | 310 | break; 311 | } 312 | } 313 | buildMolecule(); 314 | }; 315 | 316 | window.addAtom = function (atomType) { 317 | if (!atomType) { 318 | Messenger().post({ 319 | message: 'Internal error :(', 320 | type: 'error', 321 | showCloseButton: true 322 | }); 323 | return; 324 | } 325 | else if (!atomSelected) { 326 | Messenger().post({ 327 | message: 'No Atom Selected', 328 | type: 'error', 329 | showCloseButton: true 330 | }); 331 | return; 332 | } 333 | else if (!canHaveNewBond(getAtomData(atomSelected))) { 334 | Messenger().post({ 335 | message: 'Atom Can\'t Take Anymore Bonds', 336 | type: 'error', 337 | showCloseButton: true 338 | }); 339 | } 340 | else 341 | addNewAtom(atomType, atomDB[atomType].size); 342 | }; 343 | 344 | function canHaveNewBond (atom) { 345 | return atom.bonds < atomDB[atom.symbol].lonePairs; 346 | } 347 | 348 | function getAtomData (d3Atom) { 349 | return d3Atom[0][0].parentNode.__data__; 350 | } 351 | 352 | function addHydrogens (atom, numHydrogens) { 353 | var newHydrogen = function () { 354 | return { 355 | symbol: 'H', 356 | size: '1', 357 | bonds: 1, 358 | id: generateRandomID (), 359 | x: atom.x + getRandomInt (-15, 15), 360 | y: atom.y + getRandomInt (-15, 15) 361 | }; 362 | }; 363 | var tempHydrogen; 364 | for (var i = 0; i < numHydrogens; i++) { 365 | tempHydrogen = newHydrogen(); 366 | nodes.push(tempHydrogen); 367 | links.push({ 368 | source: atom, 369 | target: tempHydrogen, 370 | bondType: 1, 371 | id: generateRandomID() 372 | }); 373 | } 374 | } 375 | 376 | function removeHydrogen (oldAtom) { 377 | var target, source, bondsArr = getBonds(oldAtom.id); 378 | for (var i = bondsArr.length - 1; i >= 0; i--) { 379 | target = bondsArr[i].target, source = bondsArr[i].source; 380 | if (target.symbol === 'H' || source.symbol === 'H' ) { 381 | var hydroId = source.symbol === 'H'? 382 | source.id: 383 | target.id; 384 | removeAtom(hydroId); 385 | return; 386 | } 387 | } 388 | } 389 | 390 | function removeAtom (id) { 391 | var atomToRemove = retriveAtom(id); 392 | var bondsArr = getBonds(id); 393 | var atomsArr = [atomToRemove.id]; 394 | 395 | for (var i = bondsArr.length - 1; i >= 0; i--) { 396 | // Add atom that is a hydrogen 397 | if (bondsArr[i].source.symbol === 'H') 398 | atomsArr.push(bondsArr[i].source.id); 399 | else if (bondsArr[i].target.symbol === 'H') 400 | atomsArr.push(bondsArr[i].target.id); 401 | else { 402 | // Give non-hydrogen bonded atom it's lone pairs back 403 | var nonHydrogenAtom = bondsArr[i].target.id !== id ? 404 | 'target': 405 | 'source'; 406 | 407 | bondsArr[i][nonHydrogenAtom].bonds -= bondsArr[i].bondType; 408 | addHydrogens(bondsArr[i][nonHydrogenAtom], bondsArr[i].bondType); 409 | } 410 | // Convert atom obj to id for later processing 411 | bondsArr[i] = bondsArr[i].id; 412 | } 413 | 414 | var spliceOut = function (arr, removeArr) { 415 | for (var i = arr.length - 1; i >= 0; i--) { 416 | if (removeArr.indexOf(arr[i].id) !== -1) { 417 | arr.splice(i, 1); 418 | } 419 | } 420 | return arr; 421 | }; 422 | 423 | // Remove atoms marked 424 | nodes = spliceOut (nodes, atomsArr); 425 | 426 | // Remove bonds marked 427 | links = spliceOut (links, bondsArr); 428 | 429 | }; 430 | 431 | var retriveAtom = function (atomID) { 432 | for (var i = nodes.length - 1; i >= 0; i--) { 433 | if (nodes[i].id === atomID) 434 | return nodes[i]; 435 | } 436 | return null; 437 | }; 438 | 439 | function addNewAtom (atomType, atomSize) { 440 | var newAtom = { 441 | symbol: atomType, 442 | size: atomSize, 443 | x: getAtomData(atomSelected).x + getRandomInt (-15, 15), 444 | y: getAtomData(atomSelected).y + getRandomInt (-15, 15), 445 | id: generateRandomID (), // Need to make sure is unique 446 | bonds: 1 447 | }, 448 | n = nodes.push(newAtom); 449 | 450 | getAtomData(atomSelected).bonds++; // Increment bond count on selected atom 451 | addHydrogens(newAtom, atomDB[atomType].lonePairs - 1); // Adds hydrogens to new atom 452 | removeHydrogen(getAtomData(atomSelected)); // Remove hydrogen from selected atom 453 | 454 | links.push({ 455 | source: newAtom, 456 | target: getAtomData(atomSelected), 457 | bondType: 1, 458 | id: generateRandomID() 459 | }); // Need to make sure is unique 460 | 461 | buildMolecule(); 462 | } 463 | 464 | var getBonds = function (atomID) { 465 | var arr = []; 466 | for (var i = links.length - 1; i >= 0; i--) { 467 | if (links[i].source.id === atomID || links[i].target.id === atomID) 468 | arr.push(links[i]); 469 | } 470 | return arr; 471 | } 472 | 473 | window.deleteAtom = function () { 474 | var oneNonHydrogenBond = function (atom) { 475 | var atomBonds = getBonds(atom.id); 476 | var counter = 0; 477 | for (var i = atomBonds.length - 1; i >= 0; i--) { 478 | if (atomBonds[i].source.symbol !== 'H' && atomBonds[i].target.symbol !== 'H') 479 | counter++; 480 | } 481 | return counter === 1; 482 | }; 483 | 484 | if (!atomSelected) { 485 | Messenger().post({ 486 | message: 'No Atom Selected', 487 | type: 'error', 488 | showCloseButton: true 489 | }); 490 | return; 491 | } 492 | else if (!oneNonHydrogenBond(getAtomData(atomSelected))) { 493 | Messenger().post({ 494 | message: 'Atom Must have only one non-hydrogen bond to be removed', 495 | type: 'error', 496 | showCloseButton: true 497 | }); 498 | return; 499 | } 500 | 501 | removeAtom(getAtomData(atomSelected).id); 502 | atomSelected = null; 503 | buildMolecule (); 504 | }; 505 | 506 | function tick() { 507 | //Update old and new elements 508 | link.selectAll("line") 509 | .attr("x1", function(d) { return d.source.x; }) 510 | .attr("y1", function(d) { return d.source.y; }) 511 | .attr("x2", function(d) { return d.target.x; }) 512 | .attr("y2", function(d) { return d.target.y; }); 513 | 514 | node.attr("transform", function(d) {return "translate(" + d.x + "," + d.y + ")"; }); 515 | } 516 | }; 517 | })(); -------------------------------------------------------------------------------- /assets/libs/vex/vex-theme-default.css: -------------------------------------------------------------------------------- 1 | @keyframes vex-flyin { 2 | /* line 25, ../sass/_keyframes.sass */ 3 | 0% { 4 | opacity: 0; 5 | transform: translateY(-40px); 6 | -webkit-transform: translateY(-40px); 7 | -moz-transform: translateY(-40px); 8 | -ms-transform: translateY(-40px); 9 | -o-transform: translateY(-40px); 10 | } 11 | 12 | /* line 28, ../sass/_keyframes.sass */ 13 | 100% { 14 | opacity: 1; 15 | transform: translateY(0); 16 | -webkit-transform: translateY(0); 17 | -moz-transform: translateY(0); 18 | -ms-transform: translateY(0); 19 | -o-transform: translateY(0); 20 | } 21 | } 22 | 23 | @-webkit-keyframes vex-flyin { 24 | /* line 25, ../sass/_keyframes.sass */ 25 | 0% { 26 | opacity: 0; 27 | transform: translateY(-40px); 28 | -webkit-transform: translateY(-40px); 29 | -moz-transform: translateY(-40px); 30 | -ms-transform: translateY(-40px); 31 | -o-transform: translateY(-40px); 32 | } 33 | 34 | /* line 28, ../sass/_keyframes.sass */ 35 | 100% { 36 | opacity: 1; 37 | transform: translateY(0); 38 | -webkit-transform: translateY(0); 39 | -moz-transform: translateY(0); 40 | -ms-transform: translateY(0); 41 | -o-transform: translateY(0); 42 | } 43 | } 44 | 45 | @-moz-keyframes vex-flyin { 46 | /* line 25, ../sass/_keyframes.sass */ 47 | 0% { 48 | opacity: 0; 49 | transform: translateY(-40px); 50 | -webkit-transform: translateY(-40px); 51 | -moz-transform: translateY(-40px); 52 | -ms-transform: translateY(-40px); 53 | -o-transform: translateY(-40px); 54 | } 55 | 56 | /* line 28, ../sass/_keyframes.sass */ 57 | 100% { 58 | opacity: 1; 59 | transform: translateY(0); 60 | -webkit-transform: translateY(0); 61 | -moz-transform: translateY(0); 62 | -ms-transform: translateY(0); 63 | -o-transform: translateY(0); 64 | } 65 | } 66 | 67 | @-ms-keyframes vex-flyin { 68 | /* line 25, ../sass/_keyframes.sass */ 69 | 0% { 70 | opacity: 0; 71 | transform: translateY(-40px); 72 | -webkit-transform: translateY(-40px); 73 | -moz-transform: translateY(-40px); 74 | -ms-transform: translateY(-40px); 75 | -o-transform: translateY(-40px); 76 | } 77 | 78 | /* line 28, ../sass/_keyframes.sass */ 79 | 100% { 80 | opacity: 1; 81 | transform: translateY(0); 82 | -webkit-transform: translateY(0); 83 | -moz-transform: translateY(0); 84 | -ms-transform: translateY(0); 85 | -o-transform: translateY(0); 86 | } 87 | } 88 | 89 | @-o-keyframes vex-flyin { 90 | /* line 25, ../sass/_keyframes.sass */ 91 | 0% { 92 | opacity: 0; 93 | transform: translateY(-40px); 94 | -webkit-transform: translateY(-40px); 95 | -moz-transform: translateY(-40px); 96 | -ms-transform: translateY(-40px); 97 | -o-transform: translateY(-40px); 98 | } 99 | 100 | /* line 28, ../sass/_keyframes.sass */ 101 | 100% { 102 | opacity: 1; 103 | transform: translateY(0); 104 | -webkit-transform: translateY(0); 105 | -moz-transform: translateY(0); 106 | -ms-transform: translateY(0); 107 | -o-transform: translateY(0); 108 | } 109 | } 110 | 111 | @keyframes vex-flyout { 112 | /* line 34, ../sass/_keyframes.sass */ 113 | 0% { 114 | opacity: 1; 115 | transform: translateY(0); 116 | -webkit-transform: translateY(0); 117 | -moz-transform: translateY(0); 118 | -ms-transform: translateY(0); 119 | -o-transform: translateY(0); 120 | } 121 | 122 | /* line 37, ../sass/_keyframes.sass */ 123 | 100% { 124 | opacity: 0; 125 | transform: translateY(-40px); 126 | -webkit-transform: translateY(-40px); 127 | -moz-transform: translateY(-40px); 128 | -ms-transform: translateY(-40px); 129 | -o-transform: translateY(-40px); 130 | } 131 | } 132 | 133 | @-webkit-keyframes vex-flyout { 134 | /* line 34, ../sass/_keyframes.sass */ 135 | 0% { 136 | opacity: 1; 137 | transform: translateY(0); 138 | -webkit-transform: translateY(0); 139 | -moz-transform: translateY(0); 140 | -ms-transform: translateY(0); 141 | -o-transform: translateY(0); 142 | } 143 | 144 | /* line 37, ../sass/_keyframes.sass */ 145 | 100% { 146 | opacity: 0; 147 | transform: translateY(-40px); 148 | -webkit-transform: translateY(-40px); 149 | -moz-transform: translateY(-40px); 150 | -ms-transform: translateY(-40px); 151 | -o-transform: translateY(-40px); 152 | } 153 | } 154 | 155 | @-moz-keyframes vex-flyout { 156 | /* line 34, ../sass/_keyframes.sass */ 157 | 0% { 158 | opacity: 1; 159 | transform: translateY(0); 160 | -webkit-transform: translateY(0); 161 | -moz-transform: translateY(0); 162 | -ms-transform: translateY(0); 163 | -o-transform: translateY(0); 164 | } 165 | 166 | /* line 37, ../sass/_keyframes.sass */ 167 | 100% { 168 | opacity: 0; 169 | transform: translateY(-40px); 170 | -webkit-transform: translateY(-40px); 171 | -moz-transform: translateY(-40px); 172 | -ms-transform: translateY(-40px); 173 | -o-transform: translateY(-40px); 174 | } 175 | } 176 | 177 | @-ms-keyframes vex-flyout { 178 | /* line 34, ../sass/_keyframes.sass */ 179 | 0% { 180 | opacity: 1; 181 | transform: translateY(0); 182 | -webkit-transform: translateY(0); 183 | -moz-transform: translateY(0); 184 | -ms-transform: translateY(0); 185 | -o-transform: translateY(0); 186 | } 187 | 188 | /* line 37, ../sass/_keyframes.sass */ 189 | 100% { 190 | opacity: 0; 191 | transform: translateY(-40px); 192 | -webkit-transform: translateY(-40px); 193 | -moz-transform: translateY(-40px); 194 | -ms-transform: translateY(-40px); 195 | -o-transform: translateY(-40px); 196 | } 197 | } 198 | 199 | @-o-keyframes vex-flyout { 200 | /* line 34, ../sass/_keyframes.sass */ 201 | 0% { 202 | opacity: 1; 203 | transform: translateY(0); 204 | -webkit-transform: translateY(0); 205 | -moz-transform: translateY(0); 206 | -ms-transform: translateY(0); 207 | -o-transform: translateY(0); 208 | } 209 | 210 | /* line 37, ../sass/_keyframes.sass */ 211 | 100% { 212 | opacity: 0; 213 | transform: translateY(-40px); 214 | -webkit-transform: translateY(-40px); 215 | -moz-transform: translateY(-40px); 216 | -ms-transform: translateY(-40px); 217 | -o-transform: translateY(-40px); 218 | } 219 | } 220 | 221 | @keyframes vex-pulse { 222 | /* line 104, ../sass/_keyframes.sass */ 223 | 0% { 224 | -webkit-box-shadow: inset 0 0 0 300px transparent; 225 | -moz-box-shadow: inset 0 0 0 300px transparent; 226 | box-shadow: inset 0 0 0 300px transparent; 227 | } 228 | 229 | /* line 106, ../sass/_keyframes.sass */ 230 | 70% { 231 | -webkit-box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); 232 | -moz-box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); 233 | box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); 234 | } 235 | 236 | /* line 108, ../sass/_keyframes.sass */ 237 | 100% { 238 | -webkit-box-shadow: inset 0 0 0 300px transparent; 239 | -moz-box-shadow: inset 0 0 0 300px transparent; 240 | box-shadow: inset 0 0 0 300px transparent; 241 | } 242 | } 243 | 244 | @-webkit-keyframes vex-pulse { 245 | /* line 104, ../sass/_keyframes.sass */ 246 | 0% { 247 | -webkit-box-shadow: inset 0 0 0 300px transparent; 248 | -moz-box-shadow: inset 0 0 0 300px transparent; 249 | box-shadow: inset 0 0 0 300px transparent; 250 | } 251 | 252 | /* line 106, ../sass/_keyframes.sass */ 253 | 70% { 254 | -webkit-box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); 255 | -moz-box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); 256 | box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); 257 | } 258 | 259 | /* line 108, ../sass/_keyframes.sass */ 260 | 100% { 261 | -webkit-box-shadow: inset 0 0 0 300px transparent; 262 | -moz-box-shadow: inset 0 0 0 300px transparent; 263 | box-shadow: inset 0 0 0 300px transparent; 264 | } 265 | } 266 | 267 | @-moz-keyframes vex-pulse { 268 | /* line 104, ../sass/_keyframes.sass */ 269 | 0% { 270 | -webkit-box-shadow: inset 0 0 0 300px transparent; 271 | -moz-box-shadow: inset 0 0 0 300px transparent; 272 | box-shadow: inset 0 0 0 300px transparent; 273 | } 274 | 275 | /* line 106, ../sass/_keyframes.sass */ 276 | 70% { 277 | -webkit-box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); 278 | -moz-box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); 279 | box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); 280 | } 281 | 282 | /* line 108, ../sass/_keyframes.sass */ 283 | 100% { 284 | -webkit-box-shadow: inset 0 0 0 300px transparent; 285 | -moz-box-shadow: inset 0 0 0 300px transparent; 286 | box-shadow: inset 0 0 0 300px transparent; 287 | } 288 | } 289 | 290 | @-ms-keyframes vex-pulse { 291 | /* line 104, ../sass/_keyframes.sass */ 292 | 0% { 293 | -webkit-box-shadow: inset 0 0 0 300px transparent; 294 | -moz-box-shadow: inset 0 0 0 300px transparent; 295 | box-shadow: inset 0 0 0 300px transparent; 296 | } 297 | 298 | /* line 106, ../sass/_keyframes.sass */ 299 | 70% { 300 | -webkit-box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); 301 | -moz-box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); 302 | box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); 303 | } 304 | 305 | /* line 108, ../sass/_keyframes.sass */ 306 | 100% { 307 | -webkit-box-shadow: inset 0 0 0 300px transparent; 308 | -moz-box-shadow: inset 0 0 0 300px transparent; 309 | box-shadow: inset 0 0 0 300px transparent; 310 | } 311 | } 312 | 313 | @-o-keyframes vex-pulse { 314 | /* line 104, ../sass/_keyframes.sass */ 315 | 0% { 316 | -webkit-box-shadow: inset 0 0 0 300px transparent; 317 | -moz-box-shadow: inset 0 0 0 300px transparent; 318 | box-shadow: inset 0 0 0 300px transparent; 319 | } 320 | 321 | /* line 106, ../sass/_keyframes.sass */ 322 | 70% { 323 | -webkit-box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); 324 | -moz-box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); 325 | box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25); 326 | } 327 | 328 | /* line 108, ../sass/_keyframes.sass */ 329 | 100% { 330 | -webkit-box-shadow: inset 0 0 0 300px transparent; 331 | -moz-box-shadow: inset 0 0 0 300px transparent; 332 | box-shadow: inset 0 0 0 300px transparent; 333 | } 334 | } 335 | 336 | /* line 13, ../sass/vex-theme-default.sass */ 337 | .vex.vex-theme-default { 338 | padding-top: 160px; 339 | padding-bottom: 160px; 340 | } 341 | /* line 17, ../sass/vex-theme-default.sass */ 342 | .vex.vex-theme-default.vex-closing .vex-content { 343 | animation: vex-flyout 0.5s; 344 | -webkit-animation: vex-flyout 0.5s; 345 | -moz-animation: vex-flyout 0.5s; 346 | -ms-animation: vex-flyout 0.5s; 347 | -o-animation: vex-flyout 0.5s; 348 | -webkit-backface-visibility: hidden; 349 | } 350 | /* line 20, ../sass/vex-theme-default.sass */ 351 | .vex.vex-theme-default .vex-content { 352 | animation: vex-flyin 0.5s; 353 | -webkit-animation: vex-flyin 0.5s; 354 | -moz-animation: vex-flyin 0.5s; 355 | -ms-animation: vex-flyin 0.5s; 356 | -o-animation: vex-flyin 0.5s; 357 | -webkit-backface-visibility: hidden; 358 | } 359 | /* line 23, ../sass/vex-theme-default.sass */ 360 | .vex.vex-theme-default .vex-content { 361 | -webkit-border-radius: 5px; 362 | -moz-border-radius: 5px; 363 | -ms-border-radius: 5px; 364 | -o-border-radius: 5px; 365 | border-radius: 5px; 366 | font-family: "Helvetica Neue", sans-serif; 367 | background: #f0f0f0; 368 | color: #444444; 369 | padding: 1em; 370 | position: relative; 371 | margin: 0 auto; 372 | max-width: 100%; 373 | width: 450px; 374 | font-size: 1.1em; 375 | line-height: 1.5em; 376 | } 377 | /* line 36, ../sass/vex-theme-default.sass */ 378 | .vex.vex-theme-default .vex-content h1, .vex.vex-theme-default .vex-content h2, .vex.vex-theme-default .vex-content h3, .vex.vex-theme-default .vex-content h4, .vex.vex-theme-default .vex-content h5, .vex.vex-theme-default .vex-content h6, .vex.vex-theme-default .vex-content p, .vex.vex-theme-default .vex-content ul, .vex.vex-theme-default .vex-content li { 379 | color: inherit; 380 | } 381 | /* line 39, ../sass/vex-theme-default.sass */ 382 | .vex.vex-theme-default .vex-close { 383 | -webkit-border-radius: 5px; 384 | -moz-border-radius: 5px; 385 | -ms-border-radius: 5px; 386 | -o-border-radius: 5px; 387 | border-radius: 5px; 388 | position: absolute; 389 | top: 0; 390 | right: 0; 391 | cursor: pointer; 392 | } 393 | /* line 46, ../sass/vex-theme-default.sass */ 394 | .vex.vex-theme-default .vex-close:before { 395 | -webkit-border-radius: 3px; 396 | -moz-border-radius: 3px; 397 | -ms-border-radius: 3px; 398 | -o-border-radius: 3px; 399 | border-radius: 3px; 400 | position: absolute; 401 | content: "\00D7"; 402 | font-size: 26px; 403 | font-weight: normal; 404 | line-height: 31px; 405 | height: 30px; 406 | width: 30px; 407 | text-align: center; 408 | top: 3px; 409 | right: 3px; 410 | color: #bbbbbb; 411 | background: transparent; 412 | } 413 | /* line 61, ../sass/vex-theme-default.sass */ 414 | .vex.vex-theme-default .vex-close:hover:before, .vex.vex-theme-default .vex-close:active:before { 415 | color: #777777; 416 | background: #e0e0e0; 417 | } 418 | /* line 67, ../sass/vex-theme-default.sass */ 419 | .vex.vex-theme-default .vex-dialog-form .vex-dialog-message { 420 | margin-bottom: 0.5em; 421 | } 422 | /* line 70, ../sass/vex-theme-default.sass */ 423 | .vex.vex-theme-default .vex-dialog-form .vex-dialog-input { 424 | margin-bottom: 1em; 425 | } 426 | /* line 73, ../sass/vex-theme-default.sass */ 427 | .vex.vex-theme-default .vex-dialog-form .vex-dialog-input textarea, .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="text"], .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="password"], .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="email"], .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="url"] { 428 | -webkit-border-radius: 3px; 429 | -moz-border-radius: 3px; 430 | -ms-border-radius: 3px; 431 | -o-border-radius: 3px; 432 | border-radius: 3px; 433 | background: white; 434 | width: 100%; 435 | padding: 0.25em 0.67em; 436 | border: 0; 437 | font-family: inherit; 438 | font-weight: inherit; 439 | font-size: inherit; 440 | min-height: 2.5em; 441 | margin: 0 0 0.25em; 442 | } 443 | /* line 85, ../sass/vex-theme-default.sass */ 444 | .vex.vex-theme-default .vex-dialog-form .vex-dialog-input textarea:focus, .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="text"]:focus, .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="password"]:focus, .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="email"]:focus, .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="url"]:focus { 445 | -webkit-box-shadow: inset 0 0 0 2px #8dbdf1; 446 | -moz-box-shadow: inset 0 0 0 2px #8dbdf1; 447 | box-shadow: inset 0 0 0 2px #8dbdf1; 448 | outline: none; 449 | } 450 | /* line 89, ../sass/vex-theme-default.sass */ 451 | .vex.vex-theme-default .vex-dialog-form .vex-dialog-buttons { 452 | *zoom: 1; 453 | } 454 | /* line 38, ../../../../../.rvm/gems/ruby-1.9.3-p194/gems/compass-0.12.2/frameworks/compass/stylesheets/compass/utilities/general/_clearfix.scss */ 455 | .vex.vex-theme-default .vex-dialog-form .vex-dialog-buttons:after { 456 | content: ""; 457 | display: table; 458 | clear: both; 459 | } 460 | /* line 92, ../sass/vex-theme-default.sass */ 461 | .vex.vex-theme-default .vex-dialog-button { 462 | -webkit-border-radius: 3px; 463 | -moz-border-radius: 3px; 464 | -ms-border-radius: 3px; 465 | -o-border-radius: 3px; 466 | border-radius: 3px; 467 | border: 0; 468 | float: right; 469 | margin: 0 0 0 0.5em; 470 | font-family: inherit; 471 | text-transform: uppercase; 472 | letter-spacing: 0.1em; 473 | font-size: 0.8em; 474 | line-height: 1em; 475 | padding: 0.75em 2em; 476 | } 477 | /* line 104, ../sass/vex-theme-default.sass */ 478 | .vex.vex-theme-default .vex-dialog-button.vex-last { 479 | margin-left: 0; 480 | } 481 | /* line 107, ../sass/vex-theme-default.sass */ 482 | .vex.vex-theme-default .vex-dialog-button:focus { 483 | animation: vex-pulse 1.1s infinite; 484 | -webkit-animation: vex-pulse 1.1s infinite; 485 | -moz-animation: vex-pulse 1.1s infinite; 486 | -ms-animation: vex-pulse 1.1s infinite; 487 | -o-animation: vex-pulse 1.1s infinite; 488 | -webkit-backface-visibility: hidden; 489 | outline: none; 490 | } 491 | @media (max-width: 568px) { 492 | /* line 107, ../sass/vex-theme-default.sass */ 493 | .vex.vex-theme-default .vex-dialog-button:focus { 494 | animation: none; 495 | -webkit-animation: none; 496 | -moz-animation: none; 497 | -ms-animation: none; 498 | -o-animation: none; 499 | -webkit-backface-visibility: hidden; 500 | } 501 | } 502 | /* line 116, ../sass/vex-theme-default.sass */ 503 | .vex.vex-theme-default .vex-dialog-button.vex-dialog-button-primary { 504 | background: #3288e6; 505 | color: white; 506 | } 507 | /* line 120, ../sass/vex-theme-default.sass */ 508 | .vex.vex-theme-default .vex-dialog-button.vex-dialog-button-secondary { 509 | background: #e0e0e0; 510 | color: #777777; 511 | } 512 | 513 | /* line 124, ../sass/vex-theme-default.sass */ 514 | .vex-loading-spinner.vex-theme-default { 515 | -webkit-box-shadow: 0 0 0 0.5em #f0f0f0, 0 0 1px 0.5em rgba(0, 0, 0, 0.3); 516 | -moz-box-shadow: 0 0 0 0.5em #f0f0f0, 0 0 1px 0.5em rgba(0, 0, 0, 0.3); 517 | box-shadow: 0 0 0 0.5em #f0f0f0, 0 0 1px 0.5em rgba(0, 0, 0, 0.3); 518 | -webkit-border-radius: 100%; 519 | -moz-border-radius: 100%; 520 | -ms-border-radius: 100%; 521 | -o-border-radius: 100%; 522 | border-radius: 100%; 523 | background: #f0f0f0; 524 | border: 0.2em solid transparent; 525 | border-top-color: #bbbbbb; 526 | top: -1.1em; 527 | bottom: auto; 528 | } 529 | -------------------------------------------------------------------------------- /assets/libs/messenger/js/messenger.min.js: -------------------------------------------------------------------------------- 1 | /*! messenger 1.4.0 */ 2 | (function(){var e,t=window.Messenger;e=window.Messenger=function(){return e._call.apply(this,arguments)},window.Messenger.noConflict=function(){return window.Messenger=t,e}})(),window.Messenger._=function(){if(window._)return window._;var e=Array.prototype,t=Object.prototype,n=Function.prototype,s=(e.push,e.slice),r=(e.concat,t.toString);t.hasOwnProperty;var o=e.forEach,i=(e.map,e.reduce,e.reduceRight,e.filter),a=(e.every,e.some,e.indexOf,e.lastIndexOf,Array.isArray,Object.keys),l=n.bind,u={},c={},h=u.each=u.forEach=function(e,t,n){if(null!=e)if(o&&e.forEach===o)e.forEach(t,n);else if(e.length===+e.length){for(var s=0,r=e.length;r>s;s++)if(t.call(n,e[s],s,e)===c)return}else for(var i in e)if(u.has(e,i)&&t.call(n,e[i],i,e)===c)return};u.result=function(e,t){if(null==e)return null;var n=e[t];return u.isFunction(n)?n.call(e):n},u.once=function(e){var t,n=!1;return function(){return n?t:(n=!0,t=e.apply(this,arguments),e=null,t)}};var p=0;return u.uniqueId=function(e){var t=++p+"";return e?e+t:t},u.filter=u.select=function(e,t,n){var s=[];return null==e?s:i&&e.filter===i?e.filter(t,n):(h(e,function(e,r,o){t.call(n,e,r,o)&&(s[s.length]=e)}),s)},h(["Arguments","Function","String","Number","Date","RegExp"],function(e){u["is"+e]=function(t){return r.call(t)=="[object "+e+"]"}}),u.defaults=function(e){return h(s.call(arguments,1),function(t){if(t)for(var n in t)null==e[n]&&(e[n]=t[n])}),e},u.extend=function(e){return h(s.call(arguments,1),function(t){if(t)for(var n in t)e[n]=t[n]}),e},u.keys=a||function(e){if(e!==Object(e))throw new TypeError("Invalid object");var t=[];for(var n in e)u.has(e,n)&&(t[t.length]=n);return t},u.bind=function(e,t){if(e.bind===l&&l)return l.apply(e,s.call(arguments,1));var n=s.call(arguments,2);return function(){return e.apply(t,n.concat(s.call(arguments)))}},u.isObject=function(e){return e===Object(e)},u}(),window.Messenger.Events=function(){if(window.Backbone&&Backbone.Events)return Backbone.Events;var e=function(){var e=/\s+/,t=function(t,n,s,r){if(!s)return!0;if("object"==typeof s)for(var o in s)t[n].apply(t,[o,s[o]].concat(r));else{if(!e.test(s))return!0;for(var i=s.split(e),a=0,l=i.length;l>a;a++)t[n].apply(t,[i[a]].concat(r))}},n=function(e,t){var n,s=-1,r=e.length;switch(t.length){case 0:for(;r>++s;)(n=e[s]).callback.call(n.ctx);return;case 1:for(;r>++s;)(n=e[s]).callback.call(n.ctx,t[0]);return;case 2:for(;r>++s;)(n=e[s]).callback.call(n.ctx,t[0],t[1]);return;case 3:for(;r>++s;)(n=e[s]).callback.call(n.ctx,t[0],t[1],t[2]);return;default:for(;r>++s;)(n=e[s]).callback.apply(n.ctx,t)}},s={on:function(e,n,s){if(!t(this,"on",e,[n,s])||!n)return this;this._events||(this._events={});var r=this._events[e]||(this._events[e]=[]);return r.push({callback:n,context:s,ctx:s||this}),this},once:function(e,n,s){if(!t(this,"once",e,[n,s])||!n)return this;var r=this,o=_.once(function(){r.off(e,o),n.apply(this,arguments)});return o._callback=n,this.on(e,o,s),this},off:function(e,n,s){var r,o,i,a,l,u,c,h;if(!this._events||!t(this,"off",e,[n,s]))return this;if(!e&&!n&&!s)return this._events={},this;for(a=e?[e]:_.keys(this._events),l=0,u=a.length;u>l;l++)if(e=a[l],r=this._events[e]){if(i=[],n||s)for(c=0,h=r.length;h>c;c++)o=r[c],(n&&n!==o.callback&&n!==o.callback._callback||s&&s!==o.context)&&i.push(o);this._events[e]=i}return this},trigger:function(e){if(!this._events)return this;var s=Array.prototype.slice.call(arguments,1);if(!t(this,"trigger",e,s))return this;var r=this._events[e],o=this._events.all;return r&&n(r,s),o&&n(o,arguments),this},listenTo:function(e,t,n){var s=this._listeners||(this._listeners={}),r=e._listenerId||(e._listenerId=_.uniqueId("l"));return s[r]=e,e.on(t,"object"==typeof t?this:n,this),this},stopListening:function(e,t,n){var s=this._listeners;if(s){if(e)e.off(t,"object"==typeof t?this:n,this),t||n||delete s[e._listenerId];else{"object"==typeof t&&(n=this);for(var r in s)s[r].off(t,n,this);this._listeners={}}return this}}};return s.bind=s.on,s.unbind=s.off,s};return e()}(),function(){var e,t,n,s,r,o,i,a,l,u,c,h={}.hasOwnProperty,p=function(e,t){function n(){this.constructor=e}for(var s in t)h.call(t,s)&&(e[s]=t[s]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},d=[].slice,f=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};e=jQuery,o=null!=(l=window._)?l:window.Messenger._,s=null!=(u="undefined"!=typeof Backbone&&null!==Backbone?Backbone.Events:void 0)?u:window.Messenger.Events,n=function(){function t(t){e.extend(this,s),o.isObject(t)&&(t.el&&this.setElement(t.el),this.model=t.model),this.initialize.apply(this,arguments)}return t.prototype.setElement=function(t){return this.$el=e(t),this.el=this.$el[0]},t.prototype.delegateEvents=function(e){var t,n,s,r,i,a,l;if(e||(e=o.result(this,"events"))){this.undelegateEvents(),t=/^(\S+)\s*(.*)$/,l=[];for(s in e){if(i=e[s],o.isFunction(i)||(i=this[e[s]]),!i)throw Error('Method "'+e[s]+'" does not exist');r=s.match(t),n=r[1],a=r[2],i=o.bind(i,this),n+=".delegateEvents"+this.cid,""===a?l.push(this.jqon(n,i)):l.push(this.jqon(n,a,i))}return l}},t.prototype.jqon=function(e,t,n){var s;return null!=this.$el.on?(s=this.$el).on.apply(s,arguments):(null==n&&(n=t,t=void 0),null!=t?this.$el.delegate(t,e,n):this.$el.bind(e,n))},t.prototype.jqoff=function(e){var t;return null!=this.$el.off?(t=this.$el).off.apply(t,arguments):(this.$el.undelegate(),this.$el.unbind(e))},t.prototype.undelegateEvents=function(){return this.jqoff(".delegateEvents"+this.cid)},t.prototype.remove=function(){return this.undelegateEvents(),this.$el.remove()},t}(),i=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return p(n,t),n.prototype.defaults={hideAfter:10,scroll:!0},n.prototype.initialize=function(t){return null==t&&(t={}),this.shown=!1,this.rendered=!1,this.messenger=t.messenger,this.options=e.extend({},this.options,t,this.defaults)},n.prototype.show=function(){var e;return this.rendered||this.render(),this.$message.removeClass("messenger-hidden"),e=this.shown,this.shown=!0,e?void 0:this.trigger("show")},n.prototype.hide=function(){var e;if(this.rendered)return this.$message.addClass("messenger-hidden"),e=this.shown,this.shown=!1,e?this.trigger("hide"):void 0},n.prototype.cancel=function(){return this.hide()},n.prototype.update=function(t){var n,s=this;return o.isString(t)&&(t={message:t}),e.extend(this.options,t),this.lastUpdate=new Date,this.rendered=!1,this.events=null!=(n=this.options.events)?n:{},this.render(),this.actionsToEvents(),this.delegateEvents(),this.checkClickable(),this.options.hideAfter?(this.$message.addClass("messenger-will-hide-after"),null!=this._hideTimeout&&clearTimeout(this._hideTimeout),this._hideTimeout=setTimeout(function(){return s.hide()},1e3*this.options.hideAfter)):this.$message.removeClass("messenger-will-hide-after"),this.options.hideOnNavigate?(this.$message.addClass("messenger-will-hide-on-navigate"),null!=("undefined"!=typeof Backbone&&null!==Backbone?Backbone.history:void 0)&&Backbone.history.on("route",function(){return s.hide()})):this.$message.removeClass("messenger-will-hide-on-navigate"),this.trigger("update",this)},n.prototype.scrollTo=function(){return this.options.scroll?e.scrollTo(this.$el,{duration:400,offset:{left:0,top:-20}}):void 0},n.prototype.timeSinceUpdate=function(){return this.lastUpdate?new Date-this.lastUpdate:null},n.prototype.actionsToEvents=function(){var e,t,n,s,r=this;n=this.options.actions,s=[];for(t in n)e=n[t],s.push(this.events['click [data-action="'+t+'"] a']=function(e){return function(n){return n.preventDefault(),n.stopPropagation(),r.trigger("action:"+t,e,n),e.action.call(r,n,r)}}(e));return s},n.prototype.checkClickable=function(){var e,t,n,s;n=this.events,s=[];for(t in n)e=n[t],"click"===t?s.push(this.$message.addClass("messenger-clickable")):s.push(void 0);return s},n.prototype.undelegateEvents=function(){var e;return n.__super__.undelegateEvents.apply(this,arguments),null!=(e=this.$message)?e.removeClass("messenger-clickable"):void 0},n.prototype.parseActions=function(){var t,n,s,r,o,i;n=[],o=this.options.actions;for(r in o)t=o[r],s=e.extend({},t),s.name=r,null==(i=s.label)&&(s.label=r),n.push(s);return n},n.prototype.template=function(t){var n,s,r,o,i,a,l,u,c,h,p=this;for(i=e("
"),t.showCloseButton&&(r=e(''),r.click(function(){return p.cancel(),!0}),i.append(r)),a=e('
'+t.message+"
"),i.append(a),t.actions.length&&(s=e('
')),h=t.actions,u=0,c=h.length;c>u;u++)l=h[u],n=e(""),n.attr("data-action",""+l.name),o=e(""),o.html(l.label),n.append(e('')),n.append(o),s.append(n);return i.append(s),i},n.prototype.render=function(){var t;if(!this.rendered)return this._hasSlot||(this.setElement(this.messenger._reserveMessageSlot(this)),this._hasSlot=!0),t=e.extend({},this.options,{actions:this.parseActions()}),this.$message=e(this.template(t)),this.$el.html(this.$message),this.shown=!0,this.rendered=!0,this.trigger("render")},n}(n),r=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return p(t,e),t.prototype.initialize=function(){return t.__super__.initialize.apply(this,arguments),this._timers={}},t.prototype.cancel=function(){return this.clearTimers(),this.hide(),null!=this._actionInstance&&null!=this._actionInstance.abort?this._actionInstance.abort():void 0},t.prototype.clearTimers=function(){var e,t,n,s;n=this._timers;for(e in n)t=n[e],clearTimeout(t);return this._timers={},null!=(s=this.$message)?s.removeClass("messenger-retry-soon messenger-retry-later"):void 0},t.prototype.render=function(){var e,n,s,r;t.__super__.render.apply(this,arguments),this.clearTimers(),s=this.options.actions,r=[];for(n in s)e=s[n],e.auto?r.push(this.startCountdown(n,e)):r.push(void 0);return r},t.prototype.renderPhrase=function(e,t){var n;return n=e.phrase.replace("TIME",this.formatTime(t))},t.prototype.formatTime=function(e){var t;return t=function(e,t){return e=Math.floor(e),1!==e&&(t+="s"),"in "+e+" "+t},0===Math.floor(e)?"now...":60>e?t(e,"second"):(e/=60,60>e?t(e,"minute"):(e/=60,t(e,"hour")))},t.prototype.startCountdown=function(e,t){var n,s,r,o,i=this;if(null==this._timers[e])return n=this.$message.find("[data-action='"+e+"'] .messenger-phrase"),s=null!=(o=t.delay)?o:3,10>=s?(this.$message.removeClass("messenger-retry-later"),this.$message.addClass("messenger-retry-soon")):(this.$message.removeClass("messenger-retry-soon"),this.$message.addClass("messenger-retry-later")),r=function(){var o;return n.text(i.renderPhrase(t,s)),s>0?(o=Math.min(s,1),s-=o,i._timers[e]=setTimeout(r,1e3*o)):(i.$message.removeClass("messenger-retry-soon messenger-retry-later"),delete i._timers[e],t.action())},r()},t}(i),a=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return p(n,t),n.prototype.tagName="ul",n.prototype.className="messenger",n.prototype.messageDefaults={type:"info"},n.prototype.initialize=function(t){return this.options=null!=t?t:{},this.history=[],this.messageDefaults=e.extend({},this.messageDefaults,this.options.messageDefaults)},n.prototype.render=function(){return this.updateMessageSlotClasses()},n.prototype.findById=function(e){return o.filter(this.history,function(t){return t.msg.options.id===e})},n.prototype._reserveMessageSlot=function(t){var n,s,r=this;for(n=e("
  • "),n.addClass("messenger-message-slot"),this.$el.prepend(n),this.history.push({msg:t,$slot:n}),this._enforceIdConstraint(t),t.on("update",function(){return r._enforceIdConstraint(t)});this.options.maxMessages&&this.history.length>this.options.maxMessages;)s=this.history.shift(),s.msg.remove(),s.$slot.remove();return n},n.prototype._enforceIdConstraint=function(e){var t,n,s,r,o;if(null!=e.options.id)for(o=this.history,n=0,s=o.length;s>n;n++)if(t=o[n],r=t.msg,null!=r.options.id&&r.options.id===e.options.id&&e!==r){if(e.options.singleton)return e.hide(),void 0;r.hide()}},n.prototype.newMessage=function(e){var t,n,s,o,a=this;return null==e&&(e={}),e.messenger=this,i=null!=(n=null!=(s=Messenger.themes[null!=(o=e.theme)?o:this.options.theme])?s.Message:void 0)?n:r,t=new i(e),t.on("show",function(){return e.scrollTo&&"fixed"!==a.$el.css("position")?t.scrollTo():void 0}),t.on("hide show render",this.updateMessageSlotClasses,this),t},n.prototype.updateMessageSlotClasses=function(){var e,t,n,s,r,o,i;for(s=!0,t=null,e=!1,i=this.history,r=0,o=i.length;o>r;r++)n=i[r],n.$slot.removeClass("messenger-first messenger-last messenger-shown"),n.msg.shown&&n.msg.rendered&&(n.$slot.addClass("messenger-shown"),e=!0,t=n,s&&(s=!1,n.$slot.addClass("messenger-first")));return null!=t&&t.$slot.addClass("messenger-last"),this.$el[""+(e?"remove":"add")+"Class"]("messenger-empty")},n.prototype.hideAll=function(){var e,t,n,s,r;for(s=this.history,r=[],t=0,n=s.length;n>t;t++)e=s[t],r.push(e.msg.hide());return r},n.prototype.post=function(t){var n;return o.isString(t)&&(t={message:t}),t=e.extend(!0,{},this.messageDefaults,t),n=this.newMessage(t),n.update(t),n},n}(n),t=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return p(n,t),n.prototype.doDefaults={progressMessage:null,successMessage:null,errorMessage:"Error connecting to the server.",showSuccessWithoutError:!0,retry:{auto:!0,allow:!0},action:e.ajax},n.prototype.hookBackboneAjax=function(t){var n,s=this;if(null==t&&(t={}),null==window.Backbone)throw"Expected Backbone to be defined";return t=o.defaults(t,{id:"BACKBONE_ACTION",errorMessage:!1,successMessage:"Request completed successfully.",showSuccessWithoutError:!1}),n=function(e){var n;return n=o.extend({},t,e.messenger),s["do"](n,e)},null!=Backbone.ajax?(Backbone.ajax._withoutMessenger&&(Backbone.ajax=Backbone.ajax._withoutMessenger),(null==t.action||t.action===this.doDefaults.action)&&(t.action=Backbone.ajax),n._withoutMessenger=Backbone.ajax,Backbone.ajax=n):Backbone.sync=o.wrap(Backbone.sync,function(){var t,s,r;return r=arguments[0],t=arguments.length>=2?d.call(arguments,1):[],s=e.ajax,e.ajax=n,r.call.apply(r,[this].concat(d.call(t))),e.ajax=s})},n.prototype._getHandlerResponse=function(e){return e===!1?!1:e===!0||null==e?!0:e},n.prototype._parseEvents=function(e){var t,n,s,r,o,i,a;null==e&&(e={}),o={};for(r in e)s=e[r],n=r.indexOf(" "),i=r.substring(0,n),t=r.substring(n+1),null==(a=o[i])&&(o[i]={}),o[i][t]=s;return o},n.prototype._normalizeResponse=function(){var e,t,n,s,r,i,a;for(n=arguments.length>=1?d.call(arguments,0):[],s=null,r=null,e=null,i=0,a=n.length;a>i;i++)t=n[i],"success"===t||"timeout"===t||"abort"===t?s=t:null!=(null!=t?t.readyState:void 0)&&null!=(null!=t?t.responseText:void 0)?r=t:o.isObject(t)&&(e=t);return[s,e,r]},n.prototype.run=function(){var t,n,s,r,i,a,l,u,c,h,p,g=this;if(a=arguments[0],c=arguments[1],t=arguments.length>=3?d.call(arguments,2):[],null==c&&(c={}),a=e.extend(!0,{},this.messageDefaults,this.doDefaults,null!=a?a:{}),n=this._parseEvents(a.events),s=function(e,t){var n;return n=a[e+"Message"],o.isFunction(n)?n.call(g,e,t):n},l=null!=(p=a.messageInstance)?p:this.newMessage(a),null!=a.id&&(l.options.id=a.id),null!=a.progressMessage&&l.update(e.extend({},a,{message:s("progress",null),type:"info"})),i={},o.each(["error","success"],function(r){var u;return u=c[r],i[r]=function(){var i,h,p,m,y,v,_,w,b,x,M,C,k,$,E;return v=arguments.length>=1?d.call(arguments,0):[],b=g._normalizeResponse.apply(g,v),y=b[0],i=b[1],w=b[2],"success"===r&&null==l.errorCount&&a.showSuccessWithoutError===!1&&(a.successMessage=null),"error"===r&&(null==(x=a.errorCount)&&(a.errorCount=0),a.errorCount+=1),p=a.returnsPromise?v[0]:"function"==typeof u?u.apply(null,v):void 0,_=g._getHandlerResponse(p),o.isString(_)&&(_={message:_}),"error"!==r||0!==(null!=w?w.status:void 0)&&"abort"!==y?"error"===r&&null!=a.ignoredErrorCodes&&(M=null!=w?w.status:void 0,f.call(a.ignoredErrorCodes,M)>=0)?(l.hide(),void 0):(h={message:s(r,w),type:r,events:null!=(C=n[r])?C:{},hideOnNavigate:"success"===r},m=e.extend({},a,h,_),"number"==typeof(null!=(k=m.retry)?k.allow:void 0)&&m.retry.allow--,"error"===r&&(null!=w?w.status:void 0)>=500&&(null!=($=m.retry)?$.allow:void 0)?(null==m.retry.delay&&(m.retry.delay=4>m.errorCount?10:300),m.hideAfter&&(null==(E=m._hideAfter)&&(m._hideAfter=m.hideAfter),m.hideAfter=m._hideAfter+m.retry.delay),m._retryActions=!0,m.actions={retry:{label:"retry now",phrase:"Retrying TIME",auto:m.retry.auto,delay:m.retry.delay,action:function(){return m.messageInstance=l,setTimeout(function(){return g["do"].apply(g,[m,c].concat(d.call(t)))},0)}},cancel:{action:function(){return l.cancel()}}}):m._retryActions&&(delete m.actions.retry,delete m.actions.cancel,delete a._retryActions),l.update(m),_&&m.message?(Messenger(),l.show()):l.hide()):(l.hide(),void 0)}}),!a.returnsPromise)for(h in i)r=i[h],u=c[h],c[h]=r;return l._actionInstance=a.action.apply(a,[c].concat(d.call(t))),a.returnsPromise&&l._actionInstance.then(i.success,i.error),l},n.prototype["do"]=n.prototype.run,n.prototype.ajax=function(){var t,n;return n=arguments[0],t=arguments.length>=2?d.call(arguments,1):[],n.action=e.ajax,this.run.apply(this,[n].concat(d.call(t)))},n.prototype.expectPromise=function(e,t){return t=o.extend({},t,{action:e,returnsPromise:!0}),this.run(t)},n.prototype.error=function(e){return null==e&&(e={}),"string"==typeof e&&(e={message:e}),e.type="error",this.post(e)},n.prototype.info=function(e){return null==e&&(e={}),"string"==typeof e&&(e={message:e}),e.type="info",this.post(e)},n.prototype.success=function(e){return null==e&&(e={}),"string"==typeof e&&(e={message:e}),e.type="success",this.post(e)},n}(a),e.fn.messenger=function(){var n,s,r,i,l,u,c,h;return r=arguments[0],s=arguments.length>=2?d.call(arguments,1):[],null==r&&(r={}),n=this,null!=r&&o.isString(r)?(h=n.data("messenger"))[r].apply(h,s):(l=r,null==n.data("messenger")&&(a=null!=(u=null!=(c=Messenger.themes[l.theme])?c.Messenger:void 0)?u:t,n.data("messenger",i=new a(e.extend({el:n},l))),i.render()),n.data("messenger"))},window.Messenger._call=function(t){var n,s,r,o,i,a,l,u,c,h,p;if(a={extraClasses:"messenger-fixed messenger-on-bottom messenger-on-right",theme:"future",maxMessages:9,parentLocations:["body"]},t=e.extend(a,e._messengerDefaults,Messenger.options,t),null!=t.theme&&(t.extraClasses+=" messenger-theme-"+t.theme),l=t.instance||Messenger.instance,null==t.instance){for(c=t.parentLocations,s=null,r=null,h=0,p=c.length;p>h;h++)if(u=c[h],s=e(u),s.length){o=u;break}l?e(l._location)!==e(o)&&(l.$el.detach(),s.prepend(l.$el)):(n=e("
      "),s.prepend(n),l=n.messenger(t),l._location=o,Messenger.instance=l)}return null!=l._addedClasses&&l.$el.removeClass(l._addedClasses),l.$el.addClass(i=""+l.className+" "+t.extraClasses),l._addedClasses=i,l},e.extend(Messenger,{Message:r,Messenger:t,themes:null!=(c=Messenger.themes)?c:{}}),e.globalMessenger=window.Messenger=Messenger}.call(this); -------------------------------------------------------------------------------- /assets/libs/messenger/css/messenger-theme-future.css: -------------------------------------------------------------------------------- 1 | @-webkit-keyframes ui-spinner-rotate-right { 2 | /* line 64, ../../src/sass/messenger-spinner.scss */ 3 | 0% { 4 | -webkit-transform: rotate(0deg); 5 | } 6 | 7 | /* line 65, ../../src/sass/messenger-spinner.scss */ 8 | 25% { 9 | -webkit-transform: rotate(180deg); 10 | } 11 | 12 | /* line 66, ../../src/sass/messenger-spinner.scss */ 13 | 50% { 14 | -webkit-transform: rotate(180deg); 15 | } 16 | 17 | /* line 67, ../../src/sass/messenger-spinner.scss */ 18 | 75% { 19 | -webkit-transform: rotate(360deg); 20 | } 21 | 22 | /* line 68, ../../src/sass/messenger-spinner.scss */ 23 | 100% { 24 | -webkit-transform: rotate(360deg); 25 | } 26 | } 27 | 28 | @-webkit-keyframes ui-spinner-rotate-left { 29 | /* line 72, ../../src/sass/messenger-spinner.scss */ 30 | 0% { 31 | -webkit-transform: rotate(0deg); 32 | } 33 | 34 | /* line 73, ../../src/sass/messenger-spinner.scss */ 35 | 25% { 36 | -webkit-transform: rotate(0deg); 37 | } 38 | 39 | /* line 74, ../../src/sass/messenger-spinner.scss */ 40 | 50% { 41 | -webkit-transform: rotate(180deg); 42 | } 43 | 44 | /* line 75, ../../src/sass/messenger-spinner.scss */ 45 | 75% { 46 | -webkit-transform: rotate(180deg); 47 | } 48 | 49 | /* line 76, ../../src/sass/messenger-spinner.scss */ 50 | 100% { 51 | -webkit-transform: rotate(360deg); 52 | } 53 | } 54 | 55 | @-moz-keyframes ui-spinner-rotate-right { 56 | /* line 80, ../../src/sass/messenger-spinner.scss */ 57 | 0% { 58 | -moz-transform: rotate(0deg); 59 | } 60 | 61 | /* line 81, ../../src/sass/messenger-spinner.scss */ 62 | 25% { 63 | -moz-transform: rotate(180deg); 64 | } 65 | 66 | /* line 82, ../../src/sass/messenger-spinner.scss */ 67 | 50% { 68 | -moz-transform: rotate(180deg); 69 | } 70 | 71 | /* line 83, ../../src/sass/messenger-spinner.scss */ 72 | 75% { 73 | -moz-transform: rotate(360deg); 74 | } 75 | 76 | /* line 84, ../../src/sass/messenger-spinner.scss */ 77 | 100% { 78 | -moz-transform: rotate(360deg); 79 | } 80 | } 81 | 82 | @-moz-keyframes ui-spinner-rotate-left { 83 | /* line 88, ../../src/sass/messenger-spinner.scss */ 84 | 0% { 85 | -moz-transform: rotate(0deg); 86 | } 87 | 88 | /* line 89, ../../src/sass/messenger-spinner.scss */ 89 | 25% { 90 | -moz-transform: rotate(0deg); 91 | } 92 | 93 | /* line 90, ../../src/sass/messenger-spinner.scss */ 94 | 50% { 95 | -moz-transform: rotate(180deg); 96 | } 97 | 98 | /* line 91, ../../src/sass/messenger-spinner.scss */ 99 | 75% { 100 | -moz-transform: rotate(180deg); 101 | } 102 | 103 | /* line 92, ../../src/sass/messenger-spinner.scss */ 104 | 100% { 105 | -moz-transform: rotate(360deg); 106 | } 107 | } 108 | 109 | @keyframes ui-spinner-rotate-right { 110 | /* line 96, ../../src/sass/messenger-spinner.scss */ 111 | 0% { 112 | transform: rotate(0deg); 113 | } 114 | 115 | /* line 97, ../../src/sass/messenger-spinner.scss */ 116 | 25% { 117 | transform: rotate(180deg); 118 | } 119 | 120 | /* line 98, ../../src/sass/messenger-spinner.scss */ 121 | 50% { 122 | transform: rotate(180deg); 123 | } 124 | 125 | /* line 99, ../../src/sass/messenger-spinner.scss */ 126 | 75% { 127 | transform: rotate(360deg); 128 | } 129 | 130 | /* line 100, ../../src/sass/messenger-spinner.scss */ 131 | 100% { 132 | transform: rotate(360deg); 133 | } 134 | } 135 | 136 | @keyframes ui-spinner-rotate-left { 137 | /* line 104, ../../src/sass/messenger-spinner.scss */ 138 | 0% { 139 | transform: rotate(0deg); 140 | } 141 | 142 | /* line 105, ../../src/sass/messenger-spinner.scss */ 143 | 25% { 144 | transform: rotate(0deg); 145 | } 146 | 147 | /* line 106, ../../src/sass/messenger-spinner.scss */ 148 | 50% { 149 | transform: rotate(180deg); 150 | } 151 | 152 | /* line 107, ../../src/sass/messenger-spinner.scss */ 153 | 75% { 154 | transform: rotate(180deg); 155 | } 156 | 157 | /* line 108, ../../src/sass/messenger-spinner.scss */ 158 | 100% { 159 | transform: rotate(360deg); 160 | } 161 | } 162 | 163 | /* line 116, ../../src/sass/messenger-spinner.scss */ 164 | .messenger-spinner { 165 | position: relative; 166 | border-radius: 100%; 167 | } 168 | /* line 120, ../../src/sass/messenger-spinner.scss */ 169 | ul.messenger.messenger-spinner-active .messenger-spinner .messenger-spinner { 170 | display: block; 171 | } 172 | /* line 124, ../../src/sass/messenger-spinner.scss */ 173 | .messenger-spinner .messenger-spinner-side { 174 | width: 50%; 175 | height: 100%; 176 | overflow: hidden; 177 | position: absolute; 178 | } 179 | /* line 130, ../../src/sass/messenger-spinner.scss */ 180 | .messenger-spinner .messenger-spinner-side .messenger-spinner-fill { 181 | border-radius: 999px; 182 | position: absolute; 183 | width: 100%; 184 | height: 100%; 185 | -webkit-animation-iteration-count: infinite; 186 | -moz-animation-iteration-count: infinite; 187 | -ms-animation-iteration-count: infinite; 188 | -o-animation-iteration-count: infinite; 189 | animation-iteration-count: infinite; 190 | -webkit-animation-timing-function: linear; 191 | -moz-animation-timing-function: linear; 192 | -ms-animation-timing-function: linear; 193 | -o-animation-timing-function: linear; 194 | animation-timing-function: linear; 195 | } 196 | /* line 140, ../../src/sass/messenger-spinner.scss */ 197 | .messenger-spinner .messenger-spinner-side-left { 198 | left: 0; 199 | } 200 | /* line 143, ../../src/sass/messenger-spinner.scss */ 201 | .messenger-spinner .messenger-spinner-side-left .messenger-spinner-fill { 202 | left: 100%; 203 | border-top-left-radius: 0; 204 | border-bottom-left-radius: 0; 205 | -webkit-animation-name: ui-spinner-rotate-left; 206 | -moz-animation-name: ui-spinner-rotate-left; 207 | -ms-animation-name: ui-spinner-rotate-left; 208 | -o-animation-name: ui-spinner-rotate-left; 209 | animation-name: ui-spinner-rotate-left; 210 | -webkit-transform-origin: 0 50%; 211 | -moz-transform-origin: 0 50%; 212 | -ms-transform-origin: 0 50%; 213 | -o-transform-origin: 0 50%; 214 | transform-origin: 0 50%; 215 | } 216 | /* line 152, ../../src/sass/messenger-spinner.scss */ 217 | .messenger-spinner .messenger-spinner-side-right { 218 | left: 50%; 219 | } 220 | /* line 155, ../../src/sass/messenger-spinner.scss */ 221 | .messenger-spinner .messenger-spinner-side-right .messenger-spinner-fill { 222 | left: -100%; 223 | border-top-right-radius: 0; 224 | border-bottom-right-radius: 0; 225 | -webkit-animation-name: ui-spinner-rotate-right; 226 | -moz-animation-name: ui-spinner-rotate-right; 227 | -ms-animation-name: ui-spinner-rotate-right; 228 | -o-animation-name: ui-spinner-rotate-right; 229 | animation-name: ui-spinner-rotate-right; 230 | -webkit-transform-origin: 100% 50%; 231 | -moz-transform-origin: 100% 50%; 232 | -ms-transform-origin: 100% 50%; 233 | -o-transform-origin: 100% 50%; 234 | transform-origin: 100% 50%; 235 | } 236 | 237 | /* line 15, ../../src/sass/messenger-theme-future.sass */ 238 | ul.messenger-theme-future { 239 | -webkit-box-shadow: inset 0px 1px rgba(255, 255, 255, 0.24), 0px 1px 5px rgba(0, 0, 0, 0.6); 240 | -moz-box-shadow: inset 0px 1px rgba(255, 255, 255, 0.24), 0px 1px 5px rgba(0, 0, 0, 0.6); 241 | box-shadow: inset 0px 1px rgba(255, 255, 255, 0.24), 0px 1px 5px rgba(0, 0, 0, 0.6); 242 | -webkit-border-radius: 4px; 243 | -moz-border-radius: 4px; 244 | -ms-border-radius: 4px; 245 | -o-border-radius: 4px; 246 | border-radius: 4px; 247 | -moz-user-select: none; 248 | -webkit-user-select: none; 249 | -o-user-select: none; 250 | user-select: none; 251 | background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #5c5b5b), color-stop(100%, #353535)); 252 | background-image: -webkit-linear-gradient(#5c5b5b, #353535); 253 | background-image: -moz-linear-gradient(#5c5b5b, #353535); 254 | background-image: -o-linear-gradient(#5c5b5b, #353535); 255 | background-image: linear-gradient(#5c5b5b, #353535); 256 | background-color: #5c5b5b; 257 | border: 1px solid rgba(0, 0, 0, 0.5); 258 | } 259 | /* line 23, ../../src/sass/messenger-theme-future.sass */ 260 | ul.messenger-theme-future .messenger-message { 261 | -webkit-box-shadow: inset 0px 1px rgba(255, 255, 255, 0.13), inset 0px -1px rgba(0, 0, 0, 0.23), inset 48px 0px 0px rgba(0, 0, 0, 0.3), inset 46px 0px 0px rgba(255, 255, 255, 0.07); 262 | -moz-box-shadow: inset 0px 1px rgba(255, 255, 255, 0.13), inset 0px -1px rgba(0, 0, 0, 0.23), inset 48px 0px 0px rgba(0, 0, 0, 0.3), inset 46px 0px 0px rgba(255, 255, 255, 0.07); 263 | box-shadow: inset 0px 1px rgba(255, 255, 255, 0.13), inset 0px -1px rgba(0, 0, 0, 0.23), inset 48px 0px 0px rgba(0, 0, 0, 0.3), inset 46px 0px 0px rgba(255, 255, 255, 0.07); 264 | -webkit-border-radius: 0px; 265 | -moz-border-radius: 0px; 266 | -ms-border-radius: 0px; 267 | -o-border-radius: 0px; 268 | border-radius: 0px; 269 | position: relative; 270 | border: 0px; 271 | margin-bottom: 0px; 272 | font-size: 13px; 273 | background: transparent; 274 | color: #f0f0f0; 275 | text-shadow: 0px 1px #111111; 276 | font-weight: 500; 277 | padding: 10px 30px 13px 65px; 278 | } 279 | /* line 36, ../../src/sass/messenger-theme-future.sass */ 280 | ul.messenger-theme-future .messenger-message .messenger-close { 281 | position: absolute; 282 | top: 0px; 283 | right: 0px; 284 | color: #888888; 285 | text-shadow: 0px 1px black; 286 | opacity: 1; 287 | font-weight: bold; 288 | display: block; 289 | font-size: 20px; 290 | line-height: 20px; 291 | padding: 8px 10px 7px 7px; 292 | cursor: pointer; 293 | background: transparent; 294 | border: 0; 295 | -webkit-appearance: none; 296 | } 297 | /* line 53, ../../src/sass/messenger-theme-future.sass */ 298 | ul.messenger-theme-future .messenger-message .messenger-close:hover { 299 | color: #bbbbbb; 300 | } 301 | /* line 56, ../../src/sass/messenger-theme-future.sass */ 302 | ul.messenger-theme-future .messenger-message .messenger-close:active { 303 | color: #777777; 304 | } 305 | /* line 59, ../../src/sass/messenger-theme-future.sass */ 306 | ul.messenger-theme-future .messenger-message .messenger-actions { 307 | float: none; 308 | margin-top: 10px; 309 | } 310 | /* line 63, ../../src/sass/messenger-theme-future.sass */ 311 | ul.messenger-theme-future .messenger-message .messenger-actions a { 312 | -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2), inset 0px 1px rgba(255, 255, 255, 0.1); 313 | -moz-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2), inset 0px 1px rgba(255, 255, 255, 0.1); 314 | box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2), inset 0px 1px rgba(255, 255, 255, 0.1); 315 | -webkit-border-radius: 4px; 316 | -moz-border-radius: 4px; 317 | -ms-border-radius: 4px; 318 | -o-border-radius: 4px; 319 | border-radius: 4px; 320 | text-decoration: none; 321 | display: inline-block; 322 | padding: 10px; 323 | color: #aaaaaa; 324 | text-shadow: 0px 1px #222222; 325 | margin-right: 10px; 326 | padding: 3px 10px 5px; 327 | text-transform: capitalize; 328 | } 329 | /* line 75, ../../src/sass/messenger-theme-future.sass */ 330 | ul.messenger-theme-future .messenger-message .messenger-actions a:hover { 331 | -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2), inset 0px 1px rgba(255, 255, 255, 0.2); 332 | -moz-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2), inset 0px 1px rgba(255, 255, 255, 0.2); 333 | box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2), inset 0px 1px rgba(255, 255, 255, 0.2); 334 | color: #f0f0f0; 335 | } 336 | /* line 79, ../../src/sass/messenger-theme-future.sass */ 337 | ul.messenger-theme-future .messenger-message .messenger-actions a:active { 338 | -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.28), inset 0px 1px rgba(0, 0, 0, 0.1); 339 | -moz-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.28), inset 0px 1px rgba(0, 0, 0, 0.1); 340 | box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.28), inset 0px 1px rgba(0, 0, 0, 0.1); 341 | background: rgba(0, 0, 0, 0.04); 342 | color: #aaaaaa; 343 | } 344 | /* line 84, ../../src/sass/messenger-theme-future.sass */ 345 | ul.messenger-theme-future .messenger-message .messenger-actions .messenger-phrase { 346 | display: none; 347 | } 348 | /* line 87, ../../src/sass/messenger-theme-future.sass */ 349 | ul.messenger-theme-future .messenger-message .messenger-message-inner:before { 350 | -webkit-box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.6), 0px 0px 0px 1px rgba(0, 0, 0, 0.2); 351 | -moz-box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.6), 0px 0px 0px 1px rgba(0, 0, 0, 0.2); 352 | box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.6), 0px 0px 0px 1px rgba(0, 0, 0, 0.2); 353 | -webkit-border-radius: 50%; 354 | -moz-border-radius: 50%; 355 | -ms-border-radius: 50%; 356 | -o-border-radius: 50%; 357 | border-radius: 50%; 358 | position: absolute; 359 | left: 17px; 360 | display: block; 361 | content: " "; 362 | top: 50%; 363 | margin-top: -8px; 364 | height: 13px; 365 | width: 13px; 366 | z-index: 20; 367 | } 368 | /* line 100, ../../src/sass/messenger-theme-future.sass */ 369 | ul.messenger-theme-future .messenger-message.alert-success .messenger-message-inner:before { 370 | background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #5fca4a), color-stop(100%, #098d38)); 371 | background-image: -webkit-linear-gradient(top, #5fca4a, #098d38); 372 | background-image: -moz-linear-gradient(top, #5fca4a, #098d38); 373 | background-image: -o-linear-gradient(top, #5fca4a, #098d38); 374 | background-image: linear-gradient(top, #5fca4a, #098d38); 375 | background-color: #5fca4a; 376 | } 377 | /* line 104, ../../src/sass/messenger-theme-future.sass */ 378 | ul.messenger-theme-future .messenger-message.alert-info .messenger-message-inner:before { 379 | background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #61c4b8), color-stop(100%, #1992a3)); 380 | background-image: -webkit-linear-gradient(top, #61c4b8, #1992a3); 381 | background-image: -moz-linear-gradient(top, #61c4b8, #1992a3); 382 | background-image: -o-linear-gradient(top, #61c4b8, #1992a3); 383 | background-image: linear-gradient(top, #61c4b8, #1992a3); 384 | background-color: #61c4b8; 385 | } 386 | /* line 110, ../../src/sass/messenger-theme-future.sass */ 387 | ul.messenger-theme-future .messenger-message.alert-error .messenger-message-inner:before { 388 | background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #dd6a45), color-stop(100%, #91361a)); 389 | background-image: -webkit-linear-gradient(top, #dd6a45, #91361a); 390 | background-image: -moz-linear-gradient(top, #dd6a45, #91361a); 391 | background-image: -o-linear-gradient(top, #dd6a45, #91361a); 392 | background-image: linear-gradient(top, #dd6a45, #91361a); 393 | background-color: #dd6a45; 394 | } 395 | /* line 32, ../../src/sass/messenger-spinner.scss */ 396 | ul.messenger-theme-future .messenger-message.alert-error.messenger-retry-soon .messenger-spinner { 397 | width: 32px; 398 | height: 32px; 399 | background: transparent; 400 | } 401 | /* line 37, ../../src/sass/messenger-spinner.scss */ 402 | ul.messenger-theme-future .messenger-message.alert-error.messenger-retry-soon .messenger-spinner .messenger-spinner-side .messenger-spinner-fill { 403 | background: #dd6a45; 404 | -webkit-animation-duration: 20s; 405 | -moz-animation-duration: 20s; 406 | -ms-animation-duration: 20s; 407 | -o-animation-duration: 20s; 408 | animation-duration: 20s; 409 | opacity: 1; 410 | } 411 | /* line 45, ../../src/sass/messenger-spinner.scss */ 412 | ul.messenger-theme-future .messenger-message.alert-error.messenger-retry-soon .messenger-spinner:after { 413 | content: ""; 414 | background: #333333; 415 | position: absolute; 416 | width: 26px; 417 | height: 26px; 418 | border-radius: 50%; 419 | top: 3px; 420 | left: 3px; 421 | display: block; 422 | } 423 | /* line 32, ../../src/sass/messenger-spinner.scss */ 424 | ul.messenger-theme-future .messenger-message.alert-error.messenger-retry-later .messenger-spinner { 425 | width: 32px; 426 | height: 32px; 427 | background: transparent; 428 | } 429 | /* line 37, ../../src/sass/messenger-spinner.scss */ 430 | ul.messenger-theme-future .messenger-message.alert-error.messenger-retry-later .messenger-spinner .messenger-spinner-side .messenger-spinner-fill { 431 | background: #dd6a45; 432 | -webkit-animation-duration: 600s; 433 | -moz-animation-duration: 600s; 434 | -ms-animation-duration: 600s; 435 | -o-animation-duration: 600s; 436 | animation-duration: 600s; 437 | opacity: 1; 438 | } 439 | /* line 45, ../../src/sass/messenger-spinner.scss */ 440 | ul.messenger-theme-future .messenger-message.alert-error.messenger-retry-later .messenger-spinner:after { 441 | content: ""; 442 | background: #333333; 443 | position: absolute; 444 | width: 26px; 445 | height: 26px; 446 | border-radius: 50%; 447 | top: 3px; 448 | left: 3px; 449 | display: block; 450 | } 451 | /* line 122, ../../src/sass/messenger-theme-future.sass */ 452 | ul.messenger-theme-future .messenger-message-slot.messenger-last .messenger-message { 453 | -webkit-border-radius: 4px 4px 0px 0px; 454 | -moz-border-radius: 4px 4px 0px 0px; 455 | -ms-border-radius: 4px 4px 0px 0px; 456 | -o-border-radius: 4px 4px 0px 0px; 457 | border-radius: 4px 4px 0px 0px; 458 | } 459 | /* line 125, ../../src/sass/messenger-theme-future.sass */ 460 | ul.messenger-theme-future .messenger-message-slot.messenger-first .messenger-message { 461 | -webkit-border-radius: 0px 0px 4px 4px; 462 | -moz-border-radius: 0px 0px 4px 4px; 463 | -ms-border-radius: 0px 0px 4px 4px; 464 | -o-border-radius: 0px 0px 4px 4px; 465 | border-radius: 0px 0px 4px 4px; 466 | -webkit-box-shadow: inset 0px 1px rgba(255, 255, 255, 0.13), inset 48px 0px 0px rgba(0, 0, 0, 0.3), inset 46px 0px 0px rgba(255, 255, 255, 0.07); 467 | -moz-box-shadow: inset 0px 1px rgba(255, 255, 255, 0.13), inset 48px 0px 0px rgba(0, 0, 0, 0.3), inset 46px 0px 0px rgba(255, 255, 255, 0.07); 468 | box-shadow: inset 0px 1px rgba(255, 255, 255, 0.13), inset 48px 0px 0px rgba(0, 0, 0, 0.3), inset 46px 0px 0px rgba(255, 255, 255, 0.07); 469 | } 470 | /* line 129, ../../src/sass/messenger-theme-future.sass */ 471 | ul.messenger-theme-future .messenger-message-slot.messenger-first.messenger-last .messenger-message { 472 | -webkit-border-radius: 4px; 473 | -moz-border-radius: 4px; 474 | -ms-border-radius: 4px; 475 | -o-border-radius: 4px; 476 | border-radius: 4px; 477 | -webkit-box-shadow: inset 48px 0px 0px rgba(0, 0, 0, 0.3), inset 46px 0px 0px rgba(255, 255, 255, 0.07); 478 | -moz-box-shadow: inset 48px 0px 0px rgba(0, 0, 0, 0.3), inset 46px 0px 0px rgba(255, 255, 255, 0.07); 479 | box-shadow: inset 48px 0px 0px rgba(0, 0, 0, 0.3), inset 46px 0px 0px rgba(255, 255, 255, 0.07); 480 | } 481 | /* line 133, ../../src/sass/messenger-theme-future.sass */ 482 | ul.messenger-theme-future .messenger-spinner { 483 | display: block; 484 | position: absolute; 485 | left: 7px; 486 | top: 50%; 487 | margin-top: -18px; 488 | z-index: 999; 489 | height: 32px; 490 | width: 32px; 491 | z-index: 10; 492 | } 493 | -------------------------------------------------------------------------------- /assets/libs/bootswatch/flatly/variables.less: -------------------------------------------------------------------------------- 1 | // Flatly 3.0.2 2 | // Variables 3 | // -------------------------------------------------- 4 | 5 | 6 | // Global values 7 | // -------------------------------------------------- 8 | 9 | // Grays 10 | // ------------------------- 11 | 12 | @gray-darker: lighten(#000, 13.5%); // #222 13 | @gray-dark: #7b8a8b; 14 | @gray: #95a5a6; 15 | @gray-light: #b4bcc2; 16 | @gray-lighter: #ecf0f1; 17 | 18 | // Brand colors 19 | // ------------------------- 20 | 21 | @brand-primary: #2C3E50; 22 | @brand-success: #18BC9C; 23 | @brand-warning: #F39C12; 24 | @brand-danger: #E74C3C; 25 | @brand-info: #3498DB; 26 | 27 | // Scaffolding 28 | // ------------------------- 29 | 30 | @body-bg: #fff; 31 | @text-color: @brand-primary; 32 | 33 | // Links 34 | // ------------------------- 35 | 36 | @link-color: @brand-success; 37 | @link-hover-color: @link-color; 38 | 39 | // Typography 40 | // ------------------------- 41 | 42 | @font-family-sans-serif: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif; 43 | @font-family-serif: Georgia, "Times New Roman", Times, serif; 44 | @font-family-monospace: Monaco, Menlo, Consolas, "Courier New", monospace; 45 | @font-family-base: @font-family-sans-serif; 46 | 47 | @font-size-base: 15px; 48 | @font-size-large: ceil(@font-size-base * 1.25); // ~18px 49 | @font-size-small: ceil(@font-size-base * 0.85); // ~12px 50 | 51 | @font-size-h1: floor(@font-size-base * 2.6); // ~36px 52 | @font-size-h2: floor(@font-size-base * 2.15); // ~30px 53 | @font-size-h3: ceil(@font-size-base * 1.7); // ~24px 54 | @font-size-h4: ceil(@font-size-base * 1.25); // ~18px 55 | @font-size-h5: @font-size-base; 56 | @font-size-h6: ceil(@font-size-base * 0.85); // ~12px 57 | 58 | @line-height-base: 1.428571429; // 20/14 59 | @line-height-computed: floor(@font-size-base * @line-height-base); // ~20px 60 | 61 | @headings-font-family: @font-family-base; 62 | @headings-font-weight: 500; 63 | @headings-line-height: 1.1; 64 | @headings-color: inherit; 65 | 66 | 67 | // Iconography 68 | // ------------------------- 69 | 70 | @icon-font-path: "../fonts/"; 71 | @icon-font-name: "glyphicons-halflings-regular"; 72 | 73 | 74 | // Components 75 | // ------------------------- 76 | // Based on 14px font-size and 1.428 line-height (~20px to start) 77 | 78 | @padding-base-vertical: 10px; 79 | @padding-base-horizontal: 15px; 80 | 81 | @padding-large-vertical: 18px; 82 | @padding-large-horizontal: 27px; 83 | 84 | @padding-small-vertical: 6px; 85 | @padding-small-horizontal: 9px; 86 | 87 | @line-height-large: 1.33; 88 | @line-height-small: 1.5; 89 | 90 | @border-radius-base: 4px; 91 | @border-radius-large: 6px; 92 | @border-radius-small: 3px; 93 | 94 | @component-active-color: #fff; 95 | @component-active-bg: @brand-primary; 96 | 97 | @caret-width-base: 4px; 98 | @caret-width-large: 5px; 99 | 100 | // Tables 101 | // ------------------------- 102 | 103 | @table-cell-padding: 8px; 104 | @table-condensed-cell-padding: 5px; 105 | 106 | @table-bg: transparent; // overall background-color 107 | @table-bg-accent: #f9f9f9; // for striping 108 | @table-bg-hover: @gray-lighter; 109 | @table-bg-active: @table-bg-hover; 110 | 111 | @table-border-color: @gray-lighter; // table and cell border 112 | 113 | 114 | // Buttons 115 | // ------------------------- 116 | 117 | @btn-font-weight: normal; 118 | 119 | @btn-default-color: #fff; 120 | @btn-default-bg: @gray; 121 | @btn-default-border: @btn-default-bg; 122 | 123 | @btn-primary-color: @btn-default-color; 124 | @btn-primary-bg: @brand-primary; 125 | @btn-primary-border: @btn-primary-bg; 126 | 127 | @btn-success-color: @btn-default-color; 128 | @btn-success-bg: @brand-success; 129 | @btn-success-border: @btn-success-bg; 130 | 131 | @btn-warning-color: @btn-default-color; 132 | @btn-warning-bg: @brand-warning; 133 | @btn-warning-border: @btn-warning-bg; 134 | 135 | @btn-danger-color: @btn-default-color; 136 | @btn-danger-bg: @brand-danger; 137 | @btn-danger-border: @btn-danger-bg; 138 | 139 | @btn-info-color: @btn-default-color; 140 | @btn-info-bg: @brand-info; 141 | @btn-info-border: @btn-info-bg; 142 | 143 | @btn-link-disabled-color: @gray-light; 144 | 145 | 146 | // Forms 147 | // ------------------------- 148 | 149 | @input-bg: #fff; 150 | @input-bg-disabled: @gray-lighter; 151 | 152 | @input-color: @text-color; 153 | @input-border: #dce4ec; 154 | @input-border-radius: @border-radius-base; 155 | @input-border-focus: #1abc9c; 156 | 157 | @input-color-placeholder: #acb6c0; 158 | 159 | @input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2); 160 | @input-height-large: (ceil(@font-size-large * @line-height-base) + (@padding-large-vertical * 2) + 2); 161 | @input-height-small: (ceil(@font-size-small * @line-height-base) + (@padding-small-vertical * 2) + 2); 162 | 163 | @legend-color: @text-color; 164 | @legend-border-color: #e5e5e5; 165 | 166 | @input-group-addon-bg: @gray-lighter; 167 | @input-group-addon-border-color: @input-border; 168 | 169 | 170 | // Dropdowns 171 | // ------------------------- 172 | 173 | @dropdown-bg: #fff; 174 | @dropdown-border: rgba(0,0,0,.15); 175 | @dropdown-fallback-border: #ccc; 176 | @dropdown-divider-bg: #e5e5e5; 177 | 178 | @dropdown-link-color: @gray-dark; 179 | @dropdown-link-hover-color: #fff; 180 | @dropdown-link-hover-bg: @dropdown-link-active-bg; 181 | 182 | @dropdown-link-active-color: #fff; 183 | @dropdown-link-active-bg: @component-active-bg; 184 | 185 | @dropdown-link-disabled-color: @text-muted; 186 | 187 | @dropdown-header-color: @text-muted; 188 | 189 | @dropdown-caret-color: #000; 190 | 191 | 192 | // COMPONENT VARIABLES 193 | // -------------------------------------------------- 194 | 195 | 196 | // Z-index master list 197 | // ------------------------- 198 | // Used for a bird's eye view of components dependent on the z-axis 199 | // Try to avoid customizing these :) 200 | 201 | @zindex-navbar: 1000; 202 | @zindex-dropdown: 1000; 203 | @zindex-popover: 1010; 204 | @zindex-tooltip: 1030; 205 | @zindex-navbar-fixed: 1030; 206 | @zindex-modal-background: 1040; 207 | @zindex-modal: 1050; 208 | 209 | // Media queries breakpoints 210 | // -------------------------------------------------- 211 | 212 | // Extra small screen / phone 213 | // Note: Deprecated @screen-xs and @screen-phone as of v3.0.1 214 | @screen-xs: 480px; 215 | @screen-xs-min: @screen-xs; 216 | @screen-phone: @screen-xs-min; 217 | 218 | // Small screen / tablet 219 | // Note: Deprecated @screen-sm and @screen-tablet as of v3.0.1 220 | @screen-sm: 768px; 221 | @screen-sm-min: @screen-sm; 222 | @screen-tablet: @screen-sm-min; 223 | 224 | // Medium screen / desktop 225 | // Note: Deprecated @screen-md and @screen-desktop as of v3.0.1 226 | @screen-md: 992px; 227 | @screen-md-min: @screen-md; 228 | @screen-desktop: @screen-md-min; 229 | 230 | // Large screen / wide desktop 231 | // Note: Deprecated @screen-lg and @screen-lg-desktop as of v3.0.1 232 | @screen-lg: 1200px; 233 | @screen-lg-min: @screen-lg; 234 | @screen-lg-desktop: @screen-lg-min; 235 | 236 | // So media queries don't overlap when required, provide a maximum 237 | @screen-xs-max: (@screen-sm-min - 1); 238 | @screen-sm-max: (@screen-md-min - 1); 239 | @screen-md-max: (@screen-lg-min - 1); 240 | 241 | 242 | // Grid system 243 | // -------------------------------------------------- 244 | 245 | // Number of columns in the grid system 246 | @grid-columns: 12; 247 | // Padding, to be divided by two and applied to the left and right of all columns 248 | @grid-gutter-width: 30px; 249 | // Point at which the navbar stops collapsing 250 | @grid-float-breakpoint: @screen-sm-min; 251 | 252 | 253 | // Navbar 254 | // ------------------------- 255 | 256 | // Basics of a navbar 257 | @navbar-height: 60px; 258 | @navbar-margin-bottom: @line-height-computed; 259 | @navbar-border-radius: @border-radius-base; 260 | @navbar-padding-horizontal: floor(@grid-gutter-width / 2); // ~15px 261 | @navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2); 262 | 263 | @navbar-default-color: #777; 264 | @navbar-default-bg: @brand-primary; 265 | @navbar-default-border: darken(@navbar-default-bg, 6.5%); 266 | 267 | // Navbar links 268 | @navbar-default-link-color: #fff; 269 | @navbar-default-link-hover-color: @brand-success; 270 | @navbar-default-link-hover-bg: transparent; 271 | @navbar-default-link-active-color: #fff; 272 | @navbar-default-link-active-bg: darken(@navbar-default-bg, 10%); 273 | @navbar-default-link-disabled-color: #ccc; 274 | @navbar-default-link-disabled-bg: transparent; 275 | 276 | // Navbar brand label 277 | @navbar-default-brand-color: @navbar-default-link-color; 278 | @navbar-default-brand-hover-color: @navbar-default-link-hover-color; 279 | @navbar-default-brand-hover-bg: transparent; 280 | 281 | // Navbar toggle 282 | @navbar-default-toggle-hover-bg: darken(@navbar-default-bg, 10%); 283 | @navbar-default-toggle-icon-bar-bg: #fff; 284 | @navbar-default-toggle-border-color: darken(@navbar-default-bg, 10%); 285 | 286 | 287 | // Inverted navbar 288 | // 289 | // Reset inverted navbar basics 290 | @navbar-inverse-color: #fff; 291 | @navbar-inverse-bg: @brand-success; 292 | @navbar-inverse-border: darken(@navbar-inverse-bg, 10%); 293 | 294 | // Inverted navbar links 295 | @navbar-inverse-link-color: #fff; 296 | @navbar-inverse-link-hover-color: @brand-primary; 297 | @navbar-inverse-link-hover-bg: transparent; 298 | @navbar-inverse-link-active-color: #fff; 299 | @navbar-inverse-link-active-bg: darken(@navbar-inverse-bg, 5%); 300 | @navbar-inverse-link-disabled-color: #ccc; 301 | @navbar-inverse-link-disabled-bg: transparent; 302 | 303 | // Inverted navbar brand label 304 | @navbar-inverse-brand-color: @navbar-inverse-link-color; 305 | @navbar-inverse-brand-hover-color: @navbar-inverse-link-hover-color; 306 | @navbar-inverse-brand-hover-bg: transparent; 307 | 308 | // Inverted navbar toggle 309 | @navbar-inverse-toggle-hover-bg: darken(@navbar-inverse-bg, 10%); 310 | @navbar-inverse-toggle-icon-bar-bg: #fff; 311 | @navbar-inverse-toggle-border-color: darken(@navbar-inverse-bg, 10%); 312 | 313 | 314 | // Navs 315 | // ------------------------- 316 | 317 | @nav-link-padding: 10px 15px; 318 | @nav-link-hover-bg: @gray-lighter; 319 | 320 | @nav-disabled-link-color: @gray-light; 321 | @nav-disabled-link-hover-color: @gray-light; 322 | 323 | @nav-open-link-hover-color: #fff; 324 | @nav-open-caret-border-color: #fff; 325 | 326 | // Tabs 327 | @nav-tabs-border-color: @gray-lighter; 328 | 329 | @nav-tabs-link-hover-border-color: @gray-lighter; 330 | 331 | @nav-tabs-active-link-hover-bg: @body-bg; 332 | @nav-tabs-active-link-hover-color: @brand-primary; 333 | @nav-tabs-active-link-hover-border-color: @gray-lighter; 334 | 335 | @nav-tabs-justified-link-border-color: @gray-lighter; 336 | @nav-tabs-justified-active-link-border-color: @body-bg; 337 | 338 | // Pills 339 | @nav-pills-border-radius: @border-radius-base; 340 | @nav-pills-active-link-hover-bg: @component-active-bg; 341 | @nav-pills-active-link-hover-color: @component-active-color; 342 | 343 | 344 | // Pagination 345 | // ------------------------- 346 | 347 | @pagination-bg: @brand-success; 348 | @pagination-border: transparent; 349 | 350 | @pagination-hover-bg: darken(@brand-success, 15%); 351 | 352 | @pagination-active-bg: darken(@brand-success, 15%); 353 | @pagination-active-color: #fff; 354 | 355 | @pagination-disabled-color: @gray-lighter; 356 | 357 | 358 | // Pager 359 | // ------------------------- 360 | 361 | @pager-border-radius: 15px; 362 | @pager-disabled-color: #fff; 363 | 364 | 365 | // Jumbotron 366 | // ------------------------- 367 | 368 | @jumbotron-padding: 30px; 369 | @jumbotron-color: inherit; 370 | @jumbotron-bg: @gray-lighter; 371 | @jumbotron-heading-color: inherit; 372 | @jumbotron-font-size: ceil(@font-size-base * 1.5); 373 | 374 | 375 | // Form states and alerts 376 | // ------------------------- 377 | 378 | @state-success-text: #fff; 379 | @state-success-bg: @brand-success; 380 | @state-success-border: @brand-success; 381 | 382 | @state-info-text: #fff; 383 | @state-info-bg: @brand-info; 384 | @state-info-border: @brand-info; 385 | 386 | @state-warning-text: #fff; 387 | @state-warning-bg: @brand-warning; 388 | @state-warning-border: @brand-warning; 389 | 390 | @state-danger-text: #fff; 391 | @state-danger-bg: @brand-danger; 392 | @state-danger-border: @brand-danger; 393 | 394 | 395 | // Tooltips 396 | // ------------------------- 397 | @tooltip-max-width: 200px; 398 | @tooltip-color: #fff; 399 | @tooltip-bg: rgba(0,0,0,.9); 400 | 401 | @tooltip-arrow-width: 5px; 402 | @tooltip-arrow-color: @tooltip-bg; 403 | 404 | 405 | // Popovers 406 | // ------------------------- 407 | @popover-bg: #fff; 408 | @popover-max-width: 276px; 409 | @popover-border-color: rgba(0,0,0,.2); 410 | @popover-fallback-border-color: #ccc; 411 | 412 | @popover-title-bg: darken(@popover-bg, 3%); 413 | 414 | @popover-arrow-width: 10px; 415 | @popover-arrow-color: #fff; 416 | 417 | @popover-arrow-outer-width: (@popover-arrow-width + 1); 418 | @popover-arrow-outer-color: rgba(0,0,0,.25); 419 | @popover-arrow-outer-fallback-color: #999; 420 | 421 | 422 | // Labels 423 | // ------------------------- 424 | 425 | @label-default-bg: @btn-default-bg; 426 | @label-primary-bg: @brand-primary; 427 | @label-success-bg: @brand-success; 428 | @label-info-bg: @brand-info; 429 | @label-warning-bg: @brand-warning; 430 | @label-danger-bg: @brand-danger; 431 | 432 | @label-color: #fff; 433 | @label-link-hover-color: #fff; 434 | 435 | 436 | // Modals 437 | // ------------------------- 438 | @modal-inner-padding: 20px; 439 | 440 | @modal-title-padding: 15px; 441 | @modal-title-line-height: @line-height-base; 442 | 443 | @modal-content-bg: #fff; 444 | @modal-content-border-color: rgba(0,0,0,.2); 445 | @modal-content-fallback-border-color: #999; 446 | 447 | @modal-backdrop-bg: #000; 448 | @modal-header-border-color: #e5e5e5; 449 | @modal-footer-border-color: @modal-header-border-color; 450 | 451 | 452 | // Alerts 453 | // ------------------------- 454 | @alert-padding: 15px; 455 | @alert-border-radius: @border-radius-base; 456 | @alert-link-font-weight: bold; 457 | 458 | @alert-success-bg: @state-success-bg; 459 | @alert-success-text: @state-success-text; 460 | @alert-success-border: @state-success-border; 461 | 462 | @alert-info-bg: @state-info-bg; 463 | @alert-info-text: @state-info-text; 464 | @alert-info-border: @state-info-border; 465 | 466 | @alert-warning-bg: @state-warning-bg; 467 | @alert-warning-text: @state-warning-text; 468 | @alert-warning-border: @state-warning-border; 469 | 470 | @alert-danger-bg: @state-danger-bg; 471 | @alert-danger-text: @state-danger-text; 472 | @alert-danger-border: @state-danger-border; 473 | 474 | 475 | // Progress bars 476 | // ------------------------- 477 | @progress-bg: @gray-lighter; 478 | @progress-bar-color: #fff; 479 | 480 | @progress-bar-bg: @brand-primary; 481 | @progress-bar-success-bg: @brand-success; 482 | @progress-bar-warning-bg: @brand-warning; 483 | @progress-bar-danger-bg: @brand-danger; 484 | @progress-bar-info-bg: @brand-info; 485 | 486 | 487 | // List group 488 | // ------------------------- 489 | @list-group-bg: #fff; 490 | @list-group-border: @gray-lighter; 491 | @list-group-border-radius: @border-radius-base; 492 | 493 | @list-group-hover-bg: @gray-lighter; 494 | @list-group-active-color: @component-active-color; 495 | @list-group-active-bg: @component-active-bg; 496 | @list-group-active-border: @list-group-active-bg; 497 | 498 | @list-group-link-color: #555; 499 | @list-group-link-heading-color: #333; 500 | 501 | 502 | // Panels 503 | // ------------------------- 504 | @panel-bg: #fff; 505 | @panel-inner-border: @gray-lighter; 506 | @panel-border-radius: @border-radius-base; 507 | @panel-footer-bg: @gray-lighter; 508 | 509 | @panel-default-text: @text-color; 510 | @panel-default-border: @gray-lighter; 511 | @panel-default-heading-bg: @gray-lighter; 512 | 513 | @panel-primary-text: #fff; 514 | @panel-primary-border: @brand-primary; 515 | @panel-primary-heading-bg: @brand-primary; 516 | 517 | @panel-success-text: @state-success-text; 518 | @panel-success-border: @state-success-border; 519 | @panel-success-heading-bg: @state-success-bg; 520 | 521 | @panel-warning-text: @state-warning-text; 522 | @panel-warning-border: @state-warning-border; 523 | @panel-warning-heading-bg: @state-warning-bg; 524 | 525 | @panel-danger-text: @state-danger-text; 526 | @panel-danger-border: @state-danger-border; 527 | @panel-danger-heading-bg: @state-danger-bg; 528 | 529 | @panel-info-text: @state-info-text; 530 | @panel-info-border: @state-info-border; 531 | @panel-info-heading-bg: @state-info-bg; 532 | 533 | 534 | // Thumbnails 535 | // ------------------------- 536 | @thumbnail-padding: 4px; 537 | @thumbnail-bg: @body-bg; 538 | @thumbnail-border: @gray-lighter; 539 | @thumbnail-border-radius: @border-radius-base; 540 | 541 | @thumbnail-caption-color: @text-color; 542 | @thumbnail-caption-padding: 9px; 543 | 544 | 545 | // Wells 546 | // ------------------------- 547 | @well-bg: @gray-lighter; 548 | 549 | 550 | // Badges 551 | // ------------------------- 552 | @badge-color: #fff; 553 | @badge-link-hover-color: #fff; 554 | @badge-bg: @gray; 555 | 556 | @badge-active-color: @link-color; 557 | @badge-active-bg: #fff; 558 | 559 | @badge-font-weight: bold; 560 | @badge-line-height: 1; 561 | @badge-border-radius: 10px; 562 | 563 | 564 | // Breadcrumbs 565 | // ------------------------- 566 | @breadcrumb-bg: @gray-lighter; 567 | @breadcrumb-color: #ccc; 568 | @breadcrumb-active-color: @gray; 569 | @breadcrumb-separator: "/"; 570 | 571 | 572 | // Carousel 573 | // ------------------------ 574 | 575 | @carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6); 576 | 577 | @carousel-control-color: #fff; 578 | @carousel-control-width: 15%; 579 | @carousel-control-opacity: .5; 580 | @carousel-control-font-size: 20px; 581 | 582 | @carousel-indicator-active-bg: #fff; 583 | @carousel-indicator-border-color: #fff; 584 | 585 | @carousel-caption-color: #fff; 586 | 587 | 588 | // Close 589 | // ------------------------ 590 | @close-font-weight: bold; 591 | @close-color: #000; 592 | @close-text-shadow: 0 1px 0 #fff; 593 | 594 | 595 | // Code 596 | // ------------------------ 597 | @code-color: #c7254e; 598 | @code-bg: #f9f2f4; 599 | 600 | @pre-bg: @gray-lighter; 601 | @pre-color: @gray-dark; 602 | @pre-border-color: #ccc; 603 | @pre-scrollable-max-height: 340px; 604 | 605 | // Type 606 | // ------------------------ 607 | @text-muted: @gray-light; 608 | @abbr-border-color: @gray-light; 609 | @headings-small-color: @gray-light; 610 | @blockquote-small-color: @gray-light; 611 | @blockquote-border-color: @gray-lighter; 612 | @page-header-border-color: @gray-lighter; 613 | 614 | // Miscellaneous 615 | // ------------------------- 616 | 617 | // Hr border color 618 | @hr-border: @gray-lighter; 619 | 620 | // Horizontal forms & lists 621 | @component-offset-horizontal: 180px; 622 | 623 | 624 | // Container sizes 625 | // -------------------------------------------------- 626 | 627 | // Small screen / tablet 628 | @container-tablet: ((720px + @grid-gutter-width)); 629 | @container-sm: @container-tablet; 630 | 631 | // Medium screen / desktop 632 | @container-desktop: ((940px + @grid-gutter-width)); 633 | @container-md: @container-desktop; 634 | 635 | // Large screen / wide desktop 636 | @container-large-desktop: ((1140px + @grid-gutter-width)); 637 | @container-lg: @container-large-desktop; 638 | --------------------------------------------------------------------------------