diff --git a/app.json b/app.json index 4909209a..5609e0cd 100644 --- a/app.json +++ b/app.json @@ -28,7 +28,7 @@ * The name of the theme for this application. */ - "theme": "rambox-default-theme", + "theme": "rambox-dark-theme", /** * The list of required packages (with optional versions; default is "latest"). diff --git a/package-lock.json b/package-lock.json index 6e1a9bb3..29257a4b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2,6 +2,38 @@ "requires": true, "lockfileVersion": 1, "dependencies": { + "7zip-bin": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-2.2.3.tgz", + "integrity": "sha512-S2f7InK2SwceVFly0tx/+1xakOWhSZQeY5hOXFl/sZ9orfRE4i4Z9edsWonT5lyYTowBN73RwBbLqZaVrtSEuw==", + "dev": true, + "requires": { + "7zip-bin-linux": "1.3.1", + "7zip-bin-mac": "1.0.1", + "7zip-bin-win": "2.1.0" + } + }, + "7zip-bin-linux": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/7zip-bin-linux/-/7zip-bin-linux-1.3.1.tgz", + "integrity": "sha512-Wv1uEEeHbTiS1+ycpwUxYNuIcyohU6Y6vEqY3NquBkeqy0YhVdsNUGsj0XKSRciHR6LoJSEUuqYUexmws3zH7Q==", + "dev": true, + "optional": true + }, + "7zip-bin-mac": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/7zip-bin-mac/-/7zip-bin-mac-1.0.1.tgz", + "integrity": "sha1-Pmh3i78JJq3GgVlCcHRQXUdVXAI=", + "dev": true, + "optional": true + }, + "7zip-bin-win": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/7zip-bin-win/-/7zip-bin-win-2.1.0.tgz", + "integrity": "sha512-7t8V+cGvZ0xUAuTLH1iDkrl+XVYWxlS3hHCvA6yELTcx2VwgMDNe4FdQlyKJRjO0PExn0sit8wD3PGaPKBpt2A==", + "dev": true, + "optional": true + }, "@exponent/electron-cookies": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@exponent/electron-cookies/-/electron-cookies-2.0.0.tgz", @@ -42,23 +74,8 @@ "@types/node": { "version": "7.0.43", "resolved": "https://registry.npmjs.org/@types/node/-/node-7.0.43.tgz", - "integrity": "sha512-7scYwwfHNppXvH/9JzakbVxk0o0QUILVk1Lv64GRaxwPuGpnF1QBiwdvhDpLcymb8BpomQL3KYoWKq3wUdDMhQ==" - }, - "7zip-bin": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-2.2.3.tgz", - "integrity": "sha512-S2f7InK2SwceVFly0tx/+1xakOWhSZQeY5hOXFl/sZ9orfRE4i4Z9edsWonT5lyYTowBN73RwBbLqZaVrtSEuw==", - "dev": true, - "requires": { - "7zip-bin-win": "2.1.0" - } - }, - "7zip-bin-win": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/7zip-bin-win/-/7zip-bin-win-2.1.0.tgz", - "integrity": "sha512-7t8V+cGvZ0xUAuTLH1iDkrl+XVYWxlS3hHCvA6yELTcx2VwgMDNe4FdQlyKJRjO0PExn0sit8wD3PGaPKBpt2A==", - "dev": true, - "optional": true + "integrity": "sha512-7scYwwfHNppXvH/9JzakbVxk0o0QUILVk1Lv64GRaxwPuGpnF1QBiwdvhDpLcymb8BpomQL3KYoWKq3wUdDMhQ==", + "dev": true }, "abbrev": { "version": "1.1.0", @@ -70,6 +87,7 @@ "version": "4.11.8", "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, "requires": { "co": "4.6.0", "json-stable-stringify": "1.0.1" @@ -590,7 +608,8 @@ "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true }, "code-point-at": { "version": "1.1.0", @@ -645,6 +664,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "dev": true, "requires": { "inherits": "2.0.3", "readable-stream": "2.3.3", @@ -654,12 +674,14 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true }, "readable-stream": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", @@ -674,6 +696,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, "requires": { "safe-buffer": "5.1.1" } @@ -1472,6 +1495,7 @@ "version": "1.7.8", "resolved": "https://registry.npmjs.org/electron/-/electron-1.7.8.tgz", "integrity": "sha1-J7eRpolRcafVKZG5lELNvRCjU50=", + "dev": true, "requires": { "@types/node": "7.0.43", "electron-download": "3.3.0", @@ -1721,6 +1745,8 @@ "integrity": "sha512-S2f7InK2SwceVFly0tx/+1xakOWhSZQeY5hOXFl/sZ9orfRE4i4Z9edsWonT5lyYTowBN73RwBbLqZaVrtSEuw==", "dev": true, "requires": { + "7zip-bin-linux": "1.3.1", + "7zip-bin-mac": "1.0.1", "7zip-bin-win": "2.1.0" } }, @@ -2341,6 +2367,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-3.3.0.tgz", "integrity": "sha1-LP1U1pZsAZxNSa1l++Zcyc3vaMg=", + "dev": true, "requires": { "debug": "2.6.8", "fs-extra": "0.30.0", @@ -2356,42 +2383,50 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true }, "asn1": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true }, "assert-plus": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true }, "aws-sign2": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true }, "aws4": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "dev": true }, "bcrypt-pbkdf": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "dev": true, "optional": true, "requires": { "tweetnacl": "0.14.5" @@ -2401,6 +2436,7 @@ "version": "2.10.1", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, "requires": { "hoek": "2.16.3" } @@ -2408,17 +2444,20 @@ "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true }, "camelcase": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true }, "camelcase-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, "requires": { "camelcase": "2.1.1", "map-obj": "1.0.1" @@ -2427,17 +2466,20 @@ "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true }, "combined-stream": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "dev": true, "requires": { "delayed-stream": "1.0.0" } @@ -2445,12 +2487,14 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true }, "cryptiles": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, "requires": { "boom": "2.10.1" } @@ -2459,6 +2503,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, "requires": { "array-find-index": "1.0.2" } @@ -2467,6 +2512,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, "requires": { "assert-plus": "1.0.0" }, @@ -2474,7 +2520,8 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true } } }, @@ -2482,6 +2529,7 @@ "version": "2.6.8", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "dev": true, "requires": { "ms": "2.0.0" } @@ -2489,22 +2537,26 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true }, "deep-extend": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "dev": true }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true }, "ecc-jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, "optional": true, "requires": { "jsbn": "0.1.1" @@ -2514,6 +2566,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true, "requires": { "is-arrayish": "0.2.1" } @@ -2521,22 +2574,26 @@ "es6-promise": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz", - "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==" + "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==", + "dev": true }, "extend": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true }, "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, "requires": { "path-exists": "2.1.0", "pinkie-promise": "2.0.1" @@ -2545,12 +2602,14 @@ "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true }, "form-data": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, "requires": { "asynckit": "0.4.0", "combined-stream": "1.0.5", @@ -2561,6 +2620,7 @@ "version": "0.30.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true, "requires": { "graceful-fs": "4.1.11", "jsonfile": "2.4.0", @@ -2572,12 +2632,14 @@ "get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, "requires": { "assert-plus": "1.0.0" }, @@ -2585,19 +2647,22 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true } } }, "graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true }, "har-validator": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "dev": true, "requires": { "ajv": "4.11.8", "har-schema": "1.0.5" @@ -2607,6 +2672,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, "requires": { "boom": "2.10.1", "cryptiles": "2.0.5", @@ -2617,22 +2683,26 @@ "hoek": { "version": "2.16.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true }, "home-path": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/home-path/-/home-path-1.0.5.tgz", - "integrity": "sha1-eIspgVsS1Tus9XVkhHbm+QQdEz8=" + "integrity": "sha1-eIspgVsS1Tus9XVkhHbm+QQdEz8=", + "dev": true }, "hosted-git-info": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "dev": true }, "http-signature": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, "requires": { "assert-plus": "0.2.0", "jsprim": "1.4.1", @@ -2643,6 +2713,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, "requires": { "repeating": "2.0.1" } @@ -2650,22 +2721,26 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true }, "ini": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "dev": true }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true }, "is-builtin-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, "requires": { "builtin-modules": "1.1.1" } @@ -2674,6 +2749,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, "requires": { "number-is-nan": "1.0.1" } @@ -2682,6 +2758,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, "requires": { "number-is-nan": "1.0.1" } @@ -2689,43 +2766,51 @@ "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true }, "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, "optional": true }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true }, "jsonfile": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, "requires": { "graceful-fs": "4.1.11" } @@ -2734,6 +2819,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -2744,7 +2830,8 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true } } }, @@ -2752,6 +2839,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, "requires": { "graceful-fs": "4.1.11" } @@ -2760,6 +2848,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, "requires": { "graceful-fs": "4.1.11", "parse-json": "2.2.0", @@ -2772,6 +2861,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, "requires": { "currently-unhandled": "0.4.1", "signal-exit": "3.0.2" @@ -2780,12 +2870,14 @@ "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true }, "meow": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, "requires": { "camelcase-keys": "2.1.0", "decamelize": "1.2.0", @@ -2802,12 +2894,14 @@ "mime-db": { "version": "1.30.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", - "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=", + "dev": true }, "mime-types": { "version": "2.1.17", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "dev": true, "requires": { "mime-db": "1.30.0" } @@ -2815,17 +2909,20 @@ "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true }, "normalize-package-data": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, "requires": { "hosted-git-info": "2.5.0", "is-builtin-module": "1.0.0", @@ -2837,6 +2934,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz", "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=", + "dev": true, "requires": { "debug": "2.6.8", "minimist": "1.2.0", @@ -2850,27 +2948,32 @@ "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true }, "oauth-sign": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true }, "object-keys": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "dev": true }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, "requires": { "error-ex": "1.3.1" } @@ -2879,6 +2982,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, "requires": { "pinkie-promise": "2.0.1" } @@ -2886,12 +2990,14 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true }, "path-type": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, "requires": { "graceful-fs": "4.1.11", "pify": "2.3.0", @@ -2901,17 +3007,20 @@ "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true }, "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, "requires": { "pinkie": "2.0.4" } @@ -2920,6 +3029,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", + "dev": true, "requires": { "get-stdin": "4.0.1", "meow": "3.7.0" @@ -2929,6 +3039,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz", "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=", + "dev": true, "requires": { "speedometer": "0.1.4", "through2": "0.2.3" @@ -2937,17 +3048,20 @@ "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true }, "qs": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "dev": true }, "rc": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", + "dev": true, "requires": { "deep-extend": "0.4.2", "ini": "1.3.4", @@ -2959,6 +3073,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, "requires": { "load-json-file": "1.1.0", "normalize-package-data": "2.4.0", @@ -2969,6 +3084,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, "requires": { "find-up": "1.1.2", "read-pkg": "1.1.0" @@ -2978,6 +3094,7 @@ "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", @@ -2989,6 +3106,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, "requires": { "indent-string": "2.1.0", "strip-indent": "1.0.1" @@ -2998,6 +3116,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, "requires": { "is-finite": "1.0.2" } @@ -3006,6 +3125,7 @@ "version": "2.81.0", "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "dev": true, "requires": { "aws-sign2": "0.6.0", "aws4": "1.6.0", @@ -3034,17 +3154,20 @@ "semver": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "dev": true }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true }, "single-line-log": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", + "dev": true, "requires": { "string-width": "1.0.2" } @@ -3053,6 +3176,7 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, "requires": { "hoek": "2.16.3" } @@ -3061,6 +3185,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "dev": true, "requires": { "spdx-license-ids": "1.2.2" } @@ -3068,22 +3193,26 @@ "spdx-expression-parse": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "dev": true }, "spdx-license-ids": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "dev": true }, "speedometer": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", - "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=" + "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=", + "dev": true }, "sshpk": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "dev": true, "requires": { "asn1": "0.2.3", "assert-plus": "1.0.0", @@ -3098,34 +3227,39 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true } } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", "strip-ansi": "3.0.1" } }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "dev": true }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, "requires": { "ansi-regex": "2.1.1" } @@ -3134,6 +3268,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, "requires": { "is-utf8": "0.2.1" } @@ -3142,6 +3277,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, "requires": { "get-stdin": "4.0.1" } @@ -3149,12 +3285,14 @@ "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true }, "sumchecker": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-1.3.1.tgz", "integrity": "sha1-ebs7RFbdBPGOvbwNcDodHa7FEF0=", + "dev": true, "requires": { "debug": "2.6.8", "es6-promise": "4.1.1" @@ -3163,12 +3301,14 @@ "throttleit": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", - "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=" + "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", + "dev": true }, "through2": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", + "dev": true, "requires": { "readable-stream": "1.1.14", "xtend": "2.1.2" @@ -3178,6 +3318,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "dev": true, "requires": { "punycode": "1.4.1" } @@ -3185,12 +3326,14 @@ "trim-newlines": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, "requires": { "safe-buffer": "5.1.1" } @@ -3199,17 +3342,20 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, "optional": true }, "uuid": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", + "dev": true }, "validate-npm-package-license": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "dev": true, "requires": { "spdx-correct": "1.0.2", "spdx-expression-parse": "1.0.4" @@ -3219,6 +3365,7 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, "requires": { "assert-plus": "1.0.0", "core-util-is": "1.0.2", @@ -3228,7 +3375,8 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true } } }, @@ -3236,6 +3384,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "dev": true, "requires": { "object-keys": "0.4.0" } @@ -3581,6 +3730,7 @@ "version": "1.6.5", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.5.tgz", "integrity": "sha1-maBnNbbqIOqbcF13ms/8yHz/BEA=", + "dev": true, "requires": { "concat-stream": "1.6.0", "debug": "2.2.0", @@ -3592,6 +3742,7 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", + "dev": true, "requires": { "minimist": "0.0.8" } @@ -3626,6 +3777,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true, "requires": { "pend": "1.2.0" } @@ -3754,7 +3906,8 @@ "har-schema": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "dev": true }, "har-validator": { "version": "4.2.1", @@ -4043,6 +4196,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, "requires": { "jsonify": "0.0.0" } @@ -4065,7 +4219,8 @@ "jsonify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true }, "jsonp": { "version": "0.2.1", @@ -4274,7 +4429,8 @@ "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true }, "mkdirp": { "version": "0.5.1", @@ -4939,12 +5095,14 @@ "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true }, "performance-now": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "dev": true }, "pify": { "version": "2.3.0", @@ -6493,15 +6651,6 @@ } } }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -6529,6 +6678,15 @@ } } }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", @@ -6812,12 +6970,6 @@ "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=", "dev": true }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -6829,6 +6981,12 @@ "strip-ansi": "3.0.1" } }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", @@ -7089,7 +7247,8 @@ "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true }, "ua-parser-js": { "version": "0.7.14", @@ -7454,6 +7613,7 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "dev": true, "requires": { "fd-slicer": "1.0.1" } diff --git a/packages/local/rambox-dark-theme/.sencha/package/Boot.js b/packages/local/rambox-dark-theme/.sencha/package/Boot.js new file mode 100644 index 00000000..1e4ccf4e --- /dev/null +++ b/packages/local/rambox-dark-theme/.sencha/package/Boot.js @@ -0,0 +1,1762 @@ +// @tag core +// @define Ext.Boot + +var Ext = Ext || {}; + +// +/** + * @class Ext.Boot + * @singleton + * @private + */ +Ext.Boot = Ext.Boot || (function (emptyFn) { + + var doc = document, + _emptyArray = [], + _config = { + /** + * @cfg {Boolean} [disableCaching=true] + * If `true` current timestamp is added to script URL's to prevent caching. + * In debug builds, adding a "cache" or "disableCacheBuster" query parameter + * to the page's URL will set this to `false`. + */ + disableCaching: (/[?&](?:cache|disableCacheBuster)\b/i.test(location.search) || + !(/http[s]?\:/i.test(location.href)) || + /(^|[ ;])ext-cache=1/.test(doc.cookie)) ? false : + true, + + /** + * @cfg {String} [disableCachingParam="_dc"] + * The query parameter name for the cache buster's timestamp. + */ + disableCachingParam: '_dc', + + /** + * @cfg {Boolean} loadDelay + * Millisecond delay between asynchronous script injection (prevents stack + * overflow on some user agents) 'false' disables delay but potentially + * increases stack load. + */ + loadDelay: false, + + /** + * @cfg {Boolean} preserveScripts + * `false` to remove asynchronously loaded scripts, `true` to retain script + * element for browser debugger compatibility and improved load performance. + */ + preserveScripts: true, + + /** + * @cfg {String} [charset=UTF-8] + * Optional charset to specify encoding of dynamic content. + */ + charset: 'UTF-8' + }, + + _assetConfig= {}, + + cssRe = /\.css(?:\?|$)/i, + resolverEl = doc.createElement('a'), + isBrowser = typeof window !== 'undefined', + _environment = { + browser: isBrowser, + node: !isBrowser && (typeof require === 'function'), + phantom: (window && (window._phantom || window.callPhantom)) || /PhantomJS/.test(window.navigator.userAgent) + }, + _tags = (Ext.platformTags = {}), + + // + _debug = function (message) { + //console.log(message); + }, + // + _apply = function (object, config, defaults) { + if (defaults) { + _apply(object, defaults); + } + if (object && config && typeof config === 'object') { + for (var i in config) { + object[i] = config[i]; + } + } + return object; + }, + _merge = function() { + var lowerCase = false, + obj = Array.prototype.shift.call(arguments), + index, i, len, value; + + if (typeof arguments[arguments.length - 1] === 'boolean') { + lowerCase = Array.prototype.pop.call(arguments); + } + + len = arguments.length; + for (index = 0; index < len; index++) { + value = arguments[index]; + if (typeof value === 'object') { + for (i in value) { + obj[lowerCase ? i.toLowerCase() : i] = value[i]; + } + } + } + + return obj; + }, + _getKeys = (typeof Object.keys == 'function') ? + function(object){ + if (!object) { + return []; + } + return Object.keys(object); + } : + function(object) { + var keys = [], + property; + + for (property in object) { + if (object.hasOwnProperty(property)) { + keys.push(property); + } + } + + return keys; + }, + /* + * The Boot loader class manages Request objects that contain one or + * more individual urls that need to be loaded. Requests can be performed + * synchronously or asynchronously, but will always evaluate urls in the + * order specified on the request object. + */ + Boot = { + loading: 0, + loaded: 0, + apply: _apply, + env: _environment, + config: _config, + + /** + * @cfg {Object} assetConfig + * A map (url->assetConfig) that contains information about assets loaded by the Microlaoder. + */ + assetConfig: _assetConfig, + + // Keyed by absolute URL this object holds "true" if that URL is already loaded + // or an array of callbacks to call once it loads. + scripts: { + /* + Entry objects + + 'http://foo.com/bar/baz/Thing.js': { + done: true, + el: scriptEl || linkEl, + preserve: true, + requests: [ request1, ... ] + } + */ + }, + + /** + * contains the current script name being loaded + * (loadSync or sequential load only) + */ + currentFile: null, + suspendedQueue: [], + currentRequest: null, + + // when loadSync is called, need to cause subsequent load requests to also be loadSync, + // eg, when Ext.require(...) is called + syncMode: false, + + /* + * simple helper method for debugging + */ + // + debug: _debug, + // + + /** + * enables / disables loading scripts via script / link elements rather + * than using ajax / eval + */ + useElements: true, + + listeners: [], + + Request: Request, + + Entry: Entry, + + allowMultipleBrowsers: false, + + browserNames: { + ie: 'IE', + firefox: 'Firefox', + safari: 'Safari', + chrome: 'Chrome', + opera: 'Opera', + dolfin: 'Dolfin', + edge: 'Edge', + webosbrowser: 'webOSBrowser', + chromeMobile: 'ChromeMobile', + chromeiOS: 'ChromeiOS', + silk: 'Silk', + other: 'Other' + }, + + osNames: { + ios: 'iOS', + android: 'Android', + windowsPhone: 'WindowsPhone', + webos: 'webOS', + blackberry: 'BlackBerry', + rimTablet: 'RIMTablet', + mac: 'MacOS', + win: 'Windows', + tizen: 'Tizen', + linux: 'Linux', + bada: 'Bada', + chromeOS: 'ChromeOS', + other: 'Other' + }, + + browserPrefixes: { + ie: 'MSIE ', + edge: 'Edge/', + firefox: 'Firefox/', + chrome: 'Chrome/', + safari: 'Version/', + opera: 'OPR/', + dolfin: 'Dolfin/', + webosbrowser: 'wOSBrowser/', + chromeMobile: 'CrMo/', + chromeiOS: 'CriOS/', + silk: 'Silk/' + }, + + // When a UA reports multiple browsers this list is used to prioritize the 'real' browser + // lower index number will win + browserPriority: [ + 'edge', + 'opera', + 'dolfin', + 'webosbrowser', + 'silk', + 'chromeiOS', + 'chromeMobile', + 'ie', + 'firefox', + 'safari', + 'chrome' + ], + + osPrefixes: { + tizen: '(Tizen )', + ios: 'i(?:Pad|Phone|Pod)(?:.*)CPU(?: iPhone)? OS ', + android: '(Android |HTC_|Silk/)', // Some HTC devices ship with an OSX userAgent by default, + // so we need to add a direct check for HTC_ + windowsPhone: 'Windows Phone ', + blackberry: '(?:BlackBerry|BB)(?:.*)Version\/', + rimTablet: 'RIM Tablet OS ', + webos: '(?:webOS|hpwOS)\/', + bada: 'Bada\/', + chromeOS: 'CrOS ' + }, + + fallbackOSPrefixes: { + windows: 'win', + mac: 'mac', + linux: 'linux' + }, + + devicePrefixes: { + iPhone: 'iPhone', + iPod: 'iPod', + iPad: 'iPad' + }, + + maxIEVersion: 12, + + + /** + * The default function that detects various platforms and sets tags + * in the platform map accordingly. Examples are iOS, android, tablet, etc. + * @param tags the set of tags to populate + */ + detectPlatformTags: function () { + var me = this, + ua = navigator.userAgent, + isMobile = /Mobile(\/|\s)/.test(ua), + element = document.createElement('div'), + isEventSupported = function (name, tag) { + if (tag === undefined) { + tag = window; + } + + var eventName = 'on' + name.toLowerCase(), + isSupported = (eventName in element); + + if (!isSupported) { + if (element.setAttribute && element.removeAttribute) { + element.setAttribute(eventName, ''); + isSupported = typeof element[eventName] === 'function'; + + if (typeof element[eventName] !== 'undefined') { + element[eventName] = undefined; + } + + element.removeAttribute(eventName); + } + } + + return isSupported; + }, + + // Browser Detection + getBrowsers = function () { + var browsers = {}, + maxIEVersion, prefix, + value, key, index, len, match, version, matched; + + // MS Edge browser (and possibly others) can report multiple browsers in the UserAgent + // "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240" + // we use this to prioritize the actual browser in this situation + len = me.browserPriority.length; + for (index = 0; index < len; index++) { + key = me.browserPriority[index]; + if (!matched) { + value = me.browserPrefixes[key]; + match = ua.match(new RegExp('(' + value + ')([\\w\\._]+)')); + version = match && match.length > 1 ? parseInt(match[2]) : 0; + if (version) { + matched = true; + } + } else { + version = 0; + } + browsers[key] = version; + } + + //Deal with IE document mode + if (browsers.ie) { + var mode = document.documentMode; + + if (mode >= 8) { + browsers.ie = mode; + } + } + + // Fancy IE greater than and less then quick tags + version = browsers.ie || false; + maxIEVersion = Math.max(version, me.maxIEVersion); + + for (index = 8; index <= maxIEVersion; ++index) { + prefix = 'ie' + index; + browsers[prefix + 'm'] = version ? version <= index : 0; + browsers[prefix] = version ? version === index : 0; + browsers[prefix + 'p'] = version ? version >= index : 0; + } + + return browsers; + }, + + //OS Detection + getOperatingSystems = function () { + var systems = {}, + value, key, keys, index, len, match, matched, version, activeCount; + + keys = _getKeys(me.osPrefixes); + len = keys.length; + for (index = 0, activeCount = 0; index < len; index++) { + key = keys[index]; + value = me.osPrefixes[key]; + match = ua.match(new RegExp('(' + value + ')([^\\s;]+)')); + matched = match ? match[1] : null; + + // This is here because some HTC android devices show an OSX Snow Leopard userAgent by default. + // And the Kindle Fire doesn't have any indicator of Android as the OS in its User Agent + if (matched && (matched === 'HTC_' || matched === 'Silk/')) { + version = 2.3; + } else { + version = match && match.length > 1 ? parseFloat(match[match.length - 1]) : 0; + } + + if (version) { + activeCount++; + } + systems[key] = version; + } + + keys = _getKeys(me.fallbackOSPrefixes); + + // If no OS could be found we resort to the fallbacks, otherwise we just + // falsify the fallbacks + len = keys.length; + for (index = 0; index < len; index++) { + key = keys[index]; + + // No OS was detected from osPrefixes + if (activeCount === 0) { + value = me.fallbackOSPrefixes[key]; + match = ua.toLowerCase().match(new RegExp(value)); + systems[key] = match ? true : 0; + } else { + systems[key] = 0; + } + } + + return systems; + }, + + // Device Detection + getDevices = function () { + var devices = {}, + value, key, keys, index, len, match; + + keys = _getKeys(me.devicePrefixes); + len = keys.length; + for (index = 0; index < len; index++) { + key = keys[index]; + value = me.devicePrefixes[key]; + match = ua.match(new RegExp(value)); + devices[key] = match ? true : 0; + } + + return devices; + }, + browsers = getBrowsers(), + systems = getOperatingSystems(), + devices = getDevices(), + platformParams = Boot.loadPlatformsParam(); + + // We apply platformParams from the query here first to allow for forced user valued + // to be used in calculation of generated tags + _merge(_tags, browsers, systems, devices, platformParams, true); + + _tags.phone = !!((_tags.iphone || _tags.ipod) || + (!_tags.silk && (_tags.android && (_tags.android < 3 || isMobile))) || + (_tags.blackberry && isMobile) || + (_tags.windowsphone)); + + _tags.tablet = !!(!_tags.phone && ( + _tags.ipad || + _tags.android || + _tags.silk || + _tags.rimtablet || + (_tags.ie10 && /; Touch/.test(ua)) + )); + + _tags.touch = + // if the browser has touch events we can be reasonably sure the device has + // a touch screen + isEventSupported('touchend') || + // browsers that use pointer event have maxTouchPoints > 0 if the + // device supports touch input + // http://www.w3.org/TR/pointerevents/#widl-Navigator-maxTouchPoints + navigator.maxTouchPoints || + // IE10 uses a vendor-prefixed maxTouchPoints property + navigator.msMaxTouchPoints; + + _tags.desktop = !_tags.phone && !_tags.tablet; + _tags.cordova = _tags.phonegap = !!(window.PhoneGap || window.Cordova || window.cordova); + _tags.webview = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)(?!.*FBAN)/i.test(ua); + _tags.androidstock = (_tags.android <= 4.3) && (_tags.safari || _tags.silk); + + // Re-apply any query params here to allow for user override of generated tags (desktop, touch, tablet, etc) + _merge(_tags, platformParams, true); + }, + + /** + * Extracts user supplied platform tags from the "platformTags" query parameter + * of the form: + * + * ?platformTags=name:state,name:state,... + * + * (each tag defaults to true when state is unspecified) + * + * Example: + * + * ?platformTags=isTablet,isPhone:false,isDesktop:0,iOS:1,Safari:true, ... + * + * @returns {Object} the platform tags supplied by the query string + */ + loadPlatformsParam: function () { + // Check if the ?platform parameter is set in the URL + var paramsString = window.location.search.substr(1), + paramsArray = paramsString.split("&"), + params = {}, i, + platforms = {}, + tmpArray, tmplen, platform, name, enabled; + + for (i = 0; i < paramsArray.length; i++) { + tmpArray = paramsArray[i].split("="); + params[tmpArray[0]] = tmpArray[1]; + } + + if (params.platformTags) { + tmpArray = params.platformTags.split(","); + for (tmplen = tmpArray.length, i = 0; i < tmplen; i++) { + platform = tmpArray[i].split(":"); + name = platform[0]; + enabled=true; + if (platform.length > 1) { + enabled = platform[1]; + if (enabled === 'false' || enabled === '0') { + enabled = false; + } + } + platforms[name] = enabled; + } + } + return platforms; + }, + + filterPlatform: function (platform, excludes) { + platform = _emptyArray.concat(platform || _emptyArray); + excludes = _emptyArray.concat(excludes || _emptyArray); + + var plen = platform.length, + elen = excludes.length, + include = (!plen && elen), // default true if only excludes specified + i, tag; + + for (i = 0; i < plen && !include; i++) { + tag = platform[i]; + include = !!_tags[tag]; + } + + for (i = 0; i < elen && include; i++) { + tag = excludes[i]; + include = !_tags[tag]; + } + + return include; + }, + + init: function () { + var scriptEls = doc.getElementsByTagName('script'), + len = scriptEls.length, + re = /\/ext(\-[a-z\-]+)?\.js$/, + entry, script, src, state, baseUrl, key, n, origin; + + // Since we are loading after other scripts, and we needed to gather them + // anyway, we track them in _scripts so we don't have to ask for them all + // repeatedly. + for (n = 0; n < len; n++) { + src = (script = scriptEls[n]).src; + if (!src) { + continue; + } + state = script.readyState || null; + + // If we find a script file called "ext-*.js", then the base path is that file's base path. + if (!baseUrl) { + if (re.test(src)) { + Boot.hasReadyState = ("readyState" in script); + Boot.hasAsync = ("async" in script) || !Boot.hasReadyState; + baseUrl = src; + } + } + + if (!Boot.scripts[key = Boot.canonicalUrl(src)]) { + // + _debug("creating entry " + key + " in Boot.init"); + // + entry = new Entry({ + key: key, + url: src, + done: state === null || // non-IE + state === 'loaded' || state === 'complete', // IE only + el: script, + prop: 'src' + }); + } + } + + if (!baseUrl) { + script = scriptEls[scriptEls.length - 1]; + baseUrl = script.src; + Boot.hasReadyState = ('readyState' in script); + Boot.hasAsync = ("async" in script) || !Boot.hasReadyState; + } + + Boot.baseUrl = baseUrl.substring(0, baseUrl.lastIndexOf('/') + 1); + origin = window.location.origin || + window.location.protocol + + "//" + + window.location.hostname + + (window.location.port ? ':' + window.location.port: ''); + Boot.origin = origin; + + Boot.detectPlatformTags(); + Ext.filterPlatform = Boot.filterPlatform; + }, + + /** + * This method returns a canonical URL for the given URL. + * + * For example, the following all produce the same canonical URL (which is the + * last one): + * + * http://foo.com/bar/baz/zoo/derp/../../goo/Thing.js?_dc=12345 + * http://foo.com/bar/baz/zoo/derp/../../goo/Thing.js + * http://foo.com/bar/baz/zoo/derp/../jazz/../../goo/Thing.js + * http://foo.com/bar/baz/zoo/../goo/Thing.js + * http://foo.com/bar/baz/goo/Thing.js + * + * @private + */ + canonicalUrl: function (url) { + // @TODO - see if we need this fallback logic + // http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue + resolverEl.href = url; + + var ret = resolverEl.href, + dc = _config.disableCachingParam, + pos = dc ? ret.indexOf(dc + '=') : -1, + c, end; + + // If we have a _dc query parameter we need to remove it from the canonical + // URL. + if (pos > 0 && ((c = ret.charAt(pos - 1)) === '?' || c === '&')) { + end = ret.indexOf('&', pos); + end = (end < 0) ? '' : ret.substring(end); + if (end && c === '?') { + ++pos; // keep the '?' + end = end.substring(1); // remove the '&' + } + ret = ret.substring(0, pos - 1) + end; + } + + return ret; + }, + + /** + * Get the config value corresponding to the specified name. If no name is given, will return the config object + * @param {String} name The config property name + * @return {Object} + */ + getConfig: function (name) { + return name ? Boot.config[name] : Boot.config; + }, + + /** + * Set the configuration. + * @param {Object} config The config object to override the default values. + * @return {Ext.Boot} this + */ + setConfig: function (name, value) { + if (typeof name === 'string') { + Boot.config[name] = value; + } else { + for (var s in name) { + Boot.setConfig(s, name[s]); + } + } + return Boot; + }, + + getHead: function () { + return Boot.docHead || + (Boot.docHead = doc.head || + doc.getElementsByTagName('head')[0]); + }, + + create: function (url, key, cfg) { + var config = cfg || {}; + config.url = url; + config.key = key; + return Boot.scripts[key] = new Entry(config); + }, + + getEntry: function (url, cfg) { + var key = Boot.canonicalUrl(url), + entry = Boot.scripts[key]; + if (!entry) { + entry = Boot.create(url, key, cfg); + } + return entry; + }, + + registerContent: function (url, type, content) { + var cfg = { + content: content, + loaded: true, + css: type === 'css' + }; + + return Boot.getEntry(url, cfg); + }, + + processRequest: function(request, sync) { + request.loadEntries(sync); + }, + + load: function (request) { + // + _debug("Boot.load called"); + // + var request = new Request(request); + + if (request.sync || Boot.syncMode) { + return Boot.loadSync(request); + } + + // If there is a request in progress, we must + // queue this new request to be fired when the current request completes. + if (Boot.currentRequest) { + // + _debug("current active request, suspending this request"); + // + // trigger assignment of entries now to ensure that overlapping + // entries with currently running requests will synchronize state + // with this pending one as they complete + request.getEntries(); + Boot.suspendedQueue.push(request); + } else { + Boot.currentRequest = request; + Boot.processRequest(request, false); + } + return Boot; + }, + + loadSync: function (request) { + // + _debug("Boot.loadSync called"); + // + var request = new Request(request); + + Boot.syncMode++; + Boot.processRequest(request, true); + Boot.syncMode--; + return Boot; + }, + + loadBasePrefix: function(request) { + request = new Request(request); + request.prependBaseUrl = true; + return Boot.load(request); + }, + + loadSyncBasePrefix: function(request) { + request = new Request(request); + request.prependBaseUrl = true; + return Boot.loadSync(request); + }, + + requestComplete: function(request) { + var next; + + if (Boot.currentRequest === request) { + Boot.currentRequest = null; + while(Boot.suspendedQueue.length > 0) { + next = Boot.suspendedQueue.shift(); + if(!next.done) { + // + _debug("resuming suspended request"); + // + Boot.load(next); + break; + } + } + } + if (!Boot.currentRequest && Boot.suspendedQueue.length == 0) { + Boot.fireListeners(); + } + }, + + isLoading: function () { + return !Boot.currentRequest && Boot.suspendedQueue.length == 0; + }, + + fireListeners: function () { + var listener; + while (Boot.isLoading() && (listener = Boot.listeners.shift())) { + listener(); + } + }, + + onBootReady: function (listener) { + if (!Boot.isLoading()) { + listener(); + } else { + Boot.listeners.push(listener); + } + }, + + /** + * this is a helper function used by Ext.Loader to flush out + * 'uses' arrays for classes + */ + getPathsFromIndexes: function (indexMap, loadOrder) { + return Request.prototype.getPathsFromIndexes(indexMap, loadOrder); + }, + + createLoadOrderMap: function(loadOrder) { + return Request.prototype.createLoadOrderMap(loadOrder); + }, + + fetch: function(url, complete, scope, async) { + async = (async === undefined) ? !!complete : async; + + var xhr = new XMLHttpRequest(), + result, status, content, exception = false, + readyStateChange = function () { + if (xhr && xhr.readyState == 4) { + status = (xhr.status === 1223) ? 204 : + (xhr.status === 0 && ((self.location || {}).protocol === 'file:' || + (self.location || {}).protocol === 'ionp:')) ? 200 : xhr.status; + content = xhr.responseText; + result = { + content: content, + status: status, + exception: exception + }; + if (complete) { + complete.call(scope, result); + } + xhr = null; + } + }; + + if (async) { + xhr.onreadystatechange = readyStateChange; + } + + try { + // + _debug("fetching " + url + " " + (async ? "async" : "sync")); + // + xhr.open('GET', url, async); + xhr.send(null); + } catch (err) { + exception = err; + readyStateChange(); + return result; + } + + if (!async) { + readyStateChange(); + } + + return result; + }, + + notifyAll: function(entry) { + entry.notifyRequests(); + } + }; + + function Request(cfg) { + //The request class encapsulates a series of Entry objects + //and provides notification around the completion of all Entries + //in this request. + + if(cfg.$isRequest) { + return cfg; + } + + var cfg = cfg.url ? cfg : {url: cfg}, + url = cfg.url, + urls = url.charAt ? [ url ] : url, + charset = cfg.charset || Boot.config.charset; + + _apply(cfg, { + urls: urls, + charset: charset + }); + _apply(this, cfg); + }; + Request.prototype = { + $isRequest: true, + + createLoadOrderMap: function (loadOrder) { + var len = loadOrder.length, + loadOrderMap = {}, + i, element; + + for (i = 0; i < len; i++) { + element = loadOrder[i]; + loadOrderMap[element.path] = element; + } + + return loadOrderMap; + }, + + getLoadIndexes: function (index, indexMap, loadOrder, includeUses, skipLoaded) { + var item = loadOrder[index], + len, i, reqs, entry, stop, added, idx, ridx, url; + + if (indexMap[index]) { + // prevent cycles + return indexMap; + } + + indexMap[index] = true; + + stop = false; + while (!stop) { + added = false; + + // iterate the requirements for each index and + // accumulate in the index map + for (idx in indexMap) { + if (indexMap.hasOwnProperty(idx)) { + item = loadOrder[idx]; + if (!item) { + continue; + } + url = this.prepareUrl(item.path); + entry = Boot.getEntry(url); + if (!skipLoaded || !entry || !entry.done) { + reqs = item.requires; + if (includeUses && item.uses) { + reqs = reqs.concat(item.uses); + } + for (len = reqs.length, i = 0; i < len; i++) { + ridx = reqs[i]; + // if we find a requirement that wasn't + // already in the index map, + // set the added flag to indicate we need to + // reprocess + if (!indexMap[ridx]) { + indexMap[ridx] = true; + added = true; + } + } + } + } + } + + // if we made a pass through the index map and didn't add anything + // then we can stop + if (!added) { + stop = true; + } + } + + return indexMap; + }, + + getPathsFromIndexes: function (indexMap, loadOrder) { + var indexes = [], + paths = [], + index, len, i; + + for (index in indexMap) { + if (indexMap.hasOwnProperty(index) && indexMap[index]) { + indexes.push(index); + } + } + + indexes.sort(function (a, b) { + return a - b; + }); + + // convert indexes back into load paths + for (len = indexes.length, i = 0; i < len; i++) { + paths.push(loadOrder[indexes[i]].path); + } + + return paths; + }, + + expandUrl: function (url, indexMap, includeUses, skipLoaded) { + if (typeof url == 'string') { + url = [url]; + } + + var me = this, + loadOrder = me.loadOrder, + loadOrderMap = me.loadOrderMap; + + if (loadOrder) { + loadOrderMap = loadOrderMap || me.createLoadOrderMap(loadOrder); + me.loadOrderMap = loadOrderMap; + indexMap = indexMap || {}; + var len = url.length, + unmapped = [], + i, item; + + for (i = 0; i < len; i++) { + item = loadOrderMap[url[i]]; + if (item) { + me.getLoadIndexes(item.idx, indexMap, loadOrder, includeUses, skipLoaded); + } else { + unmapped.push(url[i]); + } + } + + + return me.getPathsFromIndexes(indexMap, loadOrder).concat(unmapped); + } + return url; + }, + + expandUrls: function (urls, includeUses) { + if (typeof urls == "string") { + urls = [urls]; + } + + var expanded = [], + expandMap = {}, + tmpExpanded, + len = urls.length, + i, t, tlen, tUrl; + + for (i = 0; i < len; i++) { + tmpExpanded = this.expandUrl(urls[i], {}, includeUses, true); + for (t = 0, tlen = tmpExpanded.length; t < tlen; t++) { + tUrl = tmpExpanded[t]; + if (!expandMap[tUrl]) { + expandMap[tUrl] = true; + expanded.push(tUrl); + } + } + } + + if (expanded.length == 0) { + expanded = urls; + } + + return expanded; + }, + + expandLoadOrder: function () { + var me = this, + urls = me.urls, + expanded; + + if (!me.expanded) { + expanded = this.expandUrls(urls, true); + me.expanded = true; + } else { + expanded = urls; + } + + me.urls = expanded; + + // if we added some urls to the request to honor the indicated + // load order, the request needs to be sequential + if (urls.length != expanded.length) { + me.sequential = true; + } + + return me; + }, + + getUrls: function () { + this.expandLoadOrder(); + return this.urls; + }, + + prepareUrl: function(url) { + if(this.prependBaseUrl) { + return Boot.baseUrl + url; + } + return url; + }, + + getEntries: function () { + var me = this, + entries = me.entries, + i, entry, urls, url; + if (!entries) { + entries = []; + urls = me.getUrls(); + for (i = 0; i < urls.length; i++) { + url = me.prepareUrl(urls[i]); + entry = Boot.getEntry(url, { + buster: me.buster, + charset: me.charset + }); + entry.requests.push(me); + entries.push(entry); + } + me.entries = entries; + } + return entries; + }, + + loadEntries: function(sync) { + var me = this, + entries = me.getEntries(), + len = entries.length, + start = me.loadStart || 0, + continueLoad, entry, i; + + if(sync !== undefined) { + me.sync = sync; + } + + me.loaded = me.loaded || 0; + me.loading = me.loading || len; + + for(i = start; i < len; i++) { + entry = entries[i]; + if(!entry.loaded) { + continueLoad = entries[i].load(me.sync); + } else { + continueLoad = true; + } + if(!continueLoad) { + me.loadStart = i; + entry.onDone(function(){ + me.loadEntries(sync); + }); + break; + } + } + me.processLoadedEntries(); + }, + + processLoadedEntries: function () { + var me = this, + entries = me.getEntries(), + len = entries.length, + start = me.startIndex || 0, + i, entry; + + if (!me.done) { + for (i = start; i < len; i++) { + entry = entries[i]; + + if (!entry.loaded) { + me.startIndex = i; + return; + } + + if (!entry.evaluated) { + entry.evaluate(); + } + + if (entry.error) { + me.error = true; + } + } + me.notify(); + } + }, + + notify: function () { + var me = this; + if (!me.done) { + var error = me.error, + fn = me[error ? 'failure' : 'success'], + delay = ('delay' in me) + ? me.delay + : (error ? 1 : Boot.config.chainDelay), + scope = me.scope || me; + me.done = true; + if (fn) { + if (delay === 0 || delay > 0) { + // Free the stack (and defer the next script) + setTimeout(function () { + fn.call(scope, me); + }, delay); + } else { + fn.call(scope, me); + } + } + me.fireListeners(); + Boot.requestComplete(me); + } + }, + + onDone: function(listener) { + var me = this, + listeners = me.listeners || (me.listeners = []); + if(me.done) { + listener(me); + } else { + listeners.push(listener); + } + }, + + fireListeners: function() { + var listeners = this.listeners, + listener; + if(listeners) { + // + _debug("firing request listeners"); + // + while((listener = listeners.shift())) { + listener(this); + } + } + } + }; + + function Entry(cfg) { + //The Entry class is a token to manage the load and evaluation + //state of a particular url. It is used to notify all Requests + //interested in this url that the content is available. + + if(cfg.$isEntry) { + return cfg; + } + + // + _debug("creating entry for " + cfg.url); + // + + var charset = cfg.charset || Boot.config.charset, + manifest = Ext.manifest, + loader = manifest && manifest.loader, + cache = (cfg.cache !== undefined) ? cfg.cache : (loader && loader.cache), + buster, busterParam; + + if (Boot.config.disableCaching) { + if (cache === undefined) { + cache = !Boot.config.disableCaching; + } + + if (cache === false) { + buster = +new Date(); + } else if (cache !== true) { + buster = cache; + } + + if (buster) { + busterParam = (loader && loader.cacheParam) || Boot.config.disableCachingParam; + buster = busterParam + "=" + buster; + } + } + + _apply(cfg, { + charset: charset, + buster: buster, + requests: [] + }); + _apply(this, cfg); + }; + Entry.prototype = { + $isEntry: true, + done: false, + evaluated: false, + loaded: false, + + isCrossDomain: function() { + var me = this; + if(me.crossDomain === undefined) { + // + _debug("checking " + me.getLoadUrl() + " for prefix " + Boot.origin); + // + me.crossDomain = (me.getLoadUrl().indexOf(Boot.origin) !== 0); + } + return me.crossDomain; + }, + + isCss: function () { + var me = this; + if (me.css === undefined) { + if (me.url) { + var assetConfig = Boot.assetConfig[me.url]; + me.css = assetConfig ? assetConfig.type === "css" : cssRe.test(me.url); + } else { + me.css = false; + } + } + return this.css; + }, + + getElement: function (tag) { + var me = this, + el = me.el; + if (!el) { + // + _debug("creating element for " + me.url); + // + if (me.isCss()) { + tag = tag || "link"; + el = doc.createElement(tag); + if(tag == "link") { + el.rel = 'stylesheet'; + me.prop = 'href'; + } else { + me.prop="textContent"; + } + el.type = "text/css"; + } else { + tag = tag || "script"; + el = doc.createElement(tag); + el.type = 'text/javascript'; + me.prop = 'src'; + + if (me.charset) { + el.charset = me.charset; + } + + if (Boot.hasAsync) { + el.async = false; + } + } + me.el = el; + } + return el; + }, + + getLoadUrl: function () { + var me = this, + url = Boot.canonicalUrl(me.url); + if (!me.loadUrl) { + me.loadUrl = !!me.buster + ? (url + (url.indexOf('?') === -1 ? '?' : '&') + me.buster) + : url; + } + return me.loadUrl; + }, + + fetch: function (req) { + var url = this.getLoadUrl(), + async = !!req.async, + complete = req.complete; + + Boot.fetch(url, complete, this, async); + }, + + onContentLoaded: function (response) { + var me = this, + status = response.status, + content = response.content, + exception = response.exception, + url = this.getLoadUrl(); + me.loaded = true; + if ((exception || status === 0) && !_environment.phantom) { + me.error = + // + ("Failed loading synchronously via XHR: '" + url + + "'. It's likely that the file is either being loaded from a " + + "different domain or from the local file system where cross " + + "origin requests are not allowed for security reasons. Try " + + "asynchronous loading instead.") || + // + true; + me.evaluated = true; + } + else if ((status >= 200 && status < 300) || status === 304 + || _environment.phantom + || (status === 0 && content.length > 0) + ) { + me.content = content; + } + else { + me.error = + // + ("Failed loading synchronously via XHR: '" + url + + "'. Please verify that the file exists. XHR status code: " + + status) || + // + true; + me.evaluated = true; + } + }, + + createLoadElement: function(callback) { + var me = this, + el = me.getElement(), + readyStateChange = function(){ + if (this.readyState === 'loaded' || this.readyState === 'complete') { + if(callback) { + callback(); + } + } + }, + errorFn = function() { + me.error = true; + if(callback) { + callback(); + } + }; + me.preserve = true; + el.onerror = errorFn; + if(Boot.hasReadyState) { + el.onreadystatechange = readyStateChange; + } else { + el.onload = callback; + } + // IE starts loading here + el[me.prop] = me.getLoadUrl(); + }, + + onLoadElementReady: function() { + Boot.getHead().appendChild(this.getElement()); + this.evaluated = true; + }, + + inject: function (content, asset) { + // + _debug("injecting content for " + this.url); + // + var me = this, + head = Boot.getHead(), + url = me.url, + key = me.key, + base, el, ieMode, basePath; + + if (me.isCss()) { + me.preserve = true; + basePath = key.substring(0, key.lastIndexOf("/") + 1); + base = doc.createElement('base'); + base.href = basePath; + if(head.firstChild) { + head.insertBefore(base, head.firstChild); + } else { + head.appendChild(base); + } + // reset the href attribute to cuase IE to pick up the change + base.href = base.href; + + if (url) { + content += "\n/*# sourceURL=" + key + " */"; + } + + // create element after setting base + el = me.getElement("style"); + + ieMode = ('styleSheet' in el); + + head.appendChild(base); + if(ieMode) { + head.appendChild(el); + el.styleSheet.cssText = content; + } else { + el.textContent = content; + head.appendChild(el); + } + head.removeChild(base); + + } else { + // Debugger friendly, file names are still shown even though they're + // eval'ed code. Breakpoints work on both Firebug and Chrome's Web + // Inspector. + if (url) { + content += "\n//# sourceURL=" + key; + } + Ext.globalEval(content); + } + return me; + }, + + loadCrossDomain: function() { + var me = this, + complete = function(){ + me.loaded = me.evaluated = me.done = true; + me.notifyRequests(); + }; + me.createLoadElement(function(){ + complete(); + }); + me.evaluateLoadElement(); + // at this point, we need sequential evaluation, + // which means we can't advance the load until + // this entry has fully completed + return false; + }, + + loadElement: function() { + var me = this, + complete = function(){ + me.loaded = me.evaluated = me.done = true; + me.notifyRequests(); + }; + me.createLoadElement(function(){ + complete(); + }); + me.evaluateLoadElement(); + return true; + }, + + loadSync: function() { + var me = this; + me.fetch({ + async: false, + complete: function (response) { + me.onContentLoaded(response); + } + }); + me.evaluate(); + me.notifyRequests(); + }, + + load: function (sync) { + var me = this; + if (!me.loaded) { + if(me.loading) { + // if we're calling back through load and we're loading but haven't + // yet loaded, then we should be in a sequential, cross domain + // load scenario which means we can't continue the load on the + // request until this entry has fully evaluated, which will mean + // loaded = evaluated = done = true in one step. For css files, this + // will happen immediately upon element creation / insertion, + // but + + + + + + + + + + Switch package version to ${build.version} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Package web server available at http://localhost:${build.web.port} + + + \ No newline at end of file diff --git a/packages/local/rambox-dark-theme/.sencha/package/js-impl.xml b/packages/local/rambox-dark-theme/.sencha/package/js-impl.xml new file mode 100644 index 00000000..2604b5bf --- /dev/null +++ b/packages/local/rambox-dark-theme/.sencha/package/js-impl.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/local/rambox-dark-theme/.sencha/package/plugin.xml b/packages/local/rambox-dark-theme/.sencha/package/plugin.xml new file mode 100644 index 00000000..d57eba87 --- /dev/null +++ b/packages/local/rambox-dark-theme/.sencha/package/plugin.xml @@ -0,0 +1,32 @@ + + + + + + diff --git a/packages/local/rambox-dark-theme/.sencha/package/refresh-impl.xml b/packages/local/rambox-dark-theme/.sencha/package/refresh-impl.xml new file mode 100644 index 00000000..960f24f3 --- /dev/null +++ b/packages/local/rambox-dark-theme/.sencha/package/refresh-impl.xml @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file diff --git a/packages/local/rambox-dark-theme/.sencha/package/resources-impl.xml b/packages/local/rambox-dark-theme/.sencha/package/resources-impl.xml new file mode 100644 index 00000000..df0ffdb5 --- /dev/null +++ b/packages/local/rambox-dark-theme/.sencha/package/resources-impl.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + Merging resources from base package ${base.path} + + + + + + + + + + + + + + + + Merging resources from current package ${package.resources.dir} + + + + + + + + + + \ No newline at end of file diff --git a/packages/local/rambox-dark-theme/.sencha/package/sass-impl.xml b/packages/local/rambox-dark-theme/.sencha/package/sass-impl.xml new file mode 100644 index 00000000..398b9784 --- /dev/null +++ b/packages/local/rambox-dark-theme/.sencha/package/sass-impl.xml @@ -0,0 +1,313 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + require '${build.all.ruby}' + cache_path = '${compass.cache.dir}' + + + + + + + + + + + + + + + + + + Compressing @{cssfile} to ${css.output.name} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Building @{cssfile} to ${css.output.name} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/local/rambox-dark-theme/.sencha/package/sencha.cfg b/packages/local/rambox-dark-theme/.sencha/package/sencha.cfg new file mode 100644 index 00000000..d15467d5 --- /dev/null +++ b/packages/local/rambox-dark-theme/.sencha/package/sencha.cfg @@ -0,0 +1,10 @@ +# The folder that contains sub-packages of this package. Only valid for "framework" +# package type. +# +package.subpkgs.dir=${package.dir}/packages + +#============================================================================== +# Custom Properties - Place customizations below this line to avoid merge +# conflicts with newer versions + +package.cmd.version=6.0.2.14 diff --git a/packages/local/rambox-dark-theme/.sencha/package/slice-impl.xml b/packages/local/rambox-dark-theme/.sencha/package/slice-impl.xml new file mode 100644 index 00000000..c62ac4c1 --- /dev/null +++ b/packages/local/rambox-dark-theme/.sencha/package/slice-impl.xml @@ -0,0 +1,273 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/* + * This file is generated by Sencha Cmd and should NOT be edited. It redirects + * to the most recently built CSS file for the application to allow theme.html + * to load properly for image slicing (required to support non-CSS3 browsers + * such as IE9 and below). + */ +@import '${package.example.css.path}'; + + + + + + + + + + + + Capture theme image to ${build.dir}/theme-capture.png + + + + + + + + + + + + + + + Capture theme image to ${build.capture.png} + + + + + + + Slicing theme images to ${build.resources.dir} + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/local/rambox-dark-theme/.sencha/package/sub-builds.xml b/packages/local/rambox-dark-theme/.sencha/package/sub-builds.xml new file mode 100644 index 00000000..c6a42b42 --- /dev/null +++ b/packages/local/rambox-dark-theme/.sencha/package/sub-builds.xml @@ -0,0 +1,274 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Processing examples in "@{dir}" (${example.dir}) + + + + + + + + + + + + + + + + + + + + + + No app at ${example.dir}/@{app} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Building sub package ${sub.name} + + + + + + + + package + build + + + + + + + package + build + + + + + + + + + + + Cleaning sub package in @{pkg-dir} + + + + + + + + + Upgrading sub package in @{pkg-dir} + + + package + upgrade + + + + + + + + + + Building example in @{example-dir} + + + app + build + + + + + + + + + Upgrading example in @{example-dir} + + + app + upgrade + + + + + + + + + + Cleaning example in @{example-dir} + + + + + + + @{example-dir} + + + + diff --git a/packages/local/rambox-dark-theme/.sencha/package/testing.properties b/packages/local/rambox-dark-theme/.sencha/package/testing.properties new file mode 100644 index 00000000..60749a30 --- /dev/null +++ b/packages/local/rambox-dark-theme/.sencha/package/testing.properties @@ -0,0 +1,17 @@ +# =========================================== +# This file defines properties used by +# build-impl.xml, which is the base impl +# of an applications build process. The +# properties from this file correspond to the +# 'testing' build environment, specified +# by 'sencha app build testing'. These will +# take precedence over defaults provided by +# build.properties. +# =========================================== + +# =========================================== +# compression option used to generate '-all' +# js output file. this value disables +# compression for testing builds +# =========================================== +build.compile.js.compress= diff --git a/packages/local/rambox-dark-theme/Readme.md b/packages/local/rambox-dark-theme/Readme.md new file mode 100644 index 00000000..17f0deb8 --- /dev/null +++ b/packages/local/rambox-dark-theme/Readme.md @@ -0,0 +1,2 @@ +# rambox-dark-theme - Read Me + diff --git a/packages/local/rambox-dark-theme/build.xml b/packages/local/rambox-dark-theme/build.xml new file mode 100644 index 00000000..2a6295a9 --- /dev/null +++ b/packages/local/rambox-dark-theme/build.xml @@ -0,0 +1,37 @@ + + + + + + + + diff --git a/packages/local/rambox-dark-theme/examples/Readme.md b/packages/local/rambox-dark-theme/examples/Readme.md new file mode 100644 index 00000000..3aa34750 --- /dev/null +++ b/packages/local/rambox-dark-theme/examples/Readme.md @@ -0,0 +1,38 @@ +# rambox-default-theme/examples + +This folder contains example applications demonstrating this package. Each of +these applications will be built as part of the package build: + + cd /path/to/package + sencha package build + +As applications, they can also be built individually: + + cd /path/to/package/examples/example-app + sencha app build + +Or you can build all examples as a group: + + cd /path/to/package + sencha ant examples + +The ideal location for the example builds to reside is the `"./build"` folder: + + /path/to/package/ + src/ + resources/ + ... + examples/ + example-app/ + other-example/ + ... + build/ + resources/ + examples/ + example-app/ + other-example/ + +This can be specified in the `".sencha/app/build.properties"` file for the +example applications: + + build.dir=${package.build.dir}/examples/${app.name} diff --git a/packages/local/rambox-dark-theme/licenses/Readme.md b/packages/local/rambox-dark-theme/licenses/Readme.md new file mode 100644 index 00000000..e142e653 --- /dev/null +++ b/packages/local/rambox-dark-theme/licenses/Readme.md @@ -0,0 +1,3 @@ +# rambox-default-theme/licenses + +This folder contains the supported licenses for third-party use. diff --git a/packages/local/rambox-dark-theme/overrides/Readme.md b/packages/local/rambox-dark-theme/overrides/Readme.md new file mode 100644 index 00000000..313b74d0 --- /dev/null +++ b/packages/local/rambox-dark-theme/overrides/Readme.md @@ -0,0 +1,3 @@ +# rambox-default-theme/overrides + +This folder contains overrides which will automatically be required by package users. diff --git a/packages/local/rambox-dark-theme/overrides/init.js b/packages/local/rambox-dark-theme/overrides/init.js new file mode 100644 index 00000000..6bdb797c --- /dev/null +++ b/packages/local/rambox-dark-theme/overrides/init.js @@ -0,0 +1,2 @@ +Ext.namespace('Ext.theme.is')['rambox-default-theme'] = true; +Ext.theme.name = 'rambox-default-theme'; \ No newline at end of file diff --git a/packages/local/rambox-dark-theme/package.json b/packages/local/rambox-dark-theme/package.json new file mode 100644 index 00000000..a1cb7912 --- /dev/null +++ b/packages/local/rambox-dark-theme/package.json @@ -0,0 +1,267 @@ +{ + /** + * The name of the package. + */ + "name": "rambox-dark-theme", + + /** + * Alternate names for this package. + * + * "alternateName": [], + */ + + /** + * The namespace of this package. + * + * As a general rule, all classes that belong to this package should be under this namespace + * if multiple namespaces are part of this package, set this to "". + */ + "namespace": "Ext", + + /** + * The package type. + * + * Sencha Cmd understands the following types of packages: + * - code : An arbitrary package of code for use by applications or other packages. + * - theme : A package to be used as an application’s theme. + * - locale : A package containing localization strings or locale-specific code. + * - template : A package containing one or more templates. + */ + "type": "theme", + + /** + * The parent theme package (only for "theme" package type). + * + * Themes can also use extend to inherit Sass and resources from another theme package. + * + * "extend": "parent-theme-package", + */ + "extend": "ext-theme-crisp", + + /** + * The toolkit used by this theme (only for "theme" package type). + * + * Themes can specify the toolkit they apply to ("classic" or "modern"). + * + * "toolkit": "classic", + */ + "toolkit": "${args.toolkit}", + + /** + * The author of the package. + * + * Required only if you are distributing this package through a Sencha Cmd repository, + * in which case it should match the name you assign to your local package repository. + */ + "creator": "anonymous", + + /** + * A summarized description of this package. + */ + "summary": "Short summary", + + /** + * A detailed description of this package. + */ + "detailedDescription": "Long description of package", + + /** + * The package version. + * + * Typically, changes to the package should come along with changes to the version. + * This number should be in this format: d+(.d+)* + */ + "version": "1.0.0", + + /** + * The version that users can transparently update from without requiring code changes. + * + * In addition the version property, packages can also indicate the degree to which + * they are backward compatible using the compatVersion property. + */ + "compatVersion": "1.0.0", + + /** + * Spec. version of this package.json file. + * This is set automatically by Sencha Cmd when first generating this file + */ + "format": "1", + + /** + * Additional resources used during theme slicing operations + */ + "slicer": { + "js": [ + { + "path": "${package.dir}/sass/example/custom.js", + "isWidgetManifest": true + } + ] + }, + + /** + * Controls the output directory. + */ + "output": "${package.dir}/build", + + /** + * Indicates whether this is a locally developed package or downloaded form a repository. + * Defaults to true on newly generated packages, should not be changed. + */ + "local": true, + + /** + * The theme (package) this package will use (e.g., "ext-theme-neptune", etc.). + * This is only needed if the built package will be used by a non-Cmd application. + * + * "theme": "ext-theme-classic", + */ + + /** + * Sass configuration properties. + */ + "sass" : { + /** + * The namespace to which this package's SASS corresponds. The default value of + * "Ext" means that the files in ./sass/src (and ./sass/var) match classes in + * the Ext" root namespace. In other words, "Ext.panel.Panel" maps to + * ./sass/src/panel/Panel.scss. + * + * To style classes from any namespace, set this to blank. If this is blank, + * then to style "Ext.panel.Panel" you would put SASS in + * ./sass/src/Ext/panel/Panel.scss. + */ + "namespace": "Ext", + + /** + * Comma-separated list of files or folders containing extra Sass. These + * files are automatically included in the Sass compilation. By default this + * is just "etc/all.scss" to allow import directives to control the order + * other files are included. + * + * All "etc" files are included at the top of the Sass compilation in their + * dependency order: + * + * +-------+---------+ + * | | base | + * | theme +---------+ + * | | derived | + * +-------+---------+ + * | packages | (in package dependency order) + * +-----------------+ + * | application | + * +-----------------+ + */ + "etc": "${package.dir}/sass/etc/all.scss,${package.dir}/${toolkit.name}/sass/etc/all.scss", + + /** + * Comma-separated list of folders containing Sass variable definitions + * files. These file can also define Sass mixins for use by components. + * + * All "var" files are included after "etc" files in the Sass compilation in + * dependency order: + * + * +-------+---------+ + * | | base | + * | theme +---------+ + * | | derived | + * +-------+---------+ + * | packages | (in package dependency order) + * +-----------------+ + * | application | + * +-----------------+ + * + * The "sass/var/all.scss" file is always included at the start of the var + * block before any files associated with JavaScript classes. + */ + "var": "${package.dir}/sass/var,${package.dir}/${toolkit.name}/sass/var", + + /** + * Comma-separated list of folders containing Sass rule files. + * + * All "src" files are included after "var" files in the Sass compilation in + * dependency order (the same order as "etc"): + * + * +-------+---------+ + * | | base | + * | theme +---------+ + * | | derived | + * +-------+---------+ + * | packages | (in package dependency order) + * +-----------------+ + * | application | + * +-----------------+ + */ + "src": "${package.dir}/sass/src,${package.dir}/${toolkit.name}/sass/src" + }, + + /** + * This is the comma-separated list of folders where classes reside. These + * classes must be explicitly required to be included in the build. + */ + "classpath": "${package.dir}/src,${package.dir}/${toolkit.name}/src", + + /** + * Comma-separated string with the paths of directories or files to search. Any classes + * declared in these locations will be automatically required and included in the build. + * If any file defines an Ext JS override (using Ext.define with an "override" property), + * that override will in fact only be included in the build if the target class specified + * in the "override" property is also included. + */ + "overrides": "${package.dir}/overrides,${package.dir}/${toolkit.name}/overrides", + + "example": { + /** + * One or more folders that contain example applications for this package. + */ + "path": [ + "${package.dir}/examples" + ] + + /** + * You can list apps specifically. + * + * "apps": [ + * "demo1", + * "demo2" + * ] + * + * By default, all subfolders in the path are considered example applications. + */ + }, + + /** + * The framework this package will use (i.e., "ext" or "touch"). + * This is only needed if the built package will be used by a non-Cmd application. + * + * "framework": "ext", + */ + "framework": "ext", + + /** + * Packages can require other packages in the same way that applications can require + * packages. + * + * Can be specified as an array of package names or configuration objects. + * + * "requires": [ + * "foo", + * "bar@1.1-2.0", + * { + * "name": "baz" + * "version": "1.5" + * } + * ] + * + * Can also be specified as an object: + * + * "requires": { + * "foo": "2.2", + * "bar": { + * "minVersion": "1.1", + * "version": "2.0" + * } + * } + */ + "requires": [] +} diff --git a/packages/local/rambox-dark-theme/resources/Readme.md b/packages/local/rambox-dark-theme/resources/Readme.md new file mode 100644 index 00000000..c1b112e7 --- /dev/null +++ b/packages/local/rambox-dark-theme/resources/Readme.md @@ -0,0 +1,3 @@ +# rambox-default-theme/resources + +This folder contains static resources (typically an `"images"` folder as well). diff --git a/packages/local/rambox-dark-theme/resources/fonts/font-awesome/css/font-awesome.css b/packages/local/rambox-dark-theme/resources/fonts/font-awesome/css/font-awesome.css new file mode 100644 index 00000000..a0b879fa --- /dev/null +++ b/packages/local/rambox-dark-theme/resources/fonts/font-awesome/css/font-awesome.css @@ -0,0 +1,2199 @@ +/*! + * Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url('../fonts/fontawesome-webfont.eot?v=4.6.3'); + src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.6.3') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.6.3') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.6.3') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular') format('svg'); + font-weight: normal; + font-style: normal; +} +.fa { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +/* makes the font 33% larger relative to the icon container */ +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} +.fa-2x { + font-size: 2em; +} +.fa-3x { + font-size: 3em; +} +.fa-4x { + font-size: 4em; +} +.fa-5x { + font-size: 5em; +} +.fa-fw { + width: 1.28571429em; + text-align: center; +} +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: .3em; +} +.fa.fa-pull-right { + margin-left: .3em; +} +/* Deprecated as of 4.4.0 */ +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.fa.pull-left { + margin-right: .3em; +} +.fa.pull-right { + margin-left: .3em; +} +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.fa-stack-1x { + line-height: inherit; +} +.fa-stack-2x { + font-size: 2em; +} +.fa-inverse { + color: #ffffff; +} +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.fa-glass:before { + content: "\f000"; +} +.fa-music:before { + content: "\f001"; +} +.fa-search:before { + content: "\f002"; +} +.fa-envelope-o:before { + content: "\f003"; +} +.fa-heart:before { + content: "\f004"; +} +.fa-star:before { + content: "\f005"; +} +.fa-star-o:before { + content: "\f006"; +} +.fa-user:before { + content: "\f007"; +} +.fa-film:before { + content: "\f008"; +} +.fa-th-large:before { + content: "\f009"; +} +.fa-th:before { + content: "\f00a"; +} +.fa-th-list:before { + content: "\f00b"; +} +.fa-check:before { + content: "\f00c"; +} +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: "\f00d"; +} +.fa-search-plus:before { + content: "\f00e"; +} +.fa-search-minus:before { + content: "\f010"; +} +.fa-power-off:before { + content: "\f011"; +} +.fa-signal:before { + content: "\f012"; +} +.fa-gear:before, +.fa-cog:before { + content: "\f013"; +} +.fa-trash-o:before { + content: "\f014"; +} +.fa-home:before { + content: "\f015"; +} +.fa-file-o:before { + content: "\f016"; +} +.fa-clock-o:before { + content: "\f017"; +} +.fa-road:before { + content: "\f018"; +} +.fa-download:before { + content: "\f019"; +} +.fa-arrow-circle-o-down:before { + content: "\f01a"; +} +.fa-arrow-circle-o-up:before { + content: "\f01b"; +} +.fa-inbox:before { + content: "\f01c"; +} +.fa-play-circle-o:before { + content: "\f01d"; +} +.fa-rotate-right:before, +.fa-repeat:before { + content: "\f01e"; +} +.fa-refresh:before { + content: "\f021"; +} +.fa-list-alt:before { + content: "\f022"; +} +.fa-lock:before { + content: "\f023"; +} +.fa-flag:before { + content: "\f024"; +} +.fa-headphones:before { + content: "\f025"; +} +.fa-volume-off:before { + content: "\f026"; +} +.fa-volume-down:before { + content: "\f027"; +} +.fa-volume-up:before { + content: "\f028"; +} +.fa-qrcode:before { + content: "\f029"; +} +.fa-barcode:before { + content: "\f02a"; +} +.fa-tag:before { + content: "\f02b"; +} +.fa-tags:before { + content: "\f02c"; +} +.fa-book:before { + content: "\f02d"; +} +.fa-bookmark:before { + content: "\f02e"; +} +.fa-print:before { + content: "\f02f"; +} +.fa-camera:before { + content: "\f030"; +} +.fa-font:before { + content: "\f031"; +} +.fa-bold:before { + content: "\f032"; +} +.fa-italic:before { + content: "\f033"; +} +.fa-text-height:before { + content: "\f034"; +} +.fa-text-width:before { + content: "\f035"; +} +.fa-align-left:before { + content: "\f036"; +} +.fa-align-center:before { + content: "\f037"; +} +.fa-align-right:before { + content: "\f038"; +} +.fa-align-justify:before { + content: "\f039"; +} +.fa-list:before { + content: "\f03a"; +} +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b"; +} +.fa-indent:before { + content: "\f03c"; +} +.fa-video-camera:before { + content: "\f03d"; +} +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: "\f03e"; +} +.fa-pencil:before { + content: "\f040"; +} +.fa-map-marker:before { + content: "\f041"; +} +.fa-adjust:before { + content: "\f042"; +} +.fa-tint:before { + content: "\f043"; +} +.fa-edit:before, +.fa-pencil-square-o:before { + content: "\f044"; +} +.fa-share-square-o:before { + content: "\f045"; +} +.fa-check-square-o:before { + content: "\f046"; +} +.fa-arrows:before { + content: "\f047"; +} +.fa-step-backward:before { + content: "\f048"; +} +.fa-fast-backward:before { + content: "\f049"; +} +.fa-backward:before { + content: "\f04a"; +} +.fa-play:before { + content: "\f04b"; +} +.fa-pause:before { + content: "\f04c"; +} +.fa-stop:before { + content: "\f04d"; +} +.fa-forward:before { + content: "\f04e"; +} +.fa-fast-forward:before { + content: "\f050"; +} +.fa-step-forward:before { + content: "\f051"; +} +.fa-eject:before { + content: "\f052"; +} +.fa-chevron-left:before { + content: "\f053"; +} +.fa-chevron-right:before { + content: "\f054"; +} +.fa-plus-circle:before { + content: "\f055"; +} +.fa-minus-circle:before { + content: "\f056"; +} +.fa-times-circle:before { + content: "\f057"; +} +.fa-check-circle:before { + content: "\f058"; +} +.fa-question-circle:before { + content: "\f059"; +} +.fa-info-circle:before { + content: "\f05a"; +} +.fa-crosshairs:before { + content: "\f05b"; +} +.fa-times-circle-o:before { + content: "\f05c"; +} +.fa-check-circle-o:before { + content: "\f05d"; +} +.fa-ban:before { + content: "\f05e"; +} +.fa-arrow-left:before { + content: "\f060"; +} +.fa-arrow-right:before { + content: "\f061"; +} +.fa-arrow-up:before { + content: "\f062"; +} +.fa-arrow-down:before { + content: "\f063"; +} +.fa-mail-forward:before, +.fa-share:before { + content: "\f064"; +} +.fa-expand:before { + content: "\f065"; +} +.fa-compress:before { + content: "\f066"; +} +.fa-plus:before { + content: "\f067"; +} +.fa-minus:before { + content: "\f068"; +} +.fa-asterisk:before { + content: "\f069"; +} +.fa-exclamation-circle:before { + content: "\f06a"; +} +.fa-gift:before { + content: "\f06b"; +} +.fa-leaf:before { + content: "\f06c"; +} +.fa-fire:before { + content: "\f06d"; +} +.fa-eye:before { + content: "\f06e"; +} +.fa-eye-slash:before { + content: "\f070"; +} +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071"; +} +.fa-plane:before { + content: "\f072"; +} +.fa-calendar:before { + content: "\f073"; +} +.fa-random:before { + content: "\f074"; +} +.fa-comment:before { + content: "\f075"; +} +.fa-magnet:before { + content: "\f076"; +} +.fa-chevron-up:before { + content: "\f077"; +} +.fa-chevron-down:before { + content: "\f078"; +} +.fa-retweet:before { + content: "\f079"; +} +.fa-shopping-cart:before { + content: "\f07a"; +} +.fa-folder:before { + content: "\f07b"; +} +.fa-folder-open:before { + content: "\f07c"; +} +.fa-arrows-v:before { + content: "\f07d"; +} +.fa-arrows-h:before { + content: "\f07e"; +} +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: "\f080"; +} +.fa-twitter-square:before { + content: "\f081"; +} +.fa-facebook-square:before { + content: "\f082"; +} +.fa-camera-retro:before { + content: "\f083"; +} +.fa-key:before { + content: "\f084"; +} +.fa-gears:before, +.fa-cogs:before { + content: "\f085"; +} +.fa-comments:before { + content: "\f086"; +} +.fa-thumbs-o-up:before { + content: "\f087"; +} +.fa-thumbs-o-down:before { + content: "\f088"; +} +.fa-star-half:before { + content: "\f089"; +} +.fa-heart-o:before { + content: "\f08a"; +} +.fa-sign-out:before { + content: "\f08b"; +} +.fa-linkedin-square:before { + content: "\f08c"; +} +.fa-thumb-tack:before { + content: "\f08d"; +} +.fa-external-link:before { + content: "\f08e"; +} +.fa-sign-in:before { + content: "\f090"; +} +.fa-trophy:before { + content: "\f091"; +} +.fa-github-square:before { + content: "\f092"; +} +.fa-upload:before { + content: "\f093"; +} +.fa-lemon-o:before { + content: "\f094"; +} +.fa-phone:before { + content: "\f095"; +} +.fa-square-o:before { + content: "\f096"; +} +.fa-bookmark-o:before { + content: "\f097"; +} +.fa-phone-square:before { + content: "\f098"; +} +.fa-twitter:before { + content: "\f099"; +} +.fa-facebook-f:before, +.fa-facebook:before { + content: "\f09a"; +} +.fa-github:before { + content: "\f09b"; +} +.fa-unlock:before { + content: "\f09c"; +} +.fa-credit-card:before { + content: "\f09d"; +} +.fa-feed:before, +.fa-rss:before { + content: "\f09e"; +} +.fa-hdd-o:before { + content: "\f0a0"; +} +.fa-bullhorn:before { + content: "\f0a1"; +} +.fa-bell:before { + content: "\f0f3"; +} +.fa-certificate:before { + content: "\f0a3"; +} +.fa-hand-o-right:before { + content: "\f0a4"; +} +.fa-hand-o-left:before { + content: "\f0a5"; +} +.fa-hand-o-up:before { + content: "\f0a6"; +} +.fa-hand-o-down:before { + content: "\f0a7"; +} +.fa-arrow-circle-left:before { + content: "\f0a8"; +} +.fa-arrow-circle-right:before { + content: "\f0a9"; +} +.fa-arrow-circle-up:before { + content: "\f0aa"; +} +.fa-arrow-circle-down:before { + content: "\f0ab"; +} +.fa-globe:before { + content: "\f0ac"; +} +.fa-wrench:before { + content: "\f0ad"; +} +.fa-tasks:before { + content: "\f0ae"; +} +.fa-filter:before { + content: "\f0b0"; +} +.fa-briefcase:before { + content: "\f0b1"; +} +.fa-arrows-alt:before { + content: "\f0b2"; +} +.fa-group:before, +.fa-users:before { + content: "\f0c0"; +} +.fa-chain:before, +.fa-link:before { + content: "\f0c1"; +} +.fa-cloud:before { + content: "\f0c2"; +} +.fa-flask:before { + content: "\f0c3"; +} +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4"; +} +.fa-copy:before, +.fa-files-o:before { + content: "\f0c5"; +} +.fa-paperclip:before { + content: "\f0c6"; +} +.fa-save:before, +.fa-floppy-o:before { + content: "\f0c7"; +} +.fa-square:before { + content: "\f0c8"; +} +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: "\f0c9"; +} +.fa-list-ul:before { + content: "\f0ca"; +} +.fa-list-ol:before { + content: "\f0cb"; +} +.fa-strikethrough:before { + content: "\f0cc"; +} +.fa-underline:before { + content: "\f0cd"; +} +.fa-table:before { + content: "\f0ce"; +} +.fa-magic:before { + content: "\f0d0"; +} +.fa-truck:before { + content: "\f0d1"; +} +.fa-pinterest:before { + content: "\f0d2"; +} +.fa-pinterest-square:before { + content: "\f0d3"; +} +.fa-google-plus-square:before { + content: "\f0d4"; +} +.fa-google-plus:before { + content: "\f0d5"; +} +.fa-money:before { + content: "\f0d6"; +} +.fa-caret-down:before { + content: "\f0d7"; +} +.fa-caret-up:before { + content: "\f0d8"; +} +.fa-caret-left:before { + content: "\f0d9"; +} +.fa-caret-right:before { + content: "\f0da"; +} +.fa-columns:before { + content: "\f0db"; +} +.fa-unsorted:before, +.fa-sort:before { + content: "\f0dc"; +} +.fa-sort-down:before, +.fa-sort-desc:before { + content: "\f0dd"; +} +.fa-sort-up:before, +.fa-sort-asc:before { + content: "\f0de"; +} +.fa-envelope:before { + content: "\f0e0"; +} +.fa-linkedin:before { + content: "\f0e1"; +} +.fa-rotate-left:before, +.fa-undo:before { + content: "\f0e2"; +} +.fa-legal:before, +.fa-gavel:before { + content: "\f0e3"; +} +.fa-dashboard:before, +.fa-tachometer:before { + content: "\f0e4"; +} +.fa-comment-o:before { + content: "\f0e5"; +} +.fa-comments-o:before { + content: "\f0e6"; +} +.fa-flash:before, +.fa-bolt:before { + content: "\f0e7"; +} +.fa-sitemap:before { + content: "\f0e8"; +} +.fa-umbrella:before { + content: "\f0e9"; +} +.fa-paste:before, +.fa-clipboard:before { + content: "\f0ea"; +} +.fa-lightbulb-o:before { + content: "\f0eb"; +} +.fa-exchange:before { + content: "\f0ec"; +} +.fa-cloud-download:before { + content: "\f0ed"; +} +.fa-cloud-upload:before { + content: "\f0ee"; +} +.fa-user-md:before { + content: "\f0f0"; +} +.fa-stethoscope:before { + content: "\f0f1"; +} +.fa-suitcase:before { + content: "\f0f2"; +} +.fa-bell-o:before { + content: "\f0a2"; +} +.fa-coffee:before { + content: "\f0f4"; +} +.fa-cutlery:before { + content: "\f0f5"; +} +.fa-file-text-o:before { + content: "\f0f6"; +} +.fa-building-o:before { + content: "\f0f7"; +} +.fa-hospital-o:before { + content: "\f0f8"; +} +.fa-ambulance:before { + content: "\f0f9"; +} +.fa-medkit:before { + content: "\f0fa"; +} +.fa-fighter-jet:before { + content: "\f0fb"; +} +.fa-beer:before { + content: "\f0fc"; +} +.fa-h-square:before { + content: "\f0fd"; +} +.fa-plus-square:before { + content: "\f0fe"; +} +.fa-angle-double-left:before { + content: "\f100"; +} +.fa-angle-double-right:before { + content: "\f101"; +} +.fa-angle-double-up:before { + content: "\f102"; +} +.fa-angle-double-down:before { + content: "\f103"; +} +.fa-angle-left:before { + content: "\f104"; +} +.fa-angle-right:before { + content: "\f105"; +} +.fa-angle-up:before { + content: "\f106"; +} +.fa-angle-down:before { + content: "\f107"; +} +.fa-desktop:before { + content: "\f108"; +} +.fa-laptop:before { + content: "\f109"; +} +.fa-tablet:before { + content: "\f10a"; +} +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f10b"; +} +.fa-circle-o:before { + content: "\f10c"; +} +.fa-quote-left:before { + content: "\f10d"; +} +.fa-quote-right:before { + content: "\f10e"; +} +.fa-spinner:before { + content: "\f110"; +} +.fa-circle:before { + content: "\f111"; +} +.fa-mail-reply:before, +.fa-reply:before { + content: "\f112"; +} +.fa-github-alt:before { + content: "\f113"; +} +.fa-folder-o:before { + content: "\f114"; +} +.fa-folder-open-o:before { + content: "\f115"; +} +.fa-smile-o:before { + content: "\f118"; +} +.fa-frown-o:before { + content: "\f119"; +} +.fa-meh-o:before { + content: "\f11a"; +} +.fa-gamepad:before { + content: "\f11b"; +} +.fa-keyboard-o:before { + content: "\f11c"; +} +.fa-flag-o:before { + content: "\f11d"; +} +.fa-flag-checkered:before { + content: "\f11e"; +} +.fa-terminal:before { + content: "\f120"; +} +.fa-code:before { + content: "\f121"; +} +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: "\f122"; +} +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: "\f123"; +} +.fa-location-arrow:before { + content: "\f124"; +} +.fa-crop:before { + content: "\f125"; +} +.fa-code-fork:before { + content: "\f126"; +} +.fa-unlink:before, +.fa-chain-broken:before { + content: "\f127"; +} +.fa-question:before { + content: "\f128"; +} +.fa-info:before { + content: "\f129"; +} +.fa-exclamation:before { + content: "\f12a"; +} +.fa-superscript:before { + content: "\f12b"; +} +.fa-subscript:before { + content: "\f12c"; +} +.fa-eraser:before { + content: "\f12d"; +} +.fa-puzzle-piece:before { + content: "\f12e"; +} +.fa-microphone:before { + content: "\f130"; +} +.fa-microphone-slash:before { + content: "\f131"; +} +.fa-shield:before { + content: "\f132"; +} +.fa-calendar-o:before { + content: "\f133"; +} +.fa-fire-extinguisher:before { + content: "\f134"; +} +.fa-rocket:before { + content: "\f135"; +} +.fa-maxcdn:before { + content: "\f136"; +} +.fa-chevron-circle-left:before { + content: "\f137"; +} +.fa-chevron-circle-right:before { + content: "\f138"; +} +.fa-chevron-circle-up:before { + content: "\f139"; +} +.fa-chevron-circle-down:before { + content: "\f13a"; +} +.fa-html5:before { + content: "\f13b"; +} +.fa-css3:before { + content: "\f13c"; +} +.fa-anchor:before { + content: "\f13d"; +} +.fa-unlock-alt:before { + content: "\f13e"; +} +.fa-bullseye:before { + content: "\f140"; +} +.fa-ellipsis-h:before { + content: "\f141"; +} +.fa-ellipsis-v:before { + content: "\f142"; +} +.fa-rss-square:before { + content: "\f143"; +} +.fa-play-circle:before { + content: "\f144"; +} +.fa-ticket:before { + content: "\f145"; +} +.fa-minus-square:before { + content: "\f146"; +} +.fa-minus-square-o:before { + content: "\f147"; +} +.fa-level-up:before { + content: "\f148"; +} +.fa-level-down:before { + content: "\f149"; +} +.fa-check-square:before { + content: "\f14a"; +} +.fa-pencil-square:before { + content: "\f14b"; +} +.fa-external-link-square:before { + content: "\f14c"; +} +.fa-share-square:before { + content: "\f14d"; +} +.fa-compass:before { + content: "\f14e"; +} +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: "\f150"; +} +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: "\f151"; +} +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: "\f152"; +} +.fa-euro:before, +.fa-eur:before { + content: "\f153"; +} +.fa-gbp:before { + content: "\f154"; +} +.fa-dollar:before, +.fa-usd:before { + content: "\f155"; +} +.fa-rupee:before, +.fa-inr:before { + content: "\f156"; +} +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: "\f157"; +} +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: "\f158"; +} +.fa-won:before, +.fa-krw:before { + content: "\f159"; +} +.fa-bitcoin:before, +.fa-btc:before { + content: "\f15a"; +} +.fa-file:before { + content: "\f15b"; +} +.fa-file-text:before { + content: "\f15c"; +} +.fa-sort-alpha-asc:before { + content: "\f15d"; +} +.fa-sort-alpha-desc:before { + content: "\f15e"; +} +.fa-sort-amount-asc:before { + content: "\f160"; +} +.fa-sort-amount-desc:before { + content: "\f161"; +} +.fa-sort-numeric-asc:before { + content: "\f162"; +} +.fa-sort-numeric-desc:before { + content: "\f163"; +} +.fa-thumbs-up:before { + content: "\f164"; +} +.fa-thumbs-down:before { + content: "\f165"; +} +.fa-youtube-square:before { + content: "\f166"; +} +.fa-youtube:before { + content: "\f167"; +} +.fa-xing:before { + content: "\f168"; +} +.fa-xing-square:before { + content: "\f169"; +} +.fa-youtube-play:before { + content: "\f16a"; +} +.fa-dropbox:before { + content: "\f16b"; +} +.fa-stack-overflow:before { + content: "\f16c"; +} +.fa-instagram:before { + content: "\f16d"; +} +.fa-flickr:before { + content: "\f16e"; +} +.fa-adn:before { + content: "\f170"; +} +.fa-bitbucket:before { + content: "\f171"; +} +.fa-bitbucket-square:before { + content: "\f172"; +} +.fa-tumblr:before { + content: "\f173"; +} +.fa-tumblr-square:before { + content: "\f174"; +} +.fa-long-arrow-down:before { + content: "\f175"; +} +.fa-long-arrow-up:before { + content: "\f176"; +} +.fa-long-arrow-left:before { + content: "\f177"; +} +.fa-long-arrow-right:before { + content: "\f178"; +} +.fa-apple:before { + content: "\f179"; +} +.fa-windows:before { + content: "\f17a"; +} +.fa-android:before { + content: "\f17b"; +} +.fa-linux:before { + content: "\f17c"; +} +.fa-dribbble:before { + content: "\f17d"; +} +.fa-skype:before { + content: "\f17e"; +} +.fa-foursquare:before { + content: "\f180"; +} +.fa-trello:before { + content: "\f181"; +} +.fa-female:before { + content: "\f182"; +} +.fa-male:before { + content: "\f183"; +} +.fa-gittip:before, +.fa-gratipay:before { + content: "\f184"; +} +.fa-sun-o:before { + content: "\f185"; +} +.fa-moon-o:before { + content: "\f186"; +} +.fa-archive:before { + content: "\f187"; +} +.fa-bug:before { + content: "\f188"; +} +.fa-vk:before { + content: "\f189"; +} +.fa-weibo:before { + content: "\f18a"; +} +.fa-renren:before { + content: "\f18b"; +} +.fa-pagelines:before { + content: "\f18c"; +} +.fa-stack-exchange:before { + content: "\f18d"; +} +.fa-arrow-circle-o-right:before { + content: "\f18e"; +} +.fa-arrow-circle-o-left:before { + content: "\f190"; +} +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: "\f191"; +} +.fa-dot-circle-o:before { + content: "\f192"; +} +.fa-wheelchair:before { + content: "\f193"; +} +.fa-vimeo-square:before { + content: "\f194"; +} +.fa-turkish-lira:before, +.fa-try:before { + content: "\f195"; +} +.fa-plus-square-o:before { + content: "\f196"; +} +.fa-space-shuttle:before { + content: "\f197"; +} +.fa-slack:before { + content: "\f198"; +} +.fa-envelope-square:before { + content: "\f199"; +} +.fa-wordpress:before { + content: "\f19a"; +} +.fa-openid:before { + content: "\f19b"; +} +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: "\f19c"; +} +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: "\f19d"; +} +.fa-yahoo:before { + content: "\f19e"; +} +.fa-google:before { + content: "\f1a0"; +} +.fa-reddit:before { + content: "\f1a1"; +} +.fa-reddit-square:before { + content: "\f1a2"; +} +.fa-stumbleupon-circle:before { + content: "\f1a3"; +} +.fa-stumbleupon:before { + content: "\f1a4"; +} +.fa-delicious:before { + content: "\f1a5"; +} +.fa-digg:before { + content: "\f1a6"; +} +.fa-pied-piper-pp:before { + content: "\f1a7"; +} +.fa-pied-piper-alt:before { + content: "\f1a8"; +} +.fa-drupal:before { + content: "\f1a9"; +} +.fa-joomla:before { + content: "\f1aa"; +} +.fa-language:before { + content: "\f1ab"; +} +.fa-fax:before { + content: "\f1ac"; +} +.fa-building:before { + content: "\f1ad"; +} +.fa-child:before { + content: "\f1ae"; +} +.fa-paw:before { + content: "\f1b0"; +} +.fa-spoon:before { + content: "\f1b1"; +} +.fa-cube:before { + content: "\f1b2"; +} +.fa-cubes:before { + content: "\f1b3"; +} +.fa-behance:before { + content: "\f1b4"; +} +.fa-behance-square:before { + content: "\f1b5"; +} +.fa-steam:before { + content: "\f1b6"; +} +.fa-steam-square:before { + content: "\f1b7"; +} +.fa-recycle:before { + content: "\f1b8"; +} +.fa-automobile:before, +.fa-car:before { + content: "\f1b9"; +} +.fa-cab:before, +.fa-taxi:before { + content: "\f1ba"; +} +.fa-tree:before { + content: "\f1bb"; +} +.fa-spotify:before { + content: "\f1bc"; +} +.fa-deviantart:before { + content: "\f1bd"; +} +.fa-soundcloud:before { + content: "\f1be"; +} +.fa-database:before { + content: "\f1c0"; +} +.fa-file-pdf-o:before { + content: "\f1c1"; +} +.fa-file-word-o:before { + content: "\f1c2"; +} +.fa-file-excel-o:before { + content: "\f1c3"; +} +.fa-file-powerpoint-o:before { + content: "\f1c4"; +} +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: "\f1c5"; +} +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: "\f1c6"; +} +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: "\f1c7"; +} +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: "\f1c8"; +} +.fa-file-code-o:before { + content: "\f1c9"; +} +.fa-vine:before { + content: "\f1ca"; +} +.fa-codepen:before { + content: "\f1cb"; +} +.fa-jsfiddle:before { + content: "\f1cc"; +} +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: "\f1cd"; +} +.fa-circle-o-notch:before { + content: "\f1ce"; +} +.fa-ra:before, +.fa-resistance:before, +.fa-rebel:before { + content: "\f1d0"; +} +.fa-ge:before, +.fa-empire:before { + content: "\f1d1"; +} +.fa-git-square:before { + content: "\f1d2"; +} +.fa-git:before { + content: "\f1d3"; +} +.fa-y-combinator-square:before, +.fa-yc-square:before, +.fa-hacker-news:before { + content: "\f1d4"; +} +.fa-tencent-weibo:before { + content: "\f1d5"; +} +.fa-qq:before { + content: "\f1d6"; +} +.fa-wechat:before, +.fa-weixin:before { + content: "\f1d7"; +} +.fa-send:before, +.fa-paper-plane:before { + content: "\f1d8"; +} +.fa-send-o:before, +.fa-paper-plane-o:before { + content: "\f1d9"; +} +.fa-history:before { + content: "\f1da"; +} +.fa-circle-thin:before { + content: "\f1db"; +} +.fa-header:before { + content: "\f1dc"; +} +.fa-paragraph:before { + content: "\f1dd"; +} +.fa-sliders:before { + content: "\f1de"; +} +.fa-share-alt:before { + content: "\f1e0"; +} +.fa-share-alt-square:before { + content: "\f1e1"; +} +.fa-bomb:before { + content: "\f1e2"; +} +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: "\f1e3"; +} +.fa-tty:before { + content: "\f1e4"; +} +.fa-binoculars:before { + content: "\f1e5"; +} +.fa-plug:before { + content: "\f1e6"; +} +.fa-slideshare:before { + content: "\f1e7"; +} +.fa-twitch:before { + content: "\f1e8"; +} +.fa-yelp:before { + content: "\f1e9"; +} +.fa-newspaper-o:before { + content: "\f1ea"; +} +.fa-wifi:before { + content: "\f1eb"; +} +.fa-calculator:before { + content: "\f1ec"; +} +.fa-paypal:before { + content: "\f1ed"; +} +.fa-google-wallet:before { + content: "\f1ee"; +} +.fa-cc-visa:before { + content: "\f1f0"; +} +.fa-cc-mastercard:before { + content: "\f1f1"; +} +.fa-cc-discover:before { + content: "\f1f2"; +} +.fa-cc-amex:before { + content: "\f1f3"; +} +.fa-cc-paypal:before { + content: "\f1f4"; +} +.fa-cc-stripe:before { + content: "\f1f5"; +} +.fa-bell-slash:before { + content: "\f1f6"; +} +.fa-bell-slash-o:before { + content: "\f1f7"; +} +.fa-trash:before { + content: "\f1f8"; +} +.fa-copyright:before { + content: "\f1f9"; +} +.fa-at:before { + content: "\f1fa"; +} +.fa-eyedropper:before { + content: "\f1fb"; +} +.fa-paint-brush:before { + content: "\f1fc"; +} +.fa-birthday-cake:before { + content: "\f1fd"; +} +.fa-area-chart:before { + content: "\f1fe"; +} +.fa-pie-chart:before { + content: "\f200"; +} +.fa-line-chart:before { + content: "\f201"; +} +.fa-lastfm:before { + content: "\f202"; +} +.fa-lastfm-square:before { + content: "\f203"; +} +.fa-toggle-off:before { + content: "\f204"; +} +.fa-toggle-on:before { + content: "\f205"; +} +.fa-bicycle:before { + content: "\f206"; +} +.fa-bus:before { + content: "\f207"; +} +.fa-ioxhost:before { + content: "\f208"; +} +.fa-angellist:before { + content: "\f209"; +} +.fa-cc:before { + content: "\f20a"; +} +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: "\f20b"; +} +.fa-meanpath:before { + content: "\f20c"; +} +.fa-buysellads:before { + content: "\f20d"; +} +.fa-connectdevelop:before { + content: "\f20e"; +} +.fa-dashcube:before { + content: "\f210"; +} +.fa-forumbee:before { + content: "\f211"; +} +.fa-leanpub:before { + content: "\f212"; +} +.fa-sellsy:before { + content: "\f213"; +} +.fa-shirtsinbulk:before { + content: "\f214"; +} +.fa-simplybuilt:before { + content: "\f215"; +} +.fa-skyatlas:before { + content: "\f216"; +} +.fa-cart-plus:before { + content: "\f217"; +} +.fa-cart-arrow-down:before { + content: "\f218"; +} +.fa-diamond:before { + content: "\f219"; +} +.fa-ship:before { + content: "\f21a"; +} +.fa-user-secret:before { + content: "\f21b"; +} +.fa-motorcycle:before { + content: "\f21c"; +} +.fa-street-view:before { + content: "\f21d"; +} +.fa-heartbeat:before { + content: "\f21e"; +} +.fa-venus:before { + content: "\f221"; +} +.fa-mars:before { + content: "\f222"; +} +.fa-mercury:before { + content: "\f223"; +} +.fa-intersex:before, +.fa-transgender:before { + content: "\f224"; +} +.fa-transgender-alt:before { + content: "\f225"; +} +.fa-venus-double:before { + content: "\f226"; +} +.fa-mars-double:before { + content: "\f227"; +} +.fa-venus-mars:before { + content: "\f228"; +} +.fa-mars-stroke:before { + content: "\f229"; +} +.fa-mars-stroke-v:before { + content: "\f22a"; +} +.fa-mars-stroke-h:before { + content: "\f22b"; +} +.fa-neuter:before { + content: "\f22c"; +} +.fa-genderless:before { + content: "\f22d"; +} +.fa-facebook-official:before { + content: "\f230"; +} +.fa-pinterest-p:before { + content: "\f231"; +} +.fa-whatsapp:before { + content: "\f232"; +} +.fa-server:before { + content: "\f233"; +} +.fa-user-plus:before { + content: "\f234"; +} +.fa-user-times:before { + content: "\f235"; +} +.fa-hotel:before, +.fa-bed:before { + content: "\f236"; +} +.fa-viacoin:before { + content: "\f237"; +} +.fa-train:before { + content: "\f238"; +} +.fa-subway:before { + content: "\f239"; +} +.fa-medium:before { + content: "\f23a"; +} +.fa-yc:before, +.fa-y-combinator:before { + content: "\f23b"; +} +.fa-optin-monster:before { + content: "\f23c"; +} +.fa-opencart:before { + content: "\f23d"; +} +.fa-expeditedssl:before { + content: "\f23e"; +} +.fa-battery-4:before, +.fa-battery-full:before { + content: "\f240"; +} +.fa-battery-3:before, +.fa-battery-three-quarters:before { + content: "\f241"; +} +.fa-battery-2:before, +.fa-battery-half:before { + content: "\f242"; +} +.fa-battery-1:before, +.fa-battery-quarter:before { + content: "\f243"; +} +.fa-battery-0:before, +.fa-battery-empty:before { + content: "\f244"; +} +.fa-mouse-pointer:before { + content: "\f245"; +} +.fa-i-cursor:before { + content: "\f246"; +} +.fa-object-group:before { + content: "\f247"; +} +.fa-object-ungroup:before { + content: "\f248"; +} +.fa-sticky-note:before { + content: "\f249"; +} +.fa-sticky-note-o:before { + content: "\f24a"; +} +.fa-cc-jcb:before { + content: "\f24b"; +} +.fa-cc-diners-club:before { + content: "\f24c"; +} +.fa-clone:before { + content: "\f24d"; +} +.fa-balance-scale:before { + content: "\f24e"; +} +.fa-hourglass-o:before { + content: "\f250"; +} +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: "\f251"; +} +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: "\f252"; +} +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: "\f253"; +} +.fa-hourglass:before { + content: "\f254"; +} +.fa-hand-grab-o:before, +.fa-hand-rock-o:before { + content: "\f255"; +} +.fa-hand-stop-o:before, +.fa-hand-paper-o:before { + content: "\f256"; +} +.fa-hand-scissors-o:before { + content: "\f257"; +} +.fa-hand-lizard-o:before { + content: "\f258"; +} +.fa-hand-spock-o:before { + content: "\f259"; +} +.fa-hand-pointer-o:before { + content: "\f25a"; +} +.fa-hand-peace-o:before { + content: "\f25b"; +} +.fa-trademark:before { + content: "\f25c"; +} +.fa-registered:before { + content: "\f25d"; +} +.fa-creative-commons:before { + content: "\f25e"; +} +.fa-gg:before { + content: "\f260"; +} +.fa-gg-circle:before { + content: "\f261"; +} +.fa-tripadvisor:before { + content: "\f262"; +} +.fa-odnoklassniki:before { + content: "\f263"; +} +.fa-odnoklassniki-square:before { + content: "\f264"; +} +.fa-get-pocket:before { + content: "\f265"; +} +.fa-wikipedia-w:before { + content: "\f266"; +} +.fa-safari:before { + content: "\f267"; +} +.fa-chrome:before { + content: "\f268"; +} +.fa-firefox:before { + content: "\f269"; +} +.fa-opera:before { + content: "\f26a"; +} +.fa-internet-explorer:before { + content: "\f26b"; +} +.fa-tv:before, +.fa-television:before { + content: "\f26c"; +} +.fa-contao:before { + content: "\f26d"; +} +.fa-500px:before { + content: "\f26e"; +} +.fa-amazon:before { + content: "\f270"; +} +.fa-calendar-plus-o:before { + content: "\f271"; +} +.fa-calendar-minus-o:before { + content: "\f272"; +} +.fa-calendar-times-o:before { + content: "\f273"; +} +.fa-calendar-check-o:before { + content: "\f274"; +} +.fa-industry:before { + content: "\f275"; +} +.fa-map-pin:before { + content: "\f276"; +} +.fa-map-signs:before { + content: "\f277"; +} +.fa-map-o:before { + content: "\f278"; +} +.fa-map:before { + content: "\f279"; +} +.fa-commenting:before { + content: "\f27a"; +} +.fa-commenting-o:before { + content: "\f27b"; +} +.fa-houzz:before { + content: "\f27c"; +} +.fa-vimeo:before { + content: "\f27d"; +} +.fa-black-tie:before { + content: "\f27e"; +} +.fa-fonticons:before { + content: "\f280"; +} +.fa-reddit-alien:before { + content: "\f281"; +} +.fa-edge:before { + content: "\f282"; +} +.fa-credit-card-alt:before { + content: "\f283"; +} +.fa-codiepie:before { + content: "\f284"; +} +.fa-modx:before { + content: "\f285"; +} +.fa-fort-awesome:before { + content: "\f286"; +} +.fa-usb:before { + content: "\f287"; +} +.fa-product-hunt:before { + content: "\f288"; +} +.fa-mixcloud:before { + content: "\f289"; +} +.fa-scribd:before { + content: "\f28a"; +} +.fa-pause-circle:before { + content: "\f28b"; +} +.fa-pause-circle-o:before { + content: "\f28c"; +} +.fa-stop-circle:before { + content: "\f28d"; +} +.fa-stop-circle-o:before { + content: "\f28e"; +} +.fa-shopping-bag:before { + content: "\f290"; +} +.fa-shopping-basket:before { + content: "\f291"; +} +.fa-hashtag:before { + content: "\f292"; +} +.fa-bluetooth:before { + content: "\f293"; +} +.fa-bluetooth-b:before { + content: "\f294"; +} +.fa-percent:before { + content: "\f295"; +} +.fa-gitlab:before { + content: "\f296"; +} +.fa-wpbeginner:before { + content: "\f297"; +} +.fa-wpforms:before { + content: "\f298"; +} +.fa-envira:before { + content: "\f299"; +} +.fa-universal-access:before { + content: "\f29a"; +} +.fa-wheelchair-alt:before { + content: "\f29b"; +} +.fa-question-circle-o:before { + content: "\f29c"; +} +.fa-blind:before { + content: "\f29d"; +} +.fa-audio-description:before { + content: "\f29e"; +} +.fa-volume-control-phone:before { + content: "\f2a0"; +} +.fa-braille:before { + content: "\f2a1"; +} +.fa-assistive-listening-systems:before { + content: "\f2a2"; +} +.fa-asl-interpreting:before, +.fa-american-sign-language-interpreting:before { + content: "\f2a3"; +} +.fa-deafness:before, +.fa-hard-of-hearing:before, +.fa-deaf:before { + content: "\f2a4"; +} +.fa-glide:before { + content: "\f2a5"; +} +.fa-glide-g:before { + content: "\f2a6"; +} +.fa-signing:before, +.fa-sign-language:before { + content: "\f2a7"; +} +.fa-low-vision:before { + content: "\f2a8"; +} +.fa-viadeo:before { + content: "\f2a9"; +} +.fa-viadeo-square:before { + content: "\f2aa"; +} +.fa-snapchat:before { + content: "\f2ab"; +} +.fa-snapchat-ghost:before { + content: "\f2ac"; +} +.fa-snapchat-square:before { + content: "\f2ad"; +} +.fa-pied-piper:before { + content: "\f2ae"; +} +.fa-first-order:before { + content: "\f2b0"; +} +.fa-yoast:before { + content: "\f2b1"; +} +.fa-themeisle:before { + content: "\f2b2"; +} +.fa-google-plus-circle:before, +.fa-google-plus-official:before { + content: "\f2b3"; +} +.fa-fa:before, +.fa-font-awesome:before { + content: "\f2b4"; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} diff --git a/packages/local/rambox-dark-theme/resources/fonts/font-awesome/css/font-awesome.min.css b/packages/local/rambox-dark-theme/resources/fonts/font-awesome/css/font-awesome.min.css new file mode 100644 index 00000000..9b27f8ea --- /dev/null +++ b/packages/local/rambox-dark-theme/resources/fonts/font-awesome/css/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.6.3');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.6.3') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.6.3') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.6.3') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/packages/local/rambox-dark-theme/resources/fonts/font-awesome/fonts/FontAwesome.otf b/packages/local/rambox-dark-theme/resources/fonts/font-awesome/fonts/FontAwesome.otf new file mode 100644 index 00000000..d4de13e8 Binary files /dev/null and b/packages/local/rambox-dark-theme/resources/fonts/font-awesome/fonts/FontAwesome.otf differ diff --git a/packages/local/rambox-dark-theme/resources/fonts/font-awesome/fonts/fontawesome-webfont.eot b/packages/local/rambox-dark-theme/resources/fonts/font-awesome/fonts/fontawesome-webfont.eot new file mode 100644 index 00000000..c7b00d2b Binary files /dev/null and b/packages/local/rambox-dark-theme/resources/fonts/font-awesome/fonts/fontawesome-webfont.eot differ diff --git a/packages/local/rambox-dark-theme/resources/fonts/font-awesome/fonts/fontawesome-webfont.svg b/packages/local/rambox-dark-theme/resources/fonts/font-awesome/fonts/fontawesome-webfont.svg new file mode 100644 index 00000000..8b66187f --- /dev/null +++ b/packages/local/rambox-dark-theme/resources/fonts/font-awesome/fonts/fontawesome-webfont.svg @@ -0,0 +1,685 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/local/rambox-dark-theme/resources/fonts/font-awesome/fonts/fontawesome-webfont.ttf b/packages/local/rambox-dark-theme/resources/fonts/font-awesome/fonts/fontawesome-webfont.ttf new file mode 100644 index 00000000..f221e50a Binary files /dev/null and b/packages/local/rambox-dark-theme/resources/fonts/font-awesome/fonts/fontawesome-webfont.ttf differ diff --git a/packages/local/rambox-dark-theme/resources/fonts/font-awesome/fonts/fontawesome-webfont.woff b/packages/local/rambox-dark-theme/resources/fonts/font-awesome/fonts/fontawesome-webfont.woff new file mode 100644 index 00000000..6e7483cf Binary files /dev/null and b/packages/local/rambox-dark-theme/resources/fonts/font-awesome/fonts/fontawesome-webfont.woff differ diff --git a/packages/local/rambox-dark-theme/resources/fonts/font-awesome/fonts/fontawesome-webfont.woff2 b/packages/local/rambox-dark-theme/resources/fonts/font-awesome/fonts/fontawesome-webfont.woff2 new file mode 100644 index 00000000..7eb74fd1 Binary files /dev/null and b/packages/local/rambox-dark-theme/resources/fonts/font-awesome/fonts/fontawesome-webfont.woff2 differ diff --git a/packages/local/rambox-dark-theme/resources/fonts/icomoon/icomoon.eot b/packages/local/rambox-dark-theme/resources/fonts/icomoon/icomoon.eot new file mode 100644 index 00000000..0d9f71a5 Binary files /dev/null and b/packages/local/rambox-dark-theme/resources/fonts/icomoon/icomoon.eot differ diff --git a/packages/local/rambox-dark-theme/resources/fonts/icomoon/icomoon.svg b/packages/local/rambox-dark-theme/resources/fonts/icomoon/icomoon.svg new file mode 100644 index 00000000..360b0b0a --- /dev/null +++ b/packages/local/rambox-dark-theme/resources/fonts/icomoon/icomoon.svg @@ -0,0 +1,21 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/local/rambox-dark-theme/resources/fonts/icomoon/icomoon.ttf b/packages/local/rambox-dark-theme/resources/fonts/icomoon/icomoon.ttf new file mode 100644 index 00000000..fc7e5642 Binary files /dev/null and b/packages/local/rambox-dark-theme/resources/fonts/icomoon/icomoon.ttf differ diff --git a/packages/local/rambox-dark-theme/resources/fonts/icomoon/icomoon.woff b/packages/local/rambox-dark-theme/resources/fonts/icomoon/icomoon.woff new file mode 100644 index 00000000..5b3c470a Binary files /dev/null and b/packages/local/rambox-dark-theme/resources/fonts/icomoon/icomoon.woff differ diff --git a/packages/local/rambox-dark-theme/resources/images/toolbar/main-more.png b/packages/local/rambox-dark-theme/resources/images/toolbar/main-more.png new file mode 100644 index 00000000..8af67e38 Binary files /dev/null and b/packages/local/rambox-dark-theme/resources/images/toolbar/main-more.png differ diff --git a/packages/local/rambox-dark-theme/resources/images/toolbar/newversion-more.png b/packages/local/rambox-dark-theme/resources/images/toolbar/newversion-more.png new file mode 100644 index 00000000..8af67e38 Binary files /dev/null and b/packages/local/rambox-dark-theme/resources/images/toolbar/newversion-more.png differ diff --git a/packages/local/rambox-dark-theme/sass/Readme.md b/packages/local/rambox-dark-theme/sass/Readme.md new file mode 100644 index 00000000..9a65b067 --- /dev/null +++ b/packages/local/rambox-dark-theme/sass/Readme.md @@ -0,0 +1,7 @@ +# rambox-default-theme/sass + +This folder contains SASS files of various kinds, organized in sub-folders: + + rambox-default-theme/sass/etc + rambox-default-theme/sass/src + rambox-default-theme/sass/var diff --git a/packages/local/rambox-dark-theme/sass/config.rb b/packages/local/rambox-dark-theme/sass/config.rb new file mode 100644 index 00000000..2c32c0a2 --- /dev/null +++ b/packages/local/rambox-dark-theme/sass/config.rb @@ -0,0 +1,2 @@ +cur_dir = File.dirname(__FILE__) +output_style = :nested diff --git a/packages/local/rambox-dark-theme/sass/etc/Readme.md b/packages/local/rambox-dark-theme/sass/etc/Readme.md new file mode 100644 index 00000000..d7030ab0 --- /dev/null +++ b/packages/local/rambox-dark-theme/sass/etc/Readme.md @@ -0,0 +1,4 @@ +# rambox-default-theme/sass/etc + +This folder contains miscellaneous SASS files. Unlike `"rambox-default-theme/sass/etc"`, these files +need to be used explicitly. diff --git a/packages/local/rambox-dark-theme/sass/etc/_loadscreen.scss b/packages/local/rambox-dark-theme/sass/etc/_loadscreen.scss new file mode 100644 index 00000000..dddb9092 --- /dev/null +++ b/packages/local/rambox-dark-theme/sass/etc/_loadscreen.scss @@ -0,0 +1,229 @@ +/* Main component wrapper */ +body { + overflow: hidden; +} +.component { + position: absolute;; + z-index: 1; + width: 200px; + height: 200px; + margin: -100px 0 0 -100px; + top: 50%; + left: 50%; +} + + +/* Actual buttons (laid over shapes) */ + +.button { + font-weight: bold; + position: absolute; + bottom: 4px; + top: 50%; + left: 50%; + width: 200px; + height: 200px; + margin: -100px 0 0 -100px; + padding: 0; + text-align: center; + color: #00a7e7; + border: none; + background: none; + -webkit-transition: opacity 0.3s; + transition: opacity 0.3s; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +.button:hover, +.button:focus { + outline: none; + color: #048abd; +} + +.button--listen { + pointer-events: none; +} + +.button--close { + z-index: 10; + top: 0px; + right: 0px; + left: auto; + width: 40px; + height: 40px; + padding: 10px; + color: #fff; +} + +.button--close:hover, +.button--close:focus { + color: #ddd; +} + +.button--hidden { + pointer-events: none; + opacity: 0; +} + + +/* Inner content of the start/*/ + +.button__content { + position: absolute; + opacity: 0; + -webkit-transition: -webkit-transform 0.4s, opacity 0.4s; + transition: transform 0.4s, opacity 0.4s; +} + +.button__content--listen { + font-size: 1.75em; + line-height: 64px; + bottom: 0; + left: 50%; + width: 60px; + height: 60px; + margin: 0 0 0 -30px; + border-radius: 50%; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); + -webkit-transition-timing-function: cubic-bezier(0.8, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0.8, 0, 0.2, 1); +} + +.button__content--listen::before, +.button__content--listen::after { + content: ''; + position: absolute; + left: 0; + width: 100%; + height: 100%; + pointer-events: none; + opacity: 0; + border: 1px solid rgba(255, 255, 255, 0.2); + border-radius: 50%; +} + +.button--animate .button__content--listen::before, +.button--animate .button__content--listen::after { + -webkit-animation: anim-ripple 1.2s ease-out infinite forwards; + animation: anim-ripple 1.2s ease-out infinite forwards; +} + +.button--animate .button__content--listen::after { + -webkit-animation-delay: 0.6s; + animation-delay: 0.6s; +} + +@-webkit-keyframes anim-ripple { + 0% { + opacity: 0; + -webkit-transform: scale3d(3, 3, 1); + transform: scale3d(3, 3, 1); + } + 50% { + opacity: 1; + } + 100% { + opacity: 0; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes anim-ripple { + 0% { + opacity: 0; + -webkit-transform: scale3d(3, 3, 1); + transform: scale3d(3, 3, 1); + } + 50% { + opacity: 1; + } + 100% { + opacity: 0; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.notes { + position: absolute; + z-index: -1; + bottom: 0; + left: 50%; + width: 200px; + height: 100px; + margin: 0 0 0 -100px; +} + +.note { + font-size: 2.8em; + position: absolute; + left: 50%; + width: 1em; + margin: 0 0 0 -0.5em; + opacity: 0; + color: rgba(255, 255, 255, 0.75); +} + +.note:nth-child(odd) { + color: rgba(0, 0, 0, 0.1); +} + +.note:nth-child(4n) { + font-size: 2em; +} + +.note:nth-child(6n) { + color: rgba(255, 255, 255, 0.3); +} + +/* ICONS */ +@font-face { + font-family: 'icomoon'; + src:url('../resources/fonts/icomoon/icomoon.eot?4djz1y'); + src:url('../resources/fonts/icomoon/icomoon.eot?4djz1y#iefix') format('embedded-opentype'), + url('../resources/fonts/icomoon/icomoon.ttf?4djz1y') format('truetype'), + url('../resources/fonts/icomoon/icomoon.woff?4djz1y') format('woff'), + url('../resources/fonts/icomoon/icomoon.svg?4djz1y#icomoon') format('svg'); + font-weight: normal; + font-style: normal; +} + +.icon { + font-family: 'icomoon'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + + +.icon--microphone:before { + content: "\ea95"; +} +.icon--cross:before { + content: "\e90c"; +} +.icon--note1:before { + content: "\ea83"; +} +.icon--note2:before { + content: "\eaad"; +} +.icon--note3:before { + content: "\eac5"; +} +.icon--note4:before { + content: "\ea93"; +} +.icon--note5:before { + content: "\ea95"; +} +.icon--note6:before { + content: "\ea96"; +} diff --git a/packages/local/rambox-dark-theme/sass/etc/all.scss b/packages/local/rambox-dark-theme/sass/etc/all.scss new file mode 100644 index 00000000..b9779d85 --- /dev/null +++ b/packages/local/rambox-dark-theme/sass/etc/all.scss @@ -0,0 +1,274 @@ +@import url(../resources/fonts/font-awesome/css/font-awesome.min.css); +@import url(https://fonts.googleapis.com/css?family=Josefin+Sans:400,700,600); +@import url(https://fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,700italic,700,500italic,500,400italic); +@import 'loadscreen'; + +$base-color: #162938; +$font-family: 'Roboto', sans-serif; +$include-ie: false; +$include-ff: false; +$include-safari: false; +$include-opera: false; + +// Spinner +body { + margin: 0; + background-color: $base-color; +} +@-webkit-keyframes uil-ring-anim { + 0% { + -ms-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + -o-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -ms-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -webkit-transform: rotate(360deg); + -o-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@-webkit-keyframes uil-ring-anim { + 0% { + -ms-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + -o-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -ms-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -webkit-transform: rotate(360deg); + -o-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@-moz-keyframes uil-ring-anim { + 0% { + -ms-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + -o-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -ms-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -webkit-transform: rotate(360deg); + -o-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@-ms-keyframes uil-ring-anim { + 0% { + -ms-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + -o-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -ms-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -webkit-transform: rotate(360deg); + -o-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@-moz-keyframes uil-ring-anim { + 0% { + -ms-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + -o-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -ms-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -webkit-transform: rotate(360deg); + -o-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@-webkit-keyframes uil-ring-anim { + 0% { + -ms-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + -o-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -ms-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -webkit-transform: rotate(360deg); + -o-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@-o-keyframes uil-ring-anim { + 0% { + -ms-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + -o-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -ms-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -webkit-transform: rotate(360deg); + -o-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@keyframes uil-ring-anim { + 0% { + -ms-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + -o-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -ms-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -webkit-transform: rotate(360deg); + -o-transform: rotate(360deg); + transform: rotate(360deg); + } +} +.uil-ring-css { + background: url('../resources/Icon.png') no-repeat center center; + background-size: 160px 160px; + position: absolute; + width: 200px; + height: 200px; + top: 50%; + left: 50%; + margin-left: -100px; + margin-top: -100px; +} +.uil-ring-css > div { + position: absolute; + display: block; + width: 160px; + height: 160px; + top: 20px; + left: 20px; + border-radius: 80px; + box-shadow: 0 6px 0 0 #07a6cb; + -ms-animation: uil-ring-anim 1s linear infinite; + -moz-animation: uil-ring-anim 1s linear infinite; + -webkit-animation: uil-ring-anim 1s linear infinite; + -o-animation: uil-ring-anim 1s linear infinite; + animation: uil-ring-anim 1s linear infinite; +} + +// Badge Plugin for Tabs +.x-badge { + position: relative; + overflow: visible; +} + +.x-badge[data-badge-text]:after { + content: attr(data-badge-text); + position: absolute; + font-size: 10px; + top: 0px; + right: 2px; + width: auto; + font-weight: bold; + color: white; + text-shadow: rgba(0, 0, 0, 0.5) 0 -0.08em 0; + -webkit-border-radius: 3px; + border-radius: 3px; + padding: 0 4px; + background-image: none; + background-color: #C00; + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ff1a1a), color-stop(3%, #e60000), color-stop(100%, #b30000)); + background-image: -webkit-linear-gradient(top, #ff1a1a,#e60000 3%,#b30000); + background-image: linear-gradient(top, #ff1a1a,#e60000 3%,#b30000); + -webkit-box-shadow: rgba(0, 0, 0, 0.3) 0 0.1em 0.1em; + box-shadow: rgba(0, 0, 0, 0.3) 0 0.1em 0.1em; +} + +.x-badge.green-badge[data-badge-text]:after { + background-color: #0C0; + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #1AFF1A), color-stop(3%, #00E600), color-stop(100%, #00B300)); + background-image: -webkit-linear-gradient(top, #1AFF1A,#00E600 3%,#00B300); + background-image: linear-gradient(top, #1AFF1A,#00E600 3%,#00B300); +} + +.x-badge.blue-badge[data-badge-text]:after { + background-color: #00C; + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #1A1AFF), color-stop(3%, #0000E6), color-stop(100%, #0000B3)); + background-image: -webkit-linear-gradient(top, #1A1AFF,#0000E6 3%,#0000B3); + background-image: linear-gradient(top, #1A1AFF,#0000E6 3%,#0000B3); +} + +/* Additional classes needed for tab panels */ +.allow-overflow .x-box-layout-ct, .allow-overflow .x-box-inner, .allow-overflow .x-box-item { + overflow: visible; +} + +.x-tab-closable.x-badge[data-badge-text]:after { + right: 16px; +} + +// Allow Glyphs in Action Columns +.x-action-col-glyph {font-size:16px; line-height:16px; color:#CFCFCF; width:16px; margin: 0 5px;} +.x-action-col-glyph:hover{color:$base-color} +.x-grid-item-over .x-hidden-display, .x-grid-item-selected .x-hidden-display{display:inline-block !important} +.x-grid-cell-inner { + height: 44px; + line-height: 32px !important; + &.x-grid-cell-inner-action-col { + line-height: 44px !important; + } +} +.x-tab-icon-el-default { background-size: 24px; } +.x-title-icon { background-size: 16px; } + +// Fix for scroller tab bar +//.x-box-scroller-body-horizontal { width: auto !important; margin-right: 18px; padding-right: 18px; } +//.x-box-scroller-tab-bar { z-index: 9999; } + +.service { + width: 230px; + display: inline-block; + padding: 10px; + cursor: pointer; + img { + float: left; + } + span { + margin-left: 10px; + line-height: 48px; + } + &:hover { + background-color: lighten($base-color, 55%); + } +} + +// Auth0 +.auth0-lock.auth0-lock .auth0-lock-header-logo { + height: 50px !important; +} + +.x-statusbar { + padding: 0px !important; + background-color: $base-color !important; + &.x-docked-bottom { + border-top: 1px solid #CCC !important; + border-top-width: 1px !important; + } + .x-toolbar-text-default { + color: #FFF !important; + } +} diff --git a/packages/local/rambox-dark-theme/sass/example/custom.js b/packages/local/rambox-dark-theme/sass/example/custom.js new file mode 100644 index 00000000..4b38faf3 --- /dev/null +++ b/packages/local/rambox-dark-theme/sass/example/custom.js @@ -0,0 +1,12 @@ +/* + * This file is generated as a starting point by Sencha Cmd - it will not be replaced or + * updated by "sencha package upgrade". + * + * This file can be removed and the script tag in theme.html removed if this theme does + * not need custom additional manifest or shortcut entries. These are documented in + * ./packages/ext-theme-base/sass/example/render.js. + */ + +//Ext.theme.addManifest(); + +//Ext.theme.addShortcuts(); diff --git a/packages/local/rambox-dark-theme/sass/example/fashion.html b/packages/local/rambox-dark-theme/sass/example/fashion.html new file mode 100644 index 00000000..2d2aa298 --- /dev/null +++ b/packages/local/rambox-dark-theme/sass/example/fashion.html @@ -0,0 +1,39 @@ + + + + + Ext JS Theme Harness + + + + + + + + + + + + diff --git a/packages/local/rambox-dark-theme/sass/example/render.js b/packages/local/rambox-dark-theme/sass/example/render.js new file mode 100644 index 00000000..4d888d7e --- /dev/null +++ b/packages/local/rambox-dark-theme/sass/example/render.js @@ -0,0 +1,450 @@ +/* + * This file is generated by Sencha Cmd and should NOT be edited. It will be replaced + * during an upgrade. + */ + +// This flag is checked by many Components to avoid compatibility warnings when +// the code is running under the slicer +Ext.slicer = true; + +Ext.require([ + 'Ext.layout.Context' +]); + +Ext.theme = Ext.apply(Ext.theme || {}, { + /** + * The array of all component manifests. These objects have the following set of + * properties recognized by the slicer: + * @private + */ + _manifest: [], + + /** + * The collection of shortcuts for a given alias (e.g., 'widget.panel'). This is an + * object keyed by alias whose values are arrays of shortcut definitions. + * @private + */ + _shortcuts: {}, + + doRequire : function(xtype) { + if(xtype.indexOf("widget.") != 0) { + xtype = "widget." + xtype; + } + Ext.require([xtype]); + }, + + /** + * Adds one ore more component entries to the theme manifest. These entries will be + * instantiated by the `Ext.theme.render` method when the page is ready. + * + * Usage: + * + * Ext.theme.addManifest({ + * xtype: 'widget.menu', + * folder: 'menu', + * delegate: '.x-menu-item-link', + * filename: 'menu-item-active', + * config: { + * floating: false, + * width: 200, + * items: [{ + * text: 'test', + * cls: 'x-menu-item-active' + * }] + * } + * },{ + * //... + * }); + * + * @param manifest {Object} An object with type of component, slicing information and + * component configuration. If this parameter is an array, each element is treated as + * a manifest entry. Otherwise, each argument passed is treated as a manifest entry. + * + * @param manifest.xtype {String} The xtype ('grid') or alias ('widget.grid'). This + * is used to specify the type of component to create as well as a potential key to + * any `shortcuts` defined for the xtype. + * + * @param manifest.config {Object} The component configuration object. The properties + * of this depend on the `xtype` of the component. + * + * @param [manifest.delegate] {String} The DOM query to use to select the element to + * slice. The default is to slice the primary element of the component. + * + * @param [manifest.parentCls] An optional CSS class to add to the parent of the + * component. + * + * @param [manifest.setup] {Function} An optional function to be called to initialize + * the component. + * @param manifest.setup.component {Ext.Component} The component instance + * @param manifest.setup.container {Element} The component's container. + * + * @param [manifest.folder] {String} The folder in to which to produce image slices. + * Only applies to Ext JS 4.1 (removed in 4.2). + * + * @param [manifest.filename] {String} The base filename for slices. + * Only applies to Ext JS 4.1 (removed in 4.2). + * + * @param [manifest.reverse] {Boolean} True to position the slices for linear gradient + * background at then opposite "end" (right or bottom) and apply the stretch to the + * area before it (left or top). Only applies to Ext JS 4.1 (removed in 4.2). + */ + addManifest: function (manifest) { + var all = Ext.theme._manifest; + var add = Ext.isArray(manifest) ? manifest : arguments; + + if(manifest.xtype) { + Ext.theme.doRequire(manifest.xtype); + } + + for (var i = 0, n = add.length; i < n; ++i) { + if(add[i].xtype) { + Ext.theme.doRequire(add[i].xtype); + } + all.push(add[i]); + } + }, + + /** + * Adds one or more shortcuts to the rendering process. A `shortcut` is an object that + * looks the same as a `manifest` entry. These are combined by copying the properties + * from the shortcut over those of the manifest entry. In basic terms: + * + * var config = Ext.apply(Ext.apply({}, manfiest.config), shortcut.config); + * var entry = Ext.apply(Ext.apply({}, manfiest), shortcut); + * entry.config = config; + * + * This is not exactly the process, but the idea is the same. The difference is that + * the `ui` of the manifest entry is used to replace any `"{ui}"` substrings found in + * any string properties of the shortcut or its `config` object. + * + * Usage: + * + * Ext.theme.addShortcuts({ + * 'widget.foo': [{ + * config: { + * } + * },{ + * config: { + * } + * }], + * + * 'widget.bar': [ ... ] + * }); + */ + addShortcuts: function (shortcuts) { + var all = Ext.theme._shortcuts; + + for (var key in shortcuts) { + + var add = shortcuts[key]; + var xtype = Ext.theme.addWidget(key); + var existing = all[xtype]; + + Ext.theme.doRequire(xtype); + for(var i=0; i < add.length; i++) { + var config = add[i]; + if(config.xtype) { + Ext.theme.doRequire(config.xtype); + } + } + + if (!existing) { + all[xtype] = existing = []; + } + + existing.push.apply(existing, add); + } + }, + + /** + * This method ensures that a given string has the specified prefix (e.g., "widget."). + * @private + */ + addPrefix: function (prefix, s) { + if (!s || (s.length > prefix.length && s.substring(0,prefix.length) === prefix)) { + return s; + } + return prefix + s; + }, + + /** + * This method returns the given string with "widget." added to the front if that is + * not already present. + * @private + */ + addWidget: function (str) { + return Ext.theme.addPrefix('widget.', str); + }, + + /** + * This method accepts an manifest entry and a shortcut entry and returns the merged + * version. + * @private + */ + applyShortcut: function (manifestEntry, shortcut) { + var ui = manifestEntry.ui; + var config = Ext.theme.copyProps({}, manifestEntry.config); + var entry = Ext.theme.copyProps({}, manifestEntry); + + if (ui && !config.ui) { + config.ui = ui; + } + if (shortcut) { + var tpl = { ui: ui }; + Ext.theme.copyProps(entry, shortcut, tpl); + Ext.theme.copyProps(config, shortcut.config, tpl); + } + + entry.xtype = Ext.theme.addWidget(entry.xtype); + entry.config = config; // both guys have "config" so smash merged one on now... + return entry; + }, + + /** + * This method copies property from a `src` object to a `dest` object and reaplces + * `"{foo}"` fragments of any string properties as defined in the `tpl` object. + * + * var obj = Ext.theme.copyProps({}, { + * foo: 'Hello-{ui}' + * }, { + * ui: 'World' + * }); + * + * console.log('obj.foo: ' + obj.foo); // logs "Hello-World" + * + * @return {Object} The `dest` object or a new object (if `dest` was null). + * @private + */ + copyProps: function (dest, src, tpl) { + var out = dest || {}; + var replacements = []; + var token; + + if (src) { + if (tpl) { + for (token in tpl) { + replacements.push({ + re: new RegExp('\\{' + token + '\\}', 'g'), + value: tpl[token] + }); + } + } + + for (var key in src) { + var val = src[key]; + if (tpl && typeof val === 'string') { + for (var i = 0; i < replacements.length; ++ i) { + val = val.replace(replacements[i].re, replacements[i].value); + } + } + out[key] = val; + } + } + + return out; + }, + + /** + * Renders a component given its manifest and shortcut entries. + * @private + */ + renderWidget: function (manifestEntry, shortcut) { + var entry = Ext.theme.applyShortcut(manifestEntry, shortcut); + var config = entry.config; + var widget = Ext.create(entry.xtype, config); + var ct = Ext.fly(document.body).createChild({ cls: 'widget-container' }); + + Ext.theme.currentWidget = widget; + + if (widget.floating === true) { + widget.floating = { shadow: false }; + } + if (widget.floating) { + widget.focusOnToFront = false; + } + + if (entry.setup) { + entry.setup.call(widget, widget, ct); + } else { + widget.render(ct); + if (widget.floating) { + widget.showAt(0, 0); + ct.setHeight(widget.getHeight()); + } + } + + var el = widget.el; + if (entry.delegate) { + el = el.down(entry.delegate); + } + + el.addCls('x-slicer-target'); // this is what generateSlicerManifest looks for + + if (entry.over) { + widget.addOverCls(); + } + if (config.parentCls) { + el.parent().addCls(config.parentCls); + } + + if (Ext.theme.legacy) { + // The 4.1 approach has some interesting extra pieces + // + var data = {}; + if (entry.reverse) { + data.reverse = true; + } + if (entry.filename) { + data.filename = entry.filename; + } + if (entry.folder) { + data.folder = entry.folder; + } + if (entry.offsets) { + data.offsets = entry.offsets; + } + + Ext.theme.setData(el.dom, data); + } + + Ext.theme.currentWidget = null; + }, + + /** + * Renders all of the components that have been added to the manifest. + * @private + */ + render: function () { + console.log("rendering widgets...") + var manifest = Ext.theme._manifest; + var shortcuts = Ext.theme._shortcuts; + + for (var k = 0, n = manifest ? manifest.length : 0; k < n; ++k) { + var manifestEntry = manifest[k]; + var xtype = Ext.theme.addWidget(manifestEntry.xtype); + var widgetShortcuts = xtype ? shortcuts[xtype] : null; + + if (xtype && manifestEntry.ui && widgetShortcuts) { + for (var i = 0; i < widgetShortcuts.length; i++) { + Ext.theme.renderWidget(manifestEntry, widgetShortcuts[i]); + } + } else { + Ext.theme.renderWidget(manifestEntry); + } + } + }, + + /** + * Renders all components (see `render`) and notifies the Slicer that things are ready. + * @private + */ + run: function () { + var extjsVer = Ext.versions.extjs; + var globalData = {}; + + if (Ext.layout.Context) { + Ext.override(Ext.layout.Context, { + run: function () { + var ok = this.callParent(), + widget = Ext.theme.currentWidget; + if (!ok && widget) { + Ext.Error.raise("Layout run failed: " + widget.id); + } + return ok; + } + }); + } + + console.log("loading widget definitions..."); + + // Previous to Ext JS 4.2, themes and their manifests where defined differently. + // So pass this along if we are hosting a pre-4.2 theme. + // + if (extjsVer && extjsVer.isLessThan(new Ext.Version("4.2"))) { + globalData.format = "1.0"; // tell the Slicer tool + Ext.theme.legacy = true; // not for our own data collection + + // Check for the Cmd3.0/ExtJS4.1 variables: + // + if (Ext.manifest && Ext.manifest.widgets) { + Ext.theme.addManifest(Ext.manifest.widgets); + } + if (Ext.shortcuts) { + Ext.theme.addShortcuts(Ext.shortcuts); + } + if (Ext.userManifest && Ext.userManifest.widgets) { + Ext.theme.addManifest(Ext.userManifest.widgets); + } + } + + Ext.theme.setData(document.body, globalData); + Ext.theme.render(); + Ext.theme.generateSlicerManifest(); + }, + + generateSlicerManifest: function() { + var now = new Date().getTime(), + me = Ext.theme, + // This function is defined by slicer.js (the framework-independent piece) + gsm = window && window['generateSlicerManifest'], + delta; + + me.generateStart = me.generateStart || now; + delta = now - me.generateStart; + + if(gsm) { + gsm(); + } else if(delta < (10 * 1000)){ + // allow the outer script wrapper a chance to inject the capture function + // but stop trying after 10 seconds + Ext.defer(Ext.theme.generateSlicerManifest, 100); + } + }, + + /** + * Sets the `data-slicer` attribute to the JSON-encoded value of the provided data. + * @private + */ + setData: function (el, data) { + if (data) { + var json = Ext.encode(data); + if (json !== '{}') { + el.setAttribute('data-slicer', json); + } + } + }, + + /** + * This used to be `loadExtStylesheet`. + * @private + */ + loadCss: function (src, callback) { + var xhr = new XMLHttpRequest(); + + xhr.open('GET', src); + + xhr.onload = function() { + var css = xhr.responseText, + head = document.getElementsByTagName('head')[0], + style = document.createElement('style'); + + // There's bugginess in the next gradient syntax in WebKit r84622 + // This might be fixed in a later WebKit, but for now we're going to + // strip it out here since compass generates it. + // + // TODO: Upgrade to later WebKit revision + css = css.replace(/background(-image)?: ?-webkit-linear-gradient(?:.*?);/g, ''); + + style.type = 'text/css'; + style.innerText = css; + + head.appendChild(style); + callback(); + }; + + xhr.send(null); + } +}); + +console.log("registering ready listener..."); +Ext.onReady(Ext.theme.run, Ext.theme); diff --git a/packages/local/rambox-dark-theme/sass/example/theme.html b/packages/local/rambox-dark-theme/sass/example/theme.html new file mode 100644 index 00000000..9219cba2 --- /dev/null +++ b/packages/local/rambox-dark-theme/sass/example/theme.html @@ -0,0 +1,38 @@ + + + + + Ext JS Theme Harness + + + + + + + + + + + diff --git a/packages/local/rambox-dark-theme/sass/src/LoadMask.scss b/packages/local/rambox-dark-theme/sass/src/LoadMask.scss new file mode 100644 index 00000000..b841ac77 --- /dev/null +++ b/packages/local/rambox-dark-theme/sass/src/LoadMask.scss @@ -0,0 +1,14 @@ +.bottomMask { + bottom: 0; + height: 32px; + position: fixed; + top: auto !important; + left: 0 !important; + width: 120px; + .x-mask-msg-text { + padding: 0 0 0 24px; + background-image: url(images/loadmask/loading.gif); + background-repeat: no-repeat; + background-position: 0 0; + } +} diff --git a/packages/local/rambox-dark-theme/sass/src/Readme.md b/packages/local/rambox-dark-theme/sass/src/Readme.md new file mode 100644 index 00000000..55c711a6 --- /dev/null +++ b/packages/local/rambox-dark-theme/sass/src/Readme.md @@ -0,0 +1,4 @@ +# rambox-default-theme/sass/src + +This folder contains SASS sources that mimic the component-class hierarchy. These files +are gathered in to a build of the CSS based on classes that are used by the build. diff --git a/packages/local/rambox-dark-theme/sass/src/button/Button.scss b/packages/local/rambox-dark-theme/sass/src/button/Button.scss new file mode 100644 index 00000000..52344945 --- /dev/null +++ b/packages/local/rambox-dark-theme/sass/src/button/Button.scss @@ -0,0 +1,13 @@ +/* + * Aplica estilo decline a botones + */ +@include extjs-button-small-ui( + $ui: 'decline', + $background-color: transparent, + $background-color-over: transparent, + $background-color-pressed: transparent, + $color: $base-color +); +.x-btn-inner-decline-small:hover{ + text-decoration: underline; +} diff --git a/packages/local/rambox-dark-theme/sass/src/grid/column/Action.scss b/packages/local/rambox-dark-theme/sass/src/grid/column/Action.scss new file mode 100644 index 00000000..2bf1fade --- /dev/null +++ b/packages/local/rambox-dark-theme/sass/src/grid/column/Action.scss @@ -0,0 +1,3 @@ +.x-action-col-glyph { + color: lighten($base-color, 20%); +} diff --git a/packages/local/rambox-dark-theme/sass/src/grid/column/Check.scss b/packages/local/rambox-dark-theme/sass/src/grid/column/Check.scss new file mode 100644 index 00000000..234f8df0 --- /dev/null +++ b/packages/local/rambox-dark-theme/sass/src/grid/column/Check.scss @@ -0,0 +1,3 @@ +#ramboxTab .x-grid-cell-inner-checkcolumn { + padding: 13px 10px 14px 10px !important; +} diff --git a/packages/local/rambox-dark-theme/sass/src/panel/Tool.scss b/packages/local/rambox-dark-theme/sass/src/panel/Tool.scss new file mode 100644 index 00000000..a0a69b7f --- /dev/null +++ b/packages/local/rambox-dark-theme/sass/src/panel/Tool.scss @@ -0,0 +1,4 @@ +.x-btn-icon-el-default-small.x-btn-glyph { + cursor: pointer; + color: #2E658E; +} diff --git a/packages/local/rambox-dark-theme/sass/src/tab/Bar.scss b/packages/local/rambox-dark-theme/sass/src/tab/Bar.scss new file mode 100644 index 00000000..36ac5539 --- /dev/null +++ b/packages/local/rambox-dark-theme/sass/src/tab/Bar.scss @@ -0,0 +1,11 @@ +.x-tab-bar-top { + .x-tab-bar-body { + background-color: $base-color; + padding: 8px 0 0 0 !important; + } + .x-tab-bar-strip { + position: relative !important; + margin-top: -10px; + background-color: $tab-base-color-active + } +} diff --git a/packages/local/rambox-dark-theme/sass/src/toolbar/Toolbar.scss b/packages/local/rambox-dark-theme/sass/src/toolbar/Toolbar.scss new file mode 100644 index 00000000..c14c136d --- /dev/null +++ b/packages/local/rambox-dark-theme/sass/src/toolbar/Toolbar.scss @@ -0,0 +1,18 @@ +/* + * Aplica estilo a la barra de login + */ +@include extjs-toolbar-ui( + $ui: 'main', + $background-color: $base-color +); + +@include extjs-toolbar-ui( + $ui: 'newversion', + $background-color: #31B96E +); + +.x-toolbar-newversion { + label { + color: #1B1112; + } +} diff --git a/packages/local/rambox-dark-theme/sass/var/Readme.md b/packages/local/rambox-dark-theme/sass/var/Readme.md new file mode 100644 index 00000000..649c6030 --- /dev/null +++ b/packages/local/rambox-dark-theme/sass/var/Readme.md @@ -0,0 +1,3 @@ +# rambox-default-theme/sass/var + +This folder contains variable declaration files named by their component class. diff --git a/packages/local/rambox-dark-theme/sass/var/button/Button.scss b/packages/local/rambox-dark-theme/sass/var/button/Button.scss new file mode 100644 index 00000000..d856ac15 --- /dev/null +++ b/packages/local/rambox-dark-theme/sass/var/button/Button.scss @@ -0,0 +1,5 @@ + +$button-toolbar-inner-border-color: none; +$button-toolbar-inner-border-color-focus: none; +$button-toolbar-inner-border-color-focus-over: none; +$button-toolbar-inner-border-color-focus-pressed: none; diff --git a/packages/local/rambox-dark-theme/sass/var/tab/Bar.scss b/packages/local/rambox-dark-theme/sass/var/tab/Bar.scss new file mode 100644 index 00000000..2062895d --- /dev/null +++ b/packages/local/rambox-dark-theme/sass/var/tab/Bar.scss @@ -0,0 +1,2 @@ +$tabbar-strip-background-color: $base-color; +$tabbar-strip-height: 3px; diff --git a/packages/local/rambox-dark-theme/sass/var/tab/Tab.scss b/packages/local/rambox-dark-theme/sass/var/tab/Tab.scss new file mode 100644 index 00000000..56369c2b --- /dev/null +++ b/packages/local/rambox-dark-theme/sass/var/tab/Tab.scss @@ -0,0 +1,18 @@ +$tab-base-color: #30414F; +$tab-base-color-active: #4B6375; +$tab-icon-width: 24px; +$tab-icon-height: 24px; +$tab-padding: 13px; +$tab-border-width: 0px; +$tab-border-width-active: 0px; +$tab-border-width-focus: 0px; +$tab-border-width-focus-over: 0px; +$tab-inner-border-width: 0px; +$tab-inner-border-width-active: 0px; +$tab-inner-border-width-focus: 0px; +$tab-inner-border-width-focus-active: 0px; +$tab-inner-border-width-focus-over: 0px; +$tab-border-radius: 4px 4px 0 0; +$tab-color: #FFF; +$tab-color-active: #FFF; +$tab-font-size: 18px; diff --git a/packages/local/rambox-dark-theme/src/Readme.md b/packages/local/rambox-dark-theme/src/Readme.md new file mode 100644 index 00000000..b8828534 --- /dev/null +++ b/packages/local/rambox-dark-theme/src/Readme.md @@ -0,0 +1,4 @@ +# rambox-default-theme/src + +This folder contains source code that will automatically be added to the classpath when +the package is used.