diff --git a/.babelrc b/.babelrc index 203e65d1..d47d462d 100644 --- a/.babelrc +++ b/.babelrc @@ -1,15 +1,18 @@ { "presets": [ - ["env", { - "targets": { - "browsers": ["last 2 versions", "ie >= 9"] + [ + "env", + { + "targets": { + "browsers": ["last 2 versions", "ie >= 9"] + } } - }], + ], "stage-3" ], "env": { "test": { "plugins": ["babel-plugin-rewire"] - }, + } } } diff --git a/.eslintignore b/.eslintignore index ec9ea4f0..0ee30a26 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,4 +1,4 @@ coverage/ dist/ -docs/ +docs/dist dist-es5-module/ diff --git a/.eslintrc.js b/.eslintrc.js index b21974c7..51accd56 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,3 +1,13 @@ +/* eslint-disable import/no-commonjs */ module.exports = { - extends: ['algolia/jest'], + extends: ['algolia', 'algolia/jest'], + globals: { + docsearch: true, + Glide: true, + Popper: true + }, + rules: { + 'no-console': 0, + 'no-unused-vars': ['error', { argsIgnorePattern: '^_' }], + }, }; diff --git a/docs/source/assets/images/bootstrap-docsearch.gif b/.github/demo.gif similarity index 100% rename from docs/source/assets/images/bootstrap-docsearch.gif rename to .github/demo.gif diff --git a/.github/docsearch-logo.svg b/.github/docsearch-logo.svg new file mode 100644 index 00000000..d31cfb9c --- /dev/null +++ b/.github/docsearch-logo.svg @@ -0,0 +1,33 @@ + + + + docsearch-logo + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/.gitignore b/.gitignore index 92d88c4f..321855d5 100644 --- a/.gitignore +++ b/.gitignore @@ -5,8 +5,6 @@ dist/ .idea/ npm-debug.log* yarn-error.log -docs/_site -docs/build -docs/.sass-cache/ dist-es5-module/ yarn.lock +tmp diff --git a/.ruby-version b/.ruby-version deleted file mode 100644 index 2bf1c1cc..00000000 --- a/.ruby-version +++ /dev/null @@ -1 +0,0 @@ -2.3.1 diff --git a/.travis.yml b/.travis.yml index 96261042..3727e331 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,18 +1,6 @@ language: node_js -before_install: -- git config --global user.email "algobot@users.noreply.github.com" -- git config --global user.name "algobot" -- rvm install 2.4.2 -- rvm use 2.4.2 -script: "./scripts/test-ci" +script: "./scripts/test" sudo: false branches: only: - master -cache: - bundler: true -# before_cache: -# - rm -f ./node_modules/.bin/which -env: - global: - secure: TDLpvycpMbbXpwSKLLeDBZdpi05rbZEbPcII9LSglUG9teF/zrqxRMl+Eivvho8IkeJRDQVwdc8EbYCzZ9cAwRHOyqzDNwRFhlpKVwz+fl5uHfxDo5DANsut6F+l/RrBf4n2MWKkJlbo4kq8mUqL89vcPqfRTLpx62FawywDgiJc2s+ixR1lkm5GNlF74ovoUkeOXiLi605LE0sN7H/1TRdD6WOJTBT2yoiuDU3U/RUKJxka6Sz4u9kqUQpn+kJUIPiBiasbz65qglnrxpBL/mYgAEZfRcbVyC5zd+CeFSIlIiGdhMFoVInNMqshq7gl/UWcJyxdnGIIfhO3l/Y/lyEXQQknEZS4M2h7UKeCuu0E1hh7eT7kVVyXDW+nCUNVYPTuupvLwcpnXw02Flef72OpDy6bl19NEdH79lNK4l440GJb+Lhda2M2mMZJmRkg31j9HFjl0wCYqRopzNTKNBFJAPTB4rG6H/y7NgPFjrATphEDLZgq73eNDxtRNBQHtLqGl8IsaFHU4+8vAQ2iEbi5+R/D5Rua2BXSbYAdQjxnvmPojQ7voZgj+w5GHx2573plCvqO4pZvV/u5/Z18tEYIV+4LFC7KR+30Snbk0JAbRogQr6P4mkVrKG/7pAcGS5tpxhMY3OUNaJWdDP8NE1c3/0Q2pKqdB0RauGoUO2w= diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4995b68e..3abfc5ed 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,25 +4,27 @@ Hi (future) collaborator! **Table of Contents** -- [Where to start?](#where-to-start) -- [Development workflow](#development-workflow) - - [Requirements](#requirements) - - [Launch](#launch) - - [Local build](#local-build) -- [Commit message guidelines](#commit-message-guidelines) - - [Revert](#revert) - - [Type](#type) - - [Scope](#scope) - - [Subject](#subject) - - [Body](#body) - - [Footer](#footer) -- [Releasing](#releasing) +- [Where to start?][1] +- [Development workflow][2] + - [Requirements][3] + - [Launch][4] + - [Local build][5] +- [Commit message guidelines][6] + - [Revert][7] + - [Type][8] + - [Scope][9] + - [Subject][10] + - [Body][11] + - [Footer][12] +- [Releasing][13] # Where to start? -Have a fix or a new feature? [Search for corresponding issues](https://github.com/algolia/docsearch/issues) first then create a new one. +Have a fix or a new feature? [Search for corresponding +issues][14] first then create a new +one. # Development workflow @@ -30,101 +32,51 @@ Have a fix or a new feature? [Search for corresponding issues](https://github.co To run this project, you will need: -- Node.js >= v8.7.0, use nvm - [install instructions](https://github.com/creationix/nvm#install-script) -- [Ruby](https://www.ruby-lang.org/en/) -- [Bundler](http://bundler.io/) +- Node.js >= v8.7.0, use nvm - [install + instructions][15] -## Launch +## Build -```sh -npm install -npm run dev:docs -``` +`yarn run build` will build all files in `./dist`. This includes regular and +minified files for ` - -``` - -You can also install docsearch via `npm`: - -```sh -npm install --save docsearch.js -``` - -## Customization - -### Attribution - -We're happy to provide DocSearch free of charge for your site, and you're -welcome to customise that experience in a way that works for you; all we ask is -that Algolia be attributed within the search context. For example, in the -default implementation, we place a small "Search by Algolia" logo in the -corner. If you prefer to roll your own UX, you'll need to make sure that this -logo is included in your implementation as well. - -### Default styling - -The default colorscheme is white and gray: - -![Default colorscheme][17] - -To update the colors to suit your website, you just need to override a few -colors. Here is an example of a CSS file that you can use as a basis to -set white and purple colors. - -```css -/* Bottom border of each suggestion */ -.algolia-docsearch-suggestion { - border-bottom-color: #3A3DD1; -} -/* Main category headers */ -.algolia-docsearch-suggestion--category-header { - background-color: #4B54DE; -} -/* Highlighted search terms */ -.algolia-docsearch-suggestion--highlight { - color: #3A33D1; -} -/* Highlighted search terms in the main category headers */ -.algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--highlight { - background-color: #4D47D5; -} -/* Currently selected suggestion */ -.aa-cursor .algolia-docsearch-suggestion--content { - color: #272296; -} -.aa-cursor .algolia-docsearch-suggestion { - background: #EBEBFB; -} - -/* For bigger screens, when displaying results in two columns */ -@media (min-width: 768px) { - /* Bottom border of each suggestion */ - .algolia-docsearch-suggestion { - border-bottom-color: #7671df; - } - /* Left column, with secondary category header */ - .algolia-docsearch-suggestion--subcategory-column { - border-right-color: #7671df; - background-color: #F2F2FF; - color: #4E4726; - } -} -``` - -### Advanced styling - -If you want to do heavy changes to the way results are displayed, you might find -it easier to directly edit the `scss` files in this repository. - -[`_variables.scss`][18] -contains all the color, breakpoints and size definitions while -[`main.scss`][19] -holds the structure of the display. - -You can regenerate the whole final `css` file from those `scss` files by running -`npm run build:css`. The resulting files will be found in `./dist/cdn/`. - -All you have to do now is change the `link` tag that was loading the default -styling from our CDN, to one that is loading your newly compiled file. - - -## Custom options - -DocSearch is a wrapper around the [autocomplete.js][20] library that gets its -results from the Algolia API. As such, you can use any options provided by -[autocomplete.js][21] and by the Algolia API. - -### Autocomplete options - -You can pass any options to the underlying `autocomplete` instance through -the`autocompleteOptions` parameter. You will find all `autocomplete` options in -its [own documentation][22]. - -You can also listen to `autocomplete` events through the `.autocomplete` -property of the `docsearch` instance. - -```javascript -var search = docsearch({ - apiKey: '', - indexName: '', - inputSelector: '', - debug: true, - autocompleteOptions: { - // See https://github.com/algolia/autocomplete.js#options - // For full list of options - } -}); - -// See https://github.com/algolia/autocomplete.js#custom-events -// For full list of events -search.autocomplete.on('autocomplete:opened', function(e) { - // Do something when the dropdown menu is opened -}); -``` - -### Docsearch Options - - -#### handleSelected - -We already bind the autocomplete:selected event inside the docsearch. -If you want to replace the default behavior you can pass the `handleSelected` option. - -```javascript -var search = docsearch({ - apiKey: '', - indexName: '', - inputSelector: '', - handleSelected: function (input, event, suggestion) { - } -}); -``` - -#### queryHook - -If you want modify the query before it is send to Algolia you can pass the `queryHook` option. - -```javascript -var search = docsearch({ - apiKey: '', - indexName: '', - inputSelector: '', - queryHook: function (query) { - return query + "_modified"; - } -}); -``` - -#### transformData - -If you want to modify the hits before displaying them you can make use of the -`transformData` option - -``` -var search = docsearch({ - apiKey: '', - indexName: '', - inputSelector: '', - transformData: function (hits) { - // modify hits - return hits; - } -}); -``` - -### Algolia options - -You can also pass any specific option to the Algolia API to change the way -records are returned. You can pass any options to the Algolia API through -the `algoliaOptions` parameter. - -```javascript -docsearch({ - appId: '', // if you are running the crawler yourself - apiKey: '', - indexName: '', - inputSelector: '', - algoliaOptions: { - hitsPerPage: 10 - } -}); -``` - -You will find all Algolia API options in its [own documentation][23]. - - - -## Contributions and development workflow - -See [CONTRIBUTING](./CONTRIBUTING.md) - - - -[1]: https://community.algolia.com/docsearch/ +[1]: ./.github/docsearch-logo.svg [2]: https://img.shields.io/npm/v/docsearch.js.svg?style=flat-square [3]: https://img.shields.io/travis/algolia/docsearch/master.svg?style=flat-square [4]: https://img.shields.io/coveralls/algolia/docsearch/master.svg?style=flat-square -[5]: http://img.shields.io/badge/license-MIT-green.svg?style=flat-square +[5]: https://img.shields.io/badge/license-MIT-green.svg?style=flat-square [6]: https://img.shields.io/npm/dm/docsearch.js.svg?style=flat-square -[7]: ./docs/source/assets/images/bootstrap-docsearch.gif -[8]: #introduction -[9]: #setup -[10]: #customization -[11]: #development-workflow -[12]: #local-example -[13]: #local-build -[14]: #documentation-website -[15]: #macos -[16]: https://community.algolia.com/docsearch/ -[17]: https://community.algolia.com/docsearch/assets/images/default-colorscheme.png -[18]: https://github.com/algolia/docsearch/blob/master/src/styles/_variables.scss -[19]: https://github.com/algolia/docsearch/blob/master/src/styles/main.scss -[20]: https://github.com/algolia/autocomplete.js -[21]: https://github.com/algolia/autocomplete.js -[22]: https://github.com/algolia/autocomplete.js#options -[23]: https://www.algolia.com/doc/api-reference/api-parameters/ -[24]: https://nodejs.org/en/ -[25]: https://jekyllrb.com/ -[26]: https://www.ruby-lang.org/en/ -[27]: http://bundler.io/ -[28]: https://github.com/algolia/docsearch-scraper -[29]: https://community.algolia.com/docsearch/documentation/docsearch/introduction/ - - +[7]: https://data.jsdelivr.com/v1/package/npm/docsearch.js/badge +[8]: https://community.algolia.com/docsearch/ +[9]: ./.github/demo.gif +[10]: https://github.com/algolia/docsearch +[11]: https://github.com/algolia/docsearch-configs +[12]: https://github.com/algolia/docsearch-scraper diff --git a/dev/app.js b/dev/app.js deleted file mode 100644 index dc00865c..00000000 --- a/dev/app.js +++ /dev/null @@ -1,11 +0,0 @@ -// eslint-disable-next-line import/no-commonjs -const docsearch = require('../index.js'); - -docsearch({ - apiKey: 'e3d767b736584dbe6d4c35f7cf7d4633', - indexName: 'react-native', - inputSelector: '#search-input', - debug: true, -}); - -document.getElementById('search-input').focus(); diff --git a/dev/docsearch.css b/dev/docsearch.css deleted file mode 120000 index ed139d05..00000000 --- a/dev/docsearch.css +++ /dev/null @@ -1 +0,0 @@ -../dist/cdn/docsearch.css \ No newline at end of file diff --git a/dev/docsearch.min.css b/dev/docsearch.min.css deleted file mode 120000 index 1491e082..00000000 --- a/dev/docsearch.min.css +++ /dev/null @@ -1 +0,0 @@ -../dist/cdn/docsearch.min.css \ No newline at end of file diff --git a/dev/index.html b/dev/index.html deleted file mode 100644 index 81c695bc..00000000 --- a/dev/index.html +++ /dev/null @@ -1,227 +0,0 @@ - - - - - - Documentation - - - - - - - - - - - -
- - - - -
-
- -
-

Getting Started

-

- Below you'll find tutorials that will teach you how to use Stripe, and reference documentation for all the moving parts. -

-
- -
- - - -
- -
-
-
- - -
-
-

Questions?

-

We're always happy to help with code or other questions you might have! Check out our answers to common questions or chat live with other developers in #stripe on freenode.

- -
-
-
- -
- - - -
- - - - - diff --git a/dev/stripe.css b/dev/stripe.css deleted file mode 100644 index 6018c16d..00000000 --- a/dev/stripe.css +++ /dev/null @@ -1 +0,0 @@ -body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}address,caption,cite,code,dfn,em,strong,th,var,optgroup{font-style:inherit;font-weight:inherit}del,ins{text-decoration:none}li{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}q:before,q:after{content:''}abbr,acronym{border:0;font-variant:normal}sup{vertical-align:baseline}sub{vertical-align:baseline}legend{color:#000}input,button,textarea,select,optgroup,option{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit}input,button,textarea,select{*font-size:100%}article,aside,dialog,figure,footer,header,hgroup,menu,nav,section{display:block}iframe{position:absolute}html{background:transparent;background:-webkit-linear-gradient(rgba(255,255,255,0.3),rgba(255,255,255,0));background:-moz-linear-gradient(rgba(255,255,255,0.3),rgba(255,255,255,0));background:-ms-linear-gradient(rgba(255,255,255,0.3),rgba(255,255,255,0));background:-o-linear-gradient(rgba(255,255,255,0.3),rgba(255,255,255,0));background:linear-gradient(rgba(255,255,255,0.3),rgba(255,255,255,0));background-color:#e8ebef;background-repeat:no-repeat;font-family:Arial,sans-serif;height:100%}html#no-background{background:0}body{min-height:100%}@media screen and (-webkit-min-device-pixel-ratio:0){html{font-family:"HelveticaNeue",Helvetica,Arial,sans-serif}}a{color:#008cdd;text-decoration:none;cursor:pointer}a:hover{color:#222;text-decoration:underline}a:hover span.arrow{color:#222;text-decoration:underline}a:hover span.arrow:after{background-position:-23px 50% !important}a:hover.arrow:after{background-position:-23px 50% !important}a.arrow,span.arrow{position:relative;padding-right:9px}a.arrow:after,span.arrow:after{pointer-events:none;content:" ";display:block;position:absolute;right:1px;top:0;height:100%;width:3px;background:url(https://stripe.com/img/anchor-arrow-solid.png) 0 50% no-repeat}span.arrow{color:#008cdd}a.red{color:red}a.red:hover{color:#333}div#background{display:none}div#header{height:70px;position:relative;-webkit-font-smoothing:antialiased}div#header h1{text-indent:-999em;float:left;margin:20px 0 0 -1px;width:72px;height:31px}div#header h1 a{background:url(https://stripe.com/img/logo.png?2) no-repeat;display:block;height:31px;-webkit-transition:opacity 200ms ease,-webkit-transform 0 ease;-moz-transition:opacity 200ms ease,-moz-transform 0 ease;-o-transition:opacity 200ms ease,-o-transform 0 ease;transition:opacity 200ms ease,transform 0 ease}div#header h1 a:hover{opacity:.75}div.navigation{padding-top:24px;position:relative}div.navigation div.signin{float:right}div.navigation div.signin a{font-size:12px;text-decoration:none;padding:1px;height:26px;display:block;position:relative;top:-3px;margin-left:4px;background:#adb2bb;background:transparent;background:-webkit-linear-gradient(#ccd0d6,#adb2bb);background:-moz-linear-gradient(#ccd0d6,#adb2bb);background:-ms-linear-gradient(#ccd0d6,#adb2bb);background:-o-linear-gradient(#ccd0d6,#adb2bb);background:linear-gradient(#ccd0d6,#adb2bb);-webkit-border-radius:14px;-moz-border-radius:14px;-ms-border-radius:14px;-o-border-radius:14px;border-radius:14px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.05);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.05);-ms-box-shadow:0 1px 0 rgba(0,0,0,0.05);-o-box-shadow:0 1px 0 rgba(0,0,0,0.05);box-shadow:0 1px 0 rgba(0,0,0,0.05);-webkit-transition:-webkit-box-shadow .1s ease-in-out;-moz-transition:-moz-box-shadow .1s ease}div.navigation div.signin span{display:block;background:#fafbfc;padding:5px 17px;height:16px;line-height:16px;font-weight:bold;color:#333;text-shadow:0 1px 0 #fff;background:#f6f9fc;background:transparent;background:-webkit-linear-gradient(white,#eff1f4);background:-moz-linear-gradient(white,#eff1f4);background:-ms-linear-gradient(white,#eff1f4);background:-o-linear-gradient(white,#eff1f4);background:linear-gradient(white,#eff1f4);-webkit-box-shadow:inset 0 1px 0 white;-moz-box-shadow:inset 0 1px 0 white;-ms-box-shadow:inset 0 1px 0 white;-o-box-shadow:inset 0 1px 0 white;box-shadow:inset 0 1px 0 white;-webkit-border-radius:13px;-moz-border-radius:13px;-ms-border-radius:13px;-o-border-radius:13px;border-radius:13px}div.navigation div.signin a:hover{background:#008cdd;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.05),0 0 4px #28a0e5;-moz-box-shadow:0 1px 0 rgba(0,0,0,0.05),0 0 4px #28a0e5;-ms-box-shadow:0 1px 0 rgba(0,0,0,0.05),0 0 4px #28a0e5;-o-box-shadow:0 1px 0 rgba(0,0,0,0.05),0 0 4px #28a0e5;box-shadow:0 1px 0 rgba(0,0,0,0.05),0 0 4px #28a0e5}div.navigation div.signin a:active{background:#008cdd;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.05),0 0 4px #28a0e5;-moz-box-shadow:0 1px 0 rgba(0,0,0,0.05),0 0 4px #28a0e5;-ms-box-shadow:0 1px 0 rgba(0,0,0,0.05),0 0 4px #28a0e5;-o-box-shadow:0 1px 0 rgba(0,0,0,0.05),0 0 4px #28a0e5;box-shadow:0 1px 0 rgba(0,0,0,0.05),0 0 4px #28a0e5}div.navigation div.signin a:active span{color:#444;background:transparent;background:-webkit-linear-gradient(#e6e8eb,#eff1f4);background:-moz-linear-gradient(#e6e8eb,#eff1f4);background:-ms-linear-gradient(#e6e8eb,#eff1f4);background:-o-linear-gradient(#e6e8eb,#eff1f4);background:linear-gradient(#e6e8eb,#eff1f4);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1);-ms-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1);-o-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1);box-shadow:inset 0 1px 0 rgba(0,0,0,0.1)}div.navigation ul.global{float:right;margin-right:12px;position:relative;padding:2px 6px}div.navigation ul.global::before,div.navigation ul.global::after{content:"";position:absolute;width:1px;top:-1px;bottom:-2px;background-repeat:no-repeat;background-size:1px 100%}div.navigation ul.global::before{right:1px;background-image:-webkit-linear-gradient(rgba(181,188,202,0),rgba(181,188,202,0.75) 30%,rgba(181,188,202,0.75) 70%,rgba(181,188,202,0));background-image:-moz-linear-gradient(rgba(181,188,202,0),rgba(181,188,202,0.75) 30%,rgba(181,188,202,0.75) 70%,rgba(181,188,202,0));background-image:-o-linear-gradient(rgba(181,188,202,0),rgba(181,188,202,0.75) 30%,rgba(181,188,202,0.75) 70%,rgba(181,188,202,0));background-image:-ms-linear-gradient(rgba(181,188,202,0),rgba(181,188,202,0.75) 30%,rgba(181,188,202,0.75) 70%,rgba(181,188,202,0));background-image:linear-gradient(rgba(181,188,202,0),rgba(181,188,202,0.75) 30%,rgba(181,188,202,0.75) 70%,rgba(181,188,202,0))}div.navigation ul.global::after{right:0;background-image:-webkit-linear-gradient(rgba(255,255,255,0),rgba(255,255,255,0.6) 50%,rgba(255,255,255,0));background-image:-moz-linear-gradient(rgba(255,255,255,0),rgba(255,255,255,0.6) 50%,rgba(255,255,255,0));background-image:-o-linear-gradient(rgba(255,255,255,0),rgba(255,255,255,0.6) 50%,rgba(255,255,255,0));background-image:-ms-linear-gradient(rgba(255,255,255,0),rgba(255,255,255,0.6) 50%,rgba(255,255,255,0));background-image:linear-gradient(rgba(255,255,255,0),rgba(255,255,255,0.6) 50%,rgba(255,255,255,0))}div.navigation ul.global li{display:block;float:left;padding:0 2px}div.navigation ul.global a{display:block;font-size:11px;color:#595f69;padding:3px 10px;text-shadow:0 1px 0 white;text-decoration:none;-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;-o-border-radius:10px;border-radius:10px;-webkit-transition:color 150ms ease}div.navigation ul.global a:not(.selected):hover{color:#000;text-shadow:none}div.navigation ul.global a.selected{text-shadow:0 1px 0 rgba(255,255,255,0.5);background:transparent;background:-webkit-linear-gradient(rgba(168,176,188,0.4),rgba(168,176,188,0.15));background:-moz-linear-gradient(rgba(168,176,188,0.4),rgba(168,176,188,0.15));background:-ms-linear-gradient(rgba(168,176,188,0.4),rgba(168,176,188,0.15));background:-o-linear-gradient(rgba(168,176,188,0.4),rgba(168,176,188,0.15));background:linear-gradient(rgba(168,176,188,0.4),rgba(168,176,188,0.15));box-shadow:inset 0 0 1px rgba(114,125,150,0.4),inset 0 1px 0 rgba(114,125,150,0.4),0 1px 0 rgba(255,255,255,0.7)}div.event-catcher{position:absolute;width:100%;height:100%;top:0;z-index:150}div#header div.account-dropdown-view{color:#555;margin:3px -22px 0 0;float:right;width:143px;position:relative;height:17px}div#header div.account-dropdown-view a.account{font-size:11px;line-height:16px;color:#555;position:absolute;z-index:145;display:block;padding:11px 0 0 14px;height:28px;width:121px;margin:-11px 0 -0 -10px;text-shadow:0 1px 0 rgba(255,255,255,0.5);top:0;text-decoration:none;background:url(https://stripe.com/img/merch/header/arrow.png) 116px 17px no-repeat;-webkit-border-radius:6px;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;border-radius:6px}.account-dropdown-view a{cursor:pointer;-webkit-touch-callout:none;-moz-user-select:-moz-none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.account-dropdown-view a img{-moz-user-drag:-moz-none;-webkit-user-drag:none;user-drag:none}div#header div.account-dropdown-view.shown a.account{background-color:#fff;opacity:.5;color:#000}div#header div.account-dropdown-view a.account:hover{color:#000}div#header div.account-dropdown-view a.account:active{top:1px;height:27px}div#header div.account-dropdown-view em{display:block;float:left;margin-right:10px;z-index:100;position:relative;width:16px;height:16px;background-size:16px 16px;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px}div#header div.account-dropdown-view img{opacity:.0}div#header div.submenu{background:#fff;position:absolute;top:-12px;left:-20px;z-index:140;width:135px;display:none;margin-left:10px;padding:40px 0 5px;-webkit-border-radius:6px;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 2px 8px rgba(0,0,0,0.45);-moz-box-shadow:0 2px 8px rgba(0,0,0,0.45);-ms-box-shadow:0 2px 8px rgba(0,0,0,0.45);-o-box-shadow:0 2px 8px rgba(0,0,0,0.45);box-shadow:0 2px 8px rgba(0,0,0,0.45)}div#header div.account-dropdown-view.shown div.submenu{display:block !important}div#header div.account-dropdown-view ul{font-size:11px;border-top:1px solid #e8e8e8;padding-top:4px}div#header div.account-dropdown-view li div.divider{margin:4px 8px;height:1px;background:#eee}div#header div.account-dropdown-view li a{display:block;padding:6px 15px;color:#333;font-family:arial;font-weight:bold;border-top:1px solid transparent;border-bottom:1px solid transparent}div#header div.account-dropdown-view li a:hover,div#header div.account-dropdown-view li a.selected{background:#155fb0;border-top-color:#558ed1;border-bottom-color:#155fb0;background:transparent;background:-webkit-linear-gradient(#77b7ff,#017aff);background:-moz-linear-gradient(#77b7ff,#017aff);background:-ms-linear-gradient(#77b7ff,#017aff);background:-o-linear-gradient(#77b7ff,#017aff);background:linear-gradient(#77b7ff,#017aff);-webkit-box-shadow:inset 0 1px 0 #98c9ff;-moz-box-shadow:inset 0 1px 0 #98c9ff;-ms-box-shadow:inset 0 1px 0 #98c9ff;-o-box-shadow:inset 0 1px 0 #98c9ff;box-shadow:inset 0 1px 0 #98c9ff;background:#008cdd;border-top-color:#28a0e5;border-bottom-color:#015e94;background:transparent;background:-webkit-linear-gradient(#7dc5ee,#008cdd);background:-moz-linear-gradient(#7dc5ee,#008cdd);background:-ms-linear-gradient(#7dc5ee,#008cdd);background:-o-linear-gradient(#7dc5ee,#008cdd);background:linear-gradient(#7dc5ee,#008cdd);-webkit-box-shadow:inset 0 1px 1px rgba(255,255,255,0.25);-moz-box-shadow:inset 0 1px 1px rgba(255,255,255,0.25);-ms-box-shadow:inset 0 1px 1px rgba(255,255,255,0.25);-o-box-shadow:inset 0 1px 1px rgba(255,255,255,0.25);box-shadow:inset 0 1px 1px rgba(255,255,255,0.25);color:#fff;text-shadow:0 -1px rgba(0,0,0,0.2);text-decoration:none}div#header div.account-dropdown-view ul.child li a{padding-left:30px}div#header div.account-dropdown-view ul.child li a{color:#777;font-weight:normal}div#header div.account-dropdown-view ul.child li a:hover{color:#fff}div#header div.account-dropdown-view li a:active,div#header div.account-dropdown-view ul.child li a:active{color:#eee;-webkit-box-shadow:inset 0 1px 0 #8dbaed;-moz-box-shadow:inset 0 1px 0 #8dbaed;-ms-box-shadow:inset 0 1px 0 #8dbaed;-o-box-shadow:inset 0 1px 0 #8dbaed;box-shadow:inset 0 1px 0 #8dbaed;background:transparent;background:-webkit-linear-gradient(#69a5ed,#106ded);background:-moz-linear-gradient(#69a5ed,#106ded);background:-ms-linear-gradient(#69a5ed,#106ded);background:-o-linear-gradient(#69a5ed,#106ded);background:linear-gradient(#69a5ed,#106ded)}div#footer{-webkit-font-smoothing:subpixel-antialiased;margin:0;padding:30px 0 100px;position:relative;font-size:12px;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-align:left}div#footer a{color:#999;text-decoration:none}div#footer a:hover{color:#222;text-decoration:under}div#footer p{color:#999;display:inline;padding-right:10px;position:absolute;right:0;top:30px}div#footer ul{padding-left:10px;display:inline}div#footer ul li{display:inline;padding-right:7px}div#footer ul.lesser{padding-left:0}div#footer ul.lesser a{color:#aaa}div#footer ul.lesser a:hover{color:#222}div#footer div.country-dropdown-view{position:relative;-webkit-user-select:none;cursor:default}div#footer div.country-dropdown-view a.select{position:relative;top:-5px;left:-1px;cursor:pointer;text-decoration:none;display:block;float:left;margin-right:10px;height:20px;padding:1px;border-right:1px solid #cfd4dc;-webkit-touch-callout:none;-moz-user-select:-moz-none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}div#footer div.country-dropdown-view a.select img{-moz-user-drag:-moz-none;-webkit-user-drag:none;user-drag:none}div#footer div.country-dropdown-view a.select span{position:relative;height:20px;padding-left:30px;padding-right:15px;display:block}div#footer div.country-dropdown-view a.select span img{position:absolute;left:0;top:2px}div#footer div.country-dropdown-view a.select span strong{text-shadow:0 1px 0 #fff;font-size:12px;line-height:20px;position:relative;top:1px}div#footer div.country-dropdown-view div.popover{display:none;position:absolute;z-index:200;width:260px;left:-20px;background:#fff;background:transparent;background:-webkit-linear-gradient(white,#ecf0f4);background:-moz-linear-gradient(white,#ecf0f4);background:-ms-linear-gradient(white,#ecf0f4);background:-o-linear-gradient(white,#ecf0f4);background:linear-gradient(white,#ecf0f4);-webkit-box-shadow:0 0 2px rgba(0,0,0,0.3),0 3px 8px rgba(0,0,0,0.3);-moz-box-shadow:0 0 2px rgba(0,0,0,0.3),0 3px 8px rgba(0,0,0,0.3);-ms-box-shadow:0 0 2px rgba(0,0,0,0.3),0 3px 8px rgba(0,0,0,0.3);-o-box-shadow:0 0 2px rgba(0,0,0,0.3),0 3px 8px rgba(0,0,0,0.3);box-shadow:0 0 2px rgba(0,0,0,0.3),0 3px 8px rgba(0,0,0,0.3);-webkit-border-radius:6px;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;border-radius:6px;text-shadow:0 1px 0 #fff;font-size:14px;opacity:.0;-webkit-transform:scale3d(0,0,1);-moz-transform:scale(0,0)}div#footer div.country-dropdown-view div.popover.show-animation{-webkit-transition:-webkit-transform 400ms cubic-bezier(0.33,1.66,0.66,0.99),opacity 400ms ease;-moz-transition:-moz-transform 400ms cubic-bezier(0.33,1.66,0.66,0.99),opacity 400ms ease}div#footer div.country-dropdown-view div.popover.hide-animation{-webkit-transition:-webkit-transform 400ms ease,opacity 400ms ease;-moz-transition:-moz-transform 400ms ease,opacity 400ms ease}div#footer div.country-dropdown-view div.popover.shown{opacity:1.0;-webkit-transform:scale3d(1,1,1);-moz-transform:scale(1,1)}div#footer div.country-dropdown-view div.popover div.arrow{position:absolute;width:26px;height:17px;left:0;bottom:-17px;background:url(https://stripe.com/img/international/bezel/arrow.png)}div#footer div.country-dropdown-view div.popover h4{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;color:#434c52;font-weight:bold;text-align:center;padding:15px;-webkit-font-smoothing:antialiased;position:relative;font-size:16px}div#footer div.country-dropdown-view div.popover h4::after{content:"";position:absolute;left:15px;right:15px;bottom:-1px;height:1px;background:transparent;background:-webkit-linear-gradient(left,rgba(214,222,226,0),#d6dee2,rgba(214,222,226,0));background:-moz-linear-gradient(left,rgba(214,222,226,0),#d6dee2,rgba(214,222,226,0));background:-ms-linear-gradient(left,rgba(214,222,226,0),#d6dee2,rgba(214,222,226,0));background:-o-linear-gradient(left,rgba(214,222,226,0),#d6dee2,rgba(214,222,226,0));background:linear-gradient(left,rgba(214,222,226,0),#d6dee2,rgba(214,222,226,0))}div#footer div.country-dropdown-view div.popover ul{display:block;padding:15px}div#footer div.country-dropdown-view div.popover li{display:block;padding:0;margin-bottom:3px}div#footer div.country-dropdown-view div.popover li a{color:#5a6770;text-decoration:none;display:block;position:relative;height:25px;line-height:25px;border:1px solid transparent;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;padding-left:38px}div#footer div.country-dropdown-view div.popover li a img{position:absolute;left:7px;top:3px}div#footer div.country-dropdown-view div.popover li a.selected{background-image:url("https://stripe.com/img/international/selected.png");background-size:16px 17px;background-position:204px 50%;background-repeat:no-repeat}@media only screen and (-webkit-min-device-pixel-ratio:2){div#footer div.country-dropdown-view div.popover li a.selected{background-image:url("https://stripe.com/img/international/selected@2x.png")}}div#footer div.country-dropdown-view div.popover li a:hover,div#footer div.country-dropdown-view div.popover li a.hover{background-color:#eceff2;border-color:#d1d6d9}div#footer div.country-dropdown-view div.popover li a:active{background-color:#e4e7eb;border-color:#bac1c6;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.18);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.18);-ms-box-shadow:inset 0 1px 2px rgba(0,0,0,0.18);-o-box-shadow:inset 0 1px 2px rgba(0,0,0,0.18);box-shadow:inset 0 1px 2px rgba(0,0,0,0.18)}div.country-dropdown-overlay{display:none;background:transparent;background:-webkit-linear-gradient(rgba(0,0,0,0.3),rgba(0,0,0,0.3) 60%,rgba(0,0,0,0));background:-moz-linear-gradient(rgba(0,0,0,0.3),rgba(0,0,0,0.3) 60%,rgba(0,0,0,0));background:-ms-linear-gradient(rgba(0,0,0,0.3),rgba(0,0,0,0.3) 60%,rgba(0,0,0,0));background:-o-linear-gradient(rgba(0,0,0,0.3),rgba(0,0,0,0.3) 60%,rgba(0,0,0,0));background:linear-gradient(rgba(0,0,0,0.3),rgba(0,0,0,0.3) 60%,rgba(0,0,0,0));position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;opacity:.0;-webkit-transition:opacity 400ms ease,-webkit-transform 0 ease;-moz-transition:opacity 400ms ease,-moz-transform 0 ease;-o-transition:opacity 400ms ease,-o-transform 0 ease;transition:opacity 400ms ease,transform 0 ease}div.country-dropdown-overlay.shown{opacity:1.0}div.box{position:relative;opacity:1.0;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 0 2px rgba(0,0,0,0.3),0 3px 5px rgba(0,0,0,0.2);-moz-box-shadow:0 0 2px rgba(0,0,0,0.3),0 3px 5px rgba(0,0,0,0.2);-ms-box-shadow:0 0 2px rgba(0,0,0,0.3),0 3px 5px rgba(0,0,0,0.2);-o-box-shadow:0 0 2px rgba(0,0,0,0.3),0 3px 5px rgba(0,0,0,0.2);box-shadow:0 0 2px rgba(0,0,0,0.3),0 3px 5px rgba(0,0,0,0.2)}form.basic{font-size:13px;line-height:19px}form.basic label{color:#555;font-weight:bold}form.basic label abbr{display:none}form.basic input,form.basic textarea{width:184px;padding:7px 7px;border:1px solid #bbb;border-top-color:#999;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.18);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.18);-ms-box-shadow:inset 0 1px 2px rgba(0,0,0,0.18);-o-box-shadow:inset 0 1px 2px rgba(0,0,0,0.18);box-shadow:inset 0 1px 2px rgba(0,0,0,0.18);-webkit-font-smoothing:antialiased}form.basic input:focus,form.basic textarea:focus{outline:0;border:1px solid #5695db;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.18),0 0 5px #5695db;-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.18),0 0 5px #5695db;-ms-box-shadow:inset 0 1px 2px rgba(0,0,0,0.18),0 0 5px #5695db;-o-box-shadow:inset 0 1px 2px rgba(0,0,0,0.18),0 0 5px #5695db;box-shadow:inset 0 1px 2px rgba(0,0,0,0.18),0 0 5px #5695db}form.basic input.disabled,form.basic textarea.disabled{opacity:.5}form.basic textarea{resize:vertical;line-height:20px}form.basic p{margin-bottom:10px}div.standard-content h1{font-size:29px;line-height:36px;margin-bottom:20px;font-weight:bold;color:#222;font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif}div.standard-content h2{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;line-height:32px;padding:6px 0;font-weight:bold;color:#333}div.standard-content h3{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:24px;margin-bottom:6.66667px;color:#333;font-weight:bold}div.standard-content p{font-size:13px;line-height:20px;margin-bottom:20px;color:#333}div.standard-content code{background:#f3f9ff;font-weight:bold}div.standard-content pre{font-size:12px;line-height:20px;margin-bottom:20px;background:#f3f9ff;border:1px solid #cce4ff;padding:17px;overflow:auto;width:603px !important;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px}div.standard-content pre code{font-size:12px;background:0;border:0;font-weight:normal}div.standard-content ul,div.standard-content ol{margin-bottom:20px;color:#333}div.standard-content li{font-size:13px;line-height:20px;margin-left:20px}div.standard-content ul li{list-style-type:disc}div.standard-content ol li{list-style-type:decimal}div.standard-content ul ul li{list-style-type:circle}div.standard-content strong{font-weight:bold}div.standard-content em{font-style:italic}div.box-separator{height:1px;width:940px;margin:0 auto;background:transparent;background:-webkit-linear-gradient(left,rgba(0,0,0,0),rgba(0,0,0,0.1),rgba(0,0,0,0));background:-moz-linear-gradient(left,rgba(0,0,0,0),rgba(0,0,0,0.1),rgba(0,0,0,0));background:-ms-linear-gradient(left,rgba(0,0,0,0),rgba(0,0,0,0.1),rgba(0,0,0,0));background:-o-linear-gradient(left,rgba(0,0,0,0),rgba(0,0,0,0.1),rgba(0,0,0,0));background:linear-gradient(left,rgba(0,0,0,0),rgba(0,0,0,0.1),rgba(0,0,0,0))}div.grid:after,.clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden}div.grid div.part.left{float:left}div.grid div.part.right{float:right}div.grid div.part.half{width:48%}div.grid div.part.half.left{margin-right:1%}div.grid div.part.half.right{margin-left:1%}div.grid div.part.third{width:33%;float:left}div.grid div.part.fourth{width:25%;float:left}div.grid div.part.fifth{width:20%;float:left}div#header,div#introduction,div#action,div#tour,div#notify,div.invite-info,div.box,div#footer{width:940px;margin-left:auto;margin-right:auto}div#action{width:938px}div.invite-info{width:930px}div#header div.signin,div#introduction h1,div#introduction h2,#frontpage a.button,#frontpagebutton.button,div#tour h2,div#js ul h3,div#notify h2,div#notify label,div#notify input,div.invite-info,div#main-navigation,a.pill,div#section div.dashboard-view div.overview h3,div.detail-header h2,div.switch-view label,div#breadcrumbs,div#section div.group div.header,div#section div.bottom-control,div.chart-tooltip-view span,div.plans-list-view div.items-list span.price,div.dashboard-view div.details strong,div#sezction div.dashboard-view h2,div#get-started p,div#info div.tip,#modal h2{-webkit-font-smoothing:antialiased}div#get-started{border-top:1px solid #ebebeb;text-align:center;padding:38px 0;margin:0 60px}div#get-started p{color:#999;font-size:20px;font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif}div#get-started a{margin-left:10px;position:relative;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.36)}div#get-started a span{text-shadow:0 1px 1px rgba(0,0,0,0.53);font-size:14px}button::-moz-focus-inner{border:0;padding:0}a.button,button.button,strong.button,div.button{border:0;-webkit-font-smoothing:antialiased;border:0;padding:1px;display:inline-block;text-decoration:none;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.075);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.075);-ms-box-shadow:0 1px 0 rgba(0,0,0,0.075);-o-box-shadow:0 1px 0 rgba(0,0,0,0.075);box-shadow:0 1px 0 rgba(0,0,0,0.075);-webkit-touch-callout:none;-moz-user-select:-moz-none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}a.button img,button.button img,strong.button img,div.button img{-moz-user-drag:-moz-none;-webkit-user-drag:none;user-drag:none}a.button span,button.button span,strong.button span,div.button span{display:block;font-weight:bold;text-shadow:0 -1px 0 rgba(0,0,0,0.3);-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}a.button:active span,a.button.active span,button.button:active span,button.button.active span,strong.button:active span,strong.button.active span,div.button:active span,div.button.active span{color:#eee}a.button:hover,button.button:hover,strong.button:hover,div.button:hover{cursor:pointer}a.button.disabled,button.button.disabled,strong.button.disabled,div.button.disabled{-webkit-box-shadow:none;-moz-box-shadow:none;-ms-box-shadow:none;-o-box-shadow:none;box-shadow:none}a.button.disabled img,button.button.disabled img,strong.button.disabled img,div.button.disabled img{opacity:.7}a.button.blue,button.button.blue,strong.button.blue,div.button.blue{background:#015e94;background:-webkit-linear-gradient(#28a0e5,#015e94);background:-moz-linear-gradient(#28a0e5,#015e94);background:-ms-linear-gradient(#28a0e5,#015e94);background:-o-linear-gradient(#28a0e5,#015e94);background:linear-gradient(#28a0e5,#015e94)}a.button.blue span,button.button.blue span,strong.button.blue span,div.button.blue span{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background:#1275ff;background:-webkit-linear-gradient(#7dc5ee,#008cdd 85%,#30a2e4);background:-moz-linear-gradient(#7dc5ee,#008cdd 85%,#30a2e4);background:-ms-linear-gradient(#7dc5ee,#008cdd 85%,#30a2e4);background:-o-linear-gradient(#7dc5ee,#008cdd 85%,#30a2e4);background:linear-gradient(#7dc5ee,#008cdd 85%,#30a2e4);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);-ms-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);-o-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25)}a.button.blue:active,a.button.blue.active,button.button.blue:active,button.button.blue.active,strong.button.blue:active,strong.button.blue.active,div.button.blue:active,div.button.blue.active{background:#005d93}a.button.blue:active span,a.button.blue.active span,button.button.blue:active span,button.button.blue.active span,strong.button.blue:active span,strong.button.blue.active span,div.button.blue:active span,div.button.blue.active span{color:#eee;background:#008cdd;background:transparent;background:-webkit-linear-gradient(#008cdd,#008cdd 85%,#239adf);background:-moz-linear-gradient(#008cdd,#008cdd 85%,#239adf);background:-ms-linear-gradient(#008cdd,#008cdd 85%,#239adf);background:-o-linear-gradient(#008cdd,#008cdd 85%,#239adf);background:linear-gradient(#008cdd,#008cdd 85%,#239adf);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1);-ms-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1);-o-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1);box-shadow:inset 0 1px 0 rgba(0,0,0,0.1)}a.button.blue.disabled,button.button.blue.disabled,strong.button.blue.disabled,div.button.blue.disabled{opacity:.45}a.button.red,button.button.red,strong.button.red,div.button.red{background:#940101;background:transparent;background:-webkit-linear-gradient(#e52828,#940101);background:-moz-linear-gradient(#e52828,#940101);background:-ms-linear-gradient(#e52828,#940101);background:-o-linear-gradient(#e52828,#940101);background:linear-gradient(#e52828,#940101)}a.button.red span,button.button.red span,strong.button.red span,div.button.red span{background:#af1510;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background:transparent;background:-webkit-linear-gradient(#ee7d7d,#df1010 85%,#e43030);background:-moz-linear-gradient(#ee7d7d,#df1010 85%,#e43030);background:-ms-linear-gradient(#ee7d7d,#df1010 85%,#e43030);background:-o-linear-gradient(#ee7d7d,#df1010 85%,#e43030);background:linear-gradient(#ee7d7d,#df1010 85%,#e43030);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);-ms-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);-o-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25)}a.button.red:active,a.button.red.active,button.button.red:active,button.button.red.active,strong.button.red:active,strong.button.red.active,div.button.red:active,div.button.red.active{background:#930000}a.button.red:active span,a.button.red.active span,button.button.red:active span,button.button.red.active span,strong.button.red:active span,strong.button.red.active span,div.button.red:active span,div.button.red.active span{color:#eee;background:#df1010;background:transparent;background:-webkit-linear-gradient(#df1010,#df1010 85%,#e43030);background:-moz-linear-gradient(#df1010,#df1010 85%,#e43030);background:-ms-linear-gradient(#df1010,#df1010 85%,#e43030);background:-o-linear-gradient(#df1010,#df1010 85%,#e43030);background:linear-gradient(#df1010,#df1010 85%,#e43030);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1);-ms-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1);-o-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1);box-shadow:inset 0 1px 0 rgba(0,0,0,0.1)}a.button.red.disabled,button.button.red.disabled,strong.button.red.disabled,div.button.red.disabled{opacity:.45}a.button.grey,button.button.grey,strong.button.grey,div.button.grey{background:#adb2bb;background:transparent;background:-webkit-linear-gradient(#ccd0d6,#adb2bb);background:-moz-linear-gradient(#ccd0d6,#adb2bb);background:-ms-linear-gradient(#ccd0d6,#adb2bb);background:-o-linear-gradient(#ccd0d6,#adb2bb);background:linear-gradient(#ccd0d6,#adb2bb)}a.button.grey span,button.button.grey span,strong.button.grey span,div.button.grey span{display:block;color:#333;text-shadow:0 1px 0 #fff;background:#f6f9fc;background:transparent;background:-webkit-linear-gradient(#f7f8fa,#eff1f4);background:-moz-linear-gradient(#f7f8fa,#eff1f4);background:-ms-linear-gradient(#f7f8fa,#eff1f4);background:-o-linear-gradient(#f7f8fa,#eff1f4);background:linear-gradient(#f7f8fa,#eff1f4);-webkit-box-shadow:inset 0 1px 0 white;-moz-box-shadow:inset 0 1px 0 white;-ms-box-shadow:inset 0 1px 0 white;-o-box-shadow:inset 0 1px 0 white;box-shadow:inset 0 1px 0 white}a.button.grey:active,a.button.grey.active,button.button.grey:active,button.button.grey.active,strong.button.grey:active,strong.button.grey.active,div.button.grey:active,div.button.grey.active{background:transparent;background:-webkit-linear-gradient(#b5bac2,#b5bac2);background:-moz-linear-gradient(#b5bac2,#b5bac2);background:-ms-linear-gradient(#b5bac2,#b5bac2);background:-o-linear-gradient(#b5bac2,#b5bac2);background:linear-gradient(#b5bac2,#b5bac2)}a.button.grey:active span,a.button.grey.active span,button.button.grey:active span,button.button.grey.active span,strong.button.grey:active span,strong.button.grey.active span,div.button.grey:active span,div.button.grey.active span{color:#444;background:transparent;background:-webkit-linear-gradient(#e6e8eb,#eff1f4);background:-moz-linear-gradient(#e6e8eb,#eff1f4);background:-ms-linear-gradient(#e6e8eb,#eff1f4);background:-o-linear-gradient(#e6e8eb,#eff1f4);background:linear-gradient(#e6e8eb,#eff1f4);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1);-ms-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1);-o-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1);box-shadow:inset 0 1px 0 rgba(0,0,0,0.1)}a.button.grey.disabled,button.button.grey.disabled,strong.button.grey.disabled,div.button.grey.disabled{background:#dadce0}a.button.grey.disabled span,button.button.grey.disabled span,strong.button.grey.disabled span,div.button.grey.disabled span{background:#f8f9fa;color:#aaa}a.button.grey.disabled:hover,button.button.grey.disabled:hover,strong.button.grey.disabled:hover,div.button.grey.disabled:hover{background:#dadce0}a.button.grey.disabled:hover span,button.button.grey.disabled:hover span,strong.button.grey.disabled:hover span,div.button.grey.disabled:hover span{background:#f8f9fa;color:#aaa}a.button.small,button.button.small,strong.button.small,div.button.small{height:20px;display:inline-block;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}a.button.small span,button.button.small span,strong.button.small span,div.button.small span{font-size:11px;line-height:20px;height:20px;padding:0 10px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}a.button.small img,button.button.small img,strong.button.small img,div.button.small img{float:left;margin:6px 6px 0 0}a.button.medium,button.button.medium,strong.button.medium,div.button.medium{height:31px}a.button.medium span,button.button.medium span,strong.button.medium span,div.button.medium span{display:block;font-size:13px;padding-left:15px;padding-right:15px;height:31px;line-height:31px}a.button.medium img,button.button.medium img,strong.button.medium img,div.button.medium img{margin-right:7px;position:relative;top:1px}a.button.disabled,button.button.disabled,strong.button.disabled,div.button.disabled{pointer-events:none}a.button.disabled span,button.button.disabled span,strong.button.disabled span,div.button.disabled span{text-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;-ms-box-shadow:none;-o-box-shadow:none;box-shadow:none}a.button.disabled :hover,button.button.disabled :hover,strong.button.disabled :hover,div.button.disabled :hover{cursor:default}a.button.disabled :hover span,button.button.disabled :hover span,strong.button.disabled :hover span,div.button.disabled :hover span{text-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;-ms-box-shadow:none;-o-box-shadow:none;box-shadow:none;cursor:default}button.button.medium span{height:29px;line-height:29px}button.button.small span{height:20px;line-height:20px}a.button.medium.rounded,button.button.medium.rounded,strong.buttom.medium.rounded{-webkit-border-radius:16px;-moz-border-radius:16px;-ms-border-radius:16px;-o-border-radius:16px;border-radius:16px}a.button.medium.rounded span,button.button.medium.rounded span,strong.buttom.medium.rounded span{-webkit-border-radius:15px;-moz-border-radius:15px;-ms-border-radius:15px;-o-border-radius:15px;border-radius:15px}div#about{background:#fff}div#about div.title{margin:0 60px;padding:54px 0}div#about div.title h1{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;font-size:31px;font-weight:600;color:#222;margin:6px 0;font-weight:600}div#about div.title p{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;font-size:20px;line-height:22px;color:#aaa;margin-bottom:6px}div#about div#team{position:relative;padding:60px 40px 20px;background-image:url("https://stripe.com/img/about/cork2.jpg");background-size:500px 500px;background-color:#af7c4a;background-size:500px 500px;-webkit-box-shadow:inset 0 2px 5px rgba(0,0,0,0.5),inset 0 0 5px rgba(0,0,0,0.8);-moz-box-shadow:inset 0 2px 5px rgba(0,0,0,0.5),inset 0 0 5px rgba(0,0,0,0.8);-ms-box-shadow:inset 0 2px 5px rgba(0,0,0,0.5),inset 0 0 5px rgba(0,0,0,0.8);-o-box-shadow:inset 0 2px 5px rgba(0,0,0,0.5),inset 0 0 5px rgba(0,0,0,0.8);box-shadow:inset 0 2px 5px rgba(0,0,0,0.5),inset 0 0 5px rgba(0,0,0,0.8)}@media only screen and (-webkit-min-device-pixel-ratio:2){div#about div#team{background-image:url("https://stripe.com/img/about/cork2@2x.jpg")}}div#about div#team::before{content:" ";position:absolute;width:100%;height:100%;left:0;top:0;background-image:-webkit-radial-gradient(50% 50%,ellipse farthest-corner,rgba(0,0,0,0) 1%,rgba(0,0,0,0.35) 100%);background-image:-moz-radial-gradient(50% 50%,ellipse farthest-corner,rgba(0,0,0,0) 1%,rgba(0,0,0,0.35) 100%);pointer-events:none;z-index:5}div#about div#team a{margin-left:20px;width:100px;height:120px;text-decoration:none;position:relative;z-index:10;float:left;text-align:center;-webkit-transform:rotate3d(0,0,0,0);-webkit-transition:all 300ms ease}div#about div#team a.no-link{cursor:default}div#about div#team span.frame{width:100px;height:100px;position:absolute;top:0;left:0;z-index:30;-webkit-box-shadow:0 0 2px rgba(0,0,0,0.8),0 2px 5px rgba(0,0,0,0.85);-moz-box-shadow:0 0 2px rgba(0,0,0,0.8),0 2px 5px rgba(0,0,0,0.85);-ms-box-shadow:0 0 2px rgba(0,0,0,0.8),0 2px 5px rgba(0,0,0,0.85);-o-box-shadow:0 0 2px rgba(0,0,0,0.8),0 2px 5px rgba(0,0,0,0.85);box-shadow:0 0 2px rgba(0,0,0,0.8),0 2px 5px rgba(0,0,0,0.85);pointer-events:none;background:#333;z-index:-1}div#about div#team span.shadow{position:absolute;content:"";display:block;width:100px;height:100px;top:0;left:0;opacity:.0;-webkit-transition:opacity 300ms ease,-webkit-transform 0 ease;-moz-transition:opacity 300ms ease,-moz-transform 0 ease;-o-transition:opacity 300ms ease,-o-transform 0 ease;transition:opacity 300ms ease,transform 0 ease;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.75);-moz-box-shadow:0 6px 12px rgba(0,0,0,0.75);-ms-box-shadow:0 6px 12px rgba(0,0,0,0.75);-o-box-shadow:0 6px 12px rgba(0,0,0,0.75);box-shadow:0 6px 12px rgba(0,0,0,0.75)}div#about div#team img{margin-bottom:4px;position:relative;z-index:20;-webkit-transition:all 300ms ease}div#about div#team strong{-webkit-transform:rotate3d(0,0,0,0);-webkit-transition:all 300ms ease}div#about div#team span.bio{position:absolute;z-index:100;opacity:.0;display:none;pointer-events:none;width:220px;text-align:left;margin-top:-10px;color:#ddd;background:#000;font-size:14px;line-height:16px;background:black;background:-webkit-linear-gradient(rgba(255,255,255,0.24),rgba(255,255,255,0));background:-moz-linear-gradient(rgba(255,255,255,0.24),rgba(255,255,255,0));background:-ms-linear-gradient(rgba(255,255,255,0.24),rgba(255,255,255,0));background:-o-linear-gradient(rgba(255,255,255,0.24),rgba(255,255,255,0));background:linear-gradient(rgba(255,255,255,0.24),rgba(255,255,255,0));background-color:rgba(0,0,0,0.95);-webkit-box-shadow:0 4px 8px rgba(0,0,0,0.75);-moz-box-shadow:0 4px 8px rgba(0,0,0,0.75);-ms-box-shadow:0 4px 8px rgba(0,0,0,0.75);-o-box-shadow:0 4px 8px rgba(0,0,0,0.75);box-shadow:0 4px 8px rgba(0,0,0,0.75);-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;text-shadow:0 -1px 0 rgba(0,0,0,0.5);font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif}div#about div#team span.bio span.inner{padding:18px 20px;display:block}div#about div#team span.bio em{display:block;font-weight:600;margin-bottom:5px;font-size:18px;color:#fff}div#about div#team span.bio span.arrow{width:22px;height:16px;display:block;background:url(https://stripe.com/img/about/popover_arrow.png) no-repeat;position:absolute;bottom:-16px;left:50%;margin-left:-11px}div#about div#team a:hover,div#about div#team a.force-hover{-webkit-transform:translate3d(0,-6px,0)}div#about div#team a:hover span.shadow,div#about div#team a.force-hover span.shadow{opacity:1.0}div#about div#team a:hover span.bio,div#about div#team a.force-hover span.bio{display:block;opacity:1.0}div#about div#team a.faded img{opacity:.5}div#about div#team a.slide_in{opacity:1.0;-webkit-transform:scale(1)}div#about div#additional{margin:60px 60px 40px}div#about div#additional h2{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:600;font-size:24px;margin-bottom:12px;color:#333}div#about div#additional p{color:#999;font-size:14px;line-height:20px;margin-bottom:20px}#about #additional ul{color:#999}#about #additional ul li{margin-bottom:6px;font-size:14px}div#about div#additional div.col{width:340px;float:left}div#about div#additional div.col.secondary{margin-left:60px}#doc{position:relative;width:940px;margin:0 auto}#doc a{text-decoration:underline}#doc a.button{text-decoration:none}#doc p.notification,#doc div.notification{padding:10px;background:#edeff2;border:1px solid #e7eaee;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;margin-right:0 !important;margin-bottom:30px !important;text-align:center}#doc p.notification.block,#doc div.notification.block{text-align:left}#doc p.notification.subtle,#doc div.notification.subtle{background:#f1f3f5;border-color:#e0e5ea}#doc hr{border:0;height:1px;background:#e8eaf1}#doc section.getting-started div.guides{position:relative;height:245px;width:640px;margin:0 auto}#doc section.getting-started div.guides:after{content:"";height:1px;margin:0 auto;display:block;background:#e7e8e8;position:absolute;bottom:-1px;left:-25px;right:-25px}#doc section.getting-started div.guides a{text-decoration:none;height:115px;width:50%;display:block;float:left;text-align:center;background-position:50% 50px;background-repeat:no-repeat;padding-top:130px}#doc section.getting-started div.guides a.web{background-image:url("https://stripe.com/img/documentation/getting-started/web.png");background-size:74px 60px}@media only screen and (-webkit-min-device-pixel-ratio:2){#doc section.getting-started div.guides a.web{background-image:url("https://stripe.com/img/documentation/getting-started/web@2x.png")}}#doc section.getting-started div.guides a.mobile{background-image:url("https://stripe.com/img/documentation/getting-started/mobile.png");background-size:58px 59px}@media only screen and (-webkit-min-device-pixel-ratio:2){#doc section.getting-started div.guides a.mobile{background-image:url("https://stripe.com/img/documentation/getting-started/mobile@2x.png")}}#doc section.getting-started div.guides a h2{padding:0 20px;font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:18px;font-weight:bold;color:#16303f;margin-bottom:3px}#doc section.getting-started div.guides a p{padding:0 20px;font-size:13px;line-height:19px;color:#788185}#doc section.getting-started div.payment-types{padding:40px 35px 20px;font-size:13px;line-height:20px;margin-bottom:20px;text-decoration:none}#doc section.getting-started div.payment-types hr{margin:40px 0 0}#doc section.getting-started div.payment-types h3{font-weight:bold;color:#454545}#doc section.getting-started div.payment-types p{color:#788185}#doc section.getting-started div.non-developer{padding:0 35px}#doc section.getting-started div.non-developer a{display:block;font-size:13px;line-height:20px;margin-bottom:20px;text-decoration:none;padding-right:140px;background-position:95% 50%;background-repeat:no-repeat}#doc section.getting-started div.non-developer a.platforms{background-image:url("https://stripe.com/img/documentation/getting-started/platforms.png");background-size:94px 46px}@media only screen and (-webkit-min-device-pixel-ratio:2){#doc section.getting-started div.non-developer a.platforms{background-image:url("https://stripe.com/img/documentation/getting-started/platforms@2x.png")}}#doc section.getting-started div.non-developer a.services{background-image:url("https://stripe.com/img/documentation/getting-started/services.png");background-size:96px 48px}@media only screen and (-webkit-min-device-pixel-ratio:2){#doc section.getting-started div.non-developer a.services{background-image:url("https://stripe.com/img/documentation/getting-started/services@2x.png")}}#doc section.getting-started div.non-developer a h3{font-weight:bold;color:#454545}#doc section.getting-started div.non-developer a p{color:#788185}#doc section.getting-started section#details article hr{margin-bottom:40px}#doc section.getting-started section#details p{color:#788185}#doc>nav{position:absolute;z-index:20;width:190px;left:0;top:4px;bottom:4px;text-shadow:0 1px 0 rgba(255,255,255,0.65);border-radius:5px 0 0 5px;background:#eee;background:rgba(255,255,255,0.25);box-shadow:inset 0 1px 0 rgba(255,255,255,0.6),0 0 1px 1px rgba(80,84,92,0.1),0 1px 2px rgba(80,84,92,0.2)}#doc>nav h1{margin:18px 0 7px;text-transform:uppercase;font-size:11px;font-weight:bold;color:#9ca5b5}#doc>nav h1:nth-of-type(1){margin-top:20px}#doc>nav h1::before{content:"";position:absolute;width:12px;height:14px;margin-left:-18px;background:url(https://stripe.com/img/documentation/navicons.png);background-size:60px 14px}#doc>nav h1.references::before{background-position:-12px 0}#doc>nav h1.connect::before{background:url(https://stripe.com/img/documentation/nav-connect.png) 0 1px no-repeat;background-size:12px 13px}#doc>nav h1.orders::before{height:15px;width:13px;background:url(https://stripe.com/img/documentation/nav-orders.png) 0 0 no-repeat;background-size:13px 15px}#doc>nav h1.subscriptions::before{margin-top:1px;background-position:-48px 0}#doc>nav h1.disputes::before{background:url(https://stripe.com/img/documentation/nav-disputes.png) 0 1px no-repeat;width:13px;height:12px;background-size:13px 12px}#doc>nav h1.faq::before{margin-top:1px;background-position:-24px 0}#doc>nav h1.more::before{margin-top:1px;background-position:-36px 0}#doc>nav h1,#doc>nav a{padding-right:25px;padding-left:35px}#doc>nav li{position:relative;cursor:pointer}#doc>nav li::before{content:"";position:absolute;top:-1px;width:100%;height:100%;pointer-events:none}#doc>nav li.unselected::before{opacity:0;border-top:1px solid rgba(156,165,181,0.25);border-bottom:1px solid #cacdd3;box-shadow:1px 0 rgba(156,165,181,0.08);background:transparent;background:-webkit-linear-gradient(white,#f0f2f5);background:-moz-linear-gradient(white,#f0f2f5);background:-ms-linear-gradient(white,#f0f2f5);background:-o-linear-gradient(white,#f0f2f5);background:linear-gradient(white,#f0f2f5)}#doc>nav li.selected::before{z-index:1;border-top:1px solid #408ce6;border-bottom:1px solid #2659a7;box-shadow:0 -1px 0 rgba(17,46,97,0.03),0 1px 0 rgba(17,46,97,0.15);background:#4b98ea;background:transparent;background:-webkit-linear-gradient(#4b98ea,#397acd);background:-moz-linear-gradient(#4b98ea,#397acd);background:-ms-linear-gradient(#4b98ea,#397acd);background:-o-linear-gradient(#4b98ea,#397acd);background:linear-gradient(#4b98ea,#397acd)}#doc>nav li.selected::after{content:"";position:absolute;width:1px;top:-1px;left:-1px;bottom:-1px;background:transparent;background:-webkit-linear-gradient(#408ce6,#2659a7);background:-moz-linear-gradient(#408ce6,#2659a7);background:-ms-linear-gradient(#408ce6,#2659a7);background:-o-linear-gradient(#408ce6,#2659a7);background:linear-gradient(#408ce6,#2659a7)}#doc>nav a{position:relative;z-index:1;display:block;margin-bottom:1px;font-size:12px;height:21px;line-height:22px;text-decoration:none;color:#008cdd}#doc>nav a:hover{color:#008cdd;text-decoration:underline}#doc>nav li.sub a{padding-left:49px}#doc>nav li.selected a{padding-right:15px;font-weight:700;color:#fff;box-shadow:inset 0 1px 0 #53a1ec;text-shadow:0 -1px 0 rgba(38,89,167,0.75);text-decoration:none}#doc>nav a img{margin:0 0 -1px 3px}#doc a.external:after{content:" ";display:inline-block;width:8px;height:9px;position:relative;top:1px;left:3px;background:url(https://stripe.com/img/documentation/external_arrow.png);background-size:8px 9px}#doc #content{position:relative;z-index:30;background:#fff;background:rgba(255,255,255,0.8);margin-left:190px;border-radius:5px;box-shadow:0 0 1px 1px rgba(80,84,92,0.1),0 1px 2px rgba(80,84,92,0.5)}#doc #content header{background:#fff;padding:25px 30px;border-radius:5px 5px 0 0;border-bottom:1px solid #d9dce3;box-shadow:0 1px 0 #fff}#doc #content header h1{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:25px;font-weight:700}#doc #content header h1 span.beta{position:relative;top:-4px}span.beta{background:#279f0b;background:transparent;background:-webkit-linear-gradient(#49c12d,#279f0b);background:-moz-linear-gradient(#49c12d,#279f0b);background:-ms-linear-gradient(#49c12d,#279f0b);background:-o-linear-gradient(#49c12d,#279f0b);background:linear-gradient(#49c12d,#279f0b);-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 0 rgba(0,0,0,0.14);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 0 rgba(0,0,0,0.14);-ms-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 0 rgba(0,0,0,0.14);-o-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 0 rgba(0,0,0,0.14);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 0 rgba(0,0,0,0.14);-webkit-font-smoothing:antialiased;padding:2px 5px;border:1px solid #247611;text-rendering:optimizeLegibility;font-family:Arial,Helvetica,sans-serif;font-weight:bold;color:#fff;font-size:11px;text-shadow:0 -1px 0 rgba(0,0,0,0.3);text-transform:uppercase;position:relative;top:-2px}#doc #content header p{font-size:13px;line-height:19px;color:#6c767f;margin:4px 20px 0 0}#doc article#mobile div.platforms{padding:25px 0}#doc article#mobile div.platforms div{padding-left:80px;margin-bottom:30px;background-position:0 0;background-repeat:no-repeat}#doc article#mobile div.platforms div p{margin-bottom:5px}#doc article#mobile div.platforms div ul{margin:0}#doc article#mobile div.platforms div.ios{background-image:url("https://stripe.com/img/documentation/mobile/ios.png");background-size:64px 64px}@media only screen and (-webkit-min-device-pixel-ratio:2){#doc article#mobile div.platforms div.ios{background-image:url("https://stripe.com/img/documentation/mobile/ios@2x.png")}}#doc article#mobile div.platforms div.android{background-image:url("https://stripe.com/img/documentation/mobile/android.png");background-size:64px 64px}@media only screen and (-webkit-min-device-pixel-ratio:2){#doc article#mobile div.platforms div.android{background-image:url("https://stripe.com/img/documentation/mobile/android@2x.png")}}#doc article#mobile div.platforms div:last-child{margin-bottom:0}#doc article#mobile div.more{padding-top:20px}#doc article#international xh1{padding-top:80px;font-size:29px;text-align:center;margin:0 0 10px 0 !important}#doc article#international h1{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;text-align:center;margin-right:0 !important;margin-bottom:5px !important;font-size:18px;font-weight:bold;padding-top:20px}#doc article#international h2{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:19px !important;color:#0079ff !important;font-weight:normal !important;-webkit-font-smoothing:antialiased;text-align:center;width:400px;margin:0 auto 20px !important;padding-bottom:20px;position:relative}#doc article#international h2::after{content:" ";position:absolute;width:100px;height:3px;background:rgba(0,0,0,0.1);bottom:0;left:50%;margin-left:-50px}#doc article#international p.explanation{width:340px;color:#888;text-align:center;margin:0 auto !important}#doc article#international div.intl-error{margin-bottom:10px;text-align:center;font-weight:bold}#doc article#international div.success{display:none;text-align:center;padding-top:30px}#doc article#international div.success h1{font-size:19px;font-weight:bold}#doc article#international div.success p{font-size:13px;color:#999}#doc article#international div.success p strong{color:#555}#doc article#international form{width:320px;margin:0 auto;padding:0 40px 40px;heigxht:31px;borxder:1px solid #ddd;backxground:#fff;-webkit-border-radius:6px;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;border-radius:6px}#doc article#international form label{display:none}#doc article#international form p{floxat:left;margin-right:10px}#doc article#international form p:last-child{margin-bottom:0}#doc article#international form p.explanation{text-align:center;color:#888;padding-bottom:10px;width:auto}#doc article#international form input,#doc article#international form select{width:300px;font-size:16px}#doc article#international form select{width:316px;height:20px;-webkit-appearance:none;border:1px solid #bbb;border-bottom-color:#999;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;-webkit-font-smoothing:antialiased;padding:4px 7px;font-size:16px;line-height:24px;height:34px;text-shadow:0 1px 0 #fff;background:url(https://stripe.com/img/forms/select/arrows.png) 96% 50% no-repeat,-webkit-linear-gradient(white,#eee);-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.1);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.1);-ms-box-shadow:0 1px 0 rgba(0,0,0,0.1);-o-box-shadow:0 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 0 rgba(0,0,0,0.1)}#doc article#international form select:focus{outline:0;border:1px solid #5695db;-webkit-box-shadow:0 0 5px #5695db;-moz-box-shadow:0 0 5px #5695db;-ms-box-shadow:0 0 5px #5695db;-o-box-shadow:0 0 5px #5695db;box-shadow:0 0 5px #5695db}#doc article#international form em{float:left;color:#aaa;font-size:11px;font-style:normal;line-height:38px}#doc article#international form button{width:316px;height:38px;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.1);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.1);-ms-box-shadow:0 1px 0 rgba(0,0,0,0.1);-o-box-shadow:0 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 0 rgba(0,0,0,0.1);width:110px;float:right}#doc article#international form button span{height:36px;line-height:36px;font-size:16px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;-webkit-font-smoothing:antialiased;text-shadow:0 1px 1px rgba(0,0,0,0.5)}#doc article#contact img.office-pic{-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;float:right;margin:0 0 40px 40px}#doc article#contact h1#support{clear:both}#doc #details a:active{color:#000}#doc sup{position:relative;top:-0.4em;margin-left:1px;line-height:0}#doc a[rel="footnote"]::before{content:"["}#doc a[rel="footnote"]::after{content:"]"}#doc .footnotes{padding:20px 30px}#doc .footnotes::before{content:"Footnotes";margin-bottom:10px;font-weight:bold;font-size:13px;color:#222}#doc .footnotes a[rel="reference"]{margin-left:4px}#doc .footnotes ol{padding-top:15px}#doc .footnotes ol li{list-style:decimal inside;font-size:13px}#doc #details article{padding:25px 30px}#doc #details article strong{font-weight:700}#doc #details article em{font-style:italic}#doc #details article h1,#doc #details article>h2,#doc #details article>h3,#doc #details article section>h2,#doc #details article section>h3{font-weight:700;color:#222}#doc #details article h1{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;margin:28px 0 17px;font-size:19px}#doc #details article h1:first-child,#doc #details .intro.note+h1{margin-top:0}#doc #details article h2{margin-bottom:15px;font-size:15px;color:#222}#doc #details article h3{margin-bottom:7px;font-size:13px;color:#222}#doc #details span.warning{background:#279f0b;background:transparent;background:-webkit-linear-gradient(#49c12d,#279f0b);background:-moz-linear-gradient(#49c12d,#279f0b);background:-ms-linear-gradient(#49c12d,#279f0b);background:-o-linear-gradient(#49c12d,#279f0b);background:linear-gradient(#49c12d,#279f0b);-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 0 rgba(0,0,0,0.14);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 0 rgba(0,0,0,0.14);-ms-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 0 rgba(0,0,0,0.14);-o-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 0 rgba(0,0,0,0.14);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 0 rgba(0,0,0,0.14);-webkit-font-smoothing:antialiased;margin-right:5px;padding:2px 5px;border:1px solid #247611;text-rendering:optimizeLegibility;font-family:Arial,Helvetica,sans-serif;font-weight:bold;color:#fff;font-size:11px;text-shadow:0 -1px 0 rgba(0,0,0,0.3);text-transform:uppercase;position:relative}#doc #details article{color:#444}#doc #details article h1 a.header-anchor,#doc #details article h2 a.header-anchor,#doc #details article h3 a.header-anchor,#doc #details article h4 a.header-anchor,#doc #details article h5 a.header-anchor,#doc #details article h6 a.header-anchor{display:inline-block;margin-left:3px;opacity:.0;position:relative;top:1px;width:15px;height:14px;background:url(https://stripe.com/img/documentation/anchor.png) 50% 50% no-repeat;background-size:9px 8px}#doc #details article h1 a.header-anchor:hover,#doc #details article h2 a.header-anchor:hover,#doc #details article h3 a.header-anchor:hover,#doc #details article h4 a.header-anchor:hover,#doc #details article h5 a.header-anchor:hover,#doc #details article h6 a.header-anchor:hover{color:#999;text-decoration:none;background-color:rgba(0,0,0,0.04);-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px}#doc #details article h1 a.header-anchor:active,#doc #details article h2 a.header-anchor:active,#doc #details article h3 a.header-anchor:active,#doc #details article h4 a.header-anchor:active,#doc #details article h5 a.header-anchor:active,#doc #details article h6 a.header-anchor:active{top:2px}#doc #details article h1:hover a.header-anchor,#doc #details article h2:hover a.header-anchor,#doc #details article h3:hover a.header-anchor,#doc #details article h4:hover a.header-anchor,#doc #details article h5:hover a.header-anchor,#doc #details article h6:hover a.header-anchor{opacity:1.0}#doc #details article blockquote{padding-left:10px;border-left:10px solid #edeff2}#doc #details .note{float:right;padding:25px;text-shadow:0 1px 0 #fff;font-size:12px;line-height:18px;margin-left:20px;margin-bottom:20px}#doc #details .note h1{font-weight:700;margin-bottom:10px;font-size:13px;font-family:arial,sans-serif}#doc #details .note p{color:#6c767f;margin-bottom:8px}#doc #details .note code{text-shadow:none}#doc #details .intro.note{margin-top:-25px;margin-right:-30px;width:211px;background:#fff;background:-webkit-linear-gradient(rgba(156,165,181,0.35),rgba(156,165,181,0)),-webkit-linear-gradient(white 90%,rgba(255,255,255,0)),-webkit-linear-gradient(white,rgba(255,255,255,0));background:-moz-linear-gradient(rgba(156,165,181,0.35),rgba(156,165,181,0)),-moz-linear-gradient(white 90%,rgba(255,255,255,0)),-moz-linear-gradient(white,rgba(255,255,255,0));background:-o-linear-gradient(rgba(156,165,181,0.35),rgba(156,165,181,0)),-o-linear-gradient(white 90%,rgba(255,255,255,0)),-o-linear-gradient(white,rgba(255,255,255,0));background:-ms-linear-gradient(rgba(156,165,181,0.35),rgba(156,165,181,0)),-ms-linear-gradient(white 90%,rgba(255,255,255,0)),-ms-linear-gradient(white,rgba(255,255,255,0));background:linear-gradient(rgba(156,165,181,0.35),rgba(156,165,181,0)),linear-gradient(white 90%,rgba(255,255,255,0)),linear-gradient(white,rgba(255,255,255,0));background-size:1px 100%,1px 100%,100% 100%;background-position:0 0,1px 0,2px 0;background-repeat:no-repeat}#doc #details .content.note{position:relative;padding-top:17px;padding-bottom:12px;width:180px;background:#fff;background:-webkit-linear-gradient(white,#f3f4f6 80%,white);background:-moz-linear-gradient(white,#f3f4f6 80%,white);background:-ms-linear-gradient(white,#f3f4f6 80%,white);background:-o-linear-gradient(white,#f3f4f6 80%,white);background:linear-gradient(white,#f3f4f6 80%,white);border-radius:4px;border:1px solid rgba(156,165,181,0.6);box-shadow:0 1px 1px rgba(156,165,181,0.3)}#doc #details .content.note::before{content:" ";position:absolute;background:url(https://stripe.com/img/documentation/note.png);width:234px;height:13px;background-size:234px 13px;top:-3px;left:-2px}#doc #details article h1,#doc #details article>p,#doc #details article li{margin-right:0}#doc #details article p,#doc .footnotes p,#doc #details article ul,#doc #details article ol{margin-bottom:20px;font-size:13px;line-height:19px}#doc #details article p code,#doc #details article ul code,#doc #details article ol code{background:#cce4ff;padding:0 3px;border-radius:8px;font-weight:normal !important}#doc #details article ol{list-style-position:outside;margin-left:18px}#doc #details article ul li{padding-left:18px;background-image:url("https://stripe.com/img/documentation/bullet.png");background-size:4px 4px;background-position:3px 7px;background-repeat:no-repeat}@media only screen and (-webkit-min-device-pixel-ratio:2){#doc #details article ul li{background-image:url("https://stripe.com/img/documentation/bullet@2x.png")}}#doc #details article ul ul{margin-bottom:0 !important}#doc #details article ul ul li{background-image:url("https://stripe.com/img/documentation/sub-bullet.png");background-size:4px 4px}@media only screen and (-webkit-min-device-pixel-ratio:2){#doc #details article ul ul li{background-image:url("https://stripe.com/img/documentation/sub-bullet@2x.png")}}#doc #details article ul ul li{margin-top:3px}#doc #details article ol li{list-style-type:decimal}#doc #details article ol li ol li{list-style-type:lower-alpha}#doc #details article ol li ol li ol li{list-style-type:lower-roman}#doc #details article ol ul li{list-style-type:none}#doc #details article li+li{margin-top:3px}#doc #details article.tos ol li{list-style-type:inherit}#doc #details .segmented-control{position:relative;text-align:center;margin:10px 0 20px 0;height:30px}#doc #details .segmented-control::before{content:'';display:block;position:absolute;left:0;right:0;top:11px;border-top:1px solid #d9dce3;border-bottom:1px solid #FFF}#doc #details .segmented-control a{position:relative;font-size:14px;padding:5px 10px;margin:0 2px;border-right:2px solid #fbfcfc;text-decoration:none;border-radius:3px;background:#fff;border:1px solid #dee2eb;box-shadow:0 1px 0 white}#doc #details .segmented-control>span{position:relative;display:inline-block;background:#fbfcfc;padding:0 9px;height:100%}#doc #details .segmented-control a:hover{text-decoration:none;color:#008cdd}#doc #details .segmented-control a:active{text-decoration:none;color:#008cdd;background:#f3f6f6;border-color:#d3d6df}#doc #details .segmented-control a.selected{color:#fff;border:0;padding-left:11px;padding-right:11px;border-top:1px solid #408ce6;border-bottom:1px solid #2659a7;box-shadow:0 -1px 0 rgba(17,46,97,0.03),0 1px 0 rgba(17,46,97,0.15);background:#4b98ea;text-shadow:0 -1px 0 rgba(38,89,167,0.75);background:transparent;background:-webkit-linear-gradient(#4b98ea,#397acd);background:-moz-linear-gradient(#4b98ea,#397acd);background:-ms-linear-gradient(#4b98ea,#397acd);background:-o-linear-gradient(#4b98ea,#397acd);background:linear-gradient(#4b98ea,#397acd)}#doc #details .segmented-control a.selected:hover{text-decoration:none}#doc #details .segmented-control a.selected::after{content:'';display:block;position:absolute;top:0;left:0;right:0;bottom:0;border-radius:2px;box-shadow:inset 0 1px 0 #53a1ec}#doc .code-example{position:relative;margin-bottom:25px}#doc .code-example:before{content:"";display:table;clear:right}#doc .code-example.code-overflow::before{content:"";position:absolute;top:15px;background-image:-webkit-gradient(linear,left top,right top,from(rgba(255,255,255,0)),to(white));background-image:-moz-linear-gradient(0,rgba(255,255,255,0),white);background-image:-o-linear-gradient(left,rgba(255,255,255,0),white);width:70px;bottom:10px;right:0;pointer-events:none}#doc .code-example.code-overflow.multiple-lang::before{top:30px}#doc .code-example nav{margin-left:-1px}#doc .code-example nav::after{content:"";display:table;clear:left}#doc .code-example nav a{float:left;font-size:12px;font-weight:700;border-radius:4px 4px 0 0;margin-right:4px;padding:2px 8px 4px;color:white;text-shadow:0 0 2px rgba(169,179,193,0.7),0 1px 0 rgba(169,179,193,0.6);background:transparent;background:-webkit-linear-gradient(#dbdfe5,#cfd5dd);background:-moz-linear-gradient(#dbdfe5,#cfd5dd);background:-ms-linear-gradient(#dbdfe5,#cfd5dd);background:-o-linear-gradient(#dbdfe5,#cfd5dd);background:linear-gradient(#dbdfe5,#cfd5dd);border:1px solid rgba(168,177,191,0.3);border-bottom:0 !important;box-shadow:inset 0 1px 0 #e1e4ea,inset 0 -1px rgba(168,177,191,0.25);text-decoration:none}#doc .code-example nav a.selected{background:#fff;color:#000;text-shadow:none;box-shadow:none;border-color:rgba(156,165,181,0.35)}#doc .code-example nav a:not(.selected):active{color:#fff !important;background:transparent;background:-webkit-linear-gradient(rgba(168,177,191,0.5),rgba(168,177,191,0.75));background:-moz-linear-gradient(rgba(168,177,191,0.5),rgba(168,177,191,0.75));background:-ms-linear-gradient(rgba(168,177,191,0.5),rgba(168,177,191,0.75));background:-o-linear-gradient(rgba(168,177,191,0.5),rgba(168,177,191,0.75));background:linear-gradient(rgba(168,177,191,0.5),rgba(168,177,191,0.75));border-color:rgba(168,177,191,0.5);box-shadow:none;text-shadow:0 0 2px #a9b3c1,0 1px 0 #a9b3c1}#doc .code-example .terminal-wrap{overflow-x:scroll;padding:15px 10px;background:#fff;background:white -webkit-linear-gradient(rgba(225,228,233,0),rgba(225,228,233,0.4));background:white -moz-linear-gradient(rgba(225,228,233,0),rgba(225,228,233,0.4));background:white -ms-linear-gradient(rgba(225,228,233,0),rgba(225,228,233,0.4));background:white -o-linear-gradient(rgba(225,228,233,0),rgba(225,228,233,0.4));background:white linear-gradient(rgba(225,228,233,0),rgba(225,228,233,0.4));background-size:100% 8px;background-repeat:no-repeat;background-position:0 100%;box-shadow:inset 0 -1px 0 white,0 0 1px 1px rgba(156,165,181,0.3),0 1px 1px rgba(156,165,181,0.5);border-radius:4px}#doc .code-example .terminal-wrap.nolines span.no,#doc .code-example .terminal-wrap.nolines span.line-numbers{display:none}#doc .code-example .terminal-wrap.allow-wrap{word-wrap:break-word}#doc .code-example nav+.terminal-wrap{border-top-left-radius:0}#doc .code-example .terminal-wrap.nolines::before{display:none}#doc .code-example nav+.terminal-wrap::before{top:36px}#doc .code-example .terminal-wrap .no,#doc .code-example .terminal-wrap .line-numbers{position:absolute;left:4px;z-index:1;margin-top:1px;font-size:12px;color:#a6abb4;text-shadow:0 1px 0 rgba(255,255,255,0.8);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;display:none}#doc #details .code-example .terminal-wrap .no strong{font-weight:400}#doc .code-example .terminal-wrap .lastEltInLine{margin-right:35px}#doc table{font-size:13px;line-height:19px;margin-bottom:19px;border:1px solid #ddd;width:690px;margin-right:0;border-collapse:collapse}#doc table thead{font-weight:bold}#doc table th,#doc table td{padding-right:20px;padding:4px 8px;border:1px solid #ddd;vertical-align:top}#doc table td.number,#doc table th.number{width:160px;white-space:nowrap}#doc table td.number code>span,#doc table th.number code>span{display:inline-block;width:8px}#doc table td.param,#doc table th.param{width:240px}#doc table td.param span.tag,#doc table th.param span.tag{display:inline-block;padding:0 5px;border-radius:5px;background:#8090a6;color:#fff;font-size:10px;font-weight:bold;text-transform:uppercase;margin-left:5px}#doc table td.param span.tag.optional,#doc table th.param span.tag.optional{background:#ebeef2;color:#8c95a1}#doc table td.param span.tag.recommended,#doc table th.param span.tag.recommended{background:#d6f0d5;color:#5f9e5d}#doc table td.description p:last-child{margin-bottom:0 !important}#doc .payment-tag-example payment{margin:18px 0 0 0}#doc .payment-tag-example button{margin:18px 0}#doc .twitter-guide div#twitter-android-modal{background-image:url("https://stripe.com/img/documentation/guides/twitter/twitter_android.png");width:300px;height:513px;margin:30px 20px 30px 50px}#doc .twitter-guide div.caption-image{background-size:100%;background-repeat:no-repeat}#doc .twitter-guide div.caption-image.right{float:right}#doc .product-discovery-app div#wish-logo-modal{background-image:url("https://stripe.com/img/documentation/recipes/product-discovery-app/wish_logo.png");width:89px;height:30px;margin:30px 50px 30px 20px}#doc .product-discovery-app div#spring-static-modal{background-image:url("https://stripe.com/img/documentation/recipes/product-discovery-app/spring_static.png");width:316px;height:643px;margin:10px 20px 20px 20px}#doc .product-discovery-app div.caption-image{background-size:100%;background-repeat:no-repeat}#doc .product-discovery-app div.caption-image.right{float:right}#doc .product-discovery-app p.stripe-connect-wrapper{text-align:center}#doc .product-discovery-app span.status{display:inline-block;padding:0 5px;border-radius:5px;background:#8090a6;color:#fff;font-size:10px;font-weight:bold;text-transform:uppercase;margin-left:5px}#doc .product-discovery-app span.status.connected{background:#d6f0d5;color:#5f9e5d}#doc .subscriptions-guide div#create-plan-modal{background-image:url("https://stripe.com/img/documentation/guides/subscriptions/create_plan.png");width:363px;height:432px;margin:30px 20px 30px 50px}#doc .subscriptions-guide div#create-a-coupon{background-image:url("https://stripe.com/img/documentation/guides/subscriptions/create_coupon.png");width:330px;height:394px;margin:0 0 30px 50px}#doc .subscriptions-guide div#created-subs-events{background-image:url("https://stripe.com/img/documentation/guides/subscriptions/created_subscription_events.png");width:680px;height:156px;margin:0 auto 30px}#doc .subscriptions-guide div#created-unattempted-invoice{background-image:url("https://stripe.com/img/documentation/guides/subscriptions/created_unattempted_invoice.png");width:680px;height:101px;margin:0 auto 30px}#doc .subscriptions-guide div#settings{background-image:url("https://stripe.com/img/documentation/guides/subscriptions/settings.png");width:600px;height:391px;margin:0 auto 30px}#doc .subscriptions-guide div#invoice-with-line-items{background-image:url("https://stripe.com/img/documentation/guides/subscriptions/invoice_with_line_items.png");width:600px;height:168px;margin:0 auto 20px;border:1px solid #e8ebef}#doc .subscriptions-guide div.caption-image{background-size:100%;background-repeat:no-repeat}#doc .subscriptions-guide div.caption-image.right{float:right}.applepay-guide p.caption{font-style:italic;margin-top:10px;text-align:center;color:#6c767f}.applepay-guide img#upload-cert{margin:0 15%;-webkit-box-shadow:2px 2px 5px rgba(0,0,0,0.2);-moz-box-shadow:2px 2px 5px rgba(0,0,0,0.2);-ms-box-shadow:2px 2px 5px rgba(0,0,0,0.2);-o-box-shadow:2px 2px 5px rgba(0,0,0,0.2);box-shadow:2px 2px 5px rgba(0,0,0,0.2)}.applepay-guide img#xcode{margin:0 15%;-webkit-box-shadow:2px 2px 5px rgba(0,0,0,0.2);-moz-box-shadow:2px 2px 5px rgba(0,0,0,0.2);-ms-box-shadow:2px 2px 5px rgba(0,0,0,0.2);-o-box-shadow:2px 2px 5px rgba(0,0,0,0.2);box-shadow:2px 2px 5px rgba(0,0,0,0.2)}#doc footer{position:relative;font-size:12px;line-height:18px;background:#fff;border-top:1px solid rgba(156,165,181,0.35);border-radius:0 0 5px 5px}#doc footer.hasFeedback>section{width:50%}#doc footer p{color:#6c767f}#doc footer a:active{color:#000}#doc footer h1{font-weight:700;font-size:18px;margin-bottom:10px;font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif}#doc footer>section{position:relative;float:left;width:100%;height:100%;top:0;padding:30px;box-sizing:border-box}#doc footer>section+section{border-left:1px solid rgba(0,0,0,0.07)}#doc footer .feedback form{display:block;position:relative;width:100%;height:27px;margin-top:8px}#doc footer .feedback form::after{content:"";display:block;position:absolute;width:13px;height:11px;top:8px;left:11px;background-image:url("https://stripe.com/img/documentation/footer-feedbackIcon.svg");transition:opacity .35s ease-out}#doc footer .feedback form input[type="text"]{display:block;position:relative;width:100%;height:100%;outline:0;border-style:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.1),inset 0 1px 2px 0 rgba(0,0,0,0.1);border-radius:14px;padding-left:32px;padding-right:50px;box-sizing:border-box;transition:opacity .25s ease-out}#doc footer .feedback form input[type="text"]::-webkit-input-placeholder{color:#c3c9ce;opacity:1}#doc footer .feedback form input[type="text"]::-moz-placeholder{color:#c3c9ce;opacity:1}#doc footer .feedback form input[type="text"]:-moz-placeholder{color:#c3c9ce;opacity:1}#doc footer .feedback form input[type="text"]:-ms-input-placeholder{color:#c3c9ce;opacity:1}#doc footer .feedback form button{display:block;position:absolute;width:38px;height:21px;top:3px;right:3px;border-style:none;border-radius:11px;background:#39a2e1;background:url("https://stripe.com/img/documentation/footer-feedbackSubmitIcon.svg");background:url("https://stripe.com/img/documentation/footer-feedbackSubmitIcon.svg"),linear-gradient(#5db6e8,#168eda 85%,#168eda 90%,#1d93dd);background-position:center center;background-repeat:no-repeat;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.15),0 1px 0 rgba(0,0,0,0.15);cursor:pointer;outline:0;-webkit-transition:-webkit-transform .35s cubic-bezier(0.86,0,0.16,1.2),width .35s cubic-bezier(0.86,0,0.07,1),background-image .35s ease-in-out;-moz-transition:-moz-transform .35s cubic-bezier(0.86,0,0.16,1.2),width .35s cubic-bezier(0.86,0,0.07,1),background-image .35s ease-in-out;-ms-transition:-ms-transform .35s cubic-bezier(0.86,0,0.16,1.2),width .35s cubic-bezier(0.86,0,0.07,1),background-image .35s ease-in-out;transition:transform .35s cubic-bezier(0.86,0,0.16,1.2),width .35s cubic-bezier(0.86,0,0.07,1),background-image .35s ease-in-out}#doc footer .feedback form button:active{background-color:#0f6fab;background-image:url("https://stripe.com/img/documentation/footer-feedbackSubmitIcon.svg")}#doc footer .feedback form .successMessage{position:absolute;width:100%;height:100%;top:0;left:0;padding-left:32px;line-height:28px;color:#59b830;visibility:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-smoothing:antialiased}#doc footer .feedback form .successMessage span{opacity:0;transition:opacity .3s cubic-bezier(0.165,0.84,0.44,1)}#doc footer .feedback form.success::after,#doc footer .feedback form.success input[type="text"]{opacity:0}#doc footer .feedback form.success button{width:21px;-webkit-transform:translateX(-291px);-moz-transform:translateX(-291px);-ms-transform:translateX(-291px);transform:translateX(-291px);background-color:#59b830;background-image:url("https://stripe.com/img/documentation/footer-feedbackSuccessIcon.svg");background-image:url("https://stripe.com/img/documentation/footer-feedbackSuccessIcon.svg"),linear-gradient(#49c12d,#279f0b);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 0 rgba(0,0,0,0.14);border:1px solid #247611}#doc footer .feedback form.success .successMessage{visibility:visible}#doc footer .feedback form.success .successMessage span{opacity:1}#doc img.connect-logo{width:100px;height:100px;float:right;margin:2px 10px 20px 25px}.stripe-connect,.button-example{display:inline-block;margin-bottom:1px;background-image:-webkit-linear-gradient(#28a0e5,#015e94);background-image:-moz-linear-gradient(#28a0e5,#015e94);background-image:-ms-linear-gradient(#28a0e5,#015e94);background-image:linear-gradient(#28a0e5,#015e94);-webkit-font-smoothing:antialiased;border:0;padding:1px;height:30px;text-decoration:none;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;-moz-box-shadow:0 1px 0 rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.2);box-shadow:0 1px 0 rgba(0,0,0,0.2);cursor:pointer;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none !important}.stripe-connect span,.button-example span{display:block;position:relative;padding:0 12px;height:30px;background:#1275ff;background-image:-webkit-linear-gradient(#7dc5ee,#008cdd 85%,#30a2e4);background-image:-moz-linear-gradient(#7dc5ee,#008cdd 85%,#30a2e4);background-image:-ms-linear-gradient(#7dc5ee,#008cdd 85%,#30a2e4);background-image:linear-gradient(#7dc5ee,#008cdd 85%,#30a2e4);font-size:14px;line-height:30px;color:white;font-weight:bold;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;text-shadow:0 -1px 0 rgba(0,0,0,0.2);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#doc #details article p.submit-note{font-size:11px;color:#999}#doc #details article p.button-example{margin-bottom:2px}.stripe-connect span{padding-left:44px}.stripe-connect span:before{content:'';display:block;position:absolute;left:11px;top:50%;width:23px;height:24px;margin-top:-12px;background-repeat:no-repeat;background-size:23px 24px}.stripe-connect:active,.button-example:active{background:#005d93}.stripe-connect:active span,.button-example:active span{color:#EEE;background:#008cdd;background-image:-webkit-linear-gradient(#008cdd,#008cdd 85%,#239adf);background-image:-moz-linear-gradient(#008cdd,#008cdd 85%,#239adf);background-image:-ms-linear-gradient(#008cdd,#008cdd 85%,#239adf);background-image:linear-gradient(#008cdd,#008cdd 85%,#239adf);-moz-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1);box-shadow:inset 0 1px 0 rgba(0,0,0,0.1)}.stripe-connect span:before,.stripe-connect.blue span:before{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAYCAYAAAARfGZ1AAAKRGlDQ1BJQ0MgUHJvZmlsZQAASA2dlndUFNcXx9/MbC+0XZYiZem9twWkLr1IlSYKy+4CS1nWZRewN0QFIoqICFYkKGLAaCgSK6JYCAgW7AEJIkoMRhEVlczGHPX3Oyf5/U7eH3c+8333nnfn3vvOGQAoASECYQ6sAEC2UCKO9PdmxsUnMPG9AAZEgAM2AHC4uaLQKL9ogK5AXzYzF3WS8V8LAuD1LYBaAK5bBIQzmX/p/+9DkSsSSwCAwtEAOx4/l4tyIcpZ+RKRTJ9EmZ6SKWMYI2MxmiDKqjJO+8Tmf/p8Yk8Z87KFPNRHlrOIl82TcRfKG/OkfJSREJSL8gT8fJRvoKyfJc0WoPwGZXo2n5MLAIYi0yV8bjrK1ihTxNGRbJTnAkCgpH3FKV+xhF+A5gkAO0e0RCxIS5cwjbkmTBtnZxYzgJ+fxZdILMI53EyOmMdk52SLOMIlAHz6ZlkUUJLVlokW2dHG2dHRwtYSLf/n9Y+bn73+GWS9/eTxMuLPnkGMni/al9gvWk4tAKwptDZbvmgpOwFoWw+A6t0vmv4+AOQLAWjt++p7GLJ5SZdIRC5WVvn5+ZYCPtdSVtDP6386fPb8e/jqPEvZeZ9rx/Thp3KkWRKmrKjcnKwcqZiZK+Jw+UyL/x7ifx34VVpf5WEeyU/li/lC9KgYdMoEwjS03UKeQCLIETIFwr/r8L8M+yoHGX6aaxRodR8BPckSKPTRAfJrD8DQyABJ3IPuQJ/7FkKMAbKbF6s99mnuUUb3/7T/YeAy9BXOFaQxZTI7MprJlYrzZIzeCZnBAhKQB3SgBrSAHjAGFsAWOAFX4Al8QRAIA9EgHiwCXJAOsoEY5IPlYA0oAiVgC9gOqsFeUAcaQBM4BtrASXAOXARXwTVwE9wDQ2AUPAOT4DWYgSAID1EhGqQGaUMGkBlkC7Egd8gXCoEioXgoGUqDhJAUWg6tg0qgcqga2g81QN9DJ6Bz0GWoH7oDDUPj0O/QOxiBKTAd1oQNYSuYBXvBwXA0vBBOgxfDS+FCeDNcBdfCR+BW+Bx8Fb4JD8HP4CkEIGSEgeggFggLYSNhSAKSioiRlUgxUonUIk1IB9KNXEeGkAnkLQaHoWGYGAuMKyYAMx/DxSzGrMSUYqoxhzCtmC7MdcwwZhLzEUvFamDNsC7YQGwcNg2bjy3CVmLrsS3YC9ib2FHsaxwOx8AZ4ZxwAbh4XAZuGa4UtxvXjDuL68eN4KbweLwa3gzvhg/Dc/ASfBF+J/4I/gx+AD+Kf0MgE7QJtgQ/QgJBSFhLqCQcJpwmDBDGCDNEBaIB0YUYRuQRlxDLiHXEDmIfcZQ4Q1IkGZHcSNGkDNIaUhWpiXSBdJ/0kkwm65KdyRFkAXk1uYp8lHyJPEx+S1GimFLYlESKlLKZcpBylnKH8pJKpRpSPakJVAl1M7WBep76kPpGjiZnKRcox5NbJVcj1yo3IPdcnihvIO8lv0h+qXyl/HH5PvkJBaKCoQJbgaOwUqFG4YTCoMKUIk3RRjFMMVuxVPGw4mXFJ0p4JUMlXyWeUqHSAaXzSiM0hKZHY9O4tHW0OtoF2igdRzeiB9Iz6CX07+i99EllJWV75RjlAuUa5VPKQwyEYcgIZGQxyhjHGLcY71Q0VbxU+CqbVJpUBlSmVeeoeqryVYtVm1Vvqr5TY6r5qmWqbVVrU3ugjlE3VY9Qz1ffo35BfWIOfY7rHO6c4jnH5tzVgDVMNSI1lmkc0OjRmNLU0vTXFGnu1DyvOaHF0PLUytCq0DqtNa5N03bXFmhXaJ/RfspUZnoxs5hVzC7mpI6GToCOVGe/Tq/OjK6R7nzdtbrNug/0SHosvVS9Cr1OvUl9bf1Q/eX6jfp3DYgGLIN0gx0G3QbThkaGsYYbDNsMnxipGgUaLTVqNLpvTDX2MF5sXGt8wwRnwjLJNNltcs0UNnUwTTetMe0zg80czQRmu836zbHmzuZC81rzQQuKhZdFnkWjxbAlwzLEcq1lm+VzK32rBKutVt1WH60drLOs66zv2SjZBNmstemw+d3W1JZrW2N7w45q52e3yq7d7oW9mT3ffo/9bQeaQ6jDBodOhw+OTo5ixybHcSd9p2SnXU6DLDornFXKuuSMdfZ2XuV80vmti6OLxOWYy2+uFq6Zroddn8w1msufWzd3xE3XjeO2323Ineme7L7PfchDx4PjUevxyFPPk+dZ7znmZeKV4XXE67m3tbfYu8V7mu3CXsE+64P4+PsU+/T6KvnO9632fein65fm1+g36e/gv8z/bAA2IDhga8BgoGYgN7AhcDLIKWhFUFcwJTgquDr4UYhpiDikIxQODQrdFnp/nsE84by2MBAWGLYt7EG4Ufji8B8jcBHhETURjyNtIpdHdkfRopKiDke9jvaOLou+N994vnR+Z4x8TGJMQ8x0rE9seexQnFXcirir8erxgvj2BHxCTEJ9wtQC3wXbF4wmOiQWJd5aaLSwYOHlReqLshadSpJP4iQdT8YmxyYfTn7PCePUcqZSAlN2pUxy2dwd3Gc8T14Fb5zvxi/nj6W6pZanPklzS9uWNp7ukV6ZPiFgC6oFLzICMvZmTGeGZR7MnM2KzWrOJmQnZ58QKgkzhV05WjkFOf0iM1GRaGixy+LtiyfFweL6XCh3YW67hI7+TPVIjaXrpcN57nk1eW/yY/KPFygWCAt6lpgu2bRkbKnf0m+XYZZxl3Uu11m+ZvnwCq8V+1dCK1NWdq7SW1W4anS1/+pDa0hrMtf8tNZ6bfnaV+ti13UUahauLhxZ77++sUiuSFw0uMF1w96NmI2Cjb2b7Dbt3PSxmFd8pcS6pLLkfSm39Mo3Nt9UfTO7OXVzb5lj2Z4tuC3CLbe2emw9VK5YvrR8ZFvottYKZkVxxavtSdsvV9pX7t1B2iHdMVQVUtW+U3/nlp3vq9Orb9Z41zTv0ti1adf0bt7ugT2ee5r2au4t2ftun2Df7f3++1trDWsrD+AO5B14XBdT1/0t69uGevX6kvoPB4UHhw5FHupqcGpoOKxxuKwRbpQ2jh9JPHLtO5/v2pssmvY3M5pLjoKj0qNPv0/+/tax4GOdx1nHm34w+GFXC62luBVqXdI62ZbeNtQe395/IuhEZ4drR8uPlj8ePKlzsuaU8qmy06TThadnzyw9M3VWdHbiXNq5kc6kznvn487f6Iro6r0QfOHSRb+L57u9us9ccrt08rLL5RNXWFfarjpebe1x6Gn5yeGnll7H3tY+p772a87XOvrn9p8e8Bg4d93n+sUbgTeu3px3s//W/Fu3BxMHh27zbj+5k3Xnxd28uzP3Vt/H3i9+oPCg8qHGw9qfTX5uHnIcOjXsM9zzKOrRvRHuyLNfcn95P1r4mPq4ckx7rOGJ7ZOT437j154ueDr6TPRsZqLoV8Vfdz03fv7Db56/9UzGTY6+EL+Y/b30pdrLg6/sX3VOhU89fJ39ema6+I3am0NvWW+738W+G5vJf49/X/XB5EPHx+CP92ezZ2f/AAOY8/wRDtFgAAADQklEQVRIDbWVaUiUQRjHZ96dXY/d1fYQj1U03dJSw9YkFgy6DIkILRArQSSC7PjQjQQqVH7oQ0GHQUWgpQhKHzoNSqiUwpXcsrwIjzVtPVrzbPV9Z6bZhYV3N3WXYAeGmWeeZ37z8J95GEgpBf5oeXn1Es4fYAdzPDlM6je4RBYhR+LMU89UxiCBGiCgkUwsBYSA+SlPKLQBQAYEAZm+3j42K96z3NyOF7VOeMrp62opRcacjPW5+43rDTpNSKQ8QKZAEg7xmPCTs/O27uGJgXuNbW0pxyvLfTmAEBzthEsFZLxRvPdi5rpYo2cmUiQJDA4IVeo0obGdlvGfXUPj0Sym2zPuHxvzcWjDyVupJ/YYizKTGNjLw/HiduNTAqIRIUJ6Vpp+ky8bCSFgwQ2xgkGxFi1ioNWEBGuJB31gbLIv/2pd7SpFoGxtpCYkLSEq4ptlzIYFO7tc7w0TKkeEYg5ADnrWkkYhD8s26GPq3nW0WKxTptftPYBI4Mj3O2fHvKNZBMVSDmMwarXNjDkSF3d5kExZeiCr8M2VI+VFu9IvsPcYtzAvkfoEZkEEE45jMppq3ppbCNPFIY1nD1cpo07lbMmvOXeoDCF8BLKy9uUAAjDkBh+c6bz78mNtVVP7MwET7JBnqb4xXpdWVpC1OVzWn+ELHLCsneX/s7rkRWl1463cy1U3WroG21jhCGKJXPOtKQnpAuENvsAppgDB3TcDVIrpDHbK5Kd+y7W8iodNybHh22rOHyxUK+UaMYjZaoyp25rYL54TSihSKmwZ14v3lc3ZFxdbeywjn/tGJnkmzrydX1ApxOEACKymmXLYfXVpi1JMEOGxPi1ep18doY4r2J7uFumQQ9yGf01bMcZW8dpyc0oIjxxpuC5wuUDX+ovWrnYeg3aXvdLIqnmOvXPsfH6uA5YbTb1DX8ofvTLzTy6ZV4K6fAw+gXiATfdffmjeaUgc1UdpdWplsCooQBrEnqUw82dhdnjit/Vxc4f59tP3DRjzJvYteqrl4rmNlJIfrOwpgNklesDRNQBCHYtQAQqD2CgACNjHAJnG1EyfV/S67fZiJB5t2OGEe4n7L3fS4fpEv/2hUEATfoPbuam5v8N7nps70YTbAAAAAElFTkSuQmCC")}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){.stripe-connect span:before,.stripe-connect.blue span:before{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAAwCAYAAABuZUjcAAAKRGlDQ1BJQ0MgUHJvZmlsZQAASA2dlndUFNcXx9/MbC+0XZYiZem9twWkLr1IlSYKy+4CS1nWZRewN0QFIoqICFYkKGLAaCgSK6JYCAgW7AEJIkoMRhEVlczGHPX3Oyf5/U7eH3c+8333nnfn3vvOGQAoASECYQ6sAEC2UCKO9PdmxsUnMPG9AAZEgAM2AHC4uaLQKL9ogK5AXzYzF3WS8V8LAuD1LYBaAK5bBIQzmX/p/+9DkSsSSwCAwtEAOx4/l4tyIcpZ+RKRTJ9EmZ6SKWMYI2MxmiDKqjJO+8Tmf/p8Yk8Z87KFPNRHlrOIl82TcRfKG/OkfJSREJSL8gT8fJRvoKyfJc0WoPwGZXo2n5MLAIYi0yV8bjrK1ihTxNGRbJTnAkCgpH3FKV+xhF+A5gkAO0e0RCxIS5cwjbkmTBtnZxYzgJ+fxZdILMI53EyOmMdk52SLOMIlAHz6ZlkUUJLVlokW2dHG2dHRwtYSLf/n9Y+bn73+GWS9/eTxMuLPnkGMni/al9gvWk4tAKwptDZbvmgpOwFoWw+A6t0vmv4+AOQLAWjt++p7GLJ5SZdIRC5WVvn5+ZYCPtdSVtDP6386fPb8e/jqPEvZeZ9rx/Thp3KkWRKmrKjcnKwcqZiZK+Jw+UyL/x7ifx34VVpf5WEeyU/li/lC9KgYdMoEwjS03UKeQCLIETIFwr/r8L8M+yoHGX6aaxRodR8BPckSKPTRAfJrD8DQyABJ3IPuQJ/7FkKMAbKbF6s99mnuUUb3/7T/YeAy9BXOFaQxZTI7MprJlYrzZIzeCZnBAhKQB3SgBrSAHjAGFsAWOAFX4Al8QRAIA9EgHiwCXJAOsoEY5IPlYA0oAiVgC9gOqsFeUAcaQBM4BtrASXAOXARXwTVwE9wDQ2AUPAOT4DWYgSAID1EhGqQGaUMGkBlkC7Egd8gXCoEioXgoGUqDhJAUWg6tg0qgcqga2g81QN9DJ6Bz0GWoH7oDDUPj0O/QOxiBKTAd1oQNYSuYBXvBwXA0vBBOgxfDS+FCeDNcBdfCR+BW+Bx8Fb4JD8HP4CkEIGSEgeggFggLYSNhSAKSioiRlUgxUonUIk1IB9KNXEeGkAnkLQaHoWGYGAuMKyYAMx/DxSzGrMSUYqoxhzCtmC7MdcwwZhLzEUvFamDNsC7YQGwcNg2bjy3CVmLrsS3YC9ib2FHsaxwOx8AZ4ZxwAbh4XAZuGa4UtxvXjDuL68eN4KbweLwa3gzvhg/Dc/ASfBF+J/4I/gx+AD+Kf0MgE7QJtgQ/QgJBSFhLqCQcJpwmDBDGCDNEBaIB0YUYRuQRlxDLiHXEDmIfcZQ4Q1IkGZHcSNGkDNIaUhWpiXSBdJ/0kkwm65KdyRFkAXk1uYp8lHyJPEx+S1GimFLYlESKlLKZcpBylnKH8pJKpRpSPakJVAl1M7WBep76kPpGjiZnKRcox5NbJVcj1yo3IPdcnihvIO8lv0h+qXyl/HH5PvkJBaKCoQJbgaOwUqFG4YTCoMKUIk3RRjFMMVuxVPGw4mXFJ0p4JUMlXyWeUqHSAaXzSiM0hKZHY9O4tHW0OtoF2igdRzeiB9Iz6CX07+i99EllJWV75RjlAuUa5VPKQwyEYcgIZGQxyhjHGLcY71Q0VbxU+CqbVJpUBlSmVeeoeqryVYtVm1Vvqr5TY6r5qmWqbVVrU3ugjlE3VY9Qz1ffo35BfWIOfY7rHO6c4jnH5tzVgDVMNSI1lmkc0OjRmNLU0vTXFGnu1DyvOaHF0PLUytCq0DqtNa5N03bXFmhXaJ/RfspUZnoxs5hVzC7mpI6GToCOVGe/Tq/OjK6R7nzdtbrNug/0SHosvVS9Cr1OvUl9bf1Q/eX6jfp3DYgGLIN0gx0G3QbThkaGsYYbDNsMnxipGgUaLTVqNLpvTDX2MF5sXGt8wwRnwjLJNNltcs0UNnUwTTetMe0zg80czQRmu836zbHmzuZC81rzQQuKhZdFnkWjxbAlwzLEcq1lm+VzK32rBKutVt1WH60drLOs66zv2SjZBNmstemw+d3W1JZrW2N7w45q52e3yq7d7oW9mT3ffo/9bQeaQ6jDBodOhw+OTo5ixybHcSd9p2SnXU6DLDornFXKuuSMdfZ2XuV80vmti6OLxOWYy2+uFq6Zroddn8w1msufWzd3xE3XjeO2323Ineme7L7PfchDx4PjUevxyFPPk+dZ7znmZeKV4XXE67m3tbfYu8V7mu3CXsE+64P4+PsU+/T6KvnO9632fein65fm1+g36e/gv8z/bAA2IDhga8BgoGYgN7AhcDLIKWhFUFcwJTgquDr4UYhpiDikIxQODQrdFnp/nsE84by2MBAWGLYt7EG4Ufji8B8jcBHhETURjyNtIpdHdkfRopKiDke9jvaOLou+N994vnR+Z4x8TGJMQ8x0rE9seexQnFXcirir8erxgvj2BHxCTEJ9wtQC3wXbF4wmOiQWJd5aaLSwYOHlReqLshadSpJP4iQdT8YmxyYfTn7PCePUcqZSAlN2pUxy2dwd3Gc8T14Fb5zvxi/nj6W6pZanPklzS9uWNp7ukV6ZPiFgC6oFLzICMvZmTGeGZR7MnM2KzWrOJmQnZ58QKgkzhV05WjkFOf0iM1GRaGixy+LtiyfFweL6XCh3YW67hI7+TPVIjaXrpcN57nk1eW/yY/KPFygWCAt6lpgu2bRkbKnf0m+XYZZxl3Uu11m+ZvnwCq8V+1dCK1NWdq7SW1W4anS1/+pDa0hrMtf8tNZ6bfnaV+ti13UUahauLhxZ77++sUiuSFw0uMF1w96NmI2Cjb2b7Dbt3PSxmFd8pcS6pLLkfSm39Mo3Nt9UfTO7OXVzb5lj2Z4tuC3CLbe2emw9VK5YvrR8ZFvottYKZkVxxavtSdsvV9pX7t1B2iHdMVQVUtW+U3/nlp3vq9Orb9Z41zTv0ti1adf0bt7ugT2ee5r2au4t2ftun2Df7f3++1trDWsrD+AO5B14XBdT1/0t69uGevX6kvoPB4UHhw5FHupqcGpoOKxxuKwRbpQ2jh9JPHLtO5/v2pssmvY3M5pLjoKj0qNPv0/+/tax4GOdx1nHm34w+GFXC62luBVqXdI62ZbeNtQe395/IuhEZ4drR8uPlj8ePKlzsuaU8qmy06TThadnzyw9M3VWdHbiXNq5kc6kznvn487f6Iro6r0QfOHSRb+L57u9us9ccrt08rLL5RNXWFfarjpebe1x6Gn5yeGnll7H3tY+p772a87XOvrn9p8e8Bg4d93n+sUbgTeu3px3s//W/Fu3BxMHh27zbj+5k3Xnxd28uzP3Vt/H3i9+oPCg8qHGw9qfTX5uHnIcOjXsM9zzKOrRvRHuyLNfcn95P1r4mPq4ckx7rOGJ7ZOT437j154ueDr6TPRsZqLoV8Vfdz03fv7Db56/9UzGTY6+EL+Y/b30pdrLg6/sX3VOhU89fJ39ema6+I3am0NvWW+738W+G5vJf49/X/XB5EPHx+CP92ezZ2f/AAOY8/wRDtFgAAAIbklEQVRoBdVZa5BURxU+fZ9z57mzs7PvF4i7srAQSCifMVDERC0jYlzUlJalKeGPlCnL/NEfywpWacoiVZRVJIYfGjGUu5bxj5qHFSAYyQOBEsJzYSHDvnd2dp535j66PX1vNgsULDPs1cr2Vs+9e7v79NfnnnP663MJYwwWYxEWI2iOedEClxabxgkBwjEvOuA9PQOOlSw64JMr4vK8GidYYMcOES4tVSEAAZ8FAUqon1GiAJEEEG0CjFB8cTaxZUMAo1gEqQA0UABprAjPbrUwXnkesgqKP8CBk5vDIenrE+BKmwI+MawA1MbCkdV10cBDflXuVmSxQRbFkCAQZ9U2ZTaONyxKcyXDHjMs83ImV3rz6njmDRPMUZB80zAJOuvvsflkXpTP7DrWyeXcYCqk75AEieawrEoty1vrvlcV0ja3VQdb1rVUQVd9EFqqNIj5ZfDJooPBsCnohq2ldDMynC42XZnW7z09lu25lMxDMl34y0gyvTsBwyewc84Z4MEPpWIzF/MBcLLtNzJISmxZU+PmWETbtqGzfvVja5uguyF02+kCIEJUk6Ex4oMV9XP9ZnQT/nZ24it7XrtoJ5LZ7SjAM+Bg2+0ckAOcbBkQIaZFVzY1bGurjezYfn87PNQZ5+13ZaQRXMzH26Lg8ymfUokQdAR59INOc53GQ6q/Jiiua6oJ7+h9uAPua47cHeLrwHEmQRmTGLHV6x4v+JYwWsOFCGRDn6RKem1rPPrkN9Y0uqAXLN4VwCgjYGEE8rBgMAjwKsF9S9WgLa9qjYcf+Po9jXdlGrfC5Wj8Vg0Lf+ZENAFmpGB9TWTLhmUxUD1UDg/gtudRnK+a4RtkgqQyO+RT5LVrmiLgJcN19gcGNojUWriS5yRQm7pcBTc/vyCKdW1RrWwzOTiYhGf+dRUmcgZosgDVfgWaMCS2V2tO+OzG0MiVjdUwiFiYm9a7O4kJAoZEooV9H4T0O0ofODkKr5+6+nY6V3heVZQpv6ZWaz55qSJJnXjtUBW5pT7k8xeK5u+B0PQdBVbQgTLq9HbQYthyNVSmTT6A/nB0aGpF0K99+trY1F7TNI9PZGXkKUVRtYjGZCIOV1dHR4Ynz8FSLV8BrjK6uiAlpLcmco1ipmgpAaU8rfesboCuumBg31uJbx6+qH0uX9D/em0i85xFhaslKZKA8/82RtYDhd/1MkCuBnjxrLgKB0EQSb5oWO+9O1bZrsy3+Kc3dcH+b99b07NuyXe6P9r8z/am+C9lkuqCjo4qGGkQES76qJcuz/2GOlUoFuVsQS+98frlaSeq8Gkqqctrg7Dz853wwrfugUfXtj3W3tJ8oCletRUEXy1SCSSYHhdu41gFqILcZCrzwkvnJmE0U3JtHefiL7eS2l7th11f7IQ9j65aVh+r+nlzbd2TELJrHPLmIXZX3wyBX8MTQMm8PJ0u9Pe9chGQYy9omvXouHu/thJqI+Ef1sZDm0AMBmfPiQsSPDuY2zhWwSH5ISU5Pjm98x9nRo7+7JVBB3wl5nJz35Vo/z/esBQUVf2+QlkD9Aw42/Ts3Au7ushdAhQ5UzJoOjE+OrV9/1tDR7cNnIax7N2bDX9nm1bUQXdz9Rp/MLwRoqAtDOzcaO7rvDrAWW8vhcatWVNjF6cmJre9embkz1947h3YfXgIUgVzblQldxgFH0ZOr/qULwM15k4Zlci4Vd9ZU5ltY71oObHBnBFQBidmUk8kEsOP7Hntwqsb974NfS8PAh7LKoo23Hw+2R4FQcSzKlDPgFOEyf8kx3HW94kQ7xJgRRdAJG7CyIWxgiXNUN0+k5nJLN83k3n8D8eHN3+1ux5+8uBHIKiWt1G1Rn3IJkiUCcQzU3G0h9qWHMeJdoSrwtr9dl6I6DNjFwRRyxiKnStSqkPJPsGSmZ+mp1P9z2dzOy3Klj31yMdmX9S8V75APEsomMZwT9fz9i6vkW9AvEgQyqrBQM2Dq9rrD0gCgXfHA0jpjIRm2Zcw+3CR2tZl27SnMZFSZ1lWcRwZITeDckresAEXaoKwwBh7/WQubgTOQj5BVjdv7KiBJz7bztMNcHIk03JiONNyfiK/ntv2VMHAMx6BjpoA/Gj9Emdjul7W7e6TeQNDK9WJLRm361P5c1drEmAaymaYoXpfjZoiOk7FHWuh5dxEHmzLHiXM9oyTz9FawRZw65f5yyzXBMpd0JGhFKB5nSwRMVvumDv2cxm4m1f5X4AuWhRePDUOtqEPQJVVGfWcBz1ahmPlTlxzqaJLquYZU1HTvjcTMD6dOULM0n+g5nKposHzdWbo7FgEkDBviWlYx++53XtQ33kvDU8dHAJm6L8usdwEZn09S3qiPed5lcCSLUpI0eEA8620zLbDl6bh8T+egkI+/7Rl6kegcTSPst1QUKaM+brhrjnF2yUQJNxnrGMnR7KbTw5nYFVjyAl98w2+VdvVlA67Dw3BgROjAKa+yyrpz0BKTbJnez1NT6AKrrnA1bEi1av2v3xaiL90dnxL2Kc0rsXc4WpcQEc8AEtiGrRiejmK6WWeMDIxtVwwKExijB5KFuBYIg1cy8dx0dTQ/yQVc78yBXMIqJ5i/VvvkqHdSjXuM/THKy7w2LQJ6fpJms38QiHGvlzBt+RwJv2JQ2elbjyRtjIi1AIRMAsKPuQduHVzr2YW+kIBE5BTwOzzxLKOiMX8QVuWh00IpqD+S0WHtLlzefpLBOZo/IYvEqQPnTX5dxmy4xookqaCjRuT4mMi8g3bxs2KCkj3GFj4+QSzA0RkeskU8iCJeUiBDv09Jt8OPEV6k7DlP3gxxh/dAPymPh/Kf5d897dIOd9P7H8oEd4G1JV8wPGbRadx52sgLmrRAZ99EZ5+LZgV+v+4Llrg/wX6HRCxgvzAAwAAAABJRU5ErkJggg==")}}a.zoom{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}div.zoom-container{-webkit-backface-visibility:hidden;position:absolute;z-index:10000;top:0;left:0;height:100%;width:100%;display:none}div.zoom-container *{cursor:-webkit-zoom-out;cursor:-moz-zoom-out;cursor:zoom-out}div.zoom-container div.overlay{position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,0.85);opacity:.0;-webkit-transform:rotate3d(0,0,0,0);-webkit-transition:opacity 500ms ease;-moz-transition:opacity 500ms ease;-o-transition:opacity 500ms ease}div.zoom-container img{position:absolute;top:50%;left:50%;opacity:.0}div.zoom-container img.animating{-webkit-transition:opacity 500ms ease,-webkit-transform 500ms ease;-moz-transition:opacity 500ms ease,-moz-transform 500ms ease;-o-transition:opacity 500ms ease,-o-transform 500ms ease}div.zoom-container img.copy{opacity:1.0}div.zoom-container.shown div.overlay,div.zoom-container.shown img,div.zoom-containe.shown img.copy{opacity:1.0}#doc .checkout-doc .integration-custom,#doc .checkout-doc .integration-simple{display:none}#doc .checkout-doc.simple .integration-simple,#doc .checkout-doc.custom .integration-custom{display:inherit}#doc .checkout-doc.simple .integration-only-custom,#doc .checkout-doc.custom .integration-only-simple{color:#ababab}#doc .checkout-doc.simple .integration-only-custom a,#doc .checkout-doc.custom .integration-only-simple a{color:#ababab}#doc .checkout-doc .integration-more{padding-bottom:15px}#doc .checkout-doc .integration-more a{font-weight:700;cursor:pointer;font-size:13px}#doc .checkout-doc .integration-more>div.visible .more-content{display:block}#doc .checkout-doc .integration-more>div .more-content{padding:7px 0 15px 0;display:none}#doc .checkout-doc .stripe-button-container{margin:0 0 20px 0;height:45px}#doc .checkout-doc table td:first-child{text-align:right}#doc .checkout-doc table td:last-child>code{font-weight:700}#doc .checkout-doc table tr th{text-align:center}#doc .checkout-doc table tr th:first-child,#doc .checkout-doc table tr td:first-child{width:225px}#doc .checkout-doc .rounded-tabs{position:relative;width:692px;margin:30px auto}#doc .checkout-doc .rounded-tabs::after{content:"";position:absolute;left:156px;right:0;top:12px;height:1px;background:#dee2e7;box-shadow:0 1px 0 #fff}#doc .checkout-doc .rounded-tabs>*{width:72px}#doc .checkout-doc .rounded-tabs a{position:relative;margin:0;padding:0;z-index:1;display:inline-block;text-align:center;font:700 13px/25px "helvetica neue",helvetica,arial,sans-serif;text-shadow:0 1px 0 rgba(255,255,255,0.5);color:#008cdd;text-decoration:none;-webkit-transition:color .2s linear;transition:color .2s linear}#doc .checkout-doc .rounded-tabs a:focus,#doc .checkout-doc .rounded-tabs a:active{outline:0}#doc .checkout-doc .rounded-tabs .selected{color:#000}#doc .checkout-doc .rounded-tabs .selection{position:absolute;left:0;height:25px;background:rgba(231,232,233,0.7);box-shadow:inset 0 1px 1px rgba(151,161,180,0.35),0 1px 0 white;border-radius:13px;-webkit-transition:-webkit-transform .4s cubic-bezier(0.5,0,0.1,1.2);transition:transform .4s cubic-bezier(0.5,0,0.1,1.2)}#doc .checkout-doc .rounded-tabs :nth-child(2).selected+.selection{-webkit-transform:translateX(72px);transform:translateX(72px)}div#frontpage{margin-bottom:20px}div#frontpage.local-notice{margin-bottom:85px}div#switcher-content{height:297px;overflow:hidden;position:relative;background:#233042 url(https://stripe.com/img/frontpage/switcher-background.png);-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}div#switcher-content div.inner{height:297px}div#switcher-content div.part{position:absolute;width:900px;height:297px;padding-left:60px}div#switcher-content div.part img.illustration{position:absolute}div#accept-payments h1{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;color:#fff;font-size:32px;font-weight:600;letter-spacing:1px;margin-top:73px;text-shadow:0 1px 2px rgba(0,0,0,0.3)}div#accept-payments h2{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;color:#878e98;font-size:20px;margin-top:4px;-webkit-font-smoothing:antialiased;text-shadow:0 1px 2px rgba(0,0,0,0.3)}div#accept-payments img.illustration{top:-16px;left:521px}div#analytics{left:960px}div#analytics img.illustration{top:38px;left:547px}div#api{left:960px}div#api img.illustration{top:53px;left:500px}div#switcher-content a.button{position:absolute;top:182px;width:194px;height:34px;background:#23364e;text-align:center;background:transparent;background:-webkit-linear-gradient(rgba(0,0,0,0.25),rgba(0,0,0,0.55));background:-moz-linear-gradient(rgba(0,0,0,0.25),rgba(0,0,0,0.55));background:-ms-linear-gradient(rgba(0,0,0,0.25),rgba(0,0,0,0.55));background:-o-linear-gradient(rgba(0,0,0,0.25),rgba(0,0,0,0.55));background:linear-gradient(rgba(0,0,0,0.25),rgba(0,0,0,0.55));-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.26);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.26);-ms-box-shadow:0 1px 2px rgba(0,0,0,0.26);-o-box-shadow:0 1px 2px rgba(0,0,0,0.26);box-shadow:0 1px 2px rgba(0,0,0,0.26);-webkit-border-radius:18px;-moz-border-radius:18px;-ms-border-radius:18px;-o-border-radius:18px;border-radius:18px;-webkit-transition:box-shadow 200ms ease,-webkit-transform 0 ease;-moz-transition:box-shadow 200ms ease,-moz-transform 0 ease;-o-transition:box-shadow 200ms ease,-o-transform 0 ease;transition:box-shadow 200ms ease,transform 0 ease}div#switcher-content a.button:hover{-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.15),0 0 6px #5695db;-moz-box-shadow:0 1px 0 rgba(0,0,0,0.15),0 0 6px #5695db;-ms-box-shadow:0 1px 0 rgba(0,0,0,0.15),0 0 6px #5695db;-o-box-shadow:0 1px 0 rgba(0,0,0,0.15),0 0 6px #5695db;box-shadow:0 1px 0 rgba(0,0,0,0.15),0 0 6px #5695db}div#switcher-content a.button span{text-shadow:0 1px 1px rgba(0,0,0,0.53);padding-left:17px;padding-right:17px;height:34px;line-height:34px;font-size:14px;min-width:160px;width:160px;-webkit-border-radius:17px;-moz-border-radius:17px;-ms-border-radius:17px;-o-border-radius:17px;border-radius:17px}body.mozilla div#switcher-content a.button span{line-height:36px}div#more-info{background:#fff}div#info div.why{margin:0 60px;height:19px;border-bottom:1px solid #ebebeb;padding:50px 0 29px;position:relative}div#info div.why div.cards{height:18px;position:absolute;right:0;top:52px}div#info div.why div.cards div{background:url(https://stripe.com/img/frontpage/types.png) 0 0 no-repeat;height:18px;float:left}div#info div.why div.cards div.visa{width:39px;background-position:-1px 0}div#info div.why div.cards div.mastercard{width:30px;background-position:-49px 0;margin-left:9px}div#info div.why div.cards div.amex{width:52px;background-position:-88px 0;margin-left:9px}div#info div.why div.cards div.discover{width:77px;background-position:-153px 0;margin-left:13px}div#info div.why div.cards div.jcb{width:16px;background-position:-240px 0;margin-left:10px}div#info div.why span{position:relative;top:-6px;height:28px;display:block;width:400px;color:#333;font-size:26px;font-weight:600;letter-spacing:1px;font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif}div#info div.part{padding:45px 0;margin:0 60px;position:relative}div#info div.part div.title{background-repeat:no-repeat;background-position:50% 0}div#info div.part h2{font-size:20px;color:#313131;margin-top:-3px;margin-bottom:9px;font-size:22px;font-weight:600;font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif}div#info div.part div.title p{font-size:14px;line-height:20px;margin-bottom:10px;color:#777;width:360px;margin-top:4px}div#info div.part.odd{background:#cee1f4;margin:0;border:0;padding:1px 0;background-image:-webkit-gradient(linear,left top,right top,from(white),to(#bfd6ed));background-image:-moz-linear-gradient(0,white,#bfd6ed);background-image:-o-linear-gradient(left,white,#bfd6ed)}div#info div.part.odd div.inner{background:#fafcff;padding:0 60px;background-image:-webkit-gradient(linear,left top,right top,from(white),to(#f7fbff));background-image:-moz-linear-gradient(0,white,#f7fbff);background-image:-o-linear-gradient(left,white,#f7fbff)}#example-code pre:before{content:'$';color:#006be2;font-family:monospace;display:inline-block;padding-right:8px}#example-code pre.curl:before{content:'$'}#example-code pre.ruby:before{content:">>"}#example-code pre.python:before{content:">>>"}#example-code pre.php:before{content:"php >"}#example-code pre.java:before{content:'';padding-right:0}div#info div.part.fullstack{padding:50px 0}div#info div.part.fullstack div.title{margin-left:460px;padding-top:3px}div#info div.part.fullstack img{position:absolute;left:0;top:25px}div#info div.part.api div.title{padding-top:63px}div#info div.part.api h2{margin-bottom:8px !important}div#info div.part.api div#example-code{width:398px;border:1px solid #d2deeb;border-top-color:#b9c7d7;background:#fff;font-size:11px;margin:40px 0;position:relative;right:-10px;float:right;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 0 white;-moz-box-shadow:0 1px 0 white;-ms-box-shadow:0 1px 0 white;-o-box-shadow:0 1px 0 white;box-shadow:0 1px 0 white}div#info div.part.api div#example-code em{position:absolute;top:18px;left:20px}div#info div.part.api div#example-code pre{padding:18px;cursor:text;line-height:14px;min-height:84px;overflow:auto;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.15);-moz-box-shadow:inset 0 1px 3px rgba(0,0,0,0.15);-ms-box-shadow:inset 0 1px 3px rgba(0,0,0,0.15);-o-box-shadow:inset 0 1px 3px rgba(0,0,0,0.15);box-shadow:inset 0 1px 3px rgba(0,0,0,0.15)}div#info div.part.api div#example-code .no,div#info div.part.api div#example-code .line-numbers{display:none}div#info div.part.api div#example-controls{font-size:11px;background:#fcfdff;border-top:1px solid #e8eef6;padding:7px 10px;text-align:right;color:#999;-webkit-border-bottom-left-radius:4px;-moz-border-bottom-left-radius:4px;-ms-border-bottom-left-radius:4px;-o-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-bottom-right-radius:4px;-ms-border-bottom-right-radius:4px;-o-border-bottom-right-radius:4px;border-bottom-right-radius:4px}div#info div.part.api div#example-controls span{margin:0 3px}div#info div.part.api div.clear{clear:both}div#info div.part.pricing{height:211px;padding:56px 0 0 0}div#info div.part.pricing div.title{margin-left:460px}div#info div.part.pricing h2{margin-bottom:7px}div#info div.part.pricing img{position:absolute;top:32px;left:-20px}div#info div.part.developers{height:310px;padding:1px 0 1px 1px;margin:0}div#info div.part.developers div.inner{height:310px}div#info div.part.developers div.title{height:80px;padding-top:78px}div#info div.part.developers h2{margin-bottom:6px}div#info div.part.developers img{position:absolute;right:40px;top:25px}div#info div.part.users{padding:59px 0}div#info div.part.users div.title{padding-left:460px}div#info div.part.users div.title h2{margin-bottom:6px}div#info div.part.users div.title img{position:absolute;left:0;top:40px}div#info div.part.local{margin-bottom:-1px;overflow:hidden}div#info div.part.local div.title{padding:60px 0}div#info div.part.local h2{margin-bottom:6px}div#info div.part.local img{position:absolute;right:20px;top:1px}div#info div.part.local.uk img,div#info div.part.local.ireland img{right:0}div.frontpage-notification{background:#e6eaed;background:rgba(49,77,94,0.05);border:1px solid #cdd0d3;border-top-color:#bfc1c4;text-align:center;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(49,77,94,0.06),0 1px 0 rgba(255,255,255,0.33);-moz-box-shadow:inset 0 1px 1px rgba(49,77,94,0.06),0 1px 0 rgba(255,255,255,0.33);-ms-box-shadow:inset 0 1px 1px rgba(49,77,94,0.06),0 1px 0 rgba(255,255,255,0.33);-o-box-shadow:inset 0 1px 1px rgba(49,77,94,0.06),0 1px 0 rgba(255,255,255,0.33);box-shadow:inset 0 1px 1px rgba(49,77,94,0.06),0 1px 0 rgba(255,255,255,0.33);width:940px;margin:20px auto 2px;height:43px;position:absolute;z-index:300;left:50%;margin-left:-470px;margin-top:-65px}div.frontpage-notification a{width:940px;position:absolute;left:0;background:rgba(49,77,94,0);display:block;padding:13px 0;color:#61737c;font-size:14px;-webkit-font-smoothing:antialiased;text-decoration:none;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;text-shadow:0 1px 0 rgba(255,255,255,0.33);opacity:1.0;-webkit-transform:scale(1)}div.frontpage-notification a.animation{-webkit-transition:-webkit-transform 400ms cubic-bezier(0.33,1.66,0.66,0.99),opacity 400ms cubic-bezier(0.33,1.66,0.66,0.99),background 150ms ease;-moz-transition:opacity 400ms ease,background 150ms ease}div.frontpage-notification a.hidden{opacity:.0;-webkit-transform:scale(0.8)}div.frontpage-notification a strong{position:relative;font-weight:bold;color:#373c3f;padding-right:3px}div.frontpage-notification a strong::before{content:"";position:absolute}div.frontpage-notification a span{color:#008cdd;position:relative;padding-right:9px;padding-left:3px}div.frontpage-notification a span::after{pointer-events:none;content:" ";display:block;position:absolute;right:1px;top:0;height:100%;width:3px;background:url(https://stripe.com/img/anchor-arrow-solid.png) 0 50% no-repeat}div.frontpage-notification a:hover{background:rgba(49,77,94,0.05)}div.frontpage-notification a:hover span{text-decoration:underline}div.frontpage-notification a.connect strong,div.frontpage-notification a.payouts strong{padding-left:24px}div.frontpage-notification a.connect strong::before,div.frontpage-notification a.payouts strong::before{left:0;top:1px;width:15px;height:15px;background-image:url("https://stripe.com/img/frontpage/notifications/star.png");background-size:100% 100%}@media only screen and (-webkit-min-device-pixel-ratio:2){div.frontpage-notification a.connect strong::before,div.frontpage-notification a.payouts strong::before{background-image:url("https://stripe.com/img/frontpage/notifications/star@2x.png")}}div.frontpage-notification a.canada strong{padding-left:33px}div.frontpage-notification a.canada strong::before{left:0;top:-3px;width:21px;height:24px;background-image:url("https://stripe.com/img/frontpage/notifications/leaf.png");background-size:100% 100%}@media only screen and (-webkit-min-device-pixel-ratio:2){div.frontpage-notification a.canada strong::before{background-image:url("https://stripe.com/img/frontpage/notifications/leaf@2x.png")}}div.frontpage-notification a.uk strong{padding-left:33px}div.frontpage-notification a.uk strong::before{left:0;top:0;width:23px;height:17px;background-image:url("../img/flags/gb.png");background-size:100% 100%}@media only screen and (-webkit-min-device-pixel-ratio:2){div.frontpage-notification a.uk strong::before{background-image:url("https://stripe.com/img/flags/gb@2x.png")}}div.frontpage-notification a.ie strong{padding-left:33px}div.frontpage-notification a.ie strong::before{left:0;top:0;width:23px;height:17px;background-image:url("../img/flags/ie.png");background-size:100% 100%}@media only screen and (-webkit-min-device-pixel-ratio:2){div.frontpage-notification a.ie strong::before{background-image:url("https://stripe.com/img/flags/ie@2x.png")}}body#global{background:#fbfcfc}body#global div.box{-webkit-box-shadow:none;-moz-box-shadow:none;-ms-box-shadow:none;-o-box-shadow:none;box-shadow:none;border-bottom:1px solid #ebebeb;border-top:1px solid #ebebeb;padding:77px 0;position:relative;z-index:50}body#global div.banner{position:relative;z-index:100;padding-bottom:70px}body#global div.banner div.text{width:504px}body#global div.banner div.text h1.title{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;color:#33434d;font-size:28px;font-weight:bold;padding-bottom:6px;text-shadow:0 1px 0 #fff}body#global div.banner div.text p.subline{color:#7a8799;font-size:15px;line-height:1.4em;text-shadow:0 1px 0 #fff}body#global div.banner div.sidebar{-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 2px 2px rgba(0,0,0,0.1),0 0 0 1px rgba(0,0,0,0.1);-moz-box-shadow:0 2px 2px rgba(0,0,0,0.1),0 0 0 1px rgba(0,0,0,0.1);-ms-box-shadow:0 2px 2px rgba(0,0,0,0.1),0 0 0 1px rgba(0,0,0,0.1);-o-box-shadow:0 2px 2px rgba(0,0,0,0.1),0 0 0 1px rgba(0,0,0,0.1);box-shadow:0 2px 2px rgba(0,0,0,0.1),0 0 0 1px rgba(0,0,0,0.1);position:absolute;right:0;top:0;width:280px}body#global div.banner div.sidebar h4.title{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;color:#33434d;font-size:15px;font-weight:bold}body#global div.banner div.sidebar div.get-notified{-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;-ms-border-radius:5px 5px 0 0;-o-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;background:white;padding:25px 20px;position:relative}body#global div.banner div.sidebar div.get-notified form{filter:alpha(opacity=100);opacity:1;-webkit-transition:all .4s 0 ease-in-out;-moz-transition:all .4s 0 ease-in-out;-o-transition:all .4s 0 ease-in-out;transition:all .4s 0 ease-in-out;position:relative;z-index:150}body#global div.banner div.sidebar div.get-notified form p.subline{color:#677487;font-size:12px;line-height:1.5em;padding:2px 0 12px}body#global div.banner div.sidebar div.get-notified form p.error{color:#cb1a1a;font-size:12px;font-weight:bold;margin-bottom:10px;text-align:center}body#global div.banner div.sidebar div.get-notified form input{-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 1px 0 0 white,inset 0 1px 1px 0 rgba(0,0,0,0.1);-moz-box-shadow:0 1px 0 0 white,inset 0 1px 1px 0 rgba(0,0,0,0.1);-ms-box-shadow:0 1px 0 0 white,inset 0 1px 1px 0 rgba(0,0,0,0.1);-o-box-shadow:0 1px 0 0 white,inset 0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 0 0 white,inset 0 1px 1px 0 rgba(0,0,0,0.1);box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;background:#fff;border:1px solid #b6c7d1;border-bottom-color:#c1d1db;border-top-color:#adbec9;color:#a4b0b7;font-size:12px;height:30px;margin-bottom:10px;outline:0;padding:0 11px;width:240px}body#global div.banner div.sidebar div.get-notified form input::-webkit-input-placeholder{color:#a4b0b7}body#global div.banner div.sidebar div.get-notified form input:-moz-placeholder{color:#a4b0b7}body#global div.banner div.sidebar div.get-notified form input::-moz-placeholder{color:#a4b0b7}body#global div.banner div.sidebar div.get-notified form input:-ms-input-placeholder{color:#a4b0b7}body#global div.banner div.sidebar div.get-notified form input:hover,body#global div.banner div.sidebar div.get-notified form input:active,body#global div.banner div.sidebar div.get-notified form input:focus{border-color:#adbec9;color:#7a8799}body#global div.banner div.sidebar div.get-notified form input.required{border-color:#cb1a1a}body#global div.banner div.sidebar div.get-notified form input:active,body#global div.banner div.sidebar div.get-notified form input:focus{-webkit-box-shadow:0 0 5px #28a0e5,inset 0 1px 1px 0 rgba(0,0,0,0.1);-moz-box-shadow:0 0 5px #28a0e5,inset 0 1px 1px 0 rgba(0,0,0,0.1);-ms-box-shadow:0 0 5px #28a0e5,inset 0 1px 1px 0 rgba(0,0,0,0.1);-o-box-shadow:0 0 5px #28a0e5,inset 0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 0 5px #28a0e5,inset 0 1px 1px 0 rgba(0,0,0,0.1);border-color:#28a0e5}body#global div.banner div.sidebar div.get-notified form div.country{-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1),inset 0 1px 0 0 white;-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1),inset 0 1px 0 0 white;-ms-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1),inset 0 1px 0 0 white;-o-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1),inset 0 1px 0 0 white;box-shadow:0 1px 1px 0 rgba(0,0,0,0.1),inset 0 1px 0 0 white;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;background:-webkit-linear-gradient(bottom,#f1f5f8,white);background:-moz-linear-gradient(bottom,#f1f5f8,white);background:-o-linear-gradient(bottom,#f1f5f8,white);background:linear-gradient(top,#f1f5f8,white);border:1px solid #b6c7d1;border-bottom-color:#adbec9;border-top-color:#c1d1db;cursor:pointer;height:30px;overflow:hidden;position:relative;width:240px}body#global div.banner div.sidebar div.get-notified form div.country.required{border-color:#cb1a1a}body#global div.banner div.sidebar div.get-notified form div.country div.arrows{background-image:url("https://stripe.com/img/global/arrows.png");background-size:100% 100%;height:11px;position:absolute;right:10px;top:9px;width:7px;z-index:40}@media only screen and (-webkit-min-device-pixel-ratio:2){body#global div.banner div.sidebar div.get-notified form div.country div.arrows{background-image:url("https://stripe.com/img/global/arrows@2x.png")}}body#global div.banner div.sidebar div.get-notified form div.country select{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;appearance:none;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-moz-appearance:window;background:transparent;border:0;color:#576777;cursor:pointer;font-size:12px;font-weight:bold;left:-1px;line-height:17px;margin:0;outline:0;overflow:hidden;padding:6px 146px 20px 12px;position:absolute;right:-1px;text-overflow:ellipse;text-shadow:0 1px 0 #fff;top:-1px;vertical-align:bottom;white-space:nowrap;width:150%;z-index:50}body#global div.banner div.sidebar div.get-notified form div.country select:active,body#global div.banner div.sidebar div.get-notified form div.country select:focus{color:#576777}@media(min-resolution:.001dpcm){body#global div.banner div.sidebar div.get-notified form div.country select{padding-bottom:11px}}body#global div.banner div.sidebar div.get-notified form button{height:30px;margin-top:10px;text-align:center;width:100%}body#global div.banner div.sidebar div.get-notified form button span{height:28px;line-height:28px}body#global div.banner div.sidebar div.get-notified div.success{-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;-ms-border-radius:5px 5px 0 0;-o-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;filter:alpha(opacity=0);opacity:0;-webkit-transform:scale(1.3);-moz-transform:scale(1.3);-o-transform:scale(1.3);-webkit-transition:all .5s .2s cubic-bezier(0.52,1.54,0.53,1);-moz-transition:all .5s .2s cubic-bezier(0.52,1.54,0.53,1);-o-transition:all .5s .2s cubic-bezier(0.52,1.54,0.53,1);transition:all .5s .2s cubic-bezier(0.52,1.54,0.53,1);bottom:0;left:0;position:absolute;right:0;top:0;z-index:100;-webkit-font-smoothing:antialiased}body#global div.banner div.sidebar div.get-notified div.success div.icon{background-image:url("https://stripe.com/img/global/success-icon.png");background-size:100% 100%;height:56px;margin:44px auto 0;width:56px}@media only screen and (-webkit-min-device-pixel-ratio:2){body#global div.banner div.sidebar div.get-notified div.success div.icon{background-image:url("https://stripe.com/img/global/success-icon@2x.png")}}body#global div.banner div.sidebar div.get-notified div.success h4.title{font-size:20px;padding:16px 0 4px;text-align:center}body#global div.banner div.sidebar div.get-notified div.success p.subline{color:#7a8799;font-size:13px;line-height:1.4em;padding:0 20px;text-align:center}body#global div.banner div.sidebar div.current-countries{-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-ms-border-radius:0 0 5px 5px;-o-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(0,0,0,0.05);-ms-box-shadow:inset 0 1px 0 rgba(0,0,0,0.05);-o-box-shadow:inset 0 1px 0 rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(0,0,0,0.05);background:#f6f9fa;padding:25px 20px}body#global div.banner div.sidebar div.current-countries h4.title{padding-bottom:2px}body#global div.banner div.sidebar div.current-countries div.country{overflow:hidden;padding:3px 0}body#global div.banner div.sidebar div.current-countries div.country div.flag{background-image:url("../img/flags/us.png");background-size:100% 100%;height:17px;float:left;width:23px}@media only screen and (-webkit-min-device-pixel-ratio:2){body#global div.banner div.sidebar div.current-countries div.country div.flag{background-image:url("https://stripe.com/img/flags/us@2x.png")}}body#global div.banner div.sidebar div.current-countries div.country p.label{color:#677487;float:left;font-size:12px;font-weight:bold;line-height:17px;padding:0 4px}body#global div.banner div.sidebar div.current-countries div.country div.beta{background-image:url("https://stripe.com/img/global/beta-icon.png");background-size:100% 100%;float:left;height:15px;margin-top:2px;width:33px}@media only screen and (-webkit-min-device-pixel-ratio:2){body#global div.banner div.sidebar div.current-countries div.country div.beta{background-image:url("https://stripe.com/img/global/beta-icon@2x.png")}}body#global div.banner div.sidebar div.current-countries div.country.au .flag{background-image:url("../img/flags/au.png");background-size:100% 100%}@media only screen and (-webkit-min-device-pixel-ratio:2){body#global div.banner div.sidebar div.current-countries div.country.au .flag{background-image:url("https://stripe.com/img/flags/au@2x.png")}}body#global div.banner div.sidebar div.current-countries div.country.be .flag{background-image:url("../img/flags/be.png");background-size:100% 100%}@media only screen and (-webkit-min-device-pixel-ratio:2){body#global div.banner div.sidebar div.current-countries div.country.be .flag{background-image:url("https://stripe.com/img/flags/be@2x.png")}}body#global div.banner div.sidebar div.current-countries div.country.ca .flag{background-image:url("../img/flags/ca.png");background-size:100% 100%}@media only screen and (-webkit-min-device-pixel-ratio:2){body#global div.banner div.sidebar div.current-countries div.country.ca .flag{background-image:url("https://stripe.com/img/flags/ca@2x.png")}}body#global div.banner div.sidebar div.current-countries div.country.de .flag{background-image:url("../img/flags/de.png");background-size:100% 100%}@media only screen and (-webkit-min-device-pixel-ratio:2){body#global div.banner div.sidebar div.current-countries div.country.de .flag{background-image:url("https://stripe.com/img/flags/de@2x.png")}}body#global div.banner div.sidebar div.current-countries div.country.es .flag{background-image:url("../img/flags/es.png");background-size:100% 100%}@media only screen and (-webkit-min-device-pixel-ratio:2){body#global div.banner div.sidebar div.current-countries div.country.es .flag{background-image:url("https://stripe.com/img/flags/es@2x.png")}}body#global div.banner div.sidebar div.current-countries div.country.fr .flag{background-image:url("../img/flags/fr.png");background-size:100% 100%}@media only screen and (-webkit-min-device-pixel-ratio:2){body#global div.banner div.sidebar div.current-countries div.country.fr .flag{background-image:url("https://stripe.com/img/flags/fr@2x.png")}}body#global div.banner div.sidebar div.current-countries div.country.gb .flag{background-image:url("../img/flags/gb.png");background-size:100% 100%}@media only screen and (-webkit-min-device-pixel-ratio:2){body#global div.banner div.sidebar div.current-countries div.country.gb .flag{background-image:url("https://stripe.com/img/flags/gb@2x.png")}}body#global div.banner div.sidebar div.current-countries div.country.ie .flag{background-image:url("../img/flags/ie.png");background-size:100% 100%}@media only screen and (-webkit-min-device-pixel-ratio:2){body#global div.banner div.sidebar div.current-countries div.country.ie .flag{background-image:url("https://stripe.com/img/flags/ie@2x.png")}}body#global div.banner div.sidebar div.current-countries div.country.lu .flag{background-image:url("../img/flags/lu.png");background-size:100% 100%}@media only screen and (-webkit-min-device-pixel-ratio:2){body#global div.banner div.sidebar div.current-countries div.country.lu .flag{background-image:url("https://stripe.com/img/flags/lu@2x.png")}}body#global div.banner div.sidebar div.current-countries div.country.nl .flag{background-image:url("../img/flags/nl.png");background-size:100% 100%}@media only screen and (-webkit-min-device-pixel-ratio:2){body#global div.banner div.sidebar div.current-countries div.country.nl .flag{background-image:url("https://stripe.com/img/flags/nl@2x.png")}}body#global div.banner div.sidebar div.current-countries div.country.fi .flag{background-image:url("../img/flags/fi.png");background-size:100% 100%}@media only screen and (-webkit-min-device-pixel-ratio:2){body#global div.banner div.sidebar div.current-countries div.country.fi .flag{background-image:url("https://stripe.com/img/flags/fi@2x.png")}}body#global div.banner div.map{background-image:url("https://stripe.com/img/global/map.png");background-size:100% 100%;height:384px;margin-top:40px;width:713px}@media only screen and (-webkit-min-device-pixel-ratio:2){body#global div.banner div.map{background-image:url("https://stripe.com/img/global/map@2x.png")}}body#global div.separator{background:#ebebeb;height:1px;margin:77px auto;position:relative;z-index:100}body#global div.faqs h2.title{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;color:#33434d;font-size:20px;font-weight:bold;padding-bottom:24px}body#global div.faqs div.row{overflow:hidden;padding-bottom:36px}body#global div.faqs div.row:last-child{padding-bottom:0}body#global div.faqs div.row div.faq{float:left;width:443px}body#global div.faqs div.row div.faq h3.question{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;color:#33434d;font-size:16px;font-weight:bold;padding-bottom:6px}body#global div.faqs div.row div.faq p.answer{color:#7a8799;font-size:13px;line-height:1.5em}body#global div.faqs div.row div.faq:last-child{float:right}body#global.complete div.banner div.sidebar div.get-notified form{filter:alpha(opacity=0);opacity:0;-webkit-transform:scale(0.8);-moz-transform:scale(0.8);-o-transform:scale(0.8);z-index:100}body#global.complete div.banner div.sidebar div.get-notified div.success{filter:alpha(opacity=100);opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-o-transform:scale(1);z-index:150}div#guides{display:none;width:940px;height:100%;margin:0 auto;pointer-events:0;position:fixed;left:50%;margin-left:-470px}div#guides div{position:absolute;z-index:90000;width:1px;height:100%;background:rgba(255,0,0,0.3)}div#guides div.one{left:77px}div#guides div.two{left:273px}div#guides div.three{left:469px}div#guides div.four{left:665px}div#guides div.five{right:77px}div#apps{margin:auto;background:white;-webkit-font-smoothing:antialiased}div#apps div.divider{width:794px;height:1px;background-image:linear-gradient(left,white,#eaecef,white);background-image:-webkit-linear-gradient(left,white,#eaecef,white);background-image:-moz-linear-gradient(left,white,#eaecef,white);background-image:-o-linear-gradient(left,white,#eaecef,white);margin:40px 0;display:none}div#apps div.separator{position:absolute;width:940px;height:84px;box-shadow:inset 0 1px 0 0 rgba(56,99,153,0.1);background:-webkit-linear-gradient(rgba(56,99,153,0.45),#f2f6f9 3px,white);background:-moz-linear-gradient(rgba(56,99,153,0.45),#f2f6f9 3px,white);background:-o-linear-gradient(rgba(56,99,153,0.45),#f2f6f9 3px,white);z-index:0}div#apps div.separator::after{content:"";position:absolute;display:block;left:0;right:0;height:4px;top:-4px;background:transparent;background:-webkit-linear-gradient(rgba(49,68,95,0),rgba(49,68,95,0.12));background:-moz-linear-gradient(rgba(49,68,95,0),rgba(49,68,95,0.12));background:-ms-linear-gradient(rgba(49,68,95,0),rgba(49,68,95,0.12));background:-o-linear-gradient(rgba(49,68,95,0),rgba(49,68,95,0.12));background:linear-gradient(rgba(49,68,95,0),rgba(49,68,95,0.12))}div#apps div.gradient{position:absolute;top:-5px;width:940px;height:96px;background-image:linear-gradient(left,white,rgba(255,255,255,0),white),linear-gradient(90deg,white 10%,rgba(255,255,255,0));background-image:-webkit-linear-gradient(left,white,rgba(255,255,255,0),white),-webkit-linear-gradient(90deg,white 10%,rgba(255,255,255,0));background-image:-moz-linear-gradient(left,white,rgba(255,255,255,0),white),-moz-linear-gradient(90deg,white 10%,rgba(255,255,255,0));background-image:-o-linear-gradient(left,white,rgba(255,255,255,0),white),-o-linear-gradient(90deg,white 10%,rgba(255,255,255,0));z-index:1}div#apps div.part-title{clear:both;position:relative;margin-top:50px;margin-bottom:40px;padding-bottom:20px;margin-bottom:30px;xborder-top:1px solid rgba(56,99,153,0.075);padding-top:70px;padding-bottom:0;margin-bottom:40px;pxadding-bottom:20px;bxorder-bottom:1px solid rgba(56,99,153,0.075)}div#apps div.part-title:first-child{margin-top:0}div#apps div.part-title:after{content:"";display:block;height:1px;width:100%;position:absolute;top:50%;left:0;xbackground:rgba(56,99,153,0.075)}div#apps div.part-title h2{position:relative;z-index:10;font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:24px;font-weight:bold;color:#313b45;margin-bottom:20px;background:#fff;padding-right:20px;display:inline-block;margin-bottom:5px}div#apps div.part-title p.desc{font-size:14px;line-height:22px;color:#7b828a;font-size:18px;color:#6a757c}div#apps .header{position:relative}div#apps .header img{position:absolute;z-index:20;top:-10px;left:10px}div#apps .header div.title{padding-top:53px;padding-bottom:59px;padding-left:320px;padding-right:100px}div#apps .header div.title h1{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;position:relative;font-size:37px;font-weight:600;color:#313b45;margin-bottom:3px}div#apps .header div.title p{font-size:17px;line-height:24px;color:#7b828a;-webkit-font-smoothing:antialiased}div#apps .page-content{position:relative;z-index:20;padding:60px 77px 0}div#apps .page-content div.use-cases{position:relative;z-index:10}div#apps .page-content div.use-cases img{float:right;margin-top:10px;margin-right:0;margin-left:40px;margin-bottom:10px;position:relative}div#apps .page-content div.use-cases img.users{left:-3px}div#apps .page-content div.use-cases img.data{top:0;left:-7px}div#apps .page-content div.use-cases div.case{display:block;float:left;width:376px}div#apps .page-content div.use-cases div.case h2{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-weight:bold;color:#333;margin-bottom:8px;font-size:24px;font-weight:bold;color:#313b45;padding-right:20px}div#apps .page-content div.use-cases div.case h3{font-size:18px;line-height:24px;color:#6a757c;border-bottom:1px solid #eef0f2;margin-bottom:20px;padding-bottom:20px}div#apps .page-content div.use-cases div.case p{font-size:14px;line-height:22px;color:#7b828a;xpadding-right:20px;margin-bottom:20px}div#apps .page-content div.use-cases div.case p:last-child{margin-bottom:0}div#apps .page-content div.use-cases div.case:first-child{float:left}div#apps .page-content div.use-cases div.case:last-child{float:right}div#apps .page-content div.use-cases div.case strong{font-weight:bold}div#apps .page-content div.how-it-works{position:relative}div#apps .page-content div.how-it-works h3{font-size:13px;line-height:20px;font-weight:bold;color:#333}div#apps .page-content div.how-it-works p{padding-right:20px;font-size:13px;line-height:20px;color:#7b828a}div#apps .page-content div.how-it-works div.flow{width:606px;height:240px;border-right:1px solid #e2eaee}div#apps .page-content div.how-it-works div.flow div.col{background-image:url("https://stripe.com/img/apps/arrow.png");background-size:63px 13px;background-repeat:no-repeat;background-position:134px 69px;position:relative;width:202px;float:left;padding-top:159px}@media only screen and (-webkit-min-device-pixel-ratio:2){div#apps .page-content div.how-it-works div.flow div.col{background-image:url("https://stripe.com/img/apps/arrow@2x.png")}}div#apps .page-content div.how-it-works div.flow div.col img{position:absolute;top:0;left:-3px}div#apps .page-content div.how-it-works div.flow div.col.first img{top:-26px;left:-68px}div#apps .page-content div.how-it-works div.flow div.col.third{background:0}div#apps .page-content div.how-it-works div.done{padding-top:159px;width:182px;position:absolute;right:-30px;top:0}div#apps .page-content div.how-it-works div.done img{position:absolute;top:11px;left:7px}div#apps .page-content div.features ul{width:356px;float:left}div#apps .page-content div.features ul.second{float:right}div#apps .page-content div.features ul li{position:relative;margin-bottom:20px}div#apps .page-content div.features ul li img{position:absolute;top:2px}div#apps .page-content div.features ul li div{padding-left:40px;xpadding-left:0}div#apps .page-content div.features ul li h3{display:block;margin-bottom:0;font-size:14px;line-height:20px;font-weight:bold;color:#333}div#apps .page-content div.features ul li p{font-size:13px;line-height:20px;color:#7b828a}div#apps .page-content div.features ul li:last-child{margin-bottom:0}div#apps .page-content ul.companies{clear:both;margin-top:60px;border-top:1px solid rgba(56,99,153,0.075);border-bottom:1px solid rgba(56,99,153,0.075);margin-left:-20px;margin-right:-20px;padding:20px 0;text-align:center;height:50px;opacity:.8}div#apps .page-content ul.companies li{display:inline;margin-right:22px;height:50px;line-height:50px}div#apps .page-content ul.companies li img{vertical-align:middle}div#apps .page-content ul.companies li:last-child{margin:0}div#apps div#get-started{padding:50px 0;border:0}div#apps div#get-started p{color:#7b828a}@media screen and (-webkit-min-device-pixel-ratio:2){div#apps .header .icon{background-image:url(https://stripe.com/img/apps/passport@2x.png);background-size:281px 250px}}html.initial-js-state div.title,html.initial-js-state div.showcase-separator,html.initial-js-state div#showcase-images div.site{opacity:.0 !important}body#showcase-page{background:#fbfcfc;overflow-x:hidden}body#showcase-page div#get-started-wrap{height:72px}body#showcase-page div#get-started{height:72px;border-top:0;padding:0;margin:0;text-align:center}body#showcase-page div#get-started.sticky{position:fixed;bottom:-72px;z-index:100;width:100%;background:rgba(251,252,252,0.95)}body#showcase-page div#get-started.sticky::after{content:" ";width:100%;top:-45px;height:45px;position:absolute;z-index:100;pointer-events:none;left:0;background:transparent;background:-webkit-linear-gradient(rgba(251,252,252,0),rgba(251,252,252,0.95));background:-moz-linear-gradient(rgba(251,252,252,0),rgba(251,252,252,0.95));background:-ms-linear-gradient(rgba(251,252,252,0),rgba(251,252,252,0.95));background:-o-linear-gradient(rgba(251,252,252,0),rgba(251,252,252,0.95));background:linear-gradient(rgba(251,252,252,0),rgba(251,252,252,0.95))}body#showcase-page div#get-started.sticky.bottom{opacity:0;z-index:-999}body#showcase-page div#get-started p{width:940px;margin:0 auto;padding:20px 0;color:#555;-webkit-font-smoothing:antialiased}div#showcase{width:940px;margin:0 auto 24px}div#showcase div.title{background:url(https://stripe.com/img/showcase/title.png);width:656px;height:106px;margin:50px auto 0;opacity:1.0;-webkit-transform:translate(0,0);-moz-transform:translate(0,0);-o-transform:translate(0,0);-webkit-transform:translate3d(0,0,0,0)}div#showcase div.title.animation{-webkit-transition:opacity 1s ease,-webkit-transform 1s ease;-moz-transition:opacity 1s ease,-moz-transform 1s ease;-o-transition:opacity 1s ease,-o-transform 1s ease;transition:opacity 1s ease,transform 1s ease}div#showcase div.title.hidden{opacity:.0;-webkit-transform:translateY(-40px);-moz-transform:translateY(-40px);-o-transform:translateY(-40px)}div#showcase div.title h2,div#showcase div.title h3{text-indent:100%;white-space:nowrap;overflow:hidden}div.showcase-separator{background:url(https://stripe.com/img/showcase/Separator.png) 50% 50% no-repeat;width:940px;height:13px;margin:45px auto 25px}div.showcase-separator.animation{-webkit-transition:opacity 1s ease,-webkit-transform 0 ease;-moz-transition:opacity 1s ease,-moz-transform 0 ease;-o-transition:opacity 1s ease,-o-transform 0 ease;transition:opacity 1s ease,transform 0 ease}div.showcase-separator.hidden{opacity:.0}div#showcase-images{width:1048px;margin:0 auto 25px}div#showcase-images div.site{width:318px;float:left;margin:0 15px}div#showcase-images div.site img{background:url(https://stripe.com/img/showcase/frame.png);padding:9px 11px 13px;background:url(https://stripe.com/img/showcase/frame2.png);padding:2px 6px 8px;position:relative;z-index:10;margin-top:25px}div#showcase-images div.site img.noscript{position:absolute;top:0;background:0}div#showcase-images div.site div.data{position:absolute;z-index:100;top:27px;left:6px;width:306px;height:239px;pointer-events:none;-webkit-transition:opacity 300ms ease,-webkit-transform 0 ease;-moz-transition:opacity 300ms ease,-moz-transform 0 ease;-o-transition:opacity 300ms ease,-o-transform 0 ease;transition:opacity 300ms ease,transform 0 ease;opacity:1.0}div#showcase-images div.site div.data p{position:absolute;bottom:0;background:rgba(0,0,0,0.8);border-top:rgba(255,255,255,0.8);padding:10px 10px;width:286px;color:#fff;font-size:11px}div#showcase-images div.site div.info{position:relative;z-index:0;text-align:center;-webkit-font-smoothing:antialiased;padding:10px 0 25px;-webkit-transform:translateY(0);-moz-transform:translateY(0);-o-transform:translateY(0);opacity:1.0}div#showcase-images div.site div.info h3{font-size:18px;color:#222;font-weight:bold;line-height:18px;margin-bottom:7px;font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif}div#showcase-images div.site div.info p{line-height:18px;font-size:14px;color:#666}div#showcase-images div.site div.info p span{color:#0079ff}div#showcase-images div.site.animation div.info{-webkit-transition:opacity 300ms ease,-webkit-transform 300ms ease;-moz-transition:opacity 300ms ease,-moz-transform 300ms ease;-o-transition:opacity 300ms ease,-o-transform 300ms ease;transition:opacity 300ms ease,transform 300ms ease}div#showcase-images div.site.hidden{opacity:.0}div#showcase-images div.site.hidden div.info{-webkit-transform:translateY(-100px);-moz-transform:translateY(-100px);-o-transform:translateY(-100px);opacity:.0}div#showcase-images div.site.hidden a{cursor:default;pointer-events:none}div#showcase-images div.site a{text-decoration:none;display:block;position:relative}div#showcase-images div.site a div.hover{position:absolute;left:0;top:-2px;width:100%;height:251px;top:27px;left:6px;width:306px;height:239px;-webkit-box-shadow:0 0 20px #0079ff;-moz-box-shadow:0 0 20px #0079ff;-ms-box-shadow:0 0 20px #0079ff;-o-box-shadow:0 0 20px #0079ff;box-shadow:0 0 20px #0079ff;background:transparent;opacity:.0;-webkit-transition:opacity 250ms ease,-webkit-transform 0 ease;-moz-transition:opacity 250ms ease,-moz-transform 0 ease;-o-transition:opacity 250ms ease,-o-transform 0 ease;transition:opacity 250ms ease,transform 0 ease}div#showcase-images div.site a:hover div.hover{opacity:1.0}div#showcase-images div.site a:active img{opacity:.85}div#showcase-images div.site a:active div.hover{background:#000}div#showcase-images div.clear{clear:both}img.animation-image{position:absolute;background:url(https://stripe.com/img/showcase/frame.png);padding:9px 11px 13px;background:url(https://stripe.com/img/showcase/frame2.png);padding:2px 6px 8px;-webkit-transform:rotate3d(0,0,0,0);opacity:1.0}img.animation-image.animation{-webkit-transition:opacity .7s ease-in,-webkit-transform .7s ease;-moz-transition:opacity .7s ease-in,-moz-transform .7s ease;-o-transition:opacity .7s ease-in,-o-transform .7s ease;transition:opacity .7s ease-in,transform .7s ease}img.animation-image.hidden{opacity:.0}img.animation-image.hidden.left{-webkit-transform:translateY(200px) translateX(-400px) rotate(-75deg);-moz-transform:translateY(200px) translateX(-400px) rotate(-75deg);-o-transform:translateY(200px) translateX(-400px) rotate(-75deg);-webkit-transform:translateY(200px) translateX(-400px) rotate3d(0,0,0,-75deg)}img.animation-image.hidden.center{-webkit-transform:translateY(400px) rotate(16deg);-moz-transform:translateY(400px) rotate(16deg);-o-transform:translateY(400px) rotate(16deg);-webkit-transform:translateY(400px) rotate3d(0,0,0,16deg)}img.animation-image.hidden.right{-webkit-transform:translateY(200px) translateX(400px) rotate(75deg);-moz-transform:translateY(200px) translateX(400px) rotate(75deg);-o-transform:translateY(200px) translateX(400px) rotate(75deg);-webkit-transform:translateY(200px) translateX(400px) rotate3d(0,0,0,75deg)}div#error-block{padding:100px 0 118px;text-align:center;min-height:250px;font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}div#error-block h1{color:#222;background:-webkit-linear-gradient(black,#555);-webkit-background-clip:text,border;-webkit-text-fill-color:transparent;font-size:40px;line-height:64px;font-weight:bold}div#error-block h2{font-size:24px;line-height:32px;color:#008cdd;margin-bottom:12px}div#error-block p{width:550px;margin:0 auto;font-size:16px;line-height:25px;color:#999}div#error-block p a{color:#999;text-decoration:underline}div#error-block p a:hover{color:#008cdd}div#logos{background:#fff}div#logos div.page-title{position:relative;padding:54px 60px;-webkit-font-smoothing:antialiased;-webkit-border-top-left-radius:6px;-moz-border-top-left-radius:6px;-ms-border-top-left-radius:6px;-o-border-top-left-radius:6px;border-top-left-radius:6px;-webkit-border-top-right-radius:6px;-moz-border-top-right-radius:6px;-ms-border-top-right-radius:6px;-o-border-top-right-radius:6px;border-top-right-radius:6px;border-bottom:1px solid #c0ccd4;background:transparent;background:-webkit-linear-gradient(white,#f7fcfe);background:-moz-linear-gradient(white,#f7fcfe);background:-ms-linear-gradient(white,#f7fcfe);background:-o-linear-gradient(white,#f7fcfe);background:linear-gradient(white,#f7fcfe);-webkit-box-shadow:0 1px 2px rgba(192,204,212,0.6);-moz-box-shadow:0 1px 2px rgba(192,204,212,0.6);-ms-box-shadow:0 1px 2px rgba(192,204,212,0.6);-o-box-shadow:0 1px 2px rgba(192,204,212,0.6);box-shadow:0 1px 2px rgba(192,204,212,0.6)}div#logos div.page-title h1{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:31px;font-weight:600;color:#33434d;margin:6px 0;font-weight:600;position:relative;z-index:10}div#logos div.page-title p{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:20px;line-height:22px;color:#93a0a7;margin-bottom:6px;position:relative;z-index:10}div#logos div.page-title::after{content:"";position:absolute;z-index:5;left:0;right:0;top:10px;bottom:-4px;background:-webkit-linear-gradient(left,rgba(255,255,255,0.9),rgba(255,255,255,0),rgba(255,255,255,0.9));background:-moz-linear-gradient(left,rgba(255,255,255,0.9),rgba(255,255,255,0),rgba(255,255,255,0.9));background:-o-linear-gradient(left,rgba(255,255,255,0.9),rgba(255,255,255,0),rgba(255,255,255,0.9))}div#logos ul.sub-nav{list-style-type:none;text-align:center;position:relative;border-bottom:1px solid aliceblue;padding:10px 0;font-size:90%}div#logos ul.sub-nav li{display:inline;margin-right:40px}div#logos ul.sub-nav li:last-child{margin-right:0}div#logos ul.sub-nav li.current a{color:#000;font-weight:600}div#logos div.resource{padding:50px 0 40px;margin:0 60px;border-bottom:1px solid rgba(192,204,212,0.3)}div#logos div.resource div.title h2{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:21px;color:#33434d;margin-bottom:5px}div#logos div.resource div.title h3{font-size:14px;line-height:21px;margin-bottom:5px;font-weight:bold;color:#778790}div#logos div.resource div.title p{font-size:14px;line-height:21px;color:#93a0a7;margin-bottom:21px}div#logos div.resource ul li{position:relative}div#logos div.resource ul li a.img{display:block;position:relative;margin-bottom:5px;background-repeat:50% 50%;-webkit-box-shadow:inset 0 0 1px 1px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 0 1px 1px rgba(0,0,0,0.1);-ms-box-shadow:inset 0 0 1px 1px rgba(0,0,0,0.1);-o-box-shadow:inset 0 0 1px 1px rgba(0,0,0,0.1);box-shadow:inset 0 0 1px 1px rgba(0,0,0,0.1)}div#logos div.resource ul li a.img strong{-webkit-transition:opacity 300ms ease,-webkit-transform 0 ease;-moz-transition:opacity 300ms ease,-moz-transform 0 ease;-o-transition:opacity 300ms ease,-o-transform 0 ease;transition:opacity 300ms ease,transform 0 ease;opacity:.0;display:block;position:absolute;z-index:30;left:0;right:0;top:0;height:100%;background:#111;background:rgba(0,0,0,0.8)}div#logos div.resource ul li a.img strong span{color:#fff;font-size:14px;font-weight:bold;text-align:center;-webkit-font-smoothing:antialiased;width:110px;height:32px;margin-left:-55px;margin-top:-16px;line-height:32px;display:block;position:relative;left:50%;top:50%;background:black;background:-webkit-linear-gradient(rgba(255,255,255,0.2),rgba(255,255,255,0));background:-moz-linear-gradient(rgba(255,255,255,0.2),rgba(255,255,255,0));background:-ms-linear-gradient(rgba(255,255,255,0.2),rgba(255,255,255,0));background:-o-linear-gradient(rgba(255,255,255,0.2),rgba(255,255,255,0));background:linear-gradient(rgba(255,255,255,0.2),rgba(255,255,255,0));background-color:rgba(0,0,0,0.8);-webkit-box-shadow:inset 0 1px 0 black,0 2px 3px black;-moz-box-shadow:inset 0 1px 0 black,0 2px 3px black;-ms-box-shadow:inset 0 1px 0 black,0 2px 3px black;-o-box-shadow:inset 0 1px 0 black,0 2px 3px black;box-shadow:inset 0 1px 0 black,0 2px 3px black;-webkit-border-radius:16px;-moz-border-radius:16px;-ms-border-radius:16px;-o-border-radius:16px;border-radius:16px;border:1px solid #fff;text-shadow:0 1px 1px black}div#logos div.resource ul li a.img:hover strong{opacity:1.0}div#logos div.resource ul li a.img:active strong{background:#000;background:rgba(0,0,0,0.85)}div#logos div.resource ul li a.img:active strong span{color:#ddd;border-color:#ddd}div#logos div.resource ul li a.img img{position:relative;display:block;margin-left:auto;margin-right:auto}div#logos div.resource ul li a.img.light{background-color:#fff;background-image:url("https://stripe.com/img/about/logos/backgrounds/light.png");background-size:20px 20px}@media only screen and (-webkit-min-device-pixel-ratio:2){div#logos div.resource ul li a.img.light{background-image:url("https://stripe.com/img/about/logos/backgrounds/light@2x.png")}}div#logos div.resource ul li a.img.blue{background-color:#3da8e5;background-image:url("https://stripe.com/img/about/logos/backgrounds/blue.png");background-size:20px 20px}@media only screen and (-webkit-min-device-pixel-ratio:2){div#logos div.resource ul li a.img.blue{background-image:url("https://stripe.com/img/about/logos/backgrounds/blue@2x.png")}}div#logos div.resource ul li a.img.dark{background-color:#4c4c4c;background-image:url("https://stripe.com/img/about/logos/backgrounds/dark.png");background-size:20px 20px}@media only screen and (-webkit-min-device-pixel-ratio:2){div#logos div.resource ul li a.img.dark{background-image:url("https://stripe.com/img/about/logos/backgrounds/dark@2x.png")}}div#logos div.resource ul li h3{float:left;font-size:14px;line-height:21px;color:#33434d}div#logos div.resource ul li p{float:right;font-size:14px;line-height:21px;color:#93a0a7}div#logos div.resource.logo a.img{width:400px;height:175px}div#logos div.resource.logo a.img img{top:29px}div#logos div.resource.logo li.black{float:left}div#logos div.resource.logo li.white{float:right}div#logos div.resource.badges div.styled{float:left;margin-right:25px;width:256.66667px}div#logos div.resource.badges div.styled a.img{height:186px}div#logos div.resource.badges div.styled img{position:relative;top:73px}div#logos div.resource.badges div.simple{float:left}div#logos div.resource.badges div.simple ul{float:left;width:256.66667px;margin-right:25px}div#logos div.resource.badges div.simple ul li{height:75.5px}div#logos div.resource.badges div.simple ul li a.img{height:75.5px}div#logos div.resource.badges div.simple ul li img{position:relative;top:24.75px}div#logos div.resource.badges div.simple ul li:first-child{padding-bottom:35px}div#logos div.resource.badges div.simple ul:last-child{margin-right:0}div#logos div.resource.badges li{width:256.66667px;display:block}div#logos div.resource.connect div.title{float:left;width:290px}div#logos div.resource.connect div.title p{padding-right:0}div#logos div.resource.connect a.img{width:230px;height:72px}div#logos div.resource.connect a.img img{top:20px}div#logos div.resource.connect ul{float:right;width:485px}div#logos div.resource.connect ul li{float:left;width:230px;height:130px}div#logos div.resource.connect ul li.even{float:right}div#logos div.resource.help p{text-align:center;padding:0 !important;-webkit-font-smoothing:antialiased;font-size:13px !important}div#press{background:#fff}div#press div.page-title{position:relative;padding:54px 60px;-webkit-font-smoothing:antialiased;-webkit-border-top-left-radius:6px;-moz-border-top-left-radius:6px;-ms-border-top-left-radius:6px;-o-border-top-left-radius:6px;border-top-left-radius:6px;-webkit-border-top-right-radius:6px;-moz-border-top-right-radius:6px;-ms-border-top-right-radius:6px;-o-border-top-right-radius:6px;border-top-right-radius:6px;border-bottom:1px solid #c0ccd4;background:transparent;background:-webkit-linear-gradient(white,#f7fcfe);background:-moz-linear-gradient(white,#f7fcfe);background:-ms-linear-gradient(white,#f7fcfe);background:-o-linear-gradient(white,#f7fcfe);background:linear-gradient(white,#f7fcfe);-webkit-box-shadow:0 1px 2px rgba(192,204,212,0.6);-moz-box-shadow:0 1px 2px rgba(192,204,212,0.6);-ms-box-shadow:0 1px 2px rgba(192,204,212,0.6);-o-box-shadow:0 1px 2px rgba(192,204,212,0.6);box-shadow:0 1px 2px rgba(192,204,212,0.6)}div#press div.page-title h1{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:31px;font-weight:600;color:#33434d;margin:6px 0;font-weight:600;position:relative;z-index:10}div#press div.page-title p{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:20px;line-height:22px;color:#93a0a7;margin-bottom:6px;position:relative;z-index:10}div#press div.page-title::after{content:"";position:absolute;z-index:5;left:0;right:0;top:10px;bottom:-4px;background:-webkit-linear-gradient(left,rgba(255,255,255,0.9),rgba(255,255,255,0),rgba(255,255,255,0.9));background:-moz-linear-gradient(left,rgba(255,255,255,0.9),rgba(255,255,255,0),rgba(255,255,255,0.9));background:-o-linear-gradient(left,rgba(255,255,255,0.9),rgba(255,255,255,0),rgba(255,255,255,0.9))}div#press ul.sub-nav{list-style-type:none;text-align:center;position:relative;border-bottom:1px solid aliceblue;padding:10px 0;font-size:90%}div#press ul.sub-nav li{display:inline;margin-right:40px}div#press ul.sub-nav li:last-child{margin-right:0}div#press ul.sub-nav li.current a{color:#000;font-weight:600}div#press div.section{padding:50px 0 40px;margin:0 60px;border-bottom:1px solid rgba(192,204,212,0.3)}div#press div.section div.title h2{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:21px;color:#33434d;margin-bottom:5px}div#press div.section div.title h3{font-size:14px;line-height:21px;margin-bottom:5px;font-weight:bold;color:#778790}div#press div.section div.title p,div#press div.section div.title li{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:21px;color:#93a0a7;margin-bottom:21px}div#press div.section div.title p.pull,div#press div.section div.title li.pull{font-size:120%;border-bottom:1px solid #eee;border-top:1px solid #eee;padding:20px 0;line-height:160%}div#press div.section.news{border-bottom:0;padding-bottom:10px}div#press div.section.news ul{-webkit-column-count:2;-moz-column-count:2;column-count:2;-webkit-column-gap:75px;-moz-column-gap:75px;column-gap:75px}div#press div.section.news li{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;font-weight:600;line-height:21px;color:#93a0a7;margin-bottom:21px;-webkit-column-break-inside:avoid;display:inline-block;background-repeat:no-repeat;background-position:0 13px;background-size:16px 16px;padding:10px 0 0 25px}div#press div.section.news li.techcrunch{background-image:url("https://stripe.com/img/press/icons/techcrunch.png")}div#press div.section.news li.cnbc{background-image:url("https://stripe.com/img/press/icons/cnbc.png")}div#press div.section.news li.wired{background-image:url("https://stripe.com/img/press/icons/wired.png")}div#press div.section.news li.businessweek{background-image:url("https://stripe.com/img/press/icons/businessweek.png")}div#press div.section.news li.fast-company{background-image:url("https://stripe.com/img/press/icons/fast-company.png")}div#press div.section.news li.forbes{background-image:url("https://stripe.com/img/press/icons/forbes.png")}div#press div.section.news li.bloomberg{background-image:url("https://stripe.com/img/press/icons/bloomberg.png")}div#press div.section.news li.cnn{background-image:url("https://stripe.com/img/press/icons/cnn.png")}div#press div.section.news li.atlantic{background-image:url("https://stripe.com/img/press/icons/atlantic.png")}div#press div.section.news li.wsj{background-image:url("https://stripe.com/img/press/icons/wsj.png")}div#press div.section.news li.nyt{background-image:url("https://stripe.com/img/press/icons/nyt.png")}div#press div.section.news li.telegraph{background-image:url("https://stripe.com/img/press/icons/telegraph.png")}div#press div.section.news li span.quote{font-size:14px;font-weight:normal;color:#555;display:block;margin:10px 0}div#press div.section.news #get-started{margin:0;background:rgba(56,74,85,0.0125);border:1px solid rgba(56,74,85,0.1);border-radius:5px;box-shadow:inset 0 1px 1px rgba(56,74,85,0.05);padding:15px 0;border-top:1px solid #ebebeb;text-align:center}div#press div.section.footnote p{padding:0 !important;-webkit-font-smoothing:antialiased}#partner_header img{position:absolute;margin:20px 0 0 20px}#partner_info{padding-top:36px;margin:0 38px 0 724px}#partner_header{overflow:hidden;margin-bottom:16px;min-height:330px;background:white}#partner_info h1{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;margin-bottom:3px;font-size:30px;font-weight:600;color:#000}#partner_info h2{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:17px;font-weight:200;color:#afb4bc}#partner_info h2::after{content:"";display:block;width:100px;height:2px;margin:18px 0 19px 1px;background:#f4f4f4}#partner_info p{margin-bottom:29px;font-size:13px;line-height:17px;color:#777}#partner_info p+p{padding-left:19px;background:url(https://stripe.com/img/partners/arrow.png) no-repeat 0 2px}#partner_info a{font-size:13px;color:#0168de}#partner_details{min-height:600px;background:white}#partner_details #get-started{margin-top:30px}#partner_details div:nth-child(1){float:left;width:430px;margin:37px 0 0 40px}#partner_details div:nth-child(1) h1{font-family:"proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:18px;font-weight:600}#partner_details div:nth-child(1) h1::after{content:"";display:block;width:430px;height:2px;margin:12px 0 20px 0;background:#f4f4f4}#partner_details div:nth-child(1) h2{margin:38px 0 12px 0;font-size:14px;font-weight:600;color:#555}#partner_details div:nth-child(1) p{margin-bottom:20px;font-size:14px;line-height:20px;color:#777}#partner_details div:nth-child(2){padding-top:40px;margin:0 40px 0 522px}#partner_details div:nth-child(2) img{margin-bottom:27px}#partner_details div:nth-child(2) h2{margin-bottom:12px;font-size:14px;font-weight:bold;color:#555}#partner_details div:nth-child(2) p{font-size:14px;line-height:20px;color:#777}@media screen and (-webkit-min-device-pixel-ratio:2){#partner_info p+p{background:url(https://stripe.com/img/partners/arrow@2x.png) no-repeat 0 2px;background-size:13px 13px}}.hljs span.hljs-constant,.hljs span.hljs-title,.hljs span.hljs-keyword,.hljs span.keyword{color:#19469d}.hljs span.hljs-symbol,.hljs span.hljs-literal{color:#954121}.hljs span.hljs-string,.hljs span.string,.hljs span.hljs-attribute,.hljs span.hljs.xml .hljs-value{color:#219161}.hljs span.hljs-comment{color:#9b9bb9}.hljs span.hljs.xml .hljs-attribute{color:#444}.page-wrapper{min-height:100%;height:100%;-webkit-font-smoothing:antialiased}.page-wrapper div#wrap{position:relative;min-height:100%}.page-wrapper div#page-background{position:fixed;top:-10%;left:-10%;height:120%;width:120%;z-index:-1;pointer-events:none;background-image:-webkit-radial-gradient(50% 50%,ellipse closest-side,rgba(255,255,255,0) 1%,rgba(0,42,88,0.15) 100%);background-image:-moz-radial-gradient(50% 50%,ellipse closest-side,rgba(255,255,255,0) 1%,rgba(0,42,88,0.15) 100%)}.page-wrapper div#page-background div.inner{position:fixed;width:120%;height:50%;z-index:10;background:transparent;background:-webkit-linear-gradient(rgba(255,255,255,0.54),rgba(255,255,255,0));background:-moz-linear-gradient(rgba(255,255,255,0.54),rgba(255,255,255,0));background:-ms-linear-gradient(rgba(255,255,255,0.54),rgba(255,255,255,0));background:-o-linear-gradient(rgba(255,255,255,0.54),rgba(255,255,255,0));background:linear-gradient(rgba(255,255,255,0.54),rgba(255,255,255,0))}.page-wrapper div#header{width:700px;height:90px;padding-top:80px}.page-wrapper div#header h1{margin:0 auto 0;width:115px;height:48px;float:none}.page-wrapper div#header h1 a{background-image:url(https://stripe.com/img/logo_big.png);height:48px}.page-wrapper div.box{width:700px}.page-wrapper div#main-body{background:transparent;background:-webkit-linear-gradient(rgba(0,0,0,0.15),rgba(0,0,0,0.3));background:-moz-linear-gradient(rgba(0,0,0,0.15),rgba(0,0,0,0.3));background:-ms-linear-gradient(rgba(0,0,0,0.15),rgba(0,0,0,0.3));background:-o-linear-gradient(rgba(0,0,0,0.15),rgba(0,0,0,0.3));background:linear-gradient(rgba(0,0,0,0.15),rgba(0,0,0,0.3));-webkit-box-shadow:0 2px 7px rgba(0,0,0,0.27);-moz-box-shadow:0 2px 7px rgba(0,0,0,0.27);-ms-box-shadow:0 2px 7px rgba(0,0,0,0.27);-o-box-shadow:0 2px 7px rgba(0,0,0,0.27);box-shadow:0 2px 7px rgba(0,0,0,0.27);padding:1px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px}.page-wrapper div#main-body div.inner{background:#fff;background:transparent;background:-webkit-linear-gradient(white,#f6f1f1);background:-moz-linear-gradient(white,#f6f1f1);background:-ms-linear-gradient(white,#f6f1f1);background:-o-linear-gradient(white,#f6f1f1);background:linear-gradient(white,#f6f1f1);-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-wrapper div#main-body div.title{min-height:55px;overflow:hidden;background:transparent;background:-webkit-linear-gradient(white,rgba(255,255,255,0));background:-moz-linear-gradient(white,rgba(255,255,255,0));background:-ms-linear-gradient(white,rgba(255,255,255,0));background:-o-linear-gradient(white,rgba(255,255,255,0));background:linear-gradient(white,rgba(255,255,255,0));-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-wrapper div#main-body div.title h2{font-size:14px;line-height:21px;color:#444;font-weight:bold;text-align:center;padding:17px 24px;background:url(https://stripe.com/img/login/divider.png) 50% 100% no-repeat}.page-wrapper div#main-body div.title h2.error{color:#cb1a1a}.page-wrapper div#main-body div.title.extra{height:auto}.page-wrapper div#main-body div.title.extra h2{background:0}.page-wrapper div#main-body div.title.extra p{font-size:12px;color:#999;padding:19px 0 9px;text-align:center;background:url(https://stripe.com/img/login/divider.png) 50% 100% no-repeat}.page-wrapper div#main-body div.skip{text-align:center;color:#999;font-size:12px;margin-top:-22px}.page-wrapper div.below-box{text-align:center;padding-top:30px;font-size:12px;color:#6f757c;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.page-wrapper div.below-box a{color:#6f757c;font-weight:bold;text-decoration:underline}.page-wrapper div.below-box a:hover{color:#222}.page-wrapper div#footer{background:rgba(0,0,0,0.04);-webkit-box-shadow:none;-moz-box-shadow:none;-ms-box-shadow:none;-o-box-shadow:none;box-shadow:none;margin-top:20px;text-align:center;font-size:13px;padding:0}.page-wrapper div#footer a{display:block;padding:15px 0;font-weight:bold;color:#4e5359;-webkit-transition:color 100ms ease-in-out}.page-wrapper div#footer a:hover{text-decoration:none;color:#222}.page-wrapper #footer_spacer{height:60px}.page-wrapper div#bottom{text-align:center;position:absolute;bottom:20px;width:100%}.page-wrapper div#bottom li{display:inline;padding:0 20px 0 16px;background:url(https://stripe.com/img/login/bullet.png) 100% 9px no-repeat}.page-wrapper div#bottom li.first{padding-left:20px}.page-wrapper div#bottom li.last{background:0;padding-right:16px}.page-wrapper div#bottom a{color:#696f77;font-weight:bold;font-size:12px;text-shadow:0 1px 0 rgba(255,255,255,0.5);-webkit-transition:color 100ms ease-in-out}.page-wrapper div#bottom a:hover{color:#3a3f45;text-decoration:none}.page-wrapper div.connect-oauth-example em{font-style:italic}.page-wrapper div.connect-oauth-example p{font-size:13px;line-height:20px;padding:0 30px;padding-bottom:19px;color:#444}.page-wrapper div.connect-oauth-example p.note{font-weight:bold}.page-wrapper div.connect-oauth-example pre{margin:0 30px;padding:0 30px;background:#e4edf7}.page-wrapper div.connect-oauth-example pre code{background:0}.page-wrapper div.connect-oauth-example code{padding:2px;background:#e4edf7;font-weight:bold}@media only screen and (-webkit-min-device-pixel-ratio:2){div#header h1 a{background-image:url(https://stripe.com/img/logo@2x.png?2);background-size:71px 30px}div#showcase div.title{background:url(https://stripe.com/img/showcase/title@2x.png);background-size:656px 106px}#doc>nav h1::before{background-image:url(https://stripe.com/img/documentation/navicons@2x.png)}#doc>nav h1.connect::before{background-image:url(https://stripe.com/img/documentation/nav-connect@2x.png)}#doc>nav h1.orders::before{background-image:url(https://stripe.com/img/documentation/nav-orders@2x.png)}#doc>nav h1.disputes::before{background-image:url(https://stripe.com/img/documentation/nav-disputes@2x.png)}#doc #start ol::before,#doc #start ol span{background-image:url(https://stripe.com/img/documentation/steps@2x.png)}#doc #details .content.note::before{background-image:url(https://stripe.com/img/documentation/note@2x.png)}#doc .subscriptions-guide div#create-plan-modal{background-image:url("https://stripe.com/img/documentation/guides/subscriptions/create_plan@2x.png")}#doc .subscriptions-guide div#created-subs-events{background-image:url("https://stripe.com/img/documentation/guides/subscriptions/created_subscription_events@2x.png")}#doc .subscriptions-guide div#created-unattempted-invoice{background-image:url("https://stripe.com/img/documentation/guides/subscriptions/created_unattempted_invoice@2x.png")}#doc .subscriptions-guide div#settings{background-image:url("https://stripe.com/img/documentation/guides/subscriptions/settings@2x.png")}#doc .subscriptions-guide div#invoice-with-line-items{background-image:url("https://stripe.com/img/documentation/guides/subscriptions/invoice_with_line_items@2x.png")}#doc .subscriptions-guide div#create-a-coupon{background-image:url("https://stripe.com/img/documentation/guides/subscriptions/create_coupon@2x.png")}#doc footer li a::before{background-image:url(https://stripe.com/img/documentation/footer-arrow@2x.png)}#doc a.external:after{background-image:url(https://stripe.com/img/documentation/external_arrow@2x.png)}#doc #details article h1 a.header-anchor,#doc #details article h2 a.header-anchor,#doc #details article h3 a.header-anchor,#doc #details article h4 a.header-anchor,#doc #details article h5 a.header-anchor,#doc #details article h6 a.header-anchor{background-image:url(https://stripe.com/img/documentation/anchor@2x.png)}} \ No newline at end of file diff --git a/docs/.babelrc b/docs/.babelrc new file mode 100644 index 00000000..70b17e63 --- /dev/null +++ b/docs/.babelrc @@ -0,0 +1,5 @@ +{ + "presets": [["@babel/preset-env", { "targets": { "node": 6 } }]], + "plugins": ["@babel/plugin-proposal-object-rest-spread"], + "comments": false +} diff --git a/docs/.stylelintrc.js b/docs/.stylelintrc.js new file mode 100644 index 00000000..5abef6da --- /dev/null +++ b/docs/.stylelintrc.js @@ -0,0 +1,57 @@ +/* eslint-disable import/no-commonjs */ +// Initially exported from +// https://github.com/stylelint/stylelint-config-recommended/blob/master/index.js +module.exports = { + plugins: ['stylelint-csstree-validator'], + rules: { + // Prettier + 'selector-list-comma-newline-after': 'always', + 'declaration-block-semicolon-newline-after': 'always', + 'declaration-block-semicolon-space-before': 'never', + 'declaration-colon-space-after': 'always', + 'declaration-colon-space-before': 'never', + 'color-hex-case': 'lower', + 'string-quotes': 'double', + 'no-extra-semicolons': true, + indentation: 2, + // Tailwind + 'at-rule-no-unknown': [ + true, + { + ignoreAtRules: ['tailwind', 'screen'], + }, + ], + // Stylelint + 'block-no-empty': true, + 'color-no-invalid-hex': true, + 'comment-no-empty': true, + 'declaration-block-no-duplicate-properties': [ + true, + { + ignore: ['consecutive-duplicates-with-different-values'], + }, + ], + 'font-family-no-duplicate-names': true, + 'selector-pseudo-class-no-unknown': true, + // Plugins + 'csstree/validator': true, + // + // + // + // 'selector-pseudo-element-no-unknown': true, + // 'selector-type-no-unknown': true, + + // 'declaration-block-no-redundant-longhand-properties': true, + // 'declaration-block-no-shorthand-property-overrides': true, + // 'function-calc-no-unspaced-operator': true, + // 'function-linear-gradient-no-nonstandard-direction': true, + // 'keyframe-declaration-no-important': true, + // 'media-feature-name-no-unknown': true, + // 'no-empty-source': true, + // 'no-invalid-double-slash-comments': true, + // 'property-no-unknown': true, + // 'shorthand-property-no-redundant-values': true, + // 'string-no-newline': true, + // 'unit-no-unknown': true, + }, +}; diff --git a/docs/Gemfile b/docs/Gemfile deleted file mode 100644 index 8809e7e3..00000000 --- a/docs/Gemfile +++ /dev/null @@ -1,39 +0,0 @@ -# If you do not have OpenSSL installed, change -# the following line to use 'http://' -source 'https://rubygems.org' - -# For faster file watcher updates on Windows: -gem 'wdm', '~> 0.1.0', platforms: [:mswin, :mingw] - -# Windows does not come with time zone data -gem 'tzinfo-data', platforms: [:mswin, :mingw, :jruby] - -gem 'rake' - -# Middleman Gems -gem 'middleman', '>= 4.0.0' -gem 'middleman-livereload' -gem 'middleman-syntax' -gem 'middleman-autoprefixer' -gem 'middleman-s3_sync', github: 'fredjean/middleman-s3_sync', ref: '8c4e57a' -gem 'middleman-minify-html' -gem 'sprockets', '4.0.0.beta4' -gem 'middleman-sprockets' -gem 'sprockets-es6' -gem 'redcarpet', '>= 3.3.4' -gem 'nokogiri' -gem 'sassc' -gem 'kramdown', '>= 1.12.0' -gem 'pry-byebug' -gem 'rb-readline' -gem 'mime-types' -gem 'highlight', :require => 'simplabs/highlight' # TODO: Replace with rouge -gem 'htmlentities' -gem 'better_errors' -gem 'binding_of_caller' -gem 'octokit' -gem 'google-api-client', '0.8.6' -gem 'algoliasearch' -gem 'middleman-vcs-time' -gem 'hashie', '3.4.6' -gem 'haml', '4.0.7' diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock deleted file mode 100644 index b1fcb1ba..00000000 --- a/docs/Gemfile.lock +++ /dev/null @@ -1,293 +0,0 @@ -GIT - remote: git://github.com/fredjean/middleman-s3_sync.git - revision: 8c4e57a67048a3bafa4529c8f46184d33996e52b - ref: 8c4e57a - specs: - middleman-s3_sync (4.0.3) - ansi (~> 1.5.0) - fog-aws (>= 0.1.1) - map - middleman-cli - middleman-core (>= 4.0.0) - mime-types (~> 3.1) - parallel - ruby-progressbar - unf - -GEM - remote: https://rubygems.org/ - specs: - activesupport (5.0.6) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (~> 0.7) - minitest (~> 5.1) - tzinfo (~> 1.1) - addressable (2.5.2) - public_suffix (>= 2.0.2, < 4.0) - algoliasearch (1.16.0) - httpclient (~> 2.8.3) - json (>= 1.5.1) - ansi (1.5.0) - autoparse (0.3.3) - addressable (>= 2.3.1) - extlib (>= 0.9.15) - multi_json (>= 1.0.0) - autoprefixer-rails (7.1.5) - execjs - babel-source (5.8.35) - babel-transpiler (0.7.0) - babel-source (>= 4.0, < 6) - execjs (~> 2.0) - backports (3.9.1) - better_errors (2.3.0) - coderay (>= 1.0.0) - erubi (>= 1.0.0) - rack (>= 0.9.0) - binding_of_caller (0.7.2) - debug_inspector (>= 0.0.1) - builder (3.2.3) - byebug (9.1.0) - coderay (1.1.2) - coffee-script (2.4.1) - coffee-script-source - execjs - coffee-script-source (1.12.2) - compass-import-once (1.0.5) - sass (>= 3.2, < 3.5) - concurrent-ruby (1.0.5) - contracts (0.13.0) - debug_inspector (0.0.3) - dotenv (2.2.1) - em-websocket (0.5.1) - eventmachine (>= 0.12.9) - http_parser.rb (~> 0.6.0) - erubi (1.6.1) - erubis (2.7.0) - eventmachine (1.2.5) - excon (0.59.0) - execjs (2.7.0) - extlib (0.9.16) - faraday (0.13.1) - multipart-post (>= 1.2, < 3) - fast_blank (1.0.0) - fastimage (2.1.0) - ffi (1.9.18) - fog-aws (1.4.1) - fog-core (~> 1.38) - fog-json (~> 1.0) - fog-xml (~> 0.1) - ipaddress (~> 0.8) - fog-core (1.45.0) - builder - excon (~> 0.58) - formatador (~> 0.2) - fog-json (1.0.2) - fog-core (~> 1.0) - multi_json (~> 1.10) - fog-xml (0.1.3) - fog-core - nokogiri (>= 1.5.11, < 2.0.0) - formatador (0.2.5) - google-api-client (0.8.6) - activesupport (>= 3.2) - addressable (~> 2.3) - autoparse (~> 0.3) - extlib (~> 0.9) - faraday (~> 0.9) - googleauth (~> 0.3) - launchy (~> 2.4) - multi_json (~> 1.10) - retriable (~> 1.4) - signet (~> 0.6) - googleauth (0.5.3) - faraday (~> 0.12) - jwt (~> 1.4) - logging (~> 2.0) - memoist (~> 0.12) - multi_json (~> 1.11) - os (~> 0.9) - signet (~> 0.7) - haml (4.0.7) - tilt - hamster (3.0.0) - concurrent-ruby (~> 1.0) - hashie (3.4.6) - highlight (2.0.0) - htmlcompressor (0.2.0) - htmlentities (4.3.4) - http_parser.rb (0.6.0) - httpclient (2.8.3) - i18n (0.7.0) - ipaddress (0.8.3) - json (2.1.0) - jwt (1.5.6) - kramdown (1.15.0) - launchy (2.4.3) - addressable (~> 2.3) - listen (3.0.8) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - little-plugger (1.1.4) - logging (2.2.2) - little-plugger (~> 1.1) - multi_json (~> 1.10) - map (6.6.0) - memoist (0.16.0) - method_source (0.9.0) - middleman (4.2.1) - coffee-script (~> 2.2) - compass-import-once (= 1.0.5) - haml (>= 4.0.5) - kramdown (~> 1.2) - middleman-cli (= 4.2.1) - middleman-core (= 4.2.1) - sass (>= 3.4.0, < 4.0) - middleman-autoprefixer (2.8.0) - autoprefixer-rails (>= 7.0.1, < 8.0.0) - middleman-core (>= 3.3.3) - middleman-cli (4.2.1) - thor (>= 0.17.0, < 2.0) - middleman-core (4.2.1) - activesupport (>= 4.2, < 5.1) - addressable (~> 2.3) - backports (~> 3.6) - bundler (~> 1.1) - contracts (~> 0.13.0) - dotenv - erubis - execjs (~> 2.0) - fast_blank - fastimage (~> 2.0) - hamster (~> 3.0) - hashie (~> 3.4) - i18n (~> 0.7.0) - listen (~> 3.0.0) - memoist (~> 0.14) - padrino-helpers (~> 0.13.0) - parallel - rack (>= 1.4.5, < 3) - sass (>= 3.4) - servolux - tilt (~> 2.0) - uglifier (~> 3.0) - middleman-livereload (3.4.6) - em-websocket (~> 0.5.1) - middleman-core (>= 3.3) - rack-livereload (~> 0.3.15) - middleman-minify-html (3.4.1) - htmlcompressor (~> 0.2.0) - middleman-core (>= 3.2) - middleman-sprockets (4.1.1) - middleman-core (~> 4.0) - sprockets (>= 3.0) - middleman-syntax (3.0.0) - middleman-core (>= 3.2) - rouge (~> 2.0) - middleman-vcs-time (0.0.5) - middleman-core (~> 4.0) - mime-types (3.1) - mime-types-data (~> 3.2015) - mime-types-data (3.2016.0521) - mini_portile2 (2.3.0) - minitest (5.10.3) - multi_json (1.12.2) - multipart-post (2.0.0) - nokogiri (1.8.1) - mini_portile2 (~> 2.3.0) - octokit (4.7.0) - sawyer (~> 0.8.0, >= 0.5.3) - os (0.9.6) - padrino-helpers (0.13.3.4) - i18n (~> 0.6, >= 0.6.7) - padrino-support (= 0.13.3.4) - tilt (>= 1.4.1, < 3) - padrino-support (0.13.3.4) - activesupport (>= 3.1) - parallel (1.12.0) - pry (0.11.1) - coderay (~> 1.1.0) - method_source (~> 0.9.0) - pry-byebug (3.5.0) - byebug (~> 9.1) - pry (~> 0.10) - public_suffix (3.0.0) - rack (2.0.3) - rack-livereload (0.3.16) - rack - rake (12.1.0) - rb-fsevent (0.10.2) - rb-inotify (0.9.10) - ffi (>= 0.5.0, < 2) - rb-readline (0.5.5) - redcarpet (3.4.0) - retriable (1.4.1) - rouge (2.2.1) - ruby-progressbar (1.9.0) - sass (3.4.25) - sassc (1.11.4) - bundler - ffi (~> 1.9.6) - sass (>= 3.3.0) - sawyer (0.8.1) - addressable (>= 2.3.5, < 2.6) - faraday (~> 0.8, < 1.0) - servolux (0.13.0) - signet (0.7.3) - addressable (~> 2.3) - faraday (~> 0.9) - jwt (~> 1.5) - multi_json (~> 1.10) - sprockets (4.0.0.beta4) - concurrent-ruby (~> 1.0) - rack (> 1, < 3) - sprockets-es6 (0.9.2) - babel-source (>= 5.8.11) - babel-transpiler - sprockets (>= 3.0.0) - thor (0.20.0) - thread_safe (0.3.6) - tilt (2.0.8) - tzinfo (1.2.3) - thread_safe (~> 0.1) - uglifier (3.2.0) - execjs (>= 0.3.0, < 3) - unf (0.1.4) - unf_ext - unf_ext (0.0.7.4) - -PLATFORMS - ruby - -DEPENDENCIES - algoliasearch - better_errors - binding_of_caller - google-api-client (= 0.8.6) - haml (= 4.0.7) - hashie (= 3.4.6) - highlight - htmlentities - kramdown (>= 1.12.0) - middleman (>= 4.0.0) - middleman-autoprefixer - middleman-livereload - middleman-minify-html - middleman-s3_sync! - middleman-sprockets - middleman-syntax - middleman-vcs-time - mime-types - nokogiri - octokit - pry-byebug - rake - rb-readline - redcarpet (>= 3.3.4) - sassc - sprockets (= 4.0.0.beta4) - sprockets-es6 - tzinfo-data - wdm (~> 0.1.0) - -BUNDLED WITH - 1.15.1 diff --git a/docs/Makefile b/docs/Makefile deleted file mode 100644 index d53b3d20..00000000 --- a/docs/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -all: install - bundle exec middleman server - -install: - bundle install - -build: - npm install - rm -rf build - bundle exec middleman build - -.PHONY: build diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..ca809512 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,135 @@ +# Documentation website + +This subdirectory holds the documentation website content as well as scripts to +generate it. + +# Main commands + +## Building the website + +You can build a new version of the website by running `yarn run build` in this +directory or `yarn run docs:build` at the repository root. + +It will read all source files in `./src` and build the final static website in +`./dist`. + +## Local development + +You can run a local copy of the documentation website by running `yarn run +serve` in this directory or `yarn run docs:serve` at the repository root. + +This will build the website in `./dist` and expose it on `localhost`, along with +live-reload. + +## Deploying the website + +You can deploy the website by running `yarn run deploy` in this directory or +`yarn run docs:deploy` at the repository root. + +This will build the website and then commit the content of the `./dist` folder +to the `gh-pages` branch and push it to GitHub. + +# Internals + +The documentation generation is not using any existing static websites +generators, but custom javascript scripts. + +The main two entry points are `./scripts/build.js` and `./scripts/serve.js`. The +second one adds a webserver with live-reload on top of the first one. + +## HTML + +All markdown files situated in `./src` will be transformed into `.html` files in +`./dist`. They will be wrapped into the layout defined in their front-matter. + +All the headers will be converted to their respective `` tag, along with +a unique `#id` to allow for easy anchoring. + +You can also use plain HTML inside those markdown files if you need more +advanced styling. + +## Layouts + +All layouts are saved in the `./src/_layouts` folder. + +All config options defined into `config.json` are passed to the layouts and can +be used there. + +You can also use mixins or include other files from the layouts. + +_Note that the current layout logic is simple and might not handle complex +recursive cases, but should be enough for simple cases._ + +## CSS + +CSS is processed through PostCSS. It expects an entry file in +`./src/style.css`. + +We are using `postcss-import`, allowing you to `@import` files from the +`./src/_styles/` directory to better split your CSS code in logical chunks. + +Most of the styling based on tailwind.css, with the config file behing +`tailwind.config.js`. It contains default sizing and coloring to follow the +Algolia brand guidelines. + +The final CSS files is then compressed through PurgeCSS (to keep CSS +classes that are actually used) and CleanCSS (to minify it). + +## JavaScript + +JavaScript code is processed through Babel. It will compile all files situated +in `./src/js`. + +_Note that it compiles JS, and does not bundle it. We might add Webpack/Parcel +support later._ + +## Assets + +Any file with the following extensions found in the `./src` folder will be +automatically copied to the `./dist` folder with the same folder structure: +`gif`, `jpg`, `png`, `ico`, `html`, `svg` and `woff`. + +## Placeholders + +Values defined in the `placeholders` key of the `config.json` file can be used +in JavaScript and Markdown files by using the `{{key}}` syntax. + +For example if you have: + +```json +// config.json +{ + "placeholders": { + "projectVersion": "1.4.2" + } +} +``` + +Every occurrence of `{{projectVersion}}` in any `.md` or `.js` file will be +replaced with `1.4.2`. + +## Sidebar + +The left sidebar of the documentation is generated based on the `sidebar` key of +the `config.json`. The key should contain an array where each key is a part of +the sidebar, with a `title` and a list of `pages`. Each of those pages in turn +is an object with a `title` and `url` value. + +The layout will then automatically create all the links and color the active +page. Subsections inside the current page will also be added for every `h2` +element extracted from the markup of the current page. + +## Redirects + +The `config.json` file can hold a `redirects` array, with object containing both +a `from` and a `to` key. For each `from`, it will create a plain html page at +this location, that will redirect anyone visiting it to the page defined in +`to`. + +_Note that both those links must be defined as relative to the `site.url` +value._ + + + + + diff --git a/docs/Rakefile b/docs/Rakefile deleted file mode 100644 index 8f0f0141..00000000 --- a/docs/Rakefile +++ /dev/null @@ -1,50 +0,0 @@ -require 'dotenv' -require 'yaml' -require_relative './lib/google_analytics_downloader.rb' - -Dotenv.load('.env') - -task :build do - sh "STAGE=#{ENV['STAGE'] || 'beta'} bundle exec middleman build" -end - -task :s3_sync do - sh "STAGE=#{ENV['STAGE'] || 'beta'} bundle exec middleman s3_sync" -end - -task :purge_cache do - stage = ENV['STAGE'] || 'beta' - # if stage == 'production' - sh <<-SHELL - curl -X DELETE "https://api.cloudflare.com/client/v4/zones/#{ENV['CLOUDFLARE_ZONE']}/purge_cache" \ - -H "X-Auth-Email: #{ENV['CLOUDFLARE_AUTH_EMAIL']}" \ - -H "X-Auth-Key: #{ENV['CLOUDFLARE_AUTH_KEY']}" \ - -H "Content-Type: application/json" \ - --data '{"tags":["algoliaweb-doc--#{stage}"]}' - SHELL - # else - # puts "Not in production, not purging cache" - # end -end - -task :deploy do - Rake::Task[:build].invoke - Rake::Task[:s3_sync].invoke - Rake::Task[:purge_cache].invoke -end - -task :production do - ENV['STAGE'] = 'production' -end - -task :beta do - ENV['STAGE'] = 'beta' -end - -task :download_google_analytics_data do - file = File.expand_path(File.join(__FILE__, '..', 'app_data', 'google_analytics.yml')) - File.open(file, 'w') do |f| - f << GoogleAnalyticsDownloader.fetch.to_yaml - end -end - diff --git a/docs/algolia-aerial/README.md b/docs/algolia-aerial/README.md deleted file mode 100644 index b6b6e3d5..00000000 --- a/docs/algolia-aerial/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# algolia-aerial -Aerial.css package - -## Definition -This project aims to provide a coherent and unified design system for algolia employees. -This design system is also known as Aerial. - -## Documentation -Go to https://aerialcss.algolia.com to read the full documentation - -## Usage - -To start using aerial.css, simply do `npm install algolia-aerial` or `yarn add algolia-aerial` - -then go to your main css / sass file, and add : - -```css -@import './node_modules/algolia-aerial/dist/aerial.css'; -``` - diff --git a/docs/algolia-aerial/package.json b/docs/algolia-aerial/package.json deleted file mode 100644 index 92ee4ea8..00000000 --- a/docs/algolia-aerial/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "scripts": { - "start": "webpack --config webpack.config.js && yarn optimize", - "optimize": "cleancss dist/aerial-source.css -o dist/aerial.css && yarn done", - "done": "echo '✨ Bundle done ✅' && du -h dist/aerial-source.css && du -h dist/aerial.css && yarn pj-version", - "pj-version": "npm --loglevel silent run vars", - "vars": "env | grep npm_package_version" - }, - "devDependencies": { - "extract-text-webpack-plugin": "3.0.2", - "node-sass": "4.9.2", - "sass-loader": "7.1.0", - "webpack": "3.12.0", - "webpack-auto-inject-version": "1.1.0", - "webpack-livereload-plugin": "2.1.1" - }, - "name": "algolia-aerial", - "version": "1.2.6", - "description": "algolia-aerial package", - "main": "webpack.config.js", - "author": "Lucas Bonomi <@LukyVj> (http://lucasbonomi.com)", - "license": "ISC", - "repository": { - "type": "git", - "url": "git+ssh://github.com/algolia/algolia-aerial.git" - }, - "dependencies": { - "clean-css-cli": "^4.1.6", - "css-loader": "^1.0.0", - "file-loader": "^1.0.0", - "style-loader": "^0.21.0", - "url-loader": "^1.0.0" - } -} diff --git a/docs/algolia-aerial/src/stylesheet/aerial.sass b/docs/algolia-aerial/src/stylesheet/aerial.sass deleted file mode 100644 index 2797fbfa..00000000 --- a/docs/algolia-aerial/src/stylesheet/aerial.sass +++ /dev/null @@ -1,24 +0,0 @@ -/*! Aerial.css [AIV]v{version} - {date}[/AIV] */ -* - box-sizing: border-box - -@import 'modules/base' -@import 'modules/mixins' - -// AERIAL.CSS -@import 'partials/bootstrap' -@import 'partials/fonts' - -@import 'components/scaffolding' -@import 'components/buttons' -@import 'components/cards' -@import 'components/code' -@import 'components/type' -@import 'components/tables' -@import 'components/forms' -@import 'components/input-groups' -@import 'components/alerts' - - -@import 'partials/colors' -@import 'partials/helpers' \ No newline at end of file diff --git a/docs/algolia-aerial/src/stylesheet/components/_alerts.sass b/docs/algolia-aerial/src/stylesheet/components/_alerts.sass deleted file mode 100644 index fee6a564..00000000 --- a/docs/algolia-aerial/src/stylesheet/components/_alerts.sass +++ /dev/null @@ -1,30 +0,0 @@ -.alert - border-radius: 6px - padding: 16px 24px - -.alert.alert-danger - background-color: rgba(255,79,129,0.1) - border: solid 1px rgba(255,79,129,0.2) - color: #ff4f81 !important - -.alert.alert-danger p - color: #ff4f81 !important - -.alert.alert-info - background-color: rgba(0,174,255,0.1) - border: solid 1px rgba(0,174,255,0.2) - color: #00aeff !important - -.alert.alert-info a - color: #007ab3 !important - text-decoration: underline - -.alert.alert-warning - background-color: rgba(255,193,104,0.25) - border: solid 1px rgba(255,193,104,0.4) - color: #c57c14 !important - -.alert.alert-success - background-color: rgba($shamrock,0.1) - border: solid 1px rgba($shamrock, 0.4) - color: $shamrock !important \ No newline at end of file diff --git a/docs/algolia-aerial/src/stylesheet/components/_buttons.sass b/docs/algolia-aerial/src/stylesheet/components/_buttons.sass deleted file mode 100644 index dc0b2f76..00000000 --- a/docs/algolia-aerial/src/stylesheet/components/_buttons.sass +++ /dev/null @@ -1,219 +0,0 @@ -.btn - display: inline-block - // For input.btn - font-weight: $btn-font-weight - text-align: center - vertical-align: middle - touch-action: manipulation - cursor: pointer - background-image: none - // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 - border: 1px solid transparent - white-space: nowrap - +user-select(none) - padding: 0 20px - display: inline-block - border-radius: 50px - font-size: 16px - font-weight: 400 - height: 40px - line-height: 40px - border: none - box-sizing: border-box - position: relative - transition: background .2s, box-shadow .2s - - &:active, - &.active - outline: 0 - background-image: none - +box-shadow(inset 0 3px 5px rgba(0, 0, 0, 0.125)) - - &:focus, - &.focus - +tab-focus - &:hover, - &:focus, - &.focus - color: $btn-default-color - - &:hover, &:focus, &:active, &.active - outline: 0 !important - box-shadow: none - text-decoration: none - - &.disabled, - &[disabled], - fieldset[disabled] & - cursor: $cursor-disabled - pointer-events: none - // Future-proof disabling of clicks - +opacity(0.65) - +box-shadow(none) - - @media (max-width: $screen-sm) - font-size: 14px - - .icon:before - position: relative - top: 2px - - -.btn-static-default - border: 2px solid $tertiary-color - color: $text-color - background-color: transparent - line-height: 36px - &:hover, &:focus - color: $text-color - background-color: rgba($tertiary-color,.3) - - -.btn-static-primary - border: none - color: #fff - background-image: linear-gradient(284deg, $java, $shamrock) - &:hover, &:focus - color: white - background-image: linear-gradient(284deg, $java, $shamrock) - &:active, &.active - background-image: linear-gradient(284deg, darken($java, 4%), darken($shamrock, 4%)) - - &.btn-shadow - box-shadow: 0 2px 6px 0 rgba($shamrock, 0.4) - &:hover, &:focus - box-shadow: 0 4px 12px rgba($shamrock, 0.4) - - -.btn-static-secondary - border: none - color: #fff - background-image: linear-gradient(80deg, $algolia-blue, $royal-blue) - &:hover, &:focus - color: white - background-image: linear-gradient(80deg, $algolia-blue, $royal-blue) - &:active, &.active - background-image: linear-gradient(80deg, darken($algolia-blue, 4%), darken($royal-blue, 4%)) - &.btn-shadow - box-shadow: 0 2px 6px 0 rgba($royal-blue, 0.4) - &:hover, &:focus - box-shadow: 0 4px 12px rgba($royal-blue, 0.4) - - - -.btn-static-tertiary - border: none - color: #fff - background-image: linear-gradient(112deg, $radical-red, $bittersweet) - &:hover, &:focus - color: white - background-image: linear-gradient(112deg, $radical-red, $bittersweet) - &:active, &.active - background-image: linear-gradient(112deg, darken($radical-red, 4%), darken($bittersweet, 4%)) - &.btn-shadow - box-shadow: 0 2px 6px 0 rgba($bittersweet, 0.4) - &:hover, &:focus - box-shadow: 0 4px 12px rgba($bittersweet, 0.4) - -/*! This button is generated on build and colored with $theme-color. - Think about changing the color of it to fit to your needs.*/ -.btn-static-theme - border: none - color: $bunting - background-color: $theme-color - &:hover, &:focus - color: $deep-cove - background-color: darken($theme-color, 10%) - &:active, &.active - background-image: darken($theme-color, 10%) - &.btn-shadow - box-shadow: 0 2px 6px 0 rgba($koromiko, 0.4) - &:hover, &:focus - box-shadow: 0 4px 12px rgba($koromiko, 0.4) - - svg - width: 16px - height: 16px - vertical-align: middle - margin-left: 0.5em - - use - fill: $bunting - - -.btn-static-inverse - color: white - &:hover, &:focus, &:active, &.active - color: white - - - -.btn-static-dark - color: $white - background-color: $deep-cove - background-image: linear-gradient(283deg, $deep-cove, $bunting) - border-color: $deep-cove - &:hover, &:focus - color: $white - background-color: $bunting - border-color: $bunting - &.btn-shadow - box-shadow: 0 2px 6px 0 rgba($bunting, 0.4) - &:hover, &:focus - box-shadow: 0 4px 12px rgba($bunting, 0.4) - - &:active, &.active - background-image: linear-gradient(283deg, darken($deep-cove, 10%), darken($bunting, 10%)) - -.btn-static-white - color: $bunting - background-color: $white - border-color: $white - &:hover, &:focus - color: $bunting - - -.btn-static-enterprise - color: $white - background-color: $deep-cove - border: solid 2px $shamrock - line-height: 36px - - &:hover, &:focus - color: white - background-color: $shamrock - border-color: $shamrock - - -// Circles -.btn-circle - width: 42px - height: 42px - padding: 0 - line-height: 42px - - - -// Shadows -.btn-static-shadow-dark - box-shadow: 0 2px 6px 0 rgba($deep-cove, 0.5) - &:hover, &:focus - box-shadow: 0 4px 12px rgba($deep-cove, 0.5) - - -.btn-static-default, -.btn-static-primary, -.btn-static-secondary, -.btn-static-tertiary, -.btn-static-inverse, -.btn-static-dark, -.btn-static-enterprise - &:active, &.active, - &.btn-shadow:active, .btn-shadow.active, - &.btn-static-shadow-dark:active, .btn-static-shadow-dark.active - box-shadow: inset 0 0 4px 2px rgba(#050f2c, 0.3) - - -// Sizes -.btn-lg - min-width: 210px diff --git a/docs/algolia-aerial/src/stylesheet/components/_cards.sass b/docs/algolia-aerial/src/stylesheet/components/_cards.sass deleted file mode 100644 index 186a2003..00000000 --- a/docs/algolia-aerial/src/stylesheet/components/_cards.sass +++ /dev/null @@ -1,184 +0,0 @@ - -.al-card - background-color: $white - box-shadow: 0 2px 6px 0 rgba($deep-cove, 0.4) - padding: 40px 24px - position: relative - border-radius: 4px - - &.small-card - .card-title, - .card-icon, - .card-text - vertical-align: middle - - .card-title - color: $bunting - font-size: 16px - font-weight: 800 - padding: 0 - margin: 0 - opacity: 0.8 - margin-bottom: 8px - text-transform: none - - .card-icon svg - width: 72px - - .card-text - font-size: 16px - line-height: 24px - color: $bunting - opacity: 0.7 - - &.cover-card - height: 240px - margin: 0 auto 24px - width: 240px - border-radius: 5px - overflow: hidden - - .card-background - width: 100% - height: 100% - position: absolute - transition: transform 0.3s ease - top: 50% - left: 50% - transform: translate(-50%, -50%) - - &:after - position: absolute - display: block - content: '' - width: 100% - height: 100% - top: 0 - left: 0 - background: rgba($deep-cove, 0.5) - transition: opacity 0.3s ease - - .card-icon - position: absolute - z-index: 12 - top: 50% - left: 50% - transform: translate(-50%, -50%) - transition: transform 0.3s ease - -// Card border -.card-border, -.card-border-quote - position: relative - - .card-border-line - position: absolute - top: 0 - left: 0 - height: 5px - width: 100% - border-top-left-radius: 6px - border-top-right-radius: 6px - -.card-border - height: 100% - - -// Card border with media ( img, videos ) -.card-border-media - overflow: hidden - min-height: 200px - - .card-header - width: 100% - height: 100% - height: 228px - overflow: hidden - position: relative - - img - width: 100% - height: 100% - opacity: 0.8 - will-change: opacity, mix-blend-mode - border-top-left-radius: 6px - border-top-right-radius: 6px - - @supports (mix-blend-mode: soft-light) - mix-blend-mode: soft-light - transition: opacity 0.2s ease, mix-blend-mode 0.2s ease - - @supports (not (mix-blend-mode: soft-light)) - opacity: 0.6 - - @supports (not (object-fit: cover)) - height: auto - position: absolute - top: 50% - transform: translateY(-50%) - - @supports (object-fit: cover) - object-fit: cover - object-position: center center - - .card-separator - height: 5px - width: 100% - - - - &.card-border-media-effect - .card-header img - filter: grayscale(100%) - &:hover .card-header img - filter: grayscale(0) - @supports (mix-blend-mode: soft-light) - mix-blend-mode: unset - opacity: 1 - - -// Card border quotes -.card-border-quote - - .card-container - &:before - content: '' - display: block - width: 14px - height: 14px - background: transparent - position: absolute - left: 0 - right: 0 - margin: auto - bottom: -10px - border-radius: 100px - box-shadow: 0 4px 20px rgba($bunting,0.08), 0 2px 9px 0 rgba($bunting,0.07), 0 4px 18px rgba($bunting,0.07) - z-index: -1 - &:after - content: '' - display: block - width: 18px - height: 18px - background: #fff - position: absolute - left: 0 - right: 0 - margin: auto - bottom: -9px - transform: rotate(-45deg) - - - .quote-author - - .avatar - position: relative - width: 42px - height: 42px - border-radius: 100px - float: left - margin-right: 8px - .author-infos - width: calc(100% - 42px - 8px) - float: left - > span diff --git a/docs/algolia-aerial/src/stylesheet/components/_code.sass b/docs/algolia-aerial/src/stylesheet/components/_code.sass deleted file mode 100644 index d6d89641..00000000 --- a/docs/algolia-aerial/src/stylesheet/components/_code.sass +++ /dev/null @@ -1,45 +0,0 @@ -code, -kbd, -pre, -samp - font-family: $font-family-monospace - -code - padding: 2px 4px - font-size: 90% - color: $code-color - background-color: $code-bg - border-radius: $border-radius-base - -kbd - padding: 2px 4px - font-size: 90% - color: $kbd-color - background-color: $kbd-bg - border-radius: $border-radius-small - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25) - kbd - padding: 0 - font-size: 100% - font-weight: bold - box-shadow: none - -pre - display: block - padding: ($line-height-computed - 1) / 2 - margin: 0 0 $line-height-computed / 2 - font-size: $font-size-base - 1 - line-height: $line-height-base - word-break: break-all - word-wrap: break-word - color: $pre-color - background-color: $pre-bg - border: 1px solid $pre-border-color - border-radius: $border-radius-base - code - padding: 0 - font-size: inherit - color: inherit - white-space: pre-wrap - background-color: transparent - border-radius: 0 \ No newline at end of file diff --git a/docs/algolia-aerial/src/stylesheet/components/_forms.sass b/docs/algolia-aerial/src/stylesheet/components/_forms.sass deleted file mode 100644 index f6e8ef71..00000000 --- a/docs/algolia-aerial/src/stylesheet/components/_forms.sass +++ /dev/null @@ -1,110 +0,0 @@ -fieldset - padding: 0 - margin: 0 - border: 0 - min-width: 0 - -legend - display: block - width: 100% - padding: 0 - margin-bottom: $line-height-computed - font-size: $font-size-base * 1.5 - line-height: inherit - color: $legend-color - border: 0 - border-bottom: 1px solid $legend-border-color - -label - display: inline-block - max-width: 100% - margin-bottom: 5px - font-weight: bold - - -input[type="search"] - +box-sizing(border-box) - -input[type="radio"], -input[type="checkbox"] - margin: 4px 0 0 - margin-top: 1px \9 - line-height: normal - -input[type="file"] - display: block - -input[type="range"] - display: block - width: 100% - -select[multiple], -select[size] - height: auto - -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus - +tab-focus - -output - display: block - padding-top: $padding-base-vertical + 1 - font-size: $font-size-base - line-height: $line-height-base - color: $input-color - - -.form-control - display: block - width: 100% - height: $input-height-base - padding: $padding-base-vertical $padding-base-horizontal - font-size: $font-size-base - line-height: $line-height-base - color: $input-color - background-color: $input-bg - background-image: none - border: 1px solid $input-border - border-radius: $input-border-radius - +box-shadow(inset 0 1px 1px rgba(0, 0, 0, 0.075)) - +transition(border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s) - +form-control-focus - +placeholder - - &[disabled], - &[readonly], - fieldset[disabled] & - cursor: $cursor-disabled - background-color: $input-bg-disabled - opacity: 1 - -textarea.form-control - height: auto - - -input[type="search"] - -webkit-appearance: none - - -@media screen and (-webkit-min-device-pixel-ratio: 0) - input[type="date"], - input[type="time"], - input[type="datetime-local"], - input[type="month"] - line-height: $input-height-base - input[type="date"].input-sm, - input[type="time"].input-sm, - input[type="datetime-local"].input-sm, - input[type="month"].input-sm - line-height: $input-height-small - input[type="date"].input-lg, - input[type="time"].input-lg, - input[type="datetime-local"].input-lg, - input[type="month"].input-lg - line-height: $input-height-large - - -.form-group - margin-bottom: 15px - diff --git a/docs/algolia-aerial/src/stylesheet/components/_input-groups.scss b/docs/algolia-aerial/src/stylesheet/components/_input-groups.scss deleted file mode 100644 index 7a7c86b8..00000000 --- a/docs/algolia-aerial/src/stylesheet/components/_input-groups.scss +++ /dev/null @@ -1,144 +0,0 @@ - -.input-group .form-control { - height: 40px; - border-radius: 20px; -} -.input-group { - - display: table; - - - &[class*="col-"] { - float: none; - padding-left: 0; - padding-right: 0; - } - - .form-control { - position: relative; - z-index: 2; - - float: left; - - width: 100%; - margin-bottom: 0; - - &:focus { - z-index: 3; - } - } -} - -.input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - @extend .input-lg; -} -.input-group-sm > .form-control, -.input-group-sm > .input-group-addon, -.input-group-sm > .input-group-btn > .btn { - @extend .input-sm; -} - - -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; - - &:not(:first-child):not(:last-child) { - border-radius: 0; - } -} -.input-group-addon, -.input-group-btn { - width: 1%; - white-space: nowrap; - -} - -.input-group-addon { - padding: $padding-base-vertical $padding-base-horizontal; - font-size: $font-size-base; - font-weight: normal; - line-height: 1; - color: $input-color; - text-align: center; - background-color: $input-group-addon-bg; - border: 1px solid $input-group-addon-border-color; - border-radius: $input-border-radius; - - &.input-sm { - padding: $padding-small-vertical $padding-small-horizontal; - font-size: $font-size-small; - border-radius: $input-border-radius-small; - } - &.input-lg { - padding: $padding-large-vertical $padding-large-horizontal; - font-size: $font-size-large; - border-radius: $input-border-radius-large; - } - - input[type="radio"], - input[type="checkbox"] { - margin-top: 0; - } -} - -.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group > .btn, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - @include border-right-radius(0); -} -.input-group-addon:first-child { - border-right: 0; -} -.input-group .form-control:last-child, -.input-group-addon:last-child, -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group > .btn, -.input-group-btn:last-child > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child), -.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - @include border-left-radius(0); -} -.input-group-addon:last-child { - border-left: 0; -} - -.input-group-btn { - position: relative; - font-size: 0; - white-space: nowrap; - display: block; - - > .btn { - position: relative; - + .btn { - margin-left: -1px; - } - &:hover, - &:focus, - &:active { - z-index: 2; - } - } - - &:first-child { - > .btn, - > .btn-group { - margin-right: -1px; - } - } - &:last-child { - > .btn, - > .btn-group { - z-index: 2; - margin-left: -1px; - } - } -} diff --git a/docs/algolia-aerial/src/stylesheet/components/_scaffolding.sass b/docs/algolia-aerial/src/stylesheet/components/_scaffolding.sass deleted file mode 100644 index ade8a57a..00000000 --- a/docs/algolia-aerial/src/stylesheet/components/_scaffolding.sass +++ /dev/null @@ -1,50 +0,0 @@ -* - +box-sizing(border-box) - -*:before, -*:after - +box-sizing(border-box) - - -html - font-size: 10px - -webkit-tap-highlight-color: rgba(0, 0, 0, 0) - -body - font-family: $font-family-base - font-size: $font-size-base - line-height: $line-height-base - color: $text-color - background-color: $body-bg - -input, -button, -select, -textarea - font-family: inherit - font-size: inherit - line-height: inherit - - -a - color: $link-color - text-decoration: none - &:hover, - &:focus - color: $link-hover-color - text-decoration: $link-hover-decoration - &:focus - +tab-focus - -figure - margin: 0 - -img - vertical-align: middle - -hr - margin-top: $line-height-computed - margin-bottom: $line-height-computed - border: 0 - border-top: 1px solid $hr-border - diff --git a/docs/algolia-aerial/src/stylesheet/components/_tables.sass b/docs/algolia-aerial/src/stylesheet/components/_tables.sass deleted file mode 100644 index ca4cf8d8..00000000 --- a/docs/algolia-aerial/src/stylesheet/components/_tables.sass +++ /dev/null @@ -1,46 +0,0 @@ -table - background-color: $table-bg - -caption - padding-top: $table-cell-padding - padding-bottom: $table-cell-padding - color: $text-muted - text-align: left - -th - text-align: left - - -.table - width: 100% - max-width: 100% - margin-bottom: $line-height-computed - - > thead, - > tbody, - > tfoot - > tr - > th, - > td - padding: $table-cell-padding - line-height: $line-height-base - vertical-align: top - border-top: 1px solid $table-border-color - - > thead > tr > th - vertical-align: bottom - border-bottom: 2px solid $table-border-color - - > caption + thead, - > colgroup + thead, - > thead:first-child - > tr:first-child - > th, - > td - border-top: 0 - - > tbody + tbody - border-top: 2px solid $table-border-color - - .table - background-color: $body-bg \ No newline at end of file diff --git a/docs/algolia-aerial/src/stylesheet/components/_type.sass b/docs/algolia-aerial/src/stylesheet/components/_type.sass deleted file mode 100644 index 75d00962..00000000 --- a/docs/algolia-aerial/src/stylesheet/components/_type.sass +++ /dev/null @@ -1,118 +0,0 @@ - - - -h1, h2, h3, h4, h5, h6, -.h1, .h2, .h3, .h4, .h5, .h6 - font-family: $headings-font-family - font-weight: $headings-font-weight - line-height: $headings-line-height - color: $headings-color - small, - .small - font-weight: normal - line-height: 1 - color: $headings-small-color - -h1, .h1, -h2, .h2, -h3, .h3 - margin-top: $line-height-computed - margin-bottom: $line-height-computed / 2 - small, - .small - font-size: 65% - -h4, .h4, -h5, .h5, -h6, .h6 - margin-top: $line-height-computed / 2 - margin-bottom: $line-height-computed / 2 - small, - .small - font-size: 75% - -h1, .h1 - font-size: $font-size-h1 - -h2, .h2 - font-size: $font-size-h2 - -h3, .h3 - font-size: $font-size-h3 - -h4, .h4 - font-size: $font-size-h4 - -h5, .h5 - font-size: $font-size-h5 - -h6, .h6 - font-size: $font-size-h6 - - -p - margin: 0 0 10px - - -small, -.small - font-size: floor(100% * $font-size-small / $font-size-base) - -mark, -.mark - background-color: $state-warning-bg - padding: .2em - - -ul, -ol - margin-top: 0 - margin-bottom: $line-height-computed / 2 - ul, - ol - margin-bottom: 0 - -dl - margin-top: 0 - margin-bottom: $line-height-computed - -dt, -dd - line-height: $line-height-base - -dt - font-weight: bold - -dd - margin-left: 0 - - -abbr[title], -abbr[data-original-title] - cursor: help - border-bottom: 1px dotted $abbr-border-color - -blockquote - padding: $line-height-computed / 2 $line-height-computed - margin: 0 0 $line-height-computed - font-size: $blockquote-font-size - border-left: 5px solid $blockquote-border-color - p, - ul, - ol - &:last-child - margin-bottom: 0 - footer, - small, - .small - display: block - font-size: 80% - line-height: $line-height-base - color: $blockquote-small-color - &:before - content: '\2014 \00A0' - -address - margin-bottom: $line-height-computed - font-style: normal - line-height: $line-height-base \ No newline at end of file diff --git a/docs/algolia-aerial/src/stylesheet/modules/_base.sass b/docs/algolia-aerial/src/stylesheet/modules/_base.sass deleted file mode 100644 index 12259835..00000000 --- a/docs/algolia-aerial/src/stylesheet/modules/_base.sass +++ /dev/null @@ -1,151 +0,0 @@ - -//fonts -$light: 300 -$regular: 400 -$medium: 500 -$bold: 600 - -//colors -$white: white -$black: black - -//V2 -$purple-heart: rgb(142,67,231) -$mulberry: rgb(184,69,146) -$radical-red: rgb(255,79,129) -$bittersweet: rgb(255,108,95) -$koromiko: rgb(255,193,104) -$shamrock: rgb(45,222,152) -$java: rgb(28,199,208) -$algolia-blue: rgb(0,174,255) -$royal-blue: rgb(51,105,231) - -$bunting: rgb(62,57,107) -$titan-white: rgb(248,250,255) -$logan: rgb(157,157,189) -$deep-cove: rgb(5,15,44) - -$port-gore: rgb(58, 69, 112) -$east-bay: rgb(73, 85, 136) -$portage: rgb(137, 148, 198) -$blue-bell: rgb(166, 176, 216) - -$ghost: rgb(196, 200, 216) -$athens-gray: rgb(238, 240, 247) - -$theme-color: #fecf50 - -$primary-color: $bunting -$secondary-color: $titan-white -$tertiary-color: $portage - -// BOOTSTRAP -$gray-darker: lighten(#000, 13.5%) -$gray-dark: lighten(#000, 20%) -$gray: lighten(#000, 33.5%) -$gray-light: lighten(#000, 46.7%) -$gray-lighter: lighten(#000, 93.5%) - -$brand-primary: $algolia-blue -$brand-secondary: #FA3870 -$brand-success: $shamrock - -$brand-info: $algolia-blue -$brand-warning: $koromiko -$brand-danger: $radical-red - -$font-size-base: 15px -$font-size-h1: 36px -$font-size-h2: 30px -$font-size-h3: 18px -$font-size-h4: 12px -$font-size-h5: 1em -$font-size-h6: 1em -$line-height-base: 1.6 - -$body-bg: $white -$text-color: $bunting - -$text-muted: $portage - -$border-radius-base: 3px -$border-radius-large: 3px -$border-radius-small: 3px - -$link-color: $brand-primary -$link-hover-color: darken($link-color, 15%) - -//fonts -$font-family-base: 'Montserrat', Helvetica, Arial, sans-serif -$headings-font-family: $font-family-base -$font-stack: $font-family-base -$paragraphs-font-family: 'Open Sans', helvetica, sans-serif -$headings-small-color: darken($tertiary-color,10%) - -//Buttons -$btn-font-weight: normal -//default -$btn-default-color: #777 -$btn-default-bg: $white -$btn-default-border: #ccc -//primary -$btn-primary-color: $white -$btn-primary-bg: $brand-primary -$btn-primary-border: darken($btn-primary-bg, 5%) -//success -$btn-success-color: $white -$btn-success-bg: $brand-success -$btn-success-border: darken($btn-success-bg, 5%) -//info -$btn-info-color: $white -$btn-info-bg: $brand-info -$btn-info-border: darken($btn-info-bg, 5%) -//warning -$btn-warning-color: $white -$btn-warning-bg: $brand-warning -$btn-warning-border: darken($btn-warning-bg, 5%) -//danger -$btn-danger-color: $white -$btn-danger-bg: $brand-danger -$btn-danger-border: darken($btn-danger-bg, 5%) -//link -$btn-link-disabled-color: $gray-light -$input-bg-disabled: $gray-lighter - -//Panels -$panel-bg: $white - -//** Border color for elements within panels -$panel-inner-border: lighten($tertiary-color,20%) -$panel-footer-bg: lighten($secondary-color, 10%) - -$panel-default-text: $gray-dark -$panel-default-border: $white -$panel-default-heading-bg: $white - -//forms -$input-group-addon-bg: lighten($secondary-color,3%) -$input-border: lighten($gray,30%) - -//tables -$table-border-color: $secondary-color -$table-bg-accent: lighten($secondary-color,5%) - -//tooltip -$tooltip-bg: $primary-color -$tooltip-opacity: 1 - -//popover -$popover-max-width: 300px - -//Cards -$card-border-transition: all 240ms ease-in-out - - -//code -$pre-bg: $bunting -$pre-color: #C2CCCC - - -// Searchboxes -$searchbox-landing: (input-width: 300px, input-height: 50px, border-width: 2px, border-radius: 25px, input-border-color: #cccccc, input-focus-border-color: #ff2e83, input-background: white, input-focus-background: white, font-size: 14px, placeholder-color: #bbbbbb, icon: sbx-icon-search-18, icon-size: 30px, icon-position: left, icon-color: #ff2e83, icon-background: white, icon-background-opacity: 0, icon-clear: sbx-icon-clear-5, icon-clear-size: 18px) diff --git a/docs/algolia-aerial/src/stylesheet/modules/_mixins.sass b/docs/algolia-aerial/src/stylesheet/modules/_mixins.sass deleted file mode 100644 index 7e3052f2..00000000 --- a/docs/algolia-aerial/src/stylesheet/modules/_mixins.sass +++ /dev/null @@ -1,230 +0,0 @@ - -//illus retina -@mixin at2x($path, $ext: "png", $w: auto, $h: auto) - background-image: url(image_path($path + "." + $ext)) - background-repeat: no-repeat - $at2x_path: $path + "@2x" + "." + $ext - @media all and (-webkit-min-device-pixel-ratio: 1.5), all and (-o-min-device-pixel-ratio: 3 / 2), all and (min--moz-device-pixel-ratio: 1.5), all and (min-device-pixel-ratio: 1.5) - background-image: url(image_path($at2x_path)) - background-size: $w $h - -@mixin text-truncate - overflow: hidden - text-overflow: ellipsis - white-space: nowrap - -//vertical alignment -@mixin vertical-align($position: relative) - transform: translateY(-50%) - position: $position - top: 50% - -@mixin horizontal-align($position) - position: $position - left: 50% - transform: translateX(-50%) - -@mixin center($position) - position: $position - left: 50% - top: 50% - transform: translate(-50%, -50%) - -// Responsive -// Responsive Breakpoints -@mixin big-min-mq - @media (min-width: $screen-lg) - @content - -@mixin big-mq - @media (max-width: $screen-lg) - @content - -@mixin medium-mq - @media (max-width: $screen-md) - @content - -@mixin small-mq - @media (max-width: $screen-sm) - @content - -@mixin mobile-mq - @media (max-width: $screen-xs) - @content - -// Placeholder -@mixin placeholder - &::-webkit-input-placeholder - @content - &:-moz-placeholder - @content - &::-moz-placeholder - @content - &:-ms-input-placeholder - @content - -//BEM helpers -@mixin block($block) - #{$block} - @content - -@mixin element($element) - &__#{$element} - @content - -@mixin modifier($modifier) - &--#{$modifier} - @content - - -@mixin diagonal($rotation, $background, $height, $pos: after) - &:#{$pos} - content: '' - display: block - position: absolute - width: 100% - height: $height - background: #{$background} - transform: skewY($rotation) - z-index: 0 - - @media (min-width: $screen-lg) - transform: skewY($rotation/2) - - @content - -@mixin clearfix() - &:before, - &:after - content: " " - display: table - - &:after - clear: both - - -@function even-px($value) - @if type-of($value) == "number" - @if unitless($value) - $value: $value * 1px - @else if unit($value) == "em" - $value: $value / 1em * 16px - @else if unit($value) == "pts" - $value: $value * 1.3333 * 1px - @else if unit($value) == "%" - $value: $value * 16 / 100% * 1px - $value: round($value) - @if $value % 2 != 0 - $value: $value + 1 - @return $value - -=searchbox($font-size: 90%, $input-width: 350px, $input-height: $font-size * 2.4, $border-width: 1px, $border-radius: $input-height / 2, $input-border-color: #cccccc, $input-focus-border-color: #1ec9ea, $input-background: #f8f8f8, $input-focus-background: white, $placeholder-color: #aaaaaa, $icon: "sbx-icon-search-1", $icon-size: $input-height / 1.6, $icon-position: left, $icon-color: #888888, $icon-background: $input-focus-border-color, $icon-background-opacity: 0.1, $icon-clear: "sbx-icon-clear-1", $icon-clear-size: $font-size / 1.1) - display: inline-block - position: relative - width: $input-width - height: even-px($input-height) - white-space: nowrap - box-sizing: border-box - font-size: $font-size - &__wrapper - width: 100% - height: 100% - &__input - display: inline-block - transition: box-shadow .4s ease, background .4s ease - border: 0 - border-radius: even-px($border-radius) - box-shadow: inset 0 0 0 $border-width $input-border-color - background: $input-background - padding: 0 - padding-right: if($icon-position == "right", even-px($input-height) + even-px($icon-clear-size) + 8px, even-px($input-height * 0.8)) + if($icon-background-opacity == 0, 0, even-px($font-size)) - padding-left: if($icon-position == "right", even-px($font-size / 2) + even-px($border-radius / 2), even-px($input-height) + if($icon-background-opacity == 0, 0, even-px($font-size * 1.2))) - width: 100% - height: 100% - vertical-align: middle - white-space: normal - font-size: inherit - appearance: none - &::-webkit-search-decoration, - &::-webkit-search-cancel-button, - &::-webkit-search-results-button, - &::-webkit-search-results-decoration - display: none - &:hover - box-shadow: inset 0 0 0 $border-width darken($input-border-color, 10%) - &:focus, - &:active - outline: 0 - box-shadow: inset 0 0 0 $border-width $input-focus-border-color - background: $input-focus-background - &::placeholder - color: $placeholder-color - &__submit - position: absolute - top: 0 - @if $icon-position == "right" - right: 0 - left: inherit - @else - right: inherit - left: 0 - margin: 0 - border: 0 - border-radius: if($icon-position == "right", 0 $border-radius $border-radius 0, $border-radius 0 0 $border-radius) - background-color: rgba($icon-background, $icon-background-opacity) - padding: 0 - width: even-px($input-height) + if($icon-background-opacity == 0, 0, even-px($font-size / 2)) - height: 100% - vertical-align: middle - text-align: center - font-size: inherit - user-select: none - // Helper for vertical alignement of the icon - &::before - display: inline-block - margin-right: -4px - height: 100% - vertical-align: middle - content: '' - &:hover, - &:active - cursor: pointer - &:focus - outline: 0 - svg - width: even-px($icon-size) - height: even-px($icon-size) - vertical-align: middle - fill: $icon-color - &__reset - display: none - position: absolute - top: (even-px($input-height) - even-px($icon-clear-size)) / 2 - 4px - right: if($icon-position == "right", even-px($input-height) + if($icon-background-opacity == 0, 0, even-px($font-size)), (even-px($input-height) - even-px($icon-clear-size)) / 2 - 4px) - margin: 0 - border: 0 - background: none - cursor: pointer - padding: 0 - font-size: inherit - user-select: none - fill: rgba(black, 0.5) - &:focus - outline: 0 - svg - display: block - margin: 4px - width: even-px($icon-clear-size) - height: even-px($icon-clear-size) - &__input:valid ~ &__reset - display: block - animation-name: sbx-reset-in - animation-duration: .15s - @at-root - @keyframes sbx-reset-in - 0% - transform: translate3d(-20%, 0, 0) - opacity: 0 - 100% - transform: none - opacity: 1 diff --git a/docs/algolia-aerial/src/stylesheet/partials/_bootstrap.sass b/docs/algolia-aerial/src/stylesheet/partials/_bootstrap.sass deleted file mode 100644 index c6692dc9..00000000 --- a/docs/algolia-aerial/src/stylesheet/partials/_bootstrap.sass +++ /dev/null @@ -1,11 +0,0 @@ -@import "../modules/_base" - -// Core variables and mixins -@import "../vendors/bootstrap/variables" -@import "../vendors/bootstrap/mixins" -// Reset and dependencies -@import "../vendors/bootstrap/normalize" -// Core CSS -@import "../vendors/bootstrap/grid" -// Utility classes -@import "../vendors/bootstrap/responsive-utilities" diff --git a/docs/algolia-aerial/src/stylesheet/partials/_colors.sass b/docs/algolia-aerial/src/stylesheet/partials/_colors.sass deleted file mode 100644 index e48d7584..00000000 --- a/docs/algolia-aerial/src/stylesheet/partials/_colors.sass +++ /dev/null @@ -1,124 +0,0 @@ -/* foreground colors */ -.color-white - color: $white !important -.color-titan - color: $titan-white !important -.color-primary - color: $brand-primary !important -.color-secondary - color: $brand-secondary !important -.color-purple-heart - color: $purple-heart !important -.color-mulberry - color: $mulberry !important -.color-radical-red - color: $radical-red !important -.color-bittersweet - color: $bittersweet !important -.color-koromiko - color: $koromiko !important -.color-shamrock - color: $shamrock !important -.color-java - color: $java !important -.color-algolia-blue - color: $algolia-blue !important -.color-royal-blue - color: $royal-blue !important -.color-bunting - color: $bunting !important -.color-deep-cove - color: $deep-cove !important - -.color-port-gore - color: $port-gore !important -.color-east-bay - color: $east-bay !important -.color-portage - color: $portage !important -.color-blue-bell - color: $blue-bell !important -.color-ghost - color: $ghost !important -.color-athens-gray - color: $athens-gray !important -.color-logan - color: $logan !important - -.color-current - color: currentColor !important - - -.fill-dark - background-color: $primary-color !important -.fill-white - background-color: $white !important -.fill-titan - background-color: $titan-white !important -.fill-purple-heart - background-color: $purple-heart !important -.fill-mulberry - background-color: $mulberry !important -.fill-radical-red - background-color: $radical-red !important -.fill-bittersweet - background-color: $bittersweet !important -.fill-koromiko - background-color: $koromiko !important -.fill-shamrock - background-color: $shamrock !important -.fill-java - background-color: $java !important -.fill-algolia-blue - background-color: $algolia-blue !important -.fill-royal-blue - background-color: $royal-blue !important -.fill-deep-cove - background-color: $deep-cove !important -.fill-bunting - background-color: $bunting !important -.fill-port-gore - background-color: $port-gore !important -.fill-east-bay - background-color: $east-bay !important -.fill-portage - background-color: $portage !important -.fill-blue-bell - background-color: $blue-bell !important -.fill-ghost - background-color: $ghost !important -.fill-athens-gray - background-color: $athens-gray !important -.fill-logan - background-color: $logan !important - - -.gradient-primary, -.gradient-green - background-image: linear-gradient(320deg, $shamrock, mix($shamrock,$java)) !important - -.gradient-secondary, -.gradient-blue - background-image: linear-gradient(256deg, $algolia-blue, $royal-blue) !important - -.gradient-tertiary, -.gradient-pink - background-image: linear-gradient(256deg, $bittersweet, $radical-red) !important - -.gradient-orange - background-image: linear-gradient(256deg, $koromiko, $bittersweet) - -.gradient-purple - background-image: linear-gradient(269deg, #8e43e6, #b84592) - -.gradient-light-blue - background-image: linear-gradient(269deg, $algolia-blue, $java) - -.gradient-blue-purple - background-image: linear-gradient(103deg, $royal-blue, $purple-heart) - -.gradient-dark - background-image: linear-gradient(283deg, $deep-cove, $bunting) - -.gradient-white - background-image: linear-gradient(0deg, $titan-white, #ffffff) diff --git a/docs/algolia-aerial/src/stylesheet/partials/_fonts.sass b/docs/algolia-aerial/src/stylesheet/partials/_fonts.sass deleted file mode 100644 index 6b2ac040..00000000 --- a/docs/algolia-aerial/src/stylesheet/partials/_fonts.sass +++ /dev/null @@ -1,15 +0,0 @@ -@import url('https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800') -@import url('https://fonts.googleapis.com/css?family=Montserrat:300,400,500,700,900') - - -h1, h2, h3, h4 - font-family: $headings-font-family - - -/*! The paragraphs also use Montserrat on the website, except on the documentation and other exceptions */ -p - font-size: 15px - font-family: $headings-font-family - -strong - font-family: $headings-font-family \ No newline at end of file diff --git a/docs/algolia-aerial/src/stylesheet/partials/_helpers.sass b/docs/algolia-aerial/src/stylesheet/partials/_helpers.sass deleted file mode 100644 index 4b3231d2..00000000 --- a/docs/algolia-aerial/src/stylesheet/partials/_helpers.sass +++ /dev/null @@ -1,698 +0,0 @@ -/** - *spacer - */ -@mixin spacer - width: 100% - font-size: 0 - margin: 0 - padding: 0 - border: 0 - display: block - - -.spacer8 - +spacer - height: 8px -.spacer16 - +spacer - height: 16px -.spacer24 - +spacer - height: 24px -.spacer32 - +spacer - height: 32px -.spacer40 - +spacer - height: 40px -.spacer48 - +spacer - height: 48px -.spacer56 - +spacer - height: 56px -.spacer64 - +spacer - height: 64px -.spacer80 - +spacer - height: 80px -.spacer120 - +spacer - height: 120px - - -/** - *width - */ -.w100 - width: 100px -.w150 - width: 150px -.w200 - width: 200px -.w100p - width: 100% -.m100 - max-width: 100px -.m200 - max-width: 200px -.m300 - max-width: 300px -.m400 - max-width: 400px -.m500 - max-width: 500px -.m600 - max-width: 600px -.m700 - max-width: 700px -.m800 - max-width: 800px -.m900 - max-width: 900px -.m1000 - max-width: 1000px -.m1200 - max-width: 1200px -.m100p - max-width: 100% - -/** - *height - */ -.h80 - height: 80px -.h100 - height: 100px -.h200 - height: 200px -.h300 - height: 300px -.h400 - height: 400px -.h500 - height: 500px -.h600 - height: 600px -.h700 - height: 700px -.h800 - height: 800px -.hfull - height: 100% - -/** - * positions - */ -.pos-rel - position: relative -.pos-stc - position: static -.pos-abt - position: absolute -.pos-fix - position: fixed - -/** - * Indexing - */ -.z-1 - z-index: 1 -.z-2 - z-index: 2 -.z-3 - z-index: 3 -.z-4 - z-index: 4 -.z-5 - z-index: 5 -.z-10 - z-index: 10 -.z-20 - z-index: 20 -.z-100 - z-index: 100 - - -/** - *font size - */ -.text-heading - font-size: 56px - -.text-xxl - font-size: 40px - -.text-xl - font-size: 32px - -.text-lg - font-size: 24px - -.text-bg - font-size: 20px - -.text-regular - font-size: 15px - -.text-sm - font-size: 12px - -.text-xsm - font-size: 10px - -.text-xs - font-size: 8px - - -/** - *font weight - */ -.text-thin - font-weight: 300 -.text-normal - font-weight: 400 -.text-demi - font-weight: 500 -p.text-demi - font-weight: 600 -.text-bold - font-weight: 700 -.text-bolder - font-weight: 900 -p.text-bolder - font-weight: 800 - -/** - *borders - */ -.b-t - border-top: 1px solid $secondary-color -.b-r - border-right: 1px solid $secondary-color -.b-b - border-bottom: 1px solid $secondary-color -.b-l - border-left: 1px solid $secondary-color - -.b-n - border: none !important - - -/** - * Radius - */ -.radius6 - border-radius: 6px -.radius100p - border-radius: 100% - - -/** - *padding - */ -.padder - padding: 0 15px -.p-mini - padding: 5px -.p-small - padding: 10px -.p-large - padding: 20px -.p-xlarge - padding: 30px - -.p-t-mini - padding-top: 5px -.p-t-small - padding-top: 10px -.p-t-large - padding-top: 20px -.p-t-xlarge - padding-top: 30px - -.p-b-mini - padding-bottom: 5px -.p-b-small - padding-bottom: 10px -.p-b-large - padding-bottom: 20px -.p-b-xlarge - padding-bottom: 30px - -.p-l-small - padding-left: 10px -.p-l-large - padding-left: 20px -.p-l-xlarge - padding-left: 30px -.p-r-small - padding-right: 10px -.p-r-large - padding-right: 20px -.p-r-xlarge - padding-right: 30px -.p-l-xxlarge - padding-left: 60px -.p-r-xxlarge - padding-right: 60px - -.no-padding - padding: 0 !important -.no-p-l - padding-left: 0 -.no-p-r - padding-right: 0 -.no-p-t - padding-top: 0 !important -.no-p-b - padding-bottom: 0 - -/** - *margin - */ -.m-l-r-auto - margin-left: auto - margin-right: auto -.m-l - margin-left: 15px -.m-l-none - margin-left: 0 -.m-l-mini - margin-left: 5px -.m-l-small - margin-left: 10px -.m-l-large - margin-left: 20px -.m-l-n - margin-left: -15px -.m-l-n-mini - margin-left: -5px -.m-l-n-small - margin-left: -10px -.m-l-n-large - margin-left: -20px -.m-t - margin-top: 15px -.m-t-none - margin-top: 0 -.m-t-mini - margin-top: 5px -.m-t-small - margin-top: 10px -.m-t-large - margin-top: 20px -.m-t-n - margin-top: -15px -.m-t-n-xmini - margin-top: -1px -.m-t-n-mini - margin-top: -5px -.m-t-n-small - margin-top: -10px -.m-t-n-large - margin-top: -20px -.m-r - margin-right: 15px -.m-r-none - margin-right: 0 -.m-r-mini - margin-right: 5px -.m-r-small - margin-right: 10px -.m-r-large - margin-right: 20px -.m-r-n - margin-right: -15px -.m-r-n-mini - margin-right: -5px -.m-r-n-small - margin-right: -10px -.m-r-n-large - margin-right: -20px -.m-b - margin-bottom: 15px -.m-b-none - margin-bottom: 0 -.m-b-mini - margin-bottom: 5px -.m-b-small - margin-bottom: 10px -.m-b-large - margin-bottom: 20px -.m-b-xlarge - margin-bottom: 30px -.m-b-n - margin-bottom: -15px -.m-b-n-mini - margin-bottom: -5px -.m-b-n-small - margin-bottom: -10px -.m-b-n-large - margin-bottom: -20px - -.no-margin - margin: 0 !important - -/** - * text - */ -// Alignment -.text-left - text-align: left - -.text-right - text-align: right - -.text-center - text-align: center - -.text-justify - text-align: justify - -// Contextual colors -.text-muted - color: $text-muted -.vertical-align-middle - display: inline-block !important - vertical-align: middle !important -.vertical-align-bottom - display: inline-block !important - vertical-align: bottom !important -.text-ellipsis - white-space: nowrap - overflow: hidden - max-width: 100% - text-overflow: ellipsis -.text-break-word - word-wrap: break-word -.nowrap - word-wrap: nowrap - white-space: nowrap -.lower-case - text-transform: lowercase -.upper-case - text-transform: uppercase -.capital-case - text-transform: capitalize -.hidden-text - text-indent: -9999px - color: transparent - -/** - * Line height - */ -.line-h-regular - line-height: 1.5 - -.line-h-small - line-height: 1.2 - -/** - *line - */ -.line - width: 100% - height: 1px - margin: 10px 0 - font-size: 0 - overflow: hidden - border-width: 0 - background-color: $secondary-color -.line-dashed - border-style: dashed - background: transparent -.headline - border-bottom: 5px solid $black - margin-top: 0 - line-height: 45px - -.no-line - border-width: 0 -.no-border - border-color: transparent !important -.no-radius - border-radius: 0 -.block - display: block -.inline - display: inline-block -.pull-left - float: left -.pull-right - float: right -.pull-none - float: none -.pull-in - margin-right: -15px - margin-left: -15px -.line-v - border-left: 1px solid #dddddd - padding-left: 20px -.line-v-right - border-right: 1px solid #dddddd - padding-right: 20px - - -/** - * Flexbox - */ -.flex-container - display: flex - -.flex-dir-col - flex-flow: column wrap - &-reverse - flex-flow: column-reverse wrap - -.flex-dir-row - flex-flow: row wrap - &-reverse - flex-flow: row-reverse wrap - -/** - * Flex space setting - */ -.flex-space-around - justify-content: space-around - -.flex-space-between - justify-content: space-between - -.flex-align-center - align-items: center - -/** - * Flex item size - */ -.flex-it-4 - flex: 0 1 25% - -_:-ms-input-placeholder, :root .flex-it-4 - -ms-flex-preferred-size: 21% !important - -.flex-it-3 - flex: 0 1 33.33% - -_:-ms-input-placeholder, :root .flex-it-3 - -ms-flex-preferred-size: 29% !important - -.flex-it-2 - flex: 0 1 50% - -_:-ms-input-placeholder, :root .flex-it-2 - -ms-flex-preferred-size: 48% !important - @supports ( not ( mix-blend-mode: luminosity)) - flex: 0 1 49.95% - - -.flex-it-1 - flex: 0 1 100% - -// Responsive flex classes -@media (min-width: 1200px) - .flex-it-1-lg - flex: 0 1 100% - - .flex-it-2-lg - flex: 0 1 50% - _:-ms-input-placeholder, :root .flex-it-2-lg - -ms-flex-preferred-size: 48% !important - @supports ( not ( mix-blend-mode: luminosity)) - flex: 0 1 49.95% - - .flex-it-3-lg - flex: 0 1 33.33% - _:-ms-input-placeholder, :root .flex-it-3-lg - -ms-flex-preferred-size: 29% !important - - .flex-it-4-lg - flex: 0 1 25% - _:-ms-input-placeholder, :root .flex-it-4-lg - -ms-flex-preferred-size: 21% !important - -@media (max-width: 768px) - .flex-it-1-sm - flex: 0 1 100% - - .flex-it-2-sm - flex: 0 1 50% - _:-ms-input-placeholder, :root .flex-it-2-sm - -ms-flex-preferred-size: 48% !important - @supports ( not ( mix-blend-mode: luminosity)) - flex: 0 1 49.95% - - .flex-it-3-sm - flex: 0 1 33.33% - _:-ms-input-placeholder, :root .flex-it-3-sm - -ms-flex-preferred-size: 29% !important - - .flex-it-4-sm - flex: 0 1 25% - _:-ms-input-placeholder, :root .flex-it-4-sm - -ms-flex-preferred-size: 21% !important - -/** - * others - */ -.unscroll - overflow: hidden !important - -.clickable - cursor: pointer - -.rotate-45 - transform: rotate(45deg) - -.content-box - box-sizing: content-box - -.faded - opacity: .3 - -.op0 - opacity: 0 - -.line-through - text-decoration: line-through - -.no-decoration - text-decoration: none - - -/** - * Centering - */ -.v-center - position: absolute - top: 50% - transform: translateY(-50%) - -.h-center - position: absolute - left: 50% - transform: translateX(-50%) - -.vh-center - position: absolute - top: 50% - left: 50% - transform: translate(-50%,-50%) - - -/** - * Hidden utilities - */ -.hidden-sm - @media (max-width: $screen-sm) - display: none !important - -.visible-sm - @media (max-width: $screen-sm) - display: block !important - -.hidden - display: none !important - visibility: hidden !important - -/** - * CSS for and - */ -sub, sup - font-size: 50% - line-height: 0 - position: relative - vertical-align: baseline - -sup - top: -0.7em - -sub - bottom: -0.25em - -[ng\:cloak], [ng-cloak], .ng-cloak - display: none !important - - - -/** - * Lists - */ -.list-none - list-style: none - -/** - * Clearfix - */ -.cf:before, -.cf:after - content: " " - display: table - - -.cf:after - clear: both - -/** - * For IE 6/7 only - * Include this rule to trigger hasLayout and contain floats. - */ -.cf - *zoom: 1 - - -/** - * Shadows - */ - -.elevation0 - box-shadow: 0 5px 15px 0 rgba(112, 128, 175, 0.2) - -.elevation1 - box-shadow: 0 10px 40px 0 rgba($bunting,0.07), 0 2px 9px 0 rgba($bunting,0.06) - -.elevation2 - box-shadow: 0 16px 32px 0 rgba($bunting, 0.2) - -// Placeholders -%elevation1 - box-shadow: 0 10px 40px 0 rgba($bunting,0.07), 0 2px 9px 0 rgba($bunting,0.06) - -/** - * For inputs - */ -.apn - -webkit-appearance: none - -moz-appearance: none - appearance: none - -.otn - outline: none - -/** - * To use with gradient for text - */ -.gradient-text - -webkit-background-clip: text - -webkit-text-fill-color: transparent \ No newline at end of file diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/_grid.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/_grid.scss deleted file mode 100755 index b15ca27b..00000000 --- a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/_grid.scss +++ /dev/null @@ -1,84 +0,0 @@ -// -// Grid system -// -------------------------------------------------- - - -// Container widths -// -// Set the container width, and override it for fixed navbars in media queries. - -.container { - @include container-fixed; - - @media (min-width: $screen-sm-min) { - width: $container-sm; - } - @media (min-width: $screen-md-min) { - width: $container-md; - } - @media (min-width: $screen-lg-min) { - width: $container-lg; - } -} - - -// Fluid container -// -// Utilizes the mixin meant for fixed width containers, but without any defined -// width for fluid, full width layouts. - -.container-fluid { - @include container-fixed; -} - - -// Row -// -// Rows contain and clear the floats of your columns. - -.row { - @include make-row; -} - - -// Columns -// -// Common styles for small and large grid columns - -@include make-grid-columns; - - -// Extra small grid -// -// Columns, offsets, pushes, and pulls for extra small devices like -// smartphones. - -@include make-grid(xs); - - -// Small grid -// -// Columns, offsets, pushes, and pulls for the small device range, from phones -// to tablets. - -@media (min-width: $screen-sm-min) { - @include make-grid(sm); -} - - -// Medium grid -// -// Columns, offsets, pushes, and pulls for the desktop device range. - -@media (min-width: $screen-md-min) { - @include make-grid(md); -} - - -// Large grid -// -// Columns, offsets, pushes, and pulls for the large desktop device range. - -@media (min-width: $screen-lg-min) { - @include make-grid(lg); -} diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/_mixins.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/_mixins.scss deleted file mode 100755 index b565f013..00000000 --- a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/_mixins.scss +++ /dev/null @@ -1,39 +0,0 @@ -// Mixins -// -------------------------------------------------- - -// Utilities -@import "mixins/hide-text"; -@import "mixins/opacity"; -@import "mixins/image"; -@import "mixins/labels"; -@import "mixins/reset-filter"; -@import "mixins/resize"; -@import "mixins/responsive-visibility"; -@import "mixins/size"; -@import "mixins/tab-focus"; -@import "mixins/text-emphasis"; -@import "mixins/text-overflow"; -@import "mixins/vendor-prefixes"; - -// Components -@import "mixins/alerts"; -@import "mixins/buttons"; -@import "mixins/panels"; -@import "mixins/pagination"; -@import "mixins/list-group"; -@import "mixins/nav-divider"; -@import "mixins/forms"; -@import "mixins/progress-bar"; -@import "mixins/table-row"; - -// Skins -@import "mixins/background-variant"; -@import "mixins/border-radius"; -@import "mixins/gradients"; - -// Layout -@import "mixins/clearfix"; -@import "mixins/center-block"; -@import "mixins/nav-vertical-align"; -@import "mixins/grid-framework"; -@import "mixins/grid"; diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/_normalize.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/_normalize.scss deleted file mode 100755 index 62a085a4..00000000 --- a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/_normalize.scss +++ /dev/null @@ -1,427 +0,0 @@ -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ - -// -// 1. Set default font family to sans-serif. -// 2. Prevent iOS text size adjust after orientation change, without disabling -// user zoom. -// - -html { - font-family: sans-serif; // 1 - -ms-text-size-adjust: 100%; // 2 - -webkit-text-size-adjust: 100%; // 2 -} - -// -// Remove default margin. -// - -body { - margin: 0; -} - -// HTML5 display definitions -// ========================================================================== - -// -// Correct `block` display not defined for any HTML5 element in IE 8/9. -// Correct `block` display not defined for `details` or `summary` in IE 10/11 -// and Firefox. -// Correct `block` display not defined for `main` in IE 11. -// - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} - -// -// 1. Correct `inline-block` display not defined in IE 8/9. -// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. -// - -audio, -canvas, -progress, -video { - display: inline-block; // 1 - vertical-align: baseline; // 2 -} - -// -// Prevent modern browsers from displaying `audio` without controls. -// Remove excess height in iOS 5 devices. -// - -audio:not([controls]) { - display: none; - height: 0; -} - -// -// Address `[hidden]` styling not present in IE 8/9/10. -// Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. -// - -[hidden], -template { - display: none; -} - -// Links -// ========================================================================== - -// -// Remove the gray background color from active links in IE 10. -// - -a { - background-color: transparent; -} - -// -// Improve readability when focused and also mouse hovered in all browsers. -// - -a:active, -a:hover { - outline: 0; -} - -// Text-level semantics -// ========================================================================== - -// -// Address styling not present in IE 8/9/10/11, Safari, and Chrome. -// - -abbr[title] { - border-bottom: 1px dotted; -} - -// -// Address style set to `bolder` in Firefox 4+, Safari, and Chrome. -// - -b, -strong { - font-weight: bold; -} - -// -// Address styling not present in Safari and Chrome. -// - -dfn { - font-style: italic; -} - -// -// Address variable `h1` font-size and margin within `section` and `article` -// contexts in Firefox 4+, Safari, and Chrome. -// - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -// -// Address styling not present in IE 8/9. -// - -mark { - background: #ff0; - color: #000; -} - -// -// Address inconsistent and variable font size in all browsers. -// - -small { - font-size: 80%; -} - -// -// Prevent `sub` and `sup` affecting `line-height` in all browsers. -// - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -// Embedded content -// ========================================================================== - -// -// Remove border when inside `a` element in IE 8/9/10. -// - -img { - border: 0; -} - -// -// Correct overflow not hidden in IE 9/10/11. -// - -svg:not(:root) { - overflow: hidden; -} - -// Grouping content -// ========================================================================== - -// -// Address margin not present in IE 8/9 and Safari. -// - -figure { - margin: 1em 40px; -} - -// -// Address differences between Firefox and other browsers. -// - -hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; -} - -// -// Contain overflow in all browsers. -// - -pre { - overflow: auto; -} - -// -// Address odd `em`-unit font size rendering in all browsers. -// - -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} - -// Forms -// ========================================================================== - -// -// Known limitation: by default, Chrome and Safari on OS X allow very limited -// styling of `select`, unless a `border` property is set. -// - -// -// 1. Correct color not being inherited. -// Known issue: affects color of disabled elements. -// 2. Correct font properties not being inherited. -// 3. Address margins set differently in Firefox 4+, Safari, and Chrome. -// - -button, -input, -optgroup, -select, -textarea { - color: inherit; // 1 - font: inherit; // 2 - margin: 0; // 3 -} - -// -// Address `overflow` set to `hidden` in IE 8/9/10/11. -// - -button { - overflow: visible; -} - -// -// Address inconsistent `text-transform` inheritance for `button` and `select`. -// All other form control elements do not inherit `text-transform` values. -// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. -// Correct `select` style inheritance in Firefox. -// - -button, -select { - text-transform: none; -} - -// -// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` -// and `video` controls. -// 2. Correct inability to style clickable `input` types in iOS. -// 3. Improve usability and consistency of cursor style between image-type -// `input` and others. -// - -button, -html input[type="button"], // 1 -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; // 2 - cursor: pointer; // 3 -} - -// -// Re-set default cursor for disabled elements. -// - -button[disabled], -html input[disabled] { - cursor: default; -} - -// -// Remove inner padding and border in Firefox 4+. -// - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -// -// Address Firefox 4+ setting `line-height` on `input` using `!important` in -// the UA stylesheet. -// - -input { - line-height: normal; -} - -// -// It's recommended that you don't attempt to style these elements. -// Firefox's implementation doesn't respect box-sizing, padding, or width. -// -// 1. Address box sizing set to `content-box` in IE 8/9/10. -// 2. Remove excess padding in IE 8/9/10. -// - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; // 1 - padding: 0; // 2 -} - -// -// Fix the cursor style for Chrome's increment/decrement buttons. For certain -// `font-size` values of the `input`, it causes the cursor style of the -// decrement button to change from `default` to `text`. -// - -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -// -// 1. Address `appearance` set to `searchfield` in Safari and Chrome. -// 2. Address `box-sizing` set to `border-box` in Safari and Chrome -// (include `-moz` to future-proof). -// - -input[type="search"] { - -webkit-appearance: textfield; // 1 - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; // 2 - box-sizing: content-box; -} - -// -// Remove inner padding and search cancel button in Safari and Chrome on OS X. -// Safari (but not Chrome) clips the cancel button when the search input has -// padding (and `textfield` appearance). -// - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -// -// Define consistent border, margin, and padding. -// - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -// -// 1. Correct `color` not being inherited in IE 8/9/10/11. -// 2. Remove padding so people aren't caught out if they zero out fieldsets. -// - -legend { - border: 0; // 1 - padding: 0; // 2 -} - -// -// Remove default vertical scrollbar in IE 8/9/10/11. -// - -textarea { - overflow: auto; -} - -// -// Don't inherit the `font-weight` (applied by a rule above). -// NOTE: the default cannot safely be changed in Chrome and Safari on OS X. -// - -optgroup { - font-weight: bold; -} - -// Tables -// ========================================================================== - -// -// Remove most spacing between table cells. -// - -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, -th { - padding: 0; -} diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/_responsive-utilities.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/_responsive-utilities.scss deleted file mode 100755 index 8d02aaa3..00000000 --- a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/_responsive-utilities.scss +++ /dev/null @@ -1,177 +0,0 @@ -// -// Responsive: Utility classes -// -------------------------------------------------- - - -// IE10 in Windows (Phone) 8 -// -// Support for responsive views via media queries is kind of borked in IE10, for -// Surface/desktop in split view and for Windows Phone 8. This particular fix -// must be accompanied by a snippet of JavaScript to sniff the user agent and -// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at -// our Getting Started page for more information on this bug. -// -// For more information, see the following: -// -// Issue: https://github.com/twbs/bootstrap/issues/10497 -// Docs: http://getbootstrap.com/getting-started/#support-ie10-width -// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/ -// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/ - -@-ms-viewport { - width: device-width; -} - - -// Visibility utilities -// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0 - -@include responsive-invisibility('.visible-xs'); -@include responsive-invisibility('.visible-sm'); -@include responsive-invisibility('.visible-md'); -@include responsive-invisibility('.visible-lg'); - -.visible-xs-block, -.visible-xs-inline, -.visible-xs-inline-block, -.visible-sm-block, -.visible-sm-inline, -.visible-sm-inline-block, -.visible-md-block, -.visible-md-inline, -.visible-md-inline-block, -.visible-lg-block, -.visible-lg-inline, -.visible-lg-inline-block { - display: none !important; -} - -@media (max-width: $screen-xs-max) { - @include responsive-visibility('.visible-xs'); -} -.visible-xs-block { - @media (max-width: $screen-xs-max) { - display: block !important; - } -} -.visible-xs-inline { - @media (max-width: $screen-xs-max) { - display: inline !important; - } -} -.visible-xs-inline-block { - @media (max-width: $screen-xs-max) { - display: inline-block !important; - } -} - -@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { - @include responsive-visibility('.visible-sm'); -} -.visible-sm-block { - @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { - display: block !important; - } -} -.visible-sm-inline { - @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { - display: inline !important; - } -} -.visible-sm-inline-block { - @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { - display: inline-block !important; - } -} - -@media (min-width: $screen-md-min) and (max-width: $screen-md-max) { - @include responsive-visibility('.visible-md'); -} -.visible-md-block { - @media (min-width: $screen-md-min) and (max-width: $screen-md-max) { - display: block !important; - } -} -.visible-md-inline { - @media (min-width: $screen-md-min) and (max-width: $screen-md-max) { - display: inline !important; - } -} -.visible-md-inline-block { - @media (min-width: $screen-md-min) and (max-width: $screen-md-max) { - display: inline-block !important; - } -} - -@media (min-width: $screen-lg-min) { - @include responsive-visibility('.visible-lg'); -} -.visible-lg-block { - @media (min-width: $screen-lg-min) { - display: block !important; - } -} -.visible-lg-inline { - @media (min-width: $screen-lg-min) { - display: inline !important; - } -} -.visible-lg-inline-block { - @media (min-width: $screen-lg-min) { - display: inline-block !important; - } -} - -@media (max-width: $screen-xs-max) { - @include responsive-invisibility('.hidden-xs'); -} - -@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { - @include responsive-invisibility('.hidden-sm'); -} - -@media (min-width: $screen-md-min) and (max-width: $screen-md-max) { - @include responsive-invisibility('.hidden-md'); -} - -@media (min-width: $screen-lg-min) { - @include responsive-invisibility('.hidden-lg'); -} - - -// Print utilities -// -// Media queries are placed on the inside to be mixin-friendly. - -// Note: Deprecated .visible-print as of v3.2.0 - -@include responsive-invisibility('.visible-print'); - -@media print { - @include responsive-visibility('.visible-print'); -} -.visible-print-block { - display: none !important; - - @media print { - display: block !important; - } -} -.visible-print-inline { - display: none !important; - - @media print { - display: inline !important; - } -} -.visible-print-inline-block { - display: none !important; - - @media print { - display: inline-block !important; - } -} - -@media print { - @include responsive-invisibility('.hidden-print'); -} diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/_variables.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/_variables.scss deleted file mode 100755 index 7d190f26..00000000 --- a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/_variables.scss +++ /dev/null @@ -1,864 +0,0 @@ -// When true, asset path helpers are used, otherwise the regular CSS `url()` is used. -// When there no function is defined, `fn('')` is parsed as string that equals the right hand side -// NB: in Sass 3.3 there is a native function: function-exists(twbs-font-path) -$bootstrap-sass-asset-helper: (twbs-font-path("") != unquote('twbs-font-path("")')) !default; - -// -// Variables -// -------------------------------------------------- - - -//== Colors -// -//## Gray and brand colors for use across Bootstrap. - -$gray-base: #000 !default; -$gray-darker: lighten($gray-base, 13.5%) !default; // #222 -$gray-dark: lighten($gray-base, 20%) !default; // #333 -$gray: lighten($gray-base, 33.5%) !default; // #555 -$gray-light: lighten($gray-base, 46.7%) !default; // #777 -$gray-lighter: lighten($gray-base, 93.5%) !default; // #eee - -$brand-primary: darken(#428bca, 6.5%) !default; -$brand-success: #5cb85c !default; -$brand-info: #5bc0de !default; -$brand-warning: #f0ad4e !default; -$brand-danger: #d9534f !default; - - -//== Scaffolding -// -//## Settings for some of the most global styles. - -//** Background color for ``. -$body-bg: #fff !default; -//** Global text color on ``. -$text-color: $gray-dark !default; - -//** Global textual link color. -$link-color: $brand-primary !default; -//** Link hover color set via `darken()` function. -$link-hover-color: darken($link-color, 15%) !default; -//** Link hover decoration. -$link-hover-decoration: underline !default; - - -//== Typography -// -//## Font, line-height, and color for body text, headings, and more. - -$font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif !default; -$font-family-serif: Georgia, "Times New Roman", Times, serif !default; -//** Default monospace fonts for ``, ``, and `
`.
-$font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace !default;
-$font-family-base:        $font-family-sans-serif !default;
-
-$font-size-base:          14px !default;
-$font-size-large:         ceil(($font-size-base * 1.25)) !default; // ~18px
-$font-size-small:         ceil(($font-size-base * 0.85)) !default; // ~12px
-
-$font-size-h1:            floor(($font-size-base * 2.6)) !default; // ~36px
-$font-size-h2:            floor(($font-size-base * 2.15)) !default; // ~30px
-$font-size-h3:            ceil(($font-size-base * 1.7)) !default; // ~24px
-$font-size-h4:            ceil(($font-size-base * 1.25)) !default; // ~18px
-$font-size-h5:            $font-size-base !default;
-$font-size-h6:            ceil(($font-size-base * 0.85)) !default; // ~12px
-
-//** Unit-less `line-height` for use in components like buttons.
-$line-height-base:        1.428571429 !default; // 20/14
-//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
-$line-height-computed:    floor(($font-size-base * $line-height-base)) !default; // ~20px
-
-//** By default, this inherits from the ``.
-$headings-font-family:    inherit !default;
-$headings-font-weight:    500 !default;
-$headings-line-height:    1.1 !default;
-$headings-color:          inherit !default;
-
-
-//== Iconography
-//
-//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
-
-//** Load fonts from this directory.
-
-// [converter] Asset helpers such as Sprockets and Node.js Mincer do not resolve relative paths
-$icon-font-path: if($bootstrap-sass-asset-helper, "bootstrap/", "../fonts/bootstrap/") !default;
-
-//** File name for all font files.
-$icon-font-name:          "glyphicons-halflings-regular" !default;
-//** Element ID within SVG icon file.
-$icon-font-svg-id:        "glyphicons_halflingsregular" !default;
-
-
-//== Components
-//
-//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
-
-$padding-base-vertical:     6px !default;
-$padding-base-horizontal:   12px !default;
-
-$padding-large-vertical:    10px !default;
-$padding-large-horizontal:  16px !default;
-
-$padding-small-vertical:    5px !default;
-$padding-small-horizontal:  10px !default;
-
-$padding-xs-vertical:       1px !default;
-$padding-xs-horizontal:     5px !default;
-
-$line-height-large:         1.33 !default;
-$line-height-small:         1.5 !default;
-
-$border-radius-base:        4px !default;
-$border-radius-large:       6px !default;
-$border-radius-small:       3px !default;
-
-//** Global color for active items (e.g., navs or dropdowns).
-$component-active-color:    #fff !default;
-//** Global background color for active items (e.g., navs or dropdowns).
-$component-active-bg:       $brand-primary !default;
-
-//** Width of the `border` for generating carets that indicator dropdowns.
-$caret-width-base:          4px !default;
-//** Carets increase slightly in size for larger components.
-$caret-width-large:         5px !default;
-
-
-//== Tables
-//
-//## Customizes the `.table` component with basic values, each used across all table variations.
-
-//** Padding for ``s and ``s.
-$table-cell-padding:            8px !default;
-//** Padding for cells in `.table-condensed`.
-$table-condensed-cell-padding:  5px !default;
-
-//** Default background color used for all tables.
-$table-bg:                      transparent !default;
-//** Background color used for `.table-striped`.
-$table-bg-accent:               #f9f9f9 !default;
-//** Background color used for `.table-hover`.
-$table-bg-hover:                #f5f5f5 !default;
-$table-bg-active:               $table-bg-hover !default;
-
-//** Border color for table and cell borders.
-$table-border-color:            #ddd !default;
-
-
-//== Buttons
-//
-//## For each of Bootstrap's buttons, define text, background and border color.
-
-$btn-font-weight:                normal !default;
-
-$btn-default-color:              #333 !default;
-$btn-default-bg:                 #fff !default;
-$btn-default-border:             #ccc !default;
-
-$btn-primary-color:              #fff !default;
-$btn-primary-bg:                 $brand-primary !default;
-$btn-primary-border:             darken($btn-primary-bg, 5%) !default;
-
-$btn-success-color:              #fff !default;
-$btn-success-bg:                 $brand-success !default;
-$btn-success-border:             darken($btn-success-bg, 5%) !default;
-
-$btn-info-color:                 #fff !default;
-$btn-info-bg:                    $brand-info !default;
-$btn-info-border:                darken($btn-info-bg, 5%) !default;
-
-$btn-warning-color:              #fff !default;
-$btn-warning-bg:                 $brand-warning !default;
-$btn-warning-border:             darken($btn-warning-bg, 5%) !default;
-
-$btn-danger-color:               #fff !default;
-$btn-danger-bg:                  $brand-danger !default;
-$btn-danger-border:              darken($btn-danger-bg, 5%) !default;
-
-$btn-link-disabled-color:        $gray-light !default;
-
-
-//== Forms
-//
-//##
-
-//** `` background color
-$input-bg:                       #fff !default;
-//** `` background color
-$input-bg-disabled:              $gray-lighter !default;
-
-//** Text color for ``s
-$input-color:                    $gray !default;
-//** `` border color
-$input-border:                   #ccc !default;
-
-// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4
-//** Default `.form-control` border radius
-$input-border-radius:            $border-radius-base !default;
-//** Large `.form-control` border radius
-$input-border-radius-large:      $border-radius-large !default;
-//** Small `.form-control` border radius
-$input-border-radius-small:      $border-radius-small !default;
-
-//** Border color for inputs on focus
-$input-border-focus:             #66afe9 !default;
-
-//** Placeholder text color
-$input-color-placeholder:        #999 !default;
-
-//** Default `.form-control` height
-$input-height-base:              ($line-height-computed + ($padding-base-vertical * 2) + 2) !default;
-//** Large `.form-control` height
-$input-height-large:             (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default;
-//** Small `.form-control` height
-$input-height-small:             (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default;
-
-$legend-color:                   $gray-dark !default;
-$legend-border-color:            #e5e5e5 !default;
-
-//** Background color for textual input addons
-$input-group-addon-bg:           $gray-lighter !default;
-//** Border color for textual input addons
-$input-group-addon-border-color: $input-border !default;
-
-//** Disabled cursor for form controls and buttons.
-$cursor-disabled:                not-allowed !default;
-
-
-//== Dropdowns
-//
-//## Dropdown menu container and contents.
-
-//** Background for the dropdown menu.
-$dropdown-bg:                    #fff !default;
-//** Dropdown menu `border-color`.
-$dropdown-border:                rgba(0,0,0,.15) !default;
-//** Dropdown menu `border-color` **for IE8**.
-$dropdown-fallback-border:       #ccc !default;
-//** Divider color for between dropdown items.
-$dropdown-divider-bg:            #e5e5e5 !default;
-
-//** Dropdown link text color.
-$dropdown-link-color:            $gray-dark !default;
-//** Hover color for dropdown links.
-$dropdown-link-hover-color:      darken($gray-dark, 5%) !default;
-//** Hover background for dropdown links.
-$dropdown-link-hover-bg:         #f5f5f5 !default;
-
-//** Active dropdown menu item text color.
-$dropdown-link-active-color:     $component-active-color !default;
-//** Active dropdown menu item background color.
-$dropdown-link-active-bg:        $component-active-bg !default;
-
-//** Disabled dropdown menu item background color.
-$dropdown-link-disabled-color:   $gray-light !default;
-
-//** Text color for headers within dropdown menus.
-$dropdown-header-color:          $gray-light !default;
-
-//** Deprecated `$dropdown-caret-color` as of v3.1.0
-$dropdown-caret-color:           #000 !default;
-
-
-//-- Z-index master list
-//
-// Warning: Avoid customizing these values. They're used for a bird's eye view
-// of components dependent on the z-axis and are designed to all work together.
-//
-// Note: These variables are not generated into the Customizer.
-
-$zindex-navbar:            1000 !default;
-$zindex-dropdown:          1000 !default;
-$zindex-popover:           1060 !default;
-$zindex-tooltip:           1070 !default;
-$zindex-navbar-fixed:      1030 !default;
-$zindex-modal:             1040 !default;
-
-
-//== Media queries breakpoints
-//
-//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
-
-// Extra small screen / phone
-//** Deprecated `$screen-xs` as of v3.0.1
-$screen-xs:                  480px !default;
-//** Deprecated `$screen-xs-min` as of v3.2.0
-$screen-xs-min:              $screen-xs !default;
-//** Deprecated `$screen-phone` as of v3.0.1
-$screen-phone:               $screen-xs-min !default;
-
-// Small screen / tablet
-//** Deprecated `$screen-sm` as of v3.0.1
-$screen-sm:                  768px !default;
-$screen-sm-min:              $screen-sm !default;
-//** Deprecated `$screen-tablet` as of v3.0.1
-$screen-tablet:              $screen-sm-min !default;
-
-// Medium screen / desktop
-//** Deprecated `$screen-md` as of v3.0.1
-$screen-md:                  992px !default;
-$screen-md-min:              $screen-md !default;
-//** Deprecated `$screen-desktop` as of v3.0.1
-$screen-desktop:             $screen-md-min !default;
-
-// Large screen / wide desktop
-//** Deprecated `$screen-lg` as of v3.0.1
-$screen-lg:                  1200px !default;
-$screen-lg-min:              $screen-lg !default;
-//** Deprecated `$screen-lg-desktop` as of v3.0.1
-$screen-lg-desktop:          $screen-lg-min !default;
-
-// So media queries don't overlap when required, provide a maximum
-$screen-xs-max:              ($screen-sm-min - 1) !default;
-$screen-sm-max:              ($screen-md-min - 1) !default;
-$screen-md-max:              ($screen-lg-min - 1) !default;
-
-
-//== Grid system
-//
-//## Define your custom responsive grid.
-
-//** Number of columns in the grid.
-$grid-columns:              12 !default;
-//** Padding between columns. Gets divided in half for the left and right.
-$grid-gutter-width:         30px !default;
-// Navbar collapse
-//** Point at which the navbar becomes uncollapsed.
-$grid-float-breakpoint:     $screen-sm-min !default;
-//** Point at which the navbar begins collapsing.
-$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default;
-
-
-//== Container sizes
-//
-//## Define the maximum width of `.container` for different screen sizes.
-
-// Small screen / tablet
-$container-tablet:             (720px + $grid-gutter-width) !default;
-//** For `$screen-sm-min` and up.
-$container-sm:                 $container-tablet !default;
-
-// Medium screen / desktop
-$container-desktop:            (940px + $grid-gutter-width) !default;
-//** For `$screen-md-min` and up.
-$container-md:                 $container-desktop !default;
-
-// Large screen / wide desktop
-$container-large-desktop:      (1140px + $grid-gutter-width) !default;
-//** For `$screen-lg-min` and up.
-$container-lg:                 $container-large-desktop !default;
-
-
-//== Navbar
-//
-//##
-
-// Basics of a navbar
-$navbar-height:                    50px !default;
-$navbar-margin-bottom:             $line-height-computed !default;
-$navbar-border-radius:             $border-radius-base !default;
-$navbar-padding-horizontal:        floor(($grid-gutter-width / 2)) !default;
-$navbar-padding-vertical:          (($navbar-height - $line-height-computed) / 2) !default;
-$navbar-collapse-max-height:       340px !default;
-
-$navbar-default-color:             #777 !default;
-$navbar-default-bg:                #f8f8f8 !default;
-$navbar-default-border:            darken($navbar-default-bg, 6.5%) !default;
-
-// Navbar links
-$navbar-default-link-color:                #777 !default;
-$navbar-default-link-hover-color:          #333 !default;
-$navbar-default-link-hover-bg:             transparent !default;
-$navbar-default-link-active-color:         #555 !default;
-$navbar-default-link-active-bg:            darken($navbar-default-bg, 6.5%) !default;
-$navbar-default-link-disabled-color:       #ccc !default;
-$navbar-default-link-disabled-bg:          transparent !default;
-
-// Navbar brand label
-$navbar-default-brand-color:               $navbar-default-link-color !default;
-$navbar-default-brand-hover-color:         darken($navbar-default-brand-color, 10%) !default;
-$navbar-default-brand-hover-bg:            transparent !default;
-
-// Navbar toggle
-$navbar-default-toggle-hover-bg:           #ddd !default;
-$navbar-default-toggle-icon-bar-bg:        #888 !default;
-$navbar-default-toggle-border-color:       #ddd !default;
-
-
-// Inverted navbar
-// Reset inverted navbar basics
-$navbar-inverse-color:                      lighten($gray-light, 15%) !default;
-$navbar-inverse-bg:                         #222 !default;
-$navbar-inverse-border:                     darken($navbar-inverse-bg, 10%) !default;
-
-// Inverted navbar links
-$navbar-inverse-link-color:                 lighten($gray-light, 15%) !default;
-$navbar-inverse-link-hover-color:           #fff !default;
-$navbar-inverse-link-hover-bg:              transparent !default;
-$navbar-inverse-link-active-color:          $navbar-inverse-link-hover-color !default;
-$navbar-inverse-link-active-bg:             darken($navbar-inverse-bg, 10%) !default;
-$navbar-inverse-link-disabled-color:        #444 !default;
-$navbar-inverse-link-disabled-bg:           transparent !default;
-
-// Inverted navbar brand label
-$navbar-inverse-brand-color:                $navbar-inverse-link-color !default;
-$navbar-inverse-brand-hover-color:          #fff !default;
-$navbar-inverse-brand-hover-bg:             transparent !default;
-
-// Inverted navbar toggle
-$navbar-inverse-toggle-hover-bg:            #333 !default;
-$navbar-inverse-toggle-icon-bar-bg:         #fff !default;
-$navbar-inverse-toggle-border-color:        #333 !default;
-
-
-//== Navs
-//
-//##
-
-//=== Shared nav styles
-$nav-link-padding:                          10px 15px !default;
-$nav-link-hover-bg:                         $gray-lighter !default;
-
-$nav-disabled-link-color:                   $gray-light !default;
-$nav-disabled-link-hover-color:             $gray-light !default;
-
-//== Tabs
-$nav-tabs-border-color:                     #ddd !default;
-
-$nav-tabs-link-hover-border-color:          $gray-lighter !default;
-
-$nav-tabs-active-link-hover-bg:             $body-bg !default;
-$nav-tabs-active-link-hover-color:          $gray !default;
-$nav-tabs-active-link-hover-border-color:   #ddd !default;
-
-$nav-tabs-justified-link-border-color:            #ddd !default;
-$nav-tabs-justified-active-link-border-color:     $body-bg !default;
-
-//== Pills
-$nav-pills-border-radius:                   $border-radius-base !default;
-$nav-pills-active-link-hover-bg:            $component-active-bg !default;
-$nav-pills-active-link-hover-color:         $component-active-color !default;
-
-
-//== Pagination
-//
-//##
-
-$pagination-color:                     $link-color !default;
-$pagination-bg:                        #fff !default;
-$pagination-border:                    #ddd !default;
-
-$pagination-hover-color:               $link-hover-color !default;
-$pagination-hover-bg:                  $gray-lighter !default;
-$pagination-hover-border:              #ddd !default;
-
-$pagination-active-color:              #fff !default;
-$pagination-active-bg:                 $brand-primary !default;
-$pagination-active-border:             $brand-primary !default;
-
-$pagination-disabled-color:            $gray-light !default;
-$pagination-disabled-bg:               #fff !default;
-$pagination-disabled-border:           #ddd !default;
-
-
-//== Pager
-//
-//##
-
-$pager-bg:                             $pagination-bg !default;
-$pager-border:                         $pagination-border !default;
-$pager-border-radius:                  15px !default;
-
-$pager-hover-bg:                       $pagination-hover-bg !default;
-
-$pager-active-bg:                      $pagination-active-bg !default;
-$pager-active-color:                   $pagination-active-color !default;
-
-$pager-disabled-color:                 $pagination-disabled-color !default;
-
-
-//== Jumbotron
-//
-//##
-
-$jumbotron-padding:              30px !default;
-$jumbotron-color:                inherit !default;
-$jumbotron-bg:                   $gray-lighter !default;
-$jumbotron-heading-color:        inherit !default;
-$jumbotron-font-size:            ceil(($font-size-base * 1.5)) !default;
-
-
-//== Form states and alerts
-//
-//## Define colors for form feedback states and, by default, alerts.
-
-$state-success-text:             #3c763d !default;
-$state-success-bg:               #dff0d8 !default;
-$state-success-border:           darken(adjust-hue($state-success-bg, -10), 5%) !default;
-
-$state-info-text:                #31708f !default;
-$state-info-bg:                  #d9edf7 !default;
-$state-info-border:              darken(adjust-hue($state-info-bg, -10), 7%) !default;
-
-$state-warning-text:             #8a6d3b !default;
-$state-warning-bg:               #fcf8e3 !default;
-$state-warning-border:           darken(adjust-hue($state-warning-bg, -10), 5%) !default;
-
-$state-danger-text:              #a94442 !default;
-$state-danger-bg:                #f2dede !default;
-$state-danger-border:            darken(adjust-hue($state-danger-bg, -10), 5%) !default;
-
-
-//== Tooltips
-//
-//##
-
-//** Tooltip max width
-$tooltip-max-width:           200px !default;
-//** Tooltip text color
-$tooltip-color:               #fff !default;
-//** Tooltip background color
-$tooltip-bg:                  #000 !default;
-$tooltip-opacity:             .9 !default;
-
-//** Tooltip arrow width
-$tooltip-arrow-width:         5px !default;
-//** Tooltip arrow color
-$tooltip-arrow-color:         $tooltip-bg !default;
-
-
-//== Popovers
-//
-//##
-
-//** Popover body background color
-$popover-bg:                          #fff !default;
-//** Popover maximum width
-$popover-max-width:                   276px !default;
-//** Popover border color
-$popover-border-color:                rgba(0,0,0,.2) !default;
-//** Popover fallback border color
-$popover-fallback-border-color:       #ccc !default;
-
-//** Popover title background color
-$popover-title-bg:                    darken($popover-bg, 3%) !default;
-
-//** Popover arrow width
-$popover-arrow-width:                 10px !default;
-//** Popover arrow color
-$popover-arrow-color:                 $popover-bg !default;
-
-//** Popover outer arrow width
-$popover-arrow-outer-width:           ($popover-arrow-width + 1) !default;
-//** Popover outer arrow color
-$popover-arrow-outer-color:           fade_in($popover-border-color, 0.05) !default;
-//** Popover outer arrow fallback color
-$popover-arrow-outer-fallback-color:  darken($popover-fallback-border-color, 20%) !default;
-
-
-//== Labels
-//
-//##
-
-//** Default label background color
-$label-default-bg:            $gray-light !default;
-//** Primary label background color
-$label-primary-bg:            $brand-primary !default;
-//** Success label background color
-$label-success-bg:            $brand-success !default;
-//** Info label background color
-$label-info-bg:               $brand-info !default;
-//** Warning label background color
-$label-warning-bg:            $brand-warning !default;
-//** Danger label background color
-$label-danger-bg:             $brand-danger !default;
-
-//** Default label text color
-$label-color:                 #fff !default;
-//** Default text color of a linked label
-$label-link-hover-color:      #fff !default;
-
-
-//== Modals
-//
-//##
-
-//** Padding applied to the modal body
-$modal-inner-padding:         15px !default;
-
-//** Padding applied to the modal title
-$modal-title-padding:         15px !default;
-//** Modal title line-height
-$modal-title-line-height:     $line-height-base !default;
-
-//** Background color of modal content area
-$modal-content-bg:                             #fff !default;
-//** Modal content border color
-$modal-content-border-color:                   rgba(0,0,0,.2) !default;
-//** Modal content border color **for IE8**
-$modal-content-fallback-border-color:          #999 !default;
-
-//** Modal backdrop background color
-$modal-backdrop-bg:           #000 !default;
-//** Modal backdrop opacity
-$modal-backdrop-opacity:      .5 !default;
-//** Modal header border color
-$modal-header-border-color:   #e5e5e5 !default;
-//** Modal footer border color
-$modal-footer-border-color:   $modal-header-border-color !default;
-
-$modal-lg:                    900px !default;
-$modal-md:                    600px !default;
-$modal-sm:                    300px !default;
-
-
-//== Alerts
-//
-//## Define alert colors, border radius, and padding.
-
-$alert-padding:               15px !default;
-$alert-border-radius:         $border-radius-base !default;
-$alert-link-font-weight:      bold !default;
-
-$alert-success-bg:            $state-success-bg !default;
-$alert-success-text:          $state-success-text !default;
-$alert-success-border:        $state-success-border !default;
-
-$alert-info-bg:               $state-info-bg !default;
-$alert-info-text:             $state-info-text !default;
-$alert-info-border:           $state-info-border !default;
-
-$alert-warning-bg:            $state-warning-bg !default;
-$alert-warning-text:          $state-warning-text !default;
-$alert-warning-border:        $state-warning-border !default;
-
-$alert-danger-bg:             $state-danger-bg !default;
-$alert-danger-text:           $state-danger-text !default;
-$alert-danger-border:         $state-danger-border !default;
-
-
-//== Progress bars
-//
-//##
-
-//** Background color of the whole progress component
-$progress-bg:                 #f5f5f5 !default;
-//** Progress bar text color
-$progress-bar-color:          #fff !default;
-//** Variable for setting rounded corners on progress bar.
-$progress-border-radius:      $border-radius-base !default;
-
-//** Default progress bar color
-$progress-bar-bg:             $brand-primary !default;
-//** Success progress bar color
-$progress-bar-success-bg:     $brand-success !default;
-//** Warning progress bar color
-$progress-bar-warning-bg:     $brand-warning !default;
-//** Danger progress bar color
-$progress-bar-danger-bg:      $brand-danger !default;
-//** Info progress bar color
-$progress-bar-info-bg:        $brand-info !default;
-
-
-//== List group
-//
-//##
-
-//** Background color on `.list-group-item`
-$list-group-bg:                 #fff !default;
-//** `.list-group-item` border color
-$list-group-border:             #ddd !default;
-//** List group border radius
-$list-group-border-radius:      $border-radius-base !default;
-
-//** Background color of single list items on hover
-$list-group-hover-bg:           #f5f5f5 !default;
-//** Text color of active list items
-$list-group-active-color:       $component-active-color !default;
-//** Background color of active list items
-$list-group-active-bg:          $component-active-bg !default;
-//** Border color of active list elements
-$list-group-active-border:      $list-group-active-bg !default;
-//** Text color for content within active list items
-$list-group-active-text-color:  lighten($list-group-active-bg, 40%) !default;
-
-//** Text color of disabled list items
-$list-group-disabled-color:      $gray-light !default;
-//** Background color of disabled list items
-$list-group-disabled-bg:         $gray-lighter !default;
-//** Text color for content within disabled list items
-$list-group-disabled-text-color: $list-group-disabled-color !default;
-
-$list-group-link-color:         #555 !default;
-$list-group-link-hover-color:   $list-group-link-color !default;
-$list-group-link-heading-color: #333 !default;
-
-
-//== Panels
-//
-//##
-
-$panel-bg:                    #fff !default;
-$panel-body-padding:          15px !default;
-$panel-heading-padding:       10px 15px !default;
-$panel-footer-padding:        $panel-heading-padding !default;
-$panel-border-radius:         $border-radius-base !default;
-
-//** Border color for elements within panels
-$panel-inner-border:          #ddd !default;
-$panel-footer-bg:             #f5f5f5 !default;
-
-$panel-default-text:          $gray-dark !default;
-$panel-default-border:        #ddd !default;
-$panel-default-heading-bg:    #f5f5f5 !default;
-
-$panel-primary-text:          #fff !default;
-$panel-primary-border:        $brand-primary !default;
-$panel-primary-heading-bg:    $brand-primary !default;
-
-$panel-success-text:          $state-success-text !default;
-$panel-success-border:        $state-success-border !default;
-$panel-success-heading-bg:    $state-success-bg !default;
-
-$panel-info-text:             $state-info-text !default;
-$panel-info-border:           $state-info-border !default;
-$panel-info-heading-bg:       $state-info-bg !default;
-
-$panel-warning-text:          $state-warning-text !default;
-$panel-warning-border:        $state-warning-border !default;
-$panel-warning-heading-bg:    $state-warning-bg !default;
-
-$panel-danger-text:           $state-danger-text !default;
-$panel-danger-border:         $state-danger-border !default;
-$panel-danger-heading-bg:     $state-danger-bg !default;
-
-
-//== Thumbnails
-//
-//##
-
-//** Padding around the thumbnail image
-$thumbnail-padding:           4px !default;
-//** Thumbnail background color
-$thumbnail-bg:                $body-bg !default;
-//** Thumbnail border color
-$thumbnail-border:            #ddd !default;
-//** Thumbnail border radius
-$thumbnail-border-radius:     $border-radius-base !default;
-
-//** Custom text color for thumbnail captions
-$thumbnail-caption-color:     $text-color !default;
-//** Padding around the thumbnail caption
-$thumbnail-caption-padding:   9px !default;
-
-
-//== Wells
-//
-//##
-
-$well-bg:                     #f5f5f5 !default;
-$well-border:                 darken($well-bg, 7%) !default;
-
-
-//== Badges
-//
-//##
-
-$badge-color:                 #fff !default;
-//** Linked badge text color on hover
-$badge-link-hover-color:      #fff !default;
-$badge-bg:                    $gray-light !default;
-
-//** Badge text color in active nav link
-$badge-active-color:          $link-color !default;
-//** Badge background color in active nav link
-$badge-active-bg:             #fff !default;
-
-$badge-font-weight:           bold !default;
-$badge-line-height:           1 !default;
-$badge-border-radius:         10px !default;
-
-
-//== Breadcrumbs
-//
-//##
-
-$breadcrumb-padding-vertical:   8px !default;
-$breadcrumb-padding-horizontal: 15px !default;
-//** Breadcrumb background color
-$breadcrumb-bg:                 #f5f5f5 !default;
-//** Breadcrumb text color
-$breadcrumb-color:              #ccc !default;
-//** Text color of current page in the breadcrumb
-$breadcrumb-active-color:       $gray-light !default;
-//** Textual separator for between breadcrumb elements
-$breadcrumb-separator:          "/" !default;
-
-
-//== Carousel
-//
-//##
-
-$carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6) !default;
-
-$carousel-control-color:                      #fff !default;
-$carousel-control-width:                      15% !default;
-$carousel-control-opacity:                    .5 !default;
-$carousel-control-font-size:                  20px !default;
-
-$carousel-indicator-active-bg:                #fff !default;
-$carousel-indicator-border-color:             #fff !default;
-
-$carousel-caption-color:                      #fff !default;
-
-
-//== Close
-//
-//##
-
-$close-font-weight:           bold !default;
-$close-color:                 #000 !default;
-$close-text-shadow:           0 1px 0 #fff !default;
-
-
-//== Code
-//
-//##
-
-$code-color:                  #c7254e !default;
-$code-bg:                     #f9f2f4 !default;
-
-$kbd-color:                   #fff !default;
-$kbd-bg:                      #333 !default;
-
-$pre-bg:                      #f5f5f5 !default;
-$pre-color:                   $gray-dark !default;
-$pre-border-color:            #ccc !default;
-$pre-scrollable-max-height:   340px !default;
-
-
-//== Type
-//
-//##
-
-//** Horizontal offset for forms and lists.
-$component-offset-horizontal: 180px !default;
-//** Text muted color
-$text-muted:                  $gray-light !default;
-//** Abbreviations and acronyms border color
-$abbr-border-color:           $gray-light !default;
-//** Headings small color
-$headings-small-color:        $gray-light !default;
-//** Blockquote small color
-$blockquote-small-color:      $gray-light !default;
-//** Blockquote font size
-$blockquote-font-size:        ($font-size-base * 1.25) !default;
-//** Blockquote border color
-$blockquote-border-color:     $gray-lighter !default;
-//** Page header border color
-$page-header-border-color:    $gray-lighter !default;
-//** Width of horizontal description list titles
-$dl-horizontal-offset:        $component-offset-horizontal !default;
-//** Horizontal line color.
-$hr-border:                   $gray-lighter !default;
diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_alerts.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_alerts.scss
deleted file mode 100755
index 3faf0b5a..00000000
--- a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_alerts.scss
+++ /dev/null
@@ -1,14 +0,0 @@
-// Alerts
-
-@mixin alert-variant($background, $border, $text-color) {
-  background-color: $background;
-  border-color: $border;
-  color: $text-color;
-
-  hr {
-    border-top-color: darken($border, 5%);
-  }
-  .alert-link {
-    color: darken($text-color, 10%);
-  }
-}
diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_background-variant.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_background-variant.scss
deleted file mode 100755
index 4993bd2b..00000000
--- a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_background-variant.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-// Contextual backgrounds
-
-// [converter] $parent hack
-@mixin bg-variant($parent, $color) {
-  #{$parent} {
-    background-color: $color;
-  }
-  a#{$parent}:hover {
-    background-color: darken($color, 10%);
-  }
-}
diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_border-radius.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_border-radius.scss
deleted file mode 100755
index ce194998..00000000
--- a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_border-radius.scss
+++ /dev/null
@@ -1,18 +0,0 @@
-// Single side border-radius
-
-@mixin border-top-radius($radius) {
-  border-top-right-radius: $radius;
-   border-top-left-radius: $radius;
-}
-@mixin border-right-radius($radius) {
-  border-bottom-right-radius: $radius;
-     border-top-right-radius: $radius;
-}
-@mixin border-bottom-radius($radius) {
-  border-bottom-right-radius: $radius;
-   border-bottom-left-radius: $radius;
-}
-@mixin border-left-radius($radius) {
-  border-bottom-left-radius: $radius;
-     border-top-left-radius: $radius;
-}
diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_buttons.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_buttons.scss
deleted file mode 100755
index 9efc0c8d..00000000
--- a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_buttons.scss
+++ /dev/null
@@ -1,56 +0,0 @@
-// Button variants
-//
-// Easily pump out default styles, as well as :hover, :focus, :active,
-// and disabled options for all buttons
-
-@mixin button-variant($color, $background, $border) {
-  color: $color;
-  background-color: $background;
-  border-color: $border;
-
-  &:hover,
-  &:focus,
-  &.focus,
-  &:active,
-  &.active,
-  .open > &.dropdown-toggle {
-    color: $color;
-    background-color: darken($background, 10%);
-        border-color: darken($border, 12%);
-  }
-  &:active,
-  &.active,
-  .open > &.dropdown-toggle {
-    background-image: none;
-  }
-  &.disabled,
-  &[disabled],
-  fieldset[disabled] & {
-    &,
-    &:hover,
-    &:focus,
-    &.focus,
-    &:active,
-    &.active {
-      background-color: $background;
-          border-color: $border;
-
-      &.btn-primary {
-        color: #fff;
-      }
-    }
-  }
-
-  .badge {
-    color: $background;
-    background-color: $color;
-  }
-}
-
-// Button sizes
-@mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
-  padding: $padding-vertical $padding-horizontal;
-  font-size: $font-size;
-  line-height: $line-height;
-  border-radius: $border-radius;
-}
diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_center-block.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_center-block.scss
deleted file mode 100755
index e06fb5e2..00000000
--- a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_center-block.scss
+++ /dev/null
@@ -1,7 +0,0 @@
-// Center-align a block level element
-
-@mixin center-block() {
-  display: block;
-  margin-left: auto;
-  margin-right: auto;
-}
diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_clearfix.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_clearfix.scss
deleted file mode 100755
index dc3e2ab4..00000000
--- a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_clearfix.scss
+++ /dev/null
@@ -1,22 +0,0 @@
-// Clearfix
-//
-// For modern browsers
-// 1. The space content is one way to avoid an Opera bug when the
-//    contenteditable attribute is included anywhere else in the document.
-//    Otherwise it causes space to appear at the top and bottom of elements
-//    that are clearfixed.
-// 2. The use of `table` rather than `block` is only necessary if using
-//    `:before` to contain the top-margins of child elements.
-//
-// Source: http://nicolasgallagher.com/micro-clearfix-hack/
-
-@mixin clearfix() {
-  &:before,
-  &:after {
-    content: " "; // 1
-    display: table; // 2
-  }
-  &:after {
-    clear: both;
-  }
-}
diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_forms.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_forms.scss
deleted file mode 100755
index 277aa5f8..00000000
--- a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_forms.scss
+++ /dev/null
@@ -1,88 +0,0 @@
-// Form validation states
-//
-// Used in forms.less to generate the form validation CSS for warnings, errors,
-// and successes.
-
-@mixin form-control-validation($text-color: #555, $border-color: #ccc, $background-color: #f5f5f5) {
-  // Color the label and help text
-  .help-block,
-  .control-label,
-  .radio,
-  .checkbox,
-  .radio-inline,
-  .checkbox-inline,
-  &.radio label,
-  &.checkbox label,
-  &.radio-inline label,
-  &.checkbox-inline label  {
-    color: $text-color;
-  }
-  // Set the border and box shadow on specific inputs to match
-  .form-control {
-    border-color: $border-color;
-    @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
-    &:focus {
-      border-color: darken($border-color, 10%);
-      $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($border-color, 20%);
-      @include box-shadow($shadow);
-    }
-  }
-  // Set validation states also for addons
-  .input-group-addon {
-    color: $text-color;
-    border-color: $border-color;
-    background-color: $background-color;
-  }
-  // Optional feedback icon
-  .form-control-feedback {
-    color: $text-color;
-  }
-}
-
-
-// Form control focus state
-//
-// Generate a customized focus state and for any input with the specified color,
-// which defaults to the `$input-border-focus` variable.
-//
-// We highly encourage you to not customize the default value, but instead use
-// this to tweak colors on an as-needed basis. This aesthetic change is based on
-// WebKit's default styles, but applicable to a wider range of browsers. Its
-// usability and accessibility should be taken into account with any change.
-//
-// Example usage: change the default blue border and shadow to white for better
-// contrast against a dark gray background.
-@mixin form-control-focus($color: $input-border-focus) {
-  $color-rgba: rgba(red($color), green($color), blue($color), .6);
-  &:focus {
-    border-color: $color;
-    outline: 0;
-    @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px $color-rgba);
-  }
-}
-
-// Form control sizing
-//
-// Relative text size, padding, and border-radii changes for form controls. For
-// horizontal sizing, wrap controls in the predefined grid classes. `
-          
-          
-        
-      
-    `;
-}
-
-const renderRightList = (sideList) => {
-  if(!sideList.length) return;
-  let markup = "
    " - - markup += sideList.reduce((prev,next) => renderRightListItem(prev,next),""); - markup += "
" - - return markup; -} - -const renderRightListItem = (prev, data) => { - if(data.image){ - return prev += ` -
  • - - ${data.image} - ${ renderGlyph(data) } - - ${renderSubList(data.dropdownItems)} -
  • `; - } else { - return prev += ` -
  • - - ${data.name} - ${ renderGlyph(data) } - - ${renderSubList(data.dropdownItems)} -
  • ` - } -} - -const renderGlyph = (data) => { - if(data.dropdownItems && data.dropdownItems.length){ - return '' - } else { - return ""; - } -} - -const renderSubList = (subList) => { - if(!subList || !subList.length) return ""; - let markup = "
      "; - markup += subList.reduce((prev,next) => renderSubListItem(prev,next),""); - markup += "
    "; - - return markup; -} - -const renderSubListItem = (prev, data) => { - return prev += ` -
  • - ${data.name} -
  • - ` -} - -const renderMobileMenu = (sideList) => { - if(!sideList.length) return; - let markup = "
      " - markup += sideList.reduce((prev,next) => renderMobileMenuItem(prev,next),""); - markup += "
    " - return markup; -} - -const renderMobileMenuItem = (prev, data) => { - if(data.image){ - return prev += ` -
  • - - ${data.image} - ${data.name ? data.name : ""} - -
  • `; - } else { - return prev += ` -
  • - - ${data.name} - -
  • ` - } -} - -module.exports = function(paramData = {}, assetParams = {}){ - const d = merge(data, paramData); - const a = merge(assets, assetParams); - return ` - - `; -} diff --git a/docs/algolia-frontend-components/components/communityHeader/communityHeader.js b/docs/algolia-frontend-components/components/communityHeader/communityHeader.js deleted file mode 100755 index fb9963a0..00000000 --- a/docs/algolia-frontend-components/components/communityHeader/communityHeader.js +++ /dev/null @@ -1,280 +0,0 @@ -/** - * Main header function with docsearch - * @param {Object} docSearch config - */ - -class communityHeader { - - constructor(docSearchCredentials, docSearch) { - this.docSearchCredentials = docSearchCredentials; - this.docSearch = docSearch || null; - - this.menuState = { - isOpen: false, - isOpenMobile: false - } - - this.INIT_VAL = { - WIDTH: 490, - HEIGHT: 360 - } - - this.disableTransitionTimeout; - - this.searchIcon = document.querySelector('#search'); - this.cancelIcon = document.querySelector('#cancel'); - this.searchInputContainer = document.querySelector('.algc-search__input'); - this.searchContainer = this.searchInputContainer ? this.searchInputContainer.parentNode : null; - this.navRoot = document.querySelector('.algc-dropdownroot'); - this.dropdownRoot = document.querySelector('.algc-navigation__dropdown-holder'); - this.navItems = document.querySelectorAll('a[data-enabledropdown="true"]'); - this.navContainer = document.querySelector('.algc-dropdownroot__dropdowncontainer'); - this.menuContainer = document.querySelector('.algc-navigation__container'); - this.navBg = document.querySelector('.algc-dropdownroot__dropdownbg'); - this.navArrow = document.querySelector('.algc-dropdownroot__dropdownarrow'); - this.dropDownContainer = document.querySelector('.algc-dropdownroot__dropdowncontainer'); - this.menuTriggers = document.querySelectorAll('[data-enabledropdown="true"]'); - this.mobileMenuButton = document.querySelector('.algc-openmobile '); - this.mobileMenu = document.querySelector('.algc-mobilemenu'); - this.subList = document.querySelectorAll('.algc-menu--sublistlink'); - this.subListHolders = [...this.subList].map(node => node.parentNode); - this.menuDropdowns = {}; - - [].forEach.call(document.querySelectorAll('[data-dropdown-content]'), (item) => { - this.menuDropdowns[item.dataset.dropdownContent] = { - parent: item.parentNode, - content: item - } - }); - - this.shouldInitDocSearch = this.shouldInitDocSearch.bind(this); - this.docSearchInit = this.checkDocSearch(docSearch); - this.enableDocSearch = this.verifyDocSearchParams(docSearchCredentials); - this.hasDocSearchRendered = document.querySelector('.algc-navigation .algc-search__input--docsearch'); - this.triggerMenu = this.triggerMenu.bind(this); - this.shouldTriggerMenu = this.shouldTriggerMenu.bind(this); - this.closeMenu = this.closeMenu.bind(this); - this.toggleMobileMenu = this.toggleMobileMenu.bind(this); - this.docSearchToggling = this.docSearchToggling.bind(this); - this.initDocSearchStrategy = this.initDocSearchStrategy.bind(this); - this.openSublist = this.openSublist.bind(this); - this.closeSubLists = this.closeSubLists.bind(this); - this.bindListeners = this.bindListeners.bind(this); - - this.calculatePosition = this.calculatePosition.bind(this); - - this.verifyDocSearchParams(); - this.shouldInitDocSearch(); - this.initDocSearchStrategy(); - this.bindListeners(); - } - - calculatePosition(sourceNode) { - const box = sourceNode.getBoundingClientRect(); - const realWidth = sourceNode.offsetWidth; - const realHeight = sourceNode.offsetHeight; - - return { - left: box.left, - top: box.top, - width: box.width, - height: box.height, - realWidth: realWidth, - realHeight: realHeight, - center: box.left + box.width / 2 - } - } - - shouldInitDocSearch() { - if (!this.enableDocSearch && this.hasDocSearchRendered) { - throw new Error('You need to pass docSearch: { apiKey, indexName, inputSelector } to communityHeader function in order to initialise docSearch'); - } - } - - checkDocSearch(docSearch = false) { - if (docSearch) return docSearch; - - if (typeof window.docsearch === "function" || typeof docsearch === "function") { - return docsearch; - } - } - - verifyDocSearchParams(docSearchCredentials) { - return (docSearchCredentials && - docSearchCredentials.apiKey && - docSearchCredentials.indexName && - docSearchCredentials.inputSelector) ? true : false; - } - - triggerMenu(event) { - - const dropdown = event.target.dataset.dropdown; - const newTarget = this.menuDropdowns[dropdown].content; - const newContent = this.menuDropdowns[dropdown].parent; - - const navItem = this.calculatePosition(event.target); - const newTargetCoordinates = this.calculatePosition(newTarget); - const menuContainerOffset = this.calculatePosition(this.menuContainer); - let leftDistance; - - const scaleFactors = { - X: newTargetCoordinates.realWidth / this.INIT_VAL.WIDTH, - Y: newTargetCoordinates.realHeight / this.INIT_VAL.HEIGHT - } - - leftDistance = (navItem.center - menuContainerOffset.left) + "px"; - - if(menuContainerOffset.left < 20){ - leftDistance = "calc(50% - 36px)" - } - - this.navBg.style.cssText = ` - transform: translateX(${leftDistance}) scale(${scaleFactors.X}, ${scaleFactors.Y})`; - - this.navArrow.style.cssText = ` - transform: translateX(${leftDistance}) rotate(45deg)`; - - this.dropDownContainer.style.cssText = ` - transform: translateX(${leftDistance}); - width: ${newTargetCoordinates.realWidth}px; - height: ${newTargetCoordinates.realHeight + 10}px;`; - - this.dropdownRoot.style.pointerEvents = "auto"; - - Object.keys(this.menuDropdowns).forEach(key => { - if (key === dropdown) { - this.menuDropdowns[key].parent.classList.add('active'); - } else { - this.menuDropdowns[key].parent.classList.remove('active'); - } - }) - - if (!this.menuState.isOpen) { - setTimeout(() => { - this.navRoot.className = "algc-dropdownroot activeDropdown"; - }, 50); - } - - window.clearTimeout(this.disableTransitionTimeout); - this.menuState.isOpen = true; - } - - shouldTriggerMenu(event) { - if(this.menuState.isOpen) { - this.triggerMenu(event); - } else { - this.triggerMenuTimeout = setTimeout(()=>{ - this.triggerMenu(event); - }, 200); - } - } - - closeMenu(event) { - window.clearTimeout(this.triggerMenuTimeout); - this.menuState.isOpen = false; - this.disableTransitionTimeout = setTimeout(() => { - this.dropdownRoot.style.pointerEvents = "none"; - this.navRoot.className = "algc-dropdownroot notransition" - }, 50); - } - - toggleMobileMenu(event) { - this.mobileMenuButton.classList.toggle('algc-openmobile--open'); - this.mobileMenu.classList.toggle('algc-mobilemenu--open'); - } - - // Search - docSearchToggling() { - this.searchInput = document.querySelector(this.docSearchCredentials.inputSelector); - const openSearchInput = () => { - this.searchContainer.classList.add('open'); - this.searchInput.focus(); - } - - const closeSearchInput = () => { - this.searchInput.blur(); - this.searchContainer.classList.remove('open'); - } - - const emptySearchInput = () => { - if (this.searchInput.value !== '') { - this.searchInput.value = ''; - } else { - closeSearchInput(); - } - } - this.searchInput.setAttribute('value', ''); - this.searchIcon.addEventListener('click', openSearchInput); - this.cancelIcon.addEventListener('click', emptySearchInput); - }; - - initDocSearch() { - this.docSearchToggling(); - this.docSearchInit(this.docSearchCredentials); - } - - initDocSearchStrategy() { - if (this.enableDocSearch && typeof this.docSearchInit === "function") { - this.initDocSearch(); - - } else if (this.docSearch === "lazy") { - - const docSearchScript = document.createElement('script'); - docSearchScript.type = 'text/javascript'; - docSearchScript.async = true; - document.body.appendChild(docSearchScript); - - docSearchScript.onload = () => { - this.docSearchInit = docsearch; - this.initDocSearch(); - }; - - docSearchScript.src = "https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"; - } - } - - openSublist(node) { - const parent = node.parentNode; - this.subListHolders.forEach(holder => { - if (holder === parent && !parent.classList.contains('open')) { - holder.classList.add('open'); - } else { - holder.classList.remove('open'); - } - }) - } - - closeSubLists(event) { - this.subListHolders.forEach(holder => holder.classList.remove('open')); - } - - bindListeners() { - var that = this; - this.subList.forEach(link => { - link.addEventListener('click', function(event){ - event.preventDefault(); - event.stopPropagation(); - that.openSublist(this); - }); - }); - - this.menuTriggers.forEach(item => { - item.addEventListener('mouseenter', this.shouldTriggerMenu); - item.addEventListener('focus', this.triggerMenu); - }); - - this.navItems.forEach(item => { - item.addEventListener('mouseleave', this.closeMenu); - }); - - this.navContainer.addEventListener('mouseenter', () => { - clearTimeout(this.disableTransitionTimeout); - }); - - this.mobileMenuButton.addEventListener('click', this.toggleMobileMenu); - document.addEventListener('click', this.closeSubLists); - document.querySelector('.algc-dropdownroot__dropdowncontainer').addEventListener('mouseleave', this.closeMenu); - } -} - -module.exports = communityHeader diff --git a/docs/algolia-frontend-components/components/communityHeader/communityHeader.scss b/docs/algolia-frontend-components/components/communityHeader/communityHeader.scss deleted file mode 100755 index 014e1524..00000000 --- a/docs/algolia-frontend-components/components/communityHeader/communityHeader.scss +++ /dev/null @@ -1,957 +0,0 @@ -@import "./../../stylesheets/_variables.scss"; -@import "./../../stylesheets/_functions.scss"; -@import "./../../stylesheets/_mixins.scss"; - -$nav-height: 56px; -$nav-z-index: 50; -$nav-background: $deep-cove; -$nav-background-medium: mix($nav-background, #fff, 96%); -$nav-background-light: mix($nav-background, #fff, 92%); - -.algc-navigation { - top: 0; - left: 0; - width: 100%; - color: #fff; - padding: 0 1em; - z-index: $z-top; - position: fixed; - perspective: 2000px; - transform-style: preserve-3d; - background: $nav-background; - font-size: 1em; - will-change: transform; - - @media (max-width: $breakpoint-sm){ - padding: 0 .5em; - } - - .algc-mainmenu { - position: relative; - } - - .algc-navigation__container{ - margin: 0 auto; - max-width: $container-max-width; - } - - a { - text-decoration: none; - } -} - -.algc-navigation__brands { - height: $nav-height; - margin: 0; - padding: 0; - list-style-type: none; - float: left; - font-weight: $light; - display: flex; - align-items:center; - z-index: $z-1; - position: relative; - - a { - text-decoration: none; - color: $white; - - &:hover { - color: $white; - } - } - - &:hover, - &:visited { - color: white; - } - - img,svg { - max-width: none; - vertical-align: middle; - } - - @media (max-width: $breakpoint-md) { - font-size: .8em; - } - - .algc-navigation__li { - float: left; - text-align: center; - min-height: 33px; - display: flex; - align-items: center; - - @media (min-width: $breakpoint-md) and (max-width: $breakpoint-lg) { - - &:nth-child(2) { - padding-left: 0; - - img,svg { - margin-left: 0px; - } - - .algc-arrowseparator { - margin-left: 4px; - } - } - } - - @media (max-width: $breakpoint-lg) { - - &:nth-child(2) { - a { padding-left: 0; } - .algc-arrowseparator { display: none; } - } - } - - @media (max-width: $breakpoint-sm) { - - &:nth-child(2) { - width: 30px; - overflow: hidden; - } - } - } - - a { - position: relative; - display: block; - padding-right: 12px; - - @media (max-width: $breakpoint-lg) { - padding: 0 1.2em; - } - - @media (max-width: $breakpoint-sm) { - padding: 0 .8em - } - } - - .algc-navigation__li--algolia { - - a { - padding-left: 0; - } - - .algolia-logo { - width: auto; - height: 23px; - } - - @media (max-width: $breakpoint-lg) { - display: none; - } - } - - .algc-navigation__li--community { - - a { - height: 33px; - } - - .algolia-community-logo{ - width: auto; - height: 30px; - } - } -} - -//--------------------------- -// Dropdown starts here -//--------------------------- -.algc-navigation__dropdown-holder { - position: absolute; - top: $nav-height - 14px; - left: 25px; - max-width: 490px; - width: 100%; - height: 800px; - -webkit-perspective: 500px; - perspective: 500px; - pointer-events: none; - font-size: 1.2em; - - @media (max-width: $breakpoint-sm) { - left:0; - max-width: 100%; - } -} - -.algc-dropdownroot { - top: 4px; - width: 100%; - position: absolute; - opacity: 0; - transform-origin: 50% -50px; - transition-property: transform, opacity; - transition-duration: .25s; - will-change: transform, opacity; - pointer-events: none; - z-index: $z-top; - transform: rotateX(-15deg) translate(-50%, 0%); - - &.notransition { - - .algc-dropdownroot__dropdowncontainer, - .algc-dropdownroot__dropdownbg, - .algc-dropdownroot__section, - .algc-dropdownroot__dropdownarrow { - transition: none; - } - } - - &.activeDropdown { - opacity: 1; - transform: translate(-50%, 0); - pointer-events: all; - - .algc-dropdownroot__dropdownbg { - opacity: 1; - transform: none; - transform-origin: 50% 0; - } - } - - .algc-dropdownroot__dropdownbg { - left: 0; - top: 10px; - box-shadow: 0 50px 100px rgba(50, 50, 93, .1), 0 15px 35px rgba(50, 50, 93, .15), 0 5px 15px rgba(0, 0, 0, .1); - border-radius: 4px; - transform-origin: 50% 0; - background-color: #FFF; - transition-property: transform, opacity; - transition-duration: .25s; - position: absolute; - width: 490px; - height: 360px; - will-change: transform, opacity; - } - - .algc-dropdownroot__dropdownarrow { - left: 50%; - top: 6px; - background-color: #FFF; - box-shadow: -3px -3px 5px rgba(82, 95, 127, .04); - will-change: transform, opacity; - transition-property: transform, opacity; - transition-duration: .25s; - transform: rotate(45deg) translate(-50%, 0); - position: absolute; - width: 12px; - height: 12px; - border-radius: 2px; - pointer-events: none; - } - - .algc-dropdownroot__dropdowncontainer { - margin: 0 auto; - position: relative; - overflow: hidden; - will-change: transform, width, height; - transition-property: transform, width, height; - transition-duration: .25s; - } - - @media (max-width: $breakpoint-sm){ - - transform: translate(0,0) rotateX(-15deg); - - &.activeDropdown { - transform: rotateX(0deg) translate(0,0) !important; - } - - .algc-dropdownroot__dropdownbg { - width: 100%; - } - - .algc-dropdownroot__widelist { - width: 100%; - } - - .algc-dropdownroot__content { - width: 100% !important; - } - - .algc-dropdownroot__section { - width:100%; - } - - .algc-dropdownroot__dropdowncontainer { - width: 100% !important; - max-width: 100%; - transform: translate(0,0) !important; - } - } -} - - -.algc-dropdownroot__section { - position: absolute; - left: 0; - top: 0; - opacity: 0; - will-change: transform, opacity; - transition-property: transform, opacity; - transition-duration: .25s; - - &.active { - opacity: 1; - transform: translateX(0); - z-index: $z-1 - } - - &.right { - transform: translateX(150px); - } - - &.left { - transform: translateX(-150px); - } - - .algc-dropdownroot__content { - position: absolute; - top: 10px; - left: 0; - background: #fff; - border-radius: 4px; - overflow: hidden; - } -} - -.algc-dropdownroot__widelist { - display: flex; - flex-wrap: wrap; - list-style-type: none; - padding: 0; - width: 450px; - padding: em(10) em(20); - margin: 0; - background-color: $titan-white; - - li { - flex: 50%; - border-radius: 3px; - margin: .5em auto; - - a { - display: flex; - flex-wrap: wrap; - flex-direction: row; - align-items: center; - color: #333333; - background-color: $titan-white; - border-radius: 4px; - transition: background 160ms ease; - - &:hover { - color: darken(#333333, 10%); - background-color: $athens-gray; - } - } - - h4 { - text-align: center; - text-align: left; - margin: 0; - font-size: $text-sm; - } - - .item-icon { - width: 42px; - height: 42px; - margin: 8px; - border-radius: 4px; - text-align:center; - position: relative; - - img, - svg { - max-width: 60%; - transition: transform 0.2s ease 0.15s; - } - } - - svg, - img { - position: absolute; - left: 50%; - top:50%; - max-width: 32px; - width: 100%; - height: auto; - transform: translate(-50%,-50%); - } - } -} - -.algc-dropdownroot__footer { - text-align: center; - font-size: $text-sm; - transition: filter 0.2s ease, opacity 0.2s ease; - will-change: filter, opacity; - - a { - padding: .8em 0; - display: block; - color: $nav-background; - opacity: 0.8; - - &:hover { - opacity: 1; - } - } - - img, - svg { - vertical-align: middle; - } -} - -.algc-dropdownroot__links { - - list-style-type: none; - padding: em(10) em(20); - display: flex; - flex-wrap: wrap; - width: 290px; - margin: 0; - - li { - box-sizing: border-box; - display: flex; - align-items: center; - flex: 1 0 50%; - padding: em(10) em(10); - - p { - margin: 0; - } - - img, - svg { - margin-right: 5px; - height: 20px; - width: 20px; - } - } -} - -.algc-navigation__menu { - float: right; - height: $nav-height; - line-height: $nav-height; - font-weight: $light; - z-index: $z-2; - - .algc-menu__list { - list-style-type: none; - padding: 0; - margin: 0; - width: auto; - float: left; - position: relative; - z-index: $z-1; - - a { - text-decoration: none; - color: $white; - } - - @media (max-width: $breakpoint-md) { - display: none; - } - - &__item { - position: relative; - height: $nav-height; - line-height: $nav-height; - display: inline-block; - float: left; - - img, - svg { - height: $text-lg; - width: auto; - } - - a { - padding: 0 .5em 0 .5em; - display: flex; - align-items: center; - height: 100%; - } - } - - .algc-glyph { - margin-left: 1em; - font-size: .4em; - } - - .algc-menu__list__item.algc-menu--hassublist.open { - - .algc-menu__sublist { - opacity: 1; - transform: translate(0, 0); - pointer-events: auto; - transition: .25s; - } - } - } - - .algc-menu__sublist { - pointer-events: none; - padding: 0; - position: absolute; - right: 0; - top:100%; - background-color: white; - list-style-type: none; - background-color: #FFF; - border-radius: 3px; - box-shadow: 0 1px 4px 0 rgba(31, 59, 93, 0.5); - font-size: 14px; - opacity:0; - transition: .14s; - transform: translate(0, 6px); - will-change: opacity, transform; - text-align: left; - - &:before{ - content: ""; - position: absolute; - right: 16px; - top: -4px; - height: 12px; - width: 12px; - border-radius: 3px; - transform: rotate(45deg); - background-color: #FFF; - } - - li:not(:last-child) { - border-bottom: solid 1px #eee; - } - - li a { - text-transform: none; - margin: 0; - width: 100%; - border: none; - display: block; - padding: 1em 2em; - clear: both; - font-weight: normal; - line-height: 1.42857; - color: #333333; - white-space: nowrap; - font-size: 1em; - - &:hover { - color: darken(#333333, 10%); - background-color: #f9f9f9; - } - } - } -} - -.algc-mobilemenu{ - display: block; - position: fixed; - top: 0; - right: 0; - width: 100%; - max-width: 200px; - padding: 64px $text-sm 0 $text-sm; - height: 100vh; - background-color: $deep-cove; - text-align: right; - font-weight: $light; - transform: translate(100%, 0); - transition: transform 140ms ease-out, - opacity 140ms 100ms ease-out; - opacity: 0; - will-change: transform; - - a { - color: $white; - } - - &:before{ - width:100%; - height:100vh; - position: absolute; - content: ""; - left:0; - top: 0; - box-shadow: 0 0 36px 3px rgba(0, 0, 0, 0.2); - z-index: $z--1; - } - - &:after { - width: 100%; - height: 100%; - max-height: 40px; - bottom:0; - left:0; - position: fixed; - content: ""; - background-image: -webkit-linear-gradient(bottom, transparent 0%,rgba(5,15,44,1) 100%); - } - - &--open { - opacity: 1; - transition: 360ms cubic-bezier(0.19, 1, 0.22, 1); - transform: translate(0, 0); - } - - @media (min-width: $breakpoint-md) { - display: none; - } - - .algc-mobilemenulist { - list-style-type: none; - padding: 0 0 40px 0; - margin-bottom: 0; - position: absolute; - top:74px; - right:0; - width: 100%; - height: 100%; - overflow: auto; - } - - .algc-mobilemenu__item { - line-height: 2.6; - position: relative; - - &:after { - bottom: 0; - width:100%; - height: 1px; - position: absolute; - content: ""; - display: block; - background: linear-gradient(76deg, rgba(28,199,208,0.01) 0%,rgba(28,199,208,0) 18%, rgba(28,199,208,0.49) 46%,rgba(80,191,221,.7) 93%,rgba(125,185,232,0) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ - } - - &:last-child { - - &:after { - background-color: trasparent; - } - } - } - - a { - padding: 0 $text-xs; - display: flex; - align-items: center; - justify-content: flex-end; - } - - img, svg { - height: 1em; - margin-right: .4em; - } -} - -// Docsearch input -.algc-menu__search { - width: auto; - padding: 0 12px; - height: $nav-height; - display: inline-block; - float: left; - font-size: $text-sm; - - &--holder { - position: relative; - width: 32px; - height: $nav-height; - } - - .algc-search__input { - - button { - appearance: none; - border: none; - background: transparent; - position: absolute; - z-index: $z-1; - top: 50%; - bottom: 0; - margin: 0; - outline: none; - display: none; - width: 1.6em; - height: 1.6em; - transition: transform 0.28s ease; - transform: translate(0,-50%); - cursor: pointer; - transform: translate(0,-50%); - - img, - svg { - top: 0; - bottom: 0; - left: 0; - right: 0; - width: 100%; - height: auto; - max-width: 16px; - max-height: $nav-height; - vertical-align: middle; - position: absolute; - margin: auto; - pointer-events: all; - transition: opacity 0.28s ease 0.15s; - - @media (max-width: $breakpoint-sm) { - margin-top: 2px; - } - - use { - fill: #fff - } - } - - &#search { - z-index: $z-2; - display: block; - } - - &#cancel { - z-index: $z-1; - display: block; - pointer-events: none; - opacity: 0; - right: -.35em; - transition: 40ms ease; - transform: translate(0, -40%) scale(.7); - - img, - svg { - width: 12px; - top: 50%; - transform: translate(0,-50%); - } - } - } - - // DOCSEARCH RELATED - input[type=search] { - padding: 0; - margin: 0 0 0 2.4em; - appearance: none; - background: transparent; - width: 32px; - max-height: 32px; - border: 1px solid transparent; - position: relative; - left: 0; - z-index: $z-1; - cursor: pointer; - transition: background 0.28s ease, transform 0.28s ease, width 0.28s ease; - padding: 8px; - outline: none; - font-weight: $light; - border-radius: 3px; - padding-left: 1.8em; - color: #fff; - line-height: 1.3em; - padding-right: 1.4em; - } - } - - &--holder.open { - // DOCSEARCH RELATED - input[type="search"] { - background-color: rgba(white, 0.2); - width: 300px; - transform: translate(-300px); - outline: none; - cursor: auto; - - #searchbox { - background-color: inherit !important; - } - - @media (max-width: $breakpoint-xl){ - transform: translate(-180px); - width: 180px; - } - - @media (max-width: $breakpoint-md) and (orientation: landscape) { - transform: translate(-240px); - width: 240px; - } - - @media (max-width: $breakpoint-sm) { - transform: translate(-140px); - width: 140px; - } - - @media (max-width: 370px) { - transform: translate(-110px); - width: 110px; - } - - @include placeholder { - color: rgba(#ffffff, 0.3); - } - } - - button#search { - transform: translate(calc(-300px + 4em), -50%); - - @media (max-width: 1180px){ - transform: translate(calc(-180px + 4em), -50%); - } - - @media (max-width: $breakpoint-md) and (orientation: landscape) { - transform: translate(calc(-240px + 4em), -50%); - } - - @media (max-width: $breakpoint-sm) { - transform: translate(calc(-140px + 4em), -50%); - } - - @media (max-width: 370px) { - transform: translate(calc(-110px + 4em), -50%) - } - } - - button#cancel { - transition: 300ms 300ms ease; - pointer-events: auto; - opacity: 1; - } - } -} - -.algolia-autocomplete { - position: inherit !important; - display: initial !important; - - input#searchbox, - input[type="search"] { - vertical-align: middle !important; - -webkit-appearance: none; - appearance: none; - font-size: 16px; - - @media (min-width: $breakpoint-sm) { - margin-top: -2px; - } - } - - .ds-dropdown-menu { - top: $nav-height - 10px !important; - left: -438px !important; - right: inherit !important; - line-height: 26px !important; - font-size: $text-lg; - - @media (max-width: $breakpoint-sm) { - margin-top: 0; - top: $nav-height !important; - left:0 !important; - right:0 !important; - width: 100% !important; - position:fixed !important; - min-width: 0 !important; - border-radius: 0; - - &:before { - display: none; - } - - [class^=ds-dataset-] { - border-radius: 0; - border-left: 0; - border-right: 0; - border-top: 0; - } - - .algolia-docsearch-suggestion--subcategory-column { - white-space: nowrap; - text-overflow: ellipsis; - padding-right: 14px; - overflow: hidden; - } - } - } -} - -.algc-openmobile { - height: 40px; - width: 40px; - vertical-align: middle; - position: relative; - z-index: $z-1; - cursor: pointer; - z-index: $z-3; - background-color: $deep-cove; - border: none; - - &:focus { - outline: none; - } - - @media (min-width: $breakpoint-md) { - display: none; - } - - span { - height: 2px; - width: 62%; - top:50%; - left: 50%; - transform: translate(-50%, -50%); - transition: 140ms ease-out; - background-color: rgba($white, .88); - position: absolute; - - &:before, - &:after { - content: ""; - width: 100%; - height: 2px; - background-color: inherit; - position: absolute; - transition: 130ms ease-out; - transform: translate(-50%,-50%); - } - - &:before { - transform-origin: left center; - margin-top: -4px; - } - - &:after{ - transform-origin: left center; - margin-top: 6px; - } - } - - &--open { - - span { - transition: 130ms ease-out; - transform: translate(-70%,-50%); - - &:before, - &:after{ - transition: 130ms ease-out; - transform: translate(-20%,-50%); - } - } - } -} - -.algc-arrowseparator { - height: 33px; - margin-right: 16px; -} - diff --git a/docs/algolia-frontend-components/images/algolia-community-dark.svg b/docs/algolia-frontend-components/images/algolia-community-dark.svg deleted file mode 100755 index 7d4996c9..00000000 --- a/docs/algolia-frontend-components/images/algolia-community-dark.svg +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/docs/algolia-frontend-components/images/algolia-logo-darkbg.svg b/docs/algolia-frontend-components/images/algolia-logo-darkbg.svg deleted file mode 100755 index 157aedf6..00000000 --- a/docs/algolia-frontend-components/images/algolia-logo-darkbg.svg +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/docs/algolia-frontend-components/images/icon-separator.svg b/docs/algolia-frontend-components/images/icon-separator.svg deleted file mode 100755 index 254d4fee..00000000 --- a/docs/algolia-frontend-components/images/icon-separator.svg +++ /dev/null @@ -1,4 +0,0 @@ - - menu with dropdown - - diff --git a/docs/algolia-frontend-components/images/instantsearch-android.svg b/docs/algolia-frontend-components/images/instantsearch-android.svg deleted file mode 100644 index 404d9c1e..00000000 --- a/docs/algolia-frontend-components/images/instantsearch-android.svg +++ /dev/null @@ -1 +0,0 @@ -InstantSearch Android \ No newline at end of file diff --git a/docs/algolia-frontend-components/images/react-instantsearch.svg b/docs/algolia-frontend-components/images/react-instantsearch.svg deleted file mode 100644 index d4b84c2b..00000000 --- a/docs/algolia-frontend-components/images/react-instantsearch.svg +++ /dev/null @@ -1 +0,0 @@ -React InstantSearch \ No newline at end of file diff --git a/docs/algolia-frontend-components/images/search-close-icon.svg b/docs/algolia-frontend-components/images/search-close-icon.svg deleted file mode 100755 index 6537d6e4..00000000 --- a/docs/algolia-frontend-components/images/search-close-icon.svg +++ /dev/null @@ -1,4 +0,0 @@ - - Close search input - - diff --git a/docs/algolia-frontend-components/images/shopify.svg b/docs/algolia-frontend-components/images/shopify.svg deleted file mode 100644 index 89a5f0c5..00000000 --- a/docs/algolia-frontend-components/images/shopify.svg +++ /dev/null @@ -1 +0,0 @@ -Algolia Shopify integration \ No newline at end of file diff --git a/docs/algolia-frontend-components/images/wordpress.svg b/docs/algolia-frontend-components/images/wordpress.svg deleted file mode 100644 index 15814d3f..00000000 --- a/docs/algolia-frontend-components/images/wordpress.svg +++ /dev/null @@ -1 +0,0 @@ -icon-wordpress \ No newline at end of file diff --git a/docs/algolia-frontend-components/index.js b/docs/algolia-frontend-components/index.js deleted file mode 100755 index 9bf27f94..00000000 --- a/docs/algolia-frontend-components/index.js +++ /dev/null @@ -1,5 +0,0 @@ -const htmlRender = { - communityHeader: require('./components/communityHeader/communityHeader.html.js') -} - -module.exports = htmlRender; diff --git a/docs/algolia-frontend-components/javascripts.js b/docs/algolia-frontend-components/javascripts.js deleted file mode 100755 index 7971fdbb..00000000 --- a/docs/algolia-frontend-components/javascripts.js +++ /dev/null @@ -1,5 +0,0 @@ -const javascripts = { - communityHeader: require('./components/communityHeader/communityHeader.js') -} - -module.exports = javascripts; \ No newline at end of file diff --git a/docs/algolia-frontend-components/package.json b/docs/algolia-frontend-components/package.json deleted file mode 100644 index 81daa108..00000000 --- a/docs/algolia-frontend-components/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "algolia-frontend-components", - "version": "0.0.34", - "description": "Algolia components", - "main": "index.js", - "scripts": { - "clean": "rm -rf dist", - "watch": "node build/development.js --erb", - "build": "npm run clean --silent && node build/build.js --silent", - "build:erb": "npm run clean --silent && node build/build.js --erb", - "serve": "webpack-dev-server --config build/serve.js" - }, - "author": "Jonas Badalic", - "license": "ISC", - "dependencies": { - "babel-cli": "^6.23.0", - "babel-core": "^6.23.1", - "babel-polyfill": "^6.23.0", - "babel-preset-env": "^1.1.9", - "babel-preset-es2015": "^6.22.0", - "chalk": "^2.0.0", - "deepmerge": "^2.0.0", - "glob": "^7.1.1", - "node-sass": "^4.5.0", - "path": "^0.12.7", - "progress": "^2.0.0", - "webpack": "^2.2.1", - "webpack-dev-server": "^3.0.0" - }, - "devDependencies": { - "babel-loader": "7.1.5", - "css-loader": "1.0.0", - "extract-loader": "2.0.1", - "file-loader": "1.1.11", - "html-loader": "0.5.5", - "html-webpack-plugin": "3.2.0", - "json-loader": "0.5.7", - "raw-loader": "0.5.1", - "sass-loader": "7.1.0", - "style-loader": "0.21.0", - "url-loader": "1.0.1" - } -} diff --git a/docs/algolia-frontend-components/stylesheets/_base.scss b/docs/algolia-frontend-components/stylesheets/_base.scss deleted file mode 100755 index 6109d7b0..00000000 --- a/docs/algolia-frontend-components/stylesheets/_base.scss +++ /dev/null @@ -1,6 +0,0 @@ -* { - box-sizing: border-box; -} -body { - margin: 0; -} \ No newline at end of file diff --git a/docs/algolia-frontend-components/stylesheets/_functions.scss b/docs/algolia-frontend-components/stylesheets/_functions.scss deleted file mode 100755 index fb723a1a..00000000 --- a/docs/algolia-frontend-components/stylesheets/_functions.scss +++ /dev/null @@ -1,15 +0,0 @@ - -@function str-replace($string, $search, $replace: '') { - $index: str-index($string, $search); - @if $index { - @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace); - } - @return $string; -} - -@function em($pixels, $context: $browser-context) { - @return #{$pixels/$context}em; -} - - - diff --git a/docs/algolia-frontend-components/stylesheets/_mixins.scss b/docs/algolia-frontend-components/stylesheets/_mixins.scss deleted file mode 100755 index 689b99e1..00000000 --- a/docs/algolia-frontend-components/stylesheets/_mixins.scss +++ /dev/null @@ -1,29 +0,0 @@ - -@mixin arrowSeparatorLeft($color, $stroke: false) { - &:before { - content: ''; - display: block; - position: absolute; - z-index: 10; - height: 110%; - width: 40px; - top: -5%; - left: -6px; - - @if $stroke != false { - background: url("data:image/svg+xml;utf8,Rectangle")no-repeat; - } @else { - background: url("data:image/svg+xml;utf8,Rectangle")no-repeat; - } - } -} - -@mixin placeholder { - $placeholders: ":-webkit-input" ":-moz" "-moz" "-ms-input"; - @each $placeholder in $placeholders { - &:#{$placeholder}-placeholder { - @content; - } - } -} - diff --git a/docs/algolia-frontend-components/stylesheets/_variables.scss b/docs/algolia-frontend-components/stylesheets/_variables.scss deleted file mode 100755 index 6e4c9f5c..00000000 --- a/docs/algolia-frontend-components/stylesheets/_variables.scss +++ /dev/null @@ -1,158 +0,0 @@ - -// font sizes -$text-xxl: 3.125em; -$text-xl : 2em; -$text-lg : 1.25em; -$text-sm : .75em; -$text-xs : .625em; - -// breakpoints -$breakpoint-xl: 1200px; -$breakpoint-lg: 992px; -$breakpoint-md: 768px; -$breakpoint-sm: 576px; -$breakpoint-xs: 576px; - -// z-index layers -$z--1: -10; -$z-1: 10; -$z-2: 50; -$z-3: 100; -$z-top: 9999; - -//containers -$container-max-width: 1160px; - -//fonts; -$browser-context: 16; -$light: 300; -$regular: 400; -$bold: 600; - -//colors; -$white: white; -$black: black; - -//V2; -$purple-heart: rgb(142, 67, 231); -$mulberry: rgb(184, 69, 146); -$radical-red: rgb(255, 79, 129); -$bittersweet: rgb(255, 108, 95); -$koromiko: rgb(255, 193, 104); -$shamrock: rgb(45, 222, 152); -$java: rgb(28, 199, 208); -$algolia-blue: rgb(0, 174, 255); -$royal-blue: rgb(51, 105, 231); -$bunting: rgb(24, 35, 89); -$titan-white: rgb(247, 247, 255); -$logan: rgb(157, 157, 189); -$deep-cove: rgb(5, 15, 44); -$highlight-color: #f6624e; -$cabaret: #E7486B; -$rouge: #9C4274; -$sea-green: #13C4A5; -$blue-green: #10A4B8; -$violet: #8A63B3; -$chambray: #3B5295; -$sunset-orange: #F6624E; -$saffron-mango: #FDBD57; -$red-pink: #fb366e; -$plum: #65133a; -$light-navy: #184a80; -$primary-color: $bunting; -$secondary-color: $titan-white; -$tertiary-color: $logan; -$athens-gray: #EEF0F7; -$titan-white: #F7F7FF; -$portage: #8995C7; - -$cloudy-blue: #c4c8d7; -$cloudy-blue-2: #a6b0d8; -$cloudy-blue-3: #8995C7; -$summertime: mix($radical-red, $bittersweet, 50%); - -//header; -$header-height: 60px; -//BootStrap; -$gray-darker: lighten(#000, 13.5%); -/* #222 */ -$gray-dark: lighten(#000, 20%); -/* #333 */ - -$gray: lighten(#000, 33.5%); -/* #555 */ - -$gray-light: lighten(#000, 46.7%); -/* #777 */ - -$gray-lighter: lighten(#000, 93.5%); -/* #eee */ - -$brand-primary: $algolia-blue; -$brand-secondary: #FA3870; -$brand-success: $shamrock; -$brand-info: $algolia-blue; -$brand-warning: $koromiko; -$brand-danger: $radical-red; -$body-bg: $white; -$text-color: $bunting; -$text-muted: $logan; -$border-radius-base: 3px; -$border-radius-large: 3px; -$border-radius-small: 3px; -$link-color: $brand-primary; -$link-hover-color: darken($link-color, 15%); -//fonts; -$font-family-base: "Open Sans", Helvetica,Arial,sans-serif; -$headings-font-family: Raleway, "Times New Roman",Times,serif; -$headings-font-weight: $light; -$headings-small-color: darken($tertiary-color, 10%); -//Buttons; -$btn-font-weight: normal; -//default; -$btn-default-color: #777; -$btn-default-bg: $white; -$btn-default-border: #ccc; -//primary; -$btn-primary-color: $white; -$btn-primary-bg: $brand-primary; -$btn-primary-border: darken($btn-primary-bg, 5%); -//success; -$btn-success-color: $white; -$btn-success-bg: $brand-success; -$btn-success-border: darken($btn-success-bg, 5%); -//info; -$btn-info-color: $white; -$btn-info-bg: $brand-info; -$btn-info-border: darken($btn-info-bg, 5%); -//warning; -$btn-warning-color: $white; -$btn-warning-bg: $brand-warning; -$btn-warning-border: darken($btn-warning-bg, 5%); -//danger; -$btn-danger-color: $white; -$btn-danger-bg: $brand-danger; -$btn-danger-border: darken($btn-danger-bg, 5%); -//link; -$btn-link-disabled-color: $gray-light; -$input-bg-disabled: $gray-lighter; -//Panels; -$panel-bg: $white; -//** Border color for elements within panels; -$panel-inner-border: lighten($tertiary-color, 20%); -$panel-footer-bg: lighten($secondary-color, 10%); -$panel-default-text: $gray-dark; -$panel-default-border: $white; -$panel-default-heading-bg: $white; -//forms; -$input-group-addon-bg: lighten($secondary-color, 3%); -$input-border: lighten($gray, 30%); -//tables; -$table-border-color: $secondary-color; -$table-bg-accent: lighten($secondary-color, 5%); -//tooltip; -$tooltip-bg: $primary-color; -$tooltip-opacity: 1; -//code; -$pre-bg: $bunting; -$pre-color: #C2CCCC; diff --git a/docs/app_data/config.yml b/docs/app_data/config.yml deleted file mode 100644 index 2835e015..00000000 --- a/docs/app_data/config.yml +++ /dev/null @@ -1,9 +0,0 @@ -# OpenGraph / Twitter -title: DocSearch -description: "Algolia DocSearch is the easiest way to add search to your documentation. Just send us your URL, and we'll send you the implementation code." -tagline: DocSearch -card_image: https://community.algolia.com/docsearch/assets/images/docsearch-social.png -twitter_username: algolia -github_username: algolia -baseurl: /docsearch -host: https://community.algolia.com \ No newline at end of file diff --git a/docs/app_data/docs.yml b/docs/app_data/docs.yml deleted file mode 100644 index 28fbfc85..00000000 --- a/docs/app_data/docs.yml +++ /dev/null @@ -1,2 +0,0 @@ -unslug: - docsearch: DocSearch \ No newline at end of file diff --git a/docs/app_data/google_analytics.yml b/docs/app_data/google_analytics.yml deleted file mode 100644 index 23810825..00000000 --- a/docs/app_data/google_analytics.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -doc: 13599 diff --git a/docs/app_data/redirects.yml b/docs/app_data/redirects.yml deleted file mode 100644 index ee23a907..00000000 --- a/docs/app_data/redirects.yml +++ /dev/null @@ -1,2 +0,0 @@ -- from: /documentation/index.html - to: documentation/docsearch/introduction/ diff --git a/docs/app_data/showcase.yml b/docs/app_data/showcase.yml deleted file mode 100644 index 515f499f..00000000 --- a/docs/app_data/showcase.yml +++ /dev/null @@ -1,94 +0,0 @@ -- name: Stripe - url: "https://stripe.com/docs" - gif: "assets/images/showcase/example-stripe.gif" - logo: "assets/images/showcase/logo-stripe.png" - -- name: Bootstrap - url: "https://getbootstrap.com/docs/4.0" - gif: "assets/images/showcase/example-bootstrap.gif" - logo: "assets/images/showcase/logo-bootstrap.png" - -- name: Vue - url: "http://vuejs.org/guide/" - gif: "assets/images/showcase/example-vuejs.gif" - logo: "assets/images/showcase/logo-vuejs.png" - -- name: React - url: "https://reactjs.org" - gif: "assets/images/showcase/example-react.gif" - logo: "assets/images/showcase/logo-react.png" - -- name: React Native - url: "https://facebook.github.io/react-native/" - gif: "assets/images/showcase/example-reactnative.gif" - logo: "assets/images/showcase/logo-react.png" - -- name: Docusaurus - url: "https://docusaurus.io/" - gif: "assets/images/showcase/example-docusaurus.gif" - logo: "assets/images/showcase/logo-docusaurus.png" - -- name: Cordova - url: "http://cordova.apache.org/" - gif: "assets/images/showcase/example-cordova.gif" - logo: "assets/images/showcase/logo-cordova.png" - -- name: Babel.js - url: "https://babeljs.io/" - gif: "assets/images/showcase/example-babel.gif" - logo: "assets/images/showcase/logo-babel.png" - -- name: Apiary - url: "http://help.apiary.io/" - gif: "assets/images/showcase/example-apiary.gif" - logo: "assets/images/showcase/logo-apiary.png" - -- name: Flow - url: "https://flow.org/en/docs/" - gif: "assets/images/showcase/example-flow.gif" - logo: "assets/images/showcase/logo-flow.png" - -- name: Moment.js - url: "https://momentjs.com/docs/" - gif: "assets/images/showcase/example-momentjs.gif" - logo: "assets/images/showcase/logo-momentjs.png" - -- name: Ant Design - url: "https://ant.design/docs/react/introduce" - gif: "assets/images/showcase/example-ant-design.gif" - logo: "assets/images/showcase/logo-ant-design.png" - -- name: Gitlab - url: "https://docs.gitlab.com/" - gif: "assets/images/showcase/example-gitlab.gif" - logo: "assets/images/showcase/logo-gitlab.png" - -- name: Symfony - url: "https://symfony.com/doc/current/" - gif: "assets/images/showcase/example-symfony.gif" - logo: "assets/images/showcase/logo-symfony.png" - -- name: PM2 - url: "http://pm2.keymetrics.io/docs/usage/cluster-mode/" - gif: "assets/images/showcase/example-pm2.gif" - logo: "assets/images/showcase/logo-pm2.png" - -- name: Hugo - url: "http://gohugo.io/documentation/" - gif: "assets/images/showcase/example-hugo.gif" - logo: "assets/images/showcase/logo-hugo.png" - -- name: fastlane - url: "https://docs.fastlane.tools/" - gif: "assets/images/showcase/example-fastlane.gif" - logo: "assets/images/showcase/logo-fastlane.png" - -- name: Jekyll - url: "https://jekyllrb.com/" - gif: "assets/images/showcase/example-jekyll.gif" - logo: "assets/images/showcase/logo-jekyll.png" - -- name: Gatsby - url: "https://www.gatsbyjs.org/" - gif: "assets/images/showcase/example-gatsby.gif" - logo: "assets/images/showcase/logo-gatsby.png" diff --git a/docs/build/404/index.html b/docs/build/404/index.html new file mode 100644 index 00000000..c0f7e9a7 --- /dev/null +++ b/docs/build/404/index.html @@ -0,0 +1,3 @@ + Algolia

    Error 404

    The page you requested was not found.

    \ No newline at end of file diff --git a/docs/build/404/index.html.gz b/docs/build/404/index.html.gz new file mode 100644 index 00000000..19edf2c0 Binary files /dev/null and b/docs/build/404/index.html.gz differ diff --git a/docs/build/_redirects b/docs/build/_redirects new file mode 100644 index 00000000..6e1ace97 --- /dev/null +++ b/docs/build/_redirects @@ -0,0 +1 @@ +/documentation documentation/docsearch/introduction/ diff --git a/docs/source/assets/fonts/algolia-website-iconfont.eot b/docs/build/assets/fonts/algolia-website-iconfont.eot similarity index 100% rename from docs/source/assets/fonts/algolia-website-iconfont.eot rename to docs/build/assets/fonts/algolia-website-iconfont.eot diff --git a/docs/source/assets/fonts/algolia-website-iconfont.svg b/docs/build/assets/fonts/algolia-website-iconfont.svg old mode 100755 new mode 100644 similarity index 100% rename from docs/source/assets/fonts/algolia-website-iconfont.svg rename to docs/build/assets/fonts/algolia-website-iconfont.svg diff --git a/docs/build/assets/fonts/algolia-website-iconfont.svg.gz b/docs/build/assets/fonts/algolia-website-iconfont.svg.gz new file mode 100644 index 00000000..3a0be147 Binary files /dev/null and b/docs/build/assets/fonts/algolia-website-iconfont.svg.gz differ diff --git a/docs/source/assets/fonts/algolia-website-iconfont.ttf b/docs/build/assets/fonts/algolia-website-iconfont.ttf similarity index 100% rename from docs/source/assets/fonts/algolia-website-iconfont.ttf rename to docs/build/assets/fonts/algolia-website-iconfont.ttf diff --git a/docs/source/assets/fonts/algolia-website-iconfont.woff b/docs/build/assets/fonts/algolia-website-iconfont.woff similarity index 100% rename from docs/source/assets/fonts/algolia-website-iconfont.woff rename to docs/build/assets/fonts/algolia-website-iconfont.woff diff --git a/docs/source/assets/images/algolia-logo.svg b/docs/build/assets/images/algolia-logo.svg similarity index 100% rename from docs/source/assets/images/algolia-logo.svg rename to docs/build/assets/images/algolia-logo.svg diff --git a/docs/build/assets/images/algolia-logo.svg.gz b/docs/build/assets/images/algolia-logo.svg.gz new file mode 100644 index 00000000..1dd0dbcc Binary files /dev/null and b/docs/build/assets/images/algolia-logo.svg.gz differ diff --git a/docs/source/assets/images/background_footer.svg b/docs/build/assets/images/background_footer.svg similarity index 100% rename from docs/source/assets/images/background_footer.svg rename to docs/build/assets/images/background_footer.svg diff --git a/docs/build/assets/images/background_footer.svg.gz b/docs/build/assets/images/background_footer.svg.gz new file mode 100644 index 00000000..2e11994d Binary files /dev/null and b/docs/build/assets/images/background_footer.svg.gz differ diff --git a/docs/build/assets/images/bootstrap-docsearch.gif b/docs/build/assets/images/bootstrap-docsearch.gif new file mode 100644 index 00000000..dd450b1a Binary files /dev/null and b/docs/build/assets/images/bootstrap-docsearch.gif differ diff --git a/docs/source/assets/images/community-badge.svg b/docs/build/assets/images/community-badge.svg similarity index 100% rename from docs/source/assets/images/community-badge.svg rename to docs/build/assets/images/community-badge.svg diff --git a/docs/build/assets/images/community-badge.svg.gz b/docs/build/assets/images/community-badge.svg.gz new file mode 100644 index 00000000..e542b83a Binary files /dev/null and b/docs/build/assets/images/community-badge.svg.gz differ diff --git a/docs/source/assets/images/default-colorscheme.png b/docs/build/assets/images/default-colorscheme.png similarity index 100% rename from docs/source/assets/images/default-colorscheme.png rename to docs/build/assets/images/default-colorscheme.png diff --git a/docs/source/assets/images/docsearch-logo-horizontal_dark.svg b/docs/build/assets/images/docsearch-logo-horizontal_dark.svg similarity index 100% rename from docs/source/assets/images/docsearch-logo-horizontal_dark.svg rename to docs/build/assets/images/docsearch-logo-horizontal_dark.svg diff --git a/docs/build/assets/images/docsearch-logo-horizontal_dark.svg.gz b/docs/build/assets/images/docsearch-logo-horizontal_dark.svg.gz new file mode 100644 index 00000000..2199c6e7 Binary files /dev/null and b/docs/build/assets/images/docsearch-logo-horizontal_dark.svg.gz differ diff --git a/docs/source/assets/images/docsearch-logo-horizontal_light.svg b/docs/build/assets/images/docsearch-logo-horizontal_light.svg similarity index 100% rename from docs/source/assets/images/docsearch-logo-horizontal_light.svg rename to docs/build/assets/images/docsearch-logo-horizontal_light.svg diff --git a/docs/build/assets/images/docsearch-logo-horizontal_light.svg.gz b/docs/build/assets/images/docsearch-logo-horizontal_light.svg.gz new file mode 100644 index 00000000..ffe1be61 Binary files /dev/null and b/docs/build/assets/images/docsearch-logo-horizontal_light.svg.gz differ diff --git a/docs/source/assets/images/docsearch-logo-vertical_dark.svg b/docs/build/assets/images/docsearch-logo-vertical_dark.svg similarity index 100% rename from docs/source/assets/images/docsearch-logo-vertical_dark.svg rename to docs/build/assets/images/docsearch-logo-vertical_dark.svg diff --git a/docs/build/assets/images/docsearch-logo-vertical_dark.svg.gz b/docs/build/assets/images/docsearch-logo-vertical_dark.svg.gz new file mode 100644 index 00000000..f3f58845 Binary files /dev/null and b/docs/build/assets/images/docsearch-logo-vertical_dark.svg.gz differ diff --git a/docs/source/assets/images/docsearch-logo-vertical_light.svg b/docs/build/assets/images/docsearch-logo-vertical_light.svg similarity index 100% rename from docs/source/assets/images/docsearch-logo-vertical_light.svg rename to docs/build/assets/images/docsearch-logo-vertical_light.svg diff --git a/docs/build/assets/images/docsearch-logo-vertical_light.svg.gz b/docs/build/assets/images/docsearch-logo-vertical_light.svg.gz new file mode 100644 index 00000000..c7271596 Binary files /dev/null and b/docs/build/assets/images/docsearch-logo-vertical_light.svg.gz differ diff --git a/docs/source/assets/images/docsearch-social.png b/docs/build/assets/images/docsearch-social.png similarity index 100% rename from docs/source/assets/images/docsearch-social.png rename to docs/build/assets/images/docsearch-social.png diff --git a/docs/source/assets/images/favicon.ico b/docs/build/assets/images/favicon.ico similarity index 100% rename from docs/source/assets/images/favicon.ico rename to docs/build/assets/images/favicon.ico diff --git a/docs/source/assets/images/favicon.png b/docs/build/assets/images/favicon.png similarity index 100% rename from docs/source/assets/images/favicon.png rename to docs/build/assets/images/favicon.png diff --git a/docs/source/assets/images/header-bg.jpg b/docs/build/assets/images/header-bg.jpg similarity index 100% rename from docs/source/assets/images/header-bg.jpg rename to docs/build/assets/images/header-bg.jpg diff --git a/docs/source/assets/images/icon-arrow-pipe.svg b/docs/build/assets/images/icon-arrow-pipe.svg similarity index 100% rename from docs/source/assets/images/icon-arrow-pipe.svg rename to docs/build/assets/images/icon-arrow-pipe.svg diff --git a/docs/build/assets/images/icon-arrow-pipe.svg.gz b/docs/build/assets/images/icon-arrow-pipe.svg.gz new file mode 100644 index 00000000..fdfa9cc6 Binary files /dev/null and b/docs/build/assets/images/icon-arrow-pipe.svg.gz differ diff --git a/docs/source/assets/images/icon-github.svg b/docs/build/assets/images/icon-github.svg similarity index 100% rename from docs/source/assets/images/icon-github.svg rename to docs/build/assets/images/icon-github.svg diff --git a/docs/build/assets/images/icon-github.svg.gz b/docs/build/assets/images/icon-github.svg.gz new file mode 100644 index 00000000..20292f8a Binary files /dev/null and b/docs/build/assets/images/icon-github.svg.gz differ diff --git a/docs/source/assets/images/icon-heart-dark.svg b/docs/build/assets/images/icon-heart-dark.svg similarity index 100% rename from docs/source/assets/images/icon-heart-dark.svg rename to docs/build/assets/images/icon-heart-dark.svg diff --git a/docs/build/assets/images/icon-heart-dark.svg.gz b/docs/build/assets/images/icon-heart-dark.svg.gz new file mode 100644 index 00000000..134a4722 Binary files /dev/null and b/docs/build/assets/images/icon-heart-dark.svg.gz differ diff --git a/docs/source/assets/images/icon-heart-light.svg b/docs/build/assets/images/icon-heart-light.svg similarity index 100% rename from docs/source/assets/images/icon-heart-light.svg rename to docs/build/assets/images/icon-heart-light.svg diff --git a/docs/build/assets/images/icon-heart-light.svg.gz b/docs/build/assets/images/icon-heart-light.svg.gz new file mode 100644 index 00000000..3a303ab9 Binary files /dev/null and b/docs/build/assets/images/icon-heart-light.svg.gz differ diff --git a/docs/source/assets/images/icon-page-doc.svg b/docs/build/assets/images/icon-page-doc.svg similarity index 100% rename from docs/source/assets/images/icon-page-doc.svg rename to docs/build/assets/images/icon-page-doc.svg diff --git a/docs/build/assets/images/icon-page-doc.svg.gz b/docs/build/assets/images/icon-page-doc.svg.gz new file mode 100644 index 00000000..7ccbea2b Binary files /dev/null and b/docs/build/assets/images/icon-page-doc.svg.gz differ diff --git a/docs/source/assets/images/icon-search-white.svg b/docs/build/assets/images/icon-search-white.svg similarity index 100% rename from docs/source/assets/images/icon-search-white.svg rename to docs/build/assets/images/icon-search-white.svg diff --git a/docs/build/assets/images/icon-search-white.svg.gz b/docs/build/assets/images/icon-search-white.svg.gz new file mode 100644 index 00000000..bd50e033 Binary files /dev/null and b/docs/build/assets/images/icon-search-white.svg.gz differ diff --git a/docs/source/assets/images/illus-howitworks.jpg b/docs/build/assets/images/illus-howitworks.jpg similarity index 100% rename from docs/source/assets/images/illus-howitworks.jpg rename to docs/build/assets/images/illus-howitworks.jpg diff --git a/docs/source/assets/images/illus-howitworks.svg b/docs/build/assets/images/illus-howitworks.svg similarity index 100% rename from docs/source/assets/images/illus-howitworks.svg rename to docs/build/assets/images/illus-howitworks.svg diff --git a/docs/build/assets/images/illus-howitworks.svg.gz b/docs/build/assets/images/illus-howitworks.svg.gz new file mode 100644 index 00000000..aa15ba02 Binary files /dev/null and b/docs/build/assets/images/illus-howitworks.svg.gz differ diff --git a/docs/source/assets/images/illus-index.svg b/docs/build/assets/images/illus-index.svg similarity index 100% rename from docs/source/assets/images/illus-index.svg rename to docs/build/assets/images/illus-index.svg diff --git a/docs/build/assets/images/illus-index.svg.gz b/docs/build/assets/images/illus-index.svg.gz new file mode 100644 index 00000000..e001cdff Binary files /dev/null and b/docs/build/assets/images/illus-index.svg.gz differ diff --git a/docs/source/assets/images/logo-algolia-dark.png b/docs/build/assets/images/logo-algolia-dark.png similarity index 100% rename from docs/source/assets/images/logo-algolia-dark.png rename to docs/build/assets/images/logo-algolia-dark.png diff --git a/docs/source/assets/images/logo-community-inline-dark.svg b/docs/build/assets/images/logo-community-inline-dark.svg similarity index 100% rename from docs/source/assets/images/logo-community-inline-dark.svg rename to docs/build/assets/images/logo-community-inline-dark.svg diff --git a/docs/build/assets/images/logo-community-inline-dark.svg.gz b/docs/build/assets/images/logo-community-inline-dark.svg.gz new file mode 100644 index 00000000..5298d5f9 Binary files /dev/null and b/docs/build/assets/images/logo-community-inline-dark.svg.gz differ diff --git a/docs/source/assets/images/logo-community.svg b/docs/build/assets/images/logo-community.svg similarity index 100% rename from docs/source/assets/images/logo-community.svg rename to docs/build/assets/images/logo-community.svg diff --git a/docs/build/assets/images/logo-community.svg.gz b/docs/build/assets/images/logo-community.svg.gz new file mode 100644 index 00000000..5bca3045 Binary files /dev/null and b/docs/build/assets/images/logo-community.svg.gz differ diff --git a/docs/source/assets/images/logo-docsearch.svg b/docs/build/assets/images/logo-docsearch.svg similarity index 100% rename from docs/source/assets/images/logo-docsearch.svg rename to docs/build/assets/images/logo-docsearch.svg diff --git a/docs/build/assets/images/logo-docsearch.svg.gz b/docs/build/assets/images/logo-docsearch.svg.gz new file mode 100644 index 00000000..f56ef7c4 Binary files /dev/null and b/docs/build/assets/images/logo-docsearch.svg.gz differ diff --git a/docs/source/assets/images/mask.png b/docs/build/assets/images/mask.png similarity index 100% rename from docs/source/assets/images/mask.png rename to docs/build/assets/images/mask.png diff --git a/docs/source/assets/images/screens/screen_akka.png b/docs/build/assets/images/screens/screen_akka.png similarity index 100% rename from docs/source/assets/images/screens/screen_akka.png rename to docs/build/assets/images/screens/screen_akka.png diff --git a/docs/source/assets/images/screens/screen_bootstrap.png b/docs/build/assets/images/screens/screen_bootstrap.png similarity index 100% rename from docs/source/assets/images/screens/screen_bootstrap.png rename to docs/build/assets/images/screens/screen_bootstrap.png diff --git a/docs/source/assets/images/screens/screen_laravel.png b/docs/build/assets/images/screens/screen_laravel.png similarity index 100% rename from docs/source/assets/images/screens/screen_laravel.png rename to docs/build/assets/images/screens/screen_laravel.png diff --git a/docs/source/assets/images/screens/screen_middleman.png b/docs/build/assets/images/screens/screen_middleman.png similarity index 100% rename from docs/source/assets/images/screens/screen_middleman.png rename to docs/build/assets/images/screens/screen_middleman.png diff --git a/docs/source/assets/images/screens/screen_react.png b/docs/build/assets/images/screens/screen_react.png similarity index 100% rename from docs/source/assets/images/screens/screen_react.png rename to docs/build/assets/images/screens/screen_react.png diff --git a/docs/source/assets/images/screens/screen_stripe.png b/docs/build/assets/images/screens/screen_stripe.png similarity index 100% rename from docs/source/assets/images/screens/screen_stripe.png rename to docs/build/assets/images/screens/screen_stripe.png diff --git a/docs/source/assets/images/screens/screen_vue.png b/docs/build/assets/images/screens/screen_vue.png similarity index 100% rename from docs/source/assets/images/screens/screen_vue.png rename to docs/build/assets/images/screens/screen_vue.png diff --git a/docs/source/assets/images/showcase/example-ant-design.gif b/docs/build/assets/images/showcase/example-ant-design.gif similarity index 100% rename from docs/source/assets/images/showcase/example-ant-design.gif rename to docs/build/assets/images/showcase/example-ant-design.gif diff --git a/docs/source/assets/images/showcase/example-apiary.gif b/docs/build/assets/images/showcase/example-apiary.gif similarity index 100% rename from docs/source/assets/images/showcase/example-apiary.gif rename to docs/build/assets/images/showcase/example-apiary.gif diff --git a/docs/source/assets/images/showcase/example-apiplatform.gif b/docs/build/assets/images/showcase/example-apiplatform.gif similarity index 100% rename from docs/source/assets/images/showcase/example-apiplatform.gif rename to docs/build/assets/images/showcase/example-apiplatform.gif diff --git a/docs/source/assets/images/showcase/example-babel.gif b/docs/build/assets/images/showcase/example-babel.gif similarity index 100% rename from docs/source/assets/images/showcase/example-babel.gif rename to docs/build/assets/images/showcase/example-babel.gif diff --git a/docs/source/assets/images/showcase/example-batch.gif b/docs/build/assets/images/showcase/example-batch.gif similarity index 100% rename from docs/source/assets/images/showcase/example-batch.gif rename to docs/build/assets/images/showcase/example-batch.gif diff --git a/docs/source/assets/images/showcase/example-bootstrap.gif b/docs/build/assets/images/showcase/example-bootstrap.gif similarity index 100% rename from docs/source/assets/images/showcase/example-bootstrap.gif rename to docs/build/assets/images/showcase/example-bootstrap.gif diff --git a/docs/source/assets/images/showcase/example-cordova.gif b/docs/build/assets/images/showcase/example-cordova.gif similarity index 100% rename from docs/source/assets/images/showcase/example-cordova.gif rename to docs/build/assets/images/showcase/example-cordova.gif diff --git a/docs/source/assets/images/showcase/example-docusaurus.gif b/docs/build/assets/images/showcase/example-docusaurus.gif similarity index 100% rename from docs/source/assets/images/showcase/example-docusaurus.gif rename to docs/build/assets/images/showcase/example-docusaurus.gif diff --git a/docs/source/assets/images/showcase/example-echo.gif b/docs/build/assets/images/showcase/example-echo.gif similarity index 100% rename from docs/source/assets/images/showcase/example-echo.gif rename to docs/build/assets/images/showcase/example-echo.gif diff --git a/docs/source/assets/images/showcase/example-eslint.gif b/docs/build/assets/images/showcase/example-eslint.gif similarity index 100% rename from docs/source/assets/images/showcase/example-eslint.gif rename to docs/build/assets/images/showcase/example-eslint.gif diff --git a/docs/source/assets/images/showcase/example-fastlane.gif b/docs/build/assets/images/showcase/example-fastlane.gif similarity index 100% rename from docs/source/assets/images/showcase/example-fastlane.gif rename to docs/build/assets/images/showcase/example-fastlane.gif diff --git a/docs/source/assets/images/showcase/example-flow.gif b/docs/build/assets/images/showcase/example-flow.gif similarity index 100% rename from docs/source/assets/images/showcase/example-flow.gif rename to docs/build/assets/images/showcase/example-flow.gif diff --git a/docs/source/assets/images/showcase/example-gatsby.gif b/docs/build/assets/images/showcase/example-gatsby.gif similarity index 100% rename from docs/source/assets/images/showcase/example-gatsby.gif rename to docs/build/assets/images/showcase/example-gatsby.gif diff --git a/docs/source/assets/images/showcase/example-gitlab.gif b/docs/build/assets/images/showcase/example-gitlab.gif similarity index 100% rename from docs/source/assets/images/showcase/example-gitlab.gif rename to docs/build/assets/images/showcase/example-gitlab.gif diff --git a/docs/source/assets/images/showcase/example-hugo.gif b/docs/build/assets/images/showcase/example-hugo.gif similarity index 100% rename from docs/source/assets/images/showcase/example-hugo.gif rename to docs/build/assets/images/showcase/example-hugo.gif diff --git a/docs/source/assets/images/showcase/example-influxdata.gif b/docs/build/assets/images/showcase/example-influxdata.gif similarity index 100% rename from docs/source/assets/images/showcase/example-influxdata.gif rename to docs/build/assets/images/showcase/example-influxdata.gif diff --git a/docs/source/assets/images/showcase/example-jekyll.gif b/docs/build/assets/images/showcase/example-jekyll.gif similarity index 100% rename from docs/source/assets/images/showcase/example-jekyll.gif rename to docs/build/assets/images/showcase/example-jekyll.gif diff --git a/docs/source/assets/images/showcase/example-mailjet.gif b/docs/build/assets/images/showcase/example-mailjet.gif similarity index 100% rename from docs/source/assets/images/showcase/example-mailjet.gif rename to docs/build/assets/images/showcase/example-mailjet.gif diff --git a/docs/source/assets/images/showcase/example-marionettejs.gif b/docs/build/assets/images/showcase/example-marionettejs.gif similarity index 100% rename from docs/source/assets/images/showcase/example-marionettejs.gif rename to docs/build/assets/images/showcase/example-marionettejs.gif diff --git a/docs/source/assets/images/showcase/example-momentjs.gif b/docs/build/assets/images/showcase/example-momentjs.gif similarity index 100% rename from docs/source/assets/images/showcase/example-momentjs.gif rename to docs/build/assets/images/showcase/example-momentjs.gif diff --git a/docs/source/assets/images/showcase/example-pm2.gif b/docs/build/assets/images/showcase/example-pm2.gif similarity index 100% rename from docs/source/assets/images/showcase/example-pm2.gif rename to docs/build/assets/images/showcase/example-pm2.gif diff --git a/docs/source/assets/images/showcase/example-quill.gif b/docs/build/assets/images/showcase/example-quill.gif similarity index 100% rename from docs/source/assets/images/showcase/example-quill.gif rename to docs/build/assets/images/showcase/example-quill.gif diff --git a/docs/source/assets/images/showcase/example-react.gif b/docs/build/assets/images/showcase/example-react.gif similarity index 100% rename from docs/source/assets/images/showcase/example-react.gif rename to docs/build/assets/images/showcase/example-react.gif diff --git a/docs/source/assets/images/showcase/example-reactnative.gif b/docs/build/assets/images/showcase/example-reactnative.gif similarity index 100% rename from docs/source/assets/images/showcase/example-reactnative.gif rename to docs/build/assets/images/showcase/example-reactnative.gif diff --git a/docs/source/assets/images/showcase/example-scala.gif b/docs/build/assets/images/showcase/example-scala.gif similarity index 100% rename from docs/source/assets/images/showcase/example-scala.gif rename to docs/build/assets/images/showcase/example-scala.gif diff --git a/docs/source/assets/images/showcase/example-serge.gif b/docs/build/assets/images/showcase/example-serge.gif similarity index 100% rename from docs/source/assets/images/showcase/example-serge.gif rename to docs/build/assets/images/showcase/example-serge.gif diff --git a/docs/source/assets/images/showcase/example-serge.png b/docs/build/assets/images/showcase/example-serge.png similarity index 100% rename from docs/source/assets/images/showcase/example-serge.png rename to docs/build/assets/images/showcase/example-serge.png diff --git a/docs/source/assets/images/showcase/example-stripe.gif b/docs/build/assets/images/showcase/example-stripe.gif similarity index 100% rename from docs/source/assets/images/showcase/example-stripe.gif rename to docs/build/assets/images/showcase/example-stripe.gif diff --git a/docs/source/assets/images/showcase/example-symfony.gif b/docs/build/assets/images/showcase/example-symfony.gif similarity index 100% rename from docs/source/assets/images/showcase/example-symfony.gif rename to docs/build/assets/images/showcase/example-symfony.gif diff --git a/docs/source/assets/images/showcase/example-vuejs.gif b/docs/build/assets/images/showcase/example-vuejs.gif similarity index 100% rename from docs/source/assets/images/showcase/example-vuejs.gif rename to docs/build/assets/images/showcase/example-vuejs.gif diff --git a/docs/source/assets/images/showcase/logo-ant-design.png b/docs/build/assets/images/showcase/logo-ant-design.png similarity index 100% rename from docs/source/assets/images/showcase/logo-ant-design.png rename to docs/build/assets/images/showcase/logo-ant-design.png diff --git a/docs/source/assets/images/showcase/logo-apiary.png b/docs/build/assets/images/showcase/logo-apiary.png similarity index 100% rename from docs/source/assets/images/showcase/logo-apiary.png rename to docs/build/assets/images/showcase/logo-apiary.png diff --git a/docs/source/assets/images/showcase/logo-apiplatform.svg b/docs/build/assets/images/showcase/logo-apiplatform.svg similarity index 100% rename from docs/source/assets/images/showcase/logo-apiplatform.svg rename to docs/build/assets/images/showcase/logo-apiplatform.svg diff --git a/docs/build/assets/images/showcase/logo-apiplatform.svg.gz b/docs/build/assets/images/showcase/logo-apiplatform.svg.gz new file mode 100644 index 00000000..e65fc57e Binary files /dev/null and b/docs/build/assets/images/showcase/logo-apiplatform.svg.gz differ diff --git a/docs/source/assets/images/showcase/logo-babel.png b/docs/build/assets/images/showcase/logo-babel.png similarity index 100% rename from docs/source/assets/images/showcase/logo-babel.png rename to docs/build/assets/images/showcase/logo-babel.png diff --git a/docs/source/assets/images/showcase/logo-batch.png b/docs/build/assets/images/showcase/logo-batch.png similarity index 100% rename from docs/source/assets/images/showcase/logo-batch.png rename to docs/build/assets/images/showcase/logo-batch.png diff --git a/docs/source/assets/images/showcase/logo-batch.svg b/docs/build/assets/images/showcase/logo-batch.svg similarity index 100% rename from docs/source/assets/images/showcase/logo-batch.svg rename to docs/build/assets/images/showcase/logo-batch.svg diff --git a/docs/build/assets/images/showcase/logo-batch.svg.gz b/docs/build/assets/images/showcase/logo-batch.svg.gz new file mode 100644 index 00000000..617f9dcb Binary files /dev/null and b/docs/build/assets/images/showcase/logo-batch.svg.gz differ diff --git a/docs/source/assets/images/showcase/logo-bootstrap.png b/docs/build/assets/images/showcase/logo-bootstrap.png similarity index 100% rename from docs/source/assets/images/showcase/logo-bootstrap.png rename to docs/build/assets/images/showcase/logo-bootstrap.png diff --git a/docs/source/assets/images/showcase/logo-cordova.png b/docs/build/assets/images/showcase/logo-cordova.png similarity index 100% rename from docs/source/assets/images/showcase/logo-cordova.png rename to docs/build/assets/images/showcase/logo-cordova.png diff --git a/docs/source/assets/images/showcase/logo-docusaurus.png b/docs/build/assets/images/showcase/logo-docusaurus.png similarity index 100% rename from docs/source/assets/images/showcase/logo-docusaurus.png rename to docs/build/assets/images/showcase/logo-docusaurus.png diff --git a/docs/source/assets/images/showcase/logo-echo.png b/docs/build/assets/images/showcase/logo-echo.png similarity index 100% rename from docs/source/assets/images/showcase/logo-echo.png rename to docs/build/assets/images/showcase/logo-echo.png diff --git a/docs/source/assets/images/showcase/logo-eslint.png b/docs/build/assets/images/showcase/logo-eslint.png similarity index 100% rename from docs/source/assets/images/showcase/logo-eslint.png rename to docs/build/assets/images/showcase/logo-eslint.png diff --git a/docs/source/assets/images/showcase/logo-fastlane.png b/docs/build/assets/images/showcase/logo-fastlane.png similarity index 100% rename from docs/source/assets/images/showcase/logo-fastlane.png rename to docs/build/assets/images/showcase/logo-fastlane.png diff --git a/docs/source/assets/images/showcase/logo-flow.png b/docs/build/assets/images/showcase/logo-flow.png similarity index 100% rename from docs/source/assets/images/showcase/logo-flow.png rename to docs/build/assets/images/showcase/logo-flow.png diff --git a/docs/source/assets/images/showcase/logo-gatsby.png b/docs/build/assets/images/showcase/logo-gatsby.png similarity index 100% rename from docs/source/assets/images/showcase/logo-gatsby.png rename to docs/build/assets/images/showcase/logo-gatsby.png diff --git a/docs/source/assets/images/showcase/logo-gitlab.png b/docs/build/assets/images/showcase/logo-gitlab.png similarity index 100% rename from docs/source/assets/images/showcase/logo-gitlab.png rename to docs/build/assets/images/showcase/logo-gitlab.png diff --git a/docs/source/assets/images/showcase/logo-hugo.png b/docs/build/assets/images/showcase/logo-hugo.png similarity index 100% rename from docs/source/assets/images/showcase/logo-hugo.png rename to docs/build/assets/images/showcase/logo-hugo.png diff --git a/docs/source/assets/images/showcase/logo-influxdata.png b/docs/build/assets/images/showcase/logo-influxdata.png similarity index 100% rename from docs/source/assets/images/showcase/logo-influxdata.png rename to docs/build/assets/images/showcase/logo-influxdata.png diff --git a/docs/source/assets/images/showcase/logo-jekyll.png b/docs/build/assets/images/showcase/logo-jekyll.png similarity index 100% rename from docs/source/assets/images/showcase/logo-jekyll.png rename to docs/build/assets/images/showcase/logo-jekyll.png diff --git a/docs/source/assets/images/showcase/logo-mailjet.png b/docs/build/assets/images/showcase/logo-mailjet.png similarity index 100% rename from docs/source/assets/images/showcase/logo-mailjet.png rename to docs/build/assets/images/showcase/logo-mailjet.png diff --git a/docs/source/assets/images/showcase/logo-marionettejs.png b/docs/build/assets/images/showcase/logo-marionettejs.png similarity index 100% rename from docs/source/assets/images/showcase/logo-marionettejs.png rename to docs/build/assets/images/showcase/logo-marionettejs.png diff --git a/docs/source/assets/images/showcase/logo-momentjs.png b/docs/build/assets/images/showcase/logo-momentjs.png similarity index 100% rename from docs/source/assets/images/showcase/logo-momentjs.png rename to docs/build/assets/images/showcase/logo-momentjs.png diff --git a/docs/source/assets/images/showcase/logo-pm2.png b/docs/build/assets/images/showcase/logo-pm2.png similarity index 100% rename from docs/source/assets/images/showcase/logo-pm2.png rename to docs/build/assets/images/showcase/logo-pm2.png diff --git a/docs/source/assets/images/showcase/logo-quill.png b/docs/build/assets/images/showcase/logo-quill.png similarity index 100% rename from docs/source/assets/images/showcase/logo-quill.png rename to docs/build/assets/images/showcase/logo-quill.png diff --git a/docs/source/assets/images/showcase/logo-quill.svg b/docs/build/assets/images/showcase/logo-quill.svg similarity index 100% rename from docs/source/assets/images/showcase/logo-quill.svg rename to docs/build/assets/images/showcase/logo-quill.svg diff --git a/docs/build/assets/images/showcase/logo-quill.svg.gz b/docs/build/assets/images/showcase/logo-quill.svg.gz new file mode 100644 index 00000000..7d0fd4d3 Binary files /dev/null and b/docs/build/assets/images/showcase/logo-quill.svg.gz differ diff --git a/docs/source/assets/images/showcase/logo-react.png b/docs/build/assets/images/showcase/logo-react.png similarity index 100% rename from docs/source/assets/images/showcase/logo-react.png rename to docs/build/assets/images/showcase/logo-react.png diff --git a/docs/source/assets/images/showcase/logo-scala.png b/docs/build/assets/images/showcase/logo-scala.png similarity index 100% rename from docs/source/assets/images/showcase/logo-scala.png rename to docs/build/assets/images/showcase/logo-scala.png diff --git a/docs/source/assets/images/showcase/logo-serge.svg b/docs/build/assets/images/showcase/logo-serge.svg similarity index 100% rename from docs/source/assets/images/showcase/logo-serge.svg rename to docs/build/assets/images/showcase/logo-serge.svg diff --git a/docs/build/assets/images/showcase/logo-serge.svg.gz b/docs/build/assets/images/showcase/logo-serge.svg.gz new file mode 100644 index 00000000..6f0714c0 Binary files /dev/null and b/docs/build/assets/images/showcase/logo-serge.svg.gz differ diff --git a/docs/source/assets/images/showcase/logo-stripe.png b/docs/build/assets/images/showcase/logo-stripe.png similarity index 100% rename from docs/source/assets/images/showcase/logo-stripe.png rename to docs/build/assets/images/showcase/logo-stripe.png diff --git a/docs/source/assets/images/showcase/logo-symfony.png b/docs/build/assets/images/showcase/logo-symfony.png similarity index 100% rename from docs/source/assets/images/showcase/logo-symfony.png rename to docs/build/assets/images/showcase/logo-symfony.png diff --git a/docs/source/assets/images/showcase/logo-vuejs.png b/docs/build/assets/images/showcase/logo-vuejs.png similarity index 100% rename from docs/source/assets/images/showcase/logo-vuejs.png rename to docs/build/assets/images/showcase/logo-vuejs.png diff --git a/docs/source/assets/javascripts/bootstrap.min.js b/docs/build/assets/javascripts/bootstrap.min.js old mode 100755 new mode 100644 similarity index 99% rename from docs/source/assets/javascripts/bootstrap.min.js rename to docs/build/assets/javascripts/bootstrap.min.js index 3b89ee4f..e02a4e53 --- a/docs/source/assets/javascripts/bootstrap.min.js +++ b/docs/build/assets/javascripts/bootstrap.min.js @@ -8,4 +8,4 @@ * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=8e378749f2f2055043e1) * Config saved to config.json and https://gist.github.com/8e378749f2f2055043e1 */ -if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(t){"use strict";var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(t){"use strict";function e(e){var a,n=e.attr("data-target")||(a=e.attr("href"))&&a.replace(/.*(?=#[^\s]+$)/,"");return t(n)}function a(e){return this.each(function(){var a=t(this),i=a.data("bs.collapse"),s=t.extend({},n.DEFAULTS,a.data(),"object"==typeof e&&e);!i&&s.toggle&&/show|hide/.test(e)&&(s.toggle=!1),i||a.data("bs.collapse",i=new n(this,s)),"string"==typeof e&&i[e]()})}var n=function(e,a){this.$element=t(e),this.options=t.extend({},n.DEFAULTS,a),this.$trigger=t('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};n.VERSION="3.3.5",n.TRANSITION_DURATION=350,n.DEFAULTS={toggle:!0},n.prototype.dimension=function(){var t=this.$element.hasClass("width");return t?"width":"height"},n.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var e,i=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(i&&i.length&&(e=i.data("bs.collapse"),e&&e.transitioning))){var s=t.Event("show.bs.collapse");if(this.$element.trigger(s),!s.isDefaultPrevented()){i&&i.length&&(a.call(i,"hide"),e||i.data("bs.collapse",null));var o=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[o](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var r=function(){this.$element.removeClass("collapsing").addClass("collapse in")[o](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!t.support.transition)return r.call(this);var l=t.camelCase(["scroll",o].join("-"));this.$element.one("bsTransitionEnd",t.proxy(r,this)).emulateTransitionEnd(n.TRANSITION_DURATION)[o](this.$element[0][l])}}}},n.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var e=t.Event("hide.bs.collapse");if(this.$element.trigger(e),!e.isDefaultPrevented()){var a=this.dimension();this.$element[a](this.$element[a]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var i=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return t.support.transition?void this.$element[a](0).one("bsTransitionEnd",t.proxy(i,this)).emulateTransitionEnd(n.TRANSITION_DURATION):i.call(this)}}},n.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},n.prototype.getParent=function(){return t(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(t.proxy(function(a,n){var i=t(n);this.addAriaAndCollapsedClass(e(i),i)},this)).end()},n.prototype.addAriaAndCollapsedClass=function(t,e){var a=t.hasClass("in");t.attr("aria-expanded",a),e.toggleClass("collapsed",!a).attr("aria-expanded",a)};var i=t.fn.collapse;t.fn.collapse=a,t.fn.collapse.Constructor=n,t.fn.collapse.noConflict=function(){return t.fn.collapse=i,this},t(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(n){var i=t(this);i.attr("data-target")||n.preventDefault();var s=e(i),o=s.data("bs.collapse"),r=o?"toggle":i.data();a.call(s,r)})}(jQuery); \ No newline at end of file +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(t){"use strict";var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(t){"use strict";function e(e){var a,n=e.attr("data-target")||(a=e.attr("href"))&&a.replace(/.*(?=#[^\s]+$)/,"");return t(n)}function a(e){return this.each(function(){var a=t(this),i=a.data("bs.collapse"),s=t.extend({},n.DEFAULTS,a.data(),"object"==typeof e&&e);!i&&s.toggle&&/show|hide/.test(e)&&(s.toggle=!1),i||a.data("bs.collapse",i=new n(this,s)),"string"==typeof e&&i[e]()})}var n=function(e,a){this.$element=t(e),this.options=t.extend({},n.DEFAULTS,a),this.$trigger=t('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};n.VERSION="3.3.5",n.TRANSITION_DURATION=350,n.DEFAULTS={toggle:!0},n.prototype.dimension=function(){var t=this.$element.hasClass("width");return t?"width":"height"},n.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var e,i=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(i&&i.length&&(e=i.data("bs.collapse"),e&&e.transitioning))){var s=t.Event("show.bs.collapse");if(this.$element.trigger(s),!s.isDefaultPrevented()){i&&i.length&&(a.call(i,"hide"),e||i.data("bs.collapse",null));var o=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[o](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var r=function(){this.$element.removeClass("collapsing").addClass("collapse in")[o](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!t.support.transition)return r.call(this);var l=t.camelCase(["scroll",o].join("-"));this.$element.one("bsTransitionEnd",t.proxy(r,this)).emulateTransitionEnd(n.TRANSITION_DURATION)[o](this.$element[0][l])}}}},n.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var e=t.Event("hide.bs.collapse");if(this.$element.trigger(e),!e.isDefaultPrevented()){var a=this.dimension();this.$element[a](this.$element[a]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var i=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return t.support.transition?void this.$element[a](0).one("bsTransitionEnd",t.proxy(i,this)).emulateTransitionEnd(n.TRANSITION_DURATION):i.call(this)}}},n.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},n.prototype.getParent=function(){return t(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(t.proxy(function(a,n){var i=t(n);this.addAriaAndCollapsedClass(e(i),i)},this)).end()},n.prototype.addAriaAndCollapsedClass=function(t,e){var a=t.hasClass("in");t.attr("aria-expanded",a),e.toggleClass("collapsed",!a).attr("aria-expanded",a)};var i=t.fn.collapse;t.fn.collapse=a,t.fn.collapse.Constructor=n,t.fn.collapse.noConflict=function(){return t.fn.collapse=i,this},t(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(n){var i=t(this);i.attr("data-target")||n.preventDefault();var s=e(i),o=s.data("bs.collapse"),r=o?"toggle":i.data();a.call(s,r)})}(jQuery); diff --git a/docs/build/assets/javascripts/bootstrap.min.js.gz b/docs/build/assets/javascripts/bootstrap.min.js.gz new file mode 100644 index 00000000..66fe52a0 Binary files /dev/null and b/docs/build/assets/javascripts/bootstrap.min.js.gz differ diff --git a/docs/build/assets/javascripts/communityHeader.js b/docs/build/assets/javascripts/communityHeader.js new file mode 100644 index 00000000..eea9fca2 --- /dev/null +++ b/docs/build/assets/javascripts/communityHeader.js @@ -0,0 +1 @@ +"use strict";function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&arguments[0]!==undefined&&arguments[0];return e||("function"==typeof window.docsearch||"function"==typeof docsearch?docsearch:void 0)}},{key:"verifyDocSearchParams",value:function(e){return!!(e&&e.apiKey&&e.indexName&&e.inputSelector)}},{key:"triggerMenu",value:function(e){var t=this,n=e.target.dataset.dropdown,i=this.menuDropdowns[n].content,o=(this.menuDropdowns[n].parent,this.calculatePosition(e.target)),r=this.calculatePosition(i),s=this.calculatePosition(this.menuContainer),a=void 0,c={X:r.realWidth/this.INIT_VAL.WIDTH,Y:r.realHeight/this.INIT_VAL.HEIGHT};a=o.center-s.left+"px",s.left<20&&(a="calc(50% - 36px)"),this.navBg.style.cssText="\n transform: translateX("+a+") scale("+c.X+", "+c.Y+")",this.navArrow.style.cssText="\n transform: translateX("+a+") rotate(45deg)",this.dropDownContainer.style.cssText="\n transform: translateX("+a+");\n width: "+r.realWidth+"px;\n height: "+(r.realHeight+10)+"px;",this.dropdownRoot.style.pointerEvents="auto",Object.keys(this.menuDropdowns).forEach(function(e){e===n?t.menuDropdowns[e].parent.classList.add("active"):t.menuDropdowns[e].parent.classList.remove("active")}),this.menuState.isOpen||setTimeout(function(){t.navRoot.className="algc-dropdownroot activeDropdown"},50),window.clearTimeout(this.disableTransitionTimeout),this.menuState.isOpen=!0}},{key:"shouldTriggerMenu",value:function(e){var t=this;this.menuState.isOpen?this.triggerMenu(e):this.triggerMenuTimeout=setTimeout(function(){t.triggerMenu(e)},200)}},{key:"closeMenu",value:function(){var e=this;window.clearTimeout(this.triggerMenuTimeout),this.menuState.isOpen=!1,this.disableTransitionTimeout=setTimeout(function(){e.dropdownRoot.style.pointerEvents="none",e.navRoot.className="algc-dropdownroot notransition"},50)}},{key:"toggleMobileMenu",value:function(){this.mobileMenuButton.classList.toggle("algc-openmobile--open"),this.mobileMenu.classList.toggle("algc-mobilemenu--open")}},{key:"docSearchToggling",value:function(){var e=this;this.searchInput=document.querySelector(this.docSearchCredentials.inputSelector);var t=function(){e.searchContainer.classList.add("open"),e.searchInput.focus()},n=function(){e.searchInput.blur(),e.searchContainer.classList.remove("open")},i=function(){""!==e.searchInput.value?e.searchInput.value="":n()};this.searchInput.setAttribute("value",""),this.searchIcon.addEventListener("click",t),this.cancelIcon.addEventListener("click",i)}},{key:"initDocSearch",value:function(){this.docSearchToggling(),this.docSearchInit(this.docSearchCredentials)}},{key:"initDocSearchStrategy",value:function(){var e=this;if(this.enableDocSearch&&"function"==typeof this.docSearchInit)this.initDocSearch();else if("lazy"===this.docSearch){var t=document.createElement("script");t.type="text/javascript",t.async=!0,document.body.appendChild(t),t.onload=function(){e.docSearchInit=docsearch,e.initDocSearch()},t.src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"}}},{key:"openSublist",value:function(e){var t=e.parentNode;this.subListHolders.forEach(function(e){e!==t||t.classList.contains("open")?e.classList.remove("open"):e.classList.add("open")})}},{key:"closeSubLists",value:function(){this.subListHolders.forEach(function(e){return e.classList.remove("open")})}},{key:"bindListeners",value:function(){var e=this,t=this;this.subList.forEach(function(e){e.addEventListener("click",function(e){e.preventDefault(),e.stopPropagation(),t.openSublist(this)})}),this.menuTriggers.forEach(function(t){t.addEventListener("mouseenter",e.shouldTriggerMenu),t.addEventListener("focus",e.triggerMenu)}),this.navItems.forEach(function(t){t.addEventListener("mouseleave",e.closeMenu)}),this.navContainer.addEventListener("mouseenter",function(){clearTimeout(e.disableTransitionTimeout)}),this.mobileMenuButton.addEventListener("click",this.toggleMobileMenu),document.addEventListener("click",this.closeSubLists),document.querySelector(".algc-dropdownroot__dropdowncontainer").addEventListener("mouseleave",this.closeMenu)}}]),e}(); \ No newline at end of file diff --git a/docs/build/assets/javascripts/communityHeader.js.gz b/docs/build/assets/javascripts/communityHeader.js.gz new file mode 100644 index 00000000..1de5d34d Binary files /dev/null and b/docs/build/assets/javascripts/communityHeader.js.gz differ diff --git a/docs/build/assets/javascripts/components/copy-link b/docs/build/assets/javascripts/components/copy-link new file mode 100644 index 00000000..1d28f5d7 --- /dev/null +++ b/docs/build/assets/javascripts/components/copy-link @@ -0,0 +1,33 @@ +'use strict'; + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } } + +var copy_links = [].concat(_toConsumableArray(document.querySelectorAll('.copy-link'))); + +copy_links.forEach(function (link) { + link.addEventListener('click', function (e) { + e.preventDefault(); + + return false; + }); +}); + +var clipboard = new Clipboard('.copy-link', { + text: function text(trigger) { + var wrapper = $(trigger).closest('.snippet-wrapper'); + var current_snippet = wrapper.find('.tab-pane.active pre'); + + return current_snippet.text().replace('0&&void 0!==arguments[0]?arguments[0]:{};this.action=e.action,this.emitter=e.emitter,this.target=e.target,this.text=e.text,this.trigger=e.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var e=this,t="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return e.removeFake()},this.fakeHandler=document.body.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[t?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,document.body.appendChild(this.fakeElem),this.selectedText=(0,o["default"])(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(document.body.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(document.body.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,o["default"])(this.target),this.copyText()}},{key:"copyText",value:function(){var e=void 0;try{e=document.execCommand(this.action)}catch(t){e=!1}this.handleResult(e)}},{key:"handleResult",value:function(e){this.emitter.emit(e?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.target&&this.target.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=e,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(e){if(void 0!==e){if(!e||"object"!==(void 0===e?"undefined":i(e))||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=e}},get:function(){return this._target}}]),e}();e.exports=c})},{select:5}],8:[function(t,n,r){!function(o,i){if("function"==typeof e&&e.amd)e(["module","./clipboard-action","tiny-emitter","good-listener"],i);else if(void 0!==r)i(n,t("./clipboard-action"),t("tiny-emitter"),t("good-listener"));else{var a={exports:{}};i(a,o.clipboardAction,o.tinyEmitter,o.goodListener),o.clipboard=a.exports}}(this,function(e,t,n,r){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function c(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function l(e,t){var n="data-clipboard-"+e;if(t.hasAttribute(n))return t.getAttribute(n)}var s=o(t),u=o(n),f=o(r),d=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText}},{key:"listenClick",value:function(e){var t=this;this.listener=(0,f["default"])(e,"click",function(e){return t.onClick(e)})}},{key:"onClick",value:function(e){var t=e.delegateTarget||e.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new s["default"]({action:this.action(t),target:this.target(t),text:this.text(t),trigger:t,emitter:this})}},{key:"defaultAction",value:function(e){return l("action",e)}},{key:"defaultTarget",value:function(e){var t=l("target",e);if(t)return document.querySelector(t)}},{key:"defaultText",value:function(e){return l("text",e)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof e?[e]:e,n=!!document.queryCommandSupported;return t.forEach(function(e){n=n&&!!document.queryCommandSupported(e)}),n}}]),t}(u["default"]);e.exports=h})},{"./clipboard-action":7,"good-listener":4,"tiny-emitter":6}]},{},[8])(8)});var copy_links=[].concat(_toConsumableArray(document.querySelectorAll(".copy-link")));copy_links.forEach(function(e){e.addEventListener("click",function(e){return e.preventDefault(),!1})});var clipboard=new Clipboard(".copy-link",{text:function(e){return $(e).closest(".snippet-wrapper").find(".tab-pane.active pre").text().replace("0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function e(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function e(){var t=this,n="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=document.body.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[n?"right":"left"]="-9999px";var o=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=o+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,document.body.appendChild(this.fakeElem),this.selectedText=(0,i.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function e(){this.fakeHandler&&(document.body.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(document.body.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function e(){this.selectedText=(0,i.default)(this.target),this.copyText()}},{key:"copyText",value:function e(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function e(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function e(){this.target&&this.target.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function e(){this.removeFake()}},{key:"action",set:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function e(){return this._action}},{key:"target",set:function e(t){if(void 0!==t){if(!t||"object"!==("undefined"==typeof t?"undefined":r(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function e(){return this._target}}]),e}();e.exports=c})},{select:5}],8:[function(t,n,o){!function(i,r){if("function"==typeof e&&e.amd)e(["module","./clipboard-action","tiny-emitter","good-listener"],r);else if("undefined"!=typeof o)r(n,t("./clipboard-action"),t("tiny-emitter"),t("good-listener"));else{var a={exports:{}};r(a,i.clipboardAction,i.tinyEmitter,i.goodListener),i.clipboard=a.exports}}(this,function(e,t,n,o){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function c(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function l(e,t){var n="data-clipboard-"+e;if(t.hasAttribute(n))return t.getAttribute(n)}var u=i(t),s=i(n),f=i(o),d=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText}},{key:"listenClick",value:function e(t){var n=this;this.listener=(0,f.default)(t,"click",function(e){return n.onClick(e)})}},{key:"onClick",value:function e(t){var n=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new u.default({action:this.action(n),target:this.target(n),text:this.text(n),trigger:n,emitter:this})}},{key:"defaultAction",value:function e(t){return l("action",t)}},{key:"defaultTarget",value:function e(t){var n=l("target",t);if(n)return document.querySelector(n)}},{key:"defaultText",value:function e(t){return l("text",t)}},{key:"destroy",value:function e(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],n="string"==typeof t?[t]:t,o=!!document.queryCommandSupported;return n.forEach(function(e){o=o&&!!document.queryCommandSupported(e)}),o}}]),t}(s.default);e.exports=h})},{"./clipboard-action":7,"good-listener":4,"tiny-emitter":6}]},{},[8])(8)}); \ No newline at end of file +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Clipboard=e()}}(function(){var e,t,n;return function e(t,n,o){function i(a,c){if(!n[a]){if(!t[a]){var l="function"==typeof require&&require;if(!c&&l)return l(a,!0);if(r)return r(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var s=n[a]={exports:{}};t[a][0].call(s.exports,function(e){var n=t[a][1][e];return i(n?n:e)},s,s.exports,e,t,n,o)}return n[a].exports}for(var r="function"==typeof require&&require,a=0;a0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function e(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function e(){var t=this,n="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=document.body.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[n?"right":"left"]="-9999px";var o=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=o+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,document.body.appendChild(this.fakeElem),this.selectedText=(0,i.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function e(){this.fakeHandler&&(document.body.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(document.body.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function e(){this.selectedText=(0,i.default)(this.target),this.copyText()}},{key:"copyText",value:function e(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function e(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function e(){this.target&&this.target.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function e(){this.removeFake()}},{key:"action",set:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function e(){return this._action}},{key:"target",set:function e(t){if(void 0!==t){if(!t||"object"!==("undefined"==typeof t?"undefined":r(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function e(){return this._target}}]),e}();e.exports=c})},{select:5}],8:[function(t,n,o){!function(i,r){if("function"==typeof e&&e.amd)e(["module","./clipboard-action","tiny-emitter","good-listener"],r);else if("undefined"!=typeof o)r(n,t("./clipboard-action"),t("tiny-emitter"),t("good-listener"));else{var a={exports:{}};r(a,i.clipboardAction,i.tinyEmitter,i.goodListener),i.clipboard=a.exports}}(this,function(e,t,n,o){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function c(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function l(e,t){var n="data-clipboard-"+e;if(t.hasAttribute(n))return t.getAttribute(n)}var u=i(t),s=i(n),f=i(o),d=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText}},{key:"listenClick",value:function e(t){var n=this;this.listener=(0,f.default)(t,"click",function(e){return n.onClick(e)})}},{key:"onClick",value:function e(t){var n=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new u.default({action:this.action(n),target:this.target(n),text:this.text(n),trigger:n,emitter:this})}},{key:"defaultAction",value:function e(t){return l("action",t)}},{key:"defaultTarget",value:function e(t){var n=l("target",t);if(n)return document.querySelector(n)}},{key:"defaultText",value:function e(t){return l("text",t)}},{key:"destroy",value:function e(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],n="string"==typeof t?[t]:t,o=!!document.queryCommandSupported;return n.forEach(function(e){o=o&&!!document.queryCommandSupported(e)}),o}}]),t}(s.default);e.exports=h})},{"./clipboard-action":7,"good-listener":4,"tiny-emitter":6}]},{},[8])(8)}); diff --git a/docs/build/assets/javascripts/vendors/clipboard.min.js.gz b/docs/build/assets/javascripts/vendors/clipboard.min.js.gz new file mode 100644 index 00000000..b6028cd7 Binary files /dev/null and b/docs/build/assets/javascripts/vendors/clipboard.min.js.gz differ diff --git a/docs/source/assets/stylesheets/components/copy-link.scss b/docs/build/assets/stylesheets/components/copy-link similarity index 84% rename from docs/source/assets/stylesheets/components/copy-link.scss rename to docs/build/assets/stylesheets/components/copy-link index 874b4013..b0ece578 100644 --- a/docs/source/assets/stylesheets/components/copy-link.scss +++ b/docs/build/assets/stylesheets/components/copy-link @@ -1,5 +1,4 @@ .snippet-wrapper .copy-link { position: absolute; right: calc(1em + 8px); - top: 8px; -} \ No newline at end of file + top: 8px; } diff --git a/docs/build/assets/stylesheets/components/edit-link b/docs/build/assets/stylesheets/components/edit-link new file mode 100644 index 00000000..f63766fe --- /dev/null +++ b/docs/build/assets/stylesheets/components/edit-link @@ -0,0 +1,105 @@ +/* +SassC::SyntaxError: Error: Undefined variable: "$bunting". + on line 102 of source/assets/stylesheets/components/edit-link.scss +>> background-color: $bunting; + ------------------------^ + + +Backtrace: +/Users/sylvain.pace/docsearch/docsearch/docs/source/assets/stylesheets/components/edit-link.scss:102 +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/sassc-1.11.4/lib/sassc/engine.rb:47:in `render' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-core-4.2.1/lib/middleman-core/renderers/sass.rb:68:in `evaluate' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/tilt-2.0.8/lib/tilt/template.rb:109:in `render' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-core-4.2.1/lib/middleman-core/file_renderer.rb:79:in `render' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-core-4.2.1/lib/middleman-core/template_renderer.rb:184:in `_render_with_all_renderers' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-core-4.2.1/lib/middleman-core/template_renderer.rb:147:in `block in render' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/notifications.rb:166:in `instrument' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-core-4.2.1/lib/middleman-core/util.rb:21:in `instrument' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-core-4.2.1/lib/middleman-core/template_renderer.rb:146:in `render' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-core-4.2.1/lib/middleman-core/sitemap/resource.rb:154:in `render' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-core-4.2.1/lib/middleman-core/rack.rb:112:in `process_request' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-core-4.2.1/lib/middleman-core/rack.rb:66:in `block in call' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-core-4.2.1/lib/middleman-core/rack.rb:65:in `catch' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-core-4.2.1/lib/middleman-core/rack.rb:65:in `call' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/rack-2.0.3/lib/rack/urlmap.rb:68:in `block in call' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/rack-2.0.3/lib/rack/urlmap.rb:53:in `each' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/rack-2.0.3/lib/rack/urlmap.rb:53:in `call' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-core-4.2.1/lib/middleman-core/extensions/minify_javascript.rb:55:in `call' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-core-4.2.1/lib/middleman-core/extensions/minify_css.rb:63:in `call' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-autoprefixer-2.8.0/lib/middleman-autoprefixer/extension.rb:48:in `call' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/htmlcompressor-0.2.0/lib/htmlcompressor/rack.rb:36:in `call' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/rack-2.0.3/lib/rack/head.rb:12:in `call' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/rack-2.0.3/lib/rack/lint.rb:49:in `_call' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/rack-2.0.3/lib/rack/lint.rb:37:in `call' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/rack-2.0.3/lib/rack/builder.rb:153:in `call' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/rack-2.0.3/lib/rack/mock.rb:74:in `request' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/rack-2.0.3/lib/rack/mock.rb:56:in `get' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-core-4.2.1/lib/middleman-core/builder.rb:232:in `block in output_resource' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/notifications.rb:166:in `instrument' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-core-4.2.1/lib/middleman-core/util.rb:21:in `instrument' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-core-4.2.1/lib/middleman-core/builder.rb:225:in `output_resource' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/parallel-1.12.0/lib/parallel.rb:484:in `call_with_index' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/parallel-1.12.0/lib/parallel.rb:455:in `process_incoming_jobs' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/parallel-1.12.0/lib/parallel.rb:437:in `block in worker' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/parallel-1.12.0/lib/parallel.rb:428:in `fork' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/parallel-1.12.0/lib/parallel.rb:428:in `worker' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/parallel-1.12.0/lib/parallel.rb:419:in `block in create_workers' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/parallel-1.12.0/lib/parallel.rb:418:in `each' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/parallel-1.12.0/lib/parallel.rb:418:in `each_with_index' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/parallel-1.12.0/lib/parallel.rb:418:in `create_workers' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/parallel-1.12.0/lib/parallel.rb:358:in `work_in_processes' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/parallel-1.12.0/lib/parallel.rb:264:in `map' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-core-4.2.1/lib/middleman-core/builder.rb:137:in `output_resources' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-core-4.2.1/lib/middleman-core/builder.rb:131:in `output_files' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-core-4.2.1/lib/middleman-core/builder.rb:71:in `block in run!' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/notifications.rb:166:in `instrument' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-core-4.2.1/lib/middleman-core/util.rb:21:in `instrument' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-core-4.2.1/lib/middleman-core/builder.rb:70:in `run!' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-cli-4.2.1/lib/middleman-cli/build.rb:80:in `block in build' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.6/lib/active_support/notifications.rb:166:in `instrument' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-core-4.2.1/lib/middleman-core/util.rb:21:in `instrument' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-cli-4.2.1/lib/middleman-cli/build.rb:79:in `build' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/thor-0.20.0/lib/thor/command.rb:27:in `run' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/thor-0.20.0/lib/thor/invocation.rb:133:in `block in invoke_all' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/thor-0.20.0/lib/thor/invocation.rb:133:in `each' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/thor-0.20.0/lib/thor/invocation.rb:133:in `map' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/thor-0.20.0/lib/thor/invocation.rb:133:in `invoke_all' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/thor-0.20.0/lib/thor/group.rb:232:in `dispatch' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/thor-0.20.0/lib/thor/invocation.rb:115:in `invoke' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/thor-0.20.0/lib/thor.rb:40:in `block in register' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/thor-0.20.0/lib/thor/command.rb:27:in `run' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/thor-0.20.0/lib/thor/base.rb:466:in `start' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/gems/middleman-cli-4.2.1/bin/middleman:70:in `' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/bin/middleman:23:in `load' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/bin/middleman:23:in `
    ' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:in `eval' +/Users/sylvain.pace/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:in `
    ' +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "SassC::SyntaxError: Error: Undefined variable: \"$bunting\".\A on line 102 of source/assets/stylesheets/components/edit-link.scss\A >> background-color: $bunting;\A ------------------------^\A "; } diff --git a/docs/build/assets/stylesheets/components/snippet b/docs/build/assets/stylesheets/components/snippet new file mode 100644 index 00000000..29a927c6 --- /dev/null +++ b/docs/build/assets/stylesheets/components/snippet @@ -0,0 +1,79 @@ +code { + background-color: rgba(137, 149, 199, 0.2); + border-radius: 4px; + padding: 2px 4px; } + +.table-code-small code { + font-size: smaller; } + +.content-navbar code { + vertical-align: middle; } + +.tab-content > .tab-pane { + display: none; + visibility: hidden; } + +.tab-content > .active { + display: block; + visibility: visible; } + +.highlight + .anchor-container { + margin-top: 42px; } + +.highlight .highlight { + margin-top: 16; + margin-bottom: 16; + box-shadow: 0 25px 45px -18px rgba(62, 57, 107, 0.33); } + +.snippet-wrapper { + position: relative; + margin-top: 30px; } + .snippet-wrapper:not(:last-child) { + margin-bottom: 28px; } + .snippet-wrapper .snippet-header { + position: relative; } + .snippet-wrapper .snippet-header ul { + margin: 1em 0 0; + display: flex; + border-radius: 6px 6px 0 0; + background-color: #3e396b; + list-style: none; + color: #8995c7; + padding: 8px 16px; } + .snippet-wrapper .snippet-header ul li { + margin-left: 8px; } + .snippet-wrapper .snippet-header ul li a { + color: #8995c7; } + .snippet-wrapper .snippet-header ul li a:active, .snippet-wrapper .snippet-header ul li a:hover, .snippet-wrapper .snippet-header ul li a:focus { + text-decoration: none; } + .snippet-wrapper .snippet-header ul li.active a { + color: white; + border-bottom: solid 1px #ffffff; } + .snippet-wrapper pre.highlight { + border-radius: 8px; + margin-top: 0; } + .snippet-wrapper .tab-pane pre { + border-radius: 0 0 8px 8px; } + +pre { + background-image: linear-gradient(275deg, #201c38, #3e396b); + padding: 24px 32px; + border-radius: 8px; + overflow: auto; + border: none; } + pre code { + font-family: Menlo, Courier, sans-serif; + font-size: 14px; + font-weight: 700; + letter-spacing: .008rem; + color: white; + background-color: transparent; + padding: 0; } + +.highlight.php .cp { + display: block; + visibility: hidden; + margin-top: -46px; } + +.highlight:last-child:not(pre) .highlight { + margin-bottom: 16px; } diff --git a/docs/build/assets/stylesheets/main.css b/docs/build/assets/stylesheets/main.css new file mode 100644 index 00000000..8579f7d4 --- /dev/null +++ b/docs/build/assets/stylesheets/main.css @@ -0,0 +1,2 @@ +@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800");@import url("https://fonts.googleapis.com/css?family=Montserrat:300,400,500,700,900");.algc-navigation{top:0;left:0;width:100%;color:#fff;padding:0 1em;z-index:9999;position:fixed;-webkit-perspective:2000px;perspective:2000px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;background:#050f2c;font-size:1em;will-change:transform}@media (max-width: 576px){.algc-navigation{padding:0 .5em}}.algc-navigation .algc-mainmenu{position:relative}.algc-navigation .algc-navigation__container{margin:0 auto;max-width:1160px}.algc-navigation a{text-decoration:none}.algc-navigation__brands{height:56px;margin:0;padding:0;list-style-type:none;float:left;font-weight:300;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;z-index:10;position:relative}.algc-navigation__brands a{text-decoration:none;color:white}.algc-navigation__brands a:hover{color:white}.algc-navigation__brands:hover,.algc-navigation__brands:visited{color:white}.algc-navigation__brands img,.algc-navigation__brands svg{max-width:none;vertical-align:middle}@media (max-width: 768px){.algc-navigation__brands{font-size:.8em}}.algc-navigation__brands .algc-navigation__li{float:left;text-align:center;min-height:33px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}@media (min-width: 768px) and (max-width: 992px){.algc-navigation__brands .algc-navigation__li:nth-child(2){padding-left:0}.algc-navigation__brands .algc-navigation__li:nth-child(2) img,.algc-navigation__brands .algc-navigation__li:nth-child(2) svg{margin-left:0px}.algc-navigation__brands .algc-navigation__li:nth-child(2) .algc-arrowseparator{margin-left:4px}}@media (max-width: 992px){.algc-navigation__brands .algc-navigation__li:nth-child(2) a{padding-left:0}.algc-navigation__brands .algc-navigation__li:nth-child(2) .algc-arrowseparator{display:none}}@media (max-width: 576px){.algc-navigation__brands .algc-navigation__li:nth-child(2){width:30px;overflow:hidden}}.algc-navigation__brands a{position:relative;display:block;padding-right:12px}@media (max-width: 992px){.algc-navigation__brands a{padding:0 1.2em}}@media (max-width: 576px){.algc-navigation__brands a{padding:0 .8em}}.algc-navigation__brands .algc-navigation__li--algolia a{padding-left:0}.algc-navigation__brands .algc-navigation__li--algolia .algolia-logo{width:auto;height:23px}@media (max-width: 992px){.algc-navigation__brands .algc-navigation__li--algolia{display:none}}.algc-navigation__brands .algc-navigation__li--community a{height:33px}.algc-navigation__brands .algc-navigation__li--community .algolia-community-logo{width:auto;height:30px}.algc-navigation__dropdown-holder{position:absolute;top:42px;left:25px;max-width:490px;width:100%;height:800px;-webkit-perspective:500px;perspective:500px;pointer-events:none;font-size:1.2em}@media (max-width: 576px){.algc-navigation__dropdown-holder{left:0;max-width:100%}}.algc-dropdownroot{top:4px;width:100%;position:absolute;opacity:0;-webkit-transform-origin:50% -50px;transform-origin:50% -50px;-webkit-transition-property:opacity, -webkit-transform;transition-property:opacity, -webkit-transform;transition-property:transform, opacity;transition-property:transform, opacity, -webkit-transform;-webkit-transition-duration:.25s;transition-duration:.25s;will-change:transform, opacity;pointer-events:none;z-index:9999;-webkit-transform:rotateX(-15deg) translate(-50%, 0%);transform:rotateX(-15deg) translate(-50%, 0%)}.algc-dropdownroot.notransition .algc-dropdownroot__dropdowncontainer,.algc-dropdownroot.notransition .algc-dropdownroot__dropdownbg,.algc-dropdownroot.notransition .algc-dropdownroot__section,.algc-dropdownroot.notransition .algc-dropdownroot__dropdownarrow{-webkit-transition:none;transition:none}.algc-dropdownroot.activeDropdown{opacity:1;-webkit-transform:translate(-50%, 0);transform:translate(-50%, 0);pointer-events:all}.algc-dropdownroot.activeDropdown .algc-dropdownroot__dropdownbg{opacity:1;-webkit-transform:none;transform:none;-webkit-transform-origin:50% 0;transform-origin:50% 0}.algc-dropdownroot .algc-dropdownroot__dropdownbg{left:0;top:10px;-webkit-box-shadow:0 50px 100px rgba(50,50,93,0.1),0 15px 35px rgba(50,50,93,0.15),0 5px 15px rgba(0,0,0,0.1);box-shadow:0 50px 100px rgba(50,50,93,0.1),0 15px 35px rgba(50,50,93,0.15),0 5px 15px rgba(0,0,0,0.1);border-radius:4px;-webkit-transform-origin:50% 0;transform-origin:50% 0;background-color:#FFF;-webkit-transition-property:opacity, -webkit-transform;transition-property:opacity, -webkit-transform;transition-property:transform, opacity;transition-property:transform, opacity, -webkit-transform;-webkit-transition-duration:.25s;transition-duration:.25s;position:absolute;width:490px;height:360px;will-change:transform, opacity}.algc-dropdownroot .algc-dropdownroot__dropdownarrow{left:50%;top:6px;background-color:#FFF;-webkit-box-shadow:-3px -3px 5px rgba(82,95,127,0.04);box-shadow:-3px -3px 5px rgba(82,95,127,0.04);will-change:transform, opacity;-webkit-transition-property:opacity, -webkit-transform;transition-property:opacity, -webkit-transform;transition-property:transform, opacity;transition-property:transform, opacity, -webkit-transform;-webkit-transition-duration:.25s;transition-duration:.25s;-webkit-transform:rotate(45deg) translate(-50%, 0);transform:rotate(45deg) translate(-50%, 0);position:absolute;width:12px;height:12px;border-radius:2px;pointer-events:none}.algc-dropdownroot .algc-dropdownroot__dropdowncontainer{margin:0 auto;position:relative;overflow:hidden;will-change:transform, width, height;-webkit-transition-property:width, height, -webkit-transform;transition-property:width, height, -webkit-transform;transition-property:transform, width, height;transition-property:transform, width, height, -webkit-transform;-webkit-transition-duration:.25s;transition-duration:.25s}@media (max-width: 576px){.algc-dropdownroot{-webkit-transform:translate(0, 0) rotateX(-15deg);transform:translate(0, 0) rotateX(-15deg)}.algc-dropdownroot.activeDropdown{-webkit-transform:rotateX(0deg) translate(0, 0) !important;transform:rotateX(0deg) translate(0, 0) !important}.algc-dropdownroot .algc-dropdownroot__dropdownbg{width:100%}.algc-dropdownroot .algc-dropdownroot__widelist{width:100%}.algc-dropdownroot .algc-dropdownroot__content{width:100% !important}.algc-dropdownroot .algc-dropdownroot__section{width:100%}.algc-dropdownroot .algc-dropdownroot__dropdowncontainer{width:100% !important;max-width:100%;-webkit-transform:translate(0, 0) !important;transform:translate(0, 0) !important}}.algc-dropdownroot__section{position:absolute;left:0;top:0;opacity:0;will-change:transform, opacity;-webkit-transition-property:opacity, -webkit-transform;transition-property:opacity, -webkit-transform;transition-property:transform, opacity;transition-property:transform, opacity, -webkit-transform;-webkit-transition-duration:.25s;transition-duration:.25s}.algc-dropdownroot__section.active{opacity:1;-webkit-transform:translateX(0);transform:translateX(0);z-index:10}.algc-dropdownroot__section.right{-webkit-transform:translateX(150px);transform:translateX(150px)}.algc-dropdownroot__section.left{-webkit-transform:translateX(-150px);transform:translateX(-150px)}.algc-dropdownroot__section .algc-dropdownroot__content{position:absolute;top:10px;left:0;background:#fff;border-radius:4px;overflow:hidden}.algc-dropdownroot__widelist{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;list-style-type:none;padding:0;width:450px;padding:0.625em 1.25em;margin:0;background-color:#F7F7FF}.algc-dropdownroot__widelist li{-webkit-box-flex:50%;-ms-flex:50%;flex:50%;border-radius:3px;margin:.5em auto}.algc-dropdownroot__widelist li a{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#333333;background-color:#F7F7FF;border-radius:4px;-webkit-transition:background 160ms ease;transition:background 160ms ease}.algc-dropdownroot__widelist li a:hover{color:#1a1a1a;background-color:#EEF0F7}.algc-dropdownroot__widelist li h4{text-align:center;text-align:left;margin:0;font-size:0.75em}.algc-dropdownroot__widelist li .item-icon{width:42px;height:42px;margin:8px;border-radius:4px;text-align:center;position:relative}.algc-dropdownroot__widelist li .item-icon img,.algc-dropdownroot__widelist li .item-icon svg{max-width:60%;-webkit-transition:-webkit-transform 0.2s ease 0.15s;transition:-webkit-transform 0.2s ease 0.15s;transition:transform 0.2s ease 0.15s;transition:transform 0.2s ease 0.15s, -webkit-transform 0.2s ease 0.15s}.algc-dropdownroot__widelist li svg,.algc-dropdownroot__widelist li img{position:absolute;left:50%;top:50%;max-width:32px;width:100%;height:auto;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}.algc-dropdownroot__footer{text-align:center;font-size:0.75em;-webkit-transition:opacity 0.2s ease, -webkit-filter 0.2s ease;transition:opacity 0.2s ease, -webkit-filter 0.2s ease;transition:filter 0.2s ease, opacity 0.2s ease;transition:filter 0.2s ease, opacity 0.2s ease, -webkit-filter 0.2s ease;will-change:filter, opacity}.algc-dropdownroot__footer a{padding:.8em 0;display:block;color:#050f2c;opacity:0.8}.algc-dropdownroot__footer a:hover{opacity:1}.algc-dropdownroot__footer img,.algc-dropdownroot__footer svg{vertical-align:middle}.algc-dropdownroot__links{list-style-type:none;padding:0.625em 1.25em;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;width:290px;margin:0}.algc-dropdownroot__links li{-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:1;-ms-flex:1 0 50%;flex:1 0 50%;padding:0.625em 0.625em}.algc-dropdownroot__links li p{margin:0}.algc-dropdownroot__links li img,.algc-dropdownroot__links li svg{margin-right:5px;height:20px;width:20px}.algc-navigation__menu{float:right;height:56px;line-height:56px;font-weight:300;z-index:50}.algc-navigation__menu .algc-menu__list{list-style-type:none;padding:0;margin:0;width:auto;float:left;position:relative;z-index:10}.algc-navigation__menu .algc-menu__list a{text-decoration:none;color:white}@media (max-width: 768px){.algc-navigation__menu .algc-menu__list{display:none}}.algc-navigation__menu .algc-menu__list__item{position:relative;height:56px;line-height:56px;display:inline-block;float:left}.algc-navigation__menu .algc-menu__list__item img,.algc-navigation__menu .algc-menu__list__item svg{height:1.25em;width:auto}.algc-navigation__menu .algc-menu__list__item a{padding:0 .5em 0 .5em;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%}.algc-navigation__menu .algc-menu__list .algc-glyph{margin-left:1em;font-size:.4em}.algc-navigation__menu .algc-menu__list .algc-menu__list__item.algc-menu--hassublist.open .algc-menu__sublist{opacity:1;-webkit-transform:translate(0, 0);transform:translate(0, 0);pointer-events:auto;-webkit-transition:.25s;transition:.25s}.algc-navigation__menu .algc-menu__sublist{pointer-events:none;padding:0;position:absolute;right:0;top:100%;background-color:white;list-style-type:none;background-color:#FFF;border-radius:3px;-webkit-box-shadow:0 1px 4px 0 rgba(31,59,93,0.5);box-shadow:0 1px 4px 0 rgba(31,59,93,0.5);font-size:14px;opacity:0;-webkit-transition:.14s;transition:.14s;-webkit-transform:translate(0, 6px);transform:translate(0, 6px);will-change:opacity, transform;text-align:left}.algc-navigation__menu .algc-menu__sublist:before{content:"";position:absolute;right:16px;top:-4px;height:12px;width:12px;border-radius:3px;-webkit-transform:rotate(45deg);transform:rotate(45deg);background-color:#FFF}.algc-navigation__menu .algc-menu__sublist li:not(:last-child){border-bottom:solid 1px #eee}.algc-navigation__menu .algc-menu__sublist li a{text-transform:none;margin:0;width:100%;border:none;display:block;padding:1em 2em;clear:both;font-weight:normal;line-height:1.42857;color:#333333;white-space:nowrap;font-size:1em}.algc-navigation__menu .algc-menu__sublist li a:hover{color:#1a1a1a;background-color:#f9f9f9}.algc-mobilemenu{display:block;position:fixed;top:0;right:0;width:100%;max-width:200px;padding:64px 0.75em 0 0.75em;height:100vh;background-color:#050f2c;text-align:right;font-weight:300;-webkit-transform:translate(100%, 0);transform:translate(100%, 0);-webkit-transition:opacity 140ms 100ms ease-out, -webkit-transform 140ms ease-out;transition:opacity 140ms 100ms ease-out, -webkit-transform 140ms ease-out;transition:transform 140ms ease-out, opacity 140ms 100ms ease-out;transition:transform 140ms ease-out, opacity 140ms 100ms ease-out, -webkit-transform 140ms ease-out;opacity:0;will-change:transform}.algc-mobilemenu a{color:white}.algc-mobilemenu:before{width:100%;height:100vh;position:absolute;content:"";left:0;top:0;-webkit-box-shadow:0 0 36px 3px rgba(0,0,0,0.2);box-shadow:0 0 36px 3px rgba(0,0,0,0.2);z-index:-10}.algc-mobilemenu:after{width:100%;height:100%;max-height:40px;bottom:0;left:0;position:fixed;content:"";background-image:-webkit-linear-gradient(bottom, transparent 0%, #050f2c 100%)}.algc-mobilemenu--open{opacity:1;-webkit-transition:360ms cubic-bezier(0.19, 1, 0.22, 1);transition:360ms cubic-bezier(0.19, 1, 0.22, 1);-webkit-transform:translate(0, 0);transform:translate(0, 0)}@media (min-width: 768px){.algc-mobilemenu{display:none}}.algc-mobilemenu .algc-mobilemenulist{list-style-type:none;padding:0 0 40px 0;margin-bottom:0;position:absolute;top:74px;right:0;width:100%;height:100%;overflow:auto}.algc-mobilemenu .algc-mobilemenu__item{line-height:2.6;position:relative}.algc-mobilemenu .algc-mobilemenu__item:after{bottom:0;width:100%;height:1px;position:absolute;content:"";display:block;background:linear-gradient(76deg, rgba(28,199,208,0.01) 0%, rgba(28,199,208,0) 18%, rgba(28,199,208,0.49) 46%, rgba(80,191,221,0.7) 93%, rgba(125,185,232,0) 100%)}.algc-mobilemenu .algc-mobilemenu__item:last-child:after{background-color:trasparent}.algc-mobilemenu a{padding:0 0.625em;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.algc-mobilemenu img,.algc-mobilemenu svg{height:1em;margin-right:.4em}.algc-menu__search{width:auto;padding:0 12px;height:56px;display:inline-block;float:left;font-size:0.75em}.algc-menu__search--holder{position:relative;width:32px;height:56px}.algc-menu__search .algc-search__input button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;position:absolute;z-index:10;top:50%;bottom:0;margin:0;outline:none;display:none;width:1.6em;height:1.6em;-webkit-transition:-webkit-transform 0.28s ease;transition:-webkit-transform 0.28s ease;transition:transform 0.28s ease;transition:transform 0.28s ease, -webkit-transform 0.28s ease;-webkit-transform:translate(0, -50%);transform:translate(0, -50%);cursor:pointer;transform:translate(0, -50%)}.algc-menu__search .algc-search__input button img,.algc-menu__search .algc-search__input button svg{top:0;bottom:0;left:0;right:0;width:100%;height:auto;max-width:16px;max-height:56px;vertical-align:middle;position:absolute;margin:auto;pointer-events:all;-webkit-transition:opacity 0.28s ease 0.15s;transition:opacity 0.28s ease 0.15s}@media (max-width: 576px){.algc-menu__search .algc-search__input button img,.algc-menu__search .algc-search__input button svg{margin-top:2px}}.algc-menu__search .algc-search__input button img use,.algc-menu__search .algc-search__input button svg use{fill:#fff}.algc-menu__search .algc-search__input button#search{z-index:50;display:block}.algc-menu__search .algc-search__input button#cancel{z-index:10;display:block;pointer-events:none;opacity:0;right:-.35em;-webkit-transition:40ms ease;transition:40ms ease;-webkit-transform:translate(0, -40%) scale(0.7);transform:translate(0, -40%) scale(0.7)}.algc-menu__search .algc-search__input button#cancel img,.algc-menu__search .algc-search__input button#cancel svg{width:12px;top:50%;-webkit-transform:translate(0, -50%);transform:translate(0, -50%)}.algc-menu__search .algc-search__input input[type=search]{padding:0;margin:0 0 0 2.4em;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;width:32px;max-height:32px;border:1px solid transparent;position:relative;left:0;z-index:10;cursor:pointer;-webkit-transition:background 0.28s ease, width 0.28s ease, -webkit-transform 0.28s ease;transition:background 0.28s ease, width 0.28s ease, -webkit-transform 0.28s ease;transition:background 0.28s ease, transform 0.28s ease, width 0.28s ease;transition:background 0.28s ease, transform 0.28s ease, width 0.28s ease, -webkit-transform 0.28s ease;padding:8px;outline:none;font-weight:300;border-radius:3px;padding-left:1.8em;color:#fff;line-height:1.3em;padding-right:1.4em}.algc-menu__search--holder.open input[type="search"]{background-color:rgba(255,255,255,0.2);width:300px;-webkit-transform:translate(-300px);transform:translate(-300px);outline:none;cursor:auto}.algc-menu__search--holder.open input[type="search"] #searchbox{background-color:inherit !important}@media (max-width: 1200px){.algc-menu__search--holder.open input[type="search"]{-webkit-transform:translate(-180px);transform:translate(-180px);width:180px}}@media (max-width: 768px) and (orientation: landscape){.algc-menu__search--holder.open input[type="search"]{-webkit-transform:translate(-240px);transform:translate(-240px);width:240px}}@media (max-width: 576px){.algc-menu__search--holder.open input[type="search"]{-webkit-transform:translate(-140px);transform:translate(-140px);width:140px}}@media (max-width: 370px){.algc-menu__search--holder.open input[type="search"]{-webkit-transform:translate(-110px);transform:translate(-110px);width:110px}}.algc-menu__search--holder.open input[type="search"]::-webkit-input-placeholder{color:rgba(255,255,255,0.3)}.algc-menu__search--holder.open input[type="search"]::-moz-placeholder{color:rgba(255,255,255,0.3)}.algc-menu__search--holder.open input[type="search"]:-moz-placeholder{color:rgba(255,255,255,0.3)}.algc-menu__search--holder.open input[type="search"]:-ms-input-placeholder{color:rgba(255,255,255,0.3)}.algc-menu__search--holder.open button#search{-webkit-transform:translate(calc(-300px + 4em), -50%);transform:translate(calc(-300px + 4em), -50%)}@media (max-width: 1180px){.algc-menu__search--holder.open button#search{-webkit-transform:translate(calc(-180px + 4em), -50%);transform:translate(calc(-180px + 4em), -50%)}}@media (max-width: 768px) and (orientation: landscape){.algc-menu__search--holder.open button#search{-webkit-transform:translate(calc(-240px + 4em), -50%);transform:translate(calc(-240px + 4em), -50%)}}@media (max-width: 576px){.algc-menu__search--holder.open button#search{-webkit-transform:translate(calc(-140px + 4em), -50%);transform:translate(calc(-140px + 4em), -50%)}}@media (max-width: 370px){.algc-menu__search--holder.open button#search{-webkit-transform:translate(calc(-110px + 4em), -50%);transform:translate(calc(-110px + 4em), -50%)}}.algc-menu__search--holder.open button#cancel{-webkit-transition:300ms 300ms ease;transition:300ms 300ms ease;pointer-events:auto;opacity:1}.algolia-autocomplete{position:inherit !important;display:initial !important}.algolia-autocomplete input#searchbox,.algolia-autocomplete input[type="search"]{vertical-align:middle !important;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:16px}@media (min-width: 576px){.algolia-autocomplete input#searchbox,.algolia-autocomplete input[type="search"]{margin-top:-2px}}.algolia-autocomplete .ds-dropdown-menu{top:46px !important;left:-438px !important;right:inherit !important;line-height:26px !important;font-size:1.25em}@media (max-width: 576px){.algolia-autocomplete .ds-dropdown-menu{margin-top:0;top:56px !important;left:0 !important;right:0 !important;width:100% !important;position:fixed !important;min-width:0 !important;border-radius:0}.algolia-autocomplete .ds-dropdown-menu:before{display:none}.algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-]{border-radius:0;border-left:0;border-right:0;border-top:0}.algolia-autocomplete .ds-dropdown-menu .algolia-docsearch-suggestion--subcategory-column{white-space:nowrap;text-overflow:ellipsis;padding-right:14px;overflow:hidden}}.algc-openmobile{height:40px;width:40px;vertical-align:middle;position:relative;z-index:10;cursor:pointer;z-index:100;background-color:#050f2c;border:none}.algc-openmobile:focus{outline:none}@media (min-width: 768px){.algc-openmobile{display:none}}.algc-openmobile span{height:2px;width:62%;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);-webkit-transition:140ms ease-out;transition:140ms ease-out;background-color:rgba(255,255,255,0.88);position:absolute}.algc-openmobile span:before,.algc-openmobile span:after{content:"";width:100%;height:2px;background-color:inherit;position:absolute;-webkit-transition:130ms ease-out;transition:130ms ease-out;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}.algc-openmobile span:before{-webkit-transform-origin:left center;transform-origin:left center;margin-top:-4px}.algc-openmobile span:after{-webkit-transform-origin:left center;transform-origin:left center;margin-top:6px}.algc-openmobile--open span{-webkit-transition:130ms ease-out;transition:130ms ease-out;-webkit-transform:translate(-70%, -50%);transform:translate(-70%, -50%)}.algc-openmobile--open span:before,.algc-openmobile--open span:after{-webkit-transition:130ms ease-out;transition:130ms ease-out;-webkit-transform:translate(-20%, -50%);transform:translate(-20%, -50%)}.algc-arrowseparator{height:33px;margin-right:16px}/*! Aerial.css [AIV]v{version} - {date}[/AIV] */*{-webkit-box-sizing:border-box;box-sizing:border-box}/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container:before,.container:after{content:" ";display:table}.container:after{clear:both}@media (min-width: 768px){.container{width:750px}}@media (min-width: 992px){.container{width:970px}}@media (min-width: 1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container-fluid:before,.container-fluid:after{content:" ";display:table}.container-fluid:after{clear:both}.row{margin-left:-15px;margin-right:-15px}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-1{width:8.33333%}.col-xs-2{width:16.66667%}.col-xs-3{width:25%}.col-xs-4{width:33.33333%}.col-xs-5{width:41.66667%}.col-xs-6{width:50%}.col-xs-7{width:58.33333%}.col-xs-8{width:66.66667%}.col-xs-9{width:75%}.col-xs-10{width:83.33333%}.col-xs-11{width:91.66667%}.col-xs-12{width:100%}.col-xs-pull-0{right:auto}.col-xs-pull-1{right:8.33333%}.col-xs-pull-2{right:16.66667%}.col-xs-pull-3{right:25%}.col-xs-pull-4{right:33.33333%}.col-xs-pull-5{right:41.66667%}.col-xs-pull-6{right:50%}.col-xs-pull-7{right:58.33333%}.col-xs-pull-8{right:66.66667%}.col-xs-pull-9{right:75%}.col-xs-pull-10{right:83.33333%}.col-xs-pull-11{right:91.66667%}.col-xs-pull-12{right:100%}.col-xs-push-0{left:auto}.col-xs-push-1{left:8.33333%}.col-xs-push-2{left:16.66667%}.col-xs-push-3{left:25%}.col-xs-push-4{left:33.33333%}.col-xs-push-5{left:41.66667%}.col-xs-push-6{left:50%}.col-xs-push-7{left:58.33333%}.col-xs-push-8{left:66.66667%}.col-xs-push-9{left:75%}.col-xs-push-10{left:83.33333%}.col-xs-push-11{left:91.66667%}.col-xs-push-12{left:100%}.col-xs-offset-0{margin-left:0%}.col-xs-offset-1{margin-left:8.33333%}.col-xs-offset-2{margin-left:16.66667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.33333%}.col-xs-offset-5{margin-left:41.66667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.33333%}.col-xs-offset-8{margin-left:66.66667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.33333%}.col-xs-offset-11{margin-left:91.66667%}.col-xs-offset-12{margin-left:100%}@media (min-width: 768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-1{width:8.33333%}.col-sm-2{width:16.66667%}.col-sm-3{width:25%}.col-sm-4{width:33.33333%}.col-sm-5{width:41.66667%}.col-sm-6{width:50%}.col-sm-7{width:58.33333%}.col-sm-8{width:66.66667%}.col-sm-9{width:75%}.col-sm-10{width:83.33333%}.col-sm-11{width:91.66667%}.col-sm-12{width:100%}.col-sm-pull-0{right:auto}.col-sm-pull-1{right:8.33333%}.col-sm-pull-2{right:16.66667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333%}.col-sm-pull-5{right:41.66667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.33333%}.col-sm-pull-8{right:66.66667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333%}.col-sm-pull-11{right:91.66667%}.col-sm-pull-12{right:100%}.col-sm-push-0{left:auto}.col-sm-push-1{left:8.33333%}.col-sm-push-2{left:16.66667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333%}.col-sm-push-5{left:41.66667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.33333%}.col-sm-push-8{left:66.66667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333%}.col-sm-push-11{left:91.66667%}.col-sm-push-12{left:100%}.col-sm-offset-0{margin-left:0%}.col-sm-offset-1{margin-left:8.33333%}.col-sm-offset-2{margin-left:16.66667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333%}.col-sm-offset-5{margin-left:41.66667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.33333%}.col-sm-offset-8{margin-left:66.66667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333%}.col-sm-offset-11{margin-left:91.66667%}.col-sm-offset-12{margin-left:100%}}@media (min-width: 992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-1{width:8.33333%}.col-md-2{width:16.66667%}.col-md-3{width:25%}.col-md-4{width:33.33333%}.col-md-5{width:41.66667%}.col-md-6{width:50%}.col-md-7{width:58.33333%}.col-md-8{width:66.66667%}.col-md-9{width:75%}.col-md-10{width:83.33333%}.col-md-11{width:91.66667%}.col-md-12{width:100%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.33333%}.col-md-pull-2{right:16.66667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333%}.col-md-pull-5{right:41.66667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.33333%}.col-md-pull-8{right:66.66667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333%}.col-md-pull-11{right:91.66667%}.col-md-pull-12{right:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.33333%}.col-md-push-2{left:16.66667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333%}.col-md-push-5{left:41.66667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.33333%}.col-md-push-8{left:66.66667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333%}.col-md-push-11{left:91.66667%}.col-md-push-12{left:100%}.col-md-offset-0{margin-left:0%}.col-md-offset-1{margin-left:8.33333%}.col-md-offset-2{margin-left:16.66667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333%}.col-md-offset-5{margin-left:41.66667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.33333%}.col-md-offset-8{margin-left:66.66667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333%}.col-md-offset-11{margin-left:91.66667%}.col-md-offset-12{margin-left:100%}}@media (min-width: 1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-1{width:8.33333%}.col-lg-2{width:16.66667%}.col-lg-3{width:25%}.col-lg-4{width:33.33333%}.col-lg-5{width:41.66667%}.col-lg-6{width:50%}.col-lg-7{width:58.33333%}.col-lg-8{width:66.66667%}.col-lg-9{width:75%}.col-lg-10{width:83.33333%}.col-lg-11{width:91.66667%}.col-lg-12{width:100%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.33333%}.col-lg-pull-2{right:16.66667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333%}.col-lg-pull-5{right:41.66667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.33333%}.col-lg-pull-8{right:66.66667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333%}.col-lg-pull-11{right:91.66667%}.col-lg-pull-12{right:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.33333%}.col-lg-push-2{left:16.66667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333%}.col-lg-push-5{left:41.66667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.33333%}.col-lg-push-8{left:66.66667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333%}.col-lg-push-11{left:91.66667%}.col-lg-push-12{left:100%}.col-lg-offset-0{margin-left:0%}.col-lg-offset-1{margin-left:8.33333%}.col-lg-offset-2{margin-left:16.66667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333%}.col-lg-offset-5{margin-left:41.66667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.33333%}.col-lg-offset-8{margin-left:66.66667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333%}.col-lg-offset-11{margin-left:91.66667%}.col-lg-offset-12{margin-left:100%}}@-ms-viewport{width:device-width}.visible-xs{display:none !important}.visible-sm{display:none !important}.visible-md{display:none !important}.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width: 767px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width: 767px){.visible-xs-block{display:block !important}}@media (max-width: 767px){.visible-xs-inline{display:inline !important}}@media (max-width: 767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-block{display:block !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-inline{display:inline !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-block{display:block !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-inline{display:inline !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width: 1200px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width: 1200px){.visible-lg-block{display:block !important}}@media (min-width: 1200px){.visible-lg-inline{display:inline !important}}@media (min-width: 1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width: 767px){.hidden-xs{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}h1,h2,h3,h4{font-family:"Montserrat", Helvetica, Arial, sans-serif}/*! The paragraphs also use Montserrat on the website, except on the documentation and other exceptions */p{font-size:15px;font-family:"Montserrat", Helvetica, Arial, sans-serif}strong{font-family:"Montserrat", Helvetica, Arial, sans-serif}*{-webkit-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:"Montserrat", Helvetica, Arial, sans-serif;font-size:15px;line-height:1.6;color:#3e396b;background-color:white}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#00aeff;text-decoration:none}a:hover,a:focus{color:#007ab3;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}hr{margin-top:24px;margin-bottom:24px;border:0;border-top:1px solid #eeeeee}.btn{display:inline-block;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:0 20px;display:inline-block;border-radius:50px;font-size:16px;font-weight:400;height:40px;line-height:40px;border:none;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;-webkit-transition:background .2s, -webkit-box-shadow .2s;transition:background .2s, -webkit-box-shadow .2s;transition:background .2s, box-shadow .2s;transition:background .2s, box-shadow .2s, -webkit-box-shadow .2s}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn:active:focus,.btn:active.focus,.btn.active:focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#777}.btn:hover,.btn:focus,.btn:active,.btn.active{outline:0 !important;-webkit-box-shadow:none;box-shadow:none;text-decoration:none}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}@media (max-width: 768px){.btn{font-size:14px}}.btn .icon:before{position:relative;top:2px}.btn-static-default{border:2px solid #8994c6;color:#3e396b;background-color:transparent;line-height:36px}.btn-static-default:hover,.btn-static-default:focus{color:#3e396b;background-color:rgba(137,148,198,0.3)}.btn-static-primary{border:none;color:#fff;background-image:linear-gradient(284deg, #1cc7d0, #2dde98)}.btn-static-primary:hover,.btn-static-primary:focus{color:white;background-image:linear-gradient(284deg, #1cc7d0, #2dde98)}.btn-static-primary:active,.btn-static-primary.active{background-image:linear-gradient(284deg, #1ab6be, #21d58e)}.btn-static-primary.btn-shadow{-webkit-box-shadow:0 2px 6px 0 rgba(45,222,152,0.4);box-shadow:0 2px 6px 0 rgba(45,222,152,0.4)}.btn-static-primary.btn-shadow:hover,.btn-static-primary.btn-shadow:focus{-webkit-box-shadow:0 4px 12px rgba(45,222,152,0.4);box-shadow:0 4px 12px rgba(45,222,152,0.4)}.btn-static-secondary{border:none;color:#fff;background-image:linear-gradient(80deg, #00aeff, #3369e7)}.btn-static-secondary:hover,.btn-static-secondary:focus{color:white;background-image:linear-gradient(80deg, #00aeff, #3369e7)}.btn-static-secondary:active,.btn-static-secondary.active{background-image:linear-gradient(80deg, #00a0eb, #215ce5)}.btn-static-secondary.btn-shadow{-webkit-box-shadow:0 2px 6px 0 rgba(51,105,231,0.4);box-shadow:0 2px 6px 0 rgba(51,105,231,0.4)}.btn-static-secondary.btn-shadow:hover,.btn-static-secondary.btn-shadow:focus{-webkit-box-shadow:0 4px 12px rgba(51,105,231,0.4);box-shadow:0 4px 12px rgba(51,105,231,0.4)}.btn-static-tertiary{border:none;color:#fff;background-image:linear-gradient(112deg, #ff4f81, #ff6c5f)}.btn-static-tertiary:hover,.btn-static-tertiary:focus{color:white;background-image:linear-gradient(112deg, #ff4f81, #ff6c5f)}.btn-static-tertiary:active,.btn-static-tertiary.active{background-image:linear-gradient(112deg, #ff3b72, #ff594b)}.btn-static-tertiary.btn-shadow{-webkit-box-shadow:0 2px 6px 0 rgba(255,108,95,0.4);box-shadow:0 2px 6px 0 rgba(255,108,95,0.4)}.btn-static-tertiary.btn-shadow:hover,.btn-static-tertiary.btn-shadow:focus{-webkit-box-shadow:0 4px 12px rgba(255,108,95,0.4);box-shadow:0 4px 12px rgba(255,108,95,0.4)}/*! This button is generated on build and colored with $theme-color. + Think about changing the color of it to fit to your needs.*/.btn-static-theme{border:none;color:#3e396b;background-color:#fecf50}.btn-static-theme:hover,.btn-static-theme:focus{color:#050f2c;background-color:#fec11d}.btn-static-theme:active,.btn-static-theme.active{background-image:#fec11d}.btn-static-theme.btn-shadow{-webkit-box-shadow:0 2px 6px 0 rgba(255,193,104,0.4);box-shadow:0 2px 6px 0 rgba(255,193,104,0.4)}.btn-static-theme.btn-shadow:hover,.btn-static-theme.btn-shadow:focus{-webkit-box-shadow:0 4px 12px rgba(255,193,104,0.4);box-shadow:0 4px 12px rgba(255,193,104,0.4)}.btn-static-theme svg{width:16px;height:16px;vertical-align:middle;margin-left:0.5em}.btn-static-theme svg use{fill:#3e396b}.btn-static-inverse{color:white}.btn-static-inverse:hover,.btn-static-inverse:focus,.btn-static-inverse:active,.btn-static-inverse.active{color:white}.btn-static-dark{color:white;background-color:#050f2c;background-image:linear-gradient(283deg, #050f2c, #3e396b);border-color:#050f2c}.btn-static-dark:hover,.btn-static-dark:focus{color:white;background-color:#3e396b;border-color:#3e396b}.btn-static-dark.btn-shadow{-webkit-box-shadow:0 2px 6px 0 rgba(62,57,107,0.4);box-shadow:0 2px 6px 0 rgba(62,57,107,0.4)}.btn-static-dark.btn-shadow:hover,.btn-static-dark.btn-shadow:focus{-webkit-box-shadow:0 4px 12px rgba(62,57,107,0.4);box-shadow:0 4px 12px rgba(62,57,107,0.4)}.btn-static-dark:active,.btn-static-dark.active{background-image:linear-gradient(283deg, #000, #2b274a)}.btn-static-white{color:#3e396b;background-color:white;border-color:white}.btn-static-white:hover,.btn-static-white:focus{color:#3e396b}.btn-static-enterprise{color:white;background-color:#050f2c;border:solid 2px #2dde98;line-height:36px}.btn-static-enterprise:hover,.btn-static-enterprise:focus{color:white;background-color:#2dde98;border-color:#2dde98}.btn-circle{width:42px;height:42px;padding:0;line-height:42px}.btn-static-shadow-dark{-webkit-box-shadow:0 2px 6px 0 rgba(5,15,44,0.5);box-shadow:0 2px 6px 0 rgba(5,15,44,0.5)}.btn-static-shadow-dark:hover,.btn-static-shadow-dark:focus{-webkit-box-shadow:0 4px 12px rgba(5,15,44,0.5);box-shadow:0 4px 12px rgba(5,15,44,0.5)}.btn-static-default:active,.btn-static-default.active,.btn-static-default.btn-shadow:active,.btn-static-default .btn-shadow.active,.btn-static-default.btn-static-shadow-dark:active,.btn-static-default .btn-static-shadow-dark.active,.btn-static-primary:active,.btn-static-primary.active,.btn-static-primary.btn-shadow:active,.btn-static-primary .btn-shadow.active,.btn-static-primary.btn-static-shadow-dark:active,.btn-static-primary .btn-static-shadow-dark.active,.btn-static-secondary:active,.btn-static-secondary.active,.btn-static-secondary.btn-shadow:active,.btn-static-secondary .btn-shadow.active,.btn-static-secondary.btn-static-shadow-dark:active,.btn-static-secondary .btn-static-shadow-dark.active,.btn-static-tertiary:active,.btn-static-tertiary.active,.btn-static-tertiary.btn-shadow:active,.btn-static-tertiary .btn-shadow.active,.btn-static-tertiary.btn-static-shadow-dark:active,.btn-static-tertiary .btn-static-shadow-dark.active,.btn-static-inverse:active,.btn-static-inverse.active,.btn-static-inverse.btn-shadow:active,.btn-static-inverse .btn-shadow.active,.btn-static-inverse.btn-static-shadow-dark:active,.btn-static-inverse .btn-static-shadow-dark.active,.btn-static-dark:active,.btn-static-dark.active,.btn-static-dark.btn-shadow:active,.btn-static-dark .btn-shadow.active,.btn-static-dark.btn-static-shadow-dark:active,.btn-static-dark .btn-static-shadow-dark.active,.btn-static-enterprise:active,.btn-static-enterprise.active,.btn-static-enterprise.btn-shadow:active,.btn-static-enterprise .btn-shadow.active,.btn-static-enterprise.btn-static-shadow-dark:active,.btn-static-enterprise .btn-static-shadow-dark.active{-webkit-box-shadow:inset 0 0 4px 2px rgba(5,15,44,0.3);box-shadow:inset 0 0 4px 2px rgba(5,15,44,0.3)}.btn-lg{min-width:210px}.al-card{background-color:white;-webkit-box-shadow:0 2px 6px 0 rgba(5,15,44,0.4);box-shadow:0 2px 6px 0 rgba(5,15,44,0.4);padding:40px 24px;position:relative;border-radius:4px}.al-card.small-card .card-title,.al-card.small-card .card-icon,.al-card.small-card .card-text{vertical-align:middle}.al-card.small-card .card-title{color:#3e396b;font-size:16px;font-weight:800;padding:0;margin:0;opacity:0.8;margin-bottom:8px;text-transform:none}.al-card.small-card .card-icon svg{width:72px}.al-card.small-card .card-text{font-size:16px;line-height:24px;color:#3e396b;opacity:0.7}.al-card.cover-card{height:240px;margin:0 auto 24px;width:240px;border-radius:5px;overflow:hidden}.al-card.cover-card .card-background{width:100%;height:100%;position:absolute;-webkit-transition:-webkit-transform 0.3s ease;transition:-webkit-transform 0.3s ease;transition:transform 0.3s ease;transition:transform 0.3s ease, -webkit-transform 0.3s ease;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}.al-card.cover-card .card-background:after{position:absolute;display:block;content:'';width:100%;height:100%;top:0;left:0;background:rgba(5,15,44,0.5);-webkit-transition:opacity 0.3s ease;transition:opacity 0.3s ease}.al-card.cover-card .card-icon{position:absolute;z-index:12;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);-webkit-transition:-webkit-transform 0.3s ease;transition:-webkit-transform 0.3s ease;transition:transform 0.3s ease;transition:transform 0.3s ease, -webkit-transform 0.3s ease}.card-border,.card-border-quote{position:relative}.card-border .card-border-line,.card-border-quote .card-border-line{position:absolute;top:0;left:0;height:5px;width:100%;border-top-left-radius:6px;border-top-right-radius:6px}.card-border{height:100%}.card-border-media{overflow:hidden;min-height:200px}.card-border-media .card-header{width:100%;height:100%;height:228px;overflow:hidden;position:relative}.card-border-media .card-header img{width:100%;height:100%;opacity:0.8;will-change:opacity, mix-blend-mode;border-top-left-radius:6px;border-top-right-radius:6px}@supports (mix-blend-mode: soft-light){.card-border-media .card-header img{mix-blend-mode:soft-light;-webkit-transition:opacity 0.2s ease, mix-blend-mode 0.2s ease;transition:opacity 0.2s ease, mix-blend-mode 0.2s ease}}@supports not (mix-blend-mode: soft-light){.card-border-media .card-header img{opacity:0.6}}@supports not ((-o-object-fit: cover) or (object-fit: cover)){.card-border-media .card-header img{height:auto;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}}@supports ((-o-object-fit: cover) or (object-fit: cover)){.card-border-media .card-header img{-o-object-fit:cover;object-fit:cover;-o-object-position:center center;object-position:center center}}.card-border-media .card-separator{height:5px;width:100%}.card-border-media.card-border-media-effect .card-header img{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.card-border-media.card-border-media-effect:hover .card-header img{-webkit-filter:grayscale(0);filter:grayscale(0)}@supports (mix-blend-mode: soft-light){.card-border-media.card-border-media-effect:hover .card-header img{mix-blend-mode:unset;opacity:1}}.card-border-quote .card-container:before{content:'';display:block;width:14px;height:14px;background:transparent;position:absolute;left:0;right:0;margin:auto;bottom:-10px;border-radius:100px;-webkit-box-shadow:0 4px 20px rgba(62,57,107,0.08),0 2px 9px 0 rgba(62,57,107,0.07),0 4px 18px rgba(62,57,107,0.07);box-shadow:0 4px 20px rgba(62,57,107,0.08),0 2px 9px 0 rgba(62,57,107,0.07),0 4px 18px rgba(62,57,107,0.07);z-index:-1}.card-border-quote .card-container:after{content:'';display:block;width:18px;height:18px;background:#fff;position:absolute;left:0;right:0;margin:auto;bottom:-9px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.card-border-quote .avatar{position:relative;width:42px;height:42px;border-radius:100px;float:left;margin-right:8px}.card-border-quote .author-infos{width:calc(100% - 42px - 8px);float:left}code,kbd,pre,samp{font-family:Menlo, Monaco, Consolas, "Courier New", monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:3px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:11.5px;margin:0 0 12px;font-size:14px;line-height:1.6;word-break:break-all;word-wrap:break-word;color:#C2CCCC;background-color:#3e396b;border:1px solid #ccc;border-radius:3px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Montserrat", Helvetica, Arial, sans-serif;font-weight:300;line-height:1.1;color:inherit}h1 small,h1 .small,h2 small,h2 .small,h3 small,h3 .small,h4 small,h4 .small,h5 small,h5 .small,h6 small,h6 .small,.h1 small,.h1 .small,.h2 small,.h2 .small,.h3 small,.h3 .small,.h4 small,.h4 .small,.h5 small,.h5 .small,.h6 small,.h6 .small{font-weight:normal;line-height:1;color:#6775b5}h1,.h1,h2,.h2,h3,.h3{margin-top:24px;margin-bottom:12px}h1 small,h1 .small,.h1 small,.h1 .small,h2 small,h2 .small,.h2 small,.h2 .small,h3 small,h3 .small,.h3 small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:12px;margin-bottom:12px}h4 small,h4 .small,.h4 small,.h4 .small,h5 small,h5 .small,.h5 small,.h5 .small,h6 small,h6 .small,.h6 small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:18px}h4,.h4{font-size:12px}h5,.h5{font-size:1em}h6,.h6{font-size:1em}p{margin:0 0 10px}small,.small{font-size:86%}mark,.mark{background-color:#fcf8e3;padding:.2em}ul,ol{margin-top:0;margin-bottom:12px}ul ul,ul ol,ol ul,ol ol{margin-bottom:0}dl{margin-top:0;margin-bottom:24px}dt,dd{line-height:1.6}dt{font-weight:bold}dd{margin-left:0}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777777}blockquote{padding:12px 24px;margin:0 0 24px;font-size:18.75px;border-left:5px solid #eeeeee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.6;color:#777777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}address{margin-bottom:24px;font-style:normal;line-height:1.6}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#8994c6;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:24px}.table>thead>tr>th,.table>thead>tr>td,.table>tbody>tr>th,.table>tbody>tr>td,.table>tfoot>tr>th,.table>tfoot>tr>td{padding:8px;line-height:1.6;vertical-align:top;border-top:1px solid #f8faff}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #f8faff}.table>caption+thead>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>th,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #f8faff}.table .table{background-color:white}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:24px;font-size:22.5px;line-height:inherit;color:#333333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:15px;line-height:1.6;color:#555555}.form-control{display:block;width:100%;height:38px;padding:6px 12px;font-size:15px;line-height:1.6;color:#555555;background-color:#fff;background-image:none;border:1px solid #a2a2a2;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;-webkit-transition:border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s;transition:border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s;transition:border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;transition:border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eeeeee;opacity:1}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio: 0){input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{line-height:38px}input[type="date"].input-sm,.input-group-sm>input[type="date"].form-control,.input-group-sm>input[type="date"].input-group-addon,.input-group-sm>.input-group-btn>input[type="date"].btn,input[type="time"].input-sm,.input-group-sm>input[type="time"].form-control,.input-group-sm>input[type="time"].input-group-addon,.input-group-sm>.input-group-btn>input[type="time"].btn,input[type="datetime-local"].input-sm,.input-group-sm>input[type="datetime-local"].form-control,.input-group-sm>input[type="datetime-local"].input-group-addon,.input-group-sm>.input-group-btn>input[type="datetime-local"].btn,input[type="month"].input-sm,.input-group-sm>input[type="month"].form-control,.input-group-sm>input[type="month"].input-group-addon,.input-group-sm>.input-group-btn>input[type="month"].btn{line-height:31px}input[type="date"].input-lg,.input-group-lg>input[type="date"].form-control,.input-group-lg>input[type="date"].input-group-addon,.input-group-lg>.input-group-btn>input[type="date"].btn,input[type="time"].input-lg,.input-group-lg>input[type="time"].form-control,.input-group-lg>input[type="time"].input-group-addon,.input-group-lg>.input-group-btn>input[type="time"].btn,input[type="datetime-local"].input-lg,.input-group-lg>input[type="datetime-local"].form-control,.input-group-lg>input[type="datetime-local"].input-group-addon,.input-group-lg>.input-group-btn>input[type="datetime-local"].btn,input[type="month"].input-lg,.input-group-lg>input[type="month"].form-control,.input-group-lg>input[type="month"].input-group-addon,.input-group-lg>.input-group-btn>input[type="month"].btn{line-height:48px}}.form-group{margin-bottom:15px}.input-group .form-control{height:40px;border-radius:20px}.input-group{display:table}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap}.input-group-addon{padding:6px 12px;font-size:15px;font-weight:normal;line-height:1;color:#555555;text-align:center;background-color:white;border:1px solid #a2a2a2;border-radius:3px}.input-group-addon.input-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:5px 10px;font-size:13px;border-radius:3px}.input-group-addon.input-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:10px 16px;font-size:19px;border-radius:3px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap;display:block}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.alert{border-radius:6px;padding:16px 24px}.alert.alert-danger{background-color:rgba(255,79,129,0.1);border:solid 1px rgba(255,79,129,0.2);color:#ff4f81 !important}.alert.alert-danger p{color:#ff4f81 !important}.alert.alert-info{background-color:rgba(0,174,255,0.1);border:solid 1px rgba(0,174,255,0.2);color:#00aeff !important}.alert.alert-info a{color:#007ab3 !important;text-decoration:underline}.alert.alert-warning{background-color:rgba(255,193,104,0.25);border:solid 1px rgba(255,193,104,0.4);color:#c57c14 !important}.alert.alert-success{background-color:rgba(45,222,152,0.1);border:solid 1px rgba(45,222,152,0.4);color:#2dde98 !important}.color-white{color:white !important}.color-titan{color:#f8faff !important}.color-primary{color:#00aeff !important}.color-secondary{color:#FA3870 !important}.color-purple-heart{color:#8e43e7 !important}.color-mulberry{color:#b84592 !important}.color-radical-red{color:#ff4f81 !important}.color-bittersweet{color:#ff6c5f !important}.color-koromiko{color:#ffc168 !important}.color-shamrock{color:#2dde98 !important}.color-java{color:#1cc7d0 !important}.color-algolia-blue{color:#00aeff !important}.color-royal-blue{color:#3369e7 !important}.color-bunting{color:#3e396b !important}.color-deep-cove{color:#050f2c !important}.color-port-gore{color:#3a4570 !important}.color-east-bay{color:#495588 !important}.color-portage{color:#8994c6 !important}.color-blue-bell{color:#a6b0d8 !important}.color-ghost{color:#c4c8d8 !important}.color-athens-gray{color:#eef0f7 !important}.color-logan{color:#9d9dbd !important}.color-current{color:currentColor !important}.fill-dark{background-color:#3e396b !important}.fill-white{background-color:white !important}.fill-titan{background-color:#f8faff !important}.fill-purple-heart{background-color:#8e43e7 !important}.fill-mulberry{background-color:#b84592 !important}.fill-radical-red{background-color:#ff4f81 !important}.fill-bittersweet{background-color:#ff6c5f !important}.fill-koromiko{background-color:#ffc168 !important}.fill-shamrock{background-color:#2dde98 !important}.fill-java{background-color:#1cc7d0 !important}.fill-algolia-blue{background-color:#00aeff !important}.fill-royal-blue{background-color:#3369e7 !important}.fill-deep-cove{background-color:#050f2c !important}.fill-bunting{background-color:#3e396b !important}.fill-port-gore{background-color:#3a4570 !important}.fill-east-bay{background-color:#495588 !important}.fill-portage{background-color:#8994c6 !important}.fill-blue-bell{background-color:#a6b0d8 !important}.fill-ghost{background-color:#c4c8d8 !important}.fill-athens-gray{background-color:#eef0f7 !important}.fill-logan{background-color:#9d9dbd !important}.gradient-primary,.gradient-green{background-image:linear-gradient(320deg, #2dde98, #25d3b4) !important}.gradient-secondary,.gradient-blue{background-image:linear-gradient(256deg, #00aeff, #3369e7) !important}.gradient-tertiary,.gradient-pink{background-image:linear-gradient(256deg, #ff6c5f, #ff4f81) !important}.gradient-orange{background-image:linear-gradient(256deg, #ffc168, #ff6c5f)}.gradient-purple{background-image:linear-gradient(269deg, #8e43e6, #b84592)}.gradient-light-blue{background-image:linear-gradient(269deg, #00aeff, #1cc7d0)}.gradient-blue-purple{background-image:linear-gradient(103deg, #3369e7, #8e43e7)}.gradient-dark{background-image:linear-gradient(283deg, #050f2c, #3e396b)}.gradient-white{background-image:-webkit-gradient(linear, left bottom, left top, from(#f8faff), to(#fff));background-image:linear-gradient(0deg, #f8faff, #fff)}.spacer8{width:100%;font-size:0;margin:0;padding:0;border:0;display:block;height:8px}.spacer16{width:100%;font-size:0;margin:0;padding:0;border:0;display:block;height:16px}.spacer24{width:100%;font-size:0;margin:0;padding:0;border:0;display:block;height:24px}.spacer32{width:100%;font-size:0;margin:0;padding:0;border:0;display:block;height:32px}.spacer40{width:100%;font-size:0;margin:0;padding:0;border:0;display:block;height:40px}.spacer48{width:100%;font-size:0;margin:0;padding:0;border:0;display:block;height:48px}.spacer56{width:100%;font-size:0;margin:0;padding:0;border:0;display:block;height:56px}.spacer64{width:100%;font-size:0;margin:0;padding:0;border:0;display:block;height:64px}.spacer80{width:100%;font-size:0;margin:0;padding:0;border:0;display:block;height:80px}.spacer120{width:100%;font-size:0;margin:0;padding:0;border:0;display:block;height:120px}.w100{width:100px}.w150{width:150px}.w200{width:200px}.w100p{width:100%}.m100{max-width:100px}.m200{max-width:200px}.m300{max-width:300px}.m400{max-width:400px}.m500{max-width:500px}.m600{max-width:600px}.m700{max-width:700px}.m800{max-width:800px}.m900{max-width:900px}.m1000{max-width:1000px}.m1200{max-width:1200px}.m100p{max-width:100%}.h80{height:80px}.h100{height:100px}.h200{height:200px}.h300{height:300px}.h400{height:400px}.h500{height:500px}.h600{height:600px}.h700{height:700px}.h800{height:800px}.hfull{height:100%}.pos-rel{position:relative}.pos-stc{position:static}.pos-abt{position:absolute}.pos-fix{position:fixed}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}.z-4{z-index:4}.z-5{z-index:5}.z-10{z-index:10}.z-20{z-index:20}.z-100{z-index:100}.text-heading{font-size:56px}.text-xxl{font-size:40px}.text-xl{font-size:32px}.text-lg{font-size:24px}.text-bg{font-size:20px}.text-regular{font-size:15px}.text-sm{font-size:12px}.text-xsm{font-size:10px}.text-xs{font-size:8px}.text-thin{font-weight:300}.text-normal{font-weight:400}.text-demi{font-weight:500}p.text-demi{font-weight:600}.text-bold{font-weight:700}.text-bolder{font-weight:900}p.text-bolder{font-weight:800}.b-t{border-top:1px solid #f8faff}.b-r{border-right:1px solid #f8faff}.b-b{border-bottom:1px solid #f8faff}.b-l{border-left:1px solid #f8faff}.b-n{border:none !important}.radius6{border-radius:6px}.radius100p{border-radius:100%}.padder{padding:0 15px}.p-mini{padding:5px}.p-small{padding:10px}.p-large{padding:20px}.p-xlarge{padding:30px}.p-t-mini{padding-top:5px}.p-t-small{padding-top:10px}.p-t-large{padding-top:20px}.p-t-xlarge{padding-top:30px}.p-b-mini{padding-bottom:5px}.p-b-small{padding-bottom:10px}.p-b-large{padding-bottom:20px}.p-b-xlarge{padding-bottom:30px}.p-l-small{padding-left:10px}.p-l-large{padding-left:20px}.p-l-xlarge{padding-left:30px}.p-r-small{padding-right:10px}.p-r-large{padding-right:20px}.p-r-xlarge{padding-right:30px}.p-l-xxlarge{padding-left:60px}.p-r-xxlarge{padding-right:60px}.no-padding{padding:0 !important}.no-p-l{padding-left:0}.no-p-r{padding-right:0}.no-p-t{padding-top:0 !important}.no-p-b{padding-bottom:0}.m-l-r-auto{margin-left:auto;margin-right:auto}.m-l{margin-left:15px}.m-l-none{margin-left:0}.m-l-mini{margin-left:5px}.m-l-small{margin-left:10px}.m-l-large{margin-left:20px}.m-l-n{margin-left:-15px}.m-l-n-mini{margin-left:-5px}.m-l-n-small{margin-left:-10px}.m-l-n-large{margin-left:-20px}.m-t{margin-top:15px}.m-t-none{margin-top:0}.m-t-mini{margin-top:5px}.m-t-small{margin-top:10px}.m-t-large{margin-top:20px}.m-t-n{margin-top:-15px}.m-t-n-xmini{margin-top:-1px}.m-t-n-mini{margin-top:-5px}.m-t-n-small{margin-top:-10px}.m-t-n-large{margin-top:-20px}.m-r{margin-right:15px}.m-r-none{margin-right:0}.m-r-mini{margin-right:5px}.m-r-small{margin-right:10px}.m-r-large{margin-right:20px}.m-r-n{margin-right:-15px}.m-r-n-mini{margin-right:-5px}.m-r-n-small{margin-right:-10px}.m-r-n-large{margin-right:-20px}.m-b{margin-bottom:15px}.m-b-none{margin-bottom:0}.m-b-mini{margin-bottom:5px}.m-b-small{margin-bottom:10px}.m-b-large{margin-bottom:20px}.m-b-xlarge{margin-bottom:30px}.m-b-n{margin-bottom:-15px}.m-b-n-mini{margin-bottom:-5px}.m-b-n-small{margin-bottom:-10px}.m-b-n-large{margin-bottom:-20px}.no-margin{margin:0 !important}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#8994c6}.vertical-align-middle{display:inline-block !important;vertical-align:middle !important}.vertical-align-bottom{display:inline-block !important;vertical-align:bottom !important}.text-ellipsis{white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:ellipsis}.text-break-word{word-wrap:break-word}.nowrap{word-wrap:nowrap;white-space:nowrap}.lower-case{text-transform:lowercase}.upper-case{text-transform:uppercase}.capital-case{text-transform:capitalize}.hidden-text{text-indent:-9999px;color:transparent}.line-h-regular{line-height:1.5}.line-h-small{line-height:1.2}.line{width:100%;height:1px;margin:10px 0;font-size:0;overflow:hidden;border-width:0;background-color:#f8faff}.line-dashed{border-style:dashed;background:transparent}.headline{border-bottom:5px solid black;margin-top:0;line-height:45px}.no-line{border-width:0}.no-border{border-color:transparent !important}.no-radius{border-radius:0}.block{display:block}.inline{display:inline-block}.pull-left{float:left}.pull-right{float:right}.pull-none{float:none}.pull-in{margin-right:-15px;margin-left:-15px}.line-v{border-left:1px solid #dddddd;padding-left:20px}.line-v-right{border-right:1px solid #dddddd;padding-right:20px}.flex-container{display:-webkit-box;display:-ms-flexbox;display:flex}.flex-dir-col{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column wrap;flex-flow:column wrap}.flex-dir-col-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-flow:column-reverse wrap;flex-flow:column-reverse wrap}.flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-flow:row-reverse wrap;flex-flow:row-reverse wrap}.flex-space-around{-ms-flex-pack:distribute;justify-content:space-around}.flex-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.flex-align-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.flex-it-4{-webkit-box-flex:0;-ms-flex:0 1 25%;flex:0 1 25%}_:-ms-input-placeholder,:root .flex-it-4{-ms-flex-preferred-size:21% !important}.flex-it-3{-webkit-box-flex:0;-ms-flex:0 1 33.33%;flex:0 1 33.33%}_:-ms-input-placeholder,:root .flex-it-3{-ms-flex-preferred-size:29% !important}.flex-it-2{-webkit-box-flex:0;-ms-flex:0 1 50%;flex:0 1 50%}_:-ms-input-placeholder,:root .flex-it-2{-ms-flex-preferred-size:48% !important}@supports not (mix-blend-mode: luminosity){_:-ms-input-placeholder,:root .flex-it-2{-ms-flex:0 1 49.95%;flex:0 1 49.95%}}.flex-it-1{-webkit-box-flex:0;-ms-flex:0 1 100%;flex:0 1 100%}@media (min-width: 1200px){.flex-it-1-lg{-webkit-box-flex:0;-ms-flex:0 1 100%;flex:0 1 100%}.flex-it-2-lg{-webkit-box-flex:0;-ms-flex:0 1 50%;flex:0 1 50%}_:-ms-input-placeholder,:root .flex-it-2-lg{-ms-flex-preferred-size:48% !important}@supports not (mix-blend-mode: luminosity){_:-ms-input-placeholder,:root .flex-it-2-lg{-ms-flex:0 1 49.95%;flex:0 1 49.95%}}.flex-it-3-lg{-webkit-box-flex:0;-ms-flex:0 1 33.33%;flex:0 1 33.33%}_:-ms-input-placeholder,:root .flex-it-3-lg{-ms-flex-preferred-size:29% !important}.flex-it-4-lg{-webkit-box-flex:0;-ms-flex:0 1 25%;flex:0 1 25%}_:-ms-input-placeholder,:root .flex-it-4-lg{-ms-flex-preferred-size:21% !important}}@media (max-width: 768px){.flex-it-1-sm{-webkit-box-flex:0;-ms-flex:0 1 100%;flex:0 1 100%}.flex-it-2-sm{-webkit-box-flex:0;-ms-flex:0 1 50%;flex:0 1 50%}_:-ms-input-placeholder,:root .flex-it-2-sm{-ms-flex-preferred-size:48% !important}@supports not (mix-blend-mode: luminosity){_:-ms-input-placeholder,:root .flex-it-2-sm{-ms-flex:0 1 49.95%;flex:0 1 49.95%}}.flex-it-3-sm{-webkit-box-flex:0;-ms-flex:0 1 33.33%;flex:0 1 33.33%}_:-ms-input-placeholder,:root .flex-it-3-sm{-ms-flex-preferred-size:29% !important}.flex-it-4-sm{-webkit-box-flex:0;-ms-flex:0 1 25%;flex:0 1 25%}_:-ms-input-placeholder,:root .flex-it-4-sm{-ms-flex-preferred-size:21% !important}}.unscroll{overflow:hidden !important}.clickable{cursor:pointer}.rotate-45{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.content-box{-webkit-box-sizing:content-box;box-sizing:content-box}.faded{opacity:.3}.op0{opacity:0}.line-through{text-decoration:line-through}.no-decoration{text-decoration:none}.v-center{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.h-center{position:absolute;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.vh-center{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}@media (max-width: 768px){.hidden-sm{display:none !important}}@media (max-width: 768px){.visible-sm{display:block !important}}.hidden{display:none !important;visibility:hidden !important}sub,sup{font-size:50%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.7em}sub{bottom:-0.25em}[ng\:cloak],[ng-cloak],.ng-cloak{display:none !important}.list-none{list-style:none}.cf:before,.cf:after{content:" ";display:table}.cf:after{clear:both}.cf{*zoom:1}.elevation0{-webkit-box-shadow:0 5px 15px 0 rgba(112,128,175,0.2);box-shadow:0 5px 15px 0 rgba(112,128,175,0.2)}.elevation1{-webkit-box-shadow:0 10px 40px 0 rgba(62,57,107,0.07),0 2px 9px 0 rgba(62,57,107,0.06);box-shadow:0 10px 40px 0 rgba(62,57,107,0.07),0 2px 9px 0 rgba(62,57,107,0.06)}.elevation2{-webkit-box-shadow:0 16px 32px 0 rgba(62,57,107,0.2);box-shadow:0 16px 32px 0 rgba(62,57,107,0.2)}.apn{-webkit-appearance:none;-moz-appearance:none;appearance:none}.otn{outline:none}.gradient-text{-webkit-background-clip:text;-webkit-text-fill-color:transparent}@font-face{font-family:'algolia-website-iconfont';src:url("../fonts/algolia-website-iconfont.eot?t6m9v3");src:url("../fonts/algolia-website-iconfont.eot?t6m9v3#iefix") format("embedded-opentype"),url("../fonts/algolia-website-iconfont.ttf?t6m9v3") format("truetype"),url("../fonts/algolia-website-iconfont.woff?t6m9v3") format("woff"),url("../fonts/algolia-website-iconfont.svg?t6m9v3#algolia-website-iconfont") format("svg");font-weight:normal;font-style:normal}[class^="icon-"],[class*=" icon-"]{font-family:'algolia-website-iconfont' !important;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-arrow-left:before{content:"\e906"}.icon-arrow-right:before{content:"\e907"}.icon-quote:before{content:"\e948"}.icon-play:before{content:"\e947"}.icon-blog:before{content:"\e900"}.icon-stories:before{content:"\e901"}.icon-add:before{content:"\e902"}.icon-algolia-mark:before{content:"\e903"}.icon-analytics:before{content:"\e904"}.icon-android:before{content:"\e905"}.icon-calendar:before{content:"\e908"}.icon-caret-down:before{content:"\e909"}.icon-caret-left:before{content:"\e90a"}.icon-caret-right:before{content:"\e90b"}.icon-caret-top:before{content:"\e90c"}.icon-cart:before{content:"\e90d"}.icon-check-circle:before{content:"\e90e"}.icon-check:before{content:"\e90f"}.icon-clear:before{content:"\e910"}.icon-clock:before{content:"\e911"}.icon-close:before{content:"\e912"}.icon-code:before{content:"\e913"}.icon-comment:before{content:"\e914"}.icon-copy:before{content:"\e915"}.icon-docs:before{content:"\e916"}.icon-download:before{content:"\e917"}.icon-dribbble:before{content:"\e918"}.icon-email:before{content:"\e919"}.icon-facebook:before{content:"\e91a"}.icon-facet:before{content:"\e91b"}.icon-fav:before{content:"\e91c"}.icon-file:before{content:"\e91d"}.icon-filters:before{content:"\e91e"}.icon-geo-unknow:before{content:"\e91f"}.icon-geoloc:before{content:"\e920"}.icon-github:before{content:"\e921"}.icon-heart:before{content:"\e922"}.icon-heroku:before{content:"\e923"}.icon-highlight:before{content:"\e924"}.icon-home:before{content:"\e925"}.icon-hot:before{content:"\e926"}.icon-index:before{content:"\e927"}.icon-infinite:before{content:"\e928"}.icon-medium:before{content:"\e929"}.icon-ios:before{content:"\e92a"}.icon-jsfiddle:before{content:"\e92b"}.icon-link:before{content:"\e92c"}.icon-linkedin:before{content:"\e92d"}.icon-lock:before{content:"\e92e"}.icon-logout:before{content:"\e92f"}.icon-magento:before{content:"\e930"}.icon-instagram:before{content:"\e931"}.icon-menu:before{content:"\e932"}.icon-more:before{content:"\e933"}.icon-move:before{content:"\e934"}.icon-offline:before{content:"\e935"}.icon-opensource:before{content:"\e936"}.icon-pdf:before{content:"\e937"}.icon-quotes:before{content:"\e938"}.icon-ranking:before{content:"\e939"}.icon-refresh:before{content:"\e93a"}.icon-scissors:before{content:"\e93b"}.icon-search:before{content:"\e93c"}.icon-select:before{content:"\e93d"}.icon-support:before{content:"\e93e"}.icon-sync:before{content:"\e93f"}.icon-transition:before{content:"\e940"}.icon-twitter:before{content:"\e941"}.icon-typo:before{content:"\e942"}.icon-wordpress:before{content:"\e943"}.icon-youtube:before{content:"\e944"}.icon-zap:before{content:"\e945"}.icon-zendesk:before{content:"\e946"}.highlight .hll{background-color:#49483e}.highlight{color:#f8f8f2}.highlight .c{color:#75715e}.highlight .err{color:#960050;background-color:#1e0010}.highlight .k{color:#66d9ef}.highlight .l{color:#ae81ff}.highlight .n{color:#f8f8f2}.highlight .o{color:#f92672}.highlight .p{color:#f8f8f2}.highlight .cm{color:#75715e}.highlight .cp{color:#75715e}.highlight .c1{color:#75715e}.highlight .cs{color:#75715e}.highlight .ge{font-style:italic}.highlight .gs{font-weight:bold}.highlight .kc{color:#66d9ef}.highlight .kd{color:#66d9ef}.highlight .kn{color:#f92672}.highlight .kp{color:#66d9ef}.highlight .kr{color:#66d9ef}.highlight .kt{color:#66d9ef}.highlight .ld{color:#e6db74}.highlight .m{color:#ae81ff}.highlight .s{color:#e6db74}.highlight .na{color:#a6e22e}.highlight .nb{color:#f8f8f2}.highlight .nc{color:#a6e22e}.highlight .no{color:#66d9ef}.highlight .nd{color:#a6e22e}.highlight .ni{color:#f8f8f2}.highlight .ne{color:#a6e22e}.highlight .nf{color:#a6e22e}.highlight .nl{color:#f8f8f2}.highlight .nn{color:#f8f8f2}.highlight .nx{color:#a6e22e}.highlight .py{color:#f8f8f2}.highlight .nt{color:#f92672}.highlight .nv{color:#f8f8f2}.highlight .ow{color:#f92672}.highlight .w{color:#f8f8f2}.highlight .mf{color:#ae81ff}.highlight .mh{color:#ae81ff}.highlight .mi{color:#ae81ff}.highlight .mo{color:#ae81ff}.highlight .sb{color:#e6db74}.highlight .sc{color:#e6db74}.highlight .sd{color:#e6db74}.highlight .s2{color:#e6db74}.highlight .se{color:#ae81ff}.highlight .sh{color:#e6db74}.highlight .si{color:#e6db74}.highlight .sx{color:#e6db74}.highlight .sr{color:#e6db74}.highlight .s1{color:#e6db74}.highlight .ss{color:#e6db74}.highlight .bp{color:#f8f8f2}.highlight .vc{color:#f8f8f2}.highlight .vg{color:#f8f8f2}.highlight .vi{color:#f8f8f2}.highlight .il{color:#ae81ff}*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jumbotron .col-md-7 .demo-screen{position:absolute;right:1em}.jumbotron .col-md-7 #demo-screens{opacity:0;-webkit-transform:translateY(100px);transform:translateY(100px);-webkit-transition:opacity 0.3s ease, -webkit-transform 0.3s ease;transition:opacity 0.3s ease, -webkit-transform 0.3s ease;transition:opacity 0.3s ease, transform 0.3s ease;transition:opacity 0.3s ease, transform 0.3s ease, -webkit-transform 0.3s ease;will-change:opacity, transform}body.ready .col-md-7 #demo-screens{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}@media (max-width: 992px){.col-md-7{height:500px}.jumbotron .col-md-7 .demo-screen{position:relative;right:0}.col-md-5{margin-bottom:120px}.col-md-12 header img{max-width:100%}}@media (max-width: 992px){.jumbotron.h800{height:auto}.col-md-7{height:auto}}.join-form{max-width:440px}@media (max-width: 992px){.join-form{max-width:100%}}@media (max-width: 768px){.join-form{top:120px}}.join-form .input-group-addon{vertical-align:middle}.input-group .form-control{border-radius:3px}#section_why:before,#section_why:after{content:'';display:block;position:absolute;width:100%;height:300px;background:#fff;-webkit-transform:skewY(-3deg);transform:skewY(-3deg);z-index:0;top:-100px}#section_why:after{top:inherit;bottom:-100px}@media (max-width: 992px){#section_why{text-align:center}}#section_examples h3{opacity:0.75}.showcase .logo{max-height:40px}.showcase .screen-wrapper{height:180px}.showcase img{height:auto}.showcase .screen-wrapper:hover .screen-mask{display:none}.showcase .screen-mask{top:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center}.showcase .col-md-4,.showcase .col-md-8{height:60px;line-height:40px}.showcase p{white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:ellipsis}.showcase.you .placeholder-screen{width:100%;height:100%;border:dotted 2px #a0b4d1}@media (max-width: 768px){.showcase .h300{height:auto}.showcase .col-md-8{height:auto}.showcase .col-sm-12{display:block !important;text-align:center}.showcase .col-sm-12 .logo{margin-top:1em}}#section_how:before,#section_how:after{content:'';display:block;position:absolute;width:100%;height:300px;background:#fff;-webkit-transform:skewY(-3deg);transform:skewY(-3deg);z-index:1;top:-100px}#section_how:after{top:inherit;bottom:-100px}.how-it-works-number{display:block;height:32px;width:30px;float:left;font-size:50px;line-height:0.8;font-weight:400}#section_get-started header p{opacity:0.75}#section_get-started .join-form{color:#fff !important;background-image:linear-gradient(283deg, #050f2c, #3e396b)}#section_get-started .join-form h3,#section_get-started .join-form label{color:#fff !important}#section_get-started .join-form p{color:rgba(255,255,255,0.75) !important}#section_get-started .join-form .btn{background-image:linear-gradient(256deg, #ff6c5f, #ff4f81) !important}@media (max-width: 992px){p{padding:0 1em}}.sbx-custom{display:inline-block;position:relative;height:36px;white-space:nowrap;-webkit-box-sizing:border-box;box-sizing:border-box}.sbx-custom__input{display:inline-block;-webkit-transition:background .4s ease, -webkit-box-shadow .4s ease;transition:background .4s ease, -webkit-box-shadow .4s ease;transition:box-shadow .4s ease, background .4s ease;transition:box-shadow .4s ease, background .4s ease, -webkit-box-shadow .4s ease;border:0;border-radius:18px;-webkit-box-shadow:inset 0 0 0 2px #17749a;box-shadow:inset 0 0 0 2px #17749a;background:#091724;padding:0;height:100%;width:36px;vertical-align:middle;white-space:normal;font-size:13px;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:"Open Sans";opacity:.5;color:transparent}.sbx-custom__input::-webkit-input-placeholder{color:transparent}.sbx-custom__input:-ms-input-placeholder{color:transparent}.sbx-custom__input::-ms-input-placeholder{color:transparent}.sbx-custom__input::placeholder{color:transparent}.sbx-custom__input::-webkit-search-decoration,.sbx-custom__input::-webkit-search-cancel-button,.sbx-custom__input::-webkit-search-results-button,.sbx-custom__input::-webkit-search-results-decoration{display:none}.sbx-custom__input:hover{-webkit-box-shadow:inset 0 0 0 2px #10536e;box-shadow:inset 0 0 0 2px #10536e}.sbx-custom__input:focus,.sbx-custom__input:active,.sbx-custom__input.filled{outline:0;padding-right:32px;padding-left:36px;width:100%;-webkit-box-shadow:inset 0 0 0 2px #1D96C7;box-shadow:inset 0 0 0 2px #1D96C7;background:#091724;opacity:1;color:white}.sbx-custom__input:focus::-webkit-input-placeholder,.sbx-custom__input:active::-webkit-input-placeholder,.sbx-custom__input.filled::-webkit-input-placeholder{color:#777}.sbx-custom__input:focus:-ms-input-placeholder,.sbx-custom__input:active:-ms-input-placeholder,.sbx-custom__input.filled:-ms-input-placeholder{color:#777}.sbx-custom__input:focus::-ms-input-placeholder,.sbx-custom__input:active::-ms-input-placeholder,.sbx-custom__input.filled::-ms-input-placeholder{color:#777}.sbx-custom__input:focus::placeholder,.sbx-custom__input:active::placeholder,.sbx-custom__input.filled::placeholder{color:#777}.sbx-custom__submit{position:absolute;top:0;pointer-events:none;left:0;margin:0;border:0;border-radius:18px 0 0 18px;background-color:rgba(255,255,255,0);padding:0;width:36px;height:100%;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sbx-custom__submit::before{display:inline-block;margin-right:-4px;height:100%;vertical-align:middle;content:''}.sbx-custom__submit:hover,.sbx-custom__submit:active{cursor:pointer}.sbx-custom__submit:focus{outline:0}.sbx-custom__submit svg{width:16px;height:16px;vertical-align:middle;fill:#1D96C7}.sbx-custom__reset{position:absolute;top:8px;right:8px;margin:0;border:0;background:none;cursor:pointer;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sbx-custom__reset.hide{display:none}.sbx-custom__reset:focus{outline:0}.sbx-custom__reset svg{display:block;margin:4px;width:12px;height:12px;fill:#1D96C7}.sbx-custom__input:valid ~ .sbx-custom__reset{display:block;-webkit-animation-name:sbx-reset-in;animation-name:sbx-reset-in;-webkit-animation-duration:.15s;animation-duration:.15s}@-webkit-keyframes sbx-reset-in{from{-webkit-transform:translate3d(-20%, 0, 0);transform:translate3d(-20%, 0, 0);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}}@keyframes sbx-reset-in{from{-webkit-transform:translate3d(-20%, 0, 0);transform:translate3d(-20%, 0, 0);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}}.site-header .navbar .navbar-nav>li.searchbar-wrapper{margin:0;padding:0}.algolia-autocomplete{display:inline !important}.searchbox{display:inline-block;position:relative;height:36px !important;white-space:nowrap;-webkit-box-sizing:border-box;box-sizing:border-box;visibility:visible !important;vertical-align:middle}.searchbox__wrapper{width:100%;height:100%}.searchbox__input{display:inline-block;-webkit-transition:background .4s ease, -webkit-box-shadow .4s ease;transition:background .4s ease, -webkit-box-shadow .4s ease;transition:box-shadow .4s ease, background .4s ease;transition:box-shadow .4s ease, background .4s ease, -webkit-box-shadow .4s ease;border:0;border-radius:18px;-webkit-box-shadow:inset 0 0 0 2px rgba(255,255,255,0.5);box-shadow:inset 0 0 0 2px rgba(255,255,255,0.5);background:#000;padding:0;width:36px;height:100%;vertical-align:middle;white-space:normal;font-size:12px;-webkit-appearance:none;-moz-appearance:none;appearance:none;color:transparent}.searchbox__input::-webkit-input-placeholder{color:transparent}.searchbox__input:-ms-input-placeholder{color:transparent}.searchbox__input::-ms-input-placeholder{color:transparent}.searchbox__input::placeholder{color:transparent}.searchbox__input::-webkit-search-decoration,.searchbox__input::-webkit-search-cancel-button,.searchbox__input::-webkit-search-results-button,.searchbox__input::-webkit-search-results-decoration{display:none}.searchbox__input:hover{-webkit-box-shadow:inset 0 0 0 2px rgba(230,230,230,0.5);box-shadow:inset 0 0 0 2px rgba(230,230,230,0.5)}.searchbox__input:focus,.searchbox__input:active,.searchbox__input.filled{padding-right:30px;padding-left:36px;width:100%;outline:0;-webkit-box-shadow:inset 0 0 0 2px rgba(255,255,255,0.8);box-shadow:inset 0 0 0 2px rgba(255,255,255,0.8);background:#fff;color:white}.searchbox__input:focus::-webkit-input-placeholder,.searchbox__input:active::-webkit-input-placeholder,.searchbox__input.filled::-webkit-input-placeholder{color:#777}.searchbox__input:focus:-ms-input-placeholder,.searchbox__input:active:-ms-input-placeholder,.searchbox__input.filled:-ms-input-placeholder{color:#777}.searchbox__input:focus::-ms-input-placeholder,.searchbox__input:active::-ms-input-placeholder,.searchbox__input.filled::-ms-input-placeholder{color:#777}.searchbox__input:focus::placeholder,.searchbox__input:active::placeholder,.searchbox__input.filled::placeholder{color:#777}.searchbox__submit{position:absolute;top:0;margin:0;border:0;border-radius:18px 0 0 18px;background-color:rgba(255,255,255,0);padding:0;width:36px;line-height:36px;height:100%;vertical-align:middle;text-align:center;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;right:inherit;left:0}.searchbox__submit::before{display:inline-block;margin-right:-4px;height:100%;vertical-align:middle;content:''}.searchbox__submit:hover,.searchbox__submit:active{cursor:pointer}.searchbox__submit:focus{outline:0}.searchbox__submit svg{width:18px;height:18px;vertical-align:middle;fill:#fff}.searchbox__reset{display:block;position:absolute;top:8px;right:8px;margin:0;border:0;background:none;cursor:pointer;padding:0;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;fill:rgba(255,255,255,0.5)}.searchbox__reset.hide{display:none}.searchbox__reset:focus{outline:0}.searchbox__reset svg{display:block;margin:4px;width:12px;height:12px}.searchbox__input:valid ~ .searchbox__reset{display:block;-webkit-animation-name:sbx-reset-in;animation-name:sbx-reset-in;-webkit-animation-duration:.15s;animation-duration:.15s}@keyframes sbx-reset-in{0%{-webkit-transform:translate3d(-20%, 0, 0);transform:translate3d(-20%, 0, 0);opacity:0}100%{-webkit-transform:none;transform:none;opacity:1}}.algolia-autocomplete{display:block;height:100%}.algolia-docsearch-footer{width:100px;height:20px;z-index:2000;margin-top:6px;float:right;font-size:0;line-height:0}.algolia-docsearch-footer--logo{background-image:url('data:image/svg+xml;utf8,');background-repeat:no-repeat;background-position:center;background-size:100%;overflow:hidden;text-indent:-9000px;padding:0 !important;width:100%;height:100%;display:block}.aa-dropdown-menu{position:relative;top:-6px;border-radius:40px;margin:6px 0 0;padding:0;text-align:left;height:auto;position:relative;background:transparent;border:none;max-width:600px;min-width:500px;right:0 !important;left:inherit !important;-webkit-box-shadow:0 1px 0 0 rgba(0,0,0,0.2),0 2px 3px 0 rgba(0,0,0,0.1);box-shadow:0 1px 0 0 rgba(0,0,0,0.2),0 2px 3px 0 rgba(0,0,0,0.1)}.aa-dropdown-menu:before{position:absolute;content:'';width:14px;height:14px;background:#fff;z-index:0;top:-7px;border-top:1px solid #d9d9d9;border-right:1px solid #d9d9d9;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);border-radius:2px;z-index:999;display:block;right:48px}.aa-dropdown-menu .aa-suggestions{position:relative;z-index:1000}.aa-dropdown-menu [class^="aa-dataset-"]{position:relative;border:solid 1px #d9d9d9;background:#fff;border-radius:40px;overflow:auto;padding:0 12px 6px}.aa-dropdown-menu *{-webkit-box-sizing:border-box;box-sizing:border-box}.algolia-docsearch-suggestion{position:relative;padding:0;background:#fff;color:#02060C;overflow:hidden}.algolia-docsearch-suggestion--highlight{color:#2274d1;background-color:rgba(69,142,225,0.08)}.algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--highlight{color:inherit;background:inherit}.algolia-docsearch-suggestion--content{display:block;float:right;width:70%;position:relative;cursor:pointer;padding:0 0 0 8px}.aa-cursor .algolia-docsearch-suggestion--content{background:rgba(0,0,0,0.03)}.algolia-docsearch-suggestion--content:before{content:'';position:absolute;display:block;top:0;height:100%;width:1px;background:#ddd;left:-1px}.algolia-docsearch-suggestion--category-header{position:relative;border-bottom:1px solid #ddd;display:none;padding:3px 0;font-size:1em;color:#33363D}.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header{display:block;margin-top:2px}.algolia-docsearch-suggestion--wrapper{width:100%;float:left;padding:0}.algolia-docsearch-suggestion--subcategory-column{float:left;width:30%;display:none;padding-left:0;text-align:right;position:relative;color:#A4A7AE;font-size:0.9em;word-wrap:break-word;padding:0 8px}.algolia-docsearch-suggestion--subcategory-column:before{content:'';position:absolute;display:block;top:0;height:100%;width:1px;background:#ddd;right:0}.algolia-docsearch-suggestion__secondary .algolia-docsearch-suggestion--subcategory-column{display:block !important}.algolia-docsearch-suggestion--subcategory-inline{display:none}.algolia-docsearch-suggestion--title{margin-bottom:3px;color:#02060C;font-size:0.9em;font-weight:bold}.algolia-docsearch-suggestion--text{display:block;line-height:1.2em;font-size:0.85em;color:#63676D}.ds-dropdown-menu{background:#fff;border-radius:4px;min-width:420px;padding:0 8px;margin-top:16px;-webkit-box-shadow:0 1px 0 0 rgba(0,0,0,0.2),0 2px 3px 0 rgba(0,0,0,0.1);box-shadow:0 1px 0 0 rgba(0,0,0,0.2),0 2px 3px 0 rgba(0,0,0,0.1)}.ds-dropdown-menu:before{display:block;position:absolute;content:'';width:14px;height:14px;background:#FFFFFF;z-index:1000;top:-7px;border-top:1px solid #D9D9D9;border-right:1px solid #D9D9D9;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);border-radius:2px}.algc-navigation a{-webkit-font-smoothing:unset}.algc-navigation a:hover{text-decoration:none}.algc-navigation input:not(#searchbox){display:none}.algc-dropdownroot__widelist li h4{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:70%;display:block}.algc-menu__search--holder.open input[type="search"]{background-color:rgba(255,255,255,0.2) !important}.input-group-addon,.form-control{border-color:rgba(157,157,189,0.37) !important}input.form-control::-webkit-input-placeholder{color:#9d9dbd !important}input.form-control:-moz-placeholder{color:#9d9dbd !important}input.form-control::-moz-placeholder{color:#9d9dbd !important}input.form-control:-ms-input-placeholder{color:#9d9dbd !important}.documentation p,.documentation ul li,.documentation ol li{font-size:15px;color:#495588 img;color-max-width:100%}.documentation ol li{color:#3369e7;font-family:"Open Sans", helvetica, sans-serif;font-weight:600}.documentation h2{font-weight:500;font-size:30px}.documentation h3{font-size:18px;font-weight:500}.documentation .main-content{padding-bottom:120px}.documentation .main-content{width:calc(100% - 300px);position:relative;margin-left:300px;margin-top:56px;min-height:calc(100vh - 250px)}@media (max-width: 768px){.documentation .main-content{width:100%;margin-left:0}}.about .main-content{min-height:100vh}pre{display:block;padding:1em;background-color:#f8faff;border-radius:6px;white-space:pre;color:#495588}[style*="background-color:hsla(0,100%,50%,0.05)"],[style*="background-color:hsla(0,0%,0%,0.07)"]{background:transparent !important}code{background-color:rgba(137,149,199,0.2);border-radius:4px;padding:2px 4px}.table-code-small code{font-size:smaller}.content-navbar code{vertical-align:middle}.tab-content>.tab-pane{display:none;visibility:hidden}.tab-content>.active{display:block;visibility:visible}.highlight+.anchor-container{margin-top:42px}.highlight .highlight{margin-top:16;margin-bottom:16;-webkit-box-shadow:0 25px 45px -18px rgba(62,57,107,0.33);box-shadow:0 25px 45px -18px rgba(62,57,107,0.33)}.snippet-wrapper{position:relative;margin-top:30px}.snippet-wrapper:not(:last-child){margin-bottom:28px}.snippet-wrapper .snippet-header{position:relative}.snippet-wrapper .snippet-header ul{margin:1em 0 0;display:-webkit-box;display:-ms-flexbox;display:flex;border-radius:6px 6px 0 0;background-color:#3e396b;list-style:none;color:#8995c7;padding:8px 16px}.snippet-wrapper .snippet-header ul li{margin-left:8px}.snippet-wrapper .snippet-header ul li a{color:#8995c7}.snippet-wrapper .snippet-header ul li a:active,.snippet-wrapper .snippet-header ul li a:hover,.snippet-wrapper .snippet-header ul li a:focus{text-decoration:none}.snippet-wrapper .snippet-header ul li.active a{color:white;border-bottom:solid 1px #ffffff}.snippet-wrapper pre.highlight{border-radius:8px;margin-top:0}.snippet-wrapper .tab-pane pre{border-radius:0 0 8px 8px}pre{background-image:linear-gradient(275deg, #201c38, #3e396b);padding:24px 32px;border-radius:8px;overflow:auto;border:none}pre code{font-family:Menlo, Courier, sans-serif;font-size:14px;font-weight:700;letter-spacing:.008rem;color:white;background-color:transparent;padding:0}.highlight.php .cp{display:block;visibility:hidden;margin-top:-46px}.highlight:last-child:not(pre) .highlight{margin-bottom:16px}.snippet-wrapper .copy-link{position:absolute;right:calc(1em + 8px);top:8px}section .circle-link,.intro .circle-link,.page-title-wrapper .circle-link,article .circle-link,.snippet-wrapper .circle-link{width:24px;height:24px;border-radius:100%;background-color:rgba(137,149,199,0.2);font-size:12px}section .circle-link a,.intro .circle-link a,.page-title-wrapper .circle-link a,article .circle-link a,.snippet-wrapper .circle-link a{color:#3e396b;width:100%;height:100%;line-height:26px}section .circle-link a:hover,.intro .circle-link a:hover,.page-title-wrapper .circle-link a:hover,article .circle-link a:hover,.snippet-wrapper .circle-link a:hover{color:#3e396b;text-decoration:none}section .circle-link i,.intro .circle-link i,.page-title-wrapper .circle-link i,article .circle-link i,.snippet-wrapper .circle-link i{margin-left:1px}section .edit-link,.intro .edit-link,.page-title-wrapper .edit-link,article .edit-link,.snippet-wrapper .edit-link{top:32px;right:64px;display:none}.snippet-wrapper .circle-link a{color:#8995c7}.snippet-wrapper .circle-link a:hover{color:white;text-decoration:none}.snippet-wrapper .edit-link{position:absolute;right:calc(1em + 40px);top:8px}.snippet-wrapper .tooltip{top:-58px}.tooltip{border-radius:4px;padding:12px 16px;top:-48px;left:50%;-webkit-transform:translate(-50%, 0);transform:translate(-50%, 0);z-index:10;font-weight:600;-webkit-transition:all 100ms cubic-bezier(0.015, 0.39, 0.24, 0.975);transition:all 100ms cubic-bezier(0.015, 0.39, 0.24, 0.975);will-change:transform, opacity;opacity:0;pointer-events:none}.tooltip .tooltip-bg{left:0;top:0;width:100%;height:100%;opacity:0;-webkit-transform:scale(0.3, 0.3) translate(0, 0);transform:scale(0.3, 0.3) translate(0, 0);-webkit-transform-origin:center bottom 10px;transform-origin:center bottom 10px;-webkit-transition:all 60ms cubic-bezier(0.015, 0.39, 0.24, 0.975);transition:all 60ms cubic-bezier(0.015, 0.39, 0.24, 0.975);will-change:transform, opacity;z-index:-1;border-radius:6px}.tooltip .tooltip-bg:before{width:100%;height:100%;left:0;top:0;content:"";-webkit-box-shadow:0 6px 32px 0 rgba(62,57,107,0.2);box-shadow:0 6px 32px 0 rgba(62,57,107,0.2);opacity:.4;-webkit-transition:200ms ease-out;transition:200ms ease-out;position:absolute}.tooltip .tooltip-bg:after{opacity:0;left:50%;bottom:0px;width:12px;height:12px;border-radius:2px;-webkit-transform:transform(-50%, 0) rotate(45deg) scaleY(0.34);transform:transform(-50%, 0) rotate(45deg) scaleY(0.34);background-color:#3e396b;will-change:transform;content:"";position:absolute}a:hover .tooltip{opacity:1;-webkit-transform:translate(-50%, -8px);transform:translate(-50%, -8px);-webkit-transition:all 200ms cubic-bezier(0.015, 0.39, 0.24, 0.975);transition:all 200ms cubic-bezier(0.015, 0.39, 0.24, 0.975)}a:hover .tooltip-bg{opacity:1;-webkit-transform:scale(1, 1);transform:scale(1, 1);-webkit-transition:all 200ms cubic-bezier(0.015, 0.39, 0.24, 0.975);transition:all 200ms cubic-bezier(0.015, 0.39, 0.24, 0.975)}a:hover .tooltip-bg:before{opacity:1}a:hover .tooltip-bg:after{opacity:1;-webkit-transform:scaleY(1) translate(-50%, 6px) rotate(45deg);transform:scaleY(1) translate(-50%, 6px) rotate(45deg);-webkit-transition:opacity 200ms ease-in-out,-webkit-transform 300ms 120ms cubic-bezier(0.175, 0.885, 0.32, 1.275);transition:opacity 200ms ease-in-out,-webkit-transform 300ms 120ms cubic-bezier(0.175, 0.885, 0.32, 1.275);transition:opacity 200ms ease-in-out,transform 300ms 120ms cubic-bezier(0.175, 0.885, 0.32, 1.275);transition:opacity 200ms ease-in-out,transform 300ms 120ms cubic-bezier(0.175, 0.885, 0.32, 1.275),-webkit-transform 300ms 120ms cubic-bezier(0.175, 0.885, 0.32, 1.275)}section.heading .edit-link{display:none !important}.documentation aside{top:56px;padding-top:38px;border-right-color:#c4c8d8}@media (max-width: 768px){.documentation aside{display:none}}#footer{position:relative}#footer:after{content:'';display:block;position:absolute;width:100%;height:130px;background:#1F1C3F;-webkit-transform:skewY(-4deg);transform:skewY(-4deg);z-index:0;bottom:120px;left:0}@media (min-width: 1200px){#footer:after{-webkit-transform:skewY(-2deg);transform:skewY(-2deg)}}#footer .credits{text-align:center;position:relative;background-color:#12102E;color:#8994c6;z-index:99;line-height:40px}#footer .credits:before{content:'';display:block;position:absolute;width:100%;height:80px;background:#12102E;-webkit-transform:skewY(-2deg);transform:skewY(-2deg);z-index:0;top:-40px;left:0}@media (min-width: 1200px){#footer .credits:before{-webkit-transform:skewY(-1deg);transform:skewY(-1deg)}}@media (max-width: 992px){#footer .credits{margin-top:40px}}#footer h4{line-height:40px;border-bottom:solid 1px rgba(137,148,198,0.5)}#footer .footer-nav li{line-height:1.7em}#footer .footer-nav li a{color:#8994c6;font-size:.9em}#footer .footer-nav li a:hover{color:#00aeff;text-decoration:none}#footer .network-links{margin:0;padding:0}#footer .network-links li{display:inline-block;padding:0;margin:0;text-align:center;margin:.5em .2em .5em 0}#footer .network-links li .btn{color:#8994c6;width:38px;line-height:40px;max-height:38px;font-size:24px;padding:0;border:solid 1px rgba(137,148,198,0.4)}#footer .network-links li .btn:hover{color:white}#footer .newsletter-signup{position:relative}#footer .newsletter-signup .mc-signupmessage{width:100%;height:100%;background-color:white;position:absolute;z-index:1;display:none;pointer-events:none;opacity:0;-webkit-transition:400ms ease-in-out;transition:400ms ease-in-out}#footer .newsletter-signup .mc-signupmessage svg{width:15px;margin-left:4px;vertical-align:middle}#footer .newsletter-signup .form-control{border-radius:20px;line-height:40px;padding:0 16px;height:40px;border:none;width:230px}@media (max-width: 992px){#footer .newsletter-signup .form-control{width:180px !important}}#footer .newsletter-signup--success .mc-signupmessage{-webkit-animation:fadeIn 200ms ease-in-out forwards;animation:fadeIn 200ms ease-in-out forwards;display:block}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.search-icon,.arrow-icon{margin-left:1em;width:22px;height:42px;vertical-align:middle}@media (max-width: 768px){.search-icon,.arrow-icon{display:none}}.arrow-icon{width:16px}.arrow-icon use{fill:#3e396b} \ No newline at end of file diff --git a/docs/build/assets/stylesheets/main.css.gz b/docs/build/assets/stylesheets/main.css.gz new file mode 100644 index 00000000..acc9ac86 Binary files /dev/null and b/docs/build/assets/stylesheets/main.css.gz differ diff --git a/docs/build/documentation/docsearch-autocomplete/configuring-the-search/index.html b/docs/build/documentation/docsearch-autocomplete/configuring-the-search/index.html new file mode 100644 index 00000000..e302de53 --- /dev/null +++ b/docs/build/documentation/docsearch-autocomplete/configuring-the-search/index.html @@ -0,0 +1,59 @@ + Configuring the search results DocSearch

    DocSearch is a wrapper around the autocomplete.js library that gets its results from the Algolia API. As such, you can use any options provided by this project and by the Algolia API.

    Autocomplete options

    You can pass any options to the underlying autocomplete instance through the autocompleteOptions parameter. You will find all autocomplete options in its own documentation.

    You can also listen to autocomplete events through the .autocomplete property of the docsearch instance.

    var search = docsearch({
    +  apiKey: '<API_KEY>',
    +  indexName: '<INDEX_NAME>',
    +  inputSelector: '<YOUR_INPUT_DOM_SELECTOR>',
    +  debug: true,
    +  autocompleteOptions: {
    +    // See https://github.com/algolia/autocomplete.js#options
    +    // For full list of options
    +  }
    +});
    +
    +// See https://github.com/algolia/autocomplete.js#custom-events
    +// For full list of events
    +search.autocomplete.on('autocomplete:opened', function(e) {
    +  // Do something when the dropdown menu is opened
    +});
    +

    Docsearch Options

    handleSelected

    We already bind the autocomplete:selected event inside the docsearch. If you want to replace the default behavior you can pass the handleSelected option.

    var search = docsearch({
    +  apiKey: '<API_KEY>',
    +  indexName: '<INDEX_NAME>',
    +  inputSelector: '<YOUR_INPUT_DOM_SELECTOR>',
    +  handleSelected: function (input, event, suggestion) {
    +  }
    +});
    +

    queryHook

    If you want modify the query before it is sent to Algolia you can pass the queryHook option.

    var search = docsearch({
    +  apiKey: '<API_KEY>',
    +  indexName: '<INDEX_NAME>',
    +  inputSelector: '<YOUR_INPUT_DOM_SELECTOR>',
    +  queryHook: function (query) {
    +      return query + "_modified";
    +  }
    +});
    +

    transformData

    If you want to modify the hits before displaying them you can make use of the transformData option

    var search = docsearch({
    +  apiKey: '<API_KEY>',
    +  indexName: '<INDEX_NAME>',
    +  inputSelector: '<YOUR_INPUT_DOM_SELECTOR>',
    +  transformData: function (hits) {
    +    // modify hits
    +    return hits;
    +  }
    +});
    +

    Algolia options

    You can also pass any specific option to the Algolia API to change the way records are returned. You can pass any options to the Algolia API through the algoliaOptions parameter.

    docsearch({
    +  appId: '<APP_ID>', // if you are running the crawler yourself
    +  apiKey: '<API_KEY>',
    +  indexName: '<INDEX_NAME>',
    +  inputSelector: '<YOUR_INPUT_DOM_SELECTOR>',
    +  algoliaOptions: {
    +    hitsPerPage: 10
    +  }
    +});
    +

    You will find all Algolia API options in its own documentation.

    \ No newline at end of file diff --git a/docs/build/documentation/docsearch-autocomplete/configuring-the-search/index.html.gz b/docs/build/documentation/docsearch-autocomplete/configuring-the-search/index.html.gz new file mode 100644 index 00000000..f6565340 Binary files /dev/null and b/docs/build/documentation/docsearch-autocomplete/configuring-the-search/index.html.gz differ diff --git a/docs/build/documentation/docsearch-autocomplete/customize-autocomplete-styles/index.html b/docs/build/documentation/docsearch-autocomplete/customize-autocomplete-styles/index.html new file mode 100644 index 00000000..a0c38820 --- /dev/null +++ b/docs/build/documentation/docsearch-autocomplete/customize-autocomplete-styles/index.html @@ -0,0 +1,47 @@ + Customize autocomplete styles DocSearch

    Attribution

    We’re happy to provide DocSearch free of charge for your site, and you’re welcome to customize that experience in a way that works for you; all we ask is that Algolia be attributed within the search context. For example, in the default implementation, we place a small “Search by Algolia” logo in the corner. If you prefer to roll your own UX, you’ll need to make sure that this logo is included in your implementation as well.

    Default styling

    The default colorscheme is white and gray:

    Default colorscheme

    To update the colors to suit your website, you just need to override a few colors. Here is an example of a CSS file that you can use as a basis to set white and purple colors.

    /* Bottom border of each suggestion */
    +.algolia-docsearch-suggestion {
    +  border-bottom-color: #3A3DD1;
    +}
    +/* Main category headers */
    +.algolia-docsearch-suggestion--category-header {
    +  background-color: #4B54DE;
    +}
    +/* Highlighted search terms */
    +.algolia-docsearch-suggestion--highlight {
    +  color: #3A33D1;
    +}
    +/* Highlighted search terms in the main category headers */
    +.algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--highlight  {
    +  background-color: #4D47D5;
    +}
    +/* Currently selected suggestion */
    +.aa-cursor .algolia-docsearch-suggestion--content {
    +  color: #272296;
    +}
    +.aa-cursor .algolia-docsearch-suggestion {
    +  background: #EBEBFB;
    +}
    +
    +/* For bigger screens, when displaying results in two columns */
    +@media (min-width: 768px) {
    +  /* Bottom border of each suggestion */
    +  .algolia-docsearch-suggestion {
    +    border-bottom-color: #7671df;
    +  }
    +  /* Left column, with secondary category header */
    +  .algolia-docsearch-suggestion--subcategory-column {
    +    border-right-color: #7671df;
    +    background-color: #F2F2FF;
    +    color: #4E4726;
    +  }
    +}
    +

    Advanced styling

    If you want to do heavy changes to the way results are displayed, you might find it easier to directly edit the scss files in this repository.

    _variables.scss contains all the color, breakpoints and size definitions while main.scss holds the structure of the display.

    You can regenerate the whole final css file from those scss files by running npm run build:css. The resulting files will be found in ./dist/cdn/.

    All you have to do now is change the link tag that was loading the default styling from our CDN, to one that is loading your newly compiled file.

    \ No newline at end of file diff --git a/docs/build/documentation/docsearch-autocomplete/customize-autocomplete-styles/index.html.gz b/docs/build/documentation/docsearch-autocomplete/customize-autocomplete-styles/index.html.gz new file mode 100644 index 00000000..fa291a71 Binary files /dev/null and b/docs/build/documentation/docsearch-autocomplete/customize-autocomplete-styles/index.html.gz differ diff --git a/docs/build/documentation/docsearch-scraper/config-options/index.html b/docs/build/documentation/docsearch-scraper/config-options/index.html new file mode 100644 index 00000000..73bc9383 --- /dev/null +++ b/docs/build/documentation/docsearch-scraper/config-options/index.html @@ -0,0 +1,143 @@ + Make the most of your configuration DocSearch

    Introduction

    The DocSearch scraper will use a configuration file specifying:

    • the Algolia index name that will store the records resulting from the crawling
    • the URLs it needs to crawl
    • the URLs it shouldn’t crawl
    • the (hierarchical) CSS selectors to use to extract the relevant content from your webpages
    • the CSS selectors to skip
    • An optional sitemap URL that will be crawled and then scraped
    • additional options you might provide to fine-tune the scraping

    How it works

    Once you run the DocSearch scraper on a specific configuration, it will:

    • crawl all the URLs you specified (from the start_urls or the sitemap)
    • follow all the hyperlinks mentioned in the page, and continue the crawling there
    • stop the crawling as soon as you’ve reached a URL that is not specified in your configuration or affiliated to a start url
    • extract the content of every single crawled page following the logic you defined using the CSS selectors
    • push the resulting records to the Algolia index you configured

    Configuration format

    A configuration file looks like:

    {
    +    "index_name": "stripe",
    +    "start_urls": [
    +        "https://stripe.com/docs"
    +    ],
    +    "stop_urls": [
    +        "https://stripe.com/docs/api"
    +    ],
    +    "selectors": {
    +      "lvl0": "#content header h1",
    +      "lvl1": "#content article h1",
    +      "lvl2": "#content section h3",
    +      "lvl3": "#content section h4",
    +      "lvl4": "#content section h5",
    +      "lvl5": "#content section h6",
    +      "text": "#content header p,#content section p,#content section ol"
    +    },
    +    "selectors_exclude": [
    +        ".method-list",
    +        "aside.note"
    +    ],
    +    // additional options
    +    [...]
    +}
    +

    It must be a valid JSON file

    DocSearch options

    index_name Mandatory

    Name of the Algolia index where all the data will be pushed.

    On our own infrastructure, this name must be equal to the configuration file name

    We mostly attribute it on our own regarding plenty of underlying factors. The apiKey that we provide is generated with a restriction on the index_name. Changing the index_name would require to ask for a new key. Thus if you want to change the name, please submit a new configuration, we will generate a new key accordingly.

    start_urls Mandatory

    You can pass either a string or an array of urls. The crawler will go to each page in order, following every link it finds on the page. It will only stop if the domain is outside of the allowed_domains or if the link is blacklisted in stop_urls.

    Note that it currently does not follow 301 redirects.

    This parameter also behaves as a regular expression. If you don’t use a sitemap, you must define at least one reachable URL (HTTP 20x). Otherwise the scraping will fail.

    You can build a more advanced URL. You will need to use a JSON object with a variables attribute. This attribute is an array of variables that will be injected into the URLs:

    Example:

    {
    +   "url": "http://example.com/docs/(?P<lang>.*?)/(?P<version>.*?)/",
    +   "variables": {
    +      "version": [
    +         "latest",
    +         "3.3",
    +         [...]
    +      ],
    +      "lang": [
    +         "en",
    +         "fr",
    +         [...]
    +      ]
    +}
    +

    The whole pattern (?P<version>.*?) will be replaced by the value assigned in the related key version.

    The variable name is not fixed. Please note that those variables will behave as attributesForFaceting which may help you restrain the scope of the search from the snippet.

    Thus you can limit the scope of the search to the records from the pages encompassed by http://example.com/docs/en/latest/* thanks to the following snippet:

    <script type="text/javascript">
    + docsearch({
    +    apiKey: ${apiKey},
    +    indexName: ${indexName},
    +    inputSelector: '#search'
    +    algoliaOptions: { 'facetFilters': ["lang:en", "version:latest"] },
    +});
    +</script>
    +

    In order to promote some pages, you can set the page_rank attribute (default: 0, can be a positive or negative integer).

    Finally, If your website contains different parts and layouts, you can define specific selectors for each part and apply them using selectors_key:

    Example:

    {
    +  "index_name": "example",
    +   "start_urls": [
    +     "http://example.com/docs/latest/",
    +    {
    +     "url": "http://example.com/docs/concepts/",
    +     "page_rank": 1,
    +     "selectors_key": "concepts"
    +    }
    +   ],
    +   "selectors": {
    +     "default": {
    +       "lvl0": ".docSearch-content h1",
    +       "lvl1": ".docSearch-content h2",
    +       "lvl2": ".docSearch-content h3",
    +       "lvl3": ".docSearch-content h4",
    +       "lvl4": ".docSearch-content h5",
    +       "text": ".docSearch-content p, .docSearch-content li"
    +      },
    +     "concepts": {
    +       "lvl0": ".docSearch-header h2",
    +       "lvl1": ".docSearch-content h1",
    +       "lvl2": ".docSearch-content h2",
    +       "lvl3": ".docSearch-content h3",
    +       "lvl4": ".docSearch-content h5",
    +       "text": ".docSearch-content p"
    +     }
    +   }
    +  [...]
    +}
    +

    start_urls.tags

    Tags will be apllied to every record from the matchin matched pages, i.e., its URL is matchin the url. These tags will be processed as attributesForFaceting . If you want further detail, check the original documentation. We do recommend to use tags if you want to refine the scope of your search.

    From your search UI, you will need to use the following input:

    algoliaOptions: { 'facetFilters': ["tags:$VALUE"] },
    +

    Default not used. Must be an array.

    Example:

    From the config:

    "start_urls": [
    + {
    +  "url": "http://example.com/docs/concepts/",
    +  "selectors_key": "concepts"
    + }
    +

    From the search UI:

     algoliaOptions: { 'facetFilters': ["tags:concepts"] },
    +

    scrape_start_urls

    This boolean let you decide if you want to extract the content of the starting pages.

    Default is false

    stop_urls Optional

    This array can be used to blacklist URLs. The crawler will stop on these and will not consider their content. Likewise, if a link within a crawled webpage targets such pages, the crawler will not follow the link. You can use a regular expression as well as plain urls.

    Note: It is sometimes needed to add http://www.example.com/index.html pages to the stop_urls list if you set http://www.example.com as a start_urls, to avoid duplicated content.

    selectors Mandatory

    This object contains all the CSS selectors that will be used to create the record hierarchy. It can contains up to 6 levels (lvl0, lvl1, lvl2, lvl3, lvl4, lvl5) and text.

    A default config would be to target the page title or h1 as lvl0, the h2 as lvl1 and h3 as lvl2. text is usually any p of text.

    We recommend making use of at least the three first levels for better relevancy.

    Global selectors Optional

    It’s possible to make a selector global which means that all records from the page will have this value. This is useful when you have a title that is in the right sidebar and the sidebar is placed after the content in the DOM.

    "selectors": {
    +  "lvl0": {
    +    "selector": "#content header h1",
    +    "global": true
    +  }
    +}
    +

    Xpath selector Optional

    By default, selectors are considered to be css selectors but you can specify that a selector is an XPath one. This is useful when you want to do more complex selection like selecting the parent of a target.

    "selectors": {
    +  "lvl0": {
    +    "selector": "//li[@class=\"chapter active done\"]/../../a",
    +    "type": "xpath"
    +  }
    +}
    +

    Default value Optional

    You have the possibility to add a default value which will be used if the selector doesn’t match anything.

    "selectors": {
    +  "lvl0": {
    +    "selector": "#content article h1",
    +    "default_value": "Documentation"
    +  }
    +}
    +

    selectors_exclude Optional

    By default, the selectors search is applied page-wide. If there are some parts of the page that you do not want to include (e.g. a table of content, a sidebar or a footer), you can add them to the selectors_exclude key.

    Sitemap crawling Optional

    Our crawler offers you to crawl a site by discovering the URLs using Sitemaps. Thus, you can define the direct URL(s) to your sitemap XML file, sitemap_urls. In order to parse it, you should establish regex(s), sitemap_urls_regex, which will match the URLs to crawl. Otherwise it will use the start_urls pattern in order to match the expected URLs.

    For sites that use Sitemap index files that point to other sitemap files, all those sitemaps will be followed.

    sitemap_urls Optional

    A list of urls pointing to the sitemaps (or sitemap index) you want to crawl. Must be provided if you want docsearch to discover your via sitemaps.

    sitemap_urls_regexs Optional

    A list of regular expressions that will be applied to each URL from the sitemap. If one of the patterns match a URL, this link will be scraped. If no regular expression is defined, the start_urls will be taken as a pattern.

    force_sitemap_urls_crawling Optional

    Specifies if the matched URLs should not respect the same rules as the crawled hyperlink. If set to true, each URL will be scraped even if it does comply with the start_urls or stop_urls. Default is force_sitemap_urls_crawling set to false

    Example:

    {
    +    [...]
    +    "sitemap_urls": [
    +      "https://www.mySite.com/sitemap.xml"
    +    ],
    +    "sitemap_urls_regexs": [
    +      "/doc/"
    +    ],
    +    "force_sitemap_urls_crawling": true,
    +    [...]
    +}
    +

    Given this configuration, every webpage of the sitemap whose URL contains ‘/doc/’ will be scraped even if they don’t comply with start_urls or stop_urls.

    allowed_domains Optional

    You can pass an array of strings. This is the whitelist of domains the crawler will browse. If a link targets a page that is not in the whitelist, the crawler will not follow it.

    Default is the domain of the first elements in the start_urls.

    min_indexed_level Optional

    Lets you define the minimum level at which you want a record to be indexed. For example, with a min_indexed_level: 1, you will only index records that have at least a lvl0 and a lvl1 field.

    This is especially useful when the documentation is split into several pages and all pages duplicate the main title or introduction (see [this issue][https://github.com/algolia/docsearch-configs/issues/83]). With min_indexed_level, you can ignore the duplicated title.

    Default is 0

    only_content_level Optional

    When only_content_level is set to true, we only index builded records which match the text selectors. Every other record will be skipped. This parameter is more flexible than min_indexed_level. Once only_content_level is used, min_indexed_level becomes pointless.

    Default is false

    js_render Optional

    The HTML code that we crawl is sometimes generated using Javascript. In those cases, the js_render option must be set to true. It will enable our internal proxy (Selenium) to render pages before crawling them.

    We highly recommend avoiding client-side rendering. It mainly decreases the performance of your website.

    Default is false

    js_wait Optional

    When js_render is set to true, the js_wait parameter lets you change the default waiting time (in seconds) to render the webpage with the Selenium emulator.

    Default is 0s

    use_anchors Optional

    The use_anchors needs to be set to True for a javascript doc when the hash is used to route the query. Internally, this will disable the canonicalize feature that is removing the hash from the url.

    This parameter is optional and is set to false by default.

    strip_chars Optional

    A list of characters to remove from the indexed text.

    You can also override the default strip_chars per level

    "selectors": {
    +  "lvl0": {
    +    "selector": "#content article h1",
    +    "strip_chars": " .,;:"
    +  }
    +}
    +

    nb_hits Mandatory

    Each time the configuration is locally run, this attribute is set to the number of records indexed.

    This attribute is used for purposed monitoring. We keep a track of its evolution in order to detect main changes. Default is 0.

    custom_settings Optional

    This object is any custom Algolia settings you would like to pass to the index settings. You will look under the hood of algolia.

    nb_hits_max Optional

    The number of maximum records allowed for the whole indexing. If the scrapping is bigger, it will fail.

    This value is not meant to be set from anyone except DocSearch maintainer.

    Default is 600 000 (arbitrary, might change)

    Possible issues

    Duplicated content

    It could happen that the crawled website returned duplicated data. Most of the time, this is because the crawled pages got the same urls with two different schemes.

    If we have URLs like http://website.com/page and http://website.com/page/ (notice the second one ends with /), the scraper will consider them as different. This can be fixed by adding a regex to the stop_urls in the config.json:

    "stop_urls": [
    +  "/$"
    +]
    +

    In this attribute, you can also list the pages you want to skip:

    "stop_urls": [
    +  "http://website.com/page/"
    +]
    +

    Anchors

    The scraper will also consider pages with anchors as different pages. Make sure you remove any hash sign from the urls that you put in the stop & start URLs:

    Bad:

    "stop_urls": [
    +  "http://website.com/page/#foo"
    +]
    +

    Good:

    "stop_urls": [
    +  "/$"
    +]
    +

    Or :

    "stop_urls": [
    +  "http://website.com/page/"
    +]
    +
    \ No newline at end of file diff --git a/docs/build/documentation/docsearch-scraper/config-options/index.html.gz b/docs/build/documentation/docsearch-scraper/config-options/index.html.gz new file mode 100644 index 00000000..87c75582 Binary files /dev/null and b/docs/build/documentation/docsearch-scraper/config-options/index.html.gz differ diff --git a/docs/build/documentation/docsearch-scraper/overview/index.html b/docs/build/documentation/docsearch-scraper/overview/index.html new file mode 100644 index 00000000..853af701 --- /dev/null +++ b/docs/build/documentation/docsearch-scraper/overview/index.html @@ -0,0 +1,56 @@ + DocSearch on your own infrastructure DocSearch

    In the regular use of DocSearch, you don’t have to bother, we handle the whole stack.

    In some specific use cases, you may want to look under the hood and DIY. This is welcome with DocSearch since every tool is open source. DocSearch is composed of 3 different projects:

    The DocSearch backend: our scraper:

    This project is a collection of submodules, each one in its own directory:

    • cli: A command line tool to manage DocSearch. Run ./docsearch and follow the steps
    • deployer: Tool used by Algolia to deploy the configuration in our Apache Mesos infrastructure
    • doctor: A monitoring/repair tool to check if the indices built by the scraper are in good shape
    • playground: An HTML page to easily test DocSearch indices
    • scraper: The core of the scraper. It reads the configuration file, fetches the web pages and indexes them in Algolia.

    Install

    The DocSearch scraper is based on Scrapy, a famous python-based web scraper. Because it might need some JavaScript to render the pages it crawls, the scraper is also depending on selenium.

    To ease the setup process, a Docker container is provided to help you run the scraper.

    Environment:

    • Install python & pip
      • brew install python # will install pip
      • apt-get install python
      • Or any other way
    • git clone git@github.com:algolia/docsearch-scraper.git
    • cd docsearch-scraper
    • pip install --user -r requirements.txt

    With docker:

    • Build the underlying Docker image: ./docsearch docker:build

    Configure DocSearch

    You need to create an Algolia account to get the APPLICATION_ID and (admin) API_KEY credentials the scraper will use to create the underlying indices.

    Create a file named .env file at the root of the project containing the following keys:

    APPLICATION_ID=
    +API_KEY=
    +

    And run the CLI to see the available commands:

    $ ./docsearch
    +Docsearch CLI
    +
    +Usage:
    +  ./docsearch command [options] [arguments]
    +
    +Options:
    +  --help    Display help message
    +
    +Available commands:
    + bootstrap              Bootstrap a docsearch config
    + run                    Run a config
    + playground             Launch the playground
    + docker
    +  docker:build          Build the scraper images (dev, prod, test)
    +  docker:run            Run a config using docker
    + test                   Run tests
    +

    Use DocSearch

    Create a config

    To use DocSearch, the first thing you need is to create a crawler config. For more details about configs, check out our configuration repo, you’ll have a list of options you can use and a lot of live and working examples.

    Crawl the website

    With docker:

    $ ./docsearch docker:run /path/to/your/config
    +

    Without docker

    $ ./docsearch run /path/to/your/config
    +

    Try it with our playground

    You can open the included Playground to test your DocSearch index.

    $ ./docsearch playground
    +

    Enter your credentials and the index name mentioned in the crawler config file, and try the search!

    Integrate DocSearch to your website

    To add the DocSearch dropdown menu to your website, add the following snippet to your website:

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" />
    +<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script>
    +<script>
    +  var search = docsearch({
    +    apiKey: '<API_KEY>', // use a SEARCH-ONLY api key here
    +    indexName: '<INDEX_NAME>',
    +    inputSelector: '<YOUR_INPUT_DOM_SELECTOR>',
    +    debug: false // set to `true` if you want to inspect the dropdown menu's CSS
    +  });
    +</script>
    +

    And you are good to go!

    Specify your own appId

    If you are running the scraper on your own, you will need to tell the widget about your Algolia application ID via the appId parameter.

      var search = docsearch({
    +    appId: '<APP_ID>', // the application ID containing your DocSearch data
    +    ... // other parameters as above
    +  });
    +

    If Algolia is handling the crawling of your site, you do not need to specify appId.

    Admin task

    If you are an Algolia employee and want to manage a DocSearch account, you’ll need to add the following variables in your .env file:

    WEBSITE_USERNAME=
    +WEBSITE_PASSWORD=
    +SLACK_HOOK=
    +SCHEDULER_USERNAME=
    +SCHEDULER_PASSWORD=
    +DEPLOY_KEY=
    +

    The cli will then have more commands for you to run.

    For some actions like deploying you might need to use different credentials than the ones in the .env file. To do this you need to override them when running the cli tool:

    APPLICATION_ID=<your APPLICATION_ID> API_KEY=<your API_KEY> ./docsearch deploy:configs
    +

    Run the tests

    With docker:

    $ ./docsearch test
    +

    Without docker:

    $ pip install pytest
    +$ API_KEY='test' APPLICATION_ID='test' python -m pytest
    +
    \ No newline at end of file diff --git a/docs/build/documentation/docsearch-scraper/overview/index.html.gz b/docs/build/documentation/docsearch-scraper/overview/index.html.gz new file mode 100644 index 00000000..c945d844 Binary files /dev/null and b/docs/build/documentation/docsearch-scraper/overview/index.html.gz differ diff --git a/docs/build/documentation/docsearch/how-it-works/index.html b/docs/build/documentation/docsearch/how-it-works/index.html new file mode 100644 index 00000000..f308670d --- /dev/null +++ b/docs/build/documentation/docsearch/how-it-works/index.html @@ -0,0 +1,10 @@ + How does it work? DocSearch

    How to start DocSearch?

    It all starts with a simple config file. The config file contains your doc site’s structure, for example your specific CSS selectors. It also contains a number of attributes and directives that tell our DocSearch dedicated tool how to find the searchable information from your website.

    The Scraper, to extract content

    At a regular time interval (24h), our scraper will index the content of your whole website. This brand new index will collect the public data of your documentation website and push it onto our dedicated server in order to enable your DocSearch instance. The process follows the directives contained in your customized configuration file to tailor the generic behavior of our scraper, with the aim of taking the most important information and organizing it for search optimization.

    This scraping process runs on our infrastructure, not yours. You don’t have to bother with it. However, our scraper is also totally open source and so you are free to run it on your own servers.

    Browsing through your pages

    In order to discover your pages, we highly recommend the use of a sitemap which will be our source of truth and is a good practice for SEO purposes.

    In any case, our tool is crawling your website. It follows every hyperlink embedded within the scraped pages as long as the URL belongs to the scope defined by the start_urls (and/or sitemap_urls_regexs applied to your sitemap).

    Building your index

    Building records using the scraper is pretty intuitive. According to your settings, we extract the payload of your webpage and index it, preserving your data’s structure. This is achieved in a simple way:

    • We read top down your web page following your HTML flow and pick out your matching elements according their levels (selectors_level)
    • We create a record for each paragraph along with its hierarchical path. This construction is based on their time of appearance along the flow.
    • We index these records with the appropriate global settings (e.g. metadata, tags, etc.)

    Note: The above process performs sanity tests as it scrapes, in order to detect errors. If indeed there are any serious warnings, it will abort and therefore not overwrite your current index. These checks ensure that your dedicated index isn’t flushed.

    \ No newline at end of file diff --git a/docs/build/documentation/docsearch/how-it-works/index.html.gz b/docs/build/documentation/docsearch/how-it-works/index.html.gz new file mode 100644 index 00000000..5589a520 Binary files /dev/null and b/docs/build/documentation/docsearch/how-it-works/index.html.gz differ diff --git a/docs/build/documentation/docsearch/introduction/index.html b/docs/build/documentation/docsearch/introduction/index.html new file mode 100644 index 00000000..9b67ef9e --- /dev/null +++ b/docs/build/documentation/docsearch/introduction/index.html @@ -0,0 +1,10 @@ + Overview DocSearch

    We’re scratching our own itch here. As developers, we spend a lot of time reading documentation, and it isn’t always easy to find the information we need.

    Not blaming anyone here. Building a good search for a documentation is a complex challenge. We happen to have a lot of experience doing that, and we want to share it with the world.

    DocSearch will provide, for free and out of the box, the Algolia search experience for your documentation website. You only need to ask us to configure your site or submit you own configuration. We’ll get back to you with what you need to integrate your new search into your website.

    1. We’ll configure your search experience,
    2. We’ll crawl and scrap your documentation pages every 24h accordingly,
    3. You’ll only need to add few lines to your website: a Javascript snippet along with 2 libraries (JS & CSS).

    NB: If you prefer to DIY, you can run the scraper in your own infra. Feel free to fork!

    \ No newline at end of file diff --git a/docs/build/documentation/docsearch/introduction/index.html.gz b/docs/build/documentation/docsearch/introduction/index.html.gz new file mode 100644 index 00000000..c4ced95e Binary files /dev/null and b/docs/build/documentation/docsearch/introduction/index.html.gz differ diff --git a/docs/build/documentation/docsearch/recommendations/index.html b/docs/build/documentation/docsearch/recommendations/index.html new file mode 100644 index 00000000..8b9d35ed --- /dev/null +++ b/docs/build/documentation/docsearch/recommendations/index.html @@ -0,0 +1,10 @@ + Recommendations DocSearch

    Here we look at several ingredients that help guarantee best results. You can also have a look at our blog that discusses the pitfalls and recommendations that create the DocSearch adventure!

    Page Structure

    For DocSearch to work, your documentation must be structured in a certain way. Structure reflects clarity, exactness, and steadiness. A helpful document will always have an understandable structure in one glance. It allows a user to get the ins and outs of the information and to quickly assimilate the context. It will help her/him to establish the potential relevancy of the document regarding her/his intent.

    Last but not least the structure introduces a lot of meta information that are game changers at indexing time, such as document hierarchy or the use of facets.

    Document hierarchy

    As previously mentioned, the meta information is almost as important as the payload itself. The hierarchical path of a document is one of the most important pieces of metadata information. It brings out the context of the document and thus empowers its content with an additional relationship. (Here we are referring to Custom Ranking).

    Finding the right depth of your tree and how to split-up your content is one of the most complex tasks. For large documents, we usually recommend having 4 levels (from lvl0 until lvl3). Three different levels should be the minimum.

    The depth of a record is also really enlightening. It will be considered within our ranking formula thanks to the attributeToIndex settings. Definitely the higher up the content is, the more impact it will have.

    In order to deliver the best user experience, it is key to open the page at the exact position of the match. The location of the match is easier to find in a fragmented document thanks to anchors. This hierarchy must be total and complete in order to be meaningful, this is why you should try to avoid heterogeneity.

    Consistency

    Consistency is a pillar of a meaningful documentation. In addition to increasing the intelligibility of a document it also shortens the time required for a user to find the coveted information. The document’s topic should be easily identifiable and its outline sharply demarcated.

    The hierarchy should always have the same size. Try to avoid orphan records such like the implicit introduction/conclusion or asides. The selectors must be efficient for every document and highlight the proper hierarchy. They need to match only the coveted elements depending on their level. Be careful to avoid the edge effect by matching unexpected superfluous elements.

    We encourage you to build selectors that are flexible from a DOM structure point of view but really discriminating regarding the documentation’s information. They should be as much as possible GUI-agnostic and focus on the characterization of the payload.

    Selectors should only match information from real document webpage and remain ineffective for others ones (e.g., landing page, table of content, etc.). We urge the maintainer to define a dedicated class for the main DOM container that includes the actual document content such as .docSearch-content

    Since documentation should be interactive, it is a key point to verbalize concepts with standardized words. This redundancy, empowered with the search experience (dropdown), will even enable the user to learn at searching time. The way to find the information plays a key role in leading the user to the retrieved knowledge itself. You can also use the synonym feature.

    Unicity

    The more time-consuming reading documentation is, the more painful and reluctant its use will be. You must avoid hazy points or catch-all. In addition to it being unhelpful, the catch-all document may be confusing and counterproductive.

    Last but not least duplicates introduce noise and mislead users. This is why you should always focus on the relevant content and avoid duplicating content within your site (e.g. landing page which contains all of the information, summing up, etc.). In cases where the duplicates’s existence is expected since it belongs to another dataset (e.g. a different version), you should use facets.

    Conciseness

    What is clearly thought out is clearly and concisely expressed.

    The Crawler, The Discovery Process, Exhaustivity

    Since every documentation should be complete, the search experience must cover the whole of it. By default our scraper is crawling your website: it follows hyperlinks referenced from the scraped pages. If these links point to a page which belongs to the allowed domain, this precise page will be scraped, crawled and so forth. This de facto discovery is really practical but not exhaustive enough. If for any reason, a webpage could not be referenced from another covered one, the scope of the search will be imperfect. For those reasons we highly recommend that you use a Sitemap. This lists every page of your web site and will be used as the main source of truth and it will define the roadmap of our scraping. Beside this exhaustivity, using a sitemap introduces a significant performance improvement for our scraper.

    \ No newline at end of file diff --git a/docs/build/documentation/docsearch/recommendations/index.html.gz b/docs/build/documentation/docsearch/recommendations/index.html.gz new file mode 100644 index 00000000..edfbc325 Binary files /dev/null and b/docs/build/documentation/docsearch/recommendations/index.html.gz differ diff --git a/docs/build/documentation/index.html b/docs/build/documentation/index.html new file mode 100644 index 00000000..1bbc8001 --- /dev/null +++ b/docs/build/documentation/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/build/documentation/index.html.gz b/docs/build/documentation/index.html.gz new file mode 100644 index 00000000..3838254c Binary files /dev/null and b/docs/build/documentation/index.html.gz differ diff --git a/docs/build/index.html b/docs/build/index.html new file mode 100644 index 00000000..3cc76678 --- /dev/null +++ b/docs/build/index.html @@ -0,0 +1,10 @@ + DocSearch

    The easiest way to add search to your documentation

    Get Started. It’s FREE!

    We’ll crawl the documentation pages of your website and index them on Algolia.

    We’ll email you the code you need to integrate the search into your documentation.

    Refer to Algolia's Privacy Policy for more information on how we use and protect your data

    Why DocSearch?

    We're kind of scratching our own itch here. As developers, we spend a lot of time reading documentation, and it isn’t always easy to find the information we need.

    No one's to blame, building a good search for a documentation is a complex challenge.
 We just happen to have a lot of experience doing that, and we want to share it with the world.

    DocSearch is live

    We’ve integrated DocSearch into several open source projects. Take a look.

    750+ other websites implementations

    How it works

    How it works

    1 We crawl your documentation pages

    We built a website crawler designed to index every section of your documentation.

    Just send us the URL of your documentation, and we’ll periodically run the crawler so you’re always up-to-date.

    2 We configure your search experience

    You don’t need to configure any settings or even have an Algolia account.

    We take care of all of this automatically to ensure the best documentation search experience.

    3 You add the search autocomplete to your UI

    We’ll send you a few lines of code to integrate Algolia autocomplete and power your search.

    You will receive the same speed, relevance and best-in-class UX as our paying customers.

    Get started

    We’ll get back to you within a few hours with everything you need to integrate your new search into your website.
    Oh, and did we mention it's FREE? No commitment. No subscription. Everything is on us! And it won't change.

    Get Started. It’s FREE!

    We’ll crawl the documentation pages of your website and index them on Algolia.

    We’ll email you the code you need to integrate the search into your documentation.

    Refer to Algolia's Privacy Policy for more information on how we use and protect your data

    \ No newline at end of file diff --git a/docs/build/index.html.gz b/docs/build/index.html.gz new file mode 100644 index 00000000..a009a5bf Binary files /dev/null and b/docs/build/index.html.gz differ diff --git a/docs/build/sitemap.xml b/docs/build/sitemap.xml new file mode 100644 index 00000000..3540b436 --- /dev/null +++ b/docs/build/sitemap.xml @@ -0,0 +1,42 @@ + + + + https://community.algolia.com/404/ + + + https://community.algolia.com/documentation/docsearch/introduction/ + + + https://community.algolia.com/documentation/docsearch/how-it-works/ + + + https://community.algolia.com/documentation/docsearch/recommendations/ + + + https://community.algolia.com/documentation/docsearch-scraper/overview/ + + + https://community.algolia.com/documentation/docsearch-scraper/config-options/ + + + https://community.algolia.com/documentation/docsearch-autocomplete/customize-autocomplete-styles/ + + + https://community.algolia.com/documentation/docsearch-autocomplete/configuring-the-search/ + + + https://community.algolia.com/documentation/docsearch-FAQ/customize-configuration-file/ + + + https://community.algolia.com/ + + + https://community.algolia.com/partials/header/ + + + https://community.algolia.com/partials/marketing/ + + + https://community.algolia.com/templates/redirect/ + + diff --git a/docs/config.json b/docs/config.json new file mode 100644 index 00000000..8caf5758 --- /dev/null +++ b/docs/config.json @@ -0,0 +1,127 @@ +{ + "site": { + "project": "DocSearch", + "title": "DocSearch: Search made for documentation", + "description": "The easiest way to add search to your documentation", + "url": "https://community.algolia.com/docsearch", + "repo": "https://github.com/algolia/docsearch" + }, + "placeholders": { + "docSearchJSVersion": "2" + }, + "sidebar": [ + { + "title": "Essentials", + "pages": [ + { + "title": "What is DocSearch?", + "url": "what-is-docsearch.html" + }, + { + "title": "How does it work?", + "url": "how-does-it-work.html" + }, + { + "title": "Who can apply?", + "url": "who-can-apply.html" + }, + { + "title": "Apply now", + "url": "apply.html" + }, + { + "title": "Integrations", + "url": "integrations.html" + }, + { + "title": "Tips", + "url": "tips.html" + }, + { + "title": "FAQ", + "url": "faq.html" + } + ] + }, + { + "title": "Dropdown UI", + "pages": [ + { + "title": "Overview", + "url": "dropdown.html" + }, + { + "title": "Styling", + "url": "styling.html" + }, + { + "title": "Behavior", + "url": "behavior.html" + } + ] + }, + { + "title": "Crawler", + "pages": [ + { + "title": "Overview", + "url": "crawler-overview.html" + }, + { + "title": "Inside the engine", + "url": "inside-the-engine.html" + }, + { + "title": "Config files", + "url": "config-file.html" + }, + { + "title": "Run your own", + "url": "run-your-own.html" + } + ] + } + ], + "redirects": [ + { + "from": "documentation/docsearch/introduction/index.html", + "to": "what-is-docsearch.html" + }, + { + "from": "documentation/docsearch/how-it-works/index.html", + "to": "how-does-it-work.html" + }, + { + "from": "documentation/docsearch/recommendations/index.html", + "to": "tips.html" + }, + { + "from": "documentation/docsearch-scraper/overview/index.html", + "to": "crawler-overview.html" + }, + { + "from": "documentation/docsearch-scraper/config-options/index.html", + "to": "config-file.html" + }, + { + "from": "documentation/docsearch-autocomplete/customize-autocomplete-styles/index.html", + "to": "styling.html" + }, + { + "from": "documentation/docsearch-autocomplete/configuring-the-search/index.html", + "to": "behavior.html" + }, + { + "from": "documentation/docsearch-FAQ/customize-configuration-file/index.html", + "to": "config-file.html" + }, + { + "from": "documentation/docsearch-FAQ/global-questions/index.html", + "to": "faq.html" + }, + { + "from": "documentation/docsearch-FAQ/does-my-project-qualify/index.html", + "to": "faq.html" + } + ] +} diff --git a/docs/config.rb b/docs/config.rb deleted file mode 100644 index 487910ab..00000000 --- a/docs/config.rb +++ /dev/null @@ -1,85 +0,0 @@ -require 'better_errors' -require 'extensions/custom_extension' -require 'lib/php_code_blocks' -require 'sprockets/es6' -require 'lib/hash_ostruct' - -activate :custom_extension - -set :css_dir, 'doc/assets/stylesheets' -set :js_dir, 'doc/assets/javascripts' -set :images_dir, 'doc/assets/images' - -ignore 'doc/assets/javascripts/vendors/*.js' -ignore 'doc/assets/stylesheets/vendors/**/*' -ignore 'templates/*' -ignore 'layouts/*' -ignore 'partials/*' -ignore '**.yml' - -page '/documentation/*', layout: 'page' - -#app.logger.level = :debug -redirects = [] - -config[:stage] = ENV['STAGE'] || 'develop' - -config[:google_tag_mangager_id] = case config[:stage] - when 'beta' - 'GTM-K4DF9Q' - when 'production' - 'GTM-N8JP8G' - else - 'GTM-K4DF9Q' -end - -activate :vcs_time -activate :syntax -activate :sprockets do |s| - s.supported_output_extensions = ['.js', '.es6'] - s.expose_middleman_helpers = true -end - -set(:port, 4569) -set :haml, { :ugly => true, :format => :html5 } -set :markdown_engine, :kramdown -set :markdown, parse_block_html: true, fenced_code_blocks: true, input: 'GFM', with_toc_data: true, smartypants: true, hard_wrap: false -set :show_exceptions, false - -activate :directory_indexes - -configure :server do - set :debug_assets, true - #activate :livereload - use BetterErrors::Middleware - BetterErrors.application_root = __dir__ -end - -# Build-specific configuration -configure :build do - activate :minify_css - activate :minify_javascript - #activate :asset_hash - activate :minify_html - activate :autoprefixer - activate :gzip -end - -# Legacy Redirects -app_data.redirects.each do |redirect| - redirects.push({ from: redirect.from, to: redirect.to }) -end - - -ready do - redirects.each do |r| - proxy r[:from][1..-1], 'templates/redirect.html', locals: {url: r[:to]}, ignore: true, layout: nil - end - - proxy '/_redirects', 'templates/redirects', locals: {redirects: redirects}, ignore: true - - sitemap.ensure_resource_list_updated! - app.sitemap.ensure_resource_list_updated! - - app_data.set_auto_reload_files(app.config[:stage] != 'production') -end \ No newline at end of file diff --git a/docs/config.ru b/docs/config.ru deleted file mode 100644 index b1d13a54..00000000 --- a/docs/config.ru +++ /dev/null @@ -1,13 +0,0 @@ -require 'middleman-core/load_paths' -::Middleman.setup_load_paths - -require 'middleman-core' -require 'middleman-core/rack' - -require 'fileutils' -FileUtils.mkdir('log') unless File.exist?('log') -::Middleman::Logger.singleton("log/#{ENV['RACK_ENV']}.log") - -app = ::Middleman::Application.new - -run ::Middleman::Rack.new(app).to_app diff --git a/docs/extensions/custom_extension.rb b/docs/extensions/custom_extension.rb deleted file mode 100644 index 81d00072..00000000 --- a/docs/extensions/custom_extension.rb +++ /dev/null @@ -1,76 +0,0 @@ -require 'lib/sitemap_tree' -require 'lib/data_store' - -class CustomExtension < Middleman::Extension - expose_to_config :unslug - expose_to_template :unslug - - expose_to_template :sitemap_tree - expose_to_config :sitemap_tree - expose_to_template :app_data - expose_to_config :app_data - expose_to_application :app_data - - def app_data - @@app_data - end - - def sitemap_tree - @@sitemap_tree - end - - def initialize(app, options_hash={}, &block) - @@sitemap_tree = SitemapTree.new(nil) - @@app_data = DataStore.new - super - end - - def manipulate_resource_list(resources) - all_resources = [] - - resources = resources.sort do |a,b| - if a.file_descriptor.nil? - -1 - elsif b.file_descriptor.nil? - 1 - else - a.file_descriptor.full_path.to_s <=> b.file_descriptor.full_path.to_s - end - end - - resources.each do |resource| - if resource.instance_of?(Middleman::Sitemap::Extensions::RedirectResource) or resource.path.include?('.yml') - all_resources.push(resource) - next - end - - resource.destination_path = resource.destination_path.gsub(/\/[0-9]+?-/, '/') - resource.add_metadata({locals: {render_toc: true}}) - - data_file = resource.file_descriptor.full_path.to_s.gsub(/([^\.]+?)\..*?$/, '\1.yml') - - if File.exist?(data_file) and data_file != resource.file_descriptor.full_path.to_s - data = DataStoreFile.new(data_file, File.basename(data_file), File.basename(data_file, 'yml'), nil) - - resource.add_metadata({locals: {guide_snippet: data, snippet_file: Pathname(data_file).relative_path_from(app.source_dir)}}) - end - - resource.add_metadata({page: {popularity: (app_data.google_analytics[resource.destination_path.gsub('/index.html', '').gsub('.html', '')] || 0)}}) - - @@sitemap_tree.add(resource) - all_resources.push(resource) - end - - all_resources - end - - def unslug(slug) - if not app_data.docs.unslug[slug].nil? - app_data.docs.unslug[slug] - else - slug.gsub('-', ' ').capitalize - end - end -end - -::Middleman::Extensions.register(:custom_extension, CustomExtension) \ No newline at end of file diff --git a/docs/ga.p12 b/docs/ga.p12 deleted file mode 100644 index 87bf9ff1..00000000 Binary files a/docs/ga.p12 and /dev/null differ diff --git a/docs/helpers/render_helper.rb b/docs/helpers/render_helper.rb deleted file mode 100644 index 2fc47c75..00000000 --- a/docs/helpers/render_helper.rb +++ /dev/null @@ -1,264 +0,0 @@ -require 'erubis' - -module RenderHelper - def get_current_language() - if respond_to?(:current_page) - current_page.metadata[:locals][:language] - else - nil - end - end - - def echo(str, template_data = nil) - if str.nil? - return "" - end - - language = (template_data and template_data[:language]) ? template_data[:language] : get_current_language - - if respond_to?(:current_page) - current_page.metadata[:locals].keys.each do |key| - singleton_class.send(:define_method, key) { current_page.metadata[:locals][key] } - end - end - - if (not template_data.nil?) and template_data - template_data.each do |key, value| - singleton_class.send(:define_method, key) { value } - - if [:method_snippet_obj, :parameter_snippet_obj].include?(key) and not value.nil? - if key == :method_snippet_obj - link = edit_link("/data/api_methods/#{value['method_key']}/#{value['method_key']}_snippet.yml", 'this snippet') - end - if key == :parameter_snippet_obj - link = edit_link("/data/parameters/#{value['param_key']}.yml", 'this snippet') - end - - singleton_class.send(:define_method, '_snippet') { value } - - value.to_h.keys.each do |snippet_key| - singleton_class.send(:define_method, snippet_key) { value[snippet_key] } - end - end - end - end - - template = Erubis::Eruby.new(str) - res = template.result(binding) - end - - def render_current_page(options) - if config[:stage] == 'develop' - current_page.render({layout: 'raw'}, options) - else - @@page_content ||= {} - @@page_content[current_page.destination_path] ||= current_page.render({layout: 'raw'}, options) - @@page_content[current_page.destination_path] - end - end - - def snippet(name, force_tabs=false) - snippet = nil - - if name.instance_of?(String) - snippet = current_page.metadata[:locals][:guide_snippet] - if snippet - edit_link = edit_link("/source/#{current_page.metadata[:locals][:snippet_file]}", 'snippet') - if snippet[name.to_sym] - snippet = snippet[name.to_sym] - end - else - snippet = name - return "
    \n\n#{echo snippet}\n\n
    " - end - else - snippet = name - edit_link = edit_link(snippet.github_link) - end - - language = get_current_language - - if snippet - if language and not force_tabs - if snippet[language.code.to_sym] - "
    #{edit_link}\n\n#{echo snippet[language.code.to_sym]}\n\n
    " - else - raise("snippet #{name} in #{language.code} not found for #{current_page.destination_path}") - end - else - ordered_languages = [:php, :ruby, :javascript, :python, :swift, :android, :csharp, :java, :go, :scala] - languages = snippet.keys - languages.delete(:rest_example) - languages.delete(:method_key) - languages.delete(:java1) - - languages.sort_by!{|x| i = ordered_languages.index(x); i.nil? ? 1000: i} - - out = [] - out << "
    #{edit_link}" - out << "" - out << "
    " - out << "
    " - out << '' - out << '
    ' - out << '
    ' - languages.each_with_index do |language_code, i| - if snippet[language_code.to_sym].strip.length > 0 - out << "
    #{snippet[language_code.to_sym].gsub(/```(.+?)$/, "```\\1*")}
    " - end - end - out << '
    ' - out << '
    ' - - out.join("\n") - end - else - raise("snippet #{name} not found for #{current_page.destination_path}") - end - end - - def haml(template_path, locals) - Middleman::Renderers::HamlTemplate.new(template_path).render(self, locals) - end - - def markdown(content) - Tilt['markdown'].new(nil, 1, { - parse_block_html: true, fenced_code_blocks: true, input: 'GFM', with_toc_data: true, smartypants: true, hard_wrap: false - }) { echo(content) }.render(self) - end - - def render_readme_section(template_path, language) - content = Middleman::Renderers::ERb::Template.new(template_path).render(self, {language: language}) - - if template_path == 'source/doc/tutorials/1-getting-started/quick-start-with-the-api-client.html.md.erb' - content = content.gsub(/
    .*?<\/section>(.*)
    .*?<\/section>/smu, '\1') - end - content.gsub(//smu, '') - .gsub(/(\-\-\-.+?\-\-\-)/m, '') - .gsub(/(([^\n]+\n)+)\{\:(.*\s+)?\.alert-info(\s+.*)?\}/, '**Note:** \1') # render `alert-info` with "Note:" prefix - .gsub(/(([^\n]+\n)+)\{\:(.*\s+)?\.alert-warning(\s+.*)?\}/, '**Warning:** \1') # render `alert-warning` with "Warning:" prefix - .gsub(/(([^\n]+\n)+)\{\:(.*\s+)?\.alert-danger(\s+.*)?\}/, '**Caution:** \1') # render `alert-danger` with "Caution:" prefix - .gsub(/(\{\:.+?\})/, '') # catch-all case to remove any remaining Inline Attribute Lists (IAL) - .gsub(/(\{\#.+?\})/, '') - .gsub(/<\/?section>/, '') - .gsub(//, '') - .gsub(/<\/div>/, '') - .gsub(//, '') - .gsub(/<\/section>/, '') - .gsub(/\n{2,}/, "\n\n") - .gsub(/\[(.+?)\]\((\/doc\/.+?)\)/, '[\1](https://www.algolia.com\2)') - end - - def frontend(language) - ['android', 'javascript', 'swift'].include?(language.code) - end - - def backend(language) - ['csharp', 'go', 'java1', 'java', 'javascript', 'php', 'python', 'ruby', 'scala'].include?(language.code) - end - - def framework(language) - ['rails', 'laravel', 'symfony', 'django'].include?(language.code) - end - - def parameters_dir_got_scope(param_dir, scope) - param_dir.keys.each do |parameter_name| - parameter = param_dir[parameter_name] - if parameter.scope.include?(scope) - return true - end - end - false - end - - def fetch_parameter(name) - unless name.is_a? String - return name - end - - app_data.parameters.each do |key, group| - group.each do |param_key, param| - if param.name == name || param.name == "#{name} (deprecated)" - return param - end - end - end - - raise("Did not find param #{name}") - end - - def parameter_toc(parameter_name) - param = fetch_parameter parameter_name - "- #{parameter_link(parameter_name)} `#{param.scope.join('`, `')}`" - end - - def parameter_link_html(param) - "/doc/api-reference/api-parameters/#{param.name}/" - end - - def parameter_link(parameter_name) - param = fetch_parameter parameter_name - name = param.name - - "[#{name}](#{parameter_link_html(param)})" - end - - def anchorize(string) - if string.nil? - "NOT FOUND ANCHOR" - else - string.gsub(/\s/, "-").gsub(/[()\/",`'&<>\.]/, "").downcase - end - end - - def generate_id(str) - id = (str || '').gsub(/\s/, "-").gsub(/[()\/",`']/, "").downcase - @ids ||= {} - @ids[id] ||= 0 - @ids[id] += 1 - @ids[id] == 1 ? id : "#{id}-#{@ids[id]}" - end - - def method_toc(method_name) - api_method = app_data.api_methods.flatten.select{|api_method| api_method.base_file_name == method_name}.first - - - if api_method.nil? - raise "issue generating name for #{method_name}" - end - - "[#{api_method.name}](/doc/api-reference/api-methods/#{api_method.base_file_name.gsub('_', '-')}/)" - end - - def edit_link(file, ressource_name='', classes='') - if current_page and not current_page.metadata[:locals][:readme].nil? and current_page.metadata[:locals][:readme] - '' - else - out = [] - out << "" - out.join('') - end - end -end diff --git a/docs/helpers/svg_helper.rb b/docs/helpers/svg_helper.rb deleted file mode 100644 index 535d5931..00000000 --- a/docs/helpers/svg_helper.rb +++ /dev/null @@ -1,25 +0,0 @@ -module SvgHelper - def inline_svg(path, message=nil) - @svg ||= {} - - return @svg[path] if @svg[path] - - if File.exist?("source/docsearch/assets/images/#{path}") - full_path = "source/docsearch/assets/images/#{path}" - - @svg[path] = File.open(full_path, "rb") do |file| - file.read - end - else - message = "Could not find SVG file @ #{path}" if message.nil? - if config[:stage] == 'develop' - p(message) - else - raise message - end - end - - @svg[path] - end -end - diff --git a/docs/helpers/toc_helper.rb b/docs/helpers/toc_helper.rb deleted file mode 100644 index 0fed06b2..00000000 --- a/docs/helpers/toc_helper.rb +++ /dev/null @@ -1,104 +0,0 @@ -module TocHelper - def build_toc(content, path) - @@toc ||= {} - return @@toc[content] if @@toc[content] - - doc = Nokogiri::HTML(content) - h1 = [] - toc = [] - (doc / 'h1, h2, h3, h4').each do |h_node| - h = { - level: h_node.name[1].to_i, - value: h_node.children.map { |child| child.to_s }.join.gsub(/(\{\#.+?\})/, ''), - anchor: h_node['id'], - path: path.gsub(/\/index\.html/, ''), - children: [] - } - if toc.empty? - toc << h - next - end - while toc.size > 0 && h[:level] <= toc.last[:level] - tmp = toc.pop - h1 << tmp if tmp[:level] == 1 - end - if toc.empty? - toc << h - else - toc.last[:children] << h - toc << h - end - end - @@toc[content] = h1 + toc.select { |h| h[:level] == 1 } - end - - def get_h3s_toc(node) - node.css('h3').map do |c_node| - { - level: c_node.name[1].to_i, - value: c_node.children.map { |child| child.to_s }.join, - anchor: c_node['id'] - } - end - end - - def get_guide_toc(page_content) - doc = Nokogiri::HTML(page_content) - toc = [] - (doc / 'h2').each do |h_node| - full_toc_section = h_node.ancestors('.full-toc').first - h = { - level: h_node.name[1].to_i, - value: h_node.children.map { |child| child.to_s }.join, - anchor: h_node['id'], - children: full_toc_section ? get_h3s_toc(full_toc_section) : [] - } - toc.push(h) - end - toc - end - - def get_api_client_toc(language) - is_readme = (not current_page.metadata[:locals][:readme].nil? and current_page.metadata[:locals][:readme]) - - @@api_clients_toc ||= {} - return @@api_clients_toc[language.code] if @@api_clients_toc[language.code] and not is_readme - - tocs = [] - - if is_readme and (backend(language) or frontend(language)) and not language.code == 'java1' - markdown_content = current_page.render({}, {render_toc: false, readme: is_readme, language: language}).gsub('# ', '') - rendered_content = Tilt['markdown'].new { markdown_content}.render(self) - tocs << build_toc(rendered_content, current_page.path) - else - sitemap.resources.each do |page| - if page.path.include? "doc/api-client/#{language.code}/" and ((not /\/parameters\/.+?$/.match(page.path)) or /\/parameters\/index\.html$/.match(page.path)) - rendered_content = page.render({layout: 'raw'}, {render_toc: false, readme: is_readme, language: language}) - tocs << build_toc(rendered_content, page.path) - end - end - end - - toc_flatten = tocs.flatten - - unless is_readme - @@api_clients_toc[language.code] = toc_flatten - end - - toc_flatten - end - - def get_single_page_guide_toc(page_content, page) - build_toc(page_content, page.path) - end - - def get_titles_for_page(page_content, tag) - doc = Nokogiri::HTML(page_content) - (doc / tag).map do |h_node| - { - value: h_node.children.map { |child| child.to_s }.join, - anchor: h_node['id'] - } - end - end -end diff --git a/docs/lib/data_store.rb b/docs/lib/data_store.rb deleted file mode 100644 index 6098a1be..00000000 --- a/docs/lib/data_store.rb +++ /dev/null @@ -1,127 +0,0 @@ -require 'pathname' -class DataStoreFile - attr_accessor :path, :file_name, :base_file_name, :parent, :github_path, :position - - def initialize(path, file_name, base_file_name, parent) - @path = path - @github_path = @path.gsub(Dir.pwd, '') - @file_name = file_name - @base_file_name = base_file_name - @parent = parent - @data = YAML.load_file(@path).to_ostruct(@github_path) - @@i ||= 0 - @position = @@i - @@i = @@i + 1 - end - - def method_missing(method_id, *arguments, &block) # We define this method to be able to forward to the actual data - @data.public_send(method_id, *arguments, &block) - end - - def current_path - @path - end - - def refresh - if @parent.get_auto_reload_files # make sure we don't refresh at build time - @data = YAML.load_file(@path).to_ostruct(@github_path) - end - end - - def to_s - "" - end -end - -class DataStore - attr_reader :base_file_name, :current_path, :parent - - def initialize(current_path=nil, base_file_name=nil, parent=nil) - if current_path.nil? - @current_path = Dir.pwd + '/app_data' - else - @current_path = current_path - end - @cache = {} - @parent = parent - @base_file_name = base_file_name - @@auto_reload_files = false - - - load_dir # will preload everything at startup - end - - def load_dir - Dir.entries(@current_path).sort_by{|file| file}.each do |file| - if file == '.' or file == '..' - next - end - - file_path = @current_path + '/' + file - - # remove numbers and first '-' from the filename so we can - # - generate nice urls - # - omit the number when accessing the object - base_file_name = file.gsub(/[0-9]*+-?(.+)/, '\1') - - if File.file?(file_path) - method_name = File.basename(base_file_name, File.extname(file)) - @cache[method_name.to_s] = DataStoreFile.new(file_path, file, method_name, self) - elsif File.directory?(file_path) - d = DataStore.new(file_path, base_file_name, self) - @cache[base_file_name] = d - end - end - end - - def get_auto_reload_files - @@auto_reload_files - end - - def set_auto_reload_files(is_auto_releoad) - @@auto_reload_files = is_auto_releoad - end - - def flatten - elements = [] - - @cache.sort_by{|k, v| v.current_path }.each do |k, v| - if v.instance_of?(DataStoreFile) - v.refresh - elements.push(v) - else - elements.push(*v.flatten) - end - end - - elements - end - - def method_missing(method_id, *arguments, &block) - method_name = method_id - - # Make sure we are able to access data files with an array syntax - if method_id == :[] - method_name = arguments[0].to_sym - end - - if @cache.has_key?(method_name.to_s) - if @@auto_reload_files and @cache[method_name.to_s].instance_of?(DataStoreFile) - @cache[method_name.to_s].refresh - end - - return @cache[method_name.to_s] - end - - # Make sure we forward the access to the data - if @cache.respond_to?(method_name) - return @cache.public_send(method_name, &block) - end - - raise('Not found: ' + @current_path + '/' + method_name.to_s + '.yml') - end - - def to_s - "" - end -end \ No newline at end of file diff --git a/docs/lib/google_analytics_downloader.rb b/docs/lib/google_analytics_downloader.rb deleted file mode 100644 index ea0278b8..00000000 --- a/docs/lib/google_analytics_downloader.rb +++ /dev/null @@ -1,41 +0,0 @@ -require 'google/api_client' - -GA_P12 = File.expand_path(File.join(__FILE__, '..', '..', 'ga.p12')) - -class GoogleAnalyticsDownloader - - def self.fetch - client = Google::APIClient.new - - client.authorization = Signet::OAuth2::Client.new( - :token_credential_uri => 'https://accounts.google.com/o/oauth2/token', - :audience => 'https://accounts.google.com/o/oauth2/token', - :scope => 'https://www.googleapis.com/auth/analytics.readonly', - :issuer => "13001872082-jvmq5jsb2clnsh64879genqijvgg2k41@developer.gserviceaccount.com", - :signing_key => Google::APIClient::PKCS12.load_key(GA_P12, 'notasecret') - ).tap { |auth| auth.fetch_access_token! } - - api_method = client.discovered_api('analytics', 'v3').data.ga.get - - result = client.execute(:api_method => api_method, :parameters => { - 'ids' => 'ga:106545591', - 'start-date' => (Date.today - 30).strftime('%Y-%m-%d'), - 'end-date' => Date.today.strftime('%Y-%m-%d'), - 'dimensions' => 'ga:pagePath', - 'metrics' => 'ga:pageViews', - 'samplingLevel' => 'HIGHER_PRECISION', - "max_results" => 1000, - 'filters' => 'ga:pagePath=~www.algolia.com/doc/*;ga:pageViews>10' - }) - stats = {} - - result.data.rows.each do |row| - path = row[0].gsub(/.*?algolia\.com\/doc\/(.*?)$/, 'doc/\1').split(/[?#]/).first.gsub('index.html', '').gsub(/\/$/, '') - stats[path] ||= 0 - stats[path] += row[1].to_i - end - - stats - end - -end diff --git a/docs/lib/hash_ostruct.rb b/docs/lib/hash_ostruct.rb deleted file mode 100644 index 2240a5dd..00000000 --- a/docs/lib/hash_ostruct.rb +++ /dev/null @@ -1,56 +0,0 @@ -require 'ostruct' - -class CustomStruct < OpenStruct - def initialize(hash, path) - @path = path - super(hash) - end - - def github_link - @path - end - - - # OpenStruct does not allow to call hash methods so we forward them if it exists - # This also means that we are not able to have keys named like hash methods - def method_missing(method_id, *arguments, &block) - if to_h.respond_to?(method_id) - to_h.public_send(method_id, &block) - else - super(method_id, *arguments) - end - end -end - -class Hash - @path = nil - # Recursively converts a Hash and all nested Hashes to - def to_ostruct(path) - @path = path - arr = map do |k, v| - case v - when Hash - [k, v.to_ostruct(@path)] - when Array - [k, v.map { |el| el.respond_to?(:to_ostruct) ? el.to_ostruct(@path) : el }] - else - [k, v] - end - end - CustomStruct.new(Hash[arr], @path) - end -end - -class Array - @path = nil - def to_ostruct(path) - @path = path - map do |item| - if item.respond_to? :to_ostruct - item.to_ostruct(@path) - else - item - end - end - end -end \ No newline at end of file diff --git a/docs/lib/php_code_blocks.rb b/docs/lib/php_code_blocks.rb deleted file mode 100644 index ae926d92..00000000 --- a/docs/lib/php_code_blocks.rb +++ /dev/null @@ -1,59 +0,0 @@ -require 'middleman-syntax/formatters' - -module Middleman - module Syntax - module Highlighter - mattr_accessor :options - - # A helper module for highlighting code - def self.highlight(code, language=nil, opts={}) - tabbed = false - - if language and language[-1] == '*' - language = language.gsub('*', '') - tabbed = true - end - - if language == 'php' - code = "' - s << '' - s << '
    ' - s << '
    ' - s << '' - s << '
    ' - s << '
    ' - end - s << formatter.format(lexer.lex(code, lexer_options)) - if language and not tabbed - s << '
    ' - s << '' - end - s - end - end - end -end - diff --git a/docs/lib/sitemap_tree.rb b/docs/lib/sitemap_tree.rb deleted file mode 100644 index b730105d..00000000 --- a/docs/lib/sitemap_tree.rb +++ /dev/null @@ -1,170 +0,0 @@ -class SitemapTree - def initialize(url_part) - @parent = nil - @children = [] - @val = nil - @url_part = url_part - @@urls ||= {} - @position = nil - @url = nil - end - - def final_url(url) - url.gsub('/index.html', '').gsub('.html', '') - end - - def get_final_url - "/#{final_url(@url)}/" - end - - def from_resource(resource) - @@urls[self.final_url(resource.destination_path).to_sym] - end - - def from_url(url) - @@urls[url.to_sym] - end - - def get_url - @url - end - - def set_url(url) - @url = url - end - - def add(resource) - if resource.destination_path.end_with?('.js') or resource.destination_path.end_with?('.css') - return - end - url = self.final_url(resource.destination_path) - parts = url.split('/') - used_parts = [] - self.add_parts(parts, used_parts, resource) - end - - def ancestor(part, level=0) - ancestors = [self] - ancestor = self - - while (not ancestor.nil?) and ancestor.get_url_part != part - ancestor = ancestor.get_parent - ancestors.unshift(ancestor) - end - - if (not ancestor.nil?) and ancestor.get_url_part == part - ancestors[level] - else - nil - end - end - - def get_position - @position - end - - def set_position(position) - @position = position - end - - def flatten(take=false) - resources = [] - - if take and not @val.nil? and (@children.length == 0 || (@val.metadata[:page][:languages] and @val.metadata[:page][:languages].length > 0)) - resources.push(self) - end - - self.get_children.each do |child| - resources = resources + child.flatten(true) - end - - resources - end - - def add_parts(parts, used_parts, val) - if (parts.length) <= 0 - @val = val - return - end - - current_part = parts.shift - used_parts.push(current_part) - child = @children.select{|child| child.get_url_part == current_part} - child = child.length > 0 ? child[0] : nil - - if child.nil? - child = SitemapTree.new(current_part) - child.set_parent(self) - url = used_parts.join('/') - child.set_url(url) - @@urls[url.to_sym] = child - child.set_position(@children.length) - @children.push(child) - end - - child.add_parts(parts, used_parts, val) - end - - def find(parts) - if parts.length <= 0 - return self - end - - current_part = parts.shift - child = @children.select{|child| child.get_url_part == current_part} - - if child.length > 0 - child[0].find(parts) - else - nil - end - end - - def siblings - @parent.get_children - end - - def set_val(val) - @val = val - end - - def get_val - @val - end - - def get_url_part - @url_part - end - - def set_parent(parent) - @parent = parent - end - - def get_children - @children - end - - def get_pages - @children.select{|c| c.get_val} - end - - def get_parent - @parent - end - - def pretty_print (space) - spaces = space >= 0 ? " " * space : '' - - if @url_part - print(spaces + @url_part + "\n") - end - - if @val - print(spaces + " -> r\n") - end - - @children.each do |child| - child.pretty_print(space + 1) - end - end -end \ No newline at end of file diff --git a/docs/link_checker.rb b/docs/link_checker.rb deleted file mode 100644 index ccdaaf18..00000000 --- a/docs/link_checker.rb +++ /dev/null @@ -1,79 +0,0 @@ -require 'nokogiri' - -require 'find' - -html = [] -Find.find('build') do |path| - html << path if path =~ /.*\.html$/ -end - -files = {} -links = [] -anchors = [] - -html.each do |page| - content = File.read(page) - files[page] = Nokogiri::HTML(content) - - (files[page] / 'a, link').each do |link| - href = link['href'].gsub(/http(s)?:\/\/(www\.)?algolia\.com\/doc\//, '/doc/') - .gsub(/\/$/, '') - .gsub(/\/#/, '#') - - if href.start_with?('javascript:', 'http://', 'https://', 'mailto:', '//') or href.end_with?('.css', '.ico', 'png') or href == '#' - next - end - - if href.start_with?('doc', '/doc') - parts = href.split('#') - link = "build#{parts[0]}/index.html" - anchor = parts.size >= 2 ? "##{parts[1]}": nil - links.push({link: link, from: page}) - - unless anchor.nil? - anchors.push({link: link, anchor: anchor, from: page}) - end - elsif href.start_with?('#') - anchors.push({link: page, anchor: href, from: page}) - end - end -end - -errors_count_links = 0 -errors_count_anchors = 0 - -links = links.uniq{ |x| "#{x[:link]}"} - -links.each do |link| - unless File.file?(link[:link]) - errors_count_links += 1 - print "[ERROR] Did not find #{link[:link]} included in page #{link[:from]}\n" - end -end - -anchors = anchors.uniq{ |x| "#{x[:link]}#{x[:anchor]}"} - -anchors.each do |anchor| - if files[anchor[:link]].nil? - errors_count_links += 1 - print "[ERROR] Did not find #{anchor[:anchor]} included in page #{anchor[:from]}\n" - next - end - - begin - matching_anchors = files[anchor[:link]].css(anchor[:anchor]) - rescue Nokogiri::CSS::SyntaxError - matching_anchors = [] - end - - if matching_anchors.size <= 0 - errors_count_anchors += 1 - print "[ERROR] Did not find #{anchor[:anchor]} included in page #{anchor[:from]}\n" - end -end - -print "Checked #{links.size} links and #{anchors.size} anchors. #{errors_count_links} bad link. #{errors_count_anchors} bad anchors\n" - -if errors_count_anchors + errors_count_links > 0 - exit(1) -end \ No newline at end of file diff --git a/docs/optimiseFonts.js b/docs/optimiseFonts.js deleted file mode 100644 index ce71e771..00000000 --- a/docs/optimiseFonts.js +++ /dev/null @@ -1,58 +0,0 @@ -const fs = require('fs'), - path = require('path'), - glob = require('glob'), - ttf2woff2 = require('ttf2woff2'), - ttf2woff = require('ttf2woff/index.js'), - crypto = require('crypto'); - -const last = (arr) => { - return arr[arr.length-1]; -} - -const files = glob.sync(path.resolve(__dirname, 'source/doc/assets/fonts/*.ttf')); -const replaceFontNameRegexp = /^@.*\{[^{]+?\}/gm; - -const fileMap = files.reduce((p,f) => { - - const name = last(f.split('/')).replace('.ttf',''); - const woffName = f.replace('.ttf', '.woff'); - - const ttfBuffer = fs.readFileSync(f); - const woffBuffer = fs.readFileSync(woffName); - - const woff2 = ttf2woff2(ttfBuffer); - - const woffHash = crypto.createHash('md5').update(woffBuffer).digest('hex'); - const ttfHash = crypto.createHash('md5').update(ttfBuffer).digest('hex') - - const woff2Encode = new Buffer(woff2).toString('base64'); - // const woffEncode = new Buffer(woff).toString('base64'); - - const cssFontFamily = `@font-face { - font-family: '${name}'; - src: url('data:application/font-woff2;charset=utf-8;base64, ${woff2Encode}') format('woff2'), - url('../../fonts/${name}.woff?${woffHash}') format('woff'), - url('../../fonts/${name}.ttf?${ttfHash}') format('truetype'); - font-weight: normal; - font-style: normal; -}` - - const key = f.split('-')[1] === 'brands' ? 'source/doc/assets/stylesheets/_brands.scss' : 'source/doc/assets/stylesheets/vendors/_icons.scss'; - p[key] = cssFontFamily; - - return p; -},{}); - -// Write stylesheet -Object.keys(fileMap).forEach(key => { - console.log(key) - fs.readFile(key, 'utf-8', (err, data) => { - if(err) throw new Error(`Error when reading ${key}`) - - const replacedContent = data.replace(replaceFontNameRegexp, fileMap[key]); - - fs.writeFileSync(key, replacedContent, 'utf8', function (err) { - if (err) throw new Error(`Error when writing file ${key}`); - }); - }); -}) \ No newline at end of file diff --git a/docs/package.json b/docs/package.json index 8f442f4b..67a37d94 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,62 @@ { + "license": "MIT", + "description": "DocSearch documentation", + "scripts": { + "build": "NODE_ENV=production babel-node ./scripts/build.js", + "deploy": "./scripts/deploy", + "lint": "./scripts/lint", + "precommit": "./scripts/precommit", + "serve": "babel-node ./scripts/serve.js" + }, + "devDependencies": { + "@babel/cli": "^7.0.0-beta.51", + "@babel/core": "^7.0.0-beta.51", + "@babel/node": "^7.0.0-beta.51", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0-beta.51", + "@babel/preset-env": "^7.0.0-beta.51", + "@fullhuman/postcss-purgecss": "^1.0.1", + "autoprefixer": "^8.6.4", + "babel-core": "^7.0.0-bridge.0", + "babel-eslint": "^8.2.3", + "babel-plugin-dynamic-import-node-sync": "^2.0.1", + "chalk": "^2.4.1", + "cheerio": "^1.0.0-rc.2", + "chokidar": "^2.0.4", + "cpx": "^1.5.0", + "eslint": "4.19.1", + "eslint-config-algolia": "^13.1.0", + "eslint-config-prettier": "^2.9.0", + "eslint-plugin-import": "^2.11.0", + "eslint-plugin-prettier": "^2.6.0", + "front-matter": "^2.3.0", + "fs-extra": "^7.0.0", + "glob": "^7.1.2", + "husky": "^0.14.3", + "inquirer": "^6.0.0", + "live-server": "^1.2.0", + "lodash": "^4.17.10", + "markdown-it": "^8.4.1", + "markdown-it-anchor": "^5.0.2", + "markdown-it-highlightjs": "^3.0.0", + "normalize.css": "^8.0.0", + "p-all": "^1.0.0", + "p-each-series": "^1.0.0", + "p-map": "^1.2.0", + "pify": "^3.0.0", + "postcss": "^6.0.23", + "postcss-clean": "^1.1.0", + "postcss-import": "^11.1.0", + "postcss-nested": "^3.0.0", + "prettier": "1.9.2", + "pug": "^2.0.3", + "puppeteer": "^1.6.1", + "stylelint": "^9.3.0", + "stylelint-csstree-validator": "^1.3.0", + "tailwindcss": "^0.6.4" + }, + "peerDependencies": {}, "dependencies": { - "algolia-aerial": "1.3.4", - "algolia-frontend-components": "0.0.35" + "@glidejs/glide": "^3.2.3", + "popper.js": "^1.14.4" } } diff --git a/docs/scripts/build.js b/docs/scripts/build.js new file mode 100644 index 00000000..1d745d28 --- /dev/null +++ b/docs/scripts/build.js @@ -0,0 +1,18 @@ +import assets from './lib/assets'; +import css from './lib/css'; +import js from './lib/js'; +import markdown from './lib/markdown'; +import redirects from './lib/redirects'; +import pAll from 'p-all'; + +(async function() { + await pAll([ + async () => { + await markdown.run(); + await css.run(); + }, + async () => await js.run(), + async () => await assets.run(), + async () => await redirects.run(), + ]); +})(); diff --git a/docs/scripts/deploy b/docs/scripts/deploy new file mode 100755 index 00000000..621f0b1e --- /dev/null +++ b/docs/scripts/deploy @@ -0,0 +1,6 @@ +#!/usr/bin/env sh +set -e + +rm -rf ./dist +yarn run build +gh-pages -d dist diff --git a/docs/scripts/lib/assets.js b/docs/scripts/lib/assets.js new file mode 100644 index 00000000..3c81f4af --- /dev/null +++ b/docs/scripts/lib/assets.js @@ -0,0 +1,15 @@ +import pify from 'pify'; +import cpx from 'cpx'; +const copy = pify(cpx.copy); + +const sourcePattern = './src/**/*.{gif,jpg,png,ico,html,svg,woff}'; + +export default { + async run() { + return await copy(sourcePattern, './dist'); + }, + + watch() { + cpx.watch(sourcePattern, './dist'); + }, +}; diff --git a/docs/scripts/lib/css.js b/docs/scripts/lib/css.js new file mode 100644 index 00000000..50be5ad3 --- /dev/null +++ b/docs/scripts/lib/css.js @@ -0,0 +1,104 @@ +import helper from './helper'; +import postcss from 'postcss'; +import autoprefixer from 'autoprefixer'; +import tailwind from 'tailwindcss'; +import postcssNested from 'postcss-nested'; +import postcssImport from 'postcss-import'; +import postcssPurge from '@fullhuman/postcss-purgecss'; +import postcssClean from 'postcss-clean'; +import path from 'path'; +import fs from 'fs'; +import pEach from 'p-each-series'; + +export default { + postcssPlugins(tailwindConfigFile) { + const plugins = [ + postcssImport(), + tailwind(tailwindConfigFile), + postcssNested, + ]; + + // Add more plugins when building + if (!this.isProduction()) { + return plugins; + } + + // Only keep classes used in files at the same level + let pathLevel = path.dirname(path.relative('./src', tailwindConfigFile)); + if (pathLevel === '..') { + pathLevel = ''; + } + plugins.push( + postcssPurge({ + content: [`./dist/${pathLevel}/*.html`], + // Always keep InstantSearch, TalkSearch and DocSearch classes + whitelistPatterns: [/^ais-/, /^ats-/, /^ds-/], + }) + ); + + plugins.push(autoprefixer); + + const cleanCssOptions = { + level: { + 1: { + specialComments: false, + }, + }, + }; + + plugins.push(postcssClean(cleanCssOptions)); + + return plugins; + }, + + // Are we building (as opposed to local serve) + isProduction() { + return process.env.NODE_ENV === 'production'; + }, + + // Compile the css source file to docs + async compile(source) { + const rawContent = await helper.readFile(source); + const relativePath = path.relative('./src', source); + const destination = `./dist/${relativePath}`; + + // Use a local tailwind file if one is found + const dirname = path.dirname(source); + const potentialTailwindConfig = path.join(dirname, 'tailwind.config.js'); + const tailwindConfig = fs.existsSync(potentialTailwindConfig) + ? potentialTailwindConfig + : './tailwind.config.js'; + + const plugins = this.postcssPlugins(tailwindConfig); + const result = await postcss(plugins).process(rawContent, { + from: source, + to: destination, + }); + await helper.writeFile(destination, result.css); + }, + + // Compile all css files + async run() { + const cssFiles = await helper.getFiles('style.css'); + + await pEach(cssFiles, async filepath => { + await this.compile(filepath); + }); + }, + + // Listen to changes in css files and rebuild them + watch() { + // Rebuild main file when changed + helper.watch('./src/style.css', filepath => { + this.compile(filepath); + }); + // Rebuild main file when includes are changed + helper.watch('./src/_styles/*.css', () => { + this.compile('./src/style.css'); + }); + // Rebuild all files when main tailwind config is changed + helper.watch('./tailwind.config.js', () => { + this.run(); + }); + }, +}; diff --git a/docs/scripts/lib/helper.js b/docs/scripts/lib/helper.js new file mode 100644 index 00000000..c9711905 --- /dev/null +++ b/docs/scripts/lib/helper.js @@ -0,0 +1,57 @@ +import fs from 'fs-extra'; +import _ from 'lodash'; +import pify from 'pify'; +import _glob from 'glob'; +import path from 'path'; +import chalk from 'chalk'; +import chokidar from 'chokidar'; +const glob = pify(_glob); +const readFile = pify(fs.readFile); +const writeFile = pify(fs.writeFile); +const mkdirp = pify(fs.mkdirp); + +export default { + async mkdirp(filepath) { + return await mkdirp(filepath); + }, + // Read a file and return its content as a string + async readFile(filepath) { + return (await readFile(filepath)).toString('utf-8'); + }, + // Read a Json file + async readJson(filepath) { + return JSON.parse(await this.readFile(filepath)); + }, + // Return the site global config + async siteConfig() { + return await this.readJson('./config.json'); + }, + // Write a file to disk + async writeFile(filepath, content) { + const dirname = path.dirname(filepath); + await this.mkdirp(dirname); + await writeFile(filepath, content); + + const extname = path.extname(filepath); + let displayName = filepath; + const colors = { + '.html': 'magenta', + '.css': 'yellow', + '.js': 'green', + }; + if (colors[extname]) { + displayName = chalk[colors[extname]](displayName); + } + + console.info(`✔ Saving ${displayName}`); + }, + // Get an array of all files matching a glob pattern + async getFiles(pattern) { + return await glob(`./src/${pattern}`); + }, + // Watch for file changes and react + watch(pattern, callback) { + const watcher = chokidar.watch(pattern); + watcher.on('change', _.debounce(callback, 500, { leading: true })); + }, +}; diff --git a/docs/scripts/lib/js.js b/docs/scripts/lib/js.js new file mode 100644 index 00000000..e555049e --- /dev/null +++ b/docs/scripts/lib/js.js @@ -0,0 +1,56 @@ +import helper from './helper'; +import _ from 'lodash'; +import path from 'path'; +import * as babel from 'babel-core'; +import pMap from 'p-map'; + +export default { + // Interpolate placeholders + async interpolatePlaceholders(initialContent) { + let content = initialContent; + const siteConfig = await helper.siteConfig(); + _.each(siteConfig.placeholders, (value, key) => { + content = _.replace(content, new RegExp(`{{${key}}}`, 'g'), value); + }); + + return content; + }, + + // Compile JavaScript through Babel + async compileWithBabel(content, destination) { + const babelConfigPath = path.resolve('.babelrc'); + const babelConfig = await helper.readJson(babelConfigPath); + const babelOptions = { + ...babelConfig, + filename: destination, + filenameRelative: destination, + }; + const result = babel.transform(content, babelOptions); + return result.code; + }, + + async compile(filepath) { + const relativePath = path.relative('./src', filepath); + const destination = `./dist/${relativePath}`; + let content = await helper.readFile(filepath); + content = await this.interpolatePlaceholders(content); + content = await this.compileWithBabel(content, destination); + + await helper.writeFile(destination, content); + }, + + async run() { + // Compile JavaScript files + const jsFiles = await helper.getFiles('js/*.js'); + await pMap(jsFiles, async filepath => { + await this.compile(filepath); + }); + }, + + // Listen to changes in js files and rewrite them + watch() { + helper.watch('./src/js/*.js', filepath => { + this.compile(filepath); + }); + }, +}; diff --git a/docs/scripts/lib/markdown.js b/docs/scripts/lib/markdown.js new file mode 100644 index 00000000..9b1a40e0 --- /dev/null +++ b/docs/scripts/lib/markdown.js @@ -0,0 +1,125 @@ +import helper from './helper'; +import _ from 'lodash'; +import path from 'path'; +import frontMatter from 'front-matter'; +import markdownIt from 'markdown-it'; +import markdownItAnchor from 'markdown-it-anchor'; +import markdownItHighlight from 'markdown-it-highlightjs'; +import cheerio from 'cheerio'; +import pug from 'pug'; +import pMap from 'p-map'; +const markdown = markdownIt({ + html: true, + linkify: true, +}) + .use(markdownItAnchor, { + permalink: true, + permalinkClass: 'anchor', + permalinkSymbol: '', + }) + .use(markdownItHighlight); + +export default { + // Returns an array of all headings and their ids (to use in the sidebar) + getHeadings(htmlBody) { + const $ = cheerio.load(htmlBody); + const headings = $('h2'); + return _.map(headings, heading => { + const $el = $(heading); + + return { + title: $el.text(), + anchor: $el.attr('id'), + }; + }); + }, + + // Build a markdown file to an html file + async compile(filepath) { + const siteConfig = await helper.siteConfig(); + const currentUrl = path.relative( + './src', + _.replace(filepath, '.md', '.html') + ); + const destination = `./dist/${currentUrl}`; + + // Read file, and extract front-matter from raw text + const rawContent = await helper.readFile(filepath); + const parsed = frontMatter(rawContent); + const fileConfig = parsed.attributes; + const pageConfig = _.merge({}, siteConfig, fileConfig); + + // Update {{placeholders}} + let markdownBody = parsed.body; + _.each(pageConfig.placeholders, (value, key) => { + markdownBody = _.replace( + markdownBody, + new RegExp(`{{${key}}}`, 'g'), + value + ); + }); + + // Convert markdown to html + const htmlBody = markdown.render(markdownBody); + + // Add the hierarchy of headings to the matching link in the sidebar + const headings = this.getHeadings(htmlBody); + const sidebar = _.clone(pageConfig.sidebar); + _.each(sidebar, category => { + _.each(category.pages, page => { + if (page.url === currentUrl) { + page.headings = headings; // eslint-disable-line no-param-reassign + } + }); + }); + + // Init layout + const layoutName = fileConfig.layout; + const layoutFile = `./src/_layouts/${layoutName}.pug`; + const layoutContent = await helper.readFile(layoutFile); + const pugCompile = pug.compile(layoutContent, { filename: layoutFile }); + + // Compile layout + const compileConfig = { + ...pageConfig, + sidebar, + current: { + url: currentUrl, + content: htmlBody, + ...fileConfig, + }, + }; + const htmlContent = pugCompile(compileConfig); + + // Save to disk + await helper.writeFile(destination, htmlContent); + }, + + async run() { + // Convert markdown to HTML + const markdownFiles = await helper.getFiles('*.md'); + await pMap(markdownFiles, async filepath => { + await this.compile(filepath); + }); + }, + + // Listen to changes in markdown and layouts and rebuild them + watch() { + // Update HTML on each markdown change + helper.watch('./src/*.md', filepath => { + this.compile(filepath); + }); + // Rebuild everything when a layout, include or config changes + helper.watch( + [ + './src/_layouts/*.pug', + './src/_includes/*.pug', + './src/_mixins/*.pug', + './config.json', + ], + () => { + this.run(); + } + ); + }, +}; diff --git a/docs/scripts/lib/redirects.js b/docs/scripts/lib/redirects.js new file mode 100644 index 00000000..651cf201 --- /dev/null +++ b/docs/scripts/lib/redirects.js @@ -0,0 +1,28 @@ +import helper from './helper'; +import path from 'path'; +import config from '../../config.json'; +import pug from 'pug'; +import pMap from 'p-map'; + +export default { + async run() { + const redirects = config.redirects; + + await pMap(redirects, async redirect => { + const { from, to } = redirect; + const pathToWrite = `./dist/${from}`; + const urlToRedirectTo = `${config.site.url}/${to}`; + + // Create folder structure + await helper.mkdirp(path.dirname(pathToWrite)); + + const layoutContent = await helper.readFile( + `./src/_layouts/redirect.pug` + ); + const pugCompile = pug.compile(layoutContent); + const redirectHtml = pugCompile({ redirectTo: urlToRedirectTo }); + + await helper.writeFile(pathToWrite, redirectHtml); + }); + }, +}; diff --git a/docs/scripts/lint b/docs/scripts/lint new file mode 100755 index 00000000..1aba1ac3 --- /dev/null +++ b/docs/scripts/lint @@ -0,0 +1,5 @@ +#!/usr/bin/env sh +set -e + +eslint ./scripts/**/*.js ./src/*.js ./*.js +stylelint ./src/style.css ./src/_styles/*.css diff --git a/docs/scripts/precommit b/docs/scripts/precommit new file mode 100755 index 00000000..657b3311 --- /dev/null +++ b/docs/scripts/precommit @@ -0,0 +1,2 @@ +#!/usr/bin/env sh +yarn lint diff --git a/docs/scripts/serve.js b/docs/scripts/serve.js new file mode 100644 index 00000000..28a3645c --- /dev/null +++ b/docs/scripts/serve.js @@ -0,0 +1,38 @@ +import markdown from './lib/markdown'; +import _ from 'lodash'; +import css from './lib/css'; +import js from './lib/js'; +import assets from './lib/assets'; +import redirects from './lib/redirects'; +import liveServer from 'live-server'; +import pAll from 'p-all'; + +(async function() { + await pAll([ + async () => { + await markdown.run(); + await css.run(); + }, + async () => await js.run(), + async () => await assets.run(), + async () => await redirects.run(), + ]); + + markdown.watch(); + css.watch(); + js.watch(); + assets.watch(); + + liveServer.start({ + root: './dist', + open: '/docsearch/', + port: 8082, + middleware: [ + // Redirect subdirectory to the root (mimicking GitHub pages) + function(req, res, next) { + req.url = _.replace(req.url, /^\/docsearch/, ''); // eslint-disable-line no-param-reassign + next(); + }, + ], + }); +})(); diff --git a/docs/source/404.html.haml b/docs/source/404.html.haml deleted file mode 100644 index 5e11abd9..00000000 --- a/docs/source/404.html.haml +++ /dev/null @@ -1,10 +0,0 @@ ---- -layout: 404.html ---- - -.panel-header.text-center.color-white - .relative-container-illus-alien - .spacer32 - %h1.color-bunting Error 404 - %h2.text-muted The page you requested was not found. - .spacer64 \ No newline at end of file diff --git a/docs/source/assets/javascripts/communityHeader.js b/docs/source/assets/javascripts/communityHeader.js deleted file mode 100644 index 9c81534c..00000000 --- a/docs/source/assets/javascripts/communityHeader.js +++ /dev/null @@ -1,317 +0,0 @@ -'use strict'; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -/** - * Main header function with docsearch - * @param {Object} docSearch config - */ - -var communityHeader = function () { - function communityHeader(docSearchCredentials, docSearch) { - var _this = this; - - _classCallCheck(this, communityHeader); - - this.docSearchCredentials = docSearchCredentials; - this.docSearch = docSearch || null; - - this.menuState = { - isOpen: false, - isOpenMobile: false - }; - - this.INIT_VAL = { - WIDTH: 490, - HEIGHT: 360 - }; - - this.disableTransitionTimeout; - - this.searchIcon = document.querySelector('#search'); - this.cancelIcon = document.querySelector('#cancel'); - this.searchInputContainer = document.querySelector('.algc-search__input'); - this.searchContainer = this.searchInputContainer ? this.searchInputContainer.parentNode : null; - this.navRoot = document.querySelector('.algc-dropdownroot'); - this.dropdownRoot = document.querySelector('.algc-navigation__dropdown-holder'); - this.navItems = document.querySelectorAll('a[data-enabledropdown="true"]'); - this.navContainer = document.querySelector('.algc-dropdownroot__dropdowncontainer'); - this.menuContainer = document.querySelector('.algc-navigation__container'); - this.navBg = document.querySelector('.algc-dropdownroot__dropdownbg'); - this.navArrow = document.querySelector('.algc-dropdownroot__dropdownarrow'); - this.dropDownContainer = document.querySelector('.algc-dropdownroot__dropdowncontainer'); - this.menuTriggers = document.querySelectorAll('[data-enabledropdown="true"]'); - this.mobileMenuButton = document.querySelector('.algc-openmobile '); - this.mobileMenu = document.querySelector('.algc-mobilemenu'); - this.subList = document.querySelectorAll('.algc-menu--sublistlink'); - this.subListHolders = [].concat(_toConsumableArray(this.subList)).map(function (node) { - return node.parentNode; - }); - this.menuDropdowns = {}; - - [].forEach.call(document.querySelectorAll('[data-dropdown-content]'), function (item) { - _this.menuDropdowns[item.dataset.dropdownContent] = { - parent: item.parentNode, - content: item - }; - }); - - this.shouldInitDocSearch = this.shouldInitDocSearch.bind(this); - this.docSearchInit = this.checkDocSearch(docSearch); - this.enableDocSearch = this.verifyDocSearchParams(docSearchCredentials); - this.hasDocSearchRendered = document.querySelector('.algc-navigation .algc-search__input--docsearch'); - this.triggerMenu = this.triggerMenu.bind(this); - this.shouldTriggerMenu = this.shouldTriggerMenu.bind(this); - this.closeMenu = this.closeMenu.bind(this); - this.toggleMobileMenu = this.toggleMobileMenu.bind(this); - this.docSearchToggling = this.docSearchToggling.bind(this); - this.initDocSearchStrategy = this.initDocSearchStrategy.bind(this); - this.openSublist = this.openSublist.bind(this); - this.closeSubLists = this.closeSubLists.bind(this); - this.bindListeners = this.bindListeners.bind(this); - - this.calculatePosition = this.calculatePosition.bind(this); - - this.verifyDocSearchParams(); - this.shouldInitDocSearch(); - this.initDocSearchStrategy(); - this.bindListeners(); - } - - _createClass(communityHeader, [{ - key: 'calculatePosition', - value: function calculatePosition(sourceNode) { - var box = sourceNode.getBoundingClientRect(); - var realWidth = sourceNode.offsetWidth; - var realHeight = sourceNode.offsetHeight; - - return { - left: box.left, - top: box.top, - width: box.width, - height: box.height, - realWidth: realWidth, - realHeight: realHeight, - center: box.left + box.width / 2 - }; - } - }, { - key: 'shouldInitDocSearch', - value: function shouldInitDocSearch() { - if (!this.enableDocSearch && this.hasDocSearchRendered) { - throw new Error('You need to pass docSearch: { apiKey, indexName, inputSelector } to communityHeader function in order to initialise docSearch'); - } - } - }, { - key: 'checkDocSearch', - value: function checkDocSearch() { - var docSearch = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - if (docSearch) return docSearch; - - if (typeof window.docsearch === "function" || typeof docsearch === "function") { - return docsearch; - } - } - }, { - key: 'verifyDocSearchParams', - value: function verifyDocSearchParams(docSearchCredentials) { - return docSearchCredentials && docSearchCredentials.apiKey && docSearchCredentials.indexName && docSearchCredentials.inputSelector ? true : false; - } - }, { - key: 'triggerMenu', - value: function triggerMenu(event) { - var _this2 = this; - - var dropdown = event.target.dataset.dropdown; - var newTarget = this.menuDropdowns[dropdown].content; - var newContent = this.menuDropdowns[dropdown].parent; - - var navItem = this.calculatePosition(event.target); - var newTargetCoordinates = this.calculatePosition(newTarget); - var menuContainerOffset = this.calculatePosition(this.menuContainer); - var leftDistance = void 0; - - var scaleFactors = { - X: newTargetCoordinates.realWidth / this.INIT_VAL.WIDTH, - Y: newTargetCoordinates.realHeight / this.INIT_VAL.HEIGHT - }; - - leftDistance = navItem.center - menuContainerOffset.left + "px"; - - if (menuContainerOffset.left < 20) { - leftDistance = "calc(50% - 36px)"; - } - - this.navBg.style.cssText = '\n transform: translateX(' + leftDistance + ') scale(' + scaleFactors.X + ', ' + scaleFactors.Y + ')'; - - this.navArrow.style.cssText = '\n transform: translateX(' + leftDistance + ') rotate(45deg)'; - - this.dropDownContainer.style.cssText = '\n transform: translateX(' + leftDistance + ');\n width: ' + newTargetCoordinates.realWidth + 'px;\n height: ' + (newTargetCoordinates.realHeight + 10) + 'px;'; - - this.dropdownRoot.style.pointerEvents = "auto"; - - Object.keys(this.menuDropdowns).forEach(function (key) { - if (key === dropdown) { - _this2.menuDropdowns[key].parent.classList.add('active'); - } else { - _this2.menuDropdowns[key].parent.classList.remove('active'); - } - }); - - if (!this.menuState.isOpen) { - setTimeout(function () { - _this2.navRoot.className = "algc-dropdownroot activeDropdown"; - }, 50); - } - - window.clearTimeout(this.disableTransitionTimeout); - this.menuState.isOpen = true; - } - }, { - key: 'shouldTriggerMenu', - value: function shouldTriggerMenu(event) { - var _this3 = this; - - if (this.menuState.isOpen) { - this.triggerMenu(event); - } else { - this.triggerMenuTimeout = setTimeout(function () { - _this3.triggerMenu(event); - }, 200); - } - } - }, { - key: 'closeMenu', - value: function closeMenu(event) { - var _this4 = this; - - window.clearTimeout(this.triggerMenuTimeout); - this.menuState.isOpen = false; - this.disableTransitionTimeout = setTimeout(function () { - _this4.dropdownRoot.style.pointerEvents = "none"; - _this4.navRoot.className = "algc-dropdownroot notransition"; - }, 50); - } - }, { - key: 'toggleMobileMenu', - value: function toggleMobileMenu(event) { - this.mobileMenuButton.classList.toggle('algc-openmobile--open'); - this.mobileMenu.classList.toggle('algc-mobilemenu--open'); - } - - // Search - - }, { - key: 'docSearchToggling', - value: function docSearchToggling() { - var _this5 = this; - - this.searchInput = document.querySelector(this.docSearchCredentials.inputSelector); - var openSearchInput = function openSearchInput() { - _this5.searchContainer.classList.add('open'); - _this5.searchInput.focus(); - }; - - var closeSearchInput = function closeSearchInput() { - _this5.searchInput.blur(); - _this5.searchContainer.classList.remove('open'); - }; - - var emptySearchInput = function emptySearchInput() { - if (_this5.searchInput.value !== '') { - _this5.searchInput.value = ''; - } else { - closeSearchInput(); - } - }; - this.searchInput.setAttribute('value', ''); - this.searchIcon.addEventListener('click', openSearchInput); - this.cancelIcon.addEventListener('click', emptySearchInput); - } - }, { - key: 'initDocSearch', - value: function initDocSearch() { - this.docSearchToggling(); - this.docSearchInit(this.docSearchCredentials); - } - }, { - key: 'initDocSearchStrategy', - value: function initDocSearchStrategy() { - var _this6 = this; - - if (this.enableDocSearch && typeof this.docSearchInit === "function") { - this.initDocSearch(); - } else if (this.docSearch === "lazy") { - - var docSearchScript = document.createElement('script'); - docSearchScript.type = 'text/javascript'; - docSearchScript.async = true; - document.body.appendChild(docSearchScript); - - docSearchScript.onload = function () { - _this6.docSearchInit = docsearch; - _this6.initDocSearch(); - }; - - docSearchScript.src = "https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"; - } - } - }, { - key: 'openSublist', - value: function openSublist(node) { - var parent = node.parentNode; - this.subListHolders.forEach(function (holder) { - if (holder === parent && !parent.classList.contains('open')) { - holder.classList.add('open'); - } else { - holder.classList.remove('open'); - } - }); - } - }, { - key: 'closeSubLists', - value: function closeSubLists(event) { - this.subListHolders.forEach(function (holder) { - return holder.classList.remove('open'); - }); - } - }, { - key: 'bindListeners', - value: function bindListeners() { - var _this7 = this; - - var that = this; - this.subList.forEach(function (link) { - link.addEventListener('click', function (event) { - event.preventDefault(); - event.stopPropagation(); - that.openSublist(this); - }); - }); - - this.menuTriggers.forEach(function (item) { - item.addEventListener('mouseenter', _this7.shouldTriggerMenu); - item.addEventListener('focus', _this7.triggerMenu); - }); - - this.navItems.forEach(function (item) { - item.addEventListener('mouseleave', _this7.closeMenu); - }); - - this.navContainer.addEventListener('mouseenter', function () { - clearTimeout(_this7.disableTransitionTimeout); - }); - - this.mobileMenuButton.addEventListener('click', this.toggleMobileMenu); - document.addEventListener('click', this.closeSubLists); - document.querySelector('.algc-dropdownroot__dropdowncontainer').addEventListener('mouseleave', this.closeMenu); - } - }]); - - return communityHeader; -}(); \ No newline at end of file diff --git a/docs/source/assets/javascripts/components/copy-link.es6 b/docs/source/assets/javascripts/components/copy-link.es6 deleted file mode 100644 index 8760157c..00000000 --- a/docs/source/assets/javascripts/components/copy-link.es6 +++ /dev/null @@ -1,30 +0,0 @@ -const copy_links = [...document.querySelectorAll('.copy-link')]; - -copy_links.forEach(function (link) { - link.addEventListener('click', function (e) { - e.preventDefault(); - - return false; - }); -}); - -const clipboard = new Clipboard('.copy-link', { - text: function(trigger) { - const wrapper = $(trigger).closest('.snippet-wrapper'); - const current_snippet = wrapper.find('.tab-pane.active pre'); - - return current_snippet.text().replace(' and -sub, sup { - font-size: 50%; - line-height: 0; - position: relative; - vertical-align: baseline; } - -sup { - top: -0.7em; } - -sub { - bottom: -0.25em; } - -[ng\:cloak], [ng-cloak], .ng-cloak { - display: none !important; } - -.text-white { - color: #FFFFFF; } - -.bg-white { - background-color: white; } diff --git a/docs/source/assets/stylesheets/_mixin.scss b/docs/source/assets/stylesheets/_mixin.scss deleted file mode 100644 index 251bb0d4..00000000 --- a/docs/source/assets/stylesheets/_mixin.scss +++ /dev/null @@ -1,24 +0,0 @@ -@mixin position($top: null, $right: null, $bottom: null, $left: null) { - top: $top; - right: $right; - bottom: $bottom; - left: $left; } - -@mixin keyframes($animation-name) { - @-webkit-keyframes #{$animation-name} { - @content; } - @-moz-keyframes #{$animation-name} { - @content; } - @-ms-keyframes #{$animation-name} { - @content; } - @-o-keyframes #{$animation-name} { - @content; } - @keyframes #{$animation-name} { - @content; } } - -@mixin placeholder { - &::-webkit-input-placeholder {@content} - &:-moz-placeholder {@content} - &::-moz-placeholder {@content} - &:-ms-input-placeholder {@content} -} \ No newline at end of file diff --git a/docs/source/assets/stylesheets/_navigation.scss b/docs/source/assets/stylesheets/_navigation.scss deleted file mode 100644 index 12eecd62..00000000 --- a/docs/source/assets/stylesheets/_navigation.scss +++ /dev/null @@ -1,26 +0,0 @@ -.algc-navigation { - a { - -webkit-font-smoothing: unset; - &:hover { - text-decoration: none; - } - } - - input:not(#searchbox) { - display: none; - - } -} - -.algc-dropdownroot__widelist li h4 { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - width: 70%; - display: block; -} - -.algc-menu__search--holder.open input[type="search"] { - background-color: rgba(255, 255, 255, 0.2) !important; -} - diff --git a/docs/source/assets/stylesheets/_page.scss b/docs/source/assets/stylesheets/_page.scss deleted file mode 100644 index 1b1d1d22..00000000 --- a/docs/source/assets/stylesheets/_page.scss +++ /dev/null @@ -1,244 +0,0 @@ -* { - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -// Hero -.jumbotron .col-md-7 { - .demo-screen { - position: absolute; - right: 1em; - } - #demo-screens { - opacity: 0; - transform: translateY(100px); - transition: opacity 0.3s ease, transform 0.3s ease; - will-change: opacity, transform; - } -} - -body.ready .col-md-7 #demo-screens { - opacity: 1; - transform: translateY(0) -} - - -@media (max-width: $screen-md) { - .col-md-7 { - height: 500px; - } - - .jumbotron .col-md-7 { - .demo-screen { - position: relative; - right: 0; - } - } - - .col-md-5 { - margin-bottom: 120px; - } - - .col-md-12 header { - img { - max-width: 100%; - } - } -} - -@media (max-width: $screen-md) { - .jumbotron.h800 { - height: auto; - } - .col-md-7 { - height: auto; - } -} - -// Join form -.join-form { - max-width: 440px; - @media (max-width: $screen-md) { - max-width: 100%; - } - @media (max-width: $screen-sm) { - top: 120px; - } -} -.join-form .input-group-addon { - vertical-align: middle; -} -.input-group .form-control { - border-radius: 3px -} - -// Section Why -#section_why { - &:before, - &:after { - content: ''; - display: block; - position: absolute; - width: 100%; - height: 300px; - background: #fff; - transform: skewY(-3deg); - z-index: 0; - top: -100px; - } - - &:after { - top: inherit; - bottom: -100px; - } - - - @media (max-width: $screen-md) { - text-align: center; - - } -} - - -// Showcase - -#section_examples h3 { - opacity: 0.75; -} - -.showcase .logo { - max-height: 40px -} - -.showcase .screen-wrapper { - height: 180px; -} - -.showcase img { - height: auto; -} - -.showcase .screen-wrapper:hover .screen-mask { - display: none; -} - -.showcase .screen-mask { - top: 0; - left: 0; - width: 100%; - height: 100%; - object-fit: cover; - object-position: center; -} - -.showcase .col-md-4, -.showcase .col-md-8 { - height: 60px; - line-height: 40px; -} - -.showcase p { - white-space: nowrap; - overflow: hidden; - max-width: 100%; - text-overflow: ellipsis; -} - -.showcase.you { - - .placeholder-screen { - width: 100%; - height: 100%; - border: dotted 2px #a0b4d1 - } -} - -@media ( max-width: $screen-sm ) { - .showcase .h300 { - height: auto; - } - .showcase .col-md-8 { - height: auto; - } - .showcase .col-sm-12 { - display: block !important; - text-align: center; - - .logo { - margin-top: 1em; - } - } -} - - - -// Section How -#section_how { - &:before, - &:after { - content: ''; - display: block; - position: absolute; - width: 100%; - height: 300px; - background: #fff; - transform: skewY(-3deg); - z-index: 1; - top: -100px; - } - - &:after { - top: inherit; - bottom: -100px; - } -} - -.how-it-works-number { - display: block; - height: 32px; - width: 30px; - float: left; - font-size: 50px; - line-height: 0.8; - font-weight: 400; -} - - - -// Section Get started -#section_get-started { - - header p { - opacity: 0.75; - } - - .join-form { - color: #fff !important; - background-image: linear-gradient(283deg, #050f2c, #3e396b); - - } - - .join-form { - h3, label { - color: #fff !important - } - - p { - color: rgba(white, 0.75) !important - } - - .btn { - background-image: linear-gradient(256deg, #ff6c5f, #ff4f81) !important; - - } - } -} - - - -// Responsive -@media (max-width: $screen-md) { - p { - padding: 0 1em; - } -} \ No newline at end of file diff --git a/docs/source/assets/stylesheets/_searchbar.scss b/docs/source/assets/stylesheets/_searchbar.scss deleted file mode 100644 index 49ae7242..00000000 --- a/docs/source/assets/stylesheets/_searchbar.scss +++ /dev/null @@ -1,202 +0,0 @@ -$custom:( - input-width: 190px, - input-height: 36px, - border-width: 2px, - border-radius: 18px, - input-border-color: darken(#1D96C7,10%), - input-focus-border-color: #1D96C7, - input-background: #091724, - input-focus-background: #091724, - font-size: 13px, - placeholder-color: #AAAAAA, - icon-size: 16px, - icon-position: left, - icon-color: #1D96C7, - icon-background: #FFFFFF, - icon-background-opacity: 0, - icon-clear-size: 12px, -); - -@mixin searchbox( - $input-width: 500px, - $input-height: 40px, - $border-width: 1px, - $border-radius: 3px, - $input-border-color: #ccc, - $input-focus-border-color: darken($input-border-color, 15%), - $input-background: #fff, - $input-focus-background: $input-background, - $font-size: 14px, - $placeholder-color: #aaa, - $icon-size: 18px, - $icon-position: right, - $icon-color: #fff, - $icon-background: #3e82f7, - $icon-background-opacity: 1, - $icon-clear-size: 12px, - $font-family: "Open Sans" -) { - display: inline-block; - position: relative; - height: $input-height; - white-space: nowrap; - box-sizing: border-box; - - &__input { - display: inline-block; - transition: box-shadow .4s ease, background .4s ease; - border: 0; - border-radius: $border-radius; - box-shadow: inset 0 0 0 $border-width $input-border-color; - background: $input-background; - padding: 0; - height: 100%; - width: $input-height; - vertical-align: middle; - white-space: normal; - font-size: $font-size; - appearance: none; - font-family: $font-family; - opacity: .5; - color: transparent; - - &::-webkit-input-placeholder{ - color: transparent; - } - &::placeholder{ - color: transparent; - } - - &::-webkit-search-decoration, - &::-webkit-search-cancel-button, - &::-webkit-search-results-button, - &::-webkit-search-results-decoration { - display: none; - } - - &:hover { - box-shadow: inset 0 0 0 $border-width darken($input-border-color, 10%); - } - - &:focus, - &:active, - &.filled { - outline: 0; - padding-right: if($icon-position == 'right', $input-height, 0) + $icon-clear-size * 2 + 8px; - padding-left: if($icon-position == 'right', $font-size, $input-height + if($icon-background-opacity == 0, 0, 8px)); - width: 100%; - box-shadow: inset 0 0 0 $border-width $input-focus-border-color; - background: $input-focus-background; - opacity: 1; - color: white; - &::-webkit-input-placeholder{ - color: #777; - } - &::placeholder{ - color: #777; - } - // color: white; - } - } - - &__submit { - position: absolute; - top: 0; - pointer-events: none; - #{$icon-position}: 0; - margin: 0; - border: 0; - border-radius: if($icon-position == 'right', 0 $border-radius $border-radius 0, $border-radius 0 0 $border-radius); - background-color: rgba($icon-background, $icon-background-opacity); - padding: 0; - width: $input-height; - height: 100%; - vertical-align: middle; - text-align: center; - user-select: none; - - // Helper for vertical alignment of the icon - &::before { - display: inline-block; - margin-right: -4px; - height: 100%; - vertical-align: middle; - content: ''; - } - - &:hover, - &:active { - cursor: pointer; - } - - &:focus { - outline: 0; - } - - svg { - width: $icon-size; - height: $icon-size; - vertical-align: middle; - fill: $icon-color; - } - } - - &__reset { - position: absolute; - top: ($input-height - $icon-clear-size) / 2 - 4px; - right: if($icon-position == 'right', 8px + $input-height, ($input-height - $icon-clear-size) / 2) - 4px; - margin: 0; - border: 0; - background: none; - cursor: pointer; - padding: 0; - user-select: none; - - &.hide{ - display: none; - } - - &:focus { - outline: 0; - } - - svg { - display: block; - margin: 4px; - width: $icon-clear-size; - height: $icon-clear-size; - fill: $icon-color; - } - } - - &__input:valid ~ &__reset { - display: block; - animation-name: sbx-reset-in; - animation-duration: .15s; - } - - @keyframes sbx-reset-in { - from { - transform: translate3d(-20%, 0, 0); - opacity: 0; - } - - to { - transform: none; - opacity: 1; - } - } -} - -.sbx-custom{ - @include searchbox($custom...); -} - -.site-header .navbar .navbar-nav > li.searchbar-wrapper { - margin: 0; - padding: 0 -} - -.algolia-autocomplete { - display: inline !important; -} diff --git a/docs/source/assets/stylesheets/_sidebar.scss b/docs/source/assets/stylesheets/_sidebar.scss deleted file mode 100644 index 4f0b7a72..00000000 --- a/docs/source/assets/stylesheets/_sidebar.scss +++ /dev/null @@ -1,11 +0,0 @@ -.documentation { - aside { - top: 56px; - padding-top: 38px; - border-right-color: $ghost; - - @media (max-width: 768px) { - display: none - } - } -} \ No newline at end of file diff --git a/docs/source/assets/stylesheets/_syntax-highlighting.scss b/docs/source/assets/stylesheets/_syntax-highlighting.scss deleted file mode 100644 index cf6414e8..00000000 --- a/docs/source/assets/stylesheets/_syntax-highlighting.scss +++ /dev/null @@ -1,78 +0,0 @@ -/* Solarized Dark - -For use with Jekyll and Pygments - -http://ethanschoonover.com/solarized - -SOLARIZED HEX ROLE ---------- -------- ------------------------------------------ -base03 #002b36 background -base01 #586e75 comments / secondary content -base1 #93a1a1 body text / default code / primary content -orange #cb4b16 constants -red #dc322f regex, special keywords -blue #268bd2 reserved keywords -cyan #2aa198 strings, numbers -green #859900 operators, other keywords -*/ - -.highlight .hll { background-color: #49483e } -.highlight { /*background: #272822;*/ color: #f8f8f2 } -.highlight .c { color: #75715e } /* Comment */ -.highlight .err { color: #960050; background-color: #1e0010 } /* Error */ -.highlight .k { color: #66d9ef } /* Keyword */ -.highlight .l { color: #ae81ff } /* Literal */ -.highlight .n { color: #f8f8f2 } /* Name */ -.highlight .o { color: #f92672 } /* Operator */ -.highlight .p { color: #f8f8f2 } /* Punctuation */ -.highlight .cm { color: #75715e } /* Comment.Multiline */ -.highlight .cp { color: #75715e } /* Comment.Preproc */ -.highlight .c1 { color: #75715e } /* Comment.Single */ -.highlight .cs { color: #75715e } /* Comment.Special */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .kc { color: #66d9ef } /* Keyword.Constant */ -.highlight .kd { color: #66d9ef } /* Keyword.Declaration */ -.highlight .kn { color: #f92672 } /* Keyword.Namespace */ -.highlight .kp { color: #66d9ef } /* Keyword.Pseudo */ -.highlight .kr { color: #66d9ef } /* Keyword.Reserved */ -.highlight .kt { color: #66d9ef } /* Keyword.Type */ -.highlight .ld { color: #e6db74 } /* Literal.Date */ -.highlight .m { color: #ae81ff } /* Literal.Number */ -.highlight .s { color: #e6db74 } /* Literal.String */ -.highlight .na { color: #a6e22e } /* Name.Attribute */ -.highlight .nb { color: #f8f8f2 } /* Name.Builtin */ -.highlight .nc { color: #a6e22e } /* Name.Class */ -.highlight .no { color: #66d9ef } /* Name.Constant */ -.highlight .nd { color: #a6e22e } /* Name.Decorator */ -.highlight .ni { color: #f8f8f2 } /* Name.Entity */ -.highlight .ne { color: #a6e22e } /* Name.Exception */ -.highlight .nf { color: #a6e22e } /* Name.Function */ -.highlight .nl { color: #f8f8f2 } /* Name.Label */ -.highlight .nn { color: #f8f8f2 } /* Name.Namespace */ -.highlight .nx { color: #a6e22e } /* Name.Other */ -.highlight .py { color: #f8f8f2 } /* Name.Property */ -.highlight .nt { color: #f92672 } /* Name.Tag */ -.highlight .nv { color: #f8f8f2 } /* Name.Variable */ -.highlight .ow { color: #f92672 } /* Operator.Word */ -.highlight .w { color: #f8f8f2 } /* Text.Whitespace */ -.highlight .mf { color: #ae81ff } /* Literal.Number.Float */ -.highlight .mh { color: #ae81ff } /* Literal.Number.Hex */ -.highlight .mi { color: #ae81ff } /* Literal.Number.Integer */ -.highlight .mo { color: #ae81ff } /* Literal.Number.Oct */ -.highlight .sb { color: #e6db74 } /* Literal.String.Backtick */ -.highlight .sc { color: #e6db74 } /* Literal.String.Char */ -.highlight .sd { color: #e6db74 } /* Literal.String.Doc */ -.highlight .s2 { color: #e6db74 } /* Literal.String.Double */ -.highlight .se { color: #ae81ff } /* Literal.String.Escape */ -.highlight .sh { color: #e6db74 } /* Literal.String.Heredoc */ -.highlight .si { color: #e6db74 } /* Literal.String.Interpol */ -.highlight .sx { color: #e6db74 } /* Literal.String.Other */ -.highlight .sr { color: #e6db74 } /* Literal.String.Regex */ -.highlight .s1 { color: #e6db74 } /* Literal.String.Single */ -.highlight .ss { color: #e6db74 } /* Literal.String.Symbol */ -.highlight .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */ -.highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */ -.highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */ -.highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */ -.highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs/source/assets/stylesheets/bootstrap/_alerts.scss b/docs/source/assets/stylesheets/bootstrap/_alerts.scss deleted file mode 100644 index 7d1e1fdd..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_alerts.scss +++ /dev/null @@ -1,73 +0,0 @@ -// -// Alerts -// -------------------------------------------------- - - -// Base styles -// ------------------------- - -.alert { - padding: $alert-padding; - margin-bottom: $line-height-computed; - border: 1px solid transparent; - border-radius: $alert-border-radius; - - // Headings for larger alerts - h4 { - margin-top: 0; - // Specified for the h4 to prevent conflicts of changing $headings-color - color: inherit; - } - - // Provide class for links that match alerts - .alert-link { - font-weight: $alert-link-font-weight; - } - - // Improve alignment and spacing of inner content - > p, - > ul { - margin-bottom: 0; - } - - > p + p { - margin-top: 5px; - } -} - -// Dismissible alerts -// -// Expand the right padding and account for the close button's positioning. - -.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0. -.alert-dismissible { - padding-right: ($alert-padding + 20); - - // Adjust close link position - .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; - } -} - -// Alternate styles -// -// Generate contextual modifier classes for colorizing the alert. - -.alert-success { - @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text); -} - -.alert-info { - @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text); -} - -.alert-warning { - @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text); -} - -.alert-danger { - @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text); -} diff --git a/docs/source/assets/stylesheets/bootstrap/_badges.scss b/docs/source/assets/stylesheets/bootstrap/_badges.scss deleted file mode 100644 index 70002e08..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_badges.scss +++ /dev/null @@ -1,68 +0,0 @@ -// -// Badges -// -------------------------------------------------- - - -// Base class -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: $font-size-small; - font-weight: $badge-font-weight; - color: $badge-color; - line-height: $badge-line-height; - vertical-align: middle; - white-space: nowrap; - text-align: center; - background-color: $badge-bg; - border-radius: $badge-border-radius; - - // Empty badges collapse automatically (not available in IE8) - &:empty { - display: none; - } - - // Quick fix for badges in buttons - .btn & { - position: relative; - top: -1px; - } - - .btn-xs &, - .btn-group-xs > .btn & { - top: 0; - padding: 1px 5px; - } - - // [converter] extracted a& to a.badge - - // Account for badges in navs - .list-group-item.active > &, - .nav-pills > .active > a > & { - color: $badge-active-color; - background-color: $badge-active-bg; - } - - .list-group-item > & { - float: right; - } - - .list-group-item > & + & { - margin-right: 5px; - } - - .nav-pills > li > a > & { - margin-left: 3px; - } -} - -// Hover state, but only for links -a.badge { - &:hover, - &:focus { - color: $badge-link-hover-color; - text-decoration: none; - cursor: pointer; - } -} diff --git a/docs/source/assets/stylesheets/bootstrap/_breadcrumbs.scss b/docs/source/assets/stylesheets/bootstrap/_breadcrumbs.scss deleted file mode 100644 index 3641e333..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_breadcrumbs.scss +++ /dev/null @@ -1,26 +0,0 @@ -// -// Breadcrumbs -// -------------------------------------------------- - - -.breadcrumb { - padding: $breadcrumb-padding-vertical $breadcrumb-padding-horizontal; - margin-bottom: $line-height-computed; - list-style: none; - background-color: $breadcrumb-bg; - border-radius: $border-radius-base; - - > li { - display: inline-block; - - + li:before { - content: "#{$breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space - padding: 0 5px; - color: $breadcrumb-color; - } - } - - > .active { - color: $breadcrumb-active-color; - } -} diff --git a/docs/source/assets/stylesheets/bootstrap/_button-groups.scss b/docs/source/assets/stylesheets/bootstrap/_button-groups.scss deleted file mode 100644 index 43d235c4..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_button-groups.scss +++ /dev/null @@ -1,244 +0,0 @@ -// -// Button groups -// -------------------------------------------------- - -// Make the div behave like a button -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; // match .btn alignment given font-size hack above - > .btn { - position: relative; - float: left; - // Bring the "active" button to the front - &:hover, - &:focus, - &:active, - &.active { - z-index: 2; - } - } -} - -// Prevent double borders when buttons are next to each other -.btn-group { - .btn + .btn, - .btn + .btn-group, - .btn-group + .btn, - .btn-group + .btn-group { - margin-left: -1px; - } -} - -// Optional: Group multiple button groups together for a toolbar -.btn-toolbar { - margin-left: -5px; // Offset the first child's margin - @include clearfix; - - .btn, - .btn-group, - .input-group { - float: left; - } - > .btn, - > .btn-group, - > .input-group { - margin-left: 5px; - } -} - -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} - -// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match -.btn-group > .btn:first-child { - margin-left: 0; - &:not(:last-child):not(.dropdown-toggle) { - @include border-right-radius(0); - } -} -// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - @include border-left-radius(0); -} - -// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group) -.btn-group > .btn-group { - float: left; -} -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group > .btn-group:first-child:not(:last-child) { - > .btn:last-child, - > .dropdown-toggle { - @include border-right-radius(0); - } -} -.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { - @include border-left-radius(0); -} - -// On active and open, don't show outline -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} - - -// Sizing -// -// Remix the default button sizing classes into new ones for easier manipulation. - -.btn-group-xs > .btn { @extend .btn-xs; } -.btn-group-sm > .btn { @extend .btn-sm; } -.btn-group-lg > .btn { @extend .btn-lg; } - - -// Split button dropdowns -// ---------------------- - -// Give the line between buttons some depth -.btn-group > .btn + .dropdown-toggle { - padding-left: 8px; - padding-right: 8px; -} -.btn-group > .btn-lg + .dropdown-toggle { - padding-left: 12px; - padding-right: 12px; -} - -// The clickable button for toggling the menu -// Remove the gradient and set the same inset shadow as the :active state -.btn-group.open .dropdown-toggle { - @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); - - // Show no shadow for `.btn-link` since it has no other button styles. - &.btn-link { - @include box-shadow(none); - } -} - - -// Reposition the caret -.btn .caret { - margin-left: 0; -} -// Carets in other button sizes -.btn-lg .caret { - border-width: $caret-width-large $caret-width-large 0; - border-bottom-width: 0; -} -// Upside down carets for .dropup -.dropup .btn-lg .caret { - border-width: 0 $caret-width-large $caret-width-large; -} - - -// Vertical button groups -// ---------------------- - -.btn-group-vertical { - > .btn, - > .btn-group, - > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; - } - - // Clear floats so dropdown menus can be properly placed - > .btn-group { - @include clearfix; - > .btn { - float: none; - } - } - - > .btn + .btn, - > .btn + .btn-group, - > .btn-group + .btn, - > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; - } -} - -.btn-group-vertical > .btn { - &:not(:first-child):not(:last-child) { - border-radius: 0; - } - &:first-child:not(:last-child) { - border-top-right-radius: $btn-border-radius-base; - @include border-bottom-radius(0); - } - &:last-child:not(:first-child) { - border-bottom-left-radius: $btn-border-radius-base; - @include border-top-radius(0); - } -} -.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group-vertical > .btn-group:first-child:not(:last-child) { - > .btn:last-child, - > .dropdown-toggle { - @include border-bottom-radius(0); - } -} -.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - @include border-top-radius(0); -} - - -// Justified button groups -// ---------------------- - -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; - > .btn, - > .btn-group { - float: none; - display: table-cell; - width: 1%; - } - > .btn-group .btn { - width: 100%; - } - - > .btn-group .dropdown-menu { - left: auto; - } -} - - -// Checkbox and radio options -// -// In order to support the browser's form validation feedback, powered by the -// `required` attribute, we have to "hide" the inputs via `clip`. We cannot use -// `display: none;` or `visibility: hidden;` as that also hides the popover. -// Simply visually hiding the inputs via `opacity` would leave them clickable in -// certain cases which is prevented by using `clip` and `pointer-events`. -// This way, we ensure a DOM element is visible to position the popover from. -// -// See https://github.com/twbs/bootstrap/pull/12794 and -// https://github.com/twbs/bootstrap/pull/14559 for more information. - -[data-toggle="buttons"] { - > .btn, - > .btn-group > .btn { - input[type="radio"], - input[type="checkbox"] { - position: absolute; - clip: rect(0,0,0,0); - pointer-events: none; - } - } -} diff --git a/docs/source/assets/stylesheets/bootstrap/_buttons.scss b/docs/source/assets/stylesheets/bootstrap/_buttons.scss deleted file mode 100644 index 6452b709..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_buttons.scss +++ /dev/null @@ -1,168 +0,0 @@ -// -// Buttons -// -------------------------------------------------- - - -// Base styles -// -------------------------------------------------- - -.btn { - display: inline-block; - margin-bottom: 0; // For input.btn - font-weight: $btn-font-weight; - text-align: center; - vertical-align: middle; - touch-action: manipulation; - cursor: pointer; - background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 - border: 1px solid transparent; - white-space: nowrap; - @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $btn-border-radius-base); - @include user-select(none); - - &, - &:active, - &.active { - &:focus, - &.focus { - @include tab-focus; - } - } - - &:hover, - &:focus, - &.focus { - color: $btn-default-color; - text-decoration: none; - } - - &:active, - &.active { - outline: 0; - background-image: none; - @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); - } - - &.disabled, - &[disabled], - fieldset[disabled] & { - cursor: $cursor-disabled; - @include opacity(.65); - @include box-shadow(none); - } - - // [converter] extracted a& to a.btn -} - -a.btn { - &.disabled, - fieldset[disabled] & { - pointer-events: none; // Future-proof disabling of clicks on `` elements - } -} - - -// Alternate buttons -// -------------------------------------------------- - -.btn-default { - @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border); -} -.btn-primary { - @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border); -} -// Success appears as green -.btn-success { - @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border); -} -// Info appears as blue-green -.btn-info { - @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border); -} -// Warning appears as orange -.btn-warning { - @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border); -} -// Danger and error appear as red -.btn-danger { - @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border); -} - - -// Link buttons -// ------------------------- - -// Make a button look and behave like a link -.btn-link { - color: $link-color; - font-weight: normal; - border-radius: 0; - - &, - &:active, - &.active, - &[disabled], - fieldset[disabled] & { - background-color: transparent; - @include box-shadow(none); - } - &, - &:hover, - &:focus, - &:active { - border-color: transparent; - } - &:hover, - &:focus { - color: $link-hover-color; - text-decoration: $link-hover-decoration; - background-color: transparent; - } - &[disabled], - fieldset[disabled] & { - &:hover, - &:focus { - color: $btn-link-disabled-color; - text-decoration: none; - } - } -} - - -// Button Sizes -// -------------------------------------------------- - -.btn-lg { - // line-height: ensure even-numbered height of button next to large input - @include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $btn-border-radius-large); -} -.btn-sm { - // line-height: ensure proper height of button next to small input - @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small); -} -.btn-xs { - @include button-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small); -} - - -// Block button -// -------------------------------------------------- - -.btn-block { - display: block; - width: 100%; -} - -// Vertically space out multiple block buttons -.btn-block + .btn-block { - margin-top: 5px; -} - -// Specificity overrides -input[type="submit"], -input[type="reset"], -input[type="button"] { - &.btn-block { - width: 100%; - } -} diff --git a/docs/source/assets/stylesheets/bootstrap/_carousel.scss b/docs/source/assets/stylesheets/bootstrap/_carousel.scss deleted file mode 100644 index f7006780..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_carousel.scss +++ /dev/null @@ -1,269 +0,0 @@ -// -// Carousel -// -------------------------------------------------- - - -// Wrapper for the slide container and indicators -.carousel { - position: relative; -} - -.carousel-inner { - position: relative; - overflow: hidden; - width: 100%; - - > .item { - display: none; - position: relative; - @include transition(.6s ease-in-out left); - - // Account for jankitude on images - > img, - > a > img { - @include img-responsive; - line-height: 1; - } - - // WebKit CSS3 transforms for supported devices - @media all and (transform-3d), (-webkit-transform-3d) { - @include transition-transform(0.6s ease-in-out); - @include backface-visibility(hidden); - @include perspective(1000px); - - &.next, - &.active.right { - @include translate3d(100%, 0, 0); - left: 0; - } - &.prev, - &.active.left { - @include translate3d(-100%, 0, 0); - left: 0; - } - &.next.left, - &.prev.right, - &.active { - @include translate3d(0, 0, 0); - left: 0; - } - } - } - - > .active, - > .next, - > .prev { - display: block; - } - - > .active { - left: 0; - } - - > .next, - > .prev { - position: absolute; - top: 0; - width: 100%; - } - - > .next { - left: 100%; - } - > .prev { - left: -100%; - } - > .next.left, - > .prev.right { - left: 0; - } - - > .active.left { - left: -100%; - } - > .active.right { - left: 100%; - } - -} - -// Left/right controls for nav -// --------------------------- - -.carousel-control { - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: $carousel-control-width; - @include opacity($carousel-control-opacity); - font-size: $carousel-control-font-size; - color: $carousel-control-color; - text-align: center; - text-shadow: $carousel-text-shadow; - // We can't have this transition here because WebKit cancels the carousel - // animation if you trip this while in the middle of another animation. - - // Set gradients for backgrounds - &.left { - @include gradient-horizontal($start-color: rgba(0,0,0,.5), $end-color: rgba(0,0,0,.0001)); - } - &.right { - left: auto; - right: 0; - @include gradient-horizontal($start-color: rgba(0,0,0,.0001), $end-color: rgba(0,0,0,.5)); - } - - // Hover/focus state - &:hover, - &:focus { - outline: 0; - color: $carousel-control-color; - text-decoration: none; - @include opacity(.9); - } - - // Toggles - .icon-prev, - .icon-next, - .glyphicon-chevron-left, - .glyphicon-chevron-right { - position: absolute; - top: 50%; - margin-top: -10px; - z-index: 5; - display: inline-block; - } - .icon-prev, - .glyphicon-chevron-left { - left: 50%; - margin-left: -10px; - } - .icon-next, - .glyphicon-chevron-right { - right: 50%; - margin-right: -10px; - } - .icon-prev, - .icon-next { - width: 20px; - height: 20px; - line-height: 1; - font-family: serif; - } - - - .icon-prev { - &:before { - content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039) - } - } - .icon-next { - &:before { - content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A) - } - } -} - -// Optional indicator pips -// -// Add an unordered list with the following class and add a list item for each -// slide your carousel holds. - -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - margin-left: -30%; - padding-left: 0; - list-style: none; - text-align: center; - - li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - border: 1px solid $carousel-indicator-border-color; - border-radius: 10px; - cursor: pointer; - - // IE8-9 hack for event handling - // - // Internet Explorer 8-9 does not support clicks on elements without a set - // `background-color`. We cannot use `filter` since that's not viewed as a - // background color by the browser. Thus, a hack is needed. - // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer - // - // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we - // set alpha transparency for the best results possible. - background-color: #000 \9; // IE8 - background-color: rgba(0,0,0,0); // IE9 - } - .active { - margin: 0; - width: 12px; - height: 12px; - background-color: $carousel-indicator-active-bg; - } -} - -// Optional captions -// ----------------------------- -// Hidden by default for smaller viewports -.carousel-caption { - position: absolute; - left: 15%; - right: 15%; - bottom: 20px; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: $carousel-caption-color; - text-align: center; - text-shadow: $carousel-text-shadow; - & .btn { - text-shadow: none; // No shadow for button elements in carousel-caption - } -} - - -// Scale up controls for tablets and up -@media screen and (min-width: $screen-sm-min) { - - // Scale up the controls a smidge - .carousel-control { - .glyphicon-chevron-left, - .glyphicon-chevron-right, - .icon-prev, - .icon-next { - width: 30px; - height: 30px; - margin-top: -15px; - font-size: 30px; - } - .glyphicon-chevron-left, - .icon-prev { - margin-left: -15px; - } - .glyphicon-chevron-right, - .icon-next { - margin-right: -15px; - } - } - - // Show and left align the captions - .carousel-caption { - left: 20%; - right: 20%; - padding-bottom: 30px; - } - - // Move up the indicators - .carousel-indicators { - bottom: 20px; - } -} diff --git a/docs/source/assets/stylesheets/bootstrap/_close.scss b/docs/source/assets/stylesheets/bootstrap/_close.scss deleted file mode 100644 index 3b74d8a9..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_close.scss +++ /dev/null @@ -1,36 +0,0 @@ -// -// Close icons -// -------------------------------------------------- - - -.close { - float: right; - font-size: ($font-size-base * 1.5); - font-weight: $close-font-weight; - line-height: 1; - color: $close-color; - text-shadow: $close-text-shadow; - @include opacity(.2); - - &:hover, - &:focus { - color: $close-color; - text-decoration: none; - cursor: pointer; - @include opacity(.5); - } - - // [converter] extracted button& to button.close -} - -// Additional properties for button version -// iOS requires the button element instead of an anchor tag. -// If you want the anchor version, it requires `href="#"`. -// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile -button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; -} diff --git a/docs/source/assets/stylesheets/bootstrap/_code.scss b/docs/source/assets/stylesheets/bootstrap/_code.scss deleted file mode 100644 index caa5f063..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_code.scss +++ /dev/null @@ -1,69 +0,0 @@ -// -// Code (inline and block) -// -------------------------------------------------- - - -// Inline and block code styles -code, -kbd, -pre, -samp { - font-family: $font-family-monospace; -} - -// Inline code -code { - padding: 2px 4px; - font-size: 90%; - color: $code-color; - background-color: $code-bg; - border-radius: $border-radius-base; -} - -// User input typically entered via keyboard -kbd { - padding: 2px 4px; - font-size: 90%; - color: $kbd-color; - background-color: $kbd-bg; - border-radius: $border-radius-small; - box-shadow: inset 0 -1px 0 rgba(0,0,0,.25); - - kbd { - padding: 0; - font-size: 100%; - font-weight: bold; - box-shadow: none; - } -} - -// Blocks of code -pre { - display: block; - padding: (($line-height-computed - 1) / 2); - margin: 0 0 ($line-height-computed / 2); - font-size: ($font-size-base - 1); // 14px to 13px - line-height: $line-height-base; - word-break: break-all; - word-wrap: break-word; - color: $pre-color; - background-color: $pre-bg; - border: 1px solid $pre-border-color; - border-radius: $border-radius-base; - - // Account for some code outputs that place code tags in pre tags - code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; - } -} - -// Enable scrollable blocks of code -.pre-scrollable { - max-height: $pre-scrollable-max-height; - overflow-y: scroll; -} diff --git a/docs/source/assets/stylesheets/bootstrap/_component-animations.scss b/docs/source/assets/stylesheets/bootstrap/_component-animations.scss deleted file mode 100644 index ca3b43ca..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_component-animations.scss +++ /dev/null @@ -1,37 +0,0 @@ -// -// Component animations -// -------------------------------------------------- - -// Heads up! -// -// We don't use the `.opacity()` mixin here since it causes a bug with text -// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. - -.fade { - opacity: 0; - @include transition(opacity .15s linear); - &.in { - opacity: 1; - } -} - -.collapse { - display: none; - - &.in { display: block; } - // [converter] extracted tr&.in to tr.collapse.in - // [converter] extracted tbody&.in to tbody.collapse.in -} - -tr.collapse.in { display: table-row; } - -tbody.collapse.in { display: table-row-group; } - -.collapsing { - position: relative; - height: 0; - overflow: hidden; - @include transition-property(height, visibility); - @include transition-duration(.35s); - @include transition-timing-function(ease); -} diff --git a/docs/source/assets/stylesheets/bootstrap/_dropdowns.scss b/docs/source/assets/stylesheets/bootstrap/_dropdowns.scss deleted file mode 100644 index aac84597..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_dropdowns.scss +++ /dev/null @@ -1,216 +0,0 @@ -// -// Dropdown menus -// -------------------------------------------------- - - -// Dropdown arrow/caret -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: $caret-width-base dashed; - border-top: $caret-width-base solid \9; // IE8 - border-right: $caret-width-base solid transparent; - border-left: $caret-width-base solid transparent; -} - -// The dropdown wrapper (div) -.dropup, -.dropdown { - position: relative; -} - -// Prevent the focus on the dropdown toggle when closing dropdowns -.dropdown-toggle:focus { - outline: 0; -} - -// The dropdown menu (ul) -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: $zindex-dropdown; - display: none; // none by default, but block on "open" of the menu - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; // override default ul - list-style: none; - font-size: $font-size-base; - text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer) - background-color: $dropdown-bg; - border: 1px solid $dropdown-fallback-border; // IE8 fallback - border: 1px solid $dropdown-border; - border-radius: $border-radius-base; - @include box-shadow(0 6px 12px rgba(0,0,0,.175)); - background-clip: padding-box; - - // Aligns the dropdown menu to right - // - // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]` - &.pull-right { - right: 0; - left: auto; - } - - // Dividers (basically an hr) within the dropdown - .divider { - @include nav-divider($dropdown-divider-bg); - } - - // Links within the dropdown menu - > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: $line-height-base; - color: $dropdown-link-color; - white-space: nowrap; // prevent links from randomly breaking onto new lines - } -} - -// Hover/Focus state -.dropdown-menu > li > a { - &:hover, - &:focus { - text-decoration: none; - color: $dropdown-link-hover-color; - background-color: $dropdown-link-hover-bg; - } -} - -// Active state -.dropdown-menu > .active > a { - &, - &:hover, - &:focus { - color: $dropdown-link-active-color; - text-decoration: none; - outline: 0; - background-color: $dropdown-link-active-bg; - } -} - -// Disabled state -// -// Gray out text and ensure the hover/focus state remains gray - -.dropdown-menu > .disabled > a { - &, - &:hover, - &:focus { - color: $dropdown-link-disabled-color; - } - - // Nuke hover/focus effects - &:hover, - &:focus { - text-decoration: none; - background-color: transparent; - background-image: none; // Remove CSS gradient - @include reset-filter; - cursor: $cursor-disabled; - } -} - -// Open state for the dropdown -.open { - // Show the menu - > .dropdown-menu { - display: block; - } - - // Remove the outline when :focus is triggered - > a { - outline: 0; - } -} - -// Menu positioning -// -// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown -// menu with the parent. -.dropdown-menu-right { - left: auto; // Reset the default from `.dropdown-menu` - right: 0; -} -// With v3, we enabled auto-flipping if you have a dropdown within a right -// aligned nav component. To enable the undoing of that, we provide an override -// to restore the default dropdown menu alignment. -// -// This is only for left-aligning a dropdown menu within a `.navbar-right` or -// `.pull-right` nav component. -.dropdown-menu-left { - left: 0; - right: auto; -} - -// Dropdown section headers -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: $font-size-small; - line-height: $line-height-base; - color: $dropdown-header-color; - white-space: nowrap; // as with > li > a -} - -// Backdrop to catch body clicks on mobile, etc. -.dropdown-backdrop { - position: fixed; - left: 0; - right: 0; - bottom: 0; - top: 0; - z-index: ($zindex-dropdown - 10); -} - -// Right aligned dropdowns -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} - -// Allow for dropdowns to go bottom up (aka, dropup-menu) -// -// Just add .dropup after the standard .dropdown class and you're set, bro. -// TODO: abstract this so that the navbar fixed styles are not placed here? - -.dropup, -.navbar-fixed-bottom .dropdown { - // Reverse the caret - .caret { - border-top: 0; - border-bottom: $caret-width-base dashed; - border-bottom: $caret-width-base solid \9; // IE8 - content: ""; - } - // Different positioning for bottom up menu - .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 2px; - } -} - - -// Component alignment -// -// Reiterate per navbar.less and the modified component alignment there. - -@media (min-width: $grid-float-breakpoint) { - .navbar-right { - .dropdown-menu { - right: 0; left: auto; - } - // Necessary for overrides of the default right aligned menu. - // Will remove come v4 in all likelihood. - .dropdown-menu-left { - left: 0; right: auto; - } - } -} diff --git a/docs/source/assets/stylesheets/bootstrap/_forms.scss b/docs/source/assets/stylesheets/bootstrap/_forms.scss deleted file mode 100644 index de4befdb..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_forms.scss +++ /dev/null @@ -1,611 +0,0 @@ -// -// Forms -// -------------------------------------------------- - - -// Normalize non-controls -// -// Restyle and baseline non-control form elements. - -fieldset { - padding: 0; - margin: 0; - border: 0; - // Chrome and Firefox set a `min-width: min-content;` on fieldsets, - // so we reset that to ensure it behaves more like a standard block element. - // See https://github.com/twbs/bootstrap/issues/12359. - min-width: 0; -} - -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: $line-height-computed; - font-size: ($font-size-base * 1.5); - line-height: inherit; - color: $legend-color; - border: 0; - border-bottom: 1px solid $legend-border-color; -} - -label { - display: inline-block; - max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141) - margin-bottom: 5px; - font-weight: bold; -} - - -// Normalize form controls -// -// While most of our form styles require extra classes, some basic normalization -// is required to ensure optimum display with or without those classes to better -// address browser inconsistencies. - -// Override content-box in Normalize (* isn't specific enough) -input[type="search"] { - @include box-sizing(border-box); -} - -// Position radios and checkboxes better -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; // IE8-9 - line-height: normal; -} - -input[type="file"] { - display: block; -} - -// Make range inputs behave like textual form controls -input[type="range"] { - display: block; - width: 100%; -} - -// Make multiple select elements height not fixed -select[multiple], -select[size] { - height: auto; -} - -// Focus for file, radio, and checkbox -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - @include tab-focus; -} - -// Adjust output element -output { - display: block; - padding-top: ($padding-base-vertical + 1); - font-size: $font-size-base; - line-height: $line-height-base; - color: $input-color; -} - - -// Common form controls -// -// Shared size and type resets for form controls. Apply `.form-control` to any -// of the following form controls: -// -// select -// textarea -// input[type="text"] -// input[type="password"] -// input[type="datetime"] -// input[type="datetime-local"] -// input[type="date"] -// input[type="month"] -// input[type="time"] -// input[type="week"] -// input[type="number"] -// input[type="email"] -// input[type="url"] -// input[type="search"] -// input[type="tel"] -// input[type="color"] - -.form-control { - display: block; - width: 100%; - height: $input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border) - padding: $padding-base-vertical $padding-base-horizontal; - font-size: $font-size-base; - line-height: $line-height-base; - color: $input-color; - background-color: $input-bg; - background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 - border: 1px solid $input-border; - border-radius: $input-border-radius; // Note: This has no effect on s in CSS. - @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); - @include transition(border-color ease-in-out .15s, box-shadow ease-in-out .15s); - - // Customize the `:focus` state to imitate native WebKit styles. - @include form-control-focus; - - // Placeholder - @include placeholder; - - // Disabled and read-only inputs - // - // HTML5 says that controls under a fieldset > legend:first-child won't be - // disabled if the fieldset is disabled. Due to implementation difficulty, we - // don't honor that edge case; we style them as disabled anyway. - &[disabled], - &[readonly], - fieldset[disabled] & { - background-color: $input-bg-disabled; - opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655 - } - - &[disabled], - fieldset[disabled] & { - cursor: $cursor-disabled; - } - - // [converter] extracted textarea& to textarea.form-control -} - -// Reset height for `textarea`s -textarea.form-control { - height: auto; -} - - -// Search inputs in iOS -// -// This overrides the extra rounded corners on search inputs in iOS so that our -// `.form-control` class can properly style them. Note that this cannot simply -// be added to `.form-control` as it's not specific enough. For details, see -// https://github.com/twbs/bootstrap/issues/11586. - -input[type="search"] { - -webkit-appearance: none; -} - - -// Special styles for iOS temporal inputs -// -// In Mobile Safari, setting `display: block` on temporal inputs causes the -// text within the input to become vertically misaligned. As a workaround, we -// set a pixel line-height that matches the given height of the input, but only -// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848 -// -// Note that as of 8.3, iOS doesn't support `datetime` or `week`. - -@media screen and (-webkit-min-device-pixel-ratio: 0) { - input[type="date"], - input[type="time"], - input[type="datetime-local"], - input[type="month"] { - &.form-control { - line-height: $input-height-base; - } - - &.input-sm, - .input-group-sm & { - line-height: $input-height-small; - } - - &.input-lg, - .input-group-lg & { - line-height: $input-height-large; - } - } -} - - -// Form groups -// -// Designed to help with the organization and spacing of vertical forms. For -// horizontal forms, use the predefined grid classes. - -.form-group { - margin-bottom: $form-group-margin-bottom; -} - - -// Checkboxes and radios -// -// Indent the labels to position radios/checkboxes as hanging controls. - -.radio, -.checkbox { - position: relative; - display: block; - margin-top: 10px; - margin-bottom: 10px; - - label { - min-height: $line-height-computed; // Ensure the input doesn't jump when there is no text - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - cursor: pointer; - } -} -.radio input[type="radio"], -.radio-inline input[type="radio"], -.checkbox input[type="checkbox"], -.checkbox-inline input[type="checkbox"] { - position: absolute; - margin-left: -20px; - margin-top: 4px \9; -} - -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing -} - -// Radios and checkboxes on same line -.radio-inline, -.checkbox-inline { - position: relative; - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - vertical-align: middle; - font-weight: normal; - cursor: pointer; -} -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; // space out consecutive inline controls -} - -// Apply same disabled cursor tweak as for inputs -// Some special care is needed because Star - -@at-root { - // Import the fonts - @font-face { - font-family: 'Glyphicons Halflings'; - src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot'), '#{$icon-font-path}#{$icon-font-name}.eot')); - src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot?#iefix'), '#{$icon-font-path}#{$icon-font-name}.eot?#iefix')) format('embedded-opentype'), - url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.woff2'), '#{$icon-font-path}#{$icon-font-name}.woff2')) format('woff2'), - url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.woff'), '#{$icon-font-path}#{$icon-font-name}.woff')) format('woff'), - url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.ttf'), '#{$icon-font-path}#{$icon-font-name}.ttf')) format('truetype'), - url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}'), '#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}')) format('svg'); - } -} - -// Catchall baseclass -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -// Individual icons -.glyphicon-asterisk { &:before { content: "\2a"; } } -.glyphicon-plus { &:before { content: "\2b"; } } -.glyphicon-euro, -.glyphicon-eur { &:before { content: "\20ac"; } } -.glyphicon-minus { &:before { content: "\2212"; } } -.glyphicon-cloud { &:before { content: "\2601"; } } -.glyphicon-envelope { &:before { content: "\2709"; } } -.glyphicon-pencil { &:before { content: "\270f"; } } -.glyphicon-glass { &:before { content: "\e001"; } } -.glyphicon-music { &:before { content: "\e002"; } } -.glyphicon-search { &:before { content: "\e003"; } } -.glyphicon-heart { &:before { content: "\e005"; } } -.glyphicon-star { &:before { content: "\e006"; } } -.glyphicon-star-empty { &:before { content: "\e007"; } } -.glyphicon-user { &:before { content: "\e008"; } } -.glyphicon-film { &:before { content: "\e009"; } } -.glyphicon-th-large { &:before { content: "\e010"; } } -.glyphicon-th { &:before { content: "\e011"; } } -.glyphicon-th-list { &:before { content: "\e012"; } } -.glyphicon-ok { &:before { content: "\e013"; } } -.glyphicon-remove { &:before { content: "\e014"; } } -.glyphicon-zoom-in { &:before { content: "\e015"; } } -.glyphicon-zoom-out { &:before { content: "\e016"; } } -.glyphicon-off { &:before { content: "\e017"; } } -.glyphicon-signal { &:before { content: "\e018"; } } -.glyphicon-cog { &:before { content: "\e019"; } } -.glyphicon-trash { &:before { content: "\e020"; } } -.glyphicon-home { &:before { content: "\e021"; } } -.glyphicon-file { &:before { content: "\e022"; } } -.glyphicon-time { &:before { content: "\e023"; } } -.glyphicon-road { &:before { content: "\e024"; } } -.glyphicon-download-alt { &:before { content: "\e025"; } } -.glyphicon-download { &:before { content: "\e026"; } } -.glyphicon-upload { &:before { content: "\e027"; } } -.glyphicon-inbox { &:before { content: "\e028"; } } -.glyphicon-play-circle { &:before { content: "\e029"; } } -.glyphicon-repeat { &:before { content: "\e030"; } } -.glyphicon-refresh { &:before { content: "\e031"; } } -.glyphicon-list-alt { &:before { content: "\e032"; } } -.glyphicon-lock { &:before { content: "\e033"; } } -.glyphicon-flag { &:before { content: "\e034"; } } -.glyphicon-headphones { &:before { content: "\e035"; } } -.glyphicon-volume-off { &:before { content: "\e036"; } } -.glyphicon-volume-down { &:before { content: "\e037"; } } -.glyphicon-volume-up { &:before { content: "\e038"; } } -.glyphicon-qrcode { &:before { content: "\e039"; } } -.glyphicon-barcode { &:before { content: "\e040"; } } -.glyphicon-tag { &:before { content: "\e041"; } } -.glyphicon-tags { &:before { content: "\e042"; } } -.glyphicon-book { &:before { content: "\e043"; } } -.glyphicon-bookmark { &:before { content: "\e044"; } } -.glyphicon-print { &:before { content: "\e045"; } } -.glyphicon-camera { &:before { content: "\e046"; } } -.glyphicon-font { &:before { content: "\e047"; } } -.glyphicon-bold { &:before { content: "\e048"; } } -.glyphicon-italic { &:before { content: "\e049"; } } -.glyphicon-text-height { &:before { content: "\e050"; } } -.glyphicon-text-width { &:before { content: "\e051"; } } -.glyphicon-align-left { &:before { content: "\e052"; } } -.glyphicon-align-center { &:before { content: "\e053"; } } -.glyphicon-align-right { &:before { content: "\e054"; } } -.glyphicon-align-justify { &:before { content: "\e055"; } } -.glyphicon-list { &:before { content: "\e056"; } } -.glyphicon-indent-left { &:before { content: "\e057"; } } -.glyphicon-indent-right { &:before { content: "\e058"; } } -.glyphicon-facetime-video { &:before { content: "\e059"; } } -.glyphicon-picture { &:before { content: "\e060"; } } -.glyphicon-map-marker { &:before { content: "\e062"; } } -.glyphicon-adjust { &:before { content: "\e063"; } } -.glyphicon-tint { &:before { content: "\e064"; } } -.glyphicon-edit { &:before { content: "\e065"; } } -.glyphicon-share { &:before { content: "\e066"; } } -.glyphicon-check { &:before { content: "\e067"; } } -.glyphicon-move { &:before { content: "\e068"; } } -.glyphicon-step-backward { &:before { content: "\e069"; } } -.glyphicon-fast-backward { &:before { content: "\e070"; } } -.glyphicon-backward { &:before { content: "\e071"; } } -.glyphicon-play { &:before { content: "\e072"; } } -.glyphicon-pause { &:before { content: "\e073"; } } -.glyphicon-stop { &:before { content: "\e074"; } } -.glyphicon-forward { &:before { content: "\e075"; } } -.glyphicon-fast-forward { &:before { content: "\e076"; } } -.glyphicon-step-forward { &:before { content: "\e077"; } } -.glyphicon-eject { &:before { content: "\e078"; } } -.glyphicon-chevron-left { &:before { content: "\e079"; } } -.glyphicon-chevron-right { &:before { content: "\e080"; } } -.glyphicon-plus-sign { &:before { content: "\e081"; } } -.glyphicon-minus-sign { &:before { content: "\e082"; } } -.glyphicon-remove-sign { &:before { content: "\e083"; } } -.glyphicon-ok-sign { &:before { content: "\e084"; } } -.glyphicon-question-sign { &:before { content: "\e085"; } } -.glyphicon-info-sign { &:before { content: "\e086"; } } -.glyphicon-screenshot { &:before { content: "\e087"; } } -.glyphicon-remove-circle { &:before { content: "\e088"; } } -.glyphicon-ok-circle { &:before { content: "\e089"; } } -.glyphicon-ban-circle { &:before { content: "\e090"; } } -.glyphicon-arrow-left { &:before { content: "\e091"; } } -.glyphicon-arrow-right { &:before { content: "\e092"; } } -.glyphicon-arrow-up { &:before { content: "\e093"; } } -.glyphicon-arrow-down { &:before { content: "\e094"; } } -.glyphicon-share-alt { &:before { content: "\e095"; } } -.glyphicon-resize-full { &:before { content: "\e096"; } } -.glyphicon-resize-small { &:before { content: "\e097"; } } -.glyphicon-exclamation-sign { &:before { content: "\e101"; } } -.glyphicon-gift { &:before { content: "\e102"; } } -.glyphicon-leaf { &:before { content: "\e103"; } } -.glyphicon-fire { &:before { content: "\e104"; } } -.glyphicon-eye-open { &:before { content: "\e105"; } } -.glyphicon-eye-close { &:before { content: "\e106"; } } -.glyphicon-warning-sign { &:before { content: "\e107"; } } -.glyphicon-plane { &:before { content: "\e108"; } } -.glyphicon-calendar { &:before { content: "\e109"; } } -.glyphicon-random { &:before { content: "\e110"; } } -.glyphicon-comment { &:before { content: "\e111"; } } -.glyphicon-magnet { &:before { content: "\e112"; } } -.glyphicon-chevron-up { &:before { content: "\e113"; } } -.glyphicon-chevron-down { &:before { content: "\e114"; } } -.glyphicon-retweet { &:before { content: "\e115"; } } -.glyphicon-shopping-cart { &:before { content: "\e116"; } } -.glyphicon-folder-close { &:before { content: "\e117"; } } -.glyphicon-folder-open { &:before { content: "\e118"; } } -.glyphicon-resize-vertical { &:before { content: "\e119"; } } -.glyphicon-resize-horizontal { &:before { content: "\e120"; } } -.glyphicon-hdd { &:before { content: "\e121"; } } -.glyphicon-bullhorn { &:before { content: "\e122"; } } -.glyphicon-bell { &:before { content: "\e123"; } } -.glyphicon-certificate { &:before { content: "\e124"; } } -.glyphicon-thumbs-up { &:before { content: "\e125"; } } -.glyphicon-thumbs-down { &:before { content: "\e126"; } } -.glyphicon-hand-right { &:before { content: "\e127"; } } -.glyphicon-hand-left { &:before { content: "\e128"; } } -.glyphicon-hand-up { &:before { content: "\e129"; } } -.glyphicon-hand-down { &:before { content: "\e130"; } } -.glyphicon-circle-arrow-right { &:before { content: "\e131"; } } -.glyphicon-circle-arrow-left { &:before { content: "\e132"; } } -.glyphicon-circle-arrow-up { &:before { content: "\e133"; } } -.glyphicon-circle-arrow-down { &:before { content: "\e134"; } } -.glyphicon-globe { &:before { content: "\e135"; } } -.glyphicon-wrench { &:before { content: "\e136"; } } -.glyphicon-tasks { &:before { content: "\e137"; } } -.glyphicon-filter { &:before { content: "\e138"; } } -.glyphicon-briefcase { &:before { content: "\e139"; } } -.glyphicon-fullscreen { &:before { content: "\e140"; } } -.glyphicon-dashboard { &:before { content: "\e141"; } } -.glyphicon-paperclip { &:before { content: "\e142"; } } -.glyphicon-heart-empty { &:before { content: "\e143"; } } -.glyphicon-link { &:before { content: "\e144"; } } -.glyphicon-phone { &:before { content: "\e145"; } } -.glyphicon-pushpin { &:before { content: "\e146"; } } -.glyphicon-usd { &:before { content: "\e148"; } } -.glyphicon-gbp { &:before { content: "\e149"; } } -.glyphicon-sort { &:before { content: "\e150"; } } -.glyphicon-sort-by-alphabet { &:before { content: "\e151"; } } -.glyphicon-sort-by-alphabet-alt { &:before { content: "\e152"; } } -.glyphicon-sort-by-order { &:before { content: "\e153"; } } -.glyphicon-sort-by-order-alt { &:before { content: "\e154"; } } -.glyphicon-sort-by-attributes { &:before { content: "\e155"; } } -.glyphicon-sort-by-attributes-alt { &:before { content: "\e156"; } } -.glyphicon-unchecked { &:before { content: "\e157"; } } -.glyphicon-expand { &:before { content: "\e158"; } } -.glyphicon-collapse-down { &:before { content: "\e159"; } } -.glyphicon-collapse-up { &:before { content: "\e160"; } } -.glyphicon-log-in { &:before { content: "\e161"; } } -.glyphicon-flash { &:before { content: "\e162"; } } -.glyphicon-log-out { &:before { content: "\e163"; } } -.glyphicon-new-window { &:before { content: "\e164"; } } -.glyphicon-record { &:before { content: "\e165"; } } -.glyphicon-save { &:before { content: "\e166"; } } -.glyphicon-open { &:before { content: "\e167"; } } -.glyphicon-saved { &:before { content: "\e168"; } } -.glyphicon-import { &:before { content: "\e169"; } } -.glyphicon-export { &:before { content: "\e170"; } } -.glyphicon-send { &:before { content: "\e171"; } } -.glyphicon-floppy-disk { &:before { content: "\e172"; } } -.glyphicon-floppy-saved { &:before { content: "\e173"; } } -.glyphicon-floppy-remove { &:before { content: "\e174"; } } -.glyphicon-floppy-save { &:before { content: "\e175"; } } -.glyphicon-floppy-open { &:before { content: "\e176"; } } -.glyphicon-credit-card { &:before { content: "\e177"; } } -.glyphicon-transfer { &:before { content: "\e178"; } } -.glyphicon-cutlery { &:before { content: "\e179"; } } -.glyphicon-header { &:before { content: "\e180"; } } -.glyphicon-compressed { &:before { content: "\e181"; } } -.glyphicon-earphone { &:before { content: "\e182"; } } -.glyphicon-phone-alt { &:before { content: "\e183"; } } -.glyphicon-tower { &:before { content: "\e184"; } } -.glyphicon-stats { &:before { content: "\e185"; } } -.glyphicon-sd-video { &:before { content: "\e186"; } } -.glyphicon-hd-video { &:before { content: "\e187"; } } -.glyphicon-subtitles { &:before { content: "\e188"; } } -.glyphicon-sound-stereo { &:before { content: "\e189"; } } -.glyphicon-sound-dolby { &:before { content: "\e190"; } } -.glyphicon-sound-5-1 { &:before { content: "\e191"; } } -.glyphicon-sound-6-1 { &:before { content: "\e192"; } } -.glyphicon-sound-7-1 { &:before { content: "\e193"; } } -.glyphicon-copyright-mark { &:before { content: "\e194"; } } -.glyphicon-registration-mark { &:before { content: "\e195"; } } -.glyphicon-cloud-download { &:before { content: "\e197"; } } -.glyphicon-cloud-upload { &:before { content: "\e198"; } } -.glyphicon-tree-conifer { &:before { content: "\e199"; } } -.glyphicon-tree-deciduous { &:before { content: "\e200"; } } -.glyphicon-cd { &:before { content: "\e201"; } } -.glyphicon-save-file { &:before { content: "\e202"; } } -.glyphicon-open-file { &:before { content: "\e203"; } } -.glyphicon-level-up { &:before { content: "\e204"; } } -.glyphicon-copy { &:before { content: "\e205"; } } -.glyphicon-paste { &:before { content: "\e206"; } } -// The following 2 Glyphicons are omitted for the time being because -// they currently use Unicode codepoints that are outside the -// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle -// non-BMP codepoints in CSS string escapes, and thus can't display these two icons. -// Notably, the bug affects some older versions of the Android Browser. -// More info: https://github.com/twbs/bootstrap/issues/10106 -// .glyphicon-door { &:before { content: "\1f6aa"; } } -// .glyphicon-key { &:before { content: "\1f511"; } } -.glyphicon-alert { &:before { content: "\e209"; } } -.glyphicon-equalizer { &:before { content: "\e210"; } } -.glyphicon-king { &:before { content: "\e211"; } } -.glyphicon-queen { &:before { content: "\e212"; } } -.glyphicon-pawn { &:before { content: "\e213"; } } -.glyphicon-bishop { &:before { content: "\e214"; } } -.glyphicon-knight { &:before { content: "\e215"; } } -.glyphicon-baby-formula { &:before { content: "\e216"; } } -.glyphicon-tent { &:before { content: "\26fa"; } } -.glyphicon-blackboard { &:before { content: "\e218"; } } -.glyphicon-bed { &:before { content: "\e219"; } } -.glyphicon-apple { &:before { content: "\f8ff"; } } -.glyphicon-erase { &:before { content: "\e221"; } } -.glyphicon-hourglass { &:before { content: "\231b"; } } -.glyphicon-lamp { &:before { content: "\e223"; } } -.glyphicon-duplicate { &:before { content: "\e224"; } } -.glyphicon-piggy-bank { &:before { content: "\e225"; } } -.glyphicon-scissors { &:before { content: "\e226"; } } -.glyphicon-bitcoin { &:before { content: "\e227"; } } -.glyphicon-btc { &:before { content: "\e227"; } } -.glyphicon-xbt { &:before { content: "\e227"; } } -.glyphicon-yen { &:before { content: "\00a5"; } } -.glyphicon-jpy { &:before { content: "\00a5"; } } -.glyphicon-ruble { &:before { content: "\20bd"; } } -.glyphicon-rub { &:before { content: "\20bd"; } } -.glyphicon-scale { &:before { content: "\e230"; } } -.glyphicon-ice-lolly { &:before { content: "\e231"; } } -.glyphicon-ice-lolly-tasted { &:before { content: "\e232"; } } -.glyphicon-education { &:before { content: "\e233"; } } -.glyphicon-option-horizontal { &:before { content: "\e234"; } } -.glyphicon-option-vertical { &:before { content: "\e235"; } } -.glyphicon-menu-hamburger { &:before { content: "\e236"; } } -.glyphicon-modal-window { &:before { content: "\e237"; } } -.glyphicon-oil { &:before { content: "\e238"; } } -.glyphicon-grain { &:before { content: "\e239"; } } -.glyphicon-sunglasses { &:before { content: "\e240"; } } -.glyphicon-text-size { &:before { content: "\e241"; } } -.glyphicon-text-color { &:before { content: "\e242"; } } -.glyphicon-text-background { &:before { content: "\e243"; } } -.glyphicon-object-align-top { &:before { content: "\e244"; } } -.glyphicon-object-align-bottom { &:before { content: "\e245"; } } -.glyphicon-object-align-horizontal{ &:before { content: "\e246"; } } -.glyphicon-object-align-left { &:before { content: "\e247"; } } -.glyphicon-object-align-vertical { &:before { content: "\e248"; } } -.glyphicon-object-align-right { &:before { content: "\e249"; } } -.glyphicon-triangle-right { &:before { content: "\e250"; } } -.glyphicon-triangle-left { &:before { content: "\e251"; } } -.glyphicon-triangle-bottom { &:before { content: "\e252"; } } -.glyphicon-triangle-top { &:before { content: "\e253"; } } -.glyphicon-console { &:before { content: "\e254"; } } -.glyphicon-superscript { &:before { content: "\e255"; } } -.glyphicon-subscript { &:before { content: "\e256"; } } -.glyphicon-menu-left { &:before { content: "\e257"; } } -.glyphicon-menu-right { &:before { content: "\e258"; } } -.glyphicon-menu-down { &:before { content: "\e259"; } } -.glyphicon-menu-up { &:before { content: "\e260"; } } diff --git a/docs/source/assets/stylesheets/bootstrap/_grid.scss b/docs/source/assets/stylesheets/bootstrap/_grid.scss deleted file mode 100644 index b15ca27b..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_grid.scss +++ /dev/null @@ -1,84 +0,0 @@ -// -// Grid system -// -------------------------------------------------- - - -// Container widths -// -// Set the container width, and override it for fixed navbars in media queries. - -.container { - @include container-fixed; - - @media (min-width: $screen-sm-min) { - width: $container-sm; - } - @media (min-width: $screen-md-min) { - width: $container-md; - } - @media (min-width: $screen-lg-min) { - width: $container-lg; - } -} - - -// Fluid container -// -// Utilizes the mixin meant for fixed width containers, but without any defined -// width for fluid, full width layouts. - -.container-fluid { - @include container-fixed; -} - - -// Row -// -// Rows contain and clear the floats of your columns. - -.row { - @include make-row; -} - - -// Columns -// -// Common styles for small and large grid columns - -@include make-grid-columns; - - -// Extra small grid -// -// Columns, offsets, pushes, and pulls for extra small devices like -// smartphones. - -@include make-grid(xs); - - -// Small grid -// -// Columns, offsets, pushes, and pulls for the small device range, from phones -// to tablets. - -@media (min-width: $screen-sm-min) { - @include make-grid(sm); -} - - -// Medium grid -// -// Columns, offsets, pushes, and pulls for the desktop device range. - -@media (min-width: $screen-md-min) { - @include make-grid(md); -} - - -// Large grid -// -// Columns, offsets, pushes, and pulls for the large desktop device range. - -@media (min-width: $screen-lg-min) { - @include make-grid(lg); -} diff --git a/docs/source/assets/stylesheets/bootstrap/_input-groups.scss b/docs/source/assets/stylesheets/bootstrap/_input-groups.scss deleted file mode 100644 index 12f0c428..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_input-groups.scss +++ /dev/null @@ -1,167 +0,0 @@ -// -// Input groups -// -------------------------------------------------- - -// Base styles -// ------------------------- -.input-group { - position: relative; // For dropdowns - display: table; - border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table - - // Undo padding and float of grid classes - &[class*="col-"] { - float: none; - padding-left: 0; - padding-right: 0; - } - - .form-control { - // Ensure that the input is always above the *appended* addon button for - // proper border colors. - position: relative; - z-index: 2; - - // IE9 fubars the placeholder attribute in text inputs and the arrows on - // select elements in input groups. To fix it, we float the input. Details: - // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855 - float: left; - - width: 100%; - margin-bottom: 0; - } -} - -// Sizing options -// -// Remix the default form control sizing classes into new ones for easier -// manipulation. - -.input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - @extend .input-lg; -} -.input-group-sm > .form-control, -.input-group-sm > .input-group-addon, -.input-group-sm > .input-group-btn > .btn { - @extend .input-sm; -} - - -// Display as table-cell -// ------------------------- -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; - - &:not(:first-child):not(:last-child) { - border-radius: 0; - } -} -// Addon and addon wrapper for buttons -.input-group-addon, -.input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; // Match the inputs -} - -// Text input groups -// ------------------------- -.input-group-addon { - padding: $padding-base-vertical $padding-base-horizontal; - font-size: $font-size-base; - font-weight: normal; - line-height: 1; - color: $input-color; - text-align: center; - background-color: $input-group-addon-bg; - border: 1px solid $input-group-addon-border-color; - border-radius: $border-radius-base; - - // Sizing - &.input-sm { - padding: $padding-small-vertical $padding-small-horizontal; - font-size: $font-size-small; - border-radius: $border-radius-small; - } - &.input-lg { - padding: $padding-large-vertical $padding-large-horizontal; - font-size: $font-size-large; - border-radius: $border-radius-large; - } - - // Nuke default margins from checkboxes and radios to vertically center within. - input[type="radio"], - input[type="checkbox"] { - margin-top: 0; - } -} - -// Reset rounded corners -.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group > .btn, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - @include border-right-radius(0); -} -.input-group-addon:first-child { - border-right: 0; -} -.input-group .form-control:last-child, -.input-group-addon:last-child, -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group > .btn, -.input-group-btn:last-child > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child), -.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - @include border-left-radius(0); -} -.input-group-addon:last-child { - border-left: 0; -} - -// Button input groups -// ------------------------- -.input-group-btn { - position: relative; - // Jankily prevent input button groups from wrapping with `white-space` and - // `font-size` in combination with `inline-block` on buttons. - font-size: 0; - white-space: nowrap; - - // Negative margin for spacing, position for bringing hovered/focused/actived - // element above the siblings. - > .btn { - position: relative; - + .btn { - margin-left: -1px; - } - // Bring the "active" button to the front - &:hover, - &:focus, - &:active { - z-index: 2; - } - } - - // Negative margin to only have a 1px border between the two - &:first-child { - > .btn, - > .btn-group { - margin-right: -1px; - } - } - &:last-child { - > .btn, - > .btn-group { - z-index: 2; - margin-left: -1px; - } - } -} diff --git a/docs/source/assets/stylesheets/bootstrap/_jumbotron.scss b/docs/source/assets/stylesheets/bootstrap/_jumbotron.scss deleted file mode 100644 index 439d23de..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_jumbotron.scss +++ /dev/null @@ -1,52 +0,0 @@ -// -// Jumbotron -// -------------------------------------------------- - - -.jumbotron { - padding-top: $jumbotron-padding; - padding-bottom: $jumbotron-padding; - margin-bottom: $jumbotron-padding; - color: $jumbotron-color; - background-color: $jumbotron-bg; - - h1, - .h1 { - color: $jumbotron-heading-color; - } - - p { - margin-bottom: ($jumbotron-padding / 2); - font-size: $jumbotron-font-size; - font-weight: 200; - } - - > hr { - border-top-color: darken($jumbotron-bg, 10%); - } - - .container &, - .container-fluid & { - border-radius: $border-radius-large; // Only round corners at higher resolutions if contained in a container - } - - .container { - max-width: 100%; - } - - @media screen and (min-width: $screen-sm-min) { - padding-top: ($jumbotron-padding * 1.6); - padding-bottom: ($jumbotron-padding * 1.6); - - .container &, - .container-fluid & { - padding-left: ($jumbotron-padding * 2); - padding-right: ($jumbotron-padding * 2); - } - - h1, - .h1 { - font-size: $jumbotron-heading-font-size; - } - } -} diff --git a/docs/source/assets/stylesheets/bootstrap/_labels.scss b/docs/source/assets/stylesheets/bootstrap/_labels.scss deleted file mode 100644 index 42ed6ea1..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_labels.scss +++ /dev/null @@ -1,66 +0,0 @@ -// -// Labels -// -------------------------------------------------- - -.label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: $label-color; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; - - // [converter] extracted a& to a.label - - // Empty labels collapse automatically (not available in IE8) - &:empty { - display: none; - } - - // Quick fix for labels in buttons - .btn & { - position: relative; - top: -1px; - } -} - -// Add hover effects, but only for links -a.label { - &:hover, - &:focus { - color: $label-link-hover-color; - text-decoration: none; - cursor: pointer; - } -} - -// Colors -// Contextual variations (linked labels get darker on :hover) - -.label-default { - @include label-variant($label-default-bg); -} - -.label-primary { - @include label-variant($label-primary-bg); -} - -.label-success { - @include label-variant($label-success-bg); -} - -.label-info { - @include label-variant($label-info-bg); -} - -.label-warning { - @include label-variant($label-warning-bg); -} - -.label-danger { - @include label-variant($label-danger-bg); -} diff --git a/docs/source/assets/stylesheets/bootstrap/_list-group.scss b/docs/source/assets/stylesheets/bootstrap/_list-group.scss deleted file mode 100644 index 7cb83aab..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_list-group.scss +++ /dev/null @@ -1,130 +0,0 @@ -// -// List groups -// -------------------------------------------------- - - -// Base class -// -// Easily usable on
      ,
        , or
        . - -.list-group { - // No need to set list-style: none; since .list-group-item is block level - margin-bottom: 20px; - padding-left: 0; // reset padding because ul and ol -} - - -// Individual list items -// -// Use on `li`s or `div`s within the `.list-group` parent. - -.list-group-item { - position: relative; - display: block; - padding: 10px 15px; - // Place the border on the list items and negative margin up for better styling - margin-bottom: -1px; - background-color: $list-group-bg; - border: 1px solid $list-group-border; - - // Round the first and last items - &:first-child { - @include border-top-radius($list-group-border-radius); - } - &:last-child { - margin-bottom: 0; - @include border-bottom-radius($list-group-border-radius); - } -} - - -// Interactive list items -// -// Use anchor or button elements instead of `li`s or `div`s to create interactive items. -// Includes an extra `.active` modifier class for showing selected items. - -a.list-group-item, -button.list-group-item { - color: $list-group-link-color; - - .list-group-item-heading { - color: $list-group-link-heading-color; - } - - // Hover state - &:hover, - &:focus { - text-decoration: none; - color: $list-group-link-hover-color; - background-color: $list-group-hover-bg; - } -} - -button.list-group-item { - width: 100%; - text-align: left; -} - -.list-group-item { - // Disabled state - &.disabled, - &.disabled:hover, - &.disabled:focus { - background-color: $list-group-disabled-bg; - color: $list-group-disabled-color; - cursor: $cursor-disabled; - - // Force color to inherit for custom content - .list-group-item-heading { - color: inherit; - } - .list-group-item-text { - color: $list-group-disabled-text-color; - } - } - - // Active class on item itself, not parent - &.active, - &.active:hover, - &.active:focus { - z-index: 2; // Place active items above their siblings for proper border styling - color: $list-group-active-color; - background-color: $list-group-active-bg; - border-color: $list-group-active-border; - - // Force color to inherit for custom content - .list-group-item-heading, - .list-group-item-heading > small, - .list-group-item-heading > .small { - color: inherit; - } - .list-group-item-text { - color: $list-group-active-text-color; - } - } -} - - -// Contextual variants -// -// Add modifier classes to change text and background color on individual items. -// Organizationally, this must come after the `:hover` states. - -@include list-group-item-variant(success, $state-success-bg, $state-success-text); -@include list-group-item-variant(info, $state-info-bg, $state-info-text); -@include list-group-item-variant(warning, $state-warning-bg, $state-warning-text); -@include list-group-item-variant(danger, $state-danger-bg, $state-danger-text); - - -// Custom content options -// -// Extra classes for creating well-formatted content within `.list-group-item`s. - -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; -} -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; -} diff --git a/docs/source/assets/stylesheets/bootstrap/_media.scss b/docs/source/assets/stylesheets/bootstrap/_media.scss deleted file mode 100644 index 8c835e86..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_media.scss +++ /dev/null @@ -1,66 +0,0 @@ -.media { - // Proper spacing between instances of .media - margin-top: 15px; - - &:first-child { - margin-top: 0; - } -} - -.media, -.media-body { - zoom: 1; - overflow: hidden; -} - -.media-body { - width: 10000px; -} - -.media-object { - display: block; - - // Fix collapse in webkit from max-width: 100% and display: table-cell. - &.img-thumbnail { - max-width: none; - } -} - -.media-right, -.media > .pull-right { - padding-left: 10px; -} - -.media-left, -.media > .pull-left { - padding-right: 10px; -} - -.media-left, -.media-right, -.media-body { - display: table-cell; - vertical-align: top; -} - -.media-middle { - vertical-align: middle; -} - -.media-bottom { - vertical-align: bottom; -} - -// Reset margins on headings for tighter default spacing -.media-heading { - margin-top: 0; - margin-bottom: 5px; -} - -// Media list variation -// -// Undo default ul/ol styles -.media-list { - padding-left: 0; - list-style: none; -} diff --git a/docs/source/assets/stylesheets/bootstrap/_mixins.scss b/docs/source/assets/stylesheets/bootstrap/_mixins.scss deleted file mode 100644 index 78cd5aa0..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_mixins.scss +++ /dev/null @@ -1,40 +0,0 @@ -// Mixins -// -------------------------------------------------- - -// Utilities -@import "mixins/hide-text"; -@import "mixins/opacity"; -@import "mixins/image"; -@import "mixins/labels"; -@import "mixins/reset-filter"; -@import "mixins/resize"; -@import "mixins/responsive-visibility"; -@import "mixins/size"; -@import "mixins/tab-focus"; -@import "mixins/reset-text"; -@import "mixins/text-emphasis"; -@import "mixins/text-overflow"; -@import "mixins/vendor-prefixes"; - -// Components -@import "mixins/alerts"; -@import "mixins/buttons"; -@import "mixins/panels"; -@import "mixins/pagination"; -@import "mixins/list-group"; -@import "mixins/nav-divider"; -@import "mixins/forms"; -@import "mixins/progress-bar"; -@import "mixins/table-row"; - -// Skins -@import "mixins/background-variant"; -@import "mixins/border-radius"; -@import "mixins/gradients"; - -// Layout -@import "mixins/clearfix"; -@import "mixins/center-block"; -@import "mixins/nav-vertical-align"; -@import "mixins/grid-framework"; -@import "mixins/grid"; diff --git a/docs/source/assets/stylesheets/bootstrap/_modals.scss b/docs/source/assets/stylesheets/bootstrap/_modals.scss deleted file mode 100644 index 837558e9..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_modals.scss +++ /dev/null @@ -1,150 +0,0 @@ -// -// Modals -// -------------------------------------------------- - -// .modal-open - body class for killing the scroll -// .modal - container to scroll within -// .modal-dialog - positioning shell for the actual modal -// .modal-content - actual modal w/ bg and corners and shit - -// Kill the scroll on the body -.modal-open { - overflow: hidden; -} - -// Container that the modal scrolls within -.modal { - display: none; - overflow: hidden; - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: $zindex-modal; - -webkit-overflow-scrolling: touch; - - // Prevent Chrome on Windows from adding a focus outline. For details, see - // https://github.com/twbs/bootstrap/pull/10951. - outline: 0; - - // When fading in the modal, animate it to slide down - &.fade .modal-dialog { - @include translate(0, -25%); - @include transition-transform(0.3s ease-out); - } - &.in .modal-dialog { @include translate(0, 0) } -} -.modal-open .modal { - overflow-x: hidden; - overflow-y: auto; -} - -// Shell div to position the modal with bottom padding -.modal-dialog { - position: relative; - width: auto; - margin: 10px; -} - -// Actual modal -.modal-content { - position: relative; - background-color: $modal-content-bg; - border: 1px solid $modal-content-fallback-border-color; //old browsers fallback (ie8 etc) - border: 1px solid $modal-content-border-color; - border-radius: $border-radius-large; - @include box-shadow(0 3px 9px rgba(0,0,0,.5)); - background-clip: padding-box; - // Remove focus outline from opened modal - outline: 0; -} - -// Modal background -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: $zindex-modal-background; - background-color: $modal-backdrop-bg; - // Fade for backdrop - &.fade { @include opacity(0); } - &.in { @include opacity($modal-backdrop-opacity); } -} - -// Modal header -// Top section of the modal w/ title and dismiss -.modal-header { - padding: $modal-title-padding; - border-bottom: 1px solid $modal-header-border-color; - min-height: ($modal-title-padding + $modal-title-line-height); -} -// Close icon -.modal-header .close { - margin-top: -2px; -} - -// Title text within header -.modal-title { - margin: 0; - line-height: $modal-title-line-height; -} - -// Modal body -// Where all modal content resides (sibling of .modal-header and .modal-footer) -.modal-body { - position: relative; - padding: $modal-inner-padding; -} - -// Footer (for actions) -.modal-footer { - padding: $modal-inner-padding; - text-align: right; // right align buttons - border-top: 1px solid $modal-footer-border-color; - @include clearfix; // clear it in case folks use .pull-* classes on buttons - - // Properly space out buttons - .btn + .btn { - margin-left: 5px; - margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs - } - // but override that for button groups - .btn-group .btn + .btn { - margin-left: -1px; - } - // and override it for block buttons as well - .btn-block + .btn-block { - margin-left: 0; - } -} - -// Measure scrollbar width for padding body during modal show/hide -.modal-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; -} - -// Scale up the modal -@media (min-width: $screen-sm-min) { - // Automatically set modal's width for larger viewports - .modal-dialog { - width: $modal-md; - margin: 30px auto; - } - .modal-content { - @include box-shadow(0 5px 15px rgba(0,0,0,.5)); - } - - // Modal sizes - .modal-sm { width: $modal-sm; } -} - -@media (min-width: $screen-md-min) { - .modal-lg { width: $modal-lg; } -} diff --git a/docs/source/assets/stylesheets/bootstrap/_navbar.scss b/docs/source/assets/stylesheets/bootstrap/_navbar.scss deleted file mode 100644 index 11e5c01c..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_navbar.scss +++ /dev/null @@ -1,662 +0,0 @@ -// -// Navbars -// -------------------------------------------------- - - -// Wrapper and base class -// -// Provide a static navbar from which we expand to create full-width, fixed, and -// other navbar variations. - -.navbar { - position: relative; - min-height: $navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode) - margin-bottom: $navbar-margin-bottom; - border: 1px solid transparent; - - // Prevent floats from breaking the navbar - @include clearfix; - - @media (min-width: $grid-float-breakpoint) { - border-radius: $navbar-border-radius; - } -} - - -// Navbar heading -// -// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy -// styling of responsive aspects. - -.navbar-header { - @include clearfix; - - @media (min-width: $grid-float-breakpoint) { - float: left; - } -} - - -// Navbar collapse (body) -// -// Group your navbar content into this for easy collapsing and expanding across -// various device sizes. By default, this content is collapsed when <768px, but -// will expand past that for a horizontal display. -// -// To start (on mobile devices) the navbar links, forms, and buttons are stacked -// vertically and include a `max-height` to overflow in case you have too much -// content for the user's viewport. - -.navbar-collapse { - overflow-x: visible; - padding-right: $navbar-padding-horizontal; - padding-left: $navbar-padding-horizontal; - border-top: 1px solid transparent; - box-shadow: inset 0 1px 0 rgba(255,255,255,.1); - @include clearfix; - -webkit-overflow-scrolling: touch; - - &.in { - overflow-y: auto; - } - - @media (min-width: $grid-float-breakpoint) { - width: auto; - border-top: 0; - box-shadow: none; - - &.collapse { - display: block !important; - height: auto !important; - padding-bottom: 0; // Override default setting - overflow: visible !important; - } - - &.in { - overflow-y: visible; - } - - // Undo the collapse side padding for navbars with containers to ensure - // alignment of right-aligned contents. - .navbar-fixed-top &, - .navbar-static-top &, - .navbar-fixed-bottom & { - padding-left: 0; - padding-right: 0; - } - } -} - -.navbar-fixed-top, -.navbar-fixed-bottom { - .navbar-collapse { - max-height: $navbar-collapse-max-height; - - @media (max-device-width: $screen-xs-min) and (orientation: landscape) { - max-height: 200px; - } - } -} - - -// Both navbar header and collapse -// -// When a container is present, change the behavior of the header and collapse. - -.container, -.container-fluid { - > .navbar-header, - > .navbar-collapse { - margin-right: -$navbar-padding-horizontal; - margin-left: -$navbar-padding-horizontal; - - @media (min-width: $grid-float-breakpoint) { - margin-right: 0; - margin-left: 0; - } - } -} - - -// -// Navbar alignment options -// -// Display the navbar across the entirety of the page or fixed it to the top or -// bottom of the page. - -// Static top (unfixed, but 100% wide) navbar -.navbar-static-top { - z-index: $zindex-navbar; - border-width: 0 0 1px; - - @media (min-width: $grid-float-breakpoint) { - border-radius: 0; - } -} - -// Fix the top/bottom navbars when screen real estate supports it -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: $zindex-navbar-fixed; - - // Undo the rounded corners - @media (min-width: $grid-float-breakpoint) { - border-radius: 0; - } -} -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; -} -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; // override .navbar defaults - border-width: 1px 0 0; -} - - -// Brand/project name - -.navbar-brand { - float: left; - padding: $navbar-padding-vertical $navbar-padding-horizontal; - font-size: $font-size-large; - line-height: $line-height-computed; - height: $navbar-height; - - &:hover, - &:focus { - text-decoration: none; - } - - > img { - display: block; - } - - @media (min-width: $grid-float-breakpoint) { - .navbar > .container &, - .navbar > .container-fluid & { - margin-left: -$navbar-padding-horizontal; - } - } -} - - -// Navbar toggle -// -// Custom button for toggling the `.navbar-collapse`, powered by the collapse -// JavaScript plugin. - -.navbar-toggle { - position: relative; - float: right; - margin-right: $navbar-padding-horizontal; - padding: 9px 10px; - @include navbar-vertical-align(34px); - background-color: transparent; - background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 - border: 1px solid transparent; - border-radius: $border-radius-base; - - // We remove the `outline` here, but later compensate by attaching `:hover` - // styles to `:focus`. - &:focus { - outline: 0; - } - - // Bars - .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; - } - .icon-bar + .icon-bar { - margin-top: 4px; - } - - @media (min-width: $grid-float-breakpoint) { - display: none; - } -} - - -// Navbar nav links -// -// Builds on top of the `.nav` components with its own modifier class to make -// the nav the full height of the horizontal nav (above 768px). - -.navbar-nav { - margin: ($navbar-padding-vertical / 2) (-$navbar-padding-horizontal); - - > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: $line-height-computed; - } - - @media (max-width: $grid-float-breakpoint-max) { - // Dropdowns get custom display when collapsed - .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - box-shadow: none; - > li > a, - .dropdown-header { - padding: 5px 15px 5px 25px; - } - > li > a { - line-height: $line-height-computed; - &:hover, - &:focus { - background-image: none; - } - } - } - } - - // Uncollapse the nav - @media (min-width: $grid-float-breakpoint) { - float: left; - margin: 0; - - > li { - float: left; - > a { - padding-top: $navbar-padding-vertical; - padding-bottom: $navbar-padding-vertical; - } - } - } -} - - -// Navbar form -// -// Extension of the `.form-inline` with some extra flavor for optimum display in -// our navbars. - -.navbar-form { - margin-left: -$navbar-padding-horizontal; - margin-right: -$navbar-padding-horizontal; - padding: 10px $navbar-padding-horizontal; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - $shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1); - @include box-shadow($shadow); - - // Mixin behavior for optimum display - @include form-inline; - - .form-group { - @media (max-width: $grid-float-breakpoint-max) { - margin-bottom: 5px; - - &:last-child { - margin-bottom: 0; - } - } - } - - // Vertically center in expanded, horizontal navbar - @include navbar-vertical-align($input-height-base); - - // Undo 100% width for pull classes - @media (min-width: $grid-float-breakpoint) { - width: auto; - border: 0; - margin-left: 0; - margin-right: 0; - padding-top: 0; - padding-bottom: 0; - @include box-shadow(none); - } -} - - -// Dropdown menus - -// Menu position and menu carets -.navbar-nav > li > .dropdown-menu { - margin-top: 0; - @include border-top-radius(0); -} -// Menu position and menu caret support for dropups via extra dropup class -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - margin-bottom: 0; - @include border-top-radius($navbar-border-radius); - @include border-bottom-radius(0); -} - - -// Buttons in navbars -// -// Vertically center a button within a navbar (when *not* in a form). - -.navbar-btn { - @include navbar-vertical-align($input-height-base); - - &.btn-sm { - @include navbar-vertical-align($input-height-small); - } - &.btn-xs { - @include navbar-vertical-align(22); - } -} - - -// Text in navbars -// -// Add a class to make any element properly align itself vertically within the navbars. - -.navbar-text { - @include navbar-vertical-align($line-height-computed); - - @media (min-width: $grid-float-breakpoint) { - float: left; - margin-left: $navbar-padding-horizontal; - margin-right: $navbar-padding-horizontal; - } -} - - -// Component alignment -// -// Repurpose the pull utilities as their own navbar utilities to avoid specificity -// issues with parents and chaining. Only do this when the navbar is uncollapsed -// though so that navbar contents properly stack and align in mobile. -// -// Declared after the navbar components to ensure more specificity on the margins. - -@media (min-width: $grid-float-breakpoint) { - .navbar-left { - float: left !important; - } - .navbar-right { - float: right !important; - margin-right: -$navbar-padding-horizontal; - - ~ .navbar-right { - margin-right: 0; - } - } -} - - -// Alternate navbars -// -------------------------------------------------- - -// Default navbar -.navbar-default { - background-color: $navbar-default-bg; - border-color: $navbar-default-border; - - .navbar-brand { - color: $navbar-default-brand-color; - &:hover, - &:focus { - color: $navbar-default-brand-hover-color; - background-color: $navbar-default-brand-hover-bg; - } - } - - .navbar-text { - color: $navbar-default-color; - } - - .navbar-nav { - > li > a { - color: $navbar-default-link-color; - - &:hover, - &:focus { - color: $navbar-default-link-hover-color; - background-color: $navbar-default-link-hover-bg; - } - } - > .active > a { - &, - &:hover, - &:focus { - color: $navbar-default-link-active-color; - background-color: $navbar-default-link-active-bg; - } - } - > .disabled > a { - &, - &:hover, - &:focus { - color: $navbar-default-link-disabled-color; - background-color: $navbar-default-link-disabled-bg; - } - } - } - - .navbar-toggle { - border-color: $navbar-default-toggle-border-color; - &:hover, - &:focus { - background-color: $navbar-default-toggle-hover-bg; - } - .icon-bar { - background-color: $navbar-default-toggle-icon-bar-bg; - } - } - - .navbar-collapse, - .navbar-form { - border-color: $navbar-default-border; - } - - // Dropdown menu items - .navbar-nav { - // Remove background color from open dropdown - > .open > a { - &, - &:hover, - &:focus { - background-color: $navbar-default-link-active-bg; - color: $navbar-default-link-active-color; - } - } - - @media (max-width: $grid-float-breakpoint-max) { - // Dropdowns get custom display when collapsed - .open .dropdown-menu { - > li > a { - color: $navbar-default-link-color; - &:hover, - &:focus { - color: $navbar-default-link-hover-color; - background-color: $navbar-default-link-hover-bg; - } - } - > .active > a { - &, - &:hover, - &:focus { - color: $navbar-default-link-active-color; - background-color: $navbar-default-link-active-bg; - } - } - > .disabled > a { - &, - &:hover, - &:focus { - color: $navbar-default-link-disabled-color; - background-color: $navbar-default-link-disabled-bg; - } - } - } - } - } - - - // Links in navbars - // - // Add a class to ensure links outside the navbar nav are colored correctly. - - .navbar-link { - color: $navbar-default-link-color; - &:hover { - color: $navbar-default-link-hover-color; - } - } - - .btn-link { - color: $navbar-default-link-color; - &:hover, - &:focus { - color: $navbar-default-link-hover-color; - } - &[disabled], - fieldset[disabled] & { - &:hover, - &:focus { - color: $navbar-default-link-disabled-color; - } - } - } -} - -// Inverse navbar - -.navbar-inverse { - background-color: $navbar-inverse-bg; - border-color: $navbar-inverse-border; - - .navbar-brand { - color: $navbar-inverse-brand-color; - &:hover, - &:focus { - color: $navbar-inverse-brand-hover-color; - background-color: $navbar-inverse-brand-hover-bg; - } - } - - .navbar-text { - color: $navbar-inverse-color; - } - - .navbar-nav { - > li > a { - color: $navbar-inverse-link-color; - - &:hover, - &:focus { - color: $navbar-inverse-link-hover-color; - background-color: $navbar-inverse-link-hover-bg; - } - } - > .active > a { - &, - &:hover, - &:focus { - color: $navbar-inverse-link-active-color; - background-color: $navbar-inverse-link-active-bg; - } - } - > .disabled > a { - &, - &:hover, - &:focus { - color: $navbar-inverse-link-disabled-color; - background-color: $navbar-inverse-link-disabled-bg; - } - } - } - - // Darken the responsive nav toggle - .navbar-toggle { - border-color: $navbar-inverse-toggle-border-color; - &:hover, - &:focus { - background-color: $navbar-inverse-toggle-hover-bg; - } - .icon-bar { - background-color: $navbar-inverse-toggle-icon-bar-bg; - } - } - - .navbar-collapse, - .navbar-form { - border-color: darken($navbar-inverse-bg, 7%); - } - - // Dropdowns - .navbar-nav { - > .open > a { - &, - &:hover, - &:focus { - background-color: $navbar-inverse-link-active-bg; - color: $navbar-inverse-link-active-color; - } - } - - @media (max-width: $grid-float-breakpoint-max) { - // Dropdowns get custom display - .open .dropdown-menu { - > .dropdown-header { - border-color: $navbar-inverse-border; - } - .divider { - background-color: $navbar-inverse-border; - } - > li > a { - color: $navbar-inverse-link-color; - &:hover, - &:focus { - color: $navbar-inverse-link-hover-color; - background-color: $navbar-inverse-link-hover-bg; - } - } - > .active > a { - &, - &:hover, - &:focus { - color: $navbar-inverse-link-active-color; - background-color: $navbar-inverse-link-active-bg; - } - } - > .disabled > a { - &, - &:hover, - &:focus { - color: $navbar-inverse-link-disabled-color; - background-color: $navbar-inverse-link-disabled-bg; - } - } - } - } - } - - .navbar-link { - color: $navbar-inverse-link-color; - &:hover { - color: $navbar-inverse-link-hover-color; - } - } - - .btn-link { - color: $navbar-inverse-link-color; - &:hover, - &:focus { - color: $navbar-inverse-link-hover-color; - } - &[disabled], - fieldset[disabled] & { - &:hover, - &:focus { - color: $navbar-inverse-link-disabled-color; - } - } - } -} diff --git a/docs/source/assets/stylesheets/bootstrap/_navs.scss b/docs/source/assets/stylesheets/bootstrap/_navs.scss deleted file mode 100644 index 9d369f30..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_navs.scss +++ /dev/null @@ -1,242 +0,0 @@ -// -// Navs -// -------------------------------------------------- - - -// Base class -// -------------------------------------------------- - -.nav { - margin-bottom: 0; - padding-left: 0; // Override default ul/ol - list-style: none; - @include clearfix; - - > li { - position: relative; - display: block; - - > a { - position: relative; - display: block; - padding: $nav-link-padding; - &:hover, - &:focus { - text-decoration: none; - background-color: $nav-link-hover-bg; - } - } - - // Disabled state sets text to gray and nukes hover/tab effects - &.disabled > a { - color: $nav-disabled-link-color; - - &:hover, - &:focus { - color: $nav-disabled-link-hover-color; - text-decoration: none; - background-color: transparent; - cursor: $cursor-disabled; - } - } - } - - // Open dropdowns - .open > a { - &, - &:hover, - &:focus { - background-color: $nav-link-hover-bg; - border-color: $link-color; - } - } - - // Nav dividers (deprecated with v3.0.1) - // - // This should have been removed in v3 with the dropping of `.nav-list`, but - // we missed it. We don't currently support this anywhere, but in the interest - // of maintaining backward compatibility in case you use it, it's deprecated. - .nav-divider { - @include nav-divider; - } - - // Prevent IE8 from misplacing imgs - // - // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989 - > li > a > img { - max-width: none; - } -} - - -// Tabs -// ------------------------- - -// Give the tabs something to sit on -.nav-tabs { - border-bottom: 1px solid $nav-tabs-border-color; - > li { - float: left; - // Make the list-items overlay the bottom border - margin-bottom: -1px; - - // Actual tabs (as links) - > a { - margin-right: 2px; - line-height: $line-height-base; - border: 1px solid transparent; - border-radius: $border-radius-base $border-radius-base 0 0; - &:hover { - border-color: $nav-tabs-link-hover-border-color $nav-tabs-link-hover-border-color $nav-tabs-border-color; - } - } - - // Active state, and its :hover to override normal :hover - &.active > a { - &, - &:hover, - &:focus { - color: $nav-tabs-active-link-hover-color; - background-color: $nav-tabs-active-link-hover-bg; - border: 1px solid $nav-tabs-active-link-hover-border-color; - border-bottom-color: transparent; - cursor: default; - } - } - } - // pulling this in mainly for less shorthand - &.nav-justified { - @extend .nav-justified; - @extend .nav-tabs-justified; - } -} - - -// Pills -// ------------------------- -.nav-pills { - > li { - float: left; - - // Links rendered as pills - > a { - border-radius: $nav-pills-border-radius; - } - + li { - margin-left: 2px; - } - - // Active state - &.active > a { - &, - &:hover, - &:focus { - color: $nav-pills-active-link-hover-color; - background-color: $nav-pills-active-link-hover-bg; - } - } - } -} - - -// Stacked pills -.nav-stacked { - > li { - float: none; - + li { - margin-top: 2px; - margin-left: 0; // no need for this gap between nav items - } - } -} - - -// Nav variations -// -------------------------------------------------- - -// Justified nav links -// ------------------------- - -.nav-justified { - width: 100%; - - > li { - float: none; - > a { - text-align: center; - margin-bottom: 5px; - } - } - - > .dropdown .dropdown-menu { - top: auto; - left: auto; - } - - @media (min-width: $screen-sm-min) { - > li { - display: table-cell; - width: 1%; - > a { - margin-bottom: 0; - } - } - } -} - -// Move borders to anchors instead of bottom of list -// -// Mixin for adding on top the shared `.nav-justified` styles for our tabs -.nav-tabs-justified { - border-bottom: 0; - - > li > a { - // Override margin from .nav-tabs - margin-right: 0; - border-radius: $border-radius-base; - } - - > .active > a, - > .active > a:hover, - > .active > a:focus { - border: 1px solid $nav-tabs-justified-link-border-color; - } - - @media (min-width: $screen-sm-min) { - > li > a { - border-bottom: 1px solid $nav-tabs-justified-link-border-color; - border-radius: $border-radius-base $border-radius-base 0 0; - } - > .active > a, - > .active > a:hover, - > .active > a:focus { - border-bottom-color: $nav-tabs-justified-active-link-border-color; - } - } -} - - -// Tabbable tabs -// ------------------------- - -// Hide tabbable panes to start, show them when `.active` -.tab-content { - > .tab-pane { - display: none; - } - > .active { - display: block; - } -} - - -// Dropdowns -// ------------------------- - -// Specific dropdowns -.nav-tabs .dropdown-menu { - // make dropdown border overlap tab border - margin-top: -1px; - // Remove the top rounded corners here since there is a hard edge above the menu - @include border-top-radius(0); -} diff --git a/docs/source/assets/stylesheets/bootstrap/_normalize.scss b/docs/source/assets/stylesheets/bootstrap/_normalize.scss deleted file mode 100644 index 9dddf73a..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_normalize.scss +++ /dev/null @@ -1,424 +0,0 @@ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ - -// -// 1. Set default font family to sans-serif. -// 2. Prevent iOS and IE text size adjust after device orientation change, -// without disabling user zoom. -// - -html { - font-family: sans-serif; // 1 - -ms-text-size-adjust: 100%; // 2 - -webkit-text-size-adjust: 100%; // 2 -} - -// -// Remove default margin. -// - -body { - margin: 0; -} - -// HTML5 display definitions -// ========================================================================== - -// -// Correct `block` display not defined for any HTML5 element in IE 8/9. -// Correct `block` display not defined for `details` or `summary` in IE 10/11 -// and Firefox. -// Correct `block` display not defined for `main` in IE 11. -// - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} - -// -// 1. Correct `inline-block` display not defined in IE 8/9. -// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. -// - -audio, -canvas, -progress, -video { - display: inline-block; // 1 - vertical-align: baseline; // 2 -} - -// -// Prevent modern browsers from displaying `audio` without controls. -// Remove excess height in iOS 5 devices. -// - -audio:not([controls]) { - display: none; - height: 0; -} - -// -// Address `[hidden]` styling not present in IE 8/9/10. -// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. -// - -[hidden], -template { - display: none; -} - -// Links -// ========================================================================== - -// -// Remove the gray background color from active links in IE 10. -// - -a { - background-color: transparent; -} - -// -// Improve readability of focused elements when they are also in an -// active/hover state. -// - -a:active, -a:hover { - outline: 0; -} - -// Text-level semantics -// ========================================================================== - -// -// Address styling not present in IE 8/9/10/11, Safari, and Chrome. -// - -abbr[title] { - border-bottom: 1px dotted; -} - -// -// Address style set to `bolder` in Firefox 4+, Safari, and Chrome. -// - -b, -strong { - font-weight: bold; -} - -// -// Address styling not present in Safari and Chrome. -// - -dfn { - font-style: italic; -} - -// -// Address variable `h1` font-size and margin within `section` and `article` -// contexts in Firefox 4+, Safari, and Chrome. -// - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -// -// Address styling not present in IE 8/9. -// - -mark { - background: #ff0; - color: #000; -} - -// -// Address inconsistent and variable font size in all browsers. -// - -small { - font-size: 80%; -} - -// -// Prevent `sub` and `sup` affecting `line-height` in all browsers. -// - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -// Embedded content -// ========================================================================== - -// -// Remove border when inside `a` element in IE 8/9/10. -// - -img { - border: 0; -} - -// -// Correct overflow not hidden in IE 9/10/11. -// - -svg:not(:root) { - overflow: hidden; -} - -// Grouping content -// ========================================================================== - -// -// Address margin not present in IE 8/9 and Safari. -// - -figure { - margin: 1em 40px; -} - -// -// Address differences between Firefox and other browsers. -// - -hr { - box-sizing: content-box; - height: 0; -} - -// -// Contain overflow in all browsers. -// - -pre { - overflow: auto; -} - -// -// Address odd `em`-unit font size rendering in all browsers. -// - -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} - -// Forms -// ========================================================================== - -// -// Known limitation: by default, Chrome and Safari on OS X allow very limited -// styling of `select`, unless a `border` property is set. -// - -// -// 1. Correct color not being inherited. -// Known issue: affects color of disabled elements. -// 2. Correct font properties not being inherited. -// 3. Address margins set differently in Firefox 4+, Safari, and Chrome. -// - -button, -input, -optgroup, -select, -textarea { - color: inherit; // 1 - font: inherit; // 2 - margin: 0; // 3 -} - -// -// Address `overflow` set to `hidden` in IE 8/9/10/11. -// - -button { - overflow: visible; -} - -// -// Address inconsistent `text-transform` inheritance for `button` and `select`. -// All other form control elements do not inherit `text-transform` values. -// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. -// Correct `select` style inheritance in Firefox. -// - -button, -select { - text-transform: none; -} - -// -// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` -// and `video` controls. -// 2. Correct inability to style clickable `input` types in iOS. -// 3. Improve usability and consistency of cursor style between image-type -// `input` and others. -// - -button, -html input[type="button"], // 1 -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; // 2 - cursor: pointer; // 3 -} - -// -// Re-set default cursor for disabled elements. -// - -button[disabled], -html input[disabled] { - cursor: default; -} - -// -// Remove inner padding and border in Firefox 4+. -// - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -// -// Address Firefox 4+ setting `line-height` on `input` using `!important` in -// the UA stylesheet. -// - -input { - line-height: normal; -} - -// -// It's recommended that you don't attempt to style these elements. -// Firefox's implementation doesn't respect box-sizing, padding, or width. -// -// 1. Address box sizing set to `content-box` in IE 8/9/10. -// 2. Remove excess padding in IE 8/9/10. -// - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; // 1 - padding: 0; // 2 -} - -// -// Fix the cursor style for Chrome's increment/decrement buttons. For certain -// `font-size` values of the `input`, it causes the cursor style of the -// decrement button to change from `default` to `text`. -// - -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -// -// 1. Address `appearance` set to `searchfield` in Safari and Chrome. -// 2. Address `box-sizing` set to `border-box` in Safari and Chrome. -// - -input[type="search"] { - -webkit-appearance: textfield; // 1 - box-sizing: content-box; //2 -} - -// -// Remove inner padding and search cancel button in Safari and Chrome on OS X. -// Safari (but not Chrome) clips the cancel button when the search input has -// padding (and `textfield` appearance). -// - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -// -// Define consistent border, margin, and padding. -// - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -// -// 1. Correct `color` not being inherited in IE 8/9/10/11. -// 2. Remove padding so people aren't caught out if they zero out fieldsets. -// - -legend { - border: 0; // 1 - padding: 0; // 2 -} - -// -// Remove default vertical scrollbar in IE 8/9/10/11. -// - -textarea { - overflow: auto; -} - -// -// Don't inherit the `font-weight` (applied by a rule above). -// NOTE: the default cannot safely be changed in Chrome and Safari on OS X. -// - -optgroup { - font-weight: bold; -} - -// Tables -// ========================================================================== - -// -// Remove most spacing between table cells. -// - -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, -th { - padding: 0; -} diff --git a/docs/source/assets/stylesheets/bootstrap/_pager.scss b/docs/source/assets/stylesheets/bootstrap/_pager.scss deleted file mode 100644 index c2342174..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_pager.scss +++ /dev/null @@ -1,54 +0,0 @@ -// -// Pager pagination -// -------------------------------------------------- - - -.pager { - padding-left: 0; - margin: $line-height-computed 0; - list-style: none; - text-align: center; - @include clearfix; - li { - display: inline; - > a, - > span { - display: inline-block; - padding: 5px 14px; - background-color: $pager-bg; - border: 1px solid $pager-border; - border-radius: $pager-border-radius; - } - - > a:hover, - > a:focus { - text-decoration: none; - background-color: $pager-hover-bg; - } - } - - .next { - > a, - > span { - float: right; - } - } - - .previous { - > a, - > span { - float: left; - } - } - - .disabled { - > a, - > a:hover, - > a:focus, - > span { - color: $pager-disabled-color; - background-color: $pager-bg; - cursor: $cursor-disabled; - } - } -} diff --git a/docs/source/assets/stylesheets/bootstrap/_pagination.scss b/docs/source/assets/stylesheets/bootstrap/_pagination.scss deleted file mode 100644 index fb23f913..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_pagination.scss +++ /dev/null @@ -1,89 +0,0 @@ -// -// Pagination (multiple pages) -// -------------------------------------------------- -.pagination { - display: inline-block; - padding-left: 0; - margin: $line-height-computed 0; - border-radius: $border-radius-base; - - > li { - display: inline; // Remove list-style and block-level defaults - > a, - > span { - position: relative; - float: left; // Collapse white-space - padding: $padding-base-vertical $padding-base-horizontal; - line-height: $line-height-base; - text-decoration: none; - color: $pagination-color; - background-color: $pagination-bg; - border: 1px solid $pagination-border; - margin-left: -1px; - } - &:first-child { - > a, - > span { - margin-left: 0; - @include border-left-radius($border-radius-base); - } - } - &:last-child { - > a, - > span { - @include border-right-radius($border-radius-base); - } - } - } - - > li > a, - > li > span { - &:hover, - &:focus { - z-index: 3; - color: $pagination-hover-color; - background-color: $pagination-hover-bg; - border-color: $pagination-hover-border; - } - } - - > .active > a, - > .active > span { - &, - &:hover, - &:focus { - z-index: 2; - color: $pagination-active-color; - background-color: $pagination-active-bg; - border-color: $pagination-active-border; - cursor: default; - } - } - - > .disabled { - > span, - > span:hover, - > span:focus, - > a, - > a:hover, - > a:focus { - color: $pagination-disabled-color; - background-color: $pagination-disabled-bg; - border-color: $pagination-disabled-border; - cursor: $cursor-disabled; - } - } -} - -// Sizing -// -------------------------------------------------- - -// Large -.pagination-lg { - @include pagination-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $border-radius-large); -} - -// Small -.pagination-sm { - @include pagination-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small); -} diff --git a/docs/source/assets/stylesheets/bootstrap/_panels.scss b/docs/source/assets/stylesheets/bootstrap/_panels.scss deleted file mode 100644 index be9410f5..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_panels.scss +++ /dev/null @@ -1,271 +0,0 @@ -// -// Panels -// -------------------------------------------------- - - -// Base class -.panel { - margin-bottom: $line-height-computed; - background-color: $panel-bg; - border: 1px solid transparent; - border-radius: $panel-border-radius; - @include box-shadow(0 1px 1px rgba(0,0,0,.05)); -} - -// Panel contents -.panel-body { - padding: $panel-body-padding; - @include clearfix; -} - -// Optional heading -.panel-heading { - padding: $panel-heading-padding; - border-bottom: 1px solid transparent; - @include border-top-radius(($panel-border-radius - 1)); - - > .dropdown .dropdown-toggle { - color: inherit; - } -} - -// Within heading, strip any `h*` tag of its default margins for spacing. -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: ceil(($font-size-base * 1.125)); - color: inherit; - - > a, - > small, - > .small, - > small > a, - > .small > a { - color: inherit; - } -} - -// Optional footer (stays gray in every modifier class) -.panel-footer { - padding: $panel-footer-padding; - background-color: $panel-footer-bg; - border-top: 1px solid $panel-inner-border; - @include border-bottom-radius(($panel-border-radius - 1)); -} - - -// List groups in panels -// -// By default, space out list group content from panel headings to account for -// any kind of custom content between the two. - -.panel { - > .list-group, - > .panel-collapse > .list-group { - margin-bottom: 0; - - .list-group-item { - border-width: 1px 0; - border-radius: 0; - } - - // Add border top radius for first one - &:first-child { - .list-group-item:first-child { - border-top: 0; - @include border-top-radius(($panel-border-radius - 1)); - } - } - - // Add border bottom radius for last one - &:last-child { - .list-group-item:last-child { - border-bottom: 0; - @include border-bottom-radius(($panel-border-radius - 1)); - } - } - } - > .panel-heading + .panel-collapse > .list-group { - .list-group-item:first-child { - @include border-top-radius(0); - } - } -} -// Collapse space between when there's no additional content. -.panel-heading + .list-group { - .list-group-item:first-child { - border-top-width: 0; - } -} -.list-group + .panel-footer { - border-top-width: 0; -} - -// Tables in panels -// -// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and -// watch it go full width. - -.panel { - > .table, - > .table-responsive > .table, - > .panel-collapse > .table { - margin-bottom: 0; - - caption { - padding-left: $panel-body-padding; - padding-right: $panel-body-padding; - } - } - // Add border top radius for first one - > .table:first-child, - > .table-responsive:first-child > .table:first-child { - @include border-top-radius(($panel-border-radius - 1)); - - > thead:first-child, - > tbody:first-child { - > tr:first-child { - border-top-left-radius: ($panel-border-radius - 1); - border-top-right-radius: ($panel-border-radius - 1); - - td:first-child, - th:first-child { - border-top-left-radius: ($panel-border-radius - 1); - } - td:last-child, - th:last-child { - border-top-right-radius: ($panel-border-radius - 1); - } - } - } - } - // Add border bottom radius for last one - > .table:last-child, - > .table-responsive:last-child > .table:last-child { - @include border-bottom-radius(($panel-border-radius - 1)); - - > tbody:last-child, - > tfoot:last-child { - > tr:last-child { - border-bottom-left-radius: ($panel-border-radius - 1); - border-bottom-right-radius: ($panel-border-radius - 1); - - td:first-child, - th:first-child { - border-bottom-left-radius: ($panel-border-radius - 1); - } - td:last-child, - th:last-child { - border-bottom-right-radius: ($panel-border-radius - 1); - } - } - } - } - > .panel-body + .table, - > .panel-body + .table-responsive, - > .table + .panel-body, - > .table-responsive + .panel-body { - border-top: 1px solid $table-border-color; - } - > .table > tbody:first-child > tr:first-child th, - > .table > tbody:first-child > tr:first-child td { - border-top: 0; - } - > .table-bordered, - > .table-responsive > .table-bordered { - border: 0; - > thead, - > tbody, - > tfoot { - > tr { - > th:first-child, - > td:first-child { - border-left: 0; - } - > th:last-child, - > td:last-child { - border-right: 0; - } - } - } - > thead, - > tbody { - > tr:first-child { - > td, - > th { - border-bottom: 0; - } - } - } - > tbody, - > tfoot { - > tr:last-child { - > td, - > th { - border-bottom: 0; - } - } - } - } - > .table-responsive { - border: 0; - margin-bottom: 0; - } -} - - -// Collapsable panels (aka, accordion) -// -// Wrap a series of panels in `.panel-group` to turn them into an accordion with -// the help of our collapse JavaScript plugin. - -.panel-group { - margin-bottom: $line-height-computed; - - // Tighten up margin so it's only between panels - .panel { - margin-bottom: 0; - border-radius: $panel-border-radius; - - + .panel { - margin-top: 5px; - } - } - - .panel-heading { - border-bottom: 0; - - + .panel-collapse > .panel-body, - + .panel-collapse > .list-group { - border-top: 1px solid $panel-inner-border; - } - } - - .panel-footer { - border-top: 0; - + .panel-collapse .panel-body { - border-bottom: 1px solid $panel-inner-border; - } - } -} - - -// Contextual variations -.panel-default { - @include panel-variant($panel-default-border, $panel-default-text, $panel-default-heading-bg, $panel-default-border); -} -.panel-primary { - @include panel-variant($panel-primary-border, $panel-primary-text, $panel-primary-heading-bg, $panel-primary-border); -} -.panel-success { - @include panel-variant($panel-success-border, $panel-success-text, $panel-success-heading-bg, $panel-success-border); -} -.panel-info { - @include panel-variant($panel-info-border, $panel-info-text, $panel-info-heading-bg, $panel-info-border); -} -.panel-warning { - @include panel-variant($panel-warning-border, $panel-warning-text, $panel-warning-heading-bg, $panel-warning-border); -} -.panel-danger { - @include panel-variant($panel-danger-border, $panel-danger-text, $panel-danger-heading-bg, $panel-danger-border); -} diff --git a/docs/source/assets/stylesheets/bootstrap/_popovers.scss b/docs/source/assets/stylesheets/bootstrap/_popovers.scss deleted file mode 100644 index 9b90a2e9..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_popovers.scss +++ /dev/null @@ -1,131 +0,0 @@ -// -// Popovers -// -------------------------------------------------- - - -.popover { - position: absolute; - top: 0; - left: 0; - z-index: $zindex-popover; - display: none; - max-width: $popover-max-width; - padding: 1px; - // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element. - // So reset our font and text properties to avoid inheriting weird values. - @include reset-text; - font-size: $font-size-base; - - background-color: $popover-bg; - background-clip: padding-box; - border: 1px solid $popover-fallback-border-color; - border: 1px solid $popover-border-color; - border-radius: $border-radius-large; - @include box-shadow(0 5px 10px rgba(0,0,0,.2)); - - // Offset the popover to account for the popover arrow - &.top { margin-top: -$popover-arrow-width; } - &.right { margin-left: $popover-arrow-width; } - &.bottom { margin-top: $popover-arrow-width; } - &.left { margin-left: -$popover-arrow-width; } -} - -.popover-title { - margin: 0; // reset heading margin - padding: 8px 14px; - font-size: $font-size-base; - background-color: $popover-title-bg; - border-bottom: 1px solid darken($popover-title-bg, 5%); - border-radius: ($border-radius-large - 1) ($border-radius-large - 1) 0 0; -} - -.popover-content { - padding: 9px 14px; -} - -// Arrows -// -// .arrow is outer, .arrow:after is inner - -.popover > .arrow { - &, - &:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; - } -} -.popover > .arrow { - border-width: $popover-arrow-outer-width; -} -.popover > .arrow:after { - border-width: $popover-arrow-width; - content: ""; -} - -.popover { - &.top > .arrow { - left: 50%; - margin-left: -$popover-arrow-outer-width; - border-bottom-width: 0; - border-top-color: $popover-arrow-outer-fallback-color; // IE8 fallback - border-top-color: $popover-arrow-outer-color; - bottom: -$popover-arrow-outer-width; - &:after { - content: " "; - bottom: 1px; - margin-left: -$popover-arrow-width; - border-bottom-width: 0; - border-top-color: $popover-arrow-color; - } - } - &.right > .arrow { - top: 50%; - left: -$popover-arrow-outer-width; - margin-top: -$popover-arrow-outer-width; - border-left-width: 0; - border-right-color: $popover-arrow-outer-fallback-color; // IE8 fallback - border-right-color: $popover-arrow-outer-color; - &:after { - content: " "; - left: 1px; - bottom: -$popover-arrow-width; - border-left-width: 0; - border-right-color: $popover-arrow-color; - } - } - &.bottom > .arrow { - left: 50%; - margin-left: -$popover-arrow-outer-width; - border-top-width: 0; - border-bottom-color: $popover-arrow-outer-fallback-color; // IE8 fallback - border-bottom-color: $popover-arrow-outer-color; - top: -$popover-arrow-outer-width; - &:after { - content: " "; - top: 1px; - margin-left: -$popover-arrow-width; - border-top-width: 0; - border-bottom-color: $popover-arrow-color; - } - } - - &.left > .arrow { - top: 50%; - right: -$popover-arrow-outer-width; - margin-top: -$popover-arrow-outer-width; - border-right-width: 0; - border-left-color: $popover-arrow-outer-fallback-color; // IE8 fallback - border-left-color: $popover-arrow-outer-color; - &:after { - content: " "; - right: 1px; - border-right-width: 0; - border-left-color: $popover-arrow-color; - bottom: -$popover-arrow-width; - } - } -} diff --git a/docs/source/assets/stylesheets/bootstrap/_print.scss b/docs/source/assets/stylesheets/bootstrap/_print.scss deleted file mode 100644 index 66e54ab4..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_print.scss +++ /dev/null @@ -1,101 +0,0 @@ -/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ - -// ========================================================================== -// Print styles. -// Inlined to avoid the additional HTTP request: h5bp.com/r -// ========================================================================== - -@media print { - *, - *:before, - *:after { - background: transparent !important; - color: #000 !important; // Black prints faster: h5bp.com/s - box-shadow: none !important; - text-shadow: none !important; - } - - a, - a:visited { - text-decoration: underline; - } - - a[href]:after { - content: " (" attr(href) ")"; - } - - abbr[title]:after { - content: " (" attr(title) ")"; - } - - // Don't show links that are fragment identifiers, - // or use the `javascript:` pseudo protocol - a[href^="#"]:after, - a[href^="javascript:"]:after { - content: ""; - } - - pre, - blockquote { - border: 1px solid #999; - page-break-inside: avoid; - } - - thead { - display: table-header-group; // h5bp.com/t - } - - tr, - img { - page-break-inside: avoid; - } - - img { - max-width: 100% !important; - } - - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - - h2, - h3 { - page-break-after: avoid; - } - - // Bootstrap specific changes start - - // Bootstrap components - .navbar { - display: none; - } - .btn, - .dropup > .btn { - > .caret { - border-top-color: #000 !important; - } - } - .label { - border: 1px solid #000; - } - - .table { - border-collapse: collapse !important; - - td, - th { - background-color: #fff !important; - } - } - .table-bordered { - th, - td { - border: 1px solid #ddd !important; - } - } - - // Bootstrap specific changes end -} diff --git a/docs/source/assets/stylesheets/bootstrap/_progress-bars.scss b/docs/source/assets/stylesheets/bootstrap/_progress-bars.scss deleted file mode 100644 index 343df632..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_progress-bars.scss +++ /dev/null @@ -1,87 +0,0 @@ -// -// Progress bars -// -------------------------------------------------- - - -// Bar animations -// ------------------------- - -// WebKit -@-webkit-keyframes progress-bar-stripes { - from { background-position: 40px 0; } - to { background-position: 0 0; } -} - -// Spec and IE10+ -@keyframes progress-bar-stripes { - from { background-position: 40px 0; } - to { background-position: 0 0; } -} - - -// Bar itself -// ------------------------- - -// Outer container -.progress { - overflow: hidden; - height: $line-height-computed; - margin-bottom: $line-height-computed; - background-color: $progress-bg; - border-radius: $progress-border-radius; - @include box-shadow(inset 0 1px 2px rgba(0,0,0,.1)); -} - -// Bar of progress -.progress-bar { - float: left; - width: 0%; - height: 100%; - font-size: $font-size-small; - line-height: $line-height-computed; - color: $progress-bar-color; - text-align: center; - background-color: $progress-bar-bg; - @include box-shadow(inset 0 -1px 0 rgba(0,0,0,.15)); - @include transition(width .6s ease); -} - -// Striped bars -// -// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the -// `.progress-bar-striped` class, which you just add to an existing -// `.progress-bar`. -.progress-striped .progress-bar, -.progress-bar-striped { - @include gradient-striped; - background-size: 40px 40px; -} - -// Call animation for the active one -// -// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the -// `.progress-bar.active` approach. -.progress.active .progress-bar, -.progress-bar.active { - @include animation(progress-bar-stripes 2s linear infinite); -} - - -// Variations -// ------------------------- - -.progress-bar-success { - @include progress-bar-variant($progress-bar-success-bg); -} - -.progress-bar-info { - @include progress-bar-variant($progress-bar-info-bg); -} - -.progress-bar-warning { - @include progress-bar-variant($progress-bar-warning-bg); -} - -.progress-bar-danger { - @include progress-bar-variant($progress-bar-danger-bg); -} diff --git a/docs/source/assets/stylesheets/bootstrap/_responsive-embed.scss b/docs/source/assets/stylesheets/bootstrap/_responsive-embed.scss deleted file mode 100644 index 080a5118..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_responsive-embed.scss +++ /dev/null @@ -1,35 +0,0 @@ -// Embeds responsive -// -// Credit: Nicolas Gallagher and SUIT CSS. - -.embed-responsive { - position: relative; - display: block; - height: 0; - padding: 0; - overflow: hidden; - - .embed-responsive-item, - iframe, - embed, - object, - video { - position: absolute; - top: 0; - left: 0; - bottom: 0; - height: 100%; - width: 100%; - border: 0; - } -} - -// Modifier class for 16:9 aspect ratio -.embed-responsive-16by9 { - padding-bottom: 56.25%; -} - -// Modifier class for 4:3 aspect ratio -.embed-responsive-4by3 { - padding-bottom: 75%; -} diff --git a/docs/source/assets/stylesheets/bootstrap/_responsive-utilities.scss b/docs/source/assets/stylesheets/bootstrap/_responsive-utilities.scss deleted file mode 100644 index f3f0c839..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_responsive-utilities.scss +++ /dev/null @@ -1,179 +0,0 @@ -// -// Responsive: Utility classes -// -------------------------------------------------- - - -// IE10 in Windows (Phone) 8 -// -// Support for responsive views via media queries is kind of borked in IE10, for -// Surface/desktop in split view and for Windows Phone 8. This particular fix -// must be accompanied by a snippet of JavaScript to sniff the user agent and -// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at -// our Getting Started page for more information on this bug. -// -// For more information, see the following: -// -// Issue: https://github.com/twbs/bootstrap/issues/10497 -// Docs: http://getbootstrap.com/getting-started/#support-ie10-width -// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/ -// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/ - -@at-root { - @-ms-viewport { - width: device-width; - } -} - - -// Visibility utilities -// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0 - -@include responsive-invisibility('.visible-xs'); -@include responsive-invisibility('.visible-sm'); -@include responsive-invisibility('.visible-md'); -@include responsive-invisibility('.visible-lg'); - -.visible-xs-block, -.visible-xs-inline, -.visible-xs-inline-block, -.visible-sm-block, -.visible-sm-inline, -.visible-sm-inline-block, -.visible-md-block, -.visible-md-inline, -.visible-md-inline-block, -.visible-lg-block, -.visible-lg-inline, -.visible-lg-inline-block { - display: none !important; -} - -@media (max-width: $screen-xs-max) { - @include responsive-visibility('.visible-xs'); -} -.visible-xs-block { - @media (max-width: $screen-xs-max) { - display: block !important; - } -} -.visible-xs-inline { - @media (max-width: $screen-xs-max) { - display: inline !important; - } -} -.visible-xs-inline-block { - @media (max-width: $screen-xs-max) { - display: inline-block !important; - } -} - -@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { - @include responsive-visibility('.visible-sm'); -} -.visible-sm-block { - @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { - display: block !important; - } -} -.visible-sm-inline { - @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { - display: inline !important; - } -} -.visible-sm-inline-block { - @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { - display: inline-block !important; - } -} - -@media (min-width: $screen-md-min) and (max-width: $screen-md-max) { - @include responsive-visibility('.visible-md'); -} -.visible-md-block { - @media (min-width: $screen-md-min) and (max-width: $screen-md-max) { - display: block !important; - } -} -.visible-md-inline { - @media (min-width: $screen-md-min) and (max-width: $screen-md-max) { - display: inline !important; - } -} -.visible-md-inline-block { - @media (min-width: $screen-md-min) and (max-width: $screen-md-max) { - display: inline-block !important; - } -} - -@media (min-width: $screen-lg-min) { - @include responsive-visibility('.visible-lg'); -} -.visible-lg-block { - @media (min-width: $screen-lg-min) { - display: block !important; - } -} -.visible-lg-inline { - @media (min-width: $screen-lg-min) { - display: inline !important; - } -} -.visible-lg-inline-block { - @media (min-width: $screen-lg-min) { - display: inline-block !important; - } -} - -@media (max-width: $screen-xs-max) { - @include responsive-invisibility('.hidden-xs'); -} - -@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { - @include responsive-invisibility('.hidden-sm'); -} - -@media (min-width: $screen-md-min) and (max-width: $screen-md-max) { - @include responsive-invisibility('.hidden-md'); -} - -@media (min-width: $screen-lg-min) { - @include responsive-invisibility('.hidden-lg'); -} - - -// Print utilities -// -// Media queries are placed on the inside to be mixin-friendly. - -// Note: Deprecated .visible-print as of v3.2.0 - -@include responsive-invisibility('.visible-print'); - -@media print { - @include responsive-visibility('.visible-print'); -} -.visible-print-block { - display: none !important; - - @media print { - display: block !important; - } -} -.visible-print-inline { - display: none !important; - - @media print { - display: inline !important; - } -} -.visible-print-inline-block { - display: none !important; - - @media print { - display: inline-block !important; - } -} - -@media print { - @include responsive-invisibility('.hidden-print'); -} diff --git a/docs/source/assets/stylesheets/bootstrap/_scaffolding.scss b/docs/source/assets/stylesheets/bootstrap/_scaffolding.scss deleted file mode 100644 index 83adb5dd..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_scaffolding.scss +++ /dev/null @@ -1,161 +0,0 @@ -// -// Scaffolding -// -------------------------------------------------- - - -// Reset the box-sizing -// -// Heads up! This reset may cause conflicts with some third-party widgets. -// For recommendations on resolving such conflicts, see -// http://getbootstrap.com/getting-started/#third-box-sizing -* { - @include box-sizing(border-box); -} -*:before, -*:after { - @include box-sizing(border-box); -} - - -// Body reset - -html { - font-size: 10px; - -webkit-tap-highlight-color: rgba(0,0,0,0); -} - -body { - font-family: $font-family-base; - font-size: $font-size-base; - line-height: $line-height-base; - color: $text-color; - background-color: $body-bg; -} - -// Reset fonts for relevant elements -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - - -// Links - -a { - color: $link-color; - text-decoration: none; - - &:hover, - &:focus { - color: $link-hover-color; - text-decoration: $link-hover-decoration; - } - - &:focus { - @include tab-focus; - } -} - - -// Figures -// -// We reset this here because previously Normalize had no `figure` margins. This -// ensures we don't break anyone's use of the element. - -figure { - margin: 0; -} - - -// Images - -img { - vertical-align: middle; -} - -// Responsive images (ensure images don't scale beyond their parents) -.img-responsive { - @include img-responsive; -} - -// Rounded corners -.img-rounded { - border-radius: $border-radius-large; -} - -// Image thumbnails -// -// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`. -.img-thumbnail { - padding: $thumbnail-padding; - line-height: $line-height-base; - background-color: $thumbnail-bg; - border: 1px solid $thumbnail-border; - border-radius: $thumbnail-border-radius; - @include transition(all .2s ease-in-out); - - // Keep them at most 100% wide - @include img-responsive(inline-block); -} - -// Perfect circle -.img-circle { - border-radius: 50%; // set radius in percents -} - - -// Horizontal rules - -hr { - margin-top: $line-height-computed; - margin-bottom: $line-height-computed; - border: 0; - border-top: 1px solid $hr-border; -} - - -// Only display content to screen readers -// -// See: http://a11yproject.com/posts/how-to-hide-content/ - -.sr-only { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0,0,0,0); - border: 0; -} - -// Use in conjunction with .sr-only to only display content when it's focused. -// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 -// Credit: HTML5 Boilerplate - -.sr-only-focusable { - &:active, - &:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; - } -} - - -// iOS "clickable elements" fix for role="button" -// -// Fixes "clickability" issue (and more generally, the firing of events such as focus as well) -// for traditionally non-focusable elements with role="button" -// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile - -[role="button"] { - cursor: pointer; -} diff --git a/docs/source/assets/stylesheets/bootstrap/_tables.scss b/docs/source/assets/stylesheets/bootstrap/_tables.scss deleted file mode 100644 index affcc58c..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_tables.scss +++ /dev/null @@ -1,234 +0,0 @@ -// -// Tables -// -------------------------------------------------- - - -table { - background-color: $table-bg; -} -caption { - padding-top: $table-cell-padding; - padding-bottom: $table-cell-padding; - color: $text-muted; - text-align: left; -} -th { - text-align: left; -} - - -// Baseline styles - -.table { - width: 100%; - max-width: 100%; - margin-bottom: $line-height-computed; - // Cells - > thead, - > tbody, - > tfoot { - > tr { - > th, - > td { - padding: $table-cell-padding; - line-height: $line-height-base; - vertical-align: top; - border-top: 1px solid $table-border-color; - } - } - } - // Bottom align for column headings - > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid $table-border-color; - } - // Remove top border from thead by default - > caption + thead, - > colgroup + thead, - > thead:first-child { - > tr:first-child { - > th, - > td { - border-top: 0; - } - } - } - // Account for multiple tbody instances - > tbody + tbody { - border-top: 2px solid $table-border-color; - } - - // Nesting - .table { - background-color: $body-bg; - } -} - - -// Condensed table w/ half padding - -.table-condensed { - > thead, - > tbody, - > tfoot { - > tr { - > th, - > td { - padding: $table-condensed-cell-padding; - } - } - } -} - - -// Bordered version -// -// Add borders all around the table and between all the columns. - -.table-bordered { - border: 1px solid $table-border-color; - > thead, - > tbody, - > tfoot { - > tr { - > th, - > td { - border: 1px solid $table-border-color; - } - } - } - > thead > tr { - > th, - > td { - border-bottom-width: 2px; - } - } -} - - -// Zebra-striping -// -// Default zebra-stripe styles (alternating gray and transparent backgrounds) - -.table-striped { - > tbody > tr:nth-of-type(odd) { - background-color: $table-bg-accent; - } -} - - -// Hover effect -// -// Placed here since it has to come after the potential zebra striping - -.table-hover { - > tbody > tr:hover { - background-color: $table-bg-hover; - } -} - - -// Table cell sizing -// -// Reset default table behavior - -table col[class*="col-"] { - position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623) - float: none; - display: table-column; -} -table { - td, - th { - &[class*="col-"] { - position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623) - float: none; - display: table-cell; - } - } -} - - -// Table backgrounds -// -// Exact selectors below required to override `.table-striped` and prevent -// inheritance to nested tables. - -// Generate the contextual variants -@include table-row-variant('active', $table-bg-active); -@include table-row-variant('success', $state-success-bg); -@include table-row-variant('info', $state-info-bg); -@include table-row-variant('warning', $state-warning-bg); -@include table-row-variant('danger', $state-danger-bg); - - -// Responsive tables -// -// Wrap your tables in `.table-responsive` and we'll make them mobile friendly -// by enabling horizontal scrolling. Only applies <768px. Everything above that -// will display normally. - -.table-responsive { - overflow-x: auto; - min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837) - - @media screen and (max-width: $screen-xs-max) { - width: 100%; - margin-bottom: ($line-height-computed * 0.75); - overflow-y: hidden; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid $table-border-color; - - // Tighten up spacing - > .table { - margin-bottom: 0; - - // Ensure the content doesn't wrap - > thead, - > tbody, - > tfoot { - > tr { - > th, - > td { - white-space: nowrap; - } - } - } - } - - // Special overrides for the bordered tables - > .table-bordered { - border: 0; - - // Nuke the appropriate borders so that the parent can handle them - > thead, - > tbody, - > tfoot { - > tr { - > th:first-child, - > td:first-child { - border-left: 0; - } - > th:last-child, - > td:last-child { - border-right: 0; - } - } - } - - // Only nuke the last row's bottom-border in `tbody` and `tfoot` since - // chances are there will be only one `tr` in a `thead` and that would - // remove the border altogether. - > tbody, - > tfoot { - > tr:last-child { - > th, - > td { - border-bottom: 0; - } - } - } - - } - } -} diff --git a/docs/source/assets/stylesheets/bootstrap/_theme.scss b/docs/source/assets/stylesheets/bootstrap/_theme.scss deleted file mode 100644 index df571ea7..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_theme.scss +++ /dev/null @@ -1,291 +0,0 @@ -/*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -// -// Load core variables and mixins -// -------------------------------------------------- - -@import "variables"; -@import "mixins"; - - -// -// Buttons -// -------------------------------------------------- - -// Common styles -.btn-default, -.btn-primary, -.btn-success, -.btn-info, -.btn-warning, -.btn-danger { - text-shadow: 0 -1px 0 rgba(0,0,0,.2); - $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075); - @include box-shadow($shadow); - - // Reset the shadow - &:active, - &.active { - @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); - } - - &.disabled, - &[disabled], - fieldset[disabled] & { - @include box-shadow(none); - } - - .badge { - text-shadow: none; - } -} - -// Mixin for generating new styles -@mixin btn-styles($btn-color: #555) { - @include gradient-vertical($start-color: $btn-color, $end-color: darken($btn-color, 12%)); - @include reset-filter; // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620 - background-repeat: repeat-x; - border-color: darken($btn-color, 14%); - - &:hover, - &:focus { - background-color: darken($btn-color, 12%); - background-position: 0 -15px; - } - - &:active, - &.active { - background-color: darken($btn-color, 12%); - border-color: darken($btn-color, 14%); - } - - &.disabled, - &[disabled], - fieldset[disabled] & { - &, - &:hover, - &:focus, - &.focus, - &:active, - &.active { - background-color: darken($btn-color, 12%); - background-image: none; - } - } -} - -// Common styles -.btn { - // Remove the gradient for the pressed/active state - &:active, - &.active { - background-image: none; - } -} - -// Apply the mixin to the buttons -.btn-default { @include btn-styles($btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; } -.btn-primary { @include btn-styles($btn-primary-bg); } -.btn-success { @include btn-styles($btn-success-bg); } -.btn-info { @include btn-styles($btn-info-bg); } -.btn-warning { @include btn-styles($btn-warning-bg); } -.btn-danger { @include btn-styles($btn-danger-bg); } - - -// -// Images -// -------------------------------------------------- - -.thumbnail, -.img-thumbnail { - @include box-shadow(0 1px 2px rgba(0,0,0,.075)); -} - - -// -// Dropdowns -// -------------------------------------------------- - -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - @include gradient-vertical($start-color: $dropdown-link-hover-bg, $end-color: darken($dropdown-link-hover-bg, 5%)); - background-color: darken($dropdown-link-hover-bg, 5%); -} -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - @include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%)); - background-color: darken($dropdown-link-active-bg, 5%); -} - - -// -// Navbar -// -------------------------------------------------- - -// Default navbar -.navbar-default { - @include gradient-vertical($start-color: lighten($navbar-default-bg, 10%), $end-color: $navbar-default-bg); - @include reset-filter; // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered - border-radius: $navbar-border-radius; - $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075); - @include box-shadow($shadow); - - .navbar-nav > .open > a, - .navbar-nav > .active > a { - @include gradient-vertical($start-color: darken($navbar-default-link-active-bg, 5%), $end-color: darken($navbar-default-link-active-bg, 2%)); - @include box-shadow(inset 0 3px 9px rgba(0,0,0,.075)); - } -} -.navbar-brand, -.navbar-nav > li > a { - text-shadow: 0 1px 0 rgba(255,255,255,.25); -} - -// Inverted navbar -.navbar-inverse { - @include gradient-vertical($start-color: lighten($navbar-inverse-bg, 10%), $end-color: $navbar-inverse-bg); - @include reset-filter; // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257 - border-radius: $navbar-border-radius; - .navbar-nav > .open > a, - .navbar-nav > .active > a { - @include gradient-vertical($start-color: $navbar-inverse-link-active-bg, $end-color: lighten($navbar-inverse-link-active-bg, 2.5%)); - @include box-shadow(inset 0 3px 9px rgba(0,0,0,.25)); - } - - .navbar-brand, - .navbar-nav > li > a { - text-shadow: 0 -1px 0 rgba(0,0,0,.25); - } -} - -// Undo rounded corners in static and fixed navbars -.navbar-static-top, -.navbar-fixed-top, -.navbar-fixed-bottom { - border-radius: 0; -} - -// Fix active state of dropdown items in collapsed mode -@media (max-width: $grid-float-breakpoint-max) { - .navbar .navbar-nav .open .dropdown-menu > .active > a { - &, - &:hover, - &:focus { - color: #fff; - @include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%)); - } - } -} - - -// -// Alerts -// -------------------------------------------------- - -// Common styles -.alert { - text-shadow: 0 1px 0 rgba(255,255,255,.2); - $shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05); - @include box-shadow($shadow); -} - -// Mixin for generating new styles -@mixin alert-styles($color) { - @include gradient-vertical($start-color: $color, $end-color: darken($color, 7.5%)); - border-color: darken($color, 15%); -} - -// Apply the mixin to the alerts -.alert-success { @include alert-styles($alert-success-bg); } -.alert-info { @include alert-styles($alert-info-bg); } -.alert-warning { @include alert-styles($alert-warning-bg); } -.alert-danger { @include alert-styles($alert-danger-bg); } - - -// -// Progress bars -// -------------------------------------------------- - -// Give the progress background some depth -.progress { - @include gradient-vertical($start-color: darken($progress-bg, 4%), $end-color: $progress-bg) -} - -// Mixin for generating new styles -@mixin progress-bar-styles($color) { - @include gradient-vertical($start-color: $color, $end-color: darken($color, 10%)); -} - -// Apply the mixin to the progress bars -.progress-bar { @include progress-bar-styles($progress-bar-bg); } -.progress-bar-success { @include progress-bar-styles($progress-bar-success-bg); } -.progress-bar-info { @include progress-bar-styles($progress-bar-info-bg); } -.progress-bar-warning { @include progress-bar-styles($progress-bar-warning-bg); } -.progress-bar-danger { @include progress-bar-styles($progress-bar-danger-bg); } - -// Reset the striped class because our mixins don't do multiple gradients and -// the above custom styles override the new `.progress-bar-striped` in v3.2.0. -.progress-bar-striped { - @include gradient-striped; -} - - -// -// List groups -// -------------------------------------------------- - -.list-group { - border-radius: $border-radius-base; - @include box-shadow(0 1px 2px rgba(0,0,0,.075)); -} -.list-group-item.active, -.list-group-item.active:hover, -.list-group-item.active:focus { - text-shadow: 0 -1px 0 darken($list-group-active-bg, 10%); - @include gradient-vertical($start-color: $list-group-active-bg, $end-color: darken($list-group-active-bg, 7.5%)); - border-color: darken($list-group-active-border, 7.5%); - - .badge { - text-shadow: none; - } -} - - -// -// Panels -// -------------------------------------------------- - -// Common styles -.panel { - @include box-shadow(0 1px 2px rgba(0,0,0,.05)); -} - -// Mixin for generating new styles -@mixin panel-heading-styles($color) { - @include gradient-vertical($start-color: $color, $end-color: darken($color, 5%)); -} - -// Apply the mixin to the panel headings only -.panel-default > .panel-heading { @include panel-heading-styles($panel-default-heading-bg); } -.panel-primary > .panel-heading { @include panel-heading-styles($panel-primary-heading-bg); } -.panel-success > .panel-heading { @include panel-heading-styles($panel-success-heading-bg); } -.panel-info > .panel-heading { @include panel-heading-styles($panel-info-heading-bg); } -.panel-warning > .panel-heading { @include panel-heading-styles($panel-warning-heading-bg); } -.panel-danger > .panel-heading { @include panel-heading-styles($panel-danger-heading-bg); } - - -// -// Wells -// -------------------------------------------------- - -.well { - @include gradient-vertical($start-color: darken($well-bg, 5%), $end-color: $well-bg); - border-color: darken($well-bg, 10%); - $shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1); - @include box-shadow($shadow); -} diff --git a/docs/source/assets/stylesheets/bootstrap/_thumbnails.scss b/docs/source/assets/stylesheets/bootstrap/_thumbnails.scss deleted file mode 100644 index da0e1e76..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_thumbnails.scss +++ /dev/null @@ -1,38 +0,0 @@ -// -// Thumbnails -// -------------------------------------------------- - - -// Mixin and adjust the regular image class -.thumbnail { - display: block; - padding: $thumbnail-padding; - margin-bottom: $line-height-computed; - line-height: $line-height-base; - background-color: $thumbnail-bg; - border: 1px solid $thumbnail-border; - border-radius: $thumbnail-border-radius; - @include transition(border .2s ease-in-out); - - > img, - a > img { - @include img-responsive; - margin-left: auto; - margin-right: auto; - } - - // [converter] extracted a&:hover, a&:focus, a&.active to a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active - - // Image captions - .caption { - padding: $thumbnail-caption-padding; - color: $thumbnail-caption-color; - } -} - -// Add a hover state for linked versions only -a.thumbnail:hover, -a.thumbnail:focus, -a.thumbnail.active { - border-color: $link-color; -} diff --git a/docs/source/assets/stylesheets/bootstrap/_tooltip.scss b/docs/source/assets/stylesheets/bootstrap/_tooltip.scss deleted file mode 100644 index f0c16582..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_tooltip.scss +++ /dev/null @@ -1,101 +0,0 @@ -// -// Tooltips -// -------------------------------------------------- - - -// Base class -.tooltip { - position: absolute; - z-index: $zindex-tooltip; - display: block; - // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element. - // So reset our font and text properties to avoid inheriting weird values. - @include reset-text; - font-size: $font-size-small; - - @include opacity(0); - - &.in { @include opacity($tooltip-opacity); } - &.top { margin-top: -3px; padding: $tooltip-arrow-width 0; } - &.right { margin-left: 3px; padding: 0 $tooltip-arrow-width; } - &.bottom { margin-top: 3px; padding: $tooltip-arrow-width 0; } - &.left { margin-left: -3px; padding: 0 $tooltip-arrow-width; } -} - -// Wrapper for the tooltip content -.tooltip-inner { - max-width: $tooltip-max-width; - padding: 3px 8px; - color: $tooltip-color; - text-align: center; - background-color: $tooltip-bg; - border-radius: $border-radius-base; -} - -// Arrows -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1 -.tooltip { - &.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -$tooltip-arrow-width; - border-width: $tooltip-arrow-width $tooltip-arrow-width 0; - border-top-color: $tooltip-arrow-color; - } - &.top-left .tooltip-arrow { - bottom: 0; - right: $tooltip-arrow-width; - margin-bottom: -$tooltip-arrow-width; - border-width: $tooltip-arrow-width $tooltip-arrow-width 0; - border-top-color: $tooltip-arrow-color; - } - &.top-right .tooltip-arrow { - bottom: 0; - left: $tooltip-arrow-width; - margin-bottom: -$tooltip-arrow-width; - border-width: $tooltip-arrow-width $tooltip-arrow-width 0; - border-top-color: $tooltip-arrow-color; - } - &.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -$tooltip-arrow-width; - border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0; - border-right-color: $tooltip-arrow-color; - } - &.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -$tooltip-arrow-width; - border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width; - border-left-color: $tooltip-arrow-color; - } - &.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -$tooltip-arrow-width; - border-width: 0 $tooltip-arrow-width $tooltip-arrow-width; - border-bottom-color: $tooltip-arrow-color; - } - &.bottom-left .tooltip-arrow { - top: 0; - right: $tooltip-arrow-width; - margin-top: -$tooltip-arrow-width; - border-width: 0 $tooltip-arrow-width $tooltip-arrow-width; - border-bottom-color: $tooltip-arrow-color; - } - &.bottom-right .tooltip-arrow { - top: 0; - left: $tooltip-arrow-width; - margin-top: -$tooltip-arrow-width; - border-width: 0 $tooltip-arrow-width $tooltip-arrow-width; - border-bottom-color: $tooltip-arrow-color; - } -} diff --git a/docs/source/assets/stylesheets/bootstrap/_type.scss b/docs/source/assets/stylesheets/bootstrap/_type.scss deleted file mode 100644 index a39a6158..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_type.scss +++ /dev/null @@ -1,298 +0,0 @@ -// -// Typography -// -------------------------------------------------- - - -// Headings -// ------------------------- - -h1, h2, h3, h4, h5, h6, -.h1, .h2, .h3, .h4, .h5, .h6 { - font-family: $headings-font-family; - font-weight: $headings-font-weight; - line-height: $headings-line-height; - color: $headings-color; - - small, - .small { - font-weight: normal; - line-height: 1; - color: $headings-small-color; - } -} - -h1, .h1, -h2, .h2, -h3, .h3 { - margin-top: $line-height-computed; - margin-bottom: ($line-height-computed / 2); - - small, - .small { - font-size: 65%; - } -} -h4, .h4, -h5, .h5, -h6, .h6 { - margin-top: ($line-height-computed / 2); - margin-bottom: ($line-height-computed / 2); - - small, - .small { - font-size: 75%; - } -} - -h1, .h1 { font-size: $font-size-h1; } -h2, .h2 { font-size: $font-size-h2; } -h3, .h3 { font-size: $font-size-h3; } -h4, .h4 { font-size: $font-size-h4; } -h5, .h5 { font-size: $font-size-h5; } -h6, .h6 { font-size: $font-size-h6; } - - -// Body text -// ------------------------- - -p { - margin: 0 0 ($line-height-computed / 2); -} - -.lead { - margin-bottom: $line-height-computed; - font-size: floor(($font-size-base * 1.15)); - font-weight: 300; - line-height: 1.4; - - @media (min-width: $screen-sm-min) { - font-size: ($font-size-base * 1.5); - } -} - - -// Emphasis & misc -// ------------------------- - -// Ex: (12px small font / 14px base font) * 100% = about 85% -small, -.small { - font-size: floor((100% * $font-size-small / $font-size-base)); -} - -mark, -.mark { - background-color: $state-warning-bg; - padding: .2em; -} - -// Alignment -.text-left { text-align: left; } -.text-right { text-align: right; } -.text-center { text-align: center; } -.text-justify { text-align: justify; } -.text-nowrap { white-space: nowrap; } - -// Transformation -.text-lowercase { text-transform: lowercase; } -.text-uppercase { text-transform: uppercase; } -.text-capitalize { text-transform: capitalize; } - -// Contextual colors -.text-muted { - color: $text-muted; -} - -@include text-emphasis-variant('.text-primary', $brand-primary); - -@include text-emphasis-variant('.text-success', $state-success-text); - -@include text-emphasis-variant('.text-info', $state-info-text); - -@include text-emphasis-variant('.text-warning', $state-warning-text); - -@include text-emphasis-variant('.text-danger', $state-danger-text); - -// Contextual backgrounds -// For now we'll leave these alongside the text classes until v4 when we can -// safely shift things around (per SemVer rules). -.bg-primary { - // Given the contrast here, this is the only class to have its color inverted - // automatically. - color: #fff; -} -@include bg-variant('.bg-primary', $brand-primary); - -@include bg-variant('.bg-success', $state-success-bg); - -@include bg-variant('.bg-info', $state-info-bg); - -@include bg-variant('.bg-warning', $state-warning-bg); - -@include bg-variant('.bg-danger', $state-danger-bg); - - -// Page header -// ------------------------- - -.page-header { - padding-bottom: (($line-height-computed / 2) - 1); - margin: ($line-height-computed * 2) 0 $line-height-computed; - border-bottom: 1px solid $page-header-border-color; -} - - -// Lists -// ------------------------- - -// Unordered and Ordered lists -ul, -ol { - margin-top: 0; - margin-bottom: ($line-height-computed / 2); - ul, - ol { - margin-bottom: 0; - } -} - -// List options - -// [converter] extracted from `.list-unstyled` for libsass compatibility -@mixin list-unstyled { - padding-left: 0; - list-style: none; -} -// [converter] extracted as `@mixin list-unstyled` for libsass compatibility -.list-unstyled { - @include list-unstyled; -} - - -// Inline turns list items into inline-block -.list-inline { - @include list-unstyled; - margin-left: -5px; - - > li { - display: inline-block; - padding-left: 5px; - padding-right: 5px; - } -} - -// Description Lists -dl { - margin-top: 0; // Remove browser default - margin-bottom: $line-height-computed; -} -dt, -dd { - line-height: $line-height-base; -} -dt { - font-weight: bold; -} -dd { - margin-left: 0; // Undo browser default -} - -// Horizontal description lists -// -// Defaults to being stacked without any of the below styles applied, until the -// grid breakpoint is reached (default of ~768px). - -.dl-horizontal { - dd { - @include clearfix; // Clear the floated `dt` if an empty `dd` is present - } - - @media (min-width: $grid-float-breakpoint) { - dt { - float: left; - width: ($dl-horizontal-offset - 20); - clear: left; - text-align: right; - @include text-overflow; - } - dd { - margin-left: $dl-horizontal-offset; - } - } -} - - -// Misc -// ------------------------- - -// Abbreviations and acronyms -abbr[title], -// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257 -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted $abbr-border-color; -} -.initialism { - font-size: 90%; - @extend .text-uppercase; -} - -// Blockquotes -blockquote { - padding: ($line-height-computed / 2) $line-height-computed; - margin: 0 0 $line-height-computed; - font-size: $blockquote-font-size; - border-left: 5px solid $blockquote-border-color; - - p, - ul, - ol { - &:last-child { - margin-bottom: 0; - } - } - - // Note: Deprecated small and .small as of v3.1.0 - // Context: https://github.com/twbs/bootstrap/issues/11660 - footer, - small, - .small { - display: block; - font-size: 80%; // back to default font-size - line-height: $line-height-base; - color: $blockquote-small-color; - - &:before { - content: '\2014 \00A0'; // em dash, nbsp - } - } -} - -// Opposite alignment of blockquote -// -// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0. -.blockquote-reverse, -blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - border-right: 5px solid $blockquote-border-color; - border-left: 0; - text-align: right; - - // Account for citation - footer, - small, - .small { - &:before { content: ''; } - &:after { - content: '\00A0 \2014'; // nbsp, em dash - } - } -} - -// Addresses -address { - margin-bottom: $line-height-computed; - font-style: normal; - line-height: $line-height-base; -} diff --git a/docs/source/assets/stylesheets/bootstrap/_utilities.scss b/docs/source/assets/stylesheets/bootstrap/_utilities.scss deleted file mode 100644 index 8c99c716..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_utilities.scss +++ /dev/null @@ -1,55 +0,0 @@ -// -// Utility classes -// -------------------------------------------------- - - -// Floats -// ------------------------- - -.clearfix { - @include clearfix; -} -.center-block { - @include center-block; -} -.pull-right { - float: right !important; -} -.pull-left { - float: left !important; -} - - -// Toggling content -// ------------------------- - -// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1 -.hide { - display: none !important; -} -.show { - display: block !important; -} -.invisible { - visibility: hidden; -} -.text-hide { - @include text-hide; -} - - -// Hide from screenreaders and browsers -// -// Credit: HTML5 Boilerplate - -.hidden { - display: none !important; -} - - -// For Affix plugin -// ------------------------- - -.affix { - position: fixed; -} diff --git a/docs/source/assets/stylesheets/bootstrap/_variables.scss b/docs/source/assets/stylesheets/bootstrap/_variables.scss deleted file mode 100644 index bf9373b9..00000000 --- a/docs/source/assets/stylesheets/bootstrap/_variables.scss +++ /dev/null @@ -1,872 +0,0 @@ -$bootstrap-sass-asset-helper: false !default; -// -// Variables -// -------------------------------------------------- - - -//== Colors -// -//## Gray and brand colors for use across Bootstrap. - -$gray-base: #000 !default; -$gray-darker: lighten($gray-base, 13.5%) !default; // #222 -$gray-dark: lighten($gray-base, 20%) !default; // #333 -$gray: lighten($gray-base, 33.5%) !default; // #555 -$gray-light: lighten($gray-base, 46.7%) !default; // #777 -$gray-lighter: lighten($gray-base, 93.5%) !default; // #eee - -$brand-primary: darken(#428bca, 6.5%) !default; // #337ab7 -$brand-success: #5cb85c !default; -$brand-info: #5bc0de !default; -$brand-warning: #f0ad4e !default; -$brand-danger: #d9534f !default; - - -//== Scaffolding -// -//## Settings for some of the most global styles. - -//** Background color for ``. -$body-bg: #fff !default; -//** Global text color on ``. -$text-color: $gray-dark !default; - -//** Global textual link color. -$link-color: $brand-primary !default; -//** Link hover color set via `darken()` function. -$link-hover-color: darken($link-color, 15%) !default; -//** Link hover decoration. -$link-hover-decoration: underline !default; - - -//== Typography -// -//## Font, line-height, and color for body text, headings, and more. - -$font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif !default; -$font-family-serif: Georgia, "Times New Roman", Times, serif !default; -//** Default monospace fonts for ``, ``, and `
        `.
        -$font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace !default;
        -$font-family-base:        $font-family-sans-serif !default;
        -
        -$font-size-base:          14px !default;
        -$font-size-large:         ceil(($font-size-base * 1.25)) !default; // ~18px
        -$font-size-small:         ceil(($font-size-base * 0.85)) !default; // ~12px
        -
        -$font-size-h1:            floor(($font-size-base * 2.6)) !default; // ~36px
        -$font-size-h2:            floor(($font-size-base * 2.15)) !default; // ~30px
        -$font-size-h3:            ceil(($font-size-base * 1.7)) !default; // ~24px
        -$font-size-h4:            ceil(($font-size-base * 1.25)) !default; // ~18px
        -$font-size-h5:            $font-size-base !default;
        -$font-size-h6:            ceil(($font-size-base * 0.85)) !default; // ~12px
        -
        -//** Unit-less `line-height` for use in components like buttons.
        -$line-height-base:        1.428571429 !default; // 20/14
        -//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
        -$line-height-computed:    floor(($font-size-base * $line-height-base)) !default; // ~20px
        -
        -//** By default, this inherits from the ``.
        -$headings-font-family:    inherit !default;
        -$headings-font-weight:    500 !default;
        -$headings-line-height:    1.1 !default;
        -$headings-color:          inherit !default;
        -
        -
        -//== Iconography
        -//
        -//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
        -
        -//** Load fonts from this directory.
        -
        -// [converter] If $bootstrap-sass-asset-helper if used, provide path relative to the assets load path.
        -// [converter] This is because some asset helpers, such as Sprockets, do not work with file-relative paths.
        -$icon-font-path: if($bootstrap-sass-asset-helper, "bootstrap/", "../fonts/bootstrap/") !default;
        -
        -//** File name for all font files.
        -$icon-font-name:          "glyphicons-halflings-regular" !default;
        -//** Element ID within SVG icon file.
        -$icon-font-svg-id:        "glyphicons_halflingsregular" !default;
        -
        -
        -//== Components
        -//
        -//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
        -
        -$padding-base-vertical:     6px !default;
        -$padding-base-horizontal:   12px !default;
        -
        -$padding-large-vertical:    10px !default;
        -$padding-large-horizontal:  16px !default;
        -
        -$padding-small-vertical:    5px !default;
        -$padding-small-horizontal:  10px !default;
        -
        -$padding-xs-vertical:       1px !default;
        -$padding-xs-horizontal:     5px !default;
        -
        -$line-height-large:         1.3333333 !default; // extra decimals for Win 8.1 Chrome
        -$line-height-small:         1.5 !default;
        -
        -$border-radius-base:        4px !default;
        -$border-radius-large:       6px !default;
        -$border-radius-small:       3px !default;
        -
        -//** Global color for active items (e.g., navs or dropdowns).
        -$component-active-color:    #fff !default;
        -//** Global background color for active items (e.g., navs or dropdowns).
        -$component-active-bg:       $brand-primary !default;
        -
        -//** Width of the `border` for generating carets that indicator dropdowns.
        -$caret-width-base:          4px !default;
        -//** Carets increase slightly in size for larger components.
        -$caret-width-large:         5px !default;
        -
        -
        -//== Tables
        -//
        -//## Customizes the `.table` component with basic values, each used across all table variations.
        -
        -//** Padding for ``s and ``s.
        -$table-cell-padding:            8px !default;
        -//** Padding for cells in `.table-condensed`.
        -$table-condensed-cell-padding:  5px !default;
        -
        -//** Default background color used for all tables.
        -$table-bg:                      transparent !default;
        -//** Background color used for `.table-striped`.
        -$table-bg-accent:               #f9f9f9 !default;
        -//** Background color used for `.table-hover`.
        -$table-bg-hover:                #f5f5f5 !default;
        -$table-bg-active:               $table-bg-hover !default;
        -
        -//** Border color for table and cell borders.
        -$table-border-color:            #ddd !default;
        -
        -
        -//== Buttons
        -//
        -//## For each of Bootstrap's buttons, define text, background and border color.
        -
        -$btn-font-weight:                normal !default;
        -
        -$btn-default-color:              #333 !default;
        -$btn-default-bg:                 #fff !default;
        -$btn-default-border:             #ccc !default;
        -
        -$btn-primary-color:              #fff !default;
        -$btn-primary-bg:                 $brand-primary !default;
        -$btn-primary-border:             darken($btn-primary-bg, 5%) !default;
        -
        -$btn-success-color:              #fff !default;
        -$btn-success-bg:                 $brand-success !default;
        -$btn-success-border:             darken($btn-success-bg, 5%) !default;
        -
        -$btn-info-color:                 #fff !default;
        -$btn-info-bg:                    $brand-info !default;
        -$btn-info-border:                darken($btn-info-bg, 5%) !default;
        -
        -$btn-warning-color:              #fff !default;
        -$btn-warning-bg:                 $brand-warning !default;
        -$btn-warning-border:             darken($btn-warning-bg, 5%) !default;
        -
        -$btn-danger-color:               #fff !default;
        -$btn-danger-bg:                  $brand-danger !default;
        -$btn-danger-border:              darken($btn-danger-bg, 5%) !default;
        -
        -$btn-link-disabled-color:        $gray-light !default;
        -
        -// Allows for customizing button radius independently from global border radius
        -$btn-border-radius-base:         $border-radius-base !default;
        -$btn-border-radius-large:        $border-radius-large !default;
        -$btn-border-radius-small:        $border-radius-small !default;
        -
        -
        -//== Forms
        -//
        -//##
        -
        -//** `` background color
        -$input-bg:                       #fff !default;
        -//** `` background color
        -$input-bg-disabled:              $gray-lighter !default;
        -
        -//** Text color for ``s
        -$input-color:                    $gray !default;
        -//** `` border color
        -$input-border:                   #ccc !default;
        -
        -// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4
        -//** Default `.form-control` border radius
        -// This has no effect on ``s in CSS.
        -$input-border-radius:            $border-radius-base !default;
        -//** Large `.form-control` border radius
        -$input-border-radius-large:      $border-radius-large !default;
        -//** Small `.form-control` border radius
        -$input-border-radius-small:      $border-radius-small !default;
        -
        -//** Border color for inputs on focus
        -$input-border-focus:             #66afe9 !default;
        -
        -//** Placeholder text color
        -$input-color-placeholder:        #999 !default;
        -
        -//** Default `.form-control` height
        -$input-height-base:              ($line-height-computed + ($padding-base-vertical * 2) + 2) !default;
        -//** Large `.form-control` height
        -$input-height-large:             (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default;
        -//** Small `.form-control` height
        -$input-height-small:             (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default;
        -
        -//** `.form-group` margin
        -$form-group-margin-bottom:       15px !default;
        -
        -$legend-color:                   $gray-dark !default;
        -$legend-border-color:            #e5e5e5 !default;
        -
        -//** Background color for textual input addons
        -$input-group-addon-bg:           $gray-lighter !default;
        -//** Border color for textual input addons
        -$input-group-addon-border-color: $input-border !default;
        -
        -//** Disabled cursor for form controls and buttons.
        -$cursor-disabled:                not-allowed !default;
        -
        -
        -//== Dropdowns
        -//
        -//## Dropdown menu container and contents.
        -
        -//** Background for the dropdown menu.
        -$dropdown-bg:                    #fff !default;
        -//** Dropdown menu `border-color`.
        -$dropdown-border:                rgba(0,0,0,.15) !default;
        -//** Dropdown menu `border-color` **for IE8**.
        -$dropdown-fallback-border:       #ccc !default;
        -//** Divider color for between dropdown items.
        -$dropdown-divider-bg:            #e5e5e5 !default;
        -
        -//** Dropdown link text color.
        -$dropdown-link-color:            $gray-dark !default;
        -//** Hover color for dropdown links.
        -$dropdown-link-hover-color:      darken($gray-dark, 5%) !default;
        -//** Hover background for dropdown links.
        -$dropdown-link-hover-bg:         #f5f5f5 !default;
        -
        -//** Active dropdown menu item text color.
        -$dropdown-link-active-color:     $component-active-color !default;
        -//** Active dropdown menu item background color.
        -$dropdown-link-active-bg:        $component-active-bg !default;
        -
        -//** Disabled dropdown menu item background color.
        -$dropdown-link-disabled-color:   $gray-light !default;
        -
        -//** Text color for headers within dropdown menus.
        -$dropdown-header-color:          $gray-light !default;
        -
        -//** Deprecated `$dropdown-caret-color` as of v3.1.0
        -$dropdown-caret-color:           #000 !default;
        -
        -
        -//-- Z-index master list
        -//
        -// Warning: Avoid customizing these values. They're used for a bird's eye view
        -// of components dependent on the z-axis and are designed to all work together.
        -//
        -// Note: These variables are not generated into the Customizer.
        -
        -$zindex-navbar:            1000 !default;
        -$zindex-dropdown:          1000 !default;
        -$zindex-popover:           1060 !default;
        -$zindex-tooltip:           1070 !default;
        -$zindex-navbar-fixed:      1030 !default;
        -$zindex-modal-background:  1040 !default;
        -$zindex-modal:             1050 !default;
        -
        -
        -//== Media queries breakpoints
        -//
        -//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
        -
        -// Extra small screen / phone
        -//** Deprecated `$screen-xs` as of v3.0.1
        -$screen-xs:                  480px !default;
        -//** Deprecated `$screen-xs-min` as of v3.2.0
        -$screen-xs-min:              $screen-xs !default;
        -//** Deprecated `$screen-phone` as of v3.0.1
        -$screen-phone:               $screen-xs-min !default;
        -
        -// Small screen / tablet
        -//** Deprecated `$screen-sm` as of v3.0.1
        -$screen-sm:                  768px !default;
        -$screen-sm-min:              $screen-sm !default;
        -//** Deprecated `$screen-tablet` as of v3.0.1
        -$screen-tablet:              $screen-sm-min !default;
        -
        -// Medium screen / desktop
        -//** Deprecated `$screen-md` as of v3.0.1
        -$screen-md:                  992px !default;
        -$screen-md-min:              $screen-md !default;
        -//** Deprecated `$screen-desktop` as of v3.0.1
        -$screen-desktop:             $screen-md-min !default;
        -
        -// Large screen / wide desktop
        -//** Deprecated `$screen-lg` as of v3.0.1
        -$screen-lg:                  1200px !default;
        -$screen-lg-min:              $screen-lg !default;
        -//** Deprecated `$screen-lg-desktop` as of v3.0.1
        -$screen-lg-desktop:          $screen-lg-min !default;
        -
        -// So media queries don't overlap when required, provide a maximum
        -$screen-xs-max:              ($screen-sm-min - 1) !default;
        -$screen-sm-max:              ($screen-md-min - 1) !default;
        -$screen-md-max:              ($screen-lg-min - 1) !default;
        -
        -
        -//== Grid system
        -//
        -//## Define your custom responsive grid.
        -
        -//** Number of columns in the grid.
        -$grid-columns:              12 !default;
        -//** Padding between columns. Gets divided in half for the left and right.
        -$grid-gutter-width:         30px !default;
        -// Navbar collapse
        -//** Point at which the navbar becomes uncollapsed.
        -$grid-float-breakpoint:     $screen-sm-min !default;
        -//** Point at which the navbar begins collapsing.
        -$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default;
        -
        -
        -//== Container sizes
        -//
        -//## Define the maximum width of `.container` for different screen sizes.
        -
        -// Small screen / tablet
        -$container-tablet:             (720px + $grid-gutter-width) !default;
        -//** For `$screen-sm-min` and up.
        -$container-sm:                 $container-tablet !default;
        -
        -// Medium screen / desktop
        -$container-desktop:            (940px + $grid-gutter-width) !default;
        -//** For `$screen-md-min` and up.
        -$container-md:                 $container-desktop !default;
        -
        -// Large screen / wide desktop
        -$container-large-desktop:      (1140px + $grid-gutter-width) !default;
        -//** For `$screen-lg-min` and up.
        -$container-lg:                 $container-large-desktop !default;
        -
        -
        -//== Navbar
        -//
        -//##
        -
        -// Basics of a navbar
        -$navbar-height:                    50px !default;
        -$navbar-margin-bottom:             $line-height-computed !default;
        -$navbar-border-radius:             $border-radius-base !default;
        -$navbar-padding-horizontal:        floor(($grid-gutter-width / 2)) !default;
        -$navbar-padding-vertical:          (($navbar-height - $line-height-computed) / 2) !default;
        -$navbar-collapse-max-height:       340px !default;
        -
        -$navbar-default-color:             #777 !default;
        -$navbar-default-bg:                #f8f8f8 !default;
        -$navbar-default-border:            darken($navbar-default-bg, 6.5%) !default;
        -
        -// Navbar links
        -$navbar-default-link-color:                #777 !default;
        -$navbar-default-link-hover-color:          #333 !default;
        -$navbar-default-link-hover-bg:             transparent !default;
        -$navbar-default-link-active-color:         #555 !default;
        -$navbar-default-link-active-bg:            darken($navbar-default-bg, 6.5%) !default;
        -$navbar-default-link-disabled-color:       #ccc !default;
        -$navbar-default-link-disabled-bg:          transparent !default;
        -
        -// Navbar brand label
        -$navbar-default-brand-color:               $navbar-default-link-color !default;
        -$navbar-default-brand-hover-color:         darken($navbar-default-brand-color, 10%) !default;
        -$navbar-default-brand-hover-bg:            transparent !default;
        -
        -// Navbar toggle
        -$navbar-default-toggle-hover-bg:           #ddd !default;
        -$navbar-default-toggle-icon-bar-bg:        #888 !default;
        -$navbar-default-toggle-border-color:       #ddd !default;
        -
        -
        -//=== Inverted navbar
        -// Reset inverted navbar basics
        -$navbar-inverse-color:                      lighten($gray-light, 15%) !default;
        -$navbar-inverse-bg:                         #222 !default;
        -$navbar-inverse-border:                     darken($navbar-inverse-bg, 10%) !default;
        -
        -// Inverted navbar links
        -$navbar-inverse-link-color:                 lighten($gray-light, 15%) !default;
        -$navbar-inverse-link-hover-color:           #fff !default;
        -$navbar-inverse-link-hover-bg:              transparent !default;
        -$navbar-inverse-link-active-color:          $navbar-inverse-link-hover-color !default;
        -$navbar-inverse-link-active-bg:             darken($navbar-inverse-bg, 10%) !default;
        -$navbar-inverse-link-disabled-color:        #444 !default;
        -$navbar-inverse-link-disabled-bg:           transparent !default;
        -
        -// Inverted navbar brand label
        -$navbar-inverse-brand-color:                $navbar-inverse-link-color !default;
        -$navbar-inverse-brand-hover-color:          #fff !default;
        -$navbar-inverse-brand-hover-bg:             transparent !default;
        -
        -// Inverted navbar toggle
        -$navbar-inverse-toggle-hover-bg:            #333 !default;
        -$navbar-inverse-toggle-icon-bar-bg:         #fff !default;
        -$navbar-inverse-toggle-border-color:        #333 !default;
        -
        -
        -//== Navs
        -//
        -//##
        -
        -//=== Shared nav styles
        -$nav-link-padding:                          10px 15px !default;
        -$nav-link-hover-bg:                         $gray-lighter !default;
        -
        -$nav-disabled-link-color:                   $gray-light !default;
        -$nav-disabled-link-hover-color:             $gray-light !default;
        -
        -//== Tabs
        -$nav-tabs-border-color:                     #ddd !default;
        -
        -$nav-tabs-link-hover-border-color:          $gray-lighter !default;
        -
        -$nav-tabs-active-link-hover-bg:             $body-bg !default;
        -$nav-tabs-active-link-hover-color:          $gray !default;
        -$nav-tabs-active-link-hover-border-color:   #ddd !default;
        -
        -$nav-tabs-justified-link-border-color:            #ddd !default;
        -$nav-tabs-justified-active-link-border-color:     $body-bg !default;
        -
        -//== Pills
        -$nav-pills-border-radius:                   $border-radius-base !default;
        -$nav-pills-active-link-hover-bg:            $component-active-bg !default;
        -$nav-pills-active-link-hover-color:         $component-active-color !default;
        -
        -
        -//== Pagination
        -//
        -//##
        -
        -$pagination-color:                     $link-color !default;
        -$pagination-bg:                        #fff !default;
        -$pagination-border:                    #ddd !default;
        -
        -$pagination-hover-color:               $link-hover-color !default;
        -$pagination-hover-bg:                  $gray-lighter !default;
        -$pagination-hover-border:              #ddd !default;
        -
        -$pagination-active-color:              #fff !default;
        -$pagination-active-bg:                 $brand-primary !default;
        -$pagination-active-border:             $brand-primary !default;
        -
        -$pagination-disabled-color:            $gray-light !default;
        -$pagination-disabled-bg:               #fff !default;
        -$pagination-disabled-border:           #ddd !default;
        -
        -
        -//== Pager
        -//
        -//##
        -
        -$pager-bg:                             $pagination-bg !default;
        -$pager-border:                         $pagination-border !default;
        -$pager-border-radius:                  15px !default;
        -
        -$pager-hover-bg:                       $pagination-hover-bg !default;
        -
        -$pager-active-bg:                      $pagination-active-bg !default;
        -$pager-active-color:                   $pagination-active-color !default;
        -
        -$pager-disabled-color:                 $pagination-disabled-color !default;
        -
        -
        -//== Jumbotron
        -//
        -//##
        -
        -$jumbotron-padding:              30px !default;
        -$jumbotron-color:                inherit !default;
        -$jumbotron-bg:                   $gray-lighter !default;
        -$jumbotron-heading-color:        inherit !default;
        -$jumbotron-font-size:            ceil(($font-size-base * 1.5)) !default;
        -$jumbotron-heading-font-size:    ceil(($font-size-base * 4.5)) !default;
        -
        -
        -//== Form states and alerts
        -//
        -//## Define colors for form feedback states and, by default, alerts.
        -
        -$state-success-text:             #3c763d !default;
        -$state-success-bg:               #dff0d8 !default;
        -$state-success-border:           darken(adjust-hue($state-success-bg, -10), 5%) !default;
        -
        -$state-info-text:                #31708f !default;
        -$state-info-bg:                  #d9edf7 !default;
        -$state-info-border:              darken(adjust-hue($state-info-bg, -10), 7%) !default;
        -
        -$state-warning-text:             #8a6d3b !default;
        -$state-warning-bg:               #fcf8e3 !default;
        -$state-warning-border:           darken(adjust-hue($state-warning-bg, -10), 5%) !default;
        -
        -$state-danger-text:              #a94442 !default;
        -$state-danger-bg:                #f2dede !default;
        -$state-danger-border:            darken(adjust-hue($state-danger-bg, -10), 5%) !default;
        -
        -
        -//== Tooltips
        -//
        -//##
        -
        -//** Tooltip max width
        -$tooltip-max-width:           200px !default;
        -//** Tooltip text color
        -$tooltip-color:               #fff !default;
        -//** Tooltip background color
        -$tooltip-bg:                  #000 !default;
        -$tooltip-opacity:             .9 !default;
        -
        -//** Tooltip arrow width
        -$tooltip-arrow-width:         5px !default;
        -//** Tooltip arrow color
        -$tooltip-arrow-color:         $tooltip-bg !default;
        -
        -
        -//== Popovers
        -//
        -//##
        -
        -//** Popover body background color
        -$popover-bg:                          #fff !default;
        -//** Popover maximum width
        -$popover-max-width:                   276px !default;
        -//** Popover border color
        -$popover-border-color:                rgba(0,0,0,.2) !default;
        -//** Popover fallback border color
        -$popover-fallback-border-color:       #ccc !default;
        -
        -//** Popover title background color
        -$popover-title-bg:                    darken($popover-bg, 3%) !default;
        -
        -//** Popover arrow width
        -$popover-arrow-width:                 10px !default;
        -//** Popover arrow color
        -$popover-arrow-color:                 $popover-bg !default;
        -
        -//** Popover outer arrow width
        -$popover-arrow-outer-width:           ($popover-arrow-width + 1) !default;
        -//** Popover outer arrow color
        -$popover-arrow-outer-color:           fade_in($popover-border-color, 0.05) !default;
        -//** Popover outer arrow fallback color
        -$popover-arrow-outer-fallback-color:  darken($popover-fallback-border-color, 20%) !default;
        -
        -
        -//== Labels
        -//
        -//##
        -
        -//** Default label background color
        -$label-default-bg:            $gray-light !default;
        -//** Primary label background color
        -$label-primary-bg:            $brand-primary !default;
        -//** Success label background color
        -$label-success-bg:            $brand-success !default;
        -//** Info label background color
        -$label-info-bg:               $brand-info !default;
        -//** Warning label background color
        -$label-warning-bg:            $brand-warning !default;
        -//** Danger label background color
        -$label-danger-bg:             $brand-danger !default;
        -
        -//** Default label text color
        -$label-color:                 #fff !default;
        -//** Default text color of a linked label
        -$label-link-hover-color:      #fff !default;
        -
        -
        -//== Modals
        -//
        -//##
        -
        -//** Padding applied to the modal body
        -$modal-inner-padding:         15px !default;
        -
        -//** Padding applied to the modal title
        -$modal-title-padding:         15px !default;
        -//** Modal title line-height
        -$modal-title-line-height:     $line-height-base !default;
        -
        -//** Background color of modal content area
        -$modal-content-bg:                             #fff !default;
        -//** Modal content border color
        -$modal-content-border-color:                   rgba(0,0,0,.2) !default;
        -//** Modal content border color **for IE8**
        -$modal-content-fallback-border-color:          #999 !default;
        -
        -//** Modal backdrop background color
        -$modal-backdrop-bg:           #000 !default;
        -//** Modal backdrop opacity
        -$modal-backdrop-opacity:      .5 !default;
        -//** Modal header border color
        -$modal-header-border-color:   #e5e5e5 !default;
        -//** Modal footer border color
        -$modal-footer-border-color:   $modal-header-border-color !default;
        -
        -$modal-lg:                    900px !default;
        -$modal-md:                    600px !default;
        -$modal-sm:                    300px !default;
        -
        -
        -//== Alerts
        -//
        -//## Define alert colors, border radius, and padding.
        -
        -$alert-padding:               15px !default;
        -$alert-border-radius:         $border-radius-base !default;
        -$alert-link-font-weight:      bold !default;
        -
        -$alert-success-bg:            $state-success-bg !default;
        -$alert-success-text:          $state-success-text !default;
        -$alert-success-border:        $state-success-border !default;
        -
        -$alert-info-bg:               $state-info-bg !default;
        -$alert-info-text:             $state-info-text !default;
        -$alert-info-border:           $state-info-border !default;
        -
        -$alert-warning-bg:            $state-warning-bg !default;
        -$alert-warning-text:          $state-warning-text !default;
        -$alert-warning-border:        $state-warning-border !default;
        -
        -$alert-danger-bg:             $state-danger-bg !default;
        -$alert-danger-text:           $state-danger-text !default;
        -$alert-danger-border:         $state-danger-border !default;
        -
        -
        -//== Progress bars
        -//
        -//##
        -
        -//** Background color of the whole progress component
        -$progress-bg:                 #f5f5f5 !default;
        -//** Progress bar text color
        -$progress-bar-color:          #fff !default;
        -//** Variable for setting rounded corners on progress bar.
        -$progress-border-radius:      $border-radius-base !default;
        -
        -//** Default progress bar color
        -$progress-bar-bg:             $brand-primary !default;
        -//** Success progress bar color
        -$progress-bar-success-bg:     $brand-success !default;
        -//** Warning progress bar color
        -$progress-bar-warning-bg:     $brand-warning !default;
        -//** Danger progress bar color
        -$progress-bar-danger-bg:      $brand-danger !default;
        -//** Info progress bar color
        -$progress-bar-info-bg:        $brand-info !default;
        -
        -
        -//== List group
        -//
        -//##
        -
        -//** Background color on `.list-group-item`
        -$list-group-bg:                 #fff !default;
        -//** `.list-group-item` border color
        -$list-group-border:             #ddd !default;
        -//** List group border radius
        -$list-group-border-radius:      $border-radius-base !default;
        -
        -//** Background color of single list items on hover
        -$list-group-hover-bg:           #f5f5f5 !default;
        -//** Text color of active list items
        -$list-group-active-color:       $component-active-color !default;
        -//** Background color of active list items
        -$list-group-active-bg:          $component-active-bg !default;
        -//** Border color of active list elements
        -$list-group-active-border:      $list-group-active-bg !default;
        -//** Text color for content within active list items
        -$list-group-active-text-color:  lighten($list-group-active-bg, 40%) !default;
        -
        -//** Text color of disabled list items
        -$list-group-disabled-color:      $gray-light !default;
        -//** Background color of disabled list items
        -$list-group-disabled-bg:         $gray-lighter !default;
        -//** Text color for content within disabled list items
        -$list-group-disabled-text-color: $list-group-disabled-color !default;
        -
        -$list-group-link-color:         #555 !default;
        -$list-group-link-hover-color:   $list-group-link-color !default;
        -$list-group-link-heading-color: #333 !default;
        -
        -
        -//== Panels
        -//
        -//##
        -
        -$panel-bg:                    #fff !default;
        -$panel-body-padding:          15px !default;
        -$panel-heading-padding:       10px 15px !default;
        -$panel-footer-padding:        $panel-heading-padding !default;
        -$panel-border-radius:         $border-radius-base !default;
        -
        -//** Border color for elements within panels
        -$panel-inner-border:          #ddd !default;
        -$panel-footer-bg:             #f5f5f5 !default;
        -
        -$panel-default-text:          $gray-dark !default;
        -$panel-default-border:        #ddd !default;
        -$panel-default-heading-bg:    #f5f5f5 !default;
        -
        -$panel-primary-text:          #fff !default;
        -$panel-primary-border:        $brand-primary !default;
        -$panel-primary-heading-bg:    $brand-primary !default;
        -
        -$panel-success-text:          $state-success-text !default;
        -$panel-success-border:        $state-success-border !default;
        -$panel-success-heading-bg:    $state-success-bg !default;
        -
        -$panel-info-text:             $state-info-text !default;
        -$panel-info-border:           $state-info-border !default;
        -$panel-info-heading-bg:       $state-info-bg !default;
        -
        -$panel-warning-text:          $state-warning-text !default;
        -$panel-warning-border:        $state-warning-border !default;
        -$panel-warning-heading-bg:    $state-warning-bg !default;
        -
        -$panel-danger-text:           $state-danger-text !default;
        -$panel-danger-border:         $state-danger-border !default;
        -$panel-danger-heading-bg:     $state-danger-bg !default;
        -
        -
        -//== Thumbnails
        -//
        -//##
        -
        -//** Padding around the thumbnail image
        -$thumbnail-padding:           4px !default;
        -//** Thumbnail background color
        -$thumbnail-bg:                $body-bg !default;
        -//** Thumbnail border color
        -$thumbnail-border:            #ddd !default;
        -//** Thumbnail border radius
        -$thumbnail-border-radius:     $border-radius-base !default;
        -
        -//** Custom text color for thumbnail captions
        -$thumbnail-caption-color:     $text-color !default;
        -//** Padding around the thumbnail caption
        -$thumbnail-caption-padding:   9px !default;
        -
        -
        -//== Wells
        -//
        -//##
        -
        -$well-bg:                     #f5f5f5 !default;
        -$well-border:                 darken($well-bg, 7%) !default;
        -
        -
        -//== Badges
        -//
        -//##
        -
        -$badge-color:                 #fff !default;
        -//** Linked badge text color on hover
        -$badge-link-hover-color:      #fff !default;
        -$badge-bg:                    $gray-light !default;
        -
        -//** Badge text color in active nav link
        -$badge-active-color:          $link-color !default;
        -//** Badge background color in active nav link
        -$badge-active-bg:             #fff !default;
        -
        -$badge-font-weight:           bold !default;
        -$badge-line-height:           1 !default;
        -$badge-border-radius:         10px !default;
        -
        -
        -//== Breadcrumbs
        -//
        -//##
        -
        -$breadcrumb-padding-vertical:   8px !default;
        -$breadcrumb-padding-horizontal: 15px !default;
        -//** Breadcrumb background color
        -$breadcrumb-bg:                 #f5f5f5 !default;
        -//** Breadcrumb text color
        -$breadcrumb-color:              #ccc !default;
        -//** Text color of current page in the breadcrumb
        -$breadcrumb-active-color:       $gray-light !default;
        -//** Textual separator for between breadcrumb elements
        -$breadcrumb-separator:          "/" !default;
        -
        -
        -//== Carousel
        -//
        -//##
        -
        -$carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6) !default;
        -
        -$carousel-control-color:                      #fff !default;
        -$carousel-control-width:                      15% !default;
        -$carousel-control-opacity:                    .5 !default;
        -$carousel-control-font-size:                  20px !default;
        -
        -$carousel-indicator-active-bg:                #fff !default;
        -$carousel-indicator-border-color:             #fff !default;
        -
        -$carousel-caption-color:                      #fff !default;
        -
        -
        -//== Close
        -//
        -//##
        -
        -$close-font-weight:           bold !default;
        -$close-color:                 #000 !default;
        -$close-text-shadow:           0 1px 0 #fff !default;
        -
        -
        -//== Code
        -//
        -//##
        -
        -$code-color:                  #c7254e !default;
        -$code-bg:                     #f9f2f4 !default;
        -
        -$kbd-color:                   #fff !default;
        -$kbd-bg:                      #333 !default;
        -
        -$pre-bg:                      #f5f5f5 !default;
        -$pre-color:                   $gray-dark !default;
        -$pre-border-color:            #ccc !default;
        -$pre-scrollable-max-height:   340px !default;
        -
        -
        -//== Type
        -//
        -//##
        -
        -//** Horizontal offset for forms and lists.
        -$component-offset-horizontal: 180px !default;
        -//** Text muted color
        -$text-muted:                  $gray-light !default;
        -//** Abbreviations and acronyms border color
        -$abbr-border-color:           $gray-light !default;
        -//** Headings small color
        -$headings-small-color:        $gray-light !default;
        -//** Blockquote small color
        -$blockquote-small-color:      $gray-light !default;
        -//** Blockquote font size
        -$blockquote-font-size:        ($font-size-base * 1.25) !default;
        -//** Blockquote border color
        -$blockquote-border-color:     $gray-lighter !default;
        -//** Page header border color
        -$page-header-border-color:    $gray-lighter !default;
        -//** Width of horizontal description list titles
        -$dl-horizontal-offset:        $component-offset-horizontal !default;
        -//** Horizontal line color.
        -$hr-border:                   $gray-lighter !default;
        diff --git a/docs/source/assets/stylesheets/bootstrap/_wells.scss b/docs/source/assets/stylesheets/bootstrap/_wells.scss
        deleted file mode 100644
        index b8657118..00000000
        --- a/docs/source/assets/stylesheets/bootstrap/_wells.scss
        +++ /dev/null
        @@ -1,29 +0,0 @@
        -//
        -// Wells
        -// --------------------------------------------------
        -
        -
        -// Base class
        -.well {
        -  min-height: 20px;
        -  padding: 19px;
        -  margin-bottom: 20px;
        -  background-color: $well-bg;
        -  border: 1px solid $well-border;
        -  border-radius: $border-radius-base;
        -  @include box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
        -  blockquote {
        -    border-color: #ddd;
        -    border-color: rgba(0,0,0,.15);
        -  }
        -}
        -
        -// Sizes
        -.well-lg {
        -  padding: 24px;
        -  border-radius: $border-radius-large;
        -}
        -.well-sm {
        -  padding: 9px;
        -  border-radius: $border-radius-small;
        -}
        diff --git a/docs/source/assets/stylesheets/bootstrap/mixins/_alerts.scss b/docs/source/assets/stylesheets/bootstrap/mixins/_alerts.scss
        deleted file mode 100644
        index 3faf0b5a..00000000
        --- a/docs/source/assets/stylesheets/bootstrap/mixins/_alerts.scss
        +++ /dev/null
        @@ -1,14 +0,0 @@
        -// Alerts
        -
        -@mixin alert-variant($background, $border, $text-color) {
        -  background-color: $background;
        -  border-color: $border;
        -  color: $text-color;
        -
        -  hr {
        -    border-top-color: darken($border, 5%);
        -  }
        -  .alert-link {
        -    color: darken($text-color, 10%);
        -  }
        -}
        diff --git a/docs/source/assets/stylesheets/bootstrap/mixins/_background-variant.scss b/docs/source/assets/stylesheets/bootstrap/mixins/_background-variant.scss
        deleted file mode 100644
        index 4c7769e1..00000000
        --- a/docs/source/assets/stylesheets/bootstrap/mixins/_background-variant.scss
        +++ /dev/null
        @@ -1,12 +0,0 @@
        -// Contextual backgrounds
        -
        -// [converter] $parent hack
        -@mixin bg-variant($parent, $color) {
        -  #{$parent} {
        -    background-color: $color;
        -  }
        -  a#{$parent}:hover,
        -  a#{$parent}:focus {
        -    background-color: darken($color, 10%);
        -  }
        -}
        diff --git a/docs/source/assets/stylesheets/bootstrap/mixins/_border-radius.scss b/docs/source/assets/stylesheets/bootstrap/mixins/_border-radius.scss
        deleted file mode 100644
        index ce194998..00000000
        --- a/docs/source/assets/stylesheets/bootstrap/mixins/_border-radius.scss
        +++ /dev/null
        @@ -1,18 +0,0 @@
        -// Single side border-radius
        -
        -@mixin border-top-radius($radius) {
        -  border-top-right-radius: $radius;
        -   border-top-left-radius: $radius;
        -}
        -@mixin border-right-radius($radius) {
        -  border-bottom-right-radius: $radius;
        -     border-top-right-radius: $radius;
        -}
        -@mixin border-bottom-radius($radius) {
        -  border-bottom-right-radius: $radius;
        -   border-bottom-left-radius: $radius;
        -}
        -@mixin border-left-radius($radius) {
        -  border-bottom-left-radius: $radius;
        -     border-top-left-radius: $radius;
        -}
        diff --git a/docs/source/assets/stylesheets/bootstrap/mixins/_buttons.scss b/docs/source/assets/stylesheets/bootstrap/mixins/_buttons.scss
        deleted file mode 100644
        index ad311873..00000000
        --- a/docs/source/assets/stylesheets/bootstrap/mixins/_buttons.scss
        +++ /dev/null
        @@ -1,68 +0,0 @@
        -// Button variants
        -//
        -// Easily pump out default styles, as well as :hover, :focus, :active,
        -// and disabled options for all buttons
        -
        -@mixin button-variant($color, $background, $border) {
        -  color: $color;
        -  background-color: $background;
        -  border-color: $border;
        -
        -  &:focus,
        -  &.focus {
        -    color: $color;
        -    background-color: darken($background, 10%);
        -        border-color: darken($border, 25%);
        -  }
        -  &:hover {
        -    color: $color;
        -    background-color: darken($background, 10%);
        -        border-color: darken($border, 12%);
        -  }
        -  &:active,
        -  &.active,
        -  .open > &.dropdown-toggle {
        -    color: $color;
        -    background-color: darken($background, 10%);
        -        border-color: darken($border, 12%);
        -
        -    &:hover,
        -    &:focus,
        -    &.focus {
        -      color: $color;
        -      background-color: darken($background, 17%);
        -          border-color: darken($border, 25%);
        -    }
        -  }
        -  &:active,
        -  &.active,
        -  .open > &.dropdown-toggle {
        -    background-image: none;
        -  }
        -  &.disabled,
        -  &[disabled],
        -  fieldset[disabled] & {
        -    &,
        -    &:hover,
        -    &:focus,
        -    &.focus,
        -    &:active,
        -    &.active {
        -      background-color: $background;
        -          border-color: $border;
        -    }
        -  }
        -
        -  .badge {
        -    color: $background;
        -    background-color: $color;
        -  }
        -}
        -
        -// Button sizes
        -@mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
        -  padding: $padding-vertical $padding-horizontal;
        -  font-size: $font-size;
        -  line-height: $line-height;
        -  border-radius: $border-radius;
        -}
        diff --git a/docs/source/assets/stylesheets/bootstrap/mixins/_center-block.scss b/docs/source/assets/stylesheets/bootstrap/mixins/_center-block.scss
        deleted file mode 100644
        index e06fb5e2..00000000
        --- a/docs/source/assets/stylesheets/bootstrap/mixins/_center-block.scss
        +++ /dev/null
        @@ -1,7 +0,0 @@
        -// Center-align a block level element
        -
        -@mixin center-block() {
        -  display: block;
        -  margin-left: auto;
        -  margin-right: auto;
        -}
        diff --git a/docs/source/assets/stylesheets/bootstrap/mixins/_clearfix.scss b/docs/source/assets/stylesheets/bootstrap/mixins/_clearfix.scss
        deleted file mode 100644
        index dc3e2ab4..00000000
        --- a/docs/source/assets/stylesheets/bootstrap/mixins/_clearfix.scss
        +++ /dev/null
        @@ -1,22 +0,0 @@
        -// Clearfix
        -//
        -// For modern browsers
        -// 1. The space content is one way to avoid an Opera bug when the
        -//    contenteditable attribute is included anywhere else in the document.
        -//    Otherwise it causes space to appear at the top and bottom of elements
        -//    that are clearfixed.
        -// 2. The use of `table` rather than `block` is only necessary if using
        -//    `:before` to contain the top-margins of child elements.
        -//
        -// Source: http://nicolasgallagher.com/micro-clearfix-hack/
        -
        -@mixin clearfix() {
        -  &:before,
        -  &:after {
        -    content: " "; // 1
        -    display: table; // 2
        -  }
        -  &:after {
        -    clear: both;
        -  }
        -}
        diff --git a/docs/source/assets/stylesheets/bootstrap/mixins/_forms.scss b/docs/source/assets/stylesheets/bootstrap/mixins/_forms.scss
        deleted file mode 100644
        index 277aa5f8..00000000
        --- a/docs/source/assets/stylesheets/bootstrap/mixins/_forms.scss
        +++ /dev/null
        @@ -1,88 +0,0 @@
        -// Form validation states
        -//
        -// Used in forms.less to generate the form validation CSS for warnings, errors,
        -// and successes.
        -
        -@mixin form-control-validation($text-color: #555, $border-color: #ccc, $background-color: #f5f5f5) {
        -  // Color the label and help text
        -  .help-block,
        -  .control-label,
        -  .radio,
        -  .checkbox,
        -  .radio-inline,
        -  .checkbox-inline,
        -  &.radio label,
        -  &.checkbox label,
        -  &.radio-inline label,
        -  &.checkbox-inline label  {
        -    color: $text-color;
        -  }
        -  // Set the border and box shadow on specific inputs to match
        -  .form-control {
        -    border-color: $border-color;
        -    @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
        -    &:focus {
        -      border-color: darken($border-color, 10%);
        -      $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($border-color, 20%);
        -      @include box-shadow($shadow);
        -    }
        -  }
        -  // Set validation states also for addons
        -  .input-group-addon {
        -    color: $text-color;
        -    border-color: $border-color;
        -    background-color: $background-color;
        -  }
        -  // Optional feedback icon
        -  .form-control-feedback {
        -    color: $text-color;
        -  }
        -}
        -
        -
        -// Form control focus state
        -//
        -// Generate a customized focus state and for any input with the specified color,
        -// which defaults to the `$input-border-focus` variable.
        -//
        -// We highly encourage you to not customize the default value, but instead use
        -// this to tweak colors on an as-needed basis. This aesthetic change is based on
        -// WebKit's default styles, but applicable to a wider range of browsers. Its
        -// usability and accessibility should be taken into account with any change.
        -//
        -// Example usage: change the default blue border and shadow to white for better
        -// contrast against a dark gray background.
        -@mixin form-control-focus($color: $input-border-focus) {
        -  $color-rgba: rgba(red($color), green($color), blue($color), .6);
        -  &:focus {
        -    border-color: $color;
        -    outline: 0;
        -    @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px $color-rgba);
        -  }
        -}
        -
        -// Form control sizing
        -//
        -// Relative text size, padding, and border-radii changes for form controls. For
        -// horizontal sizing, wrap controls in the predefined grid classes. `
        -          
        -          
        -        
        - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/source/partials/join-form.haml b/docs/source/partials/join-form.haml deleted file mode 100644 index 8e3b7eff..00000000 --- a/docs/source/partials/join-form.haml +++ /dev/null @@ -1,47 +0,0 @@ -%form.join-form.join-form-fill.gradient-white.pos-rel.z-10.p-xlarge.p-l-xxlarge.p-r-xxlarge.radius6.elevation1.m-l-r-auto - %header.text-center - %h3.color-bunting.text-demi.no-margin.text-lg Get Started. It’s FREE! - .spacer32 - %label.color-bunting.text-normal{:for => "url"} Website - .input-group - %span.input-group-addon - %i.icon.icon-link.color-bunting - %input.form-control{type: 'text', placeholder: 'https://website.com/doc', name: 'url'} - %p.text-sm.color-east-bay.m-t-small - We’ll crawl the documentation pages of your website and index them on Algolia. - Refer to - %a{href: "https://community.algolia.com/docsearch/documentation/docsearch-FAQ/customize-configuration-file/", class:"clickable"} the projects we support - .spacer16 - %label.color-bunting.text-normal{:for => "email"} Email - .input-group - %span.input-group-addon - %i.icon.icon-email.color-bunting - %input.form-control{type: 'email', placeholder: 'you@example.org', name: 'email'} - %p.text-sm.color-east-bay.m-t-small We’ll email you the code you need to integrate the search into your documentation. - .spacer16 - %p.checkbox.text-center - %label - %input{type: 'checkbox', name: 'owner'} - %span I'm the owner of that website - .row - .form-group.pos-rel.p-small - %div - %p - Refer to - %a{href: "https://www.algolia.com/policies/terms", class:"clickable"} Algolia's Privacy Policy - for more information on how we use and protect your data - .text-center - %button.btn.btn-static-primary.w100p{type: 'submit'} - Join the program - -%form.join-form.join-form-validated.gradient-white.pos-rel.z-10.p-xlarge.p-l-xxlarge.p-r-xxlarge.radius6.elevation1.m-l-r-auto.hidden - %h3 Thank you ! - .spacer20 - %p.text-sm - %b - We'll review your request shortly, - after making sure your website is eligible to DocSearch. - %p.text-sm - This is a manual process and can take some time. - %p.text-sm We'll then email you the code you need to integrate on your website - .spacer20 diff --git a/docs/source/partials/marketing.html.erb b/docs/source/partials/marketing.html.erb deleted file mode 100644 index 6a40f799..00000000 --- a/docs/source/partials/marketing.html.erb +++ /dev/null @@ -1,10 +0,0 @@ -<% if config[:stage] == 'production' %> - - - -<% end %> diff --git a/docs/source/partials/newsletter-mc.haml b/docs/source/partials/newsletter-mc.haml deleted file mode 100644 index e272f6ab..00000000 --- a/docs/source/partials/newsletter-mc.haml +++ /dev/null @@ -1,20 +0,0 @@ - -#mc_embed_signup - %form{action: '//algolia.us3.list-manage.com/subscribe/post?u=f7b8acc6ec97794a08484ca9b&id=285b80e148', method: 'post', id: 'mc-embedded-subscribe-form' name: 'mc-embedded-subscribe-form' class: 'validate' novalidate: true} - #mc_embed_signup_scroll - %h3 - Sign up for our newsletter - .spacer20 - .input-group - .input-group-addon#sizing-addon1 - %i.fa.fa-envelope-o - %input.form-control#mce-EMAIL{type: 'email', value:'', name: 'EMAIL', placeholder: 'Email Address'} - %span.input-group-btn - %input#mc-embedded-subscribe.btn.btn-primary{type: 'submit' value: 'Subscribe' name: 'subscribe'} - #mce-responses.clear - .response#mce-error-response - .response#mce-success-response{style: 'display:none'} - - %div{style: 'position: absolute; left: -5000px;'} - %input{type: 'text', name: 'b_f7b8acc6ec97794a08484ca9b_285b80e148', tabindex: '-1', value:''} - diff --git a/docs/source/sitemap.xml.erb b/docs/source/sitemap.xml.erb deleted file mode 100644 index ecb166b0..00000000 --- a/docs/source/sitemap.xml.erb +++ /dev/null @@ -1,10 +0,0 @@ - - -<% sitemap_tree.flatten.each do |page| %> - <% if page.get_val.destination_path.include?('.html') %> - - <%= "#{app_data.config.host}/#{page.get_val.destination_path.gsub(/index\.html$/, '')}" %> - - <% end %> -<% end %> - diff --git a/docs/source/templates/redirect.html.erb b/docs/source/templates/redirect.html.erb deleted file mode 100644 index 63b7b5e6..00000000 --- a/docs/source/templates/redirect.html.erb +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/docs/source/templates/redirects.erb b/docs/source/templates/redirects.erb deleted file mode 100644 index 4df5c70a..00000000 --- a/docs/source/templates/redirects.erb +++ /dev/null @@ -1,3 +0,0 @@ -<% redirects.each do |r| %> -<%= r[:from].gsub(/(.+)\/index\.html/, '\1').gsub('index.html', '') %> <%= "#{r[:to].gsub('/index.html', '').gsub(/\/$/, '')}/" %> -<% end %> \ No newline at end of file diff --git a/docs/src/_includes/apply-form.pug b/docs/src/_includes/apply-form.pug new file mode 100644 index 00000000..2a659a0f --- /dev/null +++ b/docs/src/_includes/apply-form.pug @@ -0,0 +1,37 @@ +form.custom-apply-form.m-auto.max-w-sm.elevation.p-2.md_p-3(method="POST", action="https://www.algolia.com/docsearch/join") + .custom-form-content.form-content + .mb-2 + label.control-label(for="url") Documentation URL + input#url.form-control(name="url", placeholder="https://project.org/docs", type="url", required) + p.text-grey-dark.text--1.leading-2.my-1.italic We'll crawl pages at this address and index the content on Algolia. + + .mb-2 + label.control-label(for="email") Email + input#email.form-control(name="email", placeholder="you@project.org", type="email", required) + p.text-grey-dark.text--1.leading-2.my-1.italic We'll send you the JavaScript snippet you'll have to integrate into your documentation. + .mb-2 + label.cursor-pointer + input(name="owner", type="checkbox", required) + span + | I'm the + .bold.inline owner + | of the website and I + a(href="./who-can-apply.html") read the checklist + | before applying. + .mb-2 + button.c-button.c-button-primary.w-100(type="submit") Apply to DocSearch + p.leading-2.text-1.my-1 Refer to + a.clickable(href="https://www.algolia.com/policies/terms") Algolia's Privacy Policy + | for more information on how we use and protect your data + + + .custom-form-thank-you.hidden + .poppins.text-4.mb-2 Thank you! + p.text-2.leading-2.mb-1 Your request will be processed by our team. + p.text-2.leading-2.mb-1 + |We'll get back to you on + span.custom-placeholder-email.inline.text-nebula your email + | with the snippet of JavaScript you'll need to integrate into + span.custom-placeholder-url.inline.text-nebula your website + |. + p.text-2.leading-2 Please be patient, it can take a few days. diff --git a/docs/src/_includes/header.pug b/docs/src/_includes/header.pug new file mode 100644 index 00000000..1296ad07 --- /dev/null +++ b/docs/src/_includes/header.pug @@ -0,0 +1,65 @@ +.header.fixed.pin-t.w-100.h-3.z-5.bg-white-pure + .max-w-xl.m-auto.h-100.flex.flrnw + //- Algolia logo + .hidden.sm_flex.fln.flcnw.flc + a.cursor-pointer.text-0.pl-2(href="https://www.algolia.com/", target="_blank") + img.h-1.sm_h-1x(src="assets/algolia-logo.svg", alt="Algolia") + //- Separator + .hidden.sm_flex.fln.flrnw.flc + .w-1.h-1.sm_w-1x.sm_h-1x.text-telluric.fill-current + include ../assets/icons/arrow-separator.svg + //- Community logo + .hidden.lg_flex.custom-community-link.fln.flcnw.flc.px-0x.relative + a.cursor-pointer.text-0(href="https://community.algolia.com/", target="_blank") + img.h-1.sm_h-1x.lg_h-2(src="assets/community/community-logo.svg", alt="Algolia Community") + .custom-community-projects.hidden.sm_block.absolute.z-5.pin-t.mt-3.ml-3.border.border-proton.rounded-auto.bg-white-pure.shadow-1 + .flex.flrw.pt-0x + a.fln.w-50.flex.flrnw.p-05.flc.hover_no-underline(href="https://community.algolia.com/talksearch/") + .fln.bg-blue.rounded-auto.w-2x.h-2x + img.w-100(src="assets/community/talksearch-icon.svg", alt="TalkSearch") + .fla.pl-1.text-solstice.text-1.bold.hover_text-nebula TalkSearch + a.fln.w-50.flex.flrnw.p-05.flc.hover_no-underline(href="https://community.algolia.com/jekyll-algolia/") + .fln.bg-blue.rounded-auto.w-2x.h-2x + img.w-100(src="assets/community/jekyll-icon.svg", alt="Jekyll") + .fla.pl-1.text-solstice.text-1.bold.hover_text-nebula Jekyll + a.fln.w-50.flex.flrnw.p-05.flc.hover_no-underline(href="https://community.algolia.com/instantsearch.js/") + .fln.bg-blue.rounded-auto.w-2x.h-2x + img.w-100(src="assets/community/instantsearch-icon.svg", alt="InstantSearch") + .fla.pl-1.text-solstice.text-1.bold.hover_text-nebula InstantSearch + a.fln.w-50.flex.flrnw.p-05.flc.hover_no-underline(href="https://community.algolia.com/react-instantsearch/") + .fln.bg-blue.rounded-auto.w-2x.h-2x + img.w-100(src="assets/community/react-icon.svg", alt="React InstantSearch") + .fla.pl-1.text-solstice.text-1.bold.hover_text-nebula React InstantSearch + a.fln.w-50.flex.flrnw.p-05.flc.hover_no-underline(href="https://community.algolia.com/vue-instantsearch/") + .fln.bg-blue.rounded-auto.w-2x.h-2x + img.w-100(src="assets/community/vue-icon.svg", alt="Vue InstantSearch") + .fla.pl-1.text-solstice.text-1.bold.hover_text-nebula Vue InstantSearch + a.fln.w-50.flex.flrnw.p-05.flc.hover_no-underline(href="https://community.algolia.com/angular-instantsearch/") + .fln.bg-blue.rounded-auto.w-2x.h-2x.flex.flrnw.flc + img.w-80(src="assets/community/angular-icon.svg", alt="Angular InstantSearch") + .fla.pl-1.text-solstice.text-1.bold.hover_text-nebula Angular InstantSearch + a.fla.flex.flrnw.p-0x.flc.text-2.text-solstice.bold.bg-moon.rounded-auto.py-1(href="https://discourse.algolia.com/") + |Community Forum + + //- Separator + .hidden.lg_flex.fln.flrnw.flc + .w-1.h-1.sm_w-1x.sm_h-1x.text-telluric.fill-current + include ../assets/icons/arrow-separator.svg + + //- Project link + .flex.fln.flrnw.flc.pl-1.sm_pl-0 + a.cursor-pointer.uppercase.tracking-poppins.poppins.text-solstice.hover_text-nebula.hover_no-underline(href='./') + span.hidden.sm_block.ml-0x=site.project + img.align-text-bottom.h-100.sm_hidden.ml-1(src="assets/docsearch-mark.svg" width=40 alt="DocSearch logo") + + //- DocSearch + .flex.fla.flrnw.flrcv.flrar.ml-2 + .w-100.flrnw.flex.flrar + .custom-search-wrapper.fln.h-60.w-100.rounded-auto.relative + label.absolute.pin-left.z-1.w-1.h-100.ml-05.text-solstice.fill-current.cursor-pointer(for="docsearch") + include ../assets/icons/magnifying-glass.svg + input.custom-search-input.w-100.h-100.outline-none.text-solstice.pl-2.rounded-auto.bg-moon.focus_bg-moon--1#docsearch(placeholder="Search the docs...") + + //- Links + block nav + diff --git a/docs/src/_includes/newsletter-form.pug b/docs/src/_includes/newsletter-form.pug new file mode 100644 index 00000000..587f1b88 --- /dev/null +++ b/docs/src/_includes/newsletter-form.pug @@ -0,0 +1,7 @@ +.text-5.mb-1 Sign Up to our Newsletter +.text-2.mb-2.text-nova Follow project updates and general vector loveliness +.max-w-sm.flex.m-auto.mt-1 + .fla + input#newsletter_email.form-control-primary.w-100(name="newsletter_email", placeholder="you@example.org", type="email") + .fla.pl-1 + .button.c-button.w-100 Sign Up diff --git a/docs/src/_includes/tag-manager-noscript.pug b/docs/src/_includes/tag-manager-noscript.pug new file mode 100644 index 00000000..87d5b176 --- /dev/null +++ b/docs/src/_includes/tag-manager-noscript.pug @@ -0,0 +1,2 @@ +noscript + iframe(src="https://www.googletagmanager.com/ns.html?id=GTM-N8JP8G", height="0", width="0", style="display:none;visibility:hidden") diff --git a/docs/src/_includes/tag-manager.pug b/docs/src/_includes/tag-manager.pug new file mode 100644 index 00000000..2e759130 --- /dev/null +++ b/docs/src/_includes/tag-manager.pug @@ -0,0 +1,2 @@ +script + |(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-N8JP8G'); diff --git a/docs/src/_layouts/homepage.pug b/docs/src/_layouts/homepage.pug new file mode 100644 index 00000000..8150daae --- /dev/null +++ b/docs/src/_layouts/homepage.pug @@ -0,0 +1,228 @@ +extends main.pug + +block script + script(src="https://unpkg.com/@glidejs/glide@3.2.3/dist/glide.min.js") + script(src="https://unpkg.com/popper.js/dist/umd/popper.min.js") + script(src="js/home.js") + +block nav + .flex.justify-start.items-center.mx-1 + a.text-1.text-solstice.hover_text-nebula.hover_no-underline.mr-1(href="./what-is-docsearch.html") Documentation + a.h-1x.w-1x.text-solstice.fill-current.items-center.hover_text-grey-darker.mr-1(href=site.repo, target="_blank") + include ../assets/icons/github.svg + +block content + .bg-docsearch-hero + .max-w-md.m-auto.text-center.px-2 + img.mt-3.mb-1(src="assets/docsearch-logo.svg", alt="DocSearch logo" width=480) + .text-2.text-nova.mb-3 The best search experience for docs, integrates in minutes, for free + .text-5.text-telluric.mb-3 Providing search for 900+ docs, and counting. + a.c-button.c-button-primary(href="#join-docsearch-program") Join the Program + + .bg-moon.px-2 + .max-w-xl.m-auto.text-center.mt-3.mb-2 + .glide + .glide__track(data-glide-el="track") + .glide__slides + .glide__slide + img(src="assets/logos/babel.jpg", alt="DocSearch + Babel", width=60) + .glide__caption Babel + .glide__slide + img(src="assets/logos/bootstrap.jpg", alt="DocSearch + Bootstrap", width=60) + .glide__caption Bootstrap + .glide__slide + img(src="assets/logos/circleio.jpg", alt="DocSearch + Circle.io", width=60) + .glide__caption Circle.io + .glide__slide + img(src="assets/logos/cordova.jpg", alt="DocSearch + Cordova", width=60) + .glide__caption Cordova + .glide__slide + img(src="assets/logos/electron.jpg", alt="DocSearch + Electron", width=60) + .glide__caption Electron + .glide__slide + img(src="assets/logos/ember.jpg", alt="DocSearch + Ember", width=60) + .glide__caption Ember + .glide__slide + img(src="assets/logos/eslint.jpg", alt="DocSearch + EsLint", width=60) + .glide__caption EsLint + .glide__slide + img(src="assets/logos/gitlab.jpg", alt="DocSearch + Gitlab", width=60) + .glide__caption Gitlab + .glide__slide + img(src="assets/logos/go.jpg", alt="DocSearch + Go", width=60) + .glide__caption Go + .glide__slide + img(src="assets/logos/grafana.jpg", alt="DocSearch + Grafana", width=60) + .glide__caption Grafana + .glide__slide + img(src="assets/logos/graphql.jpg", alt="DocSearch + GraphQL", width=60) + .glide__caption GraphQL + .glide__slide + img(src="assets/logos/jekyll.jpg", alt="DocSearch + Jekyll", width=60) + .glide__caption Jekyll + .glide__slide + img(src="assets/logos/netlify.jpg", alt="DocSearch + Netlify", width=60) + .glide__caption Netlify + .glide__slide + img(src="assets/logos/paypal.jpg", alt="DocSearch + Paypal", width=60) + .glide__caption Paypal + .glide__slide + img(src="assets/logos/postman.jpg", alt="DocSearch + Postman", width=60) + .glide__caption Postman + .glide__slide + img(src="assets/logos/react.jpg", alt="DocSearch + React", width=60) + .glide__caption React + .glide__slide + img(src="assets/logos/scala.jpg", alt="DocSearch + Scala", width=60) + .glide__caption Scala + .glide__slide + img(src="assets/logos/serverless.jpg", alt="DocSearch + Serverless", width=60) + .glide__caption Serverless + .glide__slide + img(src="assets/logos/socketio.jpg", alt="DocSearch + Socket.io" , width=60) + .glide__caption Socket.io + .glide__slide + img(src="assets/logos/stripe.jpg", alt="DocSearch + Stripe", width=60) + .glide__caption Stripe + .glide__slide + img(src="assets/logos/trello.jpg", alt="DocSearch + Trello", width=60) + .glide__caption Trello + .glide__slide + img(src="assets/logos/vue.jpg", alt="DocSearch + Vue", width=60) + .glide__caption Vue + .glide__slide + img(src="assets/logos/webpack.jpg", alt="DocSearch + Webpack", width=60) + .glide__caption Webpack + .glide__slide + img(src="assets/logos/yarn.jpg", alt="DocSearch + Yarn", width=60) + .glide__caption Yarn + + .max-w-md.m-auto.text-center + h2.text-solstice.text-5.normal.pb-2 State-of-the-art search for technical documentation + p.text-3.pb-1.text-telluric We're kind of scratching our own itch here. As developers, we spend a lot of time reading documentation, and it isn’t always easy to find the information we need. + p.text-3.pb-2.text-telluric No one's to blame, building a good search is a complex challenge. We just happen to have a lot of experience doing that, and we want to share it with the developer community. + + .max-w-xl.m-auto.pt-3.mb-2 + .demo-header-wrapper + .docsearch-live-demo-input-wrapper + input.docsearch-live-demo-input + .demo-content-wrapper + + .px-2.bg-analytics + .max-w-xl.m-auto.text-center.mb-2 + .max-w-md.m-auto.mb-3 + .text-solstice.text-5.normal.pb-2 Learn-as-you-type experience + .pb-1.text-3.leading-2 Documentation speaks to your users. Ideally, this conversation will be pleasant and efficient. Everyone visiting your documentation page has a different need: Some are exploring your product, some are trying to get started, and some are stuck and need help. + .text-3.leading-2 DocSearch is designed to provide relevant search results at every level. Its strutured layout give the users more context to understand the product. + .max-w-xl.m-auto + img.hidden.md_block(src="assets/docsearch-UI-anatomy.png", alt="Anatomy of DocSearch UI") + + .max-w-lg.m-auto.mb-2 + .flex.flrw + .fln.w-100.md_w-40.text-center + img(src="assets/illus-analytics.svg", alt="DocSearch Analytics", width=400) + .fln.w-100.md_w-50.px-1.md_pt-3.mb-3 + .text-solstice.text-5.normal.pb-2.text-center.md_text-left Powerful Analytics with Algolia + .text-3.leading-2.text-center.md_text-left.pb-1 Search usage of your documentation gives you unvaluable insights about what your users need to ramp up their knowledge of your product. + .text-3.leading-2.text-center.md_text-left Follow metrics of popular queries, no results or click position to better optimize your content. + + .max-w-xl.m-auto + h2.text-solstice.text-5.normal.pb-2.text-center.mb-1 How it works + img(src="assets/docsearch-how-it-works.png", alt="how DocSearch works") + .max-w-lg.m-auto + .flex.flrw + .fln.w-100.md_w-33.px-2.p-2 + h3.pb-1.text-3.leading-2 We crawl your documentation pages + p.text-1.leading-2 We built a website crawler designed to index every section of your documentation. + p.text-1.leading-2 Just send us the URL of your documentation, and we’ll run the crawler every 24h so you’re always up-to-date. + .fln.w-100.md_w-33.px-2.p-2 + h3.pb-1.text-3.leading-2 We configure your search experience + p.text-1.leading-2 You don’t need to configure any settings or even have an Algolia account. + p.text-1.leading-2 We take care of all of this automatically to ensure the best documentation search experience. + .fln.w-100.md_w-33.px-2.p-2 + h3.pb-1.text-3.leading-2 You add the search autocomplete to your UI + p.text-1.leading-2 We’ll send you the script so you can integrate Algolia autocomplete to power your search. + p.text-1.leading-2 You will receive the same speed, relevance and best-in-class UX as our paying customers. + + .max-w-xl.m-auto.mt-3.px-1.pb-3 + .text-solstice.text-5.normal.pb-2.text-center Try it live + .pb-2.text-3.leading-2.text-center We helped integrate DocSearch into several open source projects. Have a look. + .flex.flrw + .fln.w-100.sm_w-50.md_w-25.p-1.flex.flrnw + a.c-card.custom-demo.fla.flex.flcnw.p-05(href='http://getbootstrap.com/docs/4.1/getting-started/introduction/') + .fln.flc.relative.text-0.max-w-5.m-auto + img(src='assets/demos/example-bootstrap.gif', alt='Bootstrap') + .fln.pt-1.flex.flrnw.flc + .fln.text-0 + img.h-2(src='assets/logos/bootstrap.jpg', alt='Bootstrap') + .fla.pl-1.text-solstice.uppercase.bold Bootstrap + .fln.w-100.sm_w-50.md_w-25.p-1.flex.flrnw + a.c-card.custom-demo.fla.flex.flcnw.p-05(href='https://vuejs.org/v2/guide/') + .fln.flc.relative.text-0.max-w-5.m-auto + img(src='assets/demos/example-vuejs.gif', alt='Vue') + .fln.pt-1.flex.flrnw.flc + .fln.text-0 + img.h-2(src='assets/logos/vue.jpg', alt='Vue') + .fla.pl-1.text-solstice.uppercase.bold Vue + .fln.w-100.sm_w-50.md_w-25.p-1.flex.flrnw + a.c-card.custom-demo.fla.flex.flcnw.p-05(href='https://reactjs.org/docs/getting-started.html') + .fln.flc.relative.text-0.max-w-5.m-auto + img(src='assets/demos/example-react.gif', alt='React') + .fln.pt-1.flex.flrnw.flc + .fln.text-0 + img.h-2(src='assets/logos/react.jpg', alt='React') + .fla.pl-1.text-solstice.uppercase.bold React + .fln.w-100.sm_w-50.md_w-25.p-1.flex.flrnw + a.c-card.custom-demo.fla.flex.flcnw.p-05(href='https://stripe.com/docs') + .fln.flc.relative.text-0.max-w-5.m-auto + img(src='assets/demos/example-stripe.gif', alt='Stripe') + .fln.pt-1.flex.flrnw.flc + .fln.text-0 + img.h-2(src='assets/logos/stripe.jpg', alt='Stripe') + .fla.pl-1.text-solstice.uppercase.bold Stripe + + .relative.bg-white-pure + .bg-footer + .relative.max-w-sm.m-auto.mt-2.z-2 + .max-w-md.m-auto.py-3 + .text-5.normal.pb-2.text-white.text-center Get started + .pb-1.text-3.leading-2.text-white.text-center We’ll get back to you with everything you need to integrate your new search into your website. + .text-3.leading-2.text-white.text-center Oh, and did we mention it's FREE? + .text-3.leading-2.text-white.text-center No commitment. No subscription. Everything is on us! + .block.pt-3(id="join-docsearch-program") + include ../_includes/apply-form.pug + + .text-center.mt-2 + .text-1.mb-3.leading-2 + span.block.mb-1.sm_inline.whitespace-no-wrap DocSearch 2015-2018 + span.block.hidden.sm_inline.mx-1 • + span.block.sm_inline.whitespace-no-wrap Designed and built by + a(href="https://www.algolia.com/") + img.align-top.pl-05(src="assets/algolia-logo.svg", alt="search by Algolia", width=100) + ul.list-reset.inline-block.text-2.mb-3 + li.p-1.w-100.md_w-auto.inline-block + a(href="https://github.com/algolia/docsearch/blob/master/LICENSE") Code licensed under MIT + li.p-1.w-100.md_w-auto.inline-block + a(href="https://github.com/algolia/docsearch") Github + li.p-1.w-100.md_w-auto.inline-block + a(href="https://github.com/algolia/docsearch/issues") Issues + li.p-1.w-100.md_w-auto.inline-block + a(href="https://github.com/algolia/docsearch/blob/master/CHANGELOG.md") Changelog + li.p-1.w-100.md_w-auto.inline-block + a(href="https://discourse.algolia.com/tags/docsearch") Community Forum + li.p-1.w-100.md_w-auto.inline-block + a(href="https://discord.gg/qqCWs99") Discord + + //include ../_includes/newsletter.pug + + .my-popper + .popper__arrow(x-arrow='right') + img(src='https://docsearch-shared.netlify.com/docsearch-logo.png', alt='DocSearch', width=200) + p + | Try to search for expressions like + a.ds-sample-query(data-sample='grid', href='#') grid + | , + a.ds-sample-query(data-sample='form group', href='#') form group + | or + a.ds-sample-query(data-sample='invisble', href='#') invisble + | (sic) . diff --git a/docs/src/_layouts/main.pug b/docs/src/_layouts/main.pug new file mode 100644 index 00000000..8fe5240a --- /dev/null +++ b/docs/src/_layouts/main.pug @@ -0,0 +1,36 @@ +doctype html +html(lang='en') + head + - const siteTitle = current.title || site.title + - const siteDescription = site.description; + - const siteUrl = site.url; + - const ogImage = siteUrl + '/assets/og_image.png'; + meta(charset='utf-8') + meta('http-equiv'='x-ua-compatible',content='ie-edge') + title= siteTitle + meta(name='viewport', content='width=device-width, initial-scale=1, shrink-to-fit=no') + meta(name='description', content=siteDescription) + meta(name='twitter:card', content='summary_large_image') + meta(name='twitter:site', content='@Algolia') + meta(name='twitter:creator', content='@Algolia') + meta(property='og:url', content=siteUrl) + meta(property='og:title', content=siteTitle) + meta(property='og:description', content=siteDescription) + meta(property='og:image', content=ogImage) + link(rel="shortcut icon", href="./favicon.ico") + link(rel="icon", type="image/x-icon", sizes="16x16 32x32", href="favicon.ico") + link(href="https://fonts.googleapis.com/css?family=Hind:400,600|Poppins:700", rel="stylesheet") + link(type="text/css", rel="stylesheet", href="./style.css") + link(type="text/css", rel="stylesheet", href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css") + link(type="text/css", rel="stylesheet", href="https://unpkg.com/@glidejs/glide@3.2.3/dist/css/glide.core.min.css") + body.hind.text-telluric.bg-white + include ../_includes/tag-manager-noscript.pug + include ../_includes/header.pug + .mt-3 + block content + + script(src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js") + script(src="js/main.js") + block script + + include ../_includes/tag-manager.pug diff --git a/docs/src/_layouts/redirect.pug b/docs/src/_layouts/redirect.pug new file mode 100644 index 00000000..9223f392 --- /dev/null +++ b/docs/src/_layouts/redirect.pug @@ -0,0 +1,10 @@ +doctype html +html + meta(charset='utf-8') + title Redirecting… + link(rel="canonical", href=redirectTo) + script!=`window.location.assign("${redirectTo}")` + meta("http-equiv"='refresh', content="0", url=redirectTo) + meta(name="robots", content="noindex") + h1 Redirecting… + a(href=redirectTo) Click here if you're not redirected diff --git a/docs/src/_layouts/styleguide.pug b/docs/src/_layouts/styleguide.pug new file mode 100644 index 00000000..acfc646a --- /dev/null +++ b/docs/src/_layouts/styleguide.pug @@ -0,0 +1,4 @@ +extends main.pug + +block content + diff --git a/docs/src/_layouts/two-columns.pug b/docs/src/_layouts/two-columns.pug new file mode 100644 index 00000000..01f3b3ad --- /dev/null +++ b/docs/src/_layouts/two-columns.pug @@ -0,0 +1,50 @@ +extends main.pug + +block script + script(src="js/docs.js") + +block nav + .hidden.md_flex.justify-start.items-center.mx-1 + a.h-1x.w-1x.text-solstice.fill-current.items-center.hover_text-grey-darker.mr-1(href=site.repo, target="_blank") + include ../assets/icons/github.svg + + .md_hidden.flex.justify-start.items-center.mx-2 + button.custom-toggle-nav.text-solstice.items-center.hover_text-grey-darker.focus_outline-none + svg.align-text-bottom.navigation-open.h-1x.w-1x.fill-current(role="button", xmlns="http://www.w3.org/2000/svg", viewBox="0 0 20 20") + path(d="M0 3h20v2H0V3zm0 6h20v2H0V9zm0 6h20v2H0v-2z") + svg.align-text-bottom.navigation-close.hidden.h-1x.w-1x.fill-current(role="button", xmlns="http://www.w3.org/2000/svg", viewBox="0 0 20 20") + path(d="M10 8.586L2.929 1.515 1.515 2.929 8.586 10l-7.071 7.071 1.414 1.414L10 11.414l7.071 7.071 1.414-1.414L11.414 10l7.071-7.071-1.414-1.414L10 8.586z") + +block content + .bgtb-moon-white-pure.relative + .md_flex.max-w-lg.m-auto + .navigation-sidebar.sticky.pin-t.top-3.h-100vh-3.overflow-y-auto.hidden.md_block.bg-white + // Adding subsections from markdown + .pt-2.w-5.m-auto.sm_flex.sm_w-90.md_block.md_w-100 + each category in sidebar + .flcnw.flspa.sm_flex-auto.sm_w-33.sm_p-1.md_w-100.md_p-0 + .category.text-nebula.poppins.uppercase.mb-1.text-2=category.title + ul.list-reset.text-1.mb-1.md_ml-0x + each page in category.pages + - var isCurrent = current.url === page.url + - var additionalClasses = isCurrent ? 'current-page text-nebula' : 'text-solstice' + li + a.block.py-0x(href=page.url, class=additionalClasses)=page.title + - var hasSubLinks = (page.headings && page.headings.length) + if hasSubLinks + ul.list-reset.pl-1.text-1 + each heading in page.headings + li + a.block.py-0x.text-telluric.whitespace-pre(href=`${page.url}#${heading.anchor}`)=heading.title + + .documentation-content.text-2.pt-2.pb-1.px-2.w_100.md_w-75 + .block.md_hidden.mb-1 + a(href=site.url) DocSearch + span  >  + a(href=`${site.url}/what-is-docsearch.html`) Documentation + .custom-main-title.text-5.lg_text-7.uppercase.tracking-poppins.text-solstice.bold.mb-2=current.title + !=current.content + // Include the apply form + if current.includeForm + .mt-2 + include ../_includes/apply-form.pug diff --git a/docs/src/_styles/components.css b/docs/src/_styles/components.css new file mode 100644 index 00000000..d1edde28 --- /dev/null +++ b/docs/src/_styles/components.css @@ -0,0 +1,277 @@ +/* Buttons */ +.c-button { + @apply inline-flex px-1x flc; + @apply cursor-pointer select-none; + @apply rounded-100; + @apply font-semibold uppercase no-underline tracking-poppins text-telluric; + @apply shadow-button; + + /* Those dimensions are not in the Tailwind config scale */ + height: 2.625rem; + font-size: 0.9rem; + + background: linear-gradient(#fff, #e4e4e9); + transition: box-shadow 0.15s ease, transform 0.15s ease; + will-change: box-shadow, transform; +} +.c-button:hover, +.c-button:focus { + @apply shadow-button-up; + transform: translateY(-2px); + @apply no-underline; +} +.c-button:active { + @apply shadow-button-down; + @apply text-telluric; + transform: translateY(2px); +} + +.c-button-primary { + text-shadow: 0 1px 0 #4b5ef0; + background: linear-gradient(#aeb7ff, #5468ff); + @apply shadow-button-primary; + @apply text-white; +} +.c-button-primary:hover, +.c-button-primary:focus { + @apply shadow-button-primary-up; +} +.c-button-primary:active { + background-blend-mode: multiply, normal; + background-image: linear-gradient(#5468ff, #5468ff), + linear-gradient(to top, #fff, #e4e4e9); + @apply shadow-button-primary-down; + @apply text-white; +} + +/* Cards */ +.c-card { + background-image: linear-gradient(#fff, #f5f5fa); + @apply rounded-1 shadow-1; +} +.c-card:hover { + @apply no-underline; +} + +/* Backgrounds */ +.bg-docsearch-hero { + @apply bg-cover bg-no-repeat; + background-image: url("assets/bg-docsearch.svg"), + linear-gradient(#fff, #f5f5fa); + background-position: center calc(100% - 18px); +} + +.bg-analytics { + @apply bg-no-repeat; + background-image: url("assets/bg-analytics.svg"); + background-size: 1800px; + background-position: center 450px; +} + +.bg-footer { + @apply bg-cover bg-no-repeat; + @apply absolute pin-x z-1; + background-image: url("assets/bg-footer.svg"); + background-position: 100% 100%; + height: 500px; + +} + +/* Logo slider (gslide) */ +.glide__slide { + @apply text-center relative block; + margin: 3px 0; + min-height: 80px; + + .glide__caption { + display: inline-block; + position: relative; + background-color: #4f61ee; + color: white; + margin: 8px auto 0; + padding: 3px 6px 1px; + border-radius: 4px; + top: -2px; + font-size: 13px; + width: auto; + opacity: 0; + transition: opacity 0.5s ease; + + &:before { + content: ""; + position: absolute; + border-color: #4f61ee; + border-width: 0 6px 6px 6px; + border-left-color: transparent; + border-right-color: transparent; + border-top-color: transparent; + top: -4px; + left: calc(50% - 6px); + margin-top: 0; + margin-bottom: 0; + } + } + &:hover .glide__caption { + opacity: 1; + } + img { + border-radius: 6px; + overflow: hidden; + display: inline-block; + max-width: 50px; + vertical-align: middle; + position: relative; + &:hover { + top: -1px; + box-shadow: 0 2px 4px 0 rgba(93, 100, 148, 0.2), + 0 5px 15px 0 rgba(37, 44, 97, 0.15); + } + } +} + +/* Live Demo */ +.docsearch-live-demo-input-wrapper { + margin-top: 5px; + margin-right: 8px; + float: right; + width: 50%; + max-width: 450px; + min-width: 250px; + + input, + form { + box-shadow: none !important; + width: 100%; + } +} + +.demo-header-wrapper { + height: 42px; + background: url("assets/bg-docsearch-live-demo-bootstrap.jpg") no-repeat; + background-color: #563e7c; + background-size: 1200px; + background-position: left top; +} + +.demo-content-wrapper { + height: 400px; + background: url("assets/bg-docsearch-live-demo-bootstrap.jpg") no-repeat; + background-size: 1200px; + background-position: center -46px; +} + +/* Tooltips (popper.js) */ +.my-popper { + padding: 24px; + min-width: 350px; + max-width: 48%; + margin: 0 auto; + background: #ffffff; + box-shadow: 0 8px 18px 0 rgba(37, 44, 97, 0.15), + 0 2px 4px 0 rgba(93, 100, 148, 0.2); + font-size: 14px; + color: #8a8aab; + line-height: 28px; + text-align: center; + background-image: linear-gradient(#fff, #f5f5fa); + border-radius: 2px; + border-top: solid 3px #5468ff; +} + +.my-popper .popper__arrow { + width: 0; + height: 0; + border-style: solid; + position: absolute; + margin: 8px; +} + +.my-popper .popper__arrow { + border-color: white; +} + +.my-popper[x-placement^="bottom"] { + margin-top: 8px; +} + +.my-popper[x-placement^="bottom"] .popper__arrow { + border-width: 0 8px 8px 8px; + border-left-color: transparent; + border-right-color: transparent; + border-top-color: transparent; + top: -8px; + left: calc(50% - 8px); + margin-top: 0; + margin-bottom: 0; +} + +/* Forms */ +.control-label { + display: inline-block; + margin-bottom: 4px; + font-weight: bold; + text-transform: uppercase; +} + +.form-control { + @apply rounded-auto; + border: solid 1px #dbdbe7; + @apply p-1; + width: 100%; +} + +.form-control-primary { + background: #ffffff; + box-shadow: 0 2px 0 0 rgba(255, 255, 255, 0.8), + inset 0 2px 9px 0 rgba(93, 100, 148, 0.3); + border-radius: 24px; + height: 42px; + padding: 0 16px; +} + +.elevation { + background-image: linear-gradient(0deg, #f5f5fa 0%, #ffffff 100%); + box-shadow: 0 2px 4px 0 rgba(93, 100, 148, 0.2), + 0 5px 15px 0 rgba(37, 44, 97, 0.15); + border-radius: 5px; +} + +/* Custom styles */ +.custom-community-projects { + width: 400px; + opacity: 0; + pointer-events: none; + transition-property: opacity; + transition-duration: 0.25s; + will-change: opacity; +} +.custom-community-link:hover .custom-community-projects { + opacity: 1; + pointer-events: auto; +} + +/** + * When we need to show code in action, we often need to show screenshots or + * screencasts. This class will still an element to make it look like a browser + * window. + **/ +.fake-browser { + padding: 24px 1px 1px 1px; + @apply bg-grey; + border-radius: 6px; + position: relative; + overflow: hidden; + &:before { + content: ""; + position: absolute; + top: 6px; + left: 16px; + @apply bg-red; + display: block; + border-radius: 50%; + width: 14px; + height: 14px; + box-shadow: 25px 0 0 rgba(58, 178, 189, 0.5), + 50px 0 0 rgba(236, 139, 99, 0.5); + } +} diff --git a/docs/src/_styles/debug.css b/docs/src/_styles/debug.css new file mode 100644 index 00000000..acd70720 --- /dev/null +++ b/docs/src/_styles/debug.css @@ -0,0 +1,87 @@ +/* Debug utilities */ +.debug, +.debug * { + outline: 1px solid blue; +} +.debug:before { + content: "N/A"; + @apply absolute pin-t pin-l; + @apply bg-neptune-2 bold text-white; + @apply p-0x; +} +@screen sm { + .debug, + .debug * { + outline: 1px solid teal; + } + .debug:before { + content: "sm"; + @apply bg-mercury-2; + } +} +@screen md { + .debug, + .debug * { + outline: 1px solid orange; + } + .debug:before { + content: "md"; + @apply bg-saturn-2; + } +} +@screen lg { + .debug, + .debug * { + outline: 1px solid red; + } + .debug:before { + content: "lg"; + @apply bg-mars-2; + } +} +@screen xl { + .debug, + .debug * { + outline: 1px solid pink; + } + .debug:before { + content: "xl"; + @apply bg-venus-2; + } +} + +/* See classes on hover */ +.debug-class *[class] { + outline: 1px solid green; + cursor: pointer; + &:before { + position: absolute; + margin-top: -2rem; + content: attr(class); + @apply .text-white .p-0x; + @apply .hidden; + @apply .bg-green; + } + &:hover { + &:before { + @apply .inline; + } + } + *[class] { + outline: 1px solid orange; + &:before { + @apply .bg-orange; + } + *[class] { + outline: 1px solid red; + &:before { + @apply .bg-red; + } + } + } +} + +/* Make images without alt pop for debug */ +img:not([alt]) { + filter: grayscale(100%); +} diff --git a/docs/src/_styles/docs.css b/docs/src/_styles/docs.css new file mode 100644 index 00000000..919004ba --- /dev/null +++ b/docs/src/_styles/docs.css @@ -0,0 +1,63 @@ +/* Content converted form markdown */ +.documentation-content { + /* max-width: 700px; */ + /* Paragraphs */ + p { + @apply .leading-2 my-1; + } + ul { + @apply .leading-2 my-1; + } + /* Titles */ + h2 { + @apply .text-solstice .text-4 .normal; + @apply .mb-1 .mt-2; + /* Trick to have heading scroll into view and not being hidden by header */ + &:before { + content: ""; + @apply hidden .h-3; + } + &:target:before { + @apply block; + } + .anchor { + @apply .hidden; + &:after { + content: "#"; + } + } + &:hover .anchor { + @apply .inline-block; + } + } + h3 { + @apply .text-nebula .text-3 .normal; + @apply .mb-1 .mt-2; + /* Trick to have heading scroll into view and not being hidden by header */ + &:before { + content: ""; + @apply hidden .h-3; + } + &:target:before { + @apply block; + } + .anchor { + @apply .hidden; + &:after { + content: "#"; + } + } + &:hover .anchor { + @apply .inline-block; + } + } +} + +.navigation-sidebar{ + min-width: 200px; +} + +body.navigation-menu-open { + max-width: 100%; + overflow: hidden; +} diff --git a/docs/src/_styles/docsearch.css b/docs/src/_styles/docsearch.css new file mode 100644 index 00000000..6eee63aa --- /dev/null +++ b/docs/src/_styles/docsearch.css @@ -0,0 +1,25 @@ +/* Change the width of the parent element when the input is focused */ +.custom-search-wrapper { + transition: width 0.15s ease; + will-change: width; +} +.custom-search-wrapper:focus-within { + width: 100%; +} +/* Wrapper added by DocSearch */ +/* purgecss start ignore */ +.algolia-autocomplete { + @apply w-100; +} +/* purgecss end ignore */ +/* Main search input */ +.custom-search-input { + padding-top: calc(0.5rem + 2px); + @apply .pb-05; +} +/* Dropdown menu */ +/* purgecss start ignore */ +.ds-dropdown-menu { + @apply w-100; +} +/* purgecss end ignore */ diff --git a/docs/src/_styles/fonts.css b/docs/src/_styles/fonts.css new file mode 100644 index 00000000..9b84733b --- /dev/null +++ b/docs/src/_styles/fonts.css @@ -0,0 +1,10 @@ +/* Fonts */ +.hind { + font-family: Hind, sans-serif; +} +.poppins { + font-family: Poppins, sans-serif; +} +.code { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; +} diff --git a/docs/src/_styles/highlight.css b/docs/src/_styles/highlight.css new file mode 100644 index 00000000..c8aa4914 --- /dev/null +++ b/docs/src/_styles/highlight.css @@ -0,0 +1,39 @@ +pre code.hljs { + @apply block p-1 mt-1 rounded-auto leading-2; + @apply overflow-x-auto; + @apply .bg-cosmos text-proton; + .hljs-name { + color: #a6e22e; + } + .hljs-tag { + color: #a6e22e; + } + .hljs-string { + color: #e6db74; + } + .hljs-keyword { + @apply .text-saturn-2; + } + .hljs-comment { + @apply text-telluric; + } + .hljs-attr { + @apply .text-saturn; + } + .hljs-params { + color: #3ab2bd; + } + .hljs-number { + @apply .text-jupiter; + } + .hljs-literal { + @apply .text-nebula; + } + /* CSS */ + .hljs-selector-class { + @apply .text-saturn-2; + } + .hljs-attribute { + @apply .text-saturn; + } +} diff --git a/docs/src/_styles/tailwind.css b/docs/src/_styles/tailwind.css new file mode 100644 index 00000000..596cce6e --- /dev/null +++ b/docs/src/_styles/tailwind.css @@ -0,0 +1,3 @@ +@tailwind preflight; +@tailwind components; +@tailwind utilities; diff --git a/docs/src/apply.md b/docs/src/apply.md new file mode 100644 index 00000000..2247cead --- /dev/null +++ b/docs/src/apply.md @@ -0,0 +1,10 @@ +--- +layout: two-columns +title: Applying to DocSearch +includeForm: true +--- + +__Please make sure you [read the checklist][1] before applying.__ + + +[1]: who-can-apply.html diff --git a/docs/src/assets/algolia-logo.svg b/docs/src/assets/algolia-logo.svg new file mode 100644 index 00000000..61d79ddc --- /dev/null +++ b/docs/src/assets/algolia-logo.svg @@ -0,0 +1,8 @@ + diff --git a/docs/src/assets/bg-analytics.svg b/docs/src/assets/bg-analytics.svg new file mode 100644 index 00000000..46ce9248 --- /dev/null +++ b/docs/src/assets/bg-analytics.svg @@ -0,0 +1,27 @@ + + + + bg-analytics + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/src/assets/bg-docsearch-live-demo-bootstrap.jpg b/docs/src/assets/bg-docsearch-live-demo-bootstrap.jpg new file mode 100644 index 00000000..3cad0403 Binary files /dev/null and b/docs/src/assets/bg-docsearch-live-demo-bootstrap.jpg differ diff --git a/docs/src/assets/bg-docsearch.svg b/docs/src/assets/bg-docsearch.svg new file mode 100644 index 00000000..8383768b --- /dev/null +++ b/docs/src/assets/bg-docsearch.svg @@ -0,0 +1,72 @@ + + + + bg-docsearch + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/src/assets/bg-footer.svg b/docs/src/assets/bg-footer.svg new file mode 100644 index 00000000..ea96c4ff --- /dev/null +++ b/docs/src/assets/bg-footer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/src/assets/community/angular-icon.svg b/docs/src/assets/community/angular-icon.svg new file mode 100644 index 00000000..dba47603 --- /dev/null +++ b/docs/src/assets/community/angular-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/src/assets/community/community-logo.svg b/docs/src/assets/community/community-logo.svg new file mode 100644 index 00000000..877b5633 --- /dev/null +++ b/docs/src/assets/community/community-logo.svg @@ -0,0 +1,15 @@ + + + + community-logo + Created with Sketch. + + + \ No newline at end of file diff --git a/docs/src/assets/community/instantsearch-icon.svg b/docs/src/assets/community/instantsearch-icon.svg new file mode 100644 index 00000000..ce30c4d0 --- /dev/null +++ b/docs/src/assets/community/instantsearch-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/src/assets/community/jekyll-icon.svg b/docs/src/assets/community/jekyll-icon.svg new file mode 100644 index 00000000..10c602d2 --- /dev/null +++ b/docs/src/assets/community/jekyll-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/src/assets/community/old_community-logo.svg b/docs/src/assets/community/old_community-logo.svg new file mode 100644 index 00000000..af6892ca --- /dev/null +++ b/docs/src/assets/community/old_community-logo.svg @@ -0,0 +1,13 @@ + + Algolia Community Logo + + + + + + + + + + + diff --git a/docs/src/assets/community/react-icon.svg b/docs/src/assets/community/react-icon.svg new file mode 100644 index 00000000..b2258430 --- /dev/null +++ b/docs/src/assets/community/react-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/src/assets/community/talksearch-icon.svg b/docs/src/assets/community/talksearch-icon.svg new file mode 100644 index 00000000..a379355f --- /dev/null +++ b/docs/src/assets/community/talksearch-icon.svg @@ -0,0 +1,16 @@ + + + + talksearch-icon + Created with Sketch. + + + + + + + + + + + \ No newline at end of file diff --git a/docs/src/assets/community/vue-icon.svg b/docs/src/assets/community/vue-icon.svg new file mode 100644 index 00000000..0d0b5ccf --- /dev/null +++ b/docs/src/assets/community/vue-icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/docs/src/assets/default-colorscheme.png b/docs/src/assets/default-colorscheme.png new file mode 100644 index 00000000..97cb603e Binary files /dev/null and b/docs/src/assets/default-colorscheme.png differ diff --git a/docs/src/assets/demos/example-bootstrap.gif b/docs/src/assets/demos/example-bootstrap.gif new file mode 100644 index 00000000..13654e7c Binary files /dev/null and b/docs/src/assets/demos/example-bootstrap.gif differ diff --git a/docs/src/assets/demos/example-react.gif b/docs/src/assets/demos/example-react.gif new file mode 100644 index 00000000..a3fa153b Binary files /dev/null and b/docs/src/assets/demos/example-react.gif differ diff --git a/docs/src/assets/demos/example-stripe.gif b/docs/src/assets/demos/example-stripe.gif new file mode 100644 index 00000000..979254d5 Binary files /dev/null and b/docs/src/assets/demos/example-stripe.gif differ diff --git a/docs/src/assets/demos/example-vuejs.gif b/docs/src/assets/demos/example-vuejs.gif new file mode 100644 index 00000000..84a133ca Binary files /dev/null and b/docs/src/assets/demos/example-vuejs.gif differ diff --git a/docs/src/assets/docsearch-UI-anatomy.png b/docs/src/assets/docsearch-UI-anatomy.png new file mode 100644 index 00000000..c3147c5a Binary files /dev/null and b/docs/src/assets/docsearch-UI-anatomy.png differ diff --git a/docs/src/assets/docsearch-how-it-works.png b/docs/src/assets/docsearch-how-it-works.png new file mode 100644 index 00000000..f857f2eb Binary files /dev/null and b/docs/src/assets/docsearch-how-it-works.png differ diff --git a/docs/src/assets/docsearch-logo.svg b/docs/src/assets/docsearch-logo.svg new file mode 100644 index 00000000..d31cfb9c --- /dev/null +++ b/docs/src/assets/docsearch-logo.svg @@ -0,0 +1,33 @@ + + + + docsearch-logo + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/docs/src/assets/docsearch-mark.svg b/docs/src/assets/docsearch-mark.svg new file mode 100644 index 00000000..8f683ac9 --- /dev/null +++ b/docs/src/assets/docsearch-mark.svg @@ -0,0 +1,22 @@ + + + + docsearch-mark + Created with Sketch. + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/src/assets/icons/arrow-separator.svg b/docs/src/assets/icons/arrow-separator.svg new file mode 100644 index 00000000..b82d0dc0 --- /dev/null +++ b/docs/src/assets/icons/arrow-separator.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/src/assets/icons/github.svg b/docs/src/assets/icons/github.svg new file mode 100644 index 00000000..95b3236b --- /dev/null +++ b/docs/src/assets/icons/github.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/algolia-frontend-components/images/search-icon.svg b/docs/src/assets/icons/magnifying-glass.svg old mode 100755 new mode 100644 similarity index 55% rename from docs/algolia-frontend-components/images/search-icon.svg rename to docs/src/assets/icons/magnifying-glass.svg index 5cc1c1d1..86d55d05 --- a/docs/algolia-frontend-components/images/search-icon.svg +++ b/docs/src/assets/icons/magnifying-glass.svg @@ -1,4 +1,3 @@ - - Open search input - + + diff --git a/docs/src/assets/illus-analytics.svg b/docs/src/assets/illus-analytics.svg new file mode 100644 index 00000000..bd68d338 --- /dev/null +++ b/docs/src/assets/illus-analytics.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/src/assets/illus-analytics_old.svg b/docs/src/assets/illus-analytics_old.svg new file mode 100644 index 00000000..e1526955 --- /dev/null +++ b/docs/src/assets/illus-analytics_old.svg @@ -0,0 +1,129 @@ + + + + illus-analytics + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/src/assets/logo-small.png b/docs/src/assets/logo-small.png new file mode 100644 index 00000000..166e6b7b Binary files /dev/null and b/docs/src/assets/logo-small.png differ diff --git a/docs/src/assets/logos/babel.jpg b/docs/src/assets/logos/babel.jpg new file mode 100644 index 00000000..e58c5bbd Binary files /dev/null and b/docs/src/assets/logos/babel.jpg differ diff --git a/docs/src/assets/logos/bootstrap.jpg b/docs/src/assets/logos/bootstrap.jpg new file mode 100644 index 00000000..04d1b095 Binary files /dev/null and b/docs/src/assets/logos/bootstrap.jpg differ diff --git a/docs/src/assets/logos/circleio.jpg b/docs/src/assets/logos/circleio.jpg new file mode 100644 index 00000000..e3e1f040 Binary files /dev/null and b/docs/src/assets/logos/circleio.jpg differ diff --git a/docs/src/assets/logos/cordova.jpg b/docs/src/assets/logos/cordova.jpg new file mode 100644 index 00000000..e76d9b36 Binary files /dev/null and b/docs/src/assets/logos/cordova.jpg differ diff --git a/docs/src/assets/logos/electron.jpg b/docs/src/assets/logos/electron.jpg new file mode 100644 index 00000000..6e1ce4ef Binary files /dev/null and b/docs/src/assets/logos/electron.jpg differ diff --git a/docs/src/assets/logos/ember.jpg b/docs/src/assets/logos/ember.jpg new file mode 100644 index 00000000..bd6711e0 Binary files /dev/null and b/docs/src/assets/logos/ember.jpg differ diff --git a/docs/src/assets/logos/eslint.jpg b/docs/src/assets/logos/eslint.jpg new file mode 100644 index 00000000..fdde6f64 Binary files /dev/null and b/docs/src/assets/logos/eslint.jpg differ diff --git a/docs/src/assets/logos/gitlab.jpg b/docs/src/assets/logos/gitlab.jpg new file mode 100644 index 00000000..aaa06d00 Binary files /dev/null and b/docs/src/assets/logos/gitlab.jpg differ diff --git a/docs/src/assets/logos/go.jpg b/docs/src/assets/logos/go.jpg new file mode 100644 index 00000000..4a3a82b4 Binary files /dev/null and b/docs/src/assets/logos/go.jpg differ diff --git a/docs/src/assets/logos/grafana.jpg b/docs/src/assets/logos/grafana.jpg new file mode 100644 index 00000000..82f2017d Binary files /dev/null and b/docs/src/assets/logos/grafana.jpg differ diff --git a/docs/src/assets/logos/graphql.jpg b/docs/src/assets/logos/graphql.jpg new file mode 100644 index 00000000..248c7fa8 Binary files /dev/null and b/docs/src/assets/logos/graphql.jpg differ diff --git a/docs/src/assets/logos/jekyll.jpg b/docs/src/assets/logos/jekyll.jpg new file mode 100644 index 00000000..a5efe46d Binary files /dev/null and b/docs/src/assets/logos/jekyll.jpg differ diff --git a/docs/src/assets/logos/laravel.jpg b/docs/src/assets/logos/laravel.jpg new file mode 100644 index 00000000..9c022cf8 Binary files /dev/null and b/docs/src/assets/logos/laravel.jpg differ diff --git a/docs/src/assets/logos/netlify.jpg b/docs/src/assets/logos/netlify.jpg new file mode 100644 index 00000000..b30cc98f Binary files /dev/null and b/docs/src/assets/logos/netlify.jpg differ diff --git a/docs/src/assets/logos/paypal.jpg b/docs/src/assets/logos/paypal.jpg new file mode 100644 index 00000000..775d02e7 Binary files /dev/null and b/docs/src/assets/logos/paypal.jpg differ diff --git a/docs/src/assets/logos/postman.jpg b/docs/src/assets/logos/postman.jpg new file mode 100644 index 00000000..00074825 Binary files /dev/null and b/docs/src/assets/logos/postman.jpg differ diff --git a/docs/src/assets/logos/react.jpg b/docs/src/assets/logos/react.jpg new file mode 100644 index 00000000..2fdbe6ca Binary files /dev/null and b/docs/src/assets/logos/react.jpg differ diff --git a/docs/src/assets/logos/scala.jpg b/docs/src/assets/logos/scala.jpg new file mode 100644 index 00000000..81e8b8cc Binary files /dev/null and b/docs/src/assets/logos/scala.jpg differ diff --git a/docs/src/assets/logos/serverless.jpg b/docs/src/assets/logos/serverless.jpg new file mode 100644 index 00000000..c9c3354f Binary files /dev/null and b/docs/src/assets/logos/serverless.jpg differ diff --git a/docs/src/assets/logos/socketio.jpg b/docs/src/assets/logos/socketio.jpg new file mode 100644 index 00000000..02dbb74a Binary files /dev/null and b/docs/src/assets/logos/socketio.jpg differ diff --git a/docs/src/assets/logos/stripe.jpg b/docs/src/assets/logos/stripe.jpg new file mode 100644 index 00000000..674d0781 Binary files /dev/null and b/docs/src/assets/logos/stripe.jpg differ diff --git a/docs/src/assets/logos/symfony.jpg b/docs/src/assets/logos/symfony.jpg new file mode 100644 index 00000000..29861eae Binary files /dev/null and b/docs/src/assets/logos/symfony.jpg differ diff --git a/docs/src/assets/logos/trello.jpg b/docs/src/assets/logos/trello.jpg new file mode 100644 index 00000000..5424af95 Binary files /dev/null and b/docs/src/assets/logos/trello.jpg differ diff --git a/docs/src/assets/logos/vue.jpg b/docs/src/assets/logos/vue.jpg new file mode 100644 index 00000000..57083580 Binary files /dev/null and b/docs/src/assets/logos/vue.jpg differ diff --git a/docs/src/assets/logos/webpack.jpg b/docs/src/assets/logos/webpack.jpg new file mode 100644 index 00000000..6c54f96e Binary files /dev/null and b/docs/src/assets/logos/webpack.jpg differ diff --git a/docs/src/assets/logos/yarn.jpg b/docs/src/assets/logos/yarn.jpg new file mode 100644 index 00000000..6d8bec54 Binary files /dev/null and b/docs/src/assets/logos/yarn.jpg differ diff --git a/docs/src/assets/og_image.png b/docs/src/assets/og_image.png new file mode 100644 index 00000000..f08ec34f Binary files /dev/null and b/docs/src/assets/og_image.png differ diff --git a/docs/src/assets/playground.png b/docs/src/assets/playground.png new file mode 100644 index 00000000..e6388e60 Binary files /dev/null and b/docs/src/assets/playground.png differ diff --git a/docs/src/behavior.md b/docs/src/behavior.md new file mode 100644 index 00000000..5b3973cf --- /dev/null +++ b/docs/src/behavior.md @@ -0,0 +1,113 @@ +--- +layout: two-columns +title: Dropdown Behavior +--- + +`docsearch.js` is a wrapper around the [autocomplete.js][1] library. This +library will listen to keystrokes in the search input, query Algolia and display +the results in a dropdown. Everything is already configured for you to work with +DocSearch, but it also exposes configuration options you can use to go even +further. + +## `appId` + +If you're running the DocSearch crawler yourself, you'll need to define your +application ID using the `appId` key. If you're using the free hosted version, +you don't need to add anything. + +```javascript +docsearch({ + appId: '', + […], +}); +``` + +## `handleSelected` + +This method is called when a suggestion is selected. By default, DocSearch will +redirect the browser to the page matching part of the page, but you can override +it to add your own behavior. + +The method is called with three arguments: +- `input`, a reference to the search `input` element. It comes with the `.open()`, + `.close()`, `.getVal()` and `.setVal()` methods. +- `event`, the actual event triggering the selection. This can come from a click + or a keyboard navigation. +- `suggestion`, the object representing the current selection. + +```javascript +docsearch({ + […], + handleSelected: function(input, event, suggestion) { + } +}); +``` + +## `queryHook` + +This method will be called on every keystroke to transform the typed keywords +before sending them to Algolia. By default, it does not do anything, but we +provide this hook for you to add your own logic if you want. + +```javascript +docsearch({ + […], + queryHook: function(query) { + // Transform query, and then return the updated version + } +}); +``` + +## `transformData` + +This method will be called on all suggestions before displaying them. It +doesn't do anything by default, but we provide this hook if you want to add your +own logic. + +```javascript +docsearch({ + […], + transformData: function(suggestions) { + // Transform the list of suggestions, and the return the updated list + } +}); +``` + +## `autocompleteOptions` + +You can pass any option to the underlying `autocomplete.js` instance by using +the `autocompleteOptions` parameter. You will find all the list of all available +value in its [the official documentation][2]. + +You can also listen to `autocomplete` events through the `.autocomplete` +property of the `docsearch` instance. + +```javascript +const search = docsearch({ + […] + autocompleteOptions: { + // See https://github.com/algolia/autocomplete.js#options + } +}); + +// See https://github.com/algolia/autocomplete.js#custom-events +search.autocomplete.on('autocomplete:opened', event => { +}); +``` + +## `algoliaOptions` + +You can pass options to the Algolia API by using the `algoliaOptions` +key. You will find all Algolia API options in their [own documentation][3]. + +```javascript +docsearch({ + algoliaOptions: { + // See https://www.algolia.com/doc/api-reference/api-parameters/ + } +}); +``` + +[1]: https://github.com/algolia/autocomplete.js +[2]: https://github.com/algolia/autocomplete.js#options +[3]: https://www.algolia.com/doc/api-reference/api-parameters/ diff --git a/docs/src/config-file.md b/docs/src/config-file.md new file mode 100644 index 00000000..4cb29bd4 --- /dev/null +++ b/docs/src/config-file.md @@ -0,0 +1,567 @@ +--- +layout: two-columns +title: Config Files +--- + +For each DocSearch request we receive, we'll create a custom JSON config file +that will define how the crawler should behave. You can find all the configs in +[this repository][1]. + +A DocSearch looks like this: + +```json +{ + "index_name": "example", + "start_urls": [ + "https://www.example.com/docs" + ], + "selectors": { + "lvl0": "#content header h1", + "lvl1": "#content article h1", + "lvl2": "#content section h3", + "lvl3": "#content section h4", + "lvl4": "#content section h5", + "lvl5": "#content section h6", + "text": "#content header p,#content section p,#content section ol" + }, +} +``` + +## ``index_name`` + +This is the name of the Algolia index where your records will be pushed. The +`apiKey` we will share with you will be restricted to work on this index. + +When using the free DocSearch crawler, the `indexName` will always be the name +of the config. If you're running DocSearch yourself, you can of course use any +name you'd like. + +```json +{ + "index_name": "example" +} +``` + +## `start_urls` + +This array contains the list of urls that will be used to start crawling your +website. The crawler will recursively follow any links on those pages. It will +not follow links that are on another domain and never follow links defined in `stop_urls`. + +```json +{ + "start_urls": [ + "https://www.example.com/docs" + ] +} +``` + +### Using regular expressions + +The `start_urls` option also allows for passing an object in place of a string, +to express more complex patterns. This object must contain a `url` key +containing the regular expression matching the url, as well as a `variables` key +that will be used to replace the named matches. + +The following example will make it clearer: + +```json +{ + "start_urls": [ + { + "url": "http://www.example.com/docs/(?P.*?)/(?P.*?)/", + "variables": { + "lang": ["en", "fr"], + "version": ["latest", "3.3", "3.2"] + } + } + ] +} +``` + +<<<<<<< HEAD +We mostly attribute it on our own regarding plenty of underlying factors. The `apiKey` that we provide is generated with a restriction on the `index_name`. Changing the `index_name` would require to ask for a new key. Thus if you want to **change the name**, please **submit a new configuration**, we will generate a new key accordingly. +### `start_urls` _Mandatory_ +You can pass either a string or an array of urls. The crawler will go to each +page in order, following every link it finds on the page. It will only stop if +the domain is outside of the `allowed_domains` or if the link is blacklisted from the `stop_urls`. + +Note that we currently do not follow *301* redirects. +======= +The beneficial side effect of using this syntax is that all records that will +then be extracted from crawling `http://www.example.com/docs/en/latest` will have +`lang: en` and `version: latest` added to it, allowing you to then filter based on +those values. + +The following example shows how you can filter results matching specifics +language and version from the front-end + +```js +docsearch({ + […], + algoliaOptions: { + 'facetFilters': ["lang:en", "version:latest"] + }, +}); +``` +>>>>>>> Updating config doc + +### Using custom tags + +You can also apply custom tags to some pages without the need to use regular +expressions. In that case, add the list of tags to the `tags` key. Note +that those tags will be automatically added as facets in Algolia, allowing you +to filter based on their values as well. + +```json +{ + "start_urls": [ + { + "url": "http://www.example.com/docs/concepts/", + "tags": ['concepts', 'terminology'] + } + ] +} +``` + +```js +docsearch({ + […], + algoliaOptions: { + 'facetFilters': ["tags:concepts"] + }, +}); +``` + +### Using Page Rank + +If you want to give more weight to some pages to boost their ranking in the +results, you can attribute a custom `page_rank` to specific urls. Pages with +highest `page_rank` will be returned before pages with a lower `page_rank`. Note +that you can pass any numeric value, including negative values. + +```json +{ + "start_urls": [ + { + "url": "http://www.example.com/docs/concepts/", + "page_rank": 5, + }, + { + "url": "http://www.example.com/docs/contributors/", + "page_rank": 1, + } + ] +} +``` + +In this example, results extracted from the _Concepts_ page will be ranked +higher than results extracted from the _Contributors_ page. + +### Using custom selectors per page + +If the markup of your website is so different from one page to another that you +can't have generic selectors, you can namespace your selectors and specify which +set of selectors should be applied to specific pages. + +```json +{ + "start_urls": [ + "http://www.example.com/docs/", + { + "url": "http://www.example.com/docs/concepts/", + "selectors_key": "concepts" + }, + { + "url": "http://www.example.com/docs/contributors/", + "selectors_key": "contributors" + } + ] + "selectors": { + "default": { + "lvl0": ".main h1", + "lvl1": ".main h2", + "lvl2": ".main h3", + "lvl3": ".main h4", + "lvl4": ".main h5", + "text": ".main p" + }, + "concepts": { + "lvl0": ".header h2", + "lvl1": ".main h1.title", + "lvl2": ".main h2.title", + "lvl3": ".main h3.title", + "lvl4": ".main h5.title", + "text": ".main p" + }, + "contributors": { + "lvl0": ".main h1", + "lvl1": ".contributors .name", + "lvl2": ".contributors .title", + "text": ".contributors .description" + } + } +} +``` + +<<<<<<< HEAD +### `start_urls.tags` + +Tags will be apllied to every record from the matchin matched pages, i.e., its URL is matchin the `url`. These `tags` will [be processed as `attributesForFaceting`](https://www.algolia.com/doc/api-reference/api-parameters/attributesForFaceting/) . If you want further detail, [check the original documentation](https://www.algolia.com/doc/api-reference/api-parameters/facetFilters/). +We do recommend to use `tags` if you want [to refine the scope of your search](https://www.algolia.com/doc/guides/searching/faceting/#faceting-overview). +======= +Here, all documentation pages will use the selectors defined in +`selectors.default` while the page under `./concepts` will use +`selectors.concepts` and those under `./contributors` will use +`selectors.contributors`. +>>>>>>> Updating config doc + +## `selectors` + +This object contains all the CSS selectors that will be used to create the +record hierarchy. It can contains up to 6 levels (`lvl0`, `lvl1`, `lvl2`, +`lvl3`, `lvl4`, `lvl5`) and `text`. + +A default config would be to target the page `title` or `h1` as `lvl0`, the `h2` +as `lvl1` and `h3` as `lvl2` and `p` as `text`, but this is highly dependent on +the markup. + +The `text` key is mandatory, but we highly recommend setting also `lvl0`, `lvl1` +and `lvl2` to have a decent level of relevance. + +```json +{ + "selectors": { + "lvl0": "#content header h1", + "lvl1": "#content article h1", + "lvl2": "#content section h3", + "lvl3": "#content section h4", + "lvl4": "#content section h5", + "lvl5": "#content section h6", + "text": "#content header p,#content section p,#content section ol" + }, +} +``` + +Selectors can be passed as string, or as objects containing a `selector` key. +Other special keys can be set, as documented below. + +```json +{ + "selectors": { + "lvl0": { + "selector": "#content header h1", + } + } +} +``` + +### Using global selectors + +The default way of extracting content through selectors is to read the HTML +markup from top to bottom. This works well with semi-structured content, like +a hierarchy of headers. This breaks when relevant information is not part of the +same node flow. For example when the title is in a header or a sidebar. + +For that reason, you can set a selector as global, meaning that it will match on +the whole page, and will be the same for all records extracted on this page. + +```json +{ + "selectors": { + "lvl0": { + "selector": "#content header h1", + "global": true + } + } +} +``` + +### Setting a default value + +If your selector might not match a valid element on the page, you can define +a `default_value` to fallback to. + +```json +{ + "selectors": { + "lvl0": { + "selector": "#content header h1", + "default_value": "Documentation" + } + } +} +``` + +### Removing unnecessary characters + +Some documentations add special characters to headings, like `#` or `›`. Those +characters have a stylistic value but no meaning and shouldn't be indexed in the +search results. + +You can define a list of characters you want to exclude from the final indexed +value by setting the `strip_chars` key. + +```json +{ + "selectors": { + "lvl0": { + "selector": "#content header h1", + "strip_chars": "#›" + } + } +} +``` + +Note that you can also define `strip_chars` directly at the root of the config +and it will be applied to all selectors. + +```json +{ + "strip_chars": "#›" +} +``` + +### Targeting elements using XPath instead of CSS + +CSS selectors are a clear and concise way to target elements of a page, but they +have a limitations. For example, you cannot go _up_ the cascade with CSS. + +If you need a more powerful selector mecanism, you can write your selectors +using XPath by setting `type: xpath`. You should also set `global: true` on the +same selector. + +The following example will look for a `li.chapter.active.done` and then go up +two levels in the DOM until it found a `a`. The content of this `a` will then be +used as the value of the `lvl0` selector. + +```json +{ + "selectors": { + "lvl0": { + "selector": "//li[@class=\"chapter active done\"]/../../a", + "type": "xpath", + "global": true + } + } +} +``` + +XPath selector can be hard to read. We highly encourage you to test them in your +browser first, making sure they match what you're expecting. + +## Other options + +### `custom_settings` _Optional_ + +This key can be used to overwrite your Algolia index settings. We don't +recommend changing it as the default settings are meant to work for all +websites. + +One use case would be to configure the `separatorsToIndex` setting. By default +Algolia will consider all special character as a word separator. In some contexts, like for method names, you might want `_`, `/` or `#` to keep their meaning. + +```json +{ + "custom_settings": { + "separatorsToIndex": "_/" + } +} +``` + +Check the [Algolia documentation][2] for more information on the settings. + + +### `min_indexed_level` _Optional_ + +The default value is `0`. By increasing it, you can chose to not index some +records if they don't have enough `lvlX` matching. For example, with +a `min_indexed_level: 2`, records that have at least `lvl0`, `lvl1` and +`lvl2` matching something will be indexed. + +This is useful when your documentation has pages that share the same `lvl0` and +`lvl1` for example. In that case, you don't want to index all the shared +records, but want to keep the one matching content that is different across +pages. + +```json +{ + "min_indexed_level": 2 +} +``` + +### `nb_hits` _Special_ + +`nb_hits` automatically updated by DocSearch every time it runs your config. It +is set to the number of records that were extracted and indexed. We check this +key internally to keep track of any unintended spike or drop that could reveal +a misconfiguration. + +You don't have to touch, we're documenting it here in case you were +wondering what this was about. + +### `only_content_level` _Optional_ + +When `only_content_level` is set to `true`, then the crawler won't create +records for each `lvlX` selectors, but only for the `text` selectors. + +If used, `min_indexed_level` is ignored. + +```json +{ + "only_content_level": true +} +``` + +### `scrape_start_urls` _Optional_ + +By default, the crawler will not extract content from the pages defined in +`starts_urls`. If you have valuable content on your homepage, you should set +this to `true`. + +```json +{ + "scrape_start_urls": true +} +``` + +### `selectors_exclude` _Optional_ + +This expects an array of CSS selectors. Any element matching one of those +selectors will be removed from the page before any data is extracted from it. + +This can be used to remove a table of content, a sidebar or a footer, to +make other selectors easier to write. + +```json +{ + "selectors_exclude": [ + ".footer", + "ul.deprecated" + ], +} +``` + +### `stop_urls` _Optional_ + +This an array of strings or regular expressions. Whenever the crawler is about +to visit a link, it will first check if the link matches something in the array. +If it does, it will not follow the link. This should be used to restrict pages +the crawler should visit. + +Note that this is often used to avoid duplicate content, by adding +`http://www.example.com/docs/index.html` if you already have +`http://www.example.com/docs/` as a `start_urls`. + +```json +{ + "stop_urls": [ + "https://www.example.com/docs/index.html", + "license.html" + ], +} +``` + +## Sitemaps + +If your website has a `sitemap.xml` file, you can let DocSearch know and it will +use it to define which pages to crawl. + +### `sitemap_urls` _Optional_ + +You can pass an array of urls pointing to your sitemap(s) files. If this value +is set, DocSearch will try to read urls from your sitemap(s) instead of +following every link of your `starts_urls`. + +```json +{ + "sitemap_urls": [ + "http://www.example.com/docs/sitemap.xml" + ], +} +``` + +### `sitemap_alternate_links` _Optional_ + +Sitemaps can contain _alternative links_ for urls. Those are other versions of +the same page, in a different language, or with a different url. By default +DocSearch will ignore those urls. + +Set this to `true` if you want those other version to be crawled as well. + +```json +{ + "sitemap_urls": [ + "http://www.example.com/docs/sitemap.xml" + ], + "sitemap_alternate_links": true +} +``` + +With the above config and the `sitemap.xml` below, both +`http://www.example.com/docs/` and `http://www.example.com/docs/de/` will be +crawled. + +``` + + http://www.example.com/docs/ + + +``` + +## JavaScript rendering + +By default DocSearch expect websites to have server-side rendering, meaning that +HTML source is returned directly by the server. If your content is generated by the +front-end, you have to tell DocSearch to emulate a browser through Selenium. + +_As client-side crawling is way slower than server-side crawling, we highly +encourage you to update your website to enable server-side rendering._ + +### `js_render` _Optional_ + +Set this value to true if your website requires client-side rendering. This will +make DocSearch spawn a Selenium proxy to fetch all your webpages. + +```json +{ + "js_render": true +} +``` + +### `js_wait` _Optional_ + +If your website is slow to load, you can use `js_wait` to tell DocSearch to wait +a specific amount of time (in seconds) for the page to load before extracting +its content. + +Note that this option might have a large impact on the time required +to crawl your website and we would encourage you to enable server-side rendering +on your website instead. + +This option has no impact if `js_render` is set to `false`. + +```json +{ + "js_render": true, + "js_wait": 2 +} +``` + +### `use_anchors` _Optional_ + +Websites using client-side rendering often don't use full urls, but instead take +advantage of the url hash (the part after the `#`). + +If your website is using such urls, you should set `use_anchors` to `true` for +DocSearch to index all your content. + +```json +{ + "js_render": true, + "use_anchors": true +} +``` + +[1]: https://github.com/algolia/docsearch-configs/tree/master/configs +[2]: https://www.algolia.com/doc/api-reference/settings-api-parameters/ diff --git a/docs/src/crawler-overview.md b/docs/src/crawler-overview.md new file mode 100644 index 00000000..c73c41ee --- /dev/null +++ b/docs/src/crawler-overview.md @@ -0,0 +1,31 @@ +--- +layout: two-columns +title: Crawler Overview +--- + +The DocSearch crawler is written in python and heavily based on the [Scrapy][1] +framework. It will crawl all pages of your website and extract content from the +HTML structure to populate an Algolia index. + +It will automatically follow every internal link to make sure we are not missing +any content, and will use the semantics of your HTML structure to construct its +records. This means that `h1`...`h6` titles will be used for the hierarchy, and +each `p` of text will be used as a potential result. + +Those CSS selectors can of course be overwritten, and each website actually has +its own JSON configuration file that describe in more details how the crawling +should behave. You can find the complete list of options in [our +documentation][2]. + +We automatically run each config every 24h. This is done from our own +infrastructure, meaning that you don't need to install anything on your side. +We run this service entirely free of charge, we're just asking that you keep the +"powered by Algolia" logo next to the search results. + +That being said, if you'd like to run DocSearch on your own, [all the code is +open-source][3] and even packaged as a Docker image. Just grab it, and run it +with your own credentials. + +[1]: https://scrapy.org/ +[2]: ./crawler-config.html +[3]: https://github.com/algolia/docsearch-scraper diff --git a/docs/src/dropdown.md b/docs/src/dropdown.md new file mode 100644 index 00000000..b8758af6 --- /dev/null +++ b/docs/src/dropdown.md @@ -0,0 +1,32 @@ +--- +layout: two-columns +title: Dropdown +--- + +To add the dropdown of results next to your search input, you'll have to include +the `docsearch.js` library into your website as per the following example. Your +`apiKey` and `indexName` credentials will be given to you as soon as we've +created your config. + + +```html + + + + + + +``` diff --git a/docs/src/faq.md b/docs/src/faq.md new file mode 100644 index 00000000..9c1a1e12 --- /dev/null +++ b/docs/src/faq.md @@ -0,0 +1,113 @@ +--- +layout: two-columns +title: FAQ +--- + +If you're not finding the answer to your question in the website, this +page will help you. If you're still unsure, don't hesitate to send [your +question to us][1] directly. + +### How often will you crawl my website? + +Every day. + +The exact time of day might vary each day, but we'll crawl your +website at most every 24 hours. We will also trigger a manual crawling every time +your config is updated. + +### What do I need to install on my side? + +Nothing. + +The DocSearch crawler is running on our own infra. It will read HTML +content from your website and populate an Algolia index with it every day. All +you need to do is keep your website online, and we take care of the rest. + +### How much does it cost? + +Nothing. + +We know that paying for search infrastructure is a cost not many Open Source +projects can afford. That's why we decided to keep DocSearch free for everyone. +All we ask in exchange is that you keep the _powered by +[Algolia][2]_ logo displayed next to the search results. + +If this is not possible for you, you're totally free to open your own Algolia +account and run DocSearch on your own without this limitation. In that case +though, depending on the size of your documentation, you might need a paid +account (free accounts can hold as much as 10k records). + +### What data are you collecting? + +The data we save in the index is the data we extract from your website +markup, in a custom JSON format instead of HTML. Exactly which part of the +page is defined in your custom config. + +As the website owner, we also give you access to the Algolia Analytics +dashboard, that will let you have more data about the anonymized searches that +were done on your website. You'll be able to see the most searched terms, or +those with no results. + +### Where is my data hosted? + +All DocSearch data is hosted on Algolia's servers, with replication around the +globe. You can find more details about the actual [server specs here][3], and more +complete information in our [privacy policy][4]. + +### Can I use DocSearch on non-doc pages? + +The free DocSearch we provide will only crawl documentation pages. If you want +to use it on other parts of your website, you'll need to create your own Algolia +account and either: + +- Run the [DocSearch crawler][5] on your own +- Use one of our other [framework integrations or API clients][6] + +### Can you index code samples? + +Yes, but we do not recommend it. + +Code samples are a great way for humans to understand how a specific pattern +/ method should be used. Unfortunately, it often requires boilerplate code, +repeated into several examples, which will only add noise to the results. + +What we recommend instead is to exclude the code blocks from the indexing (by +using the `selectors_exclude` option in your config), and instead structure your +content so the method names are actual headers. + +### Why do I have duplicate content in my results? + +This can happen when you have several urls pointing to the same content, for +example with `./docs`, `./docs/` and `./docs/index.html` or even both `http` and +`https` in place. + +This can be fixed by `stop_urls` to all the patterns you want to exclude. The +following example will exclude all urls ending with `/` or `index.html` as well +as those starting with `http://`. + +```json +{ + "stop_urls": [ + "/$", + "/index.html$", + "^http://" + ] +} +``` + +### My favorite project documentation does not use DocSearch. What can I do? + +We'd love to help! + +If one of your favorite tool documentation is missing +DocSearch, we encourage you to file an issue in their repository explaining how +DocSearch could help. Feel free to ping `@docsearch` on GitHub in the issue as +well, and we'll provide all the help we can. + + +[1]: mailto:docsearch@algolia.com +[2]: https://www.algolia.com/ +[3]: https://www.algolia.com/doc/guides/infrastructure/servers/ +[4]: https://www.algolia.com/policies/privacy +[5]: ./crawler-overview.html +[6]: https://www.algolia.com/doc/api-reference/ diff --git a/docs/src/favicon.ico b/docs/src/favicon.ico new file mode 100644 index 00000000..c481de75 Binary files /dev/null and b/docs/src/favicon.ico differ diff --git a/docs/src/how-does-it-work.md b/docs/src/how-does-it-work.md new file mode 100644 index 00000000..7b7014d7 --- /dev/null +++ b/docs/src/how-does-it-work.md @@ -0,0 +1,53 @@ +--- +layout: two-columns +title: How does it work? +--- + +Getting up and ready with DocSearch is a straightforward process that requires +a few steps: you apply, we configure the crawler for you, and you update your +front-end. + +How it works + + +### 1. You apply + +The first thing you'll need to do is to apply for DocSearch by filling the +form on this page (make sure to double check that you qualify first). We are +receiving a lot of requests, so this form makes sure we won't be forgetting +anyone. + +We guarantee that we will answer to every request, but due to the amount of +applications we receive, please give us a couple of days to get back to you :) + +### 2. We create a configuration + +Once we receive your application, we'll have a look at your website and create +a custom configuration file for it. This file defines which urls we +should crawl or ignore, as well as the specific CSS selectors to be used for +selecting headers, subheaders, etc. All configs are publicly available in our +[config repo][1]. + +This step still requires some manual work, but thanks to the 900+ configs we +already created, we're able to automate most of it. Once done, we'll run a first +indexing of your website and have it run automatically every 24h. + +### 3. You update your website + +We'll then get back to you with the JavaScript snippet you'll need to add to +your website. This will bind your search `input` field to display results from +your Algolia index on each keystroke in a dropdown menu. + +The default styling of the dropdown uses grey colors to fit in most designs. The +dropdown itself is made of HTML with custom CSS classes and we recommend that +you overwrite those classes to provide a theming more inline with the rest of +your website. + +Now that DocSearch is set, you don't have anything else to do. We'll keep +crawling your website every day and update your search results automatically. + + +[1]: https://github.com/algolia/docsearch-configs/tree/master/configs +[2]: https://github.com/algolia/docsearch-scraper +[3]: https://github.com/algolia/docsearch-scraper +[4]: https://www.sitemaps.org/ diff --git a/docs/src/index.md b/docs/src/index.md new file mode 100644 index 00000000..f78869c7 --- /dev/null +++ b/docs/src/index.md @@ -0,0 +1,3 @@ +--- +layout: homepage +--- diff --git a/docs/src/inside-the-engine.md b/docs/src/inside-the-engine.md new file mode 100644 index 00000000..605f8e24 --- /dev/null +++ b/docs/src/inside-the-engine.md @@ -0,0 +1,65 @@ +--- +layout: two-columns +title: Inside the engine +--- + +This page will explain in more details how the crawler extracts content from your +page, and how it ranks it in the results. + +## Crawling + +Each crawl will begin its journey by the value of the `start_urls` you have in +your config. It will read those pages and recursively follow every link in those +pages until it has crawled all your website. + +If it detects a `sitemap.xml`, it will use this link list instead of crawling +all pages. + +## Extracting content + +Then, for each page, it will read the HTML markup from top to bottom. It will +look for HTML elements matching your CSS `selectors`. It will specifically look +for elements matching your `text` selector (`

        ` by default). Each of those +matches will be later transformed into an Algolia record. + +For each matching `text` element, the crawler will also keep in memory the +current hierarchy of headers (identified by the `lvl0` to `lvl5` selectors) that +it had to traverse to get to this text. This hierarchical information, as well +as some generic page metadata (such has the page url) are then pushed to +Algolia. + +Note that the crawler performs sanity checks before pushing data to Algolia. For +example if you changed the markup of your website, the selectors might not match +anything. If we detect that something is wrong with your current crawl, we don't +overwrite your previous index. + +## Ranking records + +Algolia always returns the most relevant results first, using a [tie-breaking +approach][1]. DocSearch will first search for exact matches in your keywords then +fallback to partial matches. Those results will then be ordered based, once +again, on the page hierarchy, as extracted from the `selectors`. + +The default strategy is to first look at the closest header of the matching +text. If a matching paragraph of text is under `Advanced Settings / API Options +/ verySpecificMethod()`, it will be ranked higher than if it is only found under +`Gettings Started > Installation`. The idea here is that if you have a match +under a very deep hierarchy, chances are that this match is very specific and +might be more interesting that something found in a very broad topic. + +But this does not work in all cases as some documentations don't have deep +hierarchy. In that case, we use the paragraph position. The first paragraph of +the page will be ranked higher than the last one. + +You also have a way to boost some pages directly in your config by using the +`page_rank` option. This accepts a numeric value, and all pages with +a `page_rank` of 5 will be returned before pages with a `page_rank` of 1. + +If you want to get fancy, you could even overwrite the default +`customRanking` used by the index by using the `custom_settings` option of +your config. + + +[1]: https://www.algolia.com/doc/guides/ranking/ranking-formula/#tie-breaking-approach +[2]: https://www.algolia.com/doc/guides/ranking/ranking-formula/#tie-breaking-approach +[3]: https://www.algolia.com/doc/guides/ranking/custom-ranking/ diff --git a/docs/src/integrations.md b/docs/src/integrations.md new file mode 100644 index 00000000..403e49e5 --- /dev/null +++ b/docs/src/integrations.md @@ -0,0 +1,26 @@ +--- +layout: two-columns +title: Supported Integrations +--- + +We worked with documentation website generators to have DocSearch directly +embedded as a first class citizen in website they produce. If you're using one +of the following tools, checkout their documentation to see how to enable +DocSearch on your website: + +- [Docusaurus][1] - [How to enable search][2] +- [VuePress][3] - [Algolia Search][4] +- [GitBook][5] +- [pkgdown][6] - [DocSearch indexing][7] + +If you're a maintaining such a tool and would like to get added to the list, get +[in touch with us][8] + +[1]: https://docusaurus.io/ +[2]: https://docusaurus.io/docs/en/search#docsNav +[3]: https://vuepress.vuejs.org/ +[4]: https://vuepress.vuejs.org/default-theme-config/#algolia-search +[5]: https://docs.gitbook.com/ +[6]: http://pkgdown.r-lib.org/index.html +[7]: http://pkgdown.r-lib.org/articles/pkgdown.html#search +[8]: mailto:docsearch@algolia.com diff --git a/docs/src/js/docs.js b/docs/src/js/docs.js new file mode 100644 index 00000000..365898e2 --- /dev/null +++ b/docs/src/js/docs.js @@ -0,0 +1,14 @@ +const sidebar = document.querySelector('.navigation-sidebar'); +const open = document.querySelector('.navigation-open'); +const close = document.querySelector('.navigation-close'); +const body = document.querySelector('body'); +const hamburger = document.querySelector('.custom-toggle-nav'); + +function toggleNav(event) { + sidebar.classList.toggle('hidden'); + open.classList.toggle('hidden'); + close.classList.toggle('hidden'); + body.classList.toggle('navigation-menu-open'); + event.preventDefault(); +} +hamburger.onclick = toggleNav; diff --git a/docs/src/js/home.js b/docs/src/js/home.js new file mode 100644 index 00000000..bb21c5a4 --- /dev/null +++ b/docs/src/js/home.js @@ -0,0 +1,65 @@ +window.onload = function() { + let i = 0; + let txt; + let query = ''; + + const demoDocsearch = docsearch({ + apiKey: '5990ad008512000bba2cf951ccf0332f', + indexName: 'bootstrap', + inputSelector: '.docsearch-live-demo-input', + enhancedSearchInput: true, + debug: false, + }); + + const reference = document.querySelector( + '.docsearch-live-demo-input-wrapper' + ); + const popperElement = document.querySelector('.my-popper'); + + const anotherPopper = new Popper(reference, popperElement, { + placement: 'bottom-start', + removeOnDestroy: 'true', + }); + + function openDocsearch(sampleQuery) { + demoDocsearch.autocomplete.autocomplete.setVal(sampleQuery); + demoDocsearch.autocomplete.autocomplete.open(); + } + + function typeWriter() { + const speed = 250; + if (i < txt.length) { + query += txt.charAt(i); + openDocsearch(query); + i++; + setTimeout(typeWriter, speed); + } + } + + document.querySelectorAll('.ds-sample-query').forEach(el => { + const element = el; + element.onclick = function(event) { + txt = el.getAttribute('data-sample'); + typeWriter(); + event.preventDefault(); + }; + }); + + demoDocsearch.autocomplete.on('autocomplete:opened', () => { + anotherPopper.destroy(); + }); + + new Glide('.glide', { + type: 'carousel', + startAt: 0, + perView: 16, + autoplay: 1300, + breakpoints: { + 400: { perView: 4 }, + 600: { perView: 6 }, + 800: { perView: 8 }, + 1000: { perView: 10 }, + 1200: { perView: 12 }, + }, + }).mount(); +}; diff --git a/docs/src/js/main.js b/docs/src/js/main.js new file mode 100644 index 00000000..78c7a4f0 --- /dev/null +++ b/docs/src/js/main.js @@ -0,0 +1,37 @@ +docsearch({ + apiKey: '25626fae796133dc1e734c6bcaaeac3c', + indexName: 'docsearch', + inputSelector: '.custom-search-input', + debug: false, +}); + +const applyForm = document.querySelector('.custom-apply-form'); +if (applyForm) { + const formThankYou = document.querySelector('.custom-form-thank-you'); + const formContent = document.querySelector('.custom-form-content'); + const placeholderEmail = document.querySelector('.custom-placeholder-email'); + const placeholderUrl = document.querySelector('.custom-placeholder-url'); + + applyForm.onsubmit = function(event) { + event.preventDefault(); + + const method = applyForm.getAttribute('method'); + const action = applyForm.getAttribute('action'); + const formData = new FormData(applyForm); + + const request = new XMLHttpRequest(); + request.open(method, action); + request.send(formData); + + const userEmail = document.querySelector('input[name=email]').value; + const userUrl = document.querySelector('input[name=url]').value; + + placeholderEmail.innerText = userEmail; + placeholderUrl.innerText = userUrl; + + formContent.classList.toggle('hidden'); + formThankYou.classList.toggle('hidden'); + + event.preventDefault(); + }; +} diff --git a/docs/src/run-your-own.md b/docs/src/run-your-own.md new file mode 100644 index 00000000..1a10a712 --- /dev/null +++ b/docs/src/run-your-own.md @@ -0,0 +1,130 @@ +--- +layout: two-columns +title: Run your own +--- + +The version of DocSearch we provide for free is one hosted on our own servers, +running every 24 hours. If you need to update your results more often than that, +or need to index content sitting behind a firewall, you might want to run the +crawler yourself. + +The code of DocSearch is Open-Source, and we packaged it as a Docker image to +make this even easier for you to use. + +## Installation + +Start by cloning [the repo][1] and then running `./docsearch docker:build` to +create the local image. + +Even if not recommended, you can run DocSearch directly from you host. For +that, you'll need to have `python` and `pip` installed, and then run `pip +install --user -r requirements.txt`. + +## Configuration + +You'll need to set your Algolia application ID and admin API key as environment +variables. If you don't have an Algolia account, you should [create one][2]. + +- `APPLICATION_ID` should be set to your Application ID +- `API_KEY` should be set to your API Key. Make sure to use an API key with + **write** access to your index. + +For convenience, you can create a `.env` file in the repository root with the +following format and DocSearch will use those values. + +``` +APPLICATION_ID=YOUR_APP_ID +API_KEY=YOUR_API_KEY +``` + +## Creating a new config + +To create your config, run `./docsearch bootstrap`. A prompt will ask you for +a some information and will then output a JSON config you can use as a base. + +```sh +$ ./docsearch bootstrap +# Enter your documentation url +start url: http://www.example.com/docs/ +# You most probably don't need variables +Does the start_urls require variables ? [y/n]: n +# Pick another name, or press enter +index_name is example [enter to confirm]: + +================= +{ + "index_name": "example", + "start_urls": [ + "http://www.example.com/docs/" + ], + "stop_urls": [], + "selectors": { + "lvl0": "FIXME h1", + "lvl1": "FIXME h2", + "lvl2": "FIXME h3", + "lvl3": "FIXME h4", + "lvl4": "FIXME h5", + "text": "FIXME p, FIXME li" + } +} +================= +``` + +Copy-paste the content into a file name `example.json`, we'll use it later to +start the crawling. You can find the complete list of available options in [our +documentation][3], or browse the [list of live configs][4]. + +## Running your config + +Now that you have your environment variables set, you can run the crawler +according to your config. + +```sh +$ ./docsearch docker:run /path/to/your/config.json +``` + +This will crawl all pages, extract content from them and then push it to +Algolia. + +## Testing your results + +You can test your results by running `./docsearch playground`. This will open +a web page with a search input where you can do live tests against the indexed +results. + +Playground + +_Note that if the command fails (it can happen on non-Mac machines), you can get +the same result by running a live server in the `./playground` subdirectory.`_ + +## Integration + +Once you're satisfied with your config, you can integrate the dropdown menu in +your website by following the [instructions here][5]. + +The difference is that you'll also have to add the `appId` key to your +`docsearch()` instance. Also don't forget to use a **search** API key here (ie. +not the **write** API key you used for the crawling). + + +```javascript +docsearch({ + appId: '', // Add your own Application ID + apiKey: '', // Set it to your own search API key + […] // Other settings are identical +}); +``` + +## Help + +You can run `./docsearch` without any argument to see the list of all available +commands. + +Note that we use this CLI tool internally at Algolia to run the free hosted +version, so you might not need all the listed commands. + +[1]: https://github.com/algolia/docsearch-scraper +[2]: https://www.algolia.com/users/sign_up +[3]: ./config-file.html +[4]: https://github.com/algolia/docsearch-configs/tree/master/configs +[5]: ./dropdown.html diff --git a/docs/src/style.css b/docs/src/style.css new file mode 100644 index 00000000..a837da1b --- /dev/null +++ b/docs/src/style.css @@ -0,0 +1,31 @@ +@import "./_styles/tailwind.css"; +@import "./_styles/debug.css"; +@import "./_styles/components.css"; +@import "./_styles/fonts.css"; +@import "./_styles/highlight.css"; +@import "./_styles/docs.css"; +@import "./_styles/docsearch.css"; + +/* Antialiasing */ +* { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* Global styles */ +a, +a:active { + @apply .cursor-pointer; + @apply .text-nebula .no-underline; +} +a:hover, +a:focus { + @apply .underline; +} +code { + @apply .code .text-mars-2; + @apply .p-0x; + @apply .bg-moon; + @apply .rounded-1; + font-size: .9em; +} diff --git a/docs/src/styling.md b/docs/src/styling.md new file mode 100644 index 00000000..ae78f3f2 --- /dev/null +++ b/docs/src/styling.md @@ -0,0 +1,82 @@ +--- +layout: two-columns +title: Styling DocSearch +--- + +DocSearch default colorscheme comes in grey colors with blue highlight. + +![Default colorscheme](./assets/default-colorscheme.png) + +This theme works well with most websites, but we encourage you to style it to +your own colors. This can be achieved by overriding the CSS classes used by the +default theme. + +The following annotated example will help you style each part: + +```css +/* Match title (eg. Bootstrap CDN) */ +.algolia-docsearch-suggestion--title { + font-weight: bold; + color: black; +} + +/* Match description (eg. Bootstrap currently works...) */ +.algolia-docsearch-suggestion--text { + font-size: .8rem; + color: gray; +} + +/* Match category (eg. Downloads) */ +.algolia-docsearch-suggestion--subcategory-column { + color: gray; +} + +/* Match main category (eg. Getting Started) */ +.algolia-docsearch-suggestion--category-header { + color: darkgray; + border: 1px solid gray; +} + +/* Highlighted text */ +.algolia-docsearch-suggestion--highlight { + color: blue; +} +``` + +## Debugging + +If you want to inspect the dropdown markup with your browser tools, you should +add `debug: true` to your `docsearch` call to prevent it from closing on +inspection. + +```javascript +docsearch({ + […], + debug: true +}); +``` + +## Other considerations + +Currently selected suggestion are wrapped in a `.ds-cursor` class. This means +that you can use `.ds-cursor .algolia-docsearch-suggestion--content` to style +the currently selected suggestion for example. + +On small screens, DocSearch reverts to a single column layout, while the +two-column layout shown in the screenshot is only used on larger screens. You +can media queries (for example `@media (min-width: 768px) {}`) to target one or +the other display. + +We ask you not to try to hide the _search by Algolia_ logo through CSS, as its +display is mandatory if you're using the free hosted version of DocSearch. + + +## Advanced styling + +If you want to more heavily style the results, feel free to have a look at the +[SCSS source code](https://github.com/algolia/docsearch/tree/master/src/styles). +`_variables.scss` contains all the default colors, sizing and breakpoints. + +You can generate your own CSS file by cloning the repo and running `yarn run +build:css`. The resulting file will be generated in `./dist/cdn`, and should be +used instead of the default one. diff --git a/docs/src/tips.md b/docs/src/tips.md new file mode 100644 index 00000000..d374fb60 --- /dev/null +++ b/docs/src/tips.md @@ -0,0 +1,79 @@ +--- +layout: two-columns +title: Tips for a good search +--- + +DocSearch can work with almost any website, but we found that some site +structure yield more relevant result and/or faster indexing time. In this page +we'll share some tips on how you can make the most out of DocSearch. + +### Use a `sitemap.xml` + +If your website has a sitemap, DocSearch will use it to get the list of pages to +index. If it can't find one, it will follow every link of every page instead. + +We highly recommend you add a `sitemap.xml` to your website if you don't have +one already. This will make the indexing faster, but will also give you more +control over which page you'd like to include or not in the indexing. + +Sitemaps are also considered good practice for other aspects, including SEO +([more information on sitemaps][1]). + +### Structure the hierarchy of information + +DocSearch works better on structured documentation. Relevance of results is +based on the structural hierarchy of content. In simpler terms it means that we +read the `

        `, ..., `

        ` headings of your page to guess the hierarchy of +information. + +Documentation starts by explains generic concepts first and then goes deeper +into specifics. This is represented in your HTML markup by the hierarchy of +headings you're using. For example, concepts discussed under a `

        ` are more +specific than concepts discussed under a `

        ` in the same page. + +DocSearch uses this structure to fine-tune the relevance of results as well as +to provide potential filtering. Documentation that follow this pattern often +have better relevance of search results. + +_Note that you don't have to use `` tags and can use `` for example instead. Your crawling configuration file will + need to mirror those changes, though._ + +### Set a unique class to the element holding the content + +As DocSearch is extracting content based on the HTML structure, it is important +to narrow its results to only the relevant content. In that regard, we +recommend that you add a custom `id` to the HTML element that will be the parent +of all your textual content. + +Having such a unique identifier will make your configuration more robust as it +will make sure all content that is indexed is relevant content. We found that +this is the most reliable way to exclude headers, sidebars and footers content +that are not relevant to the search. + +### Add anchors to headings + +When using headings (as mentioned above), you should also try to add a custom +anchor to each of them. Anchors are HTML attributes (`name` or `id`) +added to headers that will allow the browser to directly scroll to the right +position in the page when clicking a link with a `#` in it. + +DocSearch will honor such anchors and automatically bring your users to the +anchor closest to the search result they selected. + +### Marking the active page(s) in the navigation + +If you're using a multi-level navigation, we recommend that you mark +each active level with a custom CSS class. This will make it easier for +DocSearch to know _where_ the current page fits in the website +hierarchy. + +For example, if your `troubleshooting.html` page is located under the +`Installation` menu in your sidebar, we recommend that you add a custom CSS +class to the `Installation` and `Troubleshooting` links in your sidebar. + +The name of the CSS class does not matter, as long as it's something that can be +used as part of a CSS selector. + + +[1]: https://www.sitemaps.org/index.html diff --git a/docs/src/what-is-docsearch.md b/docs/src/what-is-docsearch.md new file mode 100644 index 00000000..0444d0f7 --- /dev/null +++ b/docs/src/what-is-docsearch.md @@ -0,0 +1,27 @@ +--- +layout: two-columns +title: What is DocSearch? +--- + +DocSearch is born out of the need to scratch our own itch. As developers, we +spent a lot of time reading documentation, and we often found it hard to find +relevant information we need quickly. We're not blaming anyone here; building +a good search is a challenge. + +It just happens that we are a search company and we actually have a lot of +experience building search interfaces. We wanted to put those skills to good +use. That's why we created a way to automatically extract content from tech +documentation and make it available to everyone with only a few keystrokes. + +DocSearch itself is made of a crawler and a front-end library. We run the +crawler on our end every 24h to extract content from your website and push it to +an Algolia index. You'll then have to add the front-end library to your website +to redirect all the search requests to this index. + +DocSearch is entirely free and mostly automated. The only thing we'll need from +you is to check that you're eligible (most tech projects are), and apply! After +that, we'll share with you the JavaScript snippet needed to add DocSearch to +your website. We just ask that you keep the "powered by Algolia" link displayed. + +DocSearch is [one of our ways](https://opencollective.com/algolia) to give back +to the Open-Source community for everything it did for us already. diff --git a/docs/src/who-can-apply.md b/docs/src/who-can-apply.md new file mode 100644 index 00000000..bf8b1635 --- /dev/null +++ b/docs/src/who-can-apply.md @@ -0,0 +1,54 @@ +--- +layout: two-columns +title: Who can apply? +--- + +DocSearch has been built from the ground up with the idea of improving search on +large technical documentation. For that reason, we only provide the free hosting +version to technical documentation websites. + +We're always sad to have to turn down applications, but with the number of +requests we received everyday, we had to focus on technical documentations. +We hope you understand. + +### The checklist + +To have your request validated, please make sure you comply with the following +points: + +- You must be the **owner** of the website, or at least have the power to update + its content. You'll have to include a JavaScript snippet to enable DocSearch. +- Your website must be **publicly available**. We cannot index websites that are + sitting behind an authentication or available on your machine. +- Your website must be a **documentation website**. We do not index blogs and + commercial one-pagers. +- Your website must **have some content**. We won't index empty websites nor those + filled with lorem ipsum placeholder content. Please, wait until you have + written some documentation before applying. + +If in doubt, don't hesitate to [apply][1] and we'll figure it out together. + +Even if we cannot accept your request, this does not mean that you cannot enjoy +great search on your website. DocSearch is entirely open-source and you can run +it yourself, or use any of our other API clients to take advantage of the +features of Algolia. + +### Priority + +We're receiving many requests every day, and while we strive to answer them all +as fast as we can, we sometimes give priority to some of them based on the +following criteria: + +- 🙂 If your project is Open-Source, we'll handle it before any other + close-source product. We care about the OSS community and want to help as much + as we can. +- 🙂 If you're using one of our [official integrations][2], creating your config + will be much faster for us. +- ☹️ If your website is rendered in the browser through JavaScript, it means + that we'll have to crawl it through a browser emulation which is much slower + than a typical crawl. We highly recommend that you implement server-side + rendering if you can. + + +[1]: ./apply.html +[2]: ./integrations.html diff --git a/docs/tailwind.config.js b/docs/tailwind.config.js new file mode 100644 index 00000000..2180c506 --- /dev/null +++ b/docs/tailwind.config.js @@ -0,0 +1,519 @@ +/* eslint-disable import/no-commonjs */ +/* Note: this file is used for styling the documentation website, not the javascript + * dropdown. */ +const _ = require('lodash'); +const algoliaColors = { + moon: '#f5f5fa', + proton: '#c5c9e0', + nova: '#848ab8', + telluric: '#5d6494', // Text + solstice: '#3a416f', // Headers + cosmos: '#21243d', + nebula: '#5468ff', // links + + 'moon--1': '#EBEBF2', // input focus + + 'neptune-2': '#3A46A1', + 'neptune-1': '#5560B5', + neptune: '#707BCC', + 'neptune--1': '#8D97E3', + 'neptune--2': '#A6B0F9', + + 'mercury-2': '#008FBA', + 'mercury-1': '#2DA7CB', + mercury: '#5BBFDD', + 'mercury--1': '#88d6ee', + 'mercury--2': '#b5eeff', + + 'jupiter-2': '#3ab2bd', + 'jupiter-1': '#61c5c8', + jupiter: '#89d9d3', + 'jupiter--1': '#b0ecde', + 'jupiter--2': '#d7ffe9', + + 'saturn-2': '#ec8b63', + 'saturn-1': '#f3a57e', + saturn: '#f8be9a', + 'saturn--1': '#fcd7b7', + 'saturn--2': '#fdf1d4', + + 'mars-2': '#ed5a6a', + 'mars-1': '#f27885', + mars: '#f695a0', + 'mars--1': '#fbb3ba', + 'mars--2': '#ffd0d5', + + 'venus-2': '#ae3e88', + 'venus-1': '#d44fa4', + venus: '#ea71bc', + 'venus--1': '#f89ad3', + 'venus--2': '#ffcae9', +}; +const colors = { + ...algoliaColors, + transparent: 'transparent', + inherit: 'inherit', + 'white-pure': '#FFF', + 'black-pure': '#000', + white: algoliaColors.moon, + black: algoliaColors.cosmos, + grey: algoliaColors.proton, + 'grey-1': algoliaColors.nova, + 'grey-2': algoliaColors.telluric, + 'grey-3': algoliaColors.solstice, + + red: algoliaColors.mars, + orange: algoliaColors.saturn, + yellow: algoliaColors['saturn--2'], + green: algoliaColors.jupiter, + teal: algoliaColors.mercury, + blue: algoliaColors.nebula, + indigo: algoliaColors.neptune, + purple: algoliaColors['venus-2'], + pink: algoliaColors.venus, + + // Alpha + 'black-10': 'rgba(0, 0, 0, .10)', + 'black-25': 'rgba(0, 0, 0, .25)', + 'black-50': 'rgba(0, 0, 0, .50)', + 'black-65': 'rgba(0, 0, 0, .65)', + 'black-75': 'rgba(0, 0, 0, .75)', + 'black-90': 'rgba(0, 0, 0, .90)', + 'white-10': 'rgba(255, 255, 255, .10)', + 'white-25': 'rgba(255, 255, 255, .25)', + 'white-50': 'rgba(255, 255, 255, .50)', + 'white-65': 'rgba(255, 255, 255, .65)', + 'white-75': 'rgba(255, 255, 255, .75)', + 'white-90': 'rgba(255, 255, 255, .90)', +}; + +const dimensionScale = { + auto: 'auto', + '0': '0', + '1': '1rem', + '1x': '1.5rem', + '2': '2rem', + '2x': '3rem', + '3': '4rem', + '3x': '6rem', + '4': '8rem', + '4x': '12rem', + '5': '16rem', + '10': '10%', + '20': '20%', + '25': '25%', + '30': '30%', + '33': 'calc(100% / 3)', + '40': '40%', + '50': '50%', + '60': '60%', + '66': 'calc(100% / 1.5)', + '70': '70%', + '75': '75%', + '80': '80%', + '90': '90%', + '100': '100%', + full: '100%', + sm: '576px', + md: '768px', + lg: '992px', + xl: '1200px', +}; + +const widthScale = { + ...dimensionScale, + '100vw': '100vw', +}; +const heightScale = { + ...dimensionScale, + '100vh': '100vh', +}; + +const spacingScale = { + '0': '0', + '0x': '.25rem', + '05': '.5rem', + '05x': '.75rem', + '1': '1rem', + '1x': '1.5rem', + '2': '2rem', + '2x': '3rem', + '3': '4rem', + '3x': '6rem', + '4': '8rem', + '4x': '12rem', + '5': '16rem', + '10': '10%', + '20': '20%', + '25': '25%', + '30': '30%', + '33': 'calc(100% / 3)', + '40': '40%', + '50': '50%', + '60': '60%', + '66': 'calc(100% / 1.5)', + '70': '70%', + '75': '75%', + '80': '80%', + '90': '90%', + '100': '100%', +}; +const marginScale = { + ...spacingScale, + auto: 'auto', +}; + +const fontScale = { + '-2': '0.75rem', + '-1': '0.875rem', + '0': '0px', + '1': '1rem', // 16px + '2': '1.125rem', // 18px + '3': '1.25rem', // 20px + '4': '1.5rem', // 24px + '5': '1.875rem', // 30px + '6': '2.25rem', // 36px + '7': '3rem', // 48px + '8': '3.5rem', // 56px +}; + +const fontWeights = { + hairline: 100, + thin: 200, + light: 300, + normal: 400, + medium: 500, + semibold: 600, + bold: 700, + extrabold: 800, + black: 900, +}; + +const borderRadius = { + '0': '0', + '1': '.125rem', + '2': '.25rem', + '3': '.5rem', + auto: '6px', + '100': '9999px', +}; + +const zIndex = { + auto: 'auto', + '-2': -20, + '-1': -10, + '0': 0, + '1': 10, + '2': 20, + '3': 30, + '4': 40, + '5': 50, +}; + +const opacity = { + '0': '0', + '15': '.15', + '25': '.25', + '50': '.5', + '75': '.75', + '100': '1', +}; + +// Use font-weight without prefixes (.bold, .thin, etc) +const customFontWeight = _.reduce(fontWeights, (result, value, key) => + _.assign(result, { + [`${key}`]: { fontWeight: value }, + }) +); +const customUtilities = { + 'text-outline': { + 'text-shadow': + '-1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000', + }, + 'bg-blur': { + filter: 'blur(10px)', + }, +}; +const customFlexbox = { + flrnw: { + flexDirection: 'row', + }, + flrw: { + flexDirection: 'row', + flexWrap: 'wrap', + }, + flcnw: { + flexDirection: 'column', + }, + flcw: { + flexDirection: 'column', + flexWrap: 'wrap', + }, + fln: { + flex: 'none', + }, + fla: { + flex: '1 1 auto', + minWidth: 0, + minHeight: 0, + }, + flccv: { + justifyContent: 'center', + }, + flcch: { + alignItems: 'center', + }, + flrcv: { + alignItems: 'center', + }, + flrch: { + justifyContent: 'center', + }, + flc: { + alignItems: 'center', + justifyContent: 'center', + }, + flral: { + justifyContent: 'flex-start', + }, + flrar: { + justifyContent: 'flex-end', + }, + flcat: { + justifyContent: 'flex-start', + }, + flcab: { + justifyContent: 'flex-end', + }, + flspa: { + justifyContent: 'space-around', + }, + flspb: { + justifyContent: 'space-between', + }, +}; +// Use the spacing scale for top/right/bottom/let positioning +const customPositions = _.reduce( + spacingScale, + (result, value, key) => + _.assign(result, { + [`top-${key}`]: { top: value }, + [`right-${key}`]: { top: value }, + [`bottom-${key}`]: { top: value }, + [`left-${key}`]: { top: value }, + }), + {} +); +// Add calculated height and width with cropped parts, like .h-100vh-3 +const customCroppedVhVw = _.reduce( + dimensionScale, + (result, value, key) => { + // Only do it for simple scale and half/scales + const isSimpleScale = key.length === 1; + const isHalfScale = key.length === 2 && key[1] === 'x'; + if (!(isSimpleScale || isHalfScale)) { + return result; + } + return _.assign(result, { + [`h-100vh-${key}`]: { height: `calc(100vh - ${value})` }, + [`w-100vw-${key}`]: { width: `calc(100vw - ${value})` }, + }); + }, + {} +); + +function addCustomClasses(customClasses) { + return ({ addUtilities }) => { + const prefixedClasses = _.mapKeys(customClasses, (value, key) => `.${key}`); + addUtilities(prefixedClasses); + }; +} + +const plugins = [ + addCustomClasses(customFontWeight), + addCustomClasses(customFlexbox), + addCustomClasses(customUtilities), + addCustomClasses(customPositions), + addCustomClasses(customCroppedVhVw), +]; + +module.exports = { + textSizes: fontScale, + fontWeights, + width: widthScale, + minWidth: widthScale, + maxWidth: widthScale, + + height: heightScale, + minHeight: heightScale, + maxHeight: heightScale, + + padding: spacingScale, + + margin: marginScale, + negativeMargin: marginScale, + + colors, + zIndex, + opacity, + borderRadius, + + plugins, + screens: { + sm: '576px', + md: '768px', + lg: '992px', + xl: '1200px', + print: { raw: 'print' }, + }, + textColors: colors, + backgroundColors: colors, + borderWidths: { + default: '1px', + '0': '0', + '1': '2px', + '2': '4px', + '3': '8px', + }, + borderColors: global.Object.assign({ default: colors['grey-light'] }, colors), + fonts: { + sans: [ + 'system-ui', + 'BlinkMacSystemFont', + '-apple-system', + 'Segoe UI', + 'Roboto', + 'Oxygen', + 'Ubuntu', + 'Cantarell', + 'Fira Sans', + 'Droid Sans', + 'Helvetica Neue', + 'sans-serif', + ], + serif: [ + 'Constantia', + 'Lucida Bright', + 'Lucidabright', + 'Lucida Serif', + 'Lucida', + 'DejaVu Serif', + 'Bitstream Vera Serif', + 'Liberation Serif', + 'Georgia', + 'serif', + ], + mono: [ + 'Menlo', + 'Monaco', + 'Consolas', + 'Liberation Mono', + 'Courier New', + 'monospace', + ], + }, + // Line-height + leading: { + '0': '0', + '01': 1, + '1': 1.25, + '2': 1.5, + '3': 2, + }, + // Letter-spacing + tracking: { + tight: '-0.05em', + normal: '0', + wide: '0.05em', + poppins: '1.5px', + }, + shadows: { + button: + '0 7px 14px -3px rgba(45, 35, 66, 0.3), 0 2px 4px 0 rgba(45, 35, 66, 0.4), inset 0 -2px 0 0 #cfd1e3', + 'button-up': + '0 11px 16px -3px rgba(45, 35, 66, 0.3), 0 4px 5px 0 rgba(45, 35, 66, 0.4), inset 0 -2px 0 0 #cfd1e3', + 'button-down': + 'inset 0 2px 0 1px rgba(132, 138, 184, 0.11), inset 0 2px 9px 0 rgba(93, 100, 148, 0.5), inset 0 -1px 0 1px #fff', + + 'button-primary': + '0 7px 14px -3px rgba(45, 35, 66, 0.3), 0 2px 4px 0 rgba(45, 35, 66, 0.4), inset 0 -2px 0 0 #4b58ba;', + 'button-primary-up': + '0 11px 16px -3px rgba(45, 35, 66, 0.3), 0 4px 5px 0 rgba(45, 35, 66, 0.4), inset 0 -2px 0 0 #4b58ba;', + 'button-primary-down': + 'inset 0 2px 0 1px rgba(132, 138, 184, 0.11), inset 0 2px 9px 0 rgba(93, 100, 148, 0.5), inset 0 -1px 0 1px #5468ff;', + + '1': + '0 5px 15px 0 rgba(37, 44, 97, 0.15), 0 2px 4px 0 rgba(93, 100, 148, 0.2)', + none: 'none', + }, + svgFill: { + current: 'currentColor', + }, + svgStroke: { + current: 'currentColor', + }, + + modules: { + appearance: ['responsive'], + backgroundAttachment: ['responsive'], + backgroundColors: ['responsive', 'hover', 'focus'], + backgroundPosition: ['responsive'], + backgroundRepeat: ['responsive'], + backgroundSize: ['responsive'], + borderColors: ['responsive', 'hover'], + borderRadius: ['responsive'], + borderStyle: ['responsive'], + borderWidths: ['responsive'], + cursor: ['responsive'], + display: ['responsive'], + flexbox: ['responsive'], + float: ['responsive'], + fonts: ['responsive'], + fontWeights: ['responsive', 'hover'], + height: ['responsive'], + leading: ['responsive'], + lists: ['responsive'], + margin: ['responsive'], + maxHeight: ['responsive'], + maxWidth: ['responsive'], + minHeight: ['responsive'], + minWidth: ['responsive'], + negativeMargin: ['responsive'], + opacity: ['responsive'], + overflow: ['responsive'], + padding: ['responsive'], + pointerEvents: ['responsive'], + position: ['responsive'], + resize: ['responsive'], + shadows: ['responsive', 'hover'], + svgFill: [], + svgStroke: [], + textAlign: ['responsive'], + textColors: ['responsive', 'hover'], + textSizes: ['responsive'], + textStyle: ['responsive', 'hover'], + tracking: ['responsive'], + userSelect: ['responsive'], + verticalAlign: ['responsive'], + visibility: ['responsive'], + whitespace: ['responsive'], + width: ['responsive'], + zIndex: ['responsive'], + }, + + /* + |----------------------------------------------------------------------------- + | Advanced Options https://tailwindcss.com/docs/configuration#options + |----------------------------------------------------------------------------- + | + | Here is where you can tweak advanced configuration options. We recommend + | leaving these options alone unless you absolutely need to change them. + | + */ + + options: { + prefix: '', + important: false, + separator: '_', + }, +}; diff --git a/docs/update-aerial.sh b/docs/update-aerial.sh deleted file mode 100755 index 7ccab058..00000000 --- a/docs/update-aerial.sh +++ /dev/null @@ -1,4 +0,0 @@ -rm -rf source/assets/stylesheets/algolia-frontend-components/ -rm -rf source/assets/stylesheets/algolia-aerial/ -cp -R node_modules/algolia-frontend-components . -cp -R node_modules/algolia-aerial . \ No newline at end of file diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 00000000..ff402811 --- /dev/null +++ b/jest.config.js @@ -0,0 +1,7 @@ +/* eslint-disable import/no-commonjs */ +module.exports = { + bail: true, + resetMocks: true, + restoreMocks: true, + testPathIgnorePatterns: ['/node_modules/', '/dist/', '/docs/'], +}; diff --git a/netlify.toml b/netlify.toml deleted file mode 100644 index 88e8ef98..00000000 --- a/netlify.toml +++ /dev/null @@ -1,2 +0,0 @@ -[build] - base = "docs" \ No newline at end of file diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 7245a9f9..00000000 --- a/package-lock.json +++ /dev/null @@ -1,17272 +0,0 @@ -{ - "name": "docsearch.js", - "version": "2.5.2", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz", - "integrity": "sha512-cuAuTTIQ9RqcFRJ/Y8PvTh+paepNcaGxwQwjIDRWPXmzzyAeCO4KqS9ikMvq0MCbRk6GlYKwfzStrcP3/jSL8g==", - "dev": true, - "requires": { - "@babel/highlight": "7.0.0-beta.44" - } - }, - "@babel/generator": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.44.tgz", - "integrity": "sha512-5xVb7hlhjGcdkKpMXgicAVgx8syK5VJz193k0i/0sLP6DzE6lRrU1K3B/rFefgdo9LPGMAOOOAWW4jycj07ShQ==", - "dev": true, - "requires": { - "@babel/types": "7.0.0-beta.44", - "jsesc": "2.5.1", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", - "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/helper-function-name": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz", - "integrity": "sha512-MHRG2qZMKMFaBavX0LWpfZ2e+hLloT++N7rfM3DYOMUOGCD8cVjqZpwiL8a0bOX3IYcQev1ruciT0gdFFRTxzg==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "7.0.0-beta.44", - "@babel/template": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz", - "integrity": "sha512-w0YjWVwrM2HwP6/H3sEgrSQdkCaxppqFeJtAnB23pRiJB5E/O9Yp7JAAeWBl+gGEgmBFinnTyOv2RN7rcSmMiw==", - "dev": true, - "requires": { - "@babel/types": "7.0.0-beta.44" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz", - "integrity": "sha512-aQ7QowtkgKKzPGf0j6u77kBMdUFVBKNHw2p/3HX/POt5/oz8ec5cs0GwlgM8Hz7ui5EwJnzyfRmkNF1Nx1N7aA==", - "dev": true, - "requires": { - "@babel/types": "7.0.0-beta.44" - } - }, - "@babel/highlight": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.44.tgz", - "integrity": "sha512-Il19yJvy7vMFm8AVAh6OZzaFoAd0hbkeMZiX3P5HGD+z7dyI7RzndHB0dg6Urh/VAFfHtpOIzDUSxmY6coyZWQ==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "@babel/template": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.44.tgz", - "integrity": "sha512-w750Sloq0UNifLx1rUqwfbnC6uSUk0mfwwgGRfdLiaUzfAOiH0tHJE6ILQIUi3KYkjiCDTskoIsnfqZvWLBDng==", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44", - "babylon": "7.0.0-beta.44", - "lodash": "4.17.10" - }, - "dependencies": { - "babylon": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", - "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", - "dev": true - } - } - }, - "@babel/traverse": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.44.tgz", - "integrity": "sha512-UHuDz8ukQkJCDASKHf+oDt3FVUzFd+QYfuBIsiNu/4+/ix6pP/C+uQZJ6K1oEfbCMv/IKWbgDEh7fcsnIE5AtA==", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0-beta.44", - "@babel/generator": "7.0.0-beta.44", - "@babel/helper-function-name": "7.0.0-beta.44", - "@babel/helper-split-export-declaration": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44", - "babylon": "7.0.0-beta.44", - "debug": "3.1.0", - "globals": "11.7.0", - "invariant": "2.2.4", - "lodash": "4.17.10" - }, - "dependencies": { - "babylon": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", - "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", - "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.44.tgz", - "integrity": "sha512-5eTV4WRmqbaFM3v9gHAIljEQJU4Ssc6fxL61JN+Oe2ga/BwyjzjamwkCVVAQjHGuAX8i0BWo42dshL8eO5KfLQ==", - "dev": true, - "requires": { - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } - } - }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "dev": true, - "requires": { - "call-me-maybe": "1.0.1", - "glob-to-regexp": "0.3.0" - } - }, - "@nodelib/fs.stat": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.0.tgz", - "integrity": "sha512-LAQ1d4OPfSJ/BMbI2DuizmYrrkD9JMaTdi2hQTlI53lQ4kRQPyZQRS4CYQ7O66bnBBnP/oYdRxbk++X0xuFU6A==", - "dev": true - }, - "@sinonjs/formatio": { - "version": "2.0.0", - "resolved": "http://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", - "integrity": "sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==", - "dev": true, - "requires": { - "samsam": "1.3.0" - } - }, - "@sinonjs/samsam": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-2.0.0.tgz", - "integrity": "sha512-D7VxhADdZbDJ0HjUTMnSQ5xIGb4H2yWpg8k9Sf1T08zfFiQYlaxM8LZydpR4FQ2E6LZJX8IlabNZ5io4vdChwg==", - "dev": true - }, - "JSONStream": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.3.tgz", - "integrity": "sha512-3Sp6WZZ/lXl+nTDoGpGWHEpTnnC6X5fnkolYZR6nwIfzbxxvA8utPWe1gCt7i0m9uVGsSz2IS8K8mJ7HmlduMg==", - "dev": true, - "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" - } - }, - "abab": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz", - "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", - "dev": true, - "requires": { - "mime-types": "2.1.18", - "negotiator": "0.6.1" - } - }, - "acorn": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", - "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", - "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", - "dev": true, - "requires": { - "acorn": "4.0.13" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - } - } - }, - "acorn-globals": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz", - "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==", - "dev": true, - "requires": { - "acorn": "5.5.3" - } - }, - "acorn-jsx": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.1.1.tgz", - "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==", - "dev": true, - "requires": { - "acorn": "^5.0.3" - } - }, - "add-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", - "integrity": "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=", - "dev": true - }, - "agentkeepalive": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-2.2.0.tgz", - "integrity": "sha1-xdG9SxKQCPEWPyNvhuX66iAm4u8=" - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" - } - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true - }, - "algoliasearch": { - "version": "3.27.1", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-3.27.1.tgz", - "integrity": "sha512-byJBhwwazBTt5/FV9s6Oe+x2bbBlho9Ts2MqKh5SNbec2uft8xwtPuvE1hkS0+4wjlw8WIiJPSOaD82FLW7doA==", - "requires": { - "agentkeepalive": "2.2.0", - "debug": "2.6.9", - "envify": "4.1.0", - "es6-promise": "4.2.4", - "events": "1.1.1", - "foreach": "2.0.5", - "global": "4.3.2", - "inherits": "2.0.3", - "isarray": "2.0.4", - "load-script": "1.0.0", - "object-keys": "1.0.11", - "querystring-es3": "0.2.1", - "reduce": "1.0.1", - "semver": "5.5.0", - "tunnel-agent": "0.6.0" - } - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, - "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - } - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true - }, - "anchor-markdown-header": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/anchor-markdown-header/-/anchor-markdown-header-0.5.7.tgz", - "integrity": "sha1-BFBj125qH5zTJ6V6ASaqD97Dcac=", - "dev": true, - "requires": { - "emoji-regex": "6.1.3" - } - }, - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", - "dev": true, - "requires": { - "string-width": "2.1.1" - } - }, - "ansi-escapes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", - "dev": true - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "ansicolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", - "integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8=", - "dev": true - }, - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "dev": true, - "optional": true, - "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" - } - }, - "append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", - "dev": true, - "requires": { - "buffer-equal": "1.0.0" - } - }, - "append-transform": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", - "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", - "dev": true, - "requires": { - "default-require-extensions": "2.0.0" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "1.0.3" - } - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "1.1.0" - } - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", - "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=", - "dev": true - }, - "array-flatten": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz", - "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=", - "dev": true - }, - "array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", - "dev": true - }, - "array-includes": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", - "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", - "dev": true, - "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.12.0" - } - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "1.0.3" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" - } - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true, - "requires": { - "util": "0.10.3" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true - }, - "async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true - }, - "async-limiter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "atoa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atoa/-/atoa-1.0.0.tgz", - "integrity": "sha1-DMDpGkgOc4+SPrwQNnZHF3mzSkk=", - "dev": true - }, - "atob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", - "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", - "dev": true - }, - "autocomplete.js": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/autocomplete.js/-/autocomplete.js-0.30.0.tgz", - "integrity": "sha512-/+NwCEgFFtMrPXVyOr92JlmiDUpJWmPUUyX64e0vYw6WBD74hiVcLpxb4UjWQQf1dhYaveAgD6NmnDtNwBAV6A==", - "requires": { - "immediate": "3.2.3" - } - }, - "autoprefixer": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.1.0.tgz", - "integrity": "sha512-BbAIdxNdptG/x4DiGGfpkDVYyqu4nUyNdBB0Utr49Gn3+0RERV1MdHik2FSbbWwhMAuk1KrfVJHe7nEMheGdBA==", - "dev": true, - "requires": { - "browserslist": "^4.0.1", - "caniuse-lite": "^1.0.30000872", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.2", - "postcss-value-parser": "^3.2.3" - }, - "dependencies": { - "caniuse-lite": { - "version": "1.0.30000874", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000874.tgz", - "integrity": "sha512-29nr1EPiHwrJTAHHsEmTt2h+55L8j2GNFdAcYPlRy2NX6iFz7ZZiepVI7kP/QqlnHLq3KvfWpbmGa0d063U09w==", - "dev": true - }, - "postcss": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.2.tgz", - "integrity": "sha512-fmaUY5370keLUTx+CnwRxtGiuFTcNBLQBqr1oE3WZ/euIYmGAo0OAgOhVJ3ByDnVmOR3PK+0V9VebzfjRIUcqw==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - } - } - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", - "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==" - }, - "babel-cli": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", - "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", - "dev": true, - "requires": { - "babel-core": "6.26.3", - "babel-polyfill": "6.26.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "chokidar": "1.7.0", - "commander": "2.15.1", - "convert-source-map": "1.5.1", - "fs-readdir-recursive": "1.1.0", - "glob": "7.1.2", - "lodash": "4.17.10", - "output-file-sync": "1.1.2", - "path-is-absolute": "1.0.1", - "slash": "1.0.0", - "source-map": "0.5.7", - "v8flags": "2.1.1" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.1", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "babel-eslint": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-8.2.6.tgz", - "integrity": "sha512-aCdHjhzcILdP8c9lej7hvXKvQieyRt20SF102SIGyY4cUIiw6UaAtK4j2o3dXX74jEmy0TJ0CEhv4fTIM3SzcA==", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0-beta.44", - "@babel/traverse": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44", - "babylon": "7.0.0-beta.44", - "eslint-scope": "3.7.1", - "eslint-visitor-keys": "1.0.0" - }, - "dependencies": { - "babylon": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", - "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==", - "dev": true - } - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dev": true, - "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "dev": true, - "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "dev": true, - "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "dev": true, - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.10" - } - }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true, - "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.10" - } - }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "dev": true, - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "dev": true, - "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-istanbul": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/babel-istanbul/-/babel-istanbul-0.12.2.tgz", - "integrity": "sha1-5yPwfJokMtiAVVILwi519cI5Fhw=", - "dev": true, - "requires": { - "abbrev": "1.0.9", - "async": "1.5.2", - "escodegen": "1.8.1", - "esprima": "2.7.3", - "handlebars": "4.0.11", - "js-yaml": "3.11.0", - "mkdirp": "0.5.1", - "multi-glob": "1.0.1", - "nopt": "3.0.6", - "object-assign": "4.1.1", - "once": "1.4.0", - "resolve": "1.7.1", - "source-map": "0.4.4", - "supports-color": "3.1.2", - "which": "1.2.14", - "wordwrap": "1.0.0" - }, - "dependencies": { - "abbrev": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", - "dev": true - }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "requires": { - "abbrev": "1.0.9" - } - }, - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": "1.0.1" - } - }, - "supports-color": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", - "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "babel-jest": { - "version": "23.4.2", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-23.4.2.tgz", - "integrity": "sha512-wg1LJ2tzsafXqPFVgAsYsMCVD5U7kwJZAvbZIxVm27iOewsQw1BR7VZifDlMTEWVo3wasoPPyMdKXWCsfFPr3Q==", - "dev": true, - "requires": { - "babel-plugin-istanbul": "4.1.6", - "babel-preset-jest": "23.2.0" - } - }, - "babel-loader": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.5.tgz", - "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==", - "dev": true, - "requires": { - "find-cache-dir": "1.0.0", - "loader-utils": "1.1.0", - "mkdirp": "0.5.1" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-istanbul": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz", - "integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==", - "dev": true, - "requires": { - "babel-plugin-syntax-object-rest-spread": "6.13.0", - "find-up": "2.1.0", - "istanbul-lib-instrument": "1.10.1", - "test-exclude": "4.2.1" - } - }, - "babel-plugin-jest-hoist": { - "version": "23.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz", - "integrity": "sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc=", - "dev": true - }, - "babel-plugin-rewire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-rewire/-/babel-plugin-rewire-1.1.0.tgz", - "integrity": "sha1-prlm2djAbAPZXc2i7sTiUhUZVJs=", - "dev": true - }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", - "dev": true - }, - "babel-plugin-syntax-async-generators": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", - "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", - "dev": true - }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", - "dev": true - }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", - "dev": true - }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", - "dev": true - }, - "babel-plugin-transform-async-generator-functions": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", - "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", - "dev": true, - "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-generators": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "dev": true, - "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.10" - } - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "dev": true, - "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true, - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "dev": true, - "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "dev": true, - "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "dev": true, - "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "dev": true, - "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true, - "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true, - "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" - } - }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "dev": true, - "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", - "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", - "dev": true, - "requires": { - "babel-plugin-syntax-object-rest-spread": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "dev": true, - "requires": { - "regenerator-transform": "0.10.1" - } - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.5.6", - "regenerator-runtime": "0.10.5" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } - } - }, - "babel-preset-env": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", - "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", - "dev": true, - "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "3.2.7", - "invariant": "2.2.4", - "semver": "5.5.0" - }, - "dependencies": { - "browserslist": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.7.tgz", - "integrity": "sha512-oYVLxFVqpX9uMhOIQBLtZL+CX4uY8ZpWcjNTaxyWl5rO8yA9SSNikFnAfvk8J3P/7z3BZwNmEqFKaJoYltj3MQ==", - "dev": true, - "requires": { - "caniuse-lite": "1.0.30000840", - "electron-to-chromium": "1.3.45" - } - } - } - }, - "babel-preset-jest": { - "version": "23.2.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz", - "integrity": "sha1-jsegOhOPABoaj7HoETZSvxpV2kY=", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "23.2.0", - "babel-plugin-syntax-object-rest-spread": "6.13.0" - } - }, - "babel-preset-stage-3": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", - "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", - "dev": true, - "requires": { - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-generator-functions": "6.24.1", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-object-rest-spread": "6.26.0" - } - }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, - "requires": { - "babel-core": "6.26.3", - "babel-runtime": "6.26.0", - "core-js": "2.5.6", - "home-or-tmp": "2.0.0", - "lodash": "4.17.10", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "2.5.6", - "regenerator-runtime": "0.11.1" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "bail": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.3.tgz", - "integrity": "sha512-1X8CnjFVQ+a+KW36uBNMTU5s8+v5FzeqrP7hTG5aTb4aPreSbZJlhwPon9VKMuEVgV++JM+SQrALY3kr7eswdg==", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", - "dev": true - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "binary-extensions": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", - "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", - "dev": true - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "body-parser": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", - "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", - "dev": true, - "requires": { - "bytes": "3.0.0", - "content-type": "1.0.4", - "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", - "iconv-lite": "0.4.19", - "on-finished": "2.3.0", - "qs": "6.5.1", - "raw-body": "2.3.2", - "type-is": "1.6.16" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", - "dev": true - }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", - "dev": true - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "requires": { - "array-flatten": "2.1.1", - "deep-equal": "1.0.1", - "dns-equal": "1.0.0", - "dns-txt": "2.0.2", - "multicast-dns": "6.2.3", - "multicast-dns-service-types": "1.1.0" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "boundary": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/boundary/-/boundary-1.0.1.tgz", - "integrity": "sha1-TWfcJgLAzBbdm85+v4fpSCkPWBI=", - "dev": true - }, - "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "dev": true, - "requires": { - "ansi-align": "2.0.0", - "camelcase": "4.1.0", - "chalk": "2.4.1", - "cli-boxes": "1.0.0", - "string-width": "2.1.1", - "term-size": "1.2.0", - "widest-line": "2.0.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browser-process-hrtime": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz", - "integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44=", - "dev": true - }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", - "dev": true, - "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } - } - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "1.2.0", - "browserify-des": "1.0.1", - "evp_bytestokey": "1.0.3" - } - }, - "browserify-des": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.1.tgz", - "integrity": "sha512-zy0Cobe3hhgpiOM32Tj7KQ3Vl91m0njwsjzZQK1L+JDf11dzP9qIvjreVinsvXrgfjhStXwUWAEpB9D7Gwmayw==", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.6" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "elliptic": "6.4.0", - "inherits": "2.0.3", - "parse-asn1": "5.1.1" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "1.0.6" - } - }, - "browserslist": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.0.1.tgz", - "integrity": "sha512-QqiiIWchEIkney3wY53/huI7ZErouNAdvOkjorUALAwRcu3tEwOV3Sh6He0DnP38mz1JjBpCBb50jQBmaYuHPw==", - "dev": true, - "requires": { - "caniuse-lite": "1.0.30000865", - "electron-to-chromium": "1.3.52", - "node-releases": "1.0.0-alpha.10" - }, - "dependencies": { - "caniuse-lite": { - "version": "1.0.30000865", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz", - "integrity": "sha512-vs79o1mOSKRGv/1pSkp4EXgl4ZviWeYReXw60XfacPU64uQWZwJT6vZNmxRF9O+6zu71sJwMxLK5JXxbzuVrLw==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.52", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz", - "integrity": "sha1-0tnxJwuko7lnuDHEDvcftNmrXOA=", - "dev": true - } - } - }, - "bser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz", - "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", - "dev": true, - "requires": { - "node-int64": "0.4.0" - } - }, - "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true, - "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.11", - "isarray": "1.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - } - } - }, - "buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", - "dev": true - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, - "requires": { - "callsites": "^0.2.0" - } - }, - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "dev": true, - "requires": { - "camelcase": "4.1.0", - "map-obj": "2.0.0", - "quick-lru": "1.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - } - } - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "requires": { - "browserslist": "4.0.1", - "caniuse-lite": "1.0.30000840", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30000840", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000840.tgz", - "integrity": "sha512-Lw6AaouV6lh7TgIdQtLiUFKKO2mtDnZFkzCq5/V6tqs4ZI0OGVSDCEt1uegZ3OOBEBUYuVw3Hhr9DQSbgVofFA==", - "dev": true - }, - "capture-exit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-1.2.0.tgz", - "integrity": "sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28=", - "dev": true, - "requires": { - "rsvp": "3.6.2" - } - }, - "capture-stack-trace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", - "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", - "dev": true - }, - "cardinal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-1.0.0.tgz", - "integrity": "sha1-UOIcGwqjdyn5N33vGWtanOyTLuk=", - "dev": true, - "requires": { - "ansicolors": "0.2.1", - "redeyed": "1.0.1" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "ccount": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.3.tgz", - "integrity": "sha512-Jt9tIBkRc9POUof7QA/VwWd+58fKkEEfI+/t1/eOlxKM7ZhrczNzMFefge7Ai+39y1pR/pP6cI19guHy3FSLmw==", - "dev": true - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" - } - }, - "character-entities": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.2.tgz", - "integrity": "sha512-sMoHX6/nBiy3KKfC78dnEalnpn0Az0oSNvqUWYTtYrhRI5iUIYsROU48G+E+kMFQzqXaJ8kHJZ85n7y6/PHgwQ==", - "dev": true - }, - "character-entities-html4": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.2.tgz", - "integrity": "sha512-sIrXwyna2+5b0eB9W149izTPJk/KkJTg6mEzDGibwBUkyH1SbDa+nf515Ppdi3MaH35lW0JFJDWeq9Luzes1Iw==", - "dev": true - }, - "character-entities-legacy": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.2.tgz", - "integrity": "sha512-9NB2VbXtXYWdXzqrvAHykE/f0QJxzaKIpZ5QzNZrrgQ7Iyxr2vnfS8fCBNVW9nUEZE0lo57nxKRqnzY/dKrwlA==", - "dev": true - }, - "character-reference-invalid": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.2.tgz", - "integrity": "sha512-7I/xceXfKyUJmSAn/jw8ve/9DyOP7XxufNYLI9Px7CmsKgEUaZLUTax6nZxGQtaoiZCjpu6cHPj20xC/vqRReQ==", - "dev": true - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "dev": true - }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "dev": true, - "optional": true, - "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.3", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" - } - }, - "ci-info": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz", - "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==", - "dev": true - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", - "dev": true - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-table": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", - "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", - "dev": true, - "requires": { - "colors": "1.0.3" - }, - "dependencies": { - "colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", - "dev": true - } - } - }, - "cli-usage": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/cli-usage/-/cli-usage-0.1.7.tgz", - "integrity": "sha512-x/Q52iLSZsRrRb2ePmTsVYXrGcrPQ8G4yRAY7QpMlumxAfPVrnDOH2X6Z5s8qsAX7AA7YuIi8AXFrvH0wWEesA==", - "dev": true, - "requires": { - "marked": "0.3.19", - "marked-terminal": "2.0.0" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - } - } - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "cloneable-readable": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz", - "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "process-nextick-args": "2.0.0", - "readable-stream": "2.3.6" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "coa": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.1.tgz", - "integrity": "sha512-5wfTTO8E2/ja4jFSxePXlG5nRu5bBtL/r1HCIpJW/lzT6yDtKl0u0Z4o/Vpz32IpKmBn7HerheEZQgA9N2DarQ==", - "dev": true, - "requires": { - "q": "1.5.1" - } - }, - "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=", - "dev": true - }, - "collapse-white-space": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.4.tgz", - "integrity": "sha512-YfQ1tAUZm561vpYD+5eyWN8+UsceQbSrqqlc/6zDY2gtAE+uZLSdkkovhnGpmCThsvKBFakq4EdY/FF93E8XIw==", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" - } - }, - "color": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", - "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", - "dev": true, - "requires": { - "color-convert": "1.9.1", - "color-string": "1.5.2" - } - }, - "color-convert": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "color-string": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.2.tgz", - "integrity": "sha1-JuRYFLw8mny9Z1FkikFDRRSnc6k=", - "dev": true, - "requires": { - "color-name": "1.1.3", - "simple-swizzle": "0.2.2" - } - }, - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true - }, - "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "requires": { - "delayed-stream": "1.0.0" - } - }, - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "compare-func": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", - "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", - "dev": true, - "requires": { - "array-ify": "1.0.0", - "dot-prop": "3.0.0" - } - }, - "compare-versions": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.3.0.tgz", - "integrity": "sha512-MAAAIOdi2s4Gl6rZ76PNcUa9IOYB+5ICdT41o5uMRf09aEu/F9RK+qhe8RjXNPwcTjGV7KU7h2P/fljThFVqyQ==", - "dev": true - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "compressible": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.14.tgz", - "integrity": "sha1-MmxfUH+7BV9UEWeCuWmoG2einac=", - "dev": true, - "requires": { - "mime-db": "1.35.0" - }, - "dependencies": { - "mime-db": { - "version": "1.35.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", - "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==", - "dev": true - } - } - }, - "compression": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", - "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", - "dev": true, - "requires": { - "accepts": "1.3.5", - "bytes": "3.0.0", - "compressible": "2.0.14", - "debug": "2.6.9", - "on-headers": "1.0.1", - "safe-buffer": "5.1.2", - "vary": "1.1.2" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "configstore": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", - "dev": true, - "requires": { - "dot-prop": "4.2.0", - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.3.0", - "xdg-basedir": "3.0.0" - }, - "dependencies": { - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "requires": { - "is-obj": "1.0.1" - } - } - } - }, - "connect-history-api-fallback": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", - "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=", - "dev": true - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "0.1.4" - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true - }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", - "dev": true - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "content-type-parser": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz", - "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==", - "dev": true - }, - "contra": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/contra/-/contra-1.9.4.tgz", - "integrity": "sha1-9TveQtfltZhcrk2ZqNYQUm3o8o0=", - "dev": true, - "requires": { - "atoa": "1.0.0", - "ticky": "1.0.1" - } - }, - "conventional-changelog": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-2.0.1.tgz", - "integrity": "sha512-WeWcEcR7uBtRZ/uG6DRIlVqsm7UTnxrixaAPoPvfQP7FRPf1qIXL76nGKy4wXq+wO3zOpqYubWUqrYLIL3+xww==", - "dev": true, - "requires": { - "conventional-changelog-angular": "1.6.6", - "conventional-changelog-atom": "2.0.0", - "conventional-changelog-codemirror": "2.0.0", - "conventional-changelog-core": "3.0.0", - "conventional-changelog-ember": "2.0.0", - "conventional-changelog-eslint": "3.0.0", - "conventional-changelog-express": "2.0.0", - "conventional-changelog-jquery": "0.1.0", - "conventional-changelog-jscs": "0.1.0", - "conventional-changelog-jshint": "2.0.0", - "conventional-changelog-preset-loader": "2.0.0" - } - }, - "conventional-changelog-angular": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz", - "integrity": "sha512-suQnFSqCxRwyBxY68pYTsFkG0taIdinHLNEAX5ivtw8bCRnIgnpvcHmlR/yjUyZIrNPYAoXlY1WiEKWgSE4BNg==", - "dev": true, - "requires": { - "compare-func": "1.3.2", - "q": "1.5.1" - } - }, - "conventional-changelog-atom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.0.tgz", - "integrity": "sha512-ygwkwyTQYAm4S0tsDt+1yg8tHhRrv7qu9SOWPhNQlVrInFLsfKc0FActCA3de2ChknxpVPY2B53yhKvCAtkBCg==", - "dev": true, - "requires": { - "q": "1.5.1" - } - }, - "conventional-changelog-cli": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-2.0.1.tgz", - "integrity": "sha512-gQzMbLyPNYymbzJncJNBapLZTXEtXrq6qmQOJH0w/jVX9fxIli4sLalQgzEPjD7M1noLJd1cIdQAP1R++TkGxg==", - "dev": true, - "requires": { - "add-stream": "1.0.0", - "conventional-changelog": "2.0.1", - "lodash": "4.17.10", - "meow": "4.0.1", - "tempfile": "1.1.1" - } - }, - "conventional-changelog-codemirror": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.0.tgz", - "integrity": "sha512-pZt/YynJ5m8C9MGV5wkBuhM1eX+8a84fmNrdOylxg/lJV+lgtAiNhnpskNuixtf71iKVWSlEqMQ6z6CH7/Uo5A==", - "dev": true, - "requires": { - "q": "1.5.1" - } - }, - "conventional-changelog-core": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-3.0.0.tgz", - "integrity": "sha512-D2hApWWsdh4tkNgDjn1KtRapxUJ70Sd+V84btTVJJJ96S3cVRES8Ty3ih0TRkOZmDkw/uS0mxrHSskQ/P/Gvsg==", - "dev": true, - "requires": { - "conventional-changelog-writer": "4.0.0", - "conventional-commits-parser": "3.0.0", - "dateformat": "3.0.3", - "get-pkg-repo": "1.4.0", - "git-raw-commits": "2.0.0", - "git-remote-origin-url": "2.0.0", - "git-semver-tags": "2.0.0", - "lodash": "4.17.10", - "normalize-package-data": "2.4.0", - "q": "1.5.1", - "read-pkg": "1.1.0", - "read-pkg-up": "1.0.1", - "through2": "2.0.3" - } - }, - "conventional-changelog-ember": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.0.tgz", - "integrity": "sha512-s9ZYf3VMdYe8ca8bw1X+he050HZNy9Pm3dBpYA+BunDGFE4Fy7whOvYhWah2U9+j9l6y/whfa0+eHANvZytE9A==", - "dev": true, - "requires": { - "q": "1.5.1" - } - }, - "conventional-changelog-eslint": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.0.tgz", - "integrity": "sha512-Acn20v+13c+o1OAWKvc9sCCl73Nj2vOMyn+G82euiMZwgYNE9CcBkTnw/GKdBi9KiZMK9uy+SCQ/QyAEE+8vZA==", - "dev": true, - "requires": { - "q": "1.5.1" - } - }, - "conventional-changelog-express": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.0.tgz", - "integrity": "sha512-2svPjeXCrjwwqnzu/f3qU5LWoLO0jmUIEbtbbSRXAAP9Ag+137b484eJsiRt9DPYXSVzog0Eoek3rvCzfHcphQ==", - "dev": true, - "requires": { - "q": "1.5.1" - } - }, - "conventional-changelog-jquery": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz", - "integrity": "sha1-Agg5cWLjhGmG5xJztsecW1+A9RA=", - "dev": true, - "requires": { - "q": "1.5.1" - } - }, - "conventional-changelog-jscs": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz", - "integrity": "sha1-BHnrRDzH1yxYvwvPDvHURKkvDlw=", - "dev": true, - "requires": { - "q": "1.5.1" - } - }, - "conventional-changelog-jshint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.0.tgz", - "integrity": "sha512-+4fCln755N0ZzRUEdcDWR5Due71Dsqkbov6K/UmVCnljZvhVh0/wpT4YROoSsAnhfZO8shyWDPFKm6EP20pLQg==", - "dev": true, - "requires": { - "compare-func": "1.3.2", - "q": "1.5.1" - } - }, - "conventional-changelog-preset-loader": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.0.0.tgz", - "integrity": "sha512-hEWm9o6TxjS9aO1AKaHpl8avSXaUHiUXBT25vJ4ToaDi/gPDqt3OnZkwhIgubADUF+lPqcXpjFTOYcOL4AwyvA==", - "dev": true - }, - "conventional-changelog-writer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.0.tgz", - "integrity": "sha512-hMZPe0AQ6Bi05epeK/7hz80xxk59nPA5z/b63TOHq2wigM0/akreOc8N4Jam5b9nFgKWX1e9PdPv2ewgW6bcfg==", - "dev": true, - "requires": { - "compare-func": "1.3.2", - "conventional-commits-filter": "2.0.0", - "dateformat": "3.0.3", - "handlebars": "4.0.11", - "json-stringify-safe": "5.0.1", - "lodash": "4.17.10", - "meow": "4.0.1", - "semver": "5.5.0", - "split": "1.0.1", - "through2": "2.0.3" - } - }, - "conventional-commits-filter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.0.tgz", - "integrity": "sha512-Cfl0j1/NquB/TMVx7Wrmyq7uRM+/rPQbtVVGwzfkhZ6/yH6fcMmP0Q/9044TBZPTNdGzm46vXFXL14wbET0/Mg==", - "dev": true, - "requires": { - "is-subset": "0.1.1", - "modify-values": "1.0.1" - } - }, - "conventional-commits-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.0.tgz", - "integrity": "sha512-GWh71U26BLWgMykCp+VghZ4s64wVbtseECcKQ/PvcPZR2cUnz+FUc2J9KjxNl7/ZbCxST8R03c9fc+Vi0umS9Q==", - "dev": true, - "requires": { - "JSONStream": "1.3.3", - "is-text-path": "1.0.1", - "lodash": "4.17.10", - "meow": "4.0.1", - "split2": "2.2.0", - "through2": "2.0.3", - "trim-off-newlines": "1.0.1" - } - }, - "convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-js": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", - "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==", - "dev": true - }, - "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=" - }, - "cosmiconfig": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", - "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", - "dev": true, - "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.11.0", - "parse-json": "4.0.0", - "require-from-string": "2.0.2" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.2" - } - } - } - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.0" - } - }, - "create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "dev": true, - "requires": { - "capture-stack-trace": "1.0.0" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "md5.js": "1.3.4", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.3", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.2.14" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "1.0.1", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.3", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "diffie-hellman": "5.0.3", - "inherits": "2.0.3", - "pbkdf2": "3.0.16", - "public-encrypt": "4.0.2", - "randombytes": "2.0.6", - "randomfill": "1.0.4" - } - }, - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", - "dev": true - }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true - }, - "css-declaration-sorter": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-3.0.1.tgz", - "integrity": "sha512-jH4024SHZ3e0M7ann9VxpFpH3moplRXNz9ZBqvFMZqi09Yo5ARbs2wdPH8GqN9iRTlQynrbGbraNbBxBLei85Q==", - "dev": true, - "requires": { - "postcss": "6.0.23", - "timsort": "0.3.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "css-select": { - "version": "1.3.0-rc0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.3.0-rc0.tgz", - "integrity": "sha1-b5MZaqrnN2ZuoQNqjLFKj8t6kjE=", - "dev": true, - "requires": { - "boolbase": "1.0.0", - "css-what": "2.1.0", - "domutils": "1.5.1", - "nth-check": "1.0.1" - }, - "dependencies": { - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" - } - } - } - }, - "css-select-base-adapter": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.0.tgz", - "integrity": "sha1-AQKz0UYw34bD65+p9UVicBBs+ZA=", - "dev": true - }, - "css-tree": { - "version": "1.0.0-alpha25", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha25.tgz", - "integrity": "sha512-XC6xLW/JqIGirnZuUWHXCHRaAjje2b3OIB0Vj5RIJo6mIi/AdJo30quQl5LxUl0gkXDIrTrFGbMlcZjyFplz1A==", - "dev": true, - "requires": { - "mdn-data": "1.1.4", - "source-map": "0.5.7" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "css-unit-converter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz", - "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=", - "dev": true - }, - "css-url-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/css-url-regex/-/css-url-regex-1.1.0.tgz", - "integrity": "sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=", - "dev": true - }, - "css-what": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", - "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=", - "dev": true - }, - "cssnano": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.0.5.tgz", - "integrity": "sha512-P2O0sz/YAAzqZVsSWOrbliPCr0c6abwVNQmFZ48AgejN/GbzwEf6IVFGQAj0UKHC+crv60wUAPQocAnDmeWlkg==", - "dev": true, - "requires": { - "cosmiconfig": "5.0.5", - "cssnano-preset-default": "4.0.0", - "is-resolvable": "1.1.0", - "postcss": "6.0.23" - }, - "dependencies": { - "cosmiconfig": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.5.tgz", - "integrity": "sha512-94j37OtvxS5w7qr7Ta6dt67tWdnOxigBVN4VnSxNXFez9o18PGQ0D33SchKP17r9LAcWVTYV72G6vDayAUBFIg==", - "dev": true, - "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.11.0", - "parse-json": "4.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.2" - } - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "cssnano-preset-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.0.tgz", - "integrity": "sha1-wzQoe099SfstFwqS+SFGVXiOO2s=", - "dev": true, - "requires": { - "css-declaration-sorter": "3.0.1", - "cssnano-util-raw-cache": "4.0.0", - "postcss": "6.0.23", - "postcss-calc": "6.0.1", - "postcss-colormin": "4.0.1", - "postcss-convert-values": "4.0.0", - "postcss-discard-comments": "4.0.0", - "postcss-discard-duplicates": "4.0.0", - "postcss-discard-empty": "4.0.0", - "postcss-discard-overridden": "4.0.0", - "postcss-merge-longhand": "4.0.4", - "postcss-merge-rules": "4.0.1", - "postcss-minify-font-values": "4.0.0", - "postcss-minify-gradients": "4.0.0", - "postcss-minify-params": "4.0.0", - "postcss-minify-selectors": "4.0.0", - "postcss-normalize-charset": "4.0.0", - "postcss-normalize-display-values": "4.0.0", - "postcss-normalize-positions": "4.0.0", - "postcss-normalize-repeat-style": "4.0.0", - "postcss-normalize-string": "4.0.0", - "postcss-normalize-timing-functions": "4.0.0", - "postcss-normalize-unicode": "4.0.0", - "postcss-normalize-url": "4.0.0", - "postcss-normalize-whitespace": "4.0.0", - "postcss-ordered-values": "4.0.0", - "postcss-reduce-initial": "4.0.1", - "postcss-reduce-transforms": "4.0.0", - "postcss-svgo": "4.0.0", - "postcss-unique-selectors": "4.0.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", - "dev": true - }, - "cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", - "dev": true - }, - "cssnano-util-raw-cache": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.0.tgz", - "integrity": "sha1-vgooVuJfGF9feivMBiTii38Xmp8=", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "cssnano-util-same-parent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.0.tgz", - "integrity": "sha1-0qPeEDmqmLxOwlAB+gUDMMKhbaw=", - "dev": true - }, - "csso": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz", - "integrity": "sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==", - "dev": true, - "requires": { - "css-tree": "1.0.0-alpha.29" - }, - "dependencies": { - "css-tree": { - "version": "1.0.0-alpha.29", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz", - "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==", - "dev": true, - "requires": { - "mdn-data": "1.1.4", - "source-map": "0.5.7" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "cssom": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.4.tgz", - "integrity": "sha512-+7prCSORpXNeR4/fUP3rL+TzqtiFfhMvTd7uEqMdgPvLPt4+uzFUeufx5RHjGTACCargg/DiEt/moMQmvnfkog==", - "dev": true - }, - "cssstyle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.0.0.tgz", - "integrity": "sha512-Bpuh47j2mRMY60X90mXaJAEtJwxvA2roZzbgwAXYhMbmwmakdRr4Cq9L5SkleKJNLOKqHIa2YWyOXDX3VgggSQ==", - "dev": true, - "requires": { - "cssom": "0.3.4" - } - }, - "currently-unhandled": { - "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" - } - }, - "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "dev": true, - "requires": { - "es5-ext": "0.10.42" - } - }, - "dargs": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", - "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "1.0.0" - } - }, - "data-urls": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.0.0.tgz", - "integrity": "sha512-ai40PPQR0Fn1lD2PPie79CibnlMN2AYiDhwFX/rZHVsxbs5kNJSjegqXIprhouGXlRdEnfybva7kqRGnB6mypA==", - "dev": true, - "requires": { - "abab": "1.0.4", - "whatwg-mimetype": "2.1.0", - "whatwg-url": "6.5.0" - }, - "dependencies": { - "abab": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", - "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", - "dev": true - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dev": true - }, - "whatwg-url": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", - "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", - "dev": true, - "requires": { - "lodash.sortby": "4.7.0", - "tr46": "1.0.1", - "webidl-conversions": "4.0.2" - } - } - } - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "dev": true, - "requires": { - "decamelize": "1.2.0", - "map-obj": "1.0.1" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - } - } - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", - "dev": true - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "default-require-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", - "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", - "dev": true, - "requires": { - "strip-bom": "3.0.0" - }, - "dependencies": { - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - } - } - }, - "define-properties": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", - "dev": true, - "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.11" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "dev": true, - "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "dependency-graph": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.1.tgz", - "integrity": "sha512-2s2uojwu7aq0K94DwrnJwo/mTkGiPqy2cU7z5BVXmhb564WgITZR3ruZMUIJ8Ymb5ruew244odZCR23/lZoxXg==", - "dev": true - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "requires": { - "repeating": "2.0.1" - } - }, - "detect-node": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", - "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=", - "dev": true - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.6" - } - }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", - "dev": true, - "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", - "dev": true, - "requires": { - "ip": "1.1.5", - "safe-buffer": "5.1.2" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, - "requires": { - "buffer-indexof": "1.1.1" - } - }, - "doctoc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/doctoc/-/doctoc-1.3.1.tgz", - "integrity": "sha1-8BLjYD4xViVMLvIqyIxxkPVUJro=", - "dev": true, - "requires": { - "anchor-markdown-header": "0.5.7", - "htmlparser2": "3.9.2", - "markdown-to-ast": "3.4.0", - "minimist": "1.2.0", - "underscore": "1.8.3", - "update-section": "0.3.3" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-serializer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", - "dev": true, - "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" - }, - "dependencies": { - "domelementtype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", - "dev": true - } - } - }, - "dom-walk": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", - "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "domelementtype": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", - "dev": true - }, - "domexception": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", - "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", - "dev": true, - "requires": { - "webidl-conversions": "4.0.2" - } - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "requires": { - "domelementtype": "1.3.0" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" - } - }, - "dot-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", - "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", - "dev": true, - "requires": { - "is-obj": "1.0.1" - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "duplexify": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", - "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.45", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.45.tgz", - "integrity": "sha1-RYrBscXHYM6IEaFtK/vZfsMLr7g=", - "dev": true - }, - "elliptic": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.3", - "hmac-drbg": "1.0.1", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" - } - }, - "emoji-regex": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.3.tgz", - "integrity": "sha1-7HmjlpsC0uzytyJUJ5v5m8eoOTI=", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "1.4.0" - } - }, - "enhanced-resolve": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", - "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.4.1", - "object-assign": "4.1.1", - "tapable": "0.2.8" - } - }, - "entities": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", - "dev": true - }, - "envify": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/envify/-/envify-4.1.0.tgz", - "integrity": "sha512-IKRVVoAYr4pIx4yIWNsz9mOsboxlNXiu7TNBnem/K/uTHdkyzXWDzHCK7UTolqBbgaBz0tQHsD3YNls0uIIjiw==", - "requires": { - "esprima": "4.0.0", - "through": "2.3.8" - } - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dev": true, - "requires": { - "prr": "1.0.1" - } - }, - "error-ex": { - "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" - } - }, - "es-abstract": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", - "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", - "dev": true, - "requires": { - "es-to-primitive": "1.1.1", - "function-bind": "1.1.1", - "has": "1.0.1", - "is-callable": "1.1.4", - "is-regex": "1.0.4" - } - }, - "es-to-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", - "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", - "dev": true, - "requires": { - "is-callable": "1.1.4", - "is-date-object": "1.0.1", - "is-symbol": "1.0.1" - } - }, - "es5-ext": { - "version": "0.10.42", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.42.tgz", - "integrity": "sha512-AJxO1rmPe1bDEfSR6TJ/FgMFYuTBhR5R57KW58iCkYACMyFbrkqVyzXSurYoScDGvgyMpk7uRF/lPUPPTmsRSA==", - "dev": true, - "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "next-tick": "1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "es6-symbol": "3.1.1" - } - }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "es6-iterator": "2.0.3", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" - } - }, - "es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" - }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42" - } - }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "escodegen": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", - "dev": true, - "requires": { - "esprima": "2.7.3", - "estraverse": "1.9.3", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.2.0" - }, - "dependencies": { - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - }, - "estraverse": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", - "dev": true - }, - "source-map": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", - "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", - "dev": true, - "optional": true, - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", - "dev": true, - "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.1", - "estraverse": "4.2.0" - } - }, - "eslint": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.3.0.tgz", - "integrity": "sha512-N/tCqlMKkyNvAvLu+zI9AqDasnSLt00K+Hu8kdsERliC9jYEc8ck12XtjvOXrBKu8fK6RrBcN9bat6Xk++9jAg==", - "dev": true, - "requires": { - "ajv": "^6.5.0", - "babel-code-frame": "^6.26.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^4.0.0", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^4.0.0", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", - "ignore": "^4.0.2", - "imurmurhash": "^0.1.4", - "inquirer": "^5.2.0", - "is-resolvable": "^1.1.0", - "js-yaml": "^3.11.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.5", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^2.0.0", - "require-uncached": "^1.0.3", - "semver": "^5.5.0", - "string.prototype.matchall": "^2.0.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^4.0.3", - "text-table": "^0.2.0" - }, - "dependencies": { - "ajv": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", - "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.1" - } - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "eslint-scope": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", - "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "globals": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", - "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", - "dev": true - }, - "ignore": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.3.tgz", - "integrity": "sha512-Z/vAH2GGIEATQnBVXMclE2IGV6i0GyVngKThcGZ5kHgHMxLo9Ow2+XHRq1aEKEej5vOF1TPJNbvX6J/anT0M7A==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "eslint-config-algolia": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-algolia/-/eslint-config-algolia-13.1.0.tgz", - "integrity": "sha512-jqe/Ks5cJKQ6aItFvgzM7C3SQRp8BIm6cQah7m1LWENB8nNj6fDuQ8+4Y9L+2KSb9jLxzm5kiTkQ4tLaoLI2Ig==", - "dev": true - }, - "eslint-config-prettier": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-2.9.0.tgz", - "integrity": "sha512-ag8YEyBXsm3nmOv1Hz991VtNNDMRa+MNy8cY47Pl4bw6iuzqKbJajXdqUpiw13STdLLrznxgm1hj9NhxeOYq0A==", - "dev": true, - "requires": { - "get-stdin": "5.0.1" - }, - "dependencies": { - "get-stdin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", - "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=", - "dev": true - } - } - }, - "eslint-import-resolver-node": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", - "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", - "dev": true, - "requires": { - "debug": "2.6.9", - "resolve": "1.7.1" - } - }, - "eslint-module-utils": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", - "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", - "dev": true, - "requires": { - "debug": "2.6.9", - "pkg-dir": "1.0.0" - }, - "dependencies": { - "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" - } - }, - "path-exists": { - "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" - } - }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "dev": true, - "requires": { - "find-up": "1.1.2" - } - } - } - }, - "eslint-plugin-import": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.13.0.tgz", - "integrity": "sha512-t6hGKQDMIt9N8R7vLepsYXgDfeuhp6ZJSgtrLEDxonpSubyxUZHjhm6LsAaZX8q6GYVxkbT3kTsV9G5mBCFR6A==", - "dev": true, - "requires": { - "contains-path": "0.1.0", - "debug": "2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "0.3.2", - "eslint-module-utils": "2.2.0", - "has": "1.0.1", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "read-pkg-up": "2.0.0", - "resolve": "1.7.1" - }, - "dependencies": { - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "dev": true, - "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "2.3.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - } - } - }, - "eslint-plugin-jest": { - "version": "21.18.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-21.18.0.tgz", - "integrity": "sha512-fhuJuehoMtuEQ3Klgx0629hDmbs0M0g4tSZ65Wq2NqpLWCK5UC7hQnGS1Wh4+Vc/9P4ss4HxqZ1XK7honqUZNg==", - "dev": true - }, - "eslint-plugin-prettier": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.2.tgz", - "integrity": "sha512-tGek5clmW5swrAx1mdPYM8oThrBE83ePh7LeseZHBWfHVGrHPhKn7Y5zgRMbU/9D5Td9K4CEmUPjGxA7iw98Og==", - "dev": true, - "requires": { - "fast-diff": "1.1.2", - "jest-docblock": "21.2.0" - } - }, - "eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", - "dev": true, - "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" - } - }, - "eslint-utils": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", - "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", - "dev": true - }, - "eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", - "dev": true - }, - "espree": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-4.0.0.tgz", - "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==", - "dev": true, - "requires": { - "acorn": "^5.6.0", - "acorn-jsx": "^4.1.1" - }, - "dependencies": { - "acorn": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", - "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", - "dev": true - } - } - }, - "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==" - }, - "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", - "dev": true, - "requires": { - "estraverse": "^4.0.0" - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "4.2.0" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42" - } - }, - "eventemitter3": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", - "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==", - "dev": true - }, - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" - }, - "eventsource": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", - "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", - "dev": true, - "requires": { - "original": "1.0.1" - } - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.2" - } - }, - "exec-sh": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", - "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", - "dev": true, - "requires": { - "merge": "1.2.0" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "0.1.1" - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, - "requires": { - "fill-range": "2.2.4" - } - }, - "expect": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-21.2.1.tgz", - "integrity": "sha512-orfQQqFRTX0jH7znRIGi8ZMR8kTNpXklTTz8+HGTpmTKZo3Occ6JNB5FXMb8cRuiiC/GyDqsr30zUa66ACYlYw==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "jest-diff": "21.2.1", - "jest-get-type": "21.2.0", - "jest-matcher-utils": "21.2.1", - "jest-message-util": "21.2.1", - "jest-regex-util": "21.2.0" - } - }, - "express": { - "version": "4.16.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", - "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", - "dev": true, - "requires": { - "accepts": "1.3.5", - "array-flatten": "1.1.1", - "body-parser": "1.18.2", - "content-disposition": "0.5.2", - "content-type": "1.0.4", - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "finalhandler": "1.1.1", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.4", - "qs": "6.5.1", - "range-parser": "1.2.0", - "safe-buffer": "5.1.1", - "send": "0.16.2", - "serve-static": "1.13.2", - "setprototypeof": "1.1.0", - "statuses": "1.4.0", - "type-is": "1.6.16", - "utils-merge": "1.0.1", - "vary": "1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", - "dev": true - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true - } - } - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "dev": true, - "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" - }, - "fast-diff": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz", - "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==", - "dev": true - }, - "fast-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.2.tgz", - "integrity": "sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g==", - "dev": true, - "requires": { - "@mrmlnc/readdir-enhanced": "2.2.1", - "@nodelib/fs.stat": "1.1.0", - "glob-parent": "3.1.0", - "is-glob": "4.0.0", - "merge2": "1.2.2", - "micromatch": "3.1.10" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true, - "requires": { - "websocket-driver": "0.7.0" - } - }, - "fb-watchman": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", - "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", - "dev": true, - "requires": { - "bser": "2.0.0" - } - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true, - "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - } - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "filename-reserved-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz", - "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=", - "dev": true - }, - "filenamify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz", - "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=", - "dev": true, - "requires": { - "filename-reserved-regex": "1.0.0", - "strip-outer": "1.0.1", - "trim-repeated": "1.0.0" - } - }, - "filenamify-url": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/filenamify-url/-/filenamify-url-1.0.0.tgz", - "integrity": "sha1-syvYExnvWGO3MHi+1Q9GpPeXX1A=", - "dev": true, - "requires": { - "filenamify": "1.2.1", - "humanize-url": "1.0.1" - } - }, - "fileset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", - "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", - "dev": true, - "requires": { - "glob": "7.1.2", - "minimatch": "3.0.4" - } - }, - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "dev": true, - "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.0.0", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" - } - }, - "finalhandler": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", - "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.4.0", - "unpipe": "1.0.0" - } - }, - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dev": true, - "requires": { - "commondir": "1.0.1", - "make-dir": "1.3.0", - "pkg-dir": "2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "flat-cache": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", - "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", - "dev": true, - "requires": { - "circular-json": "^0.3.1", - "del": "^2.0.2", - "graceful-fs": "^4.1.2", - "write": "^0.2.1" - } - }, - "flatten": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", - "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", - "dev": true - }, - "flush-write-stream": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "follow-redirects": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz", - "integrity": "sha512-v9GI1hpaqq1ZZR6pBD1+kI7O24PhDvNGNodjS3MdcEqyrahCp8zbtpv+2B/krUnSmUH80lbAS7MrdeK5IylgKg==", - "dev": true, - "requires": { - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "requires": { - "for-in": "1.0.2" - } - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "fs-extra": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", - "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.1" - } - }, - "fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "through2": "2.0.3" - } - }, - "fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.3.tgz", - "integrity": "sha512-X+57O5YkDTiEQGiw8i7wYc2nQgweIekqkepI8Q3y4wVlurgBt2SuwxTeYUYMZIGpLZH3r/TsMjczCMXE5ZOt7Q==", - "dev": true, - "optional": true, - "requires": { - "nan": "2.10.0", - "node-pre-gyp": "0.9.1" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "2.6.9", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.4.2", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "2.2.4" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.21", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": "2.1.2" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.2.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" - } - }, - "minizlib": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "2.2.4" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.9.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.6", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" - } - }, - "npm-bundled": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.1.10", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.5.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.2" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.3" - }, - "dependencies": { - "is-fullwidth-code-point": { - "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" - } - }, - "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" - } - } - } - }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, - "requires": { - "globule": "1.2.1" - } - }, - "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", - "dev": true - }, - "get-pkg-repo": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz", - "integrity": "sha1-xztInAbYDMVTbCyFP54FIyBWly0=", - "dev": true, - "requires": { - "hosted-git-info": "2.6.0", - "meow": "3.7.0", - "normalize-package-data": "2.4.0", - "parse-github-repo-url": "1.4.1", - "through2": "2.0.3" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "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" - } - }, - "indent-string": { - "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" - } - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "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", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "redent": { - "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" - } - }, - "strip-indent": { - "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" - } - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - } - } - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "1.0.0" - } - }, - "gh-pages": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-1.2.0.tgz", - "integrity": "sha512-cGLYAvxtlQ1iTwAS4g7FreZPXoE/g62Fsxln2mmR19mgs4zZI+XJ+wVVUhBFCF/0+Nmvbq+abyTWue1m1BSnmg==", - "dev": true, - "requires": { - "async": "2.6.1", - "commander": "2.15.1", - "filenamify-url": "1.0.0", - "fs-extra": "5.0.0", - "globby": "6.1.0", - "graceful-fs": "4.1.11", - "rimraf": "2.6.2" - }, - "dependencies": { - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "requires": { - "lodash": "4.17.10" - } - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - } - } - }, - "git-raw-commits": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz", - "integrity": "sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg==", - "dev": true, - "requires": { - "dargs": "4.1.0", - "lodash.template": "4.4.0", - "meow": "4.0.1", - "split2": "2.2.0", - "through2": "2.0.3" - } - }, - "git-remote-origin-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", - "dev": true, - "requires": { - "gitconfiglocal": "1.0.0", - "pify": "2.3.0" - } - }, - "git-semver-tags": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-2.0.0.tgz", - "integrity": "sha512-lSgFc3zQTul31nFje2Q8XdNcTOI6B4I3mJRPCgFzHQQLfxfqdWTYzdtCaynkK5Xmb2wQlSJoKolhXJ1VhKROnQ==", - "dev": true, - "requires": { - "meow": "4.0.1", - "semver": "5.5.0" - } - }, - "gitconfiglocal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", - "dev": true, - "requires": { - "ini": "1.3.5" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" - } - }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "2.0.1" - } - }, - "glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", - "dev": true, - "requires": { - "extend": "3.0.1", - "glob": "7.1.2", - "glob-parent": "3.1.0", - "is-negated-glob": "1.0.0", - "ordered-read-streams": "1.0.1", - "pumpify": "1.5.1", - "readable-stream": "2.3.6", - "remove-trailing-separator": "1.1.0", - "to-absolute-glob": "2.0.2", - "unique-stream": "2.2.1" - }, - "dependencies": { - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true - }, - "global": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", - "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", - "requires": { - "min-document": "2.19.0", - "process": "0.5.2" - } - }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "dev": true, - "requires": { - "ini": "1.3.5" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "globule": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", - "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", - "dev": true, - "requires": { - "glob": "7.1.2", - "lodash": "4.17.10", - "minimatch": "3.0.4" - } - }, - "got": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", - "dev": true, - "requires": { - "create-error-class": "3.0.2", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-redirect": "1.0.0", - "is-retry-allowed": "1.1.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.1", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "unzip-response": "2.0.1", - "url-parse-lax": "1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true - }, - "handle-thing": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", - "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", - "dev": true - }, - "handlebars": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", - "dev": true, - "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": "1.0.1" - } - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "optional": true, - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "optional": true - } - } - } - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" - } - }, - "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", - "dev": true, - "requires": { - "function-bind": "1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" - } - }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "1.1.3", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" - } - }, - "hogan.js": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/hogan.js/-/hogan.js-3.0.2.tgz", - "integrity": "sha1-TNnhq9QpQUbnZ55B14mHMrAse/0=", - "requires": { - "mkdirp": "0.3.0", - "nopt": "1.0.10" - } - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "hosted-git-info": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", - "dev": true - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "wbuf": "1.7.3" - } - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "html-comment-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", - "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", - "dev": true - }, - "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", - "dev": true, - "requires": { - "whatwg-encoding": "1.0.3" - } - }, - "html-entities": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", - "dev": true - }, - "htmlparser2": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", - "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", - "dev": true, - "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.4.2", - "domutils": "1.7.0", - "entities": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "requires": { - "depd": "1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": "1.4.0" - } - }, - "http-parser-js": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", - "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=", - "dev": true - }, - "http-proxy": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", - "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", - "dev": true, - "requires": { - "eventemitter3": "3.1.0", - "follow-redirects": "1.5.1", - "requires-port": "1.0.0" - } - }, - "http-proxy-middleware": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz", - "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==", - "dev": true, - "requires": { - "http-proxy": "1.17.0", - "is-glob": "4.0.0", - "lodash": "4.17.10", - "micromatch": "3.1.10" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - } - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.1" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "humanize-url": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/humanize-url/-/humanize-url-1.0.1.tgz", - "integrity": "sha1-9KuZ4NKIF0yk4eUEB8VfuuRk7/8=", - "dev": true, - "requires": { - "normalize-url": "1.9.1", - "strip-url-auth": "1.0.1" - } - }, - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.11.tgz", - "integrity": "sha512-VhDzCKN7K8ufStx/CLj5/PDTMgph+qwN5Pkd5i0sGnVwk56zJ0lkT8Qzi1xqWLS0Wp29DgDtNeS7v8/wMoZeHg==", - "dev": true - }, - "ignore": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.8.tgz", - "integrity": "sha512-pUh+xUQQhQzevjRHHFqqcTy0/dP/kS9I8HSrUydhihjuD09W6ldVWFtIrwhXdUJHis3i2rZNqEHpZH/cbinFbg==", - "dev": true - }, - "immediate": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", - "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=" - }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "dev": true, - "requires": { - "import-from": "2.1.0" - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dev": true, - "requires": { - "resolve-from": "3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true - }, - "import-local": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", - "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", - "dev": true, - "requires": { - "pkg-dir": "2.0.0", - "resolve-cwd": "2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "in-publish": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", - "dev": true - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, - "inquirer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", - "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.1.0", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^5.5.2", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "internal-ip": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", - "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", - "dev": true, - "requires": { - "meow": "3.7.0" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "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" - } - }, - "indent-string": { - "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" - } - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "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", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "redent": { - "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" - } - }, - "strip-indent": { - "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" - } - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - } - } - }, - "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", - "dev": true - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "1.3.1" - } - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ipaddr.js": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", - "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=", - "dev": true - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "requires": { - "is-relative": "1.0.0", - "is-windows": "1.0.2" - } - }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-alphabetical": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.2.tgz", - "integrity": "sha512-V0xN4BYezDHcBSKb1QHUFMlR4as/XEuCZBzMJUU4n7+Cbt33SmUnSol+pnXFvLxSHNq2CemUXNdaXV6Flg7+xg==", - "dev": true - }, - "is-alphanumerical": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.2.tgz", - "integrity": "sha512-pyfU/0kHdISIgslFfZN9nfY1Gk3MquQgUm1mJTjdkEPpkAKNWuBTSqFwewOpR7N351VkErCiyV71zX7mlQQqsg==", - "dev": true, - "requires": { - "is-alphabetical": "1.0.2", - "is-decimal": "1.0.2" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "1.11.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "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" - } - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true - }, - "is-ci": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", - "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", - "dev": true, - "requires": { - "ci-info": "1.1.3" - } - }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dev": true, - "requires": { - "css-color-names": "0.0.4", - "hex-color-regex": "1.1.0", - "hsl-regex": "1.0.0", - "hsla-regex": "1.0.0", - "rgb-regex": "1.0.1", - "rgba-regex": "1.0.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true - }, - "is-decimal": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.2.tgz", - "integrity": "sha512-TRzl7mOCchnhchN+f3ICUCzYvL9ul7R+TYOsZ8xia++knyZAJfv/uA1FvQXsAnYIl1T3B2X5E/J7Wb1QXiIBXg==", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "requires": { - "is-primitive": "2.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-finite": { - "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" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "is-hexadecimal": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz", - "integrity": "sha512-but/G3sapV3MNyqiDBLrOi4x8uCIw0RY3o/Vb5GT0sMFHrVV7731wFSVy41T5FO1og7G0gXLJh0MkgPRouko/A==", - "dev": true - }, - "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", - "dev": true, - "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.1" - } - }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", - "dev": true - }, - "is-npm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", - "dev": true - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-odd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", - "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", - "dev": true, - "requires": { - "is-number": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "dev": true, - "requires": { - "is-path-inside": "1.0.1" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "1.0.2" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", - "dev": true - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "requires": { - "has": "1.0.1" - } - }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "requires": { - "is-unc-path": "1.0.0" - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "is-retry-allowed": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-subset": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", - "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=", - "dev": true - }, - "is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", - "dev": true, - "requires": { - "html-comment-regex": "1.1.1" - } - }, - "is-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", - "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", - "dev": true - }, - "is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", - "dev": true, - "requires": { - "text-extensions": "1.7.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "requires": { - "unc-path-regex": "0.1.2" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, - "isarray": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.4.tgz", - "integrity": "sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA==" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "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=" - }, - "istanbul-api": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.1.tgz", - "integrity": "sha512-duj6AlLcsWNwUpfyfHt0nWIeRiZpuShnP40YTxOGQgtaN8fd6JYSxsvxUphTDy8V5MfDXo4s/xVCIIvVCO808g==", - "dev": true, - "requires": { - "async": "2.6.1", - "compare-versions": "3.3.0", - "fileset": "2.0.3", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.2.1", - "istanbul-lib-instrument": "1.10.1", - "istanbul-lib-report": "1.1.4", - "istanbul-lib-source-maps": "1.2.5", - "istanbul-reports": "1.3.0", - "js-yaml": "3.11.0", - "mkdirp": "0.5.1", - "once": "1.4.0" - }, - "dependencies": { - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "requires": { - "lodash": "4.17.10" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "istanbul-lib-source-maps": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.5.tgz", - "integrity": "sha512-8O2T/3VhrQHn0XcJbP1/GN7kXMiRAlPi+fj3uEHrjBD8Oz7Py0prSC25C09NuAZS6bgW1NNKAvCSHZXB0irSGA==", - "dev": true, - "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "istanbul-lib-coverage": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", - "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", - "dev": true - }, - "istanbul-lib-hook": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.1.tgz", - "integrity": "sha512-eLAMkPG9FU0v5L02lIkcj/2/Zlz9OuluaXikdr5iStk8FDbSwAixTK9TkYxbF0eNnzAJTwM2fkV2A1tpsIp4Jg==", - "dev": true, - "requires": { - "append-transform": "1.0.0" - } - }, - "istanbul-lib-instrument": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", - "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", - "dev": true, - "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.0", - "semver": "5.5.0" - } - }, - "istanbul-lib-report": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz", - "integrity": "sha512-Azqvq5tT0U09nrncK3q82e/Zjkxa4tkFZv7E6VcqP0QCPn6oNljDPfrZEC/umNXds2t7b8sRJfs6Kmpzt8m2kA==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", - "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", - "dev": true, - "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "istanbul-reports": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.3.0.tgz", - "integrity": "sha512-y2Z2IMqE1gefWUaVjrBm0mSKvUkaBy9Vqz8iwr/r40Y9hBbIteH5wqHG/9DLTfJ9xUnUT2j7A3+VVJ6EaYBllA==", - "dev": true, - "requires": { - "handlebars": "4.0.11" - } - }, - "jest": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-21.2.1.tgz", - "integrity": "sha512-mXN0ppPvWYoIcC+R+ctKxAJ28xkt/Z5Js875padm4GbgUn6baeR5N4Ng6LjatIRpUQDZVJABT7Y4gucFjPryfw==", - "dev": true, - "requires": { - "jest-cli": "21.2.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "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" - } - }, - "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" - } - } - } - }, - "is-fullwidth-code-point": { - "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" - } - }, - "jest-cli": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-21.2.1.tgz", - "integrity": "sha512-T1BzrbFxDIW/LLYQqVfo94y/hhaj1NzVQkZgBumAC+sxbjMROI7VkihOdxNR758iYbQykL2ZOWUBurFgkQrzdg==", - "dev": true, - "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "is-ci": "1.1.0", - "istanbul-api": "1.3.1", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-instrument": "1.10.1", - "istanbul-lib-source-maps": "1.2.3", - "jest-changed-files": "21.2.0", - "jest-config": "21.2.1", - "jest-environment-jsdom": "21.2.1", - "jest-haste-map": "21.2.0", - "jest-message-util": "21.2.1", - "jest-regex-util": "21.2.0", - "jest-resolve-dependencies": "21.2.0", - "jest-runner": "21.2.1", - "jest-runtime": "21.2.1", - "jest-snapshot": "21.2.1", - "jest-util": "21.2.1", - "micromatch": "2.3.11", - "node-notifier": "5.2.1", - "pify": "3.0.0", - "slash": "1.0.0", - "string-length": "2.0.0", - "strip-ansi": "4.0.0", - "which": "1.2.14", - "worker-farm": "1.6.0", - "yargs": "9.0.1" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "2.3.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "yargs": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", - "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", - "dev": true, - "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "7.0.0" - } - } - } - }, - "jest-changed-files": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-21.2.0.tgz", - "integrity": "sha512-+lCNP1IZLwN1NOIvBcV5zEL6GENK6TXrDj4UxWIeLvIsIDa+gf6J7hkqsW2qVVt/wvH65rVvcPwqXdps5eclTQ==", - "dev": true, - "requires": { - "throat": "4.1.0" - } - }, - "jest-config": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-21.2.1.tgz", - "integrity": "sha512-fJru5HtlD/5l2o25eY9xT0doK3t2dlglrqoGpbktduyoI0T5CwuB++2YfoNZCrgZipTwPuAGonYv0q7+8yDc/A==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "glob": "7.1.2", - "jest-environment-jsdom": "21.2.1", - "jest-environment-node": "21.2.1", - "jest-get-type": "21.2.0", - "jest-jasmine2": "21.2.1", - "jest-regex-util": "21.2.0", - "jest-resolve": "21.2.0", - "jest-util": "21.2.1", - "jest-validate": "21.2.1", - "pretty-format": "21.2.1" - } - }, - "jest-diff": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-21.2.1.tgz", - "integrity": "sha512-E5fu6r7PvvPr5qAWE1RaUwIh/k6Zx/3OOkZ4rk5dBJkEWRrUuSgbMt2EO8IUTPTd6DOqU3LW6uTIwX5FRvXoFA==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "diff": "3.5.0", - "jest-get-type": "21.2.0", - "pretty-format": "21.2.1" - } - }, - "jest-docblock": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", - "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==", - "dev": true - }, - "jest-environment-jsdom": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-21.2.1.tgz", - "integrity": "sha512-mecaeNh0eWmzNrUNMWARysc0E9R96UPBamNiOCYL28k7mksb1d0q6DD38WKP7ABffjnXyUWJPVaWRgUOivwXwg==", - "dev": true, - "requires": { - "jest-mock": "21.2.0", - "jest-util": "21.2.1", - "jsdom": "9.12.0" - }, - "dependencies": { - "abab": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", - "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", - "dev": true - }, - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - }, - "acorn-globals": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", - "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", - "dev": true, - "requires": { - "acorn": "4.0.13" - } - }, - "cssstyle": { - "version": "0.2.37", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", - "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", - "dev": true, - "requires": { - "cssom": "0.3.4" - } - }, - "jsdom": { - "version": "9.12.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz", - "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=", - "dev": true, - "requires": { - "abab": "1.0.4", - "acorn": "4.0.13", - "acorn-globals": "3.1.0", - "array-equal": "1.0.0", - "content-type-parser": "1.0.2", - "cssom": "0.3.4", - "cssstyle": "0.2.37", - "escodegen": "1.8.1", - "html-encoding-sniffer": "1.0.2", - "nwmatcher": "1.4.4", - "parse5": "1.5.1", - "request": "2.87.0", - "sax": "1.2.4", - "symbol-tree": "3.2.2", - "tough-cookie": "2.3.4", - "webidl-conversions": "4.0.2", - "whatwg-encoding": "1.0.3", - "whatwg-url": "4.8.0", - "xml-name-validator": "2.0.1" - } - }, - "parse5": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", - "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", - "dev": true - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "dev": true - }, - "whatwg-url": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", - "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=", - "dev": true, - "requires": { - "tr46": "0.0.3", - "webidl-conversions": "3.0.1" - }, - "dependencies": { - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "dev": true - } - } - }, - "xml-name-validator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", - "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", - "dev": true - } - } - }, - "jest-environment-node": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-21.2.1.tgz", - "integrity": "sha512-R211867wx9mVBVHzrjGRGTy5cd05K7eqzQl/WyZixR/VkJ4FayS8qkKXZyYnwZi6Rxo6WEV81cDbiUx/GfuLNw==", - "dev": true, - "requires": { - "jest-mock": "21.2.0", - "jest-util": "21.2.1" - } - }, - "jest-get-type": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-21.2.0.tgz", - "integrity": "sha512-y2fFw3C+D0yjNSDp7ab1kcd6NUYfy3waPTlD8yWkAtiocJdBRQqNoRqVfMNxgj+IjT0V5cBIHJO0z9vuSSZ43Q==", - "dev": true - }, - "jest-haste-map": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-21.2.0.tgz", - "integrity": "sha512-5LhsY/loPH7wwOFRMs+PT4aIAORJ2qwgbpMFlbWbxfN0bk3ZCwxJ530vrbSiTstMkYLao6JwBkLhCJ5XbY7ZHw==", - "dev": true, - "requires": { - "fb-watchman": "2.0.0", - "graceful-fs": "4.1.11", - "jest-docblock": "21.2.0", - "micromatch": "2.3.11", - "sane": "2.5.2", - "worker-farm": "1.6.0" - } - }, - "jest-jasmine2": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-21.2.1.tgz", - "integrity": "sha512-lw8FXXIEekD+jYNlStfgNsUHpfMWhWWCgHV7n0B7mA/vendH7vBFs8xybjQsDzJSduptBZJHqQX9SMssya9+3A==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "expect": "21.2.1", - "graceful-fs": "4.1.11", - "jest-diff": "21.2.1", - "jest-matcher-utils": "21.2.1", - "jest-message-util": "21.2.1", - "jest-snapshot": "21.2.1", - "p-cancelable": "0.3.0" - } - }, - "jest-matcher-utils": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-21.2.1.tgz", - "integrity": "sha512-kn56My+sekD43dwQPrXBl9Zn9tAqwoy25xxe7/iY4u+mG8P3ALj5IK7MLHZ4Mi3xW7uWVCjGY8cm4PqgbsqMCg==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "jest-get-type": "21.2.0", - "pretty-format": "21.2.1" - } - }, - "jest-message-util": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-21.2.1.tgz", - "integrity": "sha512-EbC1X2n0t9IdeMECJn2BOg7buOGivCvVNjqKMXTzQOu7uIfLml+keUfCALDh8o4rbtndIeyGU8/BKfoTr/LVDQ==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "micromatch": "2.3.11", - "slash": "1.0.0" - } - }, - "jest-mock": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-21.2.0.tgz", - "integrity": "sha512-aZDfyVf0LEoABWiY6N0d+O963dUQSyUa4qgzurHR3TBDPen0YxKCJ6l2i7lQGh1tVdsuvdrCZ4qPj+A7PievCw==", - "dev": true - }, - "jest-regex-util": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-21.2.0.tgz", - "integrity": "sha512-BKQ1F83EQy0d9Jen/mcVX7D+lUt2tthhK/2gDWRgLDJRNOdRgSp1iVqFxP8EN1ARuypvDflRfPzYT8fQnoBQFQ==", - "dev": true - }, - "jest-resolve": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-21.2.0.tgz", - "integrity": "sha512-vefQ/Lr+VdNvHUZFQXWtOqHX3HEdOc2MtSahBO89qXywEbUxGPB9ZLP9+BHinkxb60UT2Q/tTDOS6rYc6Mwigw==", - "dev": true, - "requires": { - "browser-resolve": "1.11.3", - "chalk": "2.4.1", - "is-builtin-module": "1.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-21.2.0.tgz", - "integrity": "sha512-ok8ybRFU5ScaAcfufIQrCbdNJSRZ85mkxJ1EhUp8Bhav1W1/jv/rl1Q6QoVQHObNxmKnbHVKrfLZbCbOsXQ+bQ==", - "dev": true, - "requires": { - "jest-regex-util": "21.2.0" - } - }, - "jest-runner": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-21.2.1.tgz", - "integrity": "sha512-Anb72BOQlHqF/zETqZ2K20dbYsnqW/nZO7jV8BYENl+3c44JhMrA8zd1lt52+N7ErnsQMd2HHKiVwN9GYSXmrg==", - "dev": true, - "requires": { - "jest-config": "21.2.1", - "jest-docblock": "21.2.0", - "jest-haste-map": "21.2.0", - "jest-jasmine2": "21.2.1", - "jest-message-util": "21.2.1", - "jest-runtime": "21.2.1", - "jest-util": "21.2.1", - "pify": "3.0.0", - "throat": "4.1.0", - "worker-farm": "1.6.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "jest-runtime": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-21.2.1.tgz", - "integrity": "sha512-6omlpA3+NSE+rHwD0PQjNEjZeb2z+oRmuehMfM1tWQVum+E0WV3pFt26Am0DUfQkkPyTABvxITRjCUclYgSOsA==", - "dev": true, - "requires": { - "babel-core": "6.26.3", - "babel-jest": "21.2.0", - "babel-plugin-istanbul": "4.1.6", - "chalk": "2.4.1", - "convert-source-map": "1.5.1", - "graceful-fs": "4.1.11", - "jest-config": "21.2.1", - "jest-haste-map": "21.2.0", - "jest-regex-util": "21.2.0", - "jest-resolve": "21.2.0", - "jest-util": "21.2.1", - "json-stable-stringify": "1.0.1", - "micromatch": "2.3.11", - "slash": "1.0.0", - "strip-bom": "3.0.0", - "write-file-atomic": "2.3.0", - "yargs": "9.0.1" - }, - "dependencies": { - "babel-jest": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-21.2.0.tgz", - "integrity": "sha512-O0W2qLoWu1QOoOGgxiR2JID4O6WSpxPiQanrkyi9SSlM0PJ60Ptzlck47lhtnr9YZO3zYOsxHwnyeWJ6AffoBQ==", - "dev": true, - "requires": { - "babel-plugin-istanbul": "4.1.6", - "babel-preset-jest": "21.2.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.2.0.tgz", - "integrity": "sha512-yi5QuiVyyvhBUDLP4ButAnhYzkdrUwWDtvUJv71hjH3fclhnZg4HkDeqaitcR2dZZx/E67kGkRcPVjtVu+SJfQ==", - "dev": true - }, - "babel-preset-jest": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-21.2.0.tgz", - "integrity": "sha512-hm9cBnr2h3J7yXoTtAVV0zg+3vg0Q/gT2GYuzlreTU0EPkJRtlNgKJJ3tBKEn0+VjAi3JykV6xCJkuUYttEEfA==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "21.2.0", - "babel-plugin-syntax-object-rest-spread": "6.13.0" - } - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" - }, - "dependencies": { - "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" - } - } - } - }, - "is-fullwidth-code-point": { - "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" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "2.3.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "yargs": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", - "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", - "dev": true, - "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "7.0.0" - } - } - } - }, - "jest-snapshot": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-21.2.1.tgz", - "integrity": "sha512-bpaeBnDpdqaRTzN8tWg0DqOTo2DvD3StOemxn67CUd1p1Po+BUpvePAp44jdJ7Pxcjfg+42o4NHw1SxdCA2rvg==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "jest-diff": "21.2.1", - "jest-matcher-utils": "21.2.1", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "pretty-format": "21.2.1" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } - } - }, - "jest-util": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-21.2.1.tgz", - "integrity": "sha512-r20W91rmHY3fnCoO7aOAlyfC51x2yeV3xF+prGsJAUsYhKeV670ZB8NO88Lwm7ASu8SdH0S+U+eFf498kjhA4g==", - "dev": true, - "requires": { - "callsites": "2.0.0", - "chalk": "2.4.1", - "graceful-fs": "4.1.11", - "jest-message-util": "21.2.1", - "jest-mock": "21.2.0", - "jest-validate": "21.2.1", - "mkdirp": "0.5.1" - }, - "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } - } - }, - "jest-validate": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-21.2.1.tgz", - "integrity": "sha512-k4HLI1rZQjlU+EC682RlQ6oZvLrE5SCh3brseQc24vbZTxzT/k/3urar5QMCVgjadmSO7lECeGdc6YxnM3yEGg==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "jest-get-type": "21.2.0", - "leven": "2.1.0", - "pretty-format": "21.2.1" - } - }, - "js-base64": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.3.tgz", - "integrity": "sha512-H7ErYLM34CvDMto3GbD6xD0JLUGYXR3QTcH6B/tr4Hi/QpSThnCsIp+Sy5FRTw3B0d6py4HcNkW7nO/wdtGWEw==", - "dev": true - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "js-yaml": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", - "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", - "dev": true, - "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true - }, - "jsdom": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", - "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", - "dev": true, - "requires": { - "abab": "2.0.0", - "acorn": "5.5.3", - "acorn-globals": "4.1.0", - "array-equal": "1.0.0", - "cssom": "0.3.4", - "cssstyle": "1.0.0", - "data-urls": "1.0.0", - "domexception": "1.0.1", - "escodegen": "1.11.0", - "html-encoding-sniffer": "1.0.2", - "left-pad": "1.3.0", - "nwsapi": "2.0.7", - "parse5": "4.0.0", - "pn": "1.1.0", - "request": "2.87.0", - "request-promise-native": "1.0.5", - "sax": "1.2.4", - "symbol-tree": "3.2.2", - "tough-cookie": "2.3.4", - "w3c-hr-time": "1.0.1", - "webidl-conversions": "4.0.2", - "whatwg-encoding": "1.0.3", - "whatwg-mimetype": "2.1.0", - "whatwg-url": "6.5.0", - "ws": "5.2.2", - "xml-name-validator": "3.0.0" - }, - "dependencies": { - "escodegen": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz", - "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==", - "dev": true, - "requires": { - "esprima": "3.1.3", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.6.1" - } - }, - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", - "dev": true - } - } - }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - }, - "json": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/json/-/json-9.0.6.tgz", - "integrity": "sha1-eXLCpaSKQmeNsnMMfCxO5uTiRYU=", - "dev": true - }, - "json-loader": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", - "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" - }, - "json-stable-stringify": { - "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" - } - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "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=" - }, - "json3": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11" - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "just-extend": { - "version": "1.1.27", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.27.tgz", - "integrity": "sha512-mJVp13Ix6gFo3SBAy9U/kL+oeZqzlYYYLQBwXVBlVzIsZwBqGREnOro24oC/8s8aox+rJhtZ2DiQof++IrkA+g==", - "dev": true - }, - "killable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz", - "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms=", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - }, - "latest-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", - "dev": true, - "requires": { - "package-json": "4.0.1" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true - }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, - "requires": { - "readable-stream": "2.3.6" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "1.0.0" - } - }, - "lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", - "dev": true, - "requires": { - "flush-write-stream": "1.0.3" - } - }, - "left-pad": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", - "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", - "dev": true - }, - "leven": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" - } - }, - "load-json-file": { - "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", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" - } - }, - "load-script": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz", - "integrity": "sha1-BJGTngvuVkPuSUp+PaPSuscMbKQ=" - }, - "loader-runner": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", - "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", - "dev": true - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, - "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - } - }, - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "lodash.mergewith": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", - "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", - "dev": true - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true - }, - "lodash.template": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", - "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", - "dev": true, - "requires": { - "lodash._reinterpolate": "3.0.0", - "lodash.templatesettings": "4.1.0" - } - }, - "lodash.templatesettings": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", - "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", - "dev": true, - "requires": { - "lodash._reinterpolate": "3.0.0" - } - }, - "lodash.toarray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", - "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=", - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "requires": { - "chalk": "2.4.1" - } - }, - "loglevel": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz", - "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=", - "dev": true - }, - "loglevelnext": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/loglevelnext/-/loglevelnext-1.0.5.tgz", - "integrity": "sha512-V/73qkPuJmx4BcBF19xPBr+0ZRVBhc4POxvZTZdMeXpJ4NItXSJ/MSwuFT0kQJlCbXvdlZoQQ/418bS1y9Jh6A==", - "dev": true, - "requires": { - "es6-symbol": "3.1.1", - "object.assign": "4.1.0" - } - }, - "lolex": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.1.tgz", - "integrity": "sha512-Oo2Si3RMKV3+lV5MsSWplDQFoTClz/24S0MMHYcgGWWmFXr6TMlqcqk/l1GtH+d5wLBwNRiqGnwDRMirtFalJw==", - "dev": true - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true - }, - "longest-streak": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-1.0.0.tgz", - "integrity": "sha1-0GWXxNTDG1LMsfXY+P5xSOr9aWU=", - "dev": true - }, - "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", - "dev": true, - "requires": { - "js-tokens": "3.0.2" - } - }, - "loud-rejection": { - "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" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "dev": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", - "dev": true, - "requires": { - "tmpl": "1.0.4" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "1.0.1" - } - }, - "markdown-table": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-0.4.0.tgz", - "integrity": "sha1-iQwsGzv+g/sA5BKbjkz+ZFJw+dE=", - "dev": true - }, - "markdown-to-ast": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/markdown-to-ast/-/markdown-to-ast-3.4.0.tgz", - "integrity": "sha1-Diy6gTkLBUmpFT7DsNkVthwWS+c=", - "dev": true, - "requires": { - "debug": "2.6.9", - "remark": "5.1.0", - "structured-source": "3.0.2", - "traverse": "0.6.6" - } - }, - "marked": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz", - "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==", - "dev": true - }, - "marked-terminal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-2.0.0.tgz", - "integrity": "sha1-Xq9Wi+ZvaGVBr6UqVYKAMQox3i0=", - "dev": true, - "requires": { - "cardinal": "1.0.0", - "chalk": "1.1.3", - "cli-table": "0.3.1", - "lodash.assign": "4.2.0", - "node-emoji": "1.8.1" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "math-random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", - "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", - "dev": true - }, - "md5.js": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", - "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", - "dev": true, - "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" - } - }, - "mdn-data": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz", - "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==", - "dev": true - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "dev": true, - "requires": { - "mimic-fn": "1.2.0" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "0.1.7", - "readable-stream": "2.3.6" - } - }, - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "4.2.0", - "decamelize-keys": "1.1.0", - "loud-rejection": "1.6.0", - "minimist": "1.2.0", - "minimist-options": "3.0.2", - "normalize-package-data": "2.4.0", - "read-pkg-up": "3.0.0", - "redent": "2.0.0", - "trim-newlines": "2.0.0" - }, - "dependencies": { - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.2" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "3.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - } - } - }, - "merge": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", - "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=", - "dev": true - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "merge2": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz", - "integrity": "sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" - } - }, - "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", - "dev": true - }, - "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" - }, - "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "requires": { - "mime-db": "1.33.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "requires": { - "dom-walk": "0.1.1" - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "minimist-options": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", - "dev": true, - "requires": { - "arrify": "1.0.1", - "is-plain-obj": "1.1.0" - } - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "dev": true, - "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", - "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=" - }, - "modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multi-glob": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/multi-glob/-/multi-glob-1.0.1.tgz", - "integrity": "sha1-5n0qtEKdJ2BubrTbNQlK/JF4h1A=", - "dev": true, - "requires": { - "async": "1.5.2", - "glob": "5.0.15", - "lodash": "3.10.1" - }, - "dependencies": { - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, - "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", - "dev": true - } - } - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "dev": true, - "requires": { - "dns-packet": "1.3.1", - "thunky": "1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "mversion": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/mversion/-/mversion-1.12.0.tgz", - "integrity": "sha512-Ax/IG1lW1OkB/HdhlmpM93jWboFP+hhWn7OTTOoQRckGNkWes78/di2YG77Oa+3vMZHeBKs0yrV6F5H1hWBR9g==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "cli-usage": "0.1.7", - "contra": "1.9.4", - "minimatch": "3.0.4", - "minimist": "1.2.0", - "rc": "1.2.8", - "semver": "5.5.0", - "through2": "2.0.3", - "update-notifier": "2.5.0", - "vinyl-fs": "3.0.3" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "nan": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", - "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", - "dev": true - }, - "nanomatch": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", - "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", - "dev": true - }, - "neo-async": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.1.tgz", - "integrity": "sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA==", - "dev": true - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, - "nice-try": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", - "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==", - "dev": true - }, - "nise": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.2.tgz", - "integrity": "sha512-BxH/DxoQYYdhKgVAfqVy4pzXRZELHOIewzoesxpjYvpU+7YOalQhGNPf7wAx8pLrTNPrHRDlLOkAl8UI0ZpXjw==", - "dev": true, - "requires": { - "@sinonjs/formatio": "2.0.0", - "just-extend": "1.1.27", - "lolex": "2.7.1", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" - } - }, - "node-emoji": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", - "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", - "dev": true, - "requires": { - "lodash.toarray": "4.4.0" - } - }, - "node-forge": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", - "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==", - "dev": true - }, - "node-gyp": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.7.0.tgz", - "integrity": "sha512-qDQE/Ft9xXP6zphwx4sD0t+VhwV7yFaloMpfbL2QnnDZcyaiakWlLdtFGGQfTAwpFHdpbRhRxVhIHN1OKAjgbg==", - "dev": true, - "requires": { - "fstream": "1.0.11", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.5", - "request": "2.81.0", - "rimraf": "2.6.2", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.2.14" - }, - "dependencies": { - "ajv": { - "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" - } - }, - "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=", - "dev": true - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true - }, - "boom": { - "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" - } - }, - "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" - } - }, - "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.6", - "mime-types": "2.1.18" - } - }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", - "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" - } - }, - "hawk": { - "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", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "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", - "sshpk": "1.14.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "requires": { - "abbrev": "1.1.1" - } - }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", - "dev": true - }, - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", - "dev": true - }, - "request": { - "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.7.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.1.2", - "stringstream": "0.0.5", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" - } - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true - }, - "sntp": { - "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" - } - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - } - } - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node-libs-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", - "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", - "dev": true, - "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.2.0", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.2.0", - "events": "1.1.1", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", - "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.6", - "stream-browserify": "2.0.1", - "stream-http": "2.8.2", - "string_decoder": "1.1.1", - "timers-browserify": "2.0.10", - "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.3", - "vm-browserify": "0.0.4" - }, - "dependencies": { - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - } - } - }, - "node-notifier": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.2.1.tgz", - "integrity": "sha512-MIBs+AAd6dJ2SklbbE8RUDRlIVhU8MaNLh1A9SUZDUHPiZkWLFde6UNwG41yQHZEToHgJMXqyVZ9UcS/ReOVTg==", - "dev": true, - "requires": { - "growly": "1.3.0", - "semver": "5.5.0", - "shellwords": "0.1.1", - "which": "1.3.1" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "2.0.0" - } - } - } - }, - "node-releases": { - "version": "1.0.0-alpha.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.0.0-alpha.10.tgz", - "integrity": "sha512-BSQrRgOfN6L/MoKIa7pRUc7dHvflCXMcqyTBvphixcSsgJTuUd24vAFONuNfVsuwTyz28S1HEc9XN6ZKylk4Hg==", - "dev": true, - "requires": { - "semver": "5.5.0" - } - }, - "node-sass": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.2.tgz", - "integrity": "sha512-LdxoJLZutx0aQXHtWIYwJKMj+9pTjneTcLWJgzf2XbGu0q5pRNqW5QvFCEdm3mc5rJOdru/mzln5d0EZLacf6g==", - "dev": true, - "requires": { - "async-foreach": "0.1.3", - "chalk": "1.1.3", - "cross-spawn": "3.0.1", - "gaze": "1.1.3", - "get-stdin": "4.0.1", - "glob": "7.1.2", - "in-publish": "2.0.0", - "lodash.assign": "4.2.0", - "lodash.clonedeep": "4.5.0", - "lodash.mergewith": "4.6.1", - "meow": "3.7.0", - "mkdirp": "0.5.1", - "nan": "2.10.0", - "node-gyp": "3.7.0", - "npmlog": "4.1.2", - "request": "2.87.0", - "sass-graph": "2.2.4", - "stdout-stream": "1.4.0", - "true-case-path": "1.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "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" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "dev": true, - "requires": { - "lru-cache": "4.1.3", - "which": "1.2.14" - } - }, - "indent-string": { - "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" - } - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "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", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } - } - }, - "redent": { - "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" - } - }, - "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", - "dev": true, - "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.7.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.0.3", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" - } - }, - "strip-indent": { - "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" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - } - } - }, - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "requires": { - "abbrev": "1.1.1" - } - }, - "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.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "1.1.0" - } - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "prepend-http": "1.0.4", - "query-string": "4.3.4", - "sort-keys": "1.1.2" - } - }, - "now-and-later": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.0.tgz", - "integrity": "sha1-vGHLtFbXnLMiB85HygUTb/Ln1u4=", - "dev": true, - "requires": { - "once": "1.4.0" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "2.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "requires": { - "are-we-there-yet": "1.1.5", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "nth-check": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", - "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", - "dev": true, - "requires": { - "boolbase": "1.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "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=", - "dev": true - }, - "nwmatcher": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz", - "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==", - "dev": true - }, - "nwsapi": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.0.7.tgz", - "integrity": "sha512-VZXniaaaORAXGCNsvUNefsKRQYk8zCzQZ57jalgrpHcU70OrAzKAiN/3plYtH/VPRmZeYyUzQiYfKzcMXC1g5Q==", - "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=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "object-keys": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", - "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "requires": { - "define-properties": "1.1.2", - "function-bind": "1.1.1", - "has-symbols": "1.0.0", - "object-keys": "1.0.11" - } - }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", - "dev": true, - "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.12.0" - } - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "object.values": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz", - "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=", - "dev": true, - "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.12.0", - "function-bind": "1.1.1", - "has": "1.0.1" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", - "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "onchange": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/onchange/-/onchange-4.1.0.tgz", - "integrity": "sha512-xSuX6stJmPO+V1CBFYUdVS7AzuH2nyXXzW6OW7HLXaBa9Pc7bFGcjCXTha575wTeEe2N8p1gIQhwLMDNU15YPg==", - "dev": true, - "requires": { - "arrify": "1.0.1", - "chokidar": "2.0.4", - "cross-spawn": "6.0.5", - "minimist": "1.2.0", - "tree-kill": "1.2.0" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "chokidar": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", - "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", - "dev": true, - "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "fsevents": "1.2.3", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "lodash.debounce": "4.0.8", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0", - "upath": "1.0.5" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "1.0.4", - "path-key": "2.0.1", - "semver": "5.5.0", - "shebang-command": "1.2.0", - "which": "1.2.14" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "opn": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", - "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", - "dev": true, - "requires": { - "is-wsl": "1.1.0" - } - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - } - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, - "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" - } - }, - "ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", - "dev": true, - "requires": { - "readable-stream": "2.3.6" - } - }, - "original": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.1.tgz", - "integrity": "sha512-IEvtB5vM5ULvwnqMxWBLxkS13JIEXbakizMSo3yoPNPCIWzg8TG3Usn/UhXoZFM/m+FuEA20KdzPSFq/0rS+UA==", - "dev": true, - "requires": { - "url-parse": "1.4.3" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "output-file-sync": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", - "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "object-assign": "4.1.1" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } - } - }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", - "dev": true, - "requires": { - "p-try": "1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "1.2.0" - } - }, - "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", - "dev": true - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "package-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", - "dev": true, - "requires": { - "got": "6.7.1", - "registry-auth-token": "3.3.2", - "registry-url": "3.1.0", - "semver": "5.5.0" - } - }, - "pako": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", - "dev": true - }, - "parse-asn1": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", - "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", - "dev": true, - "requires": { - "asn1.js": "4.10.1", - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.16" - } - }, - "parse-entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.1.2.tgz", - "integrity": "sha512-5N9lmQ7tmxfXf+hO3X6KRG6w7uYO/HL9fHalSySTdyn63C3WNvTM/1R8tn1u1larNcEbo3Slcy2bsVDQqvEpUg==", - "dev": true, - "requires": { - "character-entities": "1.2.2", - "character-entities-legacy": "1.1.2", - "character-reference-invalid": "1.1.2", - "is-alphanumerical": "1.0.2", - "is-decimal": "1.0.2", - "is-hexadecimal": "1.0.2" - } - }, - "parse-github-repo-url": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz", - "integrity": "sha1-nn2LslKmy2ukJZUGC3v23z28H1A=", - "dev": true - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true, - "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" - } - }, - "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" - } - }, - "parse5": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", - "dev": true - }, - "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "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=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", - "dev": true - }, - "path-to-regexp": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", - "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", - "dev": true, - "requires": { - "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "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", - "pinkie-promise": "2.0.1" - } - }, - "pbkdf2": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", - "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", - "dev": true, - "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "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=", - "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" - } - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "2.1.0" - } - }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", - "dev": true - }, - "pn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", - "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", - "dev": true - }, - "portfinder": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz", - "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", - "dev": true, - "requires": { - "async": "1.5.2", - "debug": "2.6.9", - "mkdirp": "0.5.1" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postcss": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.1.tgz", - "integrity": "sha512-c6M68yZX0bWnZ0GcX8duWcfweGeGQvYgw6w4xksRePDmrpCrLMqneN07xwce17ACWBAr0S+DoI0T31axZ21TKg==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - }, - "postcss-calc": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-6.0.1.tgz", - "integrity": "sha1-PSQXG79udinUIqQ26/5t2VEfQzA=", - "dev": true, - "requires": { - "css-unit-converter": "1.1.1", - "postcss": "6.0.23", - "postcss-selector-parser": "2.2.3", - "reduce-css-calc": "2.1.4" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-cli": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-6.0.0.tgz", - "integrity": "sha512-7DuxMn1Wj6dJKbjKpZXOdAc5nl5NfPXiJbg0m/+tdObPvgk1xv4+lZgNKD3jL/kCrDRPf1jgFlmq1cHh8lBR2w==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "chokidar": "2.0.4", - "dependency-graph": "0.7.1", - "fs-extra": "7.0.0", - "get-stdin": "6.0.0", - "globby": "8.0.1", - "postcss": "7.0.1", - "postcss-load-config": "2.0.0", - "postcss-reporter": "5.0.0", - "pretty-hrtime": "1.0.3", - "read-cache": "1.0.0", - "yargs": "12.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "chokidar": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", - "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", - "dev": true, - "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "fsevents": "1.2.3", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "lodash.debounce": "4.0.8", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0", - "upath": "1.0.5" - } - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" - } - }, - "decamelize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", - "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", - "dev": true, - "requires": { - "xregexp": "4.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "3.0.0" - } - }, - "fs-extra": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.0.tgz", - "integrity": "sha512-EglNDLRpmaTWiD/qraZn6HREAEAHJcJOmxNEYwq6xeMKnVMAy3GUcFB+wXt2C6k4CNvB/mP1y/U3dzvKKj5OtQ==", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.1" - } - }, - "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", - "dev": true - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, - "globby": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz", - "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", - "dev": true, - "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "fast-glob": "2.2.2", - "glob": "7.1.2", - "ignore": "3.3.8", - "pify": "3.0.0", - "slash": "1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "p-limit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", - "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", - "dev": true, - "requires": { - "p-try": "2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "2.0.0" - } - }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "yargs": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.1.tgz", - "integrity": "sha512-B0vRAp1hRX4jgIOWFtjfNjd9OA9RWYZ6tqGA9/I/IrTMsxmKvtWy+ersM+jzpQqbC3YfLzeABPdeTgcJ9eu1qQ==", - "dev": true, - "requires": { - "cliui": "4.1.0", - "decamelize": "2.0.0", - "find-up": "3.0.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "10.1.0" - } - }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "dev": true, - "requires": { - "camelcase": "4.1.0" - } - } - } - }, - "postcss-colormin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.1.tgz", - "integrity": "sha1-bxwYoBVbxpYT8v8ThD4uSuj/C74=", - "dev": true, - "requires": { - "browserslist": "4.0.1", - "color": "3.0.0", - "has": "1.0.1", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-convert-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.0.tgz", - "integrity": "sha1-d9d9mu0dxOaVbmUcw0nVMwWHb2I=", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-discard-comments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.0.tgz", - "integrity": "sha1-loSimedrPpMmPvj9KtvxocCP2I0=", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-discard-duplicates": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.0.tgz", - "integrity": "sha1-QvPCZ/hfqQngQsNXZ+z9Zcsr1yw=", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-discard-empty": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.0.tgz", - "integrity": "sha1-VeGKWcdBKOOMfSgEvPpAVmEfuX8=", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-discard-overridden": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.0.tgz", - "integrity": "sha1-Sgv4WXh4TPH4HtLBwf2dlkodofo=", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-load-config": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz", - "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==", - "dev": true, - "requires": { - "cosmiconfig": "4.0.0", - "import-cwd": "2.1.0" - } - }, - "postcss-merge-longhand": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.4.tgz", - "integrity": "sha512-wLi2u22mSdBDBjLF8pyaPCNppOmqb+B4O0Dlt/4nUwn79EltDUJmCeCDYqo7SB2z9puOHTftnxviY4J9xS+ygQ==", - "dev": true, - "requires": { - "css-color-names": "0.0.4", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0", - "stylehacks": "4.0.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-merge-rules": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.1.tgz", - "integrity": "sha1-Qw/Vmz8u0uivzQsxJ47aOYVKuxA=", - "dev": true, - "requires": { - "browserslist": "4.0.1", - "caniuse-api": "3.0.0", - "cssnano-util-same-parent": "4.0.0", - "postcss": "6.0.23", - "postcss-selector-parser": "3.1.1", - "vendors": "1.0.2" - }, - "dependencies": { - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "requires": { - "is-obj": "1.0.1" - } - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - }, - "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", - "dev": true, - "requires": { - "dot-prop": "4.2.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - } - } - }, - "postcss-minify-font-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.0.tgz", - "integrity": "sha1-TMM9KD1qgXWQNudX75gdksvYW+0=", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-minify-gradients": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.0.tgz", - "integrity": "sha1-P8ORZDnSepu4Bm23za2AFlDrCQ4=", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "4.0.0", - "is-color-stop": "1.1.0", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-minify-params": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.0.tgz", - "integrity": "sha1-BekWbuSMBa9lGYnOhNOcG015BnQ=", - "dev": true, - "requires": { - "alphanum-sort": "1.0.2", - "cssnano-util-get-arguments": "4.0.0", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0", - "uniqs": "2.0.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-minify-selectors": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.0.tgz", - "integrity": "sha1-sen2xGNBbT/Nyybnt4XZX2FXiq0=", - "dev": true, - "requires": { - "alphanum-sort": "1.0.2", - "has": "1.0.1", - "postcss": "6.0.23", - "postcss-selector-parser": "3.1.1" - }, - "dependencies": { - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "requires": { - "is-obj": "1.0.1" - } - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - }, - "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", - "dev": true, - "requires": { - "dot-prop": "4.2.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - } - } - }, - "postcss-normalize-charset": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.0.tgz", - "integrity": "sha1-JFJyknAtXoEp6vo9HeSe1RpqtzA=", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-normalize-display-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz", - "integrity": "sha1-lQ4Me+NEV3ChYP/9a2ZEw8DNj4k=", - "dev": true, - "requires": { - "cssnano-util-get-match": "4.0.0", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-normalize-positions": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.0.tgz", - "integrity": "sha1-7pNDq5gbgixjq3JhXszNCFZERaM=", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "4.0.0", - "has": "1.0.1", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-normalize-repeat-style": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.0.tgz", - "integrity": "sha1-txHFks8W+vn/V15C+hALZ5kIPv8=", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "4.0.0", - "cssnano-util-get-match": "4.0.0", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-normalize-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.0.tgz", - "integrity": "sha1-cYy20wpvrGrGqDDjLAbAfbxm/l0=", - "dev": true, - "requires": { - "has": "1.0.1", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-normalize-timing-functions": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.0.tgz", - "integrity": "sha1-A1HymIaqmB1D2RssK9GuptCvbSM=", - "dev": true, - "requires": { - "cssnano-util-get-match": "4.0.0", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-normalize-unicode": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.0.tgz", - "integrity": "sha1-Ws1dR7rqXRdnSyzMSuUWb6iM35c=", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-normalize-url": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.0.tgz", - "integrity": "sha1-t6nIrSbPJmlMFG6y1ovQz0mVbw0=", - "dev": true, - "requires": { - "is-absolute-url": "2.1.0", - "normalize-url": "3.2.0", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "normalize-url": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.2.0.tgz", - "integrity": "sha512-WvF3Myk0NhXkG8S9bygFM4IC1KOvnVJGq0QoGeoqOYOBeinBZp5ybW3QuYbTc89lkWBMM9ZBO4QGRoc0353kKA==", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-normalize-whitespace": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.0.tgz", - "integrity": "sha1-HafnaxCuY8EYJ/oE/Du0oe/pnMA=", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-ordered-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.0.0.tgz", - "integrity": "sha1-WLQMdPcuAi6zQVLBLksPk1RIL8I=", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "4.0.0", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-reduce-initial": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.1.tgz", - "integrity": "sha1-8tWPUM6isMXcEnjW6l7Q/1gpwpM=", - "dev": true, - "requires": { - "browserslist": "4.0.1", - "caniuse-api": "3.0.0", - "has": "1.0.1", - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-reduce-transforms": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.0.tgz", - "integrity": "sha1-9kX8dEDDUnT0DegQThStcWPt8Yg=", - "dev": true, - "requires": { - "cssnano-util-get-match": "4.0.0", - "has": "1.0.1", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-reporter": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-5.0.0.tgz", - "integrity": "sha512-rBkDbaHAu5uywbCR2XE8a25tats3xSOsGNx6mppK6Q9kSFGKc/FyAzfci+fWM2l+K402p1D0pNcfDGxeje5IKg==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "lodash": "4.17.10", - "log-symbols": "2.2.0", - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-selector-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", - "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", - "dev": true, - "requires": { - "flatten": "1.0.2", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "postcss-svgo": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.0.tgz", - "integrity": "sha1-wLutAlIPxjbJ14sOhAPi5RXDIoU=", - "dev": true, - "requires": { - "is-svg": "3.0.0", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0", - "svgo": "1.0.5" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-unique-selectors": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.0.tgz", - "integrity": "sha1-BMHpdkx1h0JhMDQCxB8Ol2n8VQE=", - "dev": true, - "requires": { - "alphanum-sort": "1.0.2", - "postcss": "6.0.23", - "uniqs": "2.0.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - } - } - }, - "postcss-value-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", - "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, - "prettier": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.14.0.tgz", - "integrity": "sha512-KtQ2EGaUwf2EyDfp1fxyEb0PqGKakVm0WyXwDt6u+cAoxbO2Z2CwKvOe3+b4+F2IlO9lYHi1kqFuRM70ddBnow==", - "dev": true - }, - "pretty-bytes": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", - "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=", - "dev": true - }, - "pretty-bytes-cli": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pretty-bytes-cli/-/pretty-bytes-cli-2.0.0.tgz", - "integrity": "sha1-5wVmLP/cnHUpGDUzO8L4mtPAM88=", - "dev": true, - "requires": { - "get-stdin": "5.0.1", - "meow": "3.7.0", - "pretty-bytes": "4.0.2" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "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" - } - }, - "get-stdin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", - "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=", - "dev": true - }, - "indent-string": { - "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" - } - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "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", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "redent": { - "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" - } - }, - "strip-indent": { - "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" - }, - "dependencies": { - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - } - } - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - } - } - }, - "pretty-format": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-21.2.1.tgz", - "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==", - "dev": true, - "requires": { - "ansi-regex": "3.0.0", - "ansi-styles": "3.2.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - } - } - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "process": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", - "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "progress": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", - "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", - "dev": true - }, - "proxy-addr": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", - "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", - "dev": true, - "requires": { - "forwarded": "0.1.2", - "ipaddr.js": "1.8.0" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "public-encrypt": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz", - "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "parse-asn1": "5.1.1", - "randombytes": "2.0.6" - } - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "3.6.0", - "inherits": "2.0.3", - "pump": "2.0.1" - } - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" - }, - "querystringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.0.0.tgz", - "integrity": "sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw==", - "dev": true - }, - "quick-lru": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", - "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", - "dev": true - }, - "randomatic": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", - "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", - "dev": true, - "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "randombytes": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", - "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "2.0.6", - "safe-buffer": "5.1.2" - } - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", - "dev": true - }, - "raw-body": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", - "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", - "dev": true, - "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.2", - "iconv-lite": "0.4.19", - "unpipe": "1.0.0" - }, - "dependencies": { - "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", - "dev": true - }, - "http-errors": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", - "dev": true, - "requires": { - "depd": "1.1.1", - "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": "1.4.0" - } - }, - "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", - "dev": true - }, - "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", - "dev": true - } - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "0.6.0", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", - "dev": true, - "requires": { - "pify": "2.3.0" - } - }, - "read-pkg": { - "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", - "path-type": "1.1.0" - } - }, - "read-pkg-up": { - "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" - }, - "dependencies": { - "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" - } - }, - "path-exists": { - "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" - } - } - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - } - } - }, - "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.6", - "set-immediate-shim": "1.0.1" - } - }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", - "dev": true, - "requires": { - "indent-string": "3.2.0", - "strip-indent": "2.0.0" - } - }, - "redeyed": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-1.0.1.tgz", - "integrity": "sha1-6WwZO0DAgWsArshCaY5hGF5VSYo=", - "dev": true, - "requires": { - "esprima": "3.0.0" - }, - "dependencies": { - "esprima": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.0.0.tgz", - "integrity": "sha1-U88kes2ncxPlUcOqLnM0LT+099k=", - "dev": true - } - } - }, - "reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce/-/reduce-1.0.1.tgz", - "integrity": "sha1-FPouX/H8VgcDoCDLtfuqtpFWWAQ=", - "requires": { - "object-keys": "1.0.11" - } - }, - "reduce-css-calc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.4.tgz", - "integrity": "sha512-i/vWQbyd3aJRmip9OVSN9V6nIjLf/gg/ctxb0CpvHWtcRysFl/ngDBQD+rqavxdw/doScA3GMBXhzkHQ4GCzFQ==", - "dev": true, - "requires": { - "css-unit-converter": "1.1.1", - "postcss-value-parser": "3.3.0" - } - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", - "dev": true - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" - } - }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "requires": { - "is-equal-shallow": "0.1.3" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" - } - }, - "regexp.prototype.flags": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz", - "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==", - "dev": true, - "requires": { - "define-properties": "^1.1.2" - } - }, - "regexpp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.0.tgz", - "integrity": "sha512-g2FAVtR8Uh8GO1Nv5wpxW7VFVwHcCEr4wyA8/MHiRkO8uHoR5ntAA8Uq3P1vvMTX/BeQiRVSpDGLd+Wn5HNOTA==", - "dev": true - }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true, - "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" - } - }, - "registry-auth-token": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", - "dev": true, - "requires": { - "rc": "1.2.8", - "safe-buffer": "5.1.2" - } - }, - "registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", - "dev": true, - "requires": { - "rc": "1.2.8" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "requires": { - "jsesc": "0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } - }, - "remark": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/remark/-/remark-5.1.0.tgz", - "integrity": "sha1-y0Y709vLS5l5STXu4c9x16jjBow=", - "dev": true, - "requires": { - "remark-parse": "1.1.0", - "remark-stringify": "1.1.0", - "unified": "4.2.1" - } - }, - "remark-parse": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-1.1.0.tgz", - "integrity": "sha1-w8oQ+ajaBGFcKPCapOMEUQUm7CE=", - "dev": true, - "requires": { - "collapse-white-space": "1.0.4", - "extend": "3.0.1", - "parse-entities": "1.1.2", - "repeat-string": "1.6.1", - "trim": "0.0.1", - "trim-trailing-lines": "1.1.1", - "unherit": "1.1.1", - "unist-util-remove-position": "1.1.2", - "vfile-location": "2.0.3" - } - }, - "remark-stringify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-1.1.0.tgz", - "integrity": "sha1-pxBeJbnuK/mkm3XSxCPxGwauIJI=", - "dev": true, - "requires": { - "ccount": "1.0.3", - "extend": "3.0.1", - "longest-streak": "1.0.0", - "markdown-table": "0.4.0", - "parse-entities": "1.1.2", - "repeat-string": "1.6.1", - "stringify-entities": "1.3.2", - "unherit": "1.1.1" - } - }, - "remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "dev": true, - "requires": { - "is-buffer": "1.1.6", - "is-utf8": "0.2.1" - } - }, - "remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", - "dev": true, - "requires": { - "remove-bom-buffer": "3.0.0", - "safe-buffer": "5.1.2", - "through2": "2.0.3" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "repeating": { - "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" - } - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", - "dev": true - }, - "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", - "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.7.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.0.3", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" - }, - "dependencies": { - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" - } - } - }, - "request-promise-core": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", - "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", - "dev": true, - "requires": { - "lodash": "4.17.10" - } - }, - "request-promise-native": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz", - "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=", - "dev": true, - "requires": { - "request-promise-core": "1.1.1", - "stealthy-require": "1.1.1", - "tough-cookie": "2.3.4" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - } - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "resolve": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", - "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", - "dev": true, - "requires": { - "path-parse": "1.0.5" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", - "dev": true - }, - "resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", - "dev": true, - "requires": { - "value-or-function": "3.0.0" - } - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", - "dev": true - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", - "dev": true - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, - "requires": { - "align-text": "0.1.4" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "7.1.2" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" - } - }, - "rsvp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", - "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", - "dev": true - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } - }, - "rxjs": { - "version": "5.5.11", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.11.tgz", - "integrity": "sha512-3bjO7UwWfA2CV7lmwYMBzj4fQ6Cq+ftHc2MvUe+WMS7wcdJ1LosDWmdjPQanYp2dBRj572p7PeU81JUxHKOcBA==", - "dev": true, - "requires": { - "symbol-observable": "1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "0.1.15" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "samsam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", - "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==", - "dev": true - }, - "sane": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/sane/-/sane-2.5.2.tgz", - "integrity": "sha1-tNwYYcIbQn6SlQej51HiosuKs/o=", - "dev": true, - "requires": { - "anymatch": "2.0.0", - "capture-exit": "1.2.0", - "exec-sh": "0.2.2", - "fb-watchman": "2.0.0", - "fsevents": "1.2.3", - "micromatch": "3.1.10", - "minimist": "1.2.0", - "walker": "1.0.7", - "watch": "0.18.0" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "sass-graph": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", - "dev": true, - "requires": { - "glob": "7.1.2", - "lodash": "4.17.10", - "scss-tokenizer": "0.2.3", - "yargs": "7.1.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" - } - }, - "is-fullwidth-code-point": { - "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" - } - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "requires": { - "lcid": "1.0.0" - } - }, - "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" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "dev": true, - "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "5.0.0" - } - }, - "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "dev": true, - "requires": { - "camelcase": "3.0.0" - } - } - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "dev": true, - "requires": { - "js-base64": "2.4.3", - "source-map": "0.4.4" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "selfsigned": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.3.tgz", - "integrity": "sha512-vmZenZ+8Al3NLHkWnhBQ0x6BkML1eCP2xEi3JE+f3D9wW9fipD9NNJHYtE9XJM4TsPaHGZJIamrSI6MTg1dU2Q==", - "dev": true, - "requires": { - "node-forge": "0.7.5" - } - }, - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" - }, - "semver-diff": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", - "dev": true, - "requires": { - "semver": "5.5.0" - } - }, - "send": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "fresh": "0.5.2", - "http-errors": "1.6.3", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "requires": { - "accepts": "1.3.5", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "1.0.3", - "http-errors": "1.6.3", - "mime-types": "2.1.18", - "parseurl": "1.3.2" - } - }, - "serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", - "dev": true, - "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", - "send": "0.16.2" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "requires": { - "is-arrayish": "0.3.2" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - } - } - }, - "sinon": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-6.1.4.tgz", - "integrity": "sha512-NFEts+4D4jp2sBjL94fQpZk5o73kzn/g58+I9Dp15i9vsnT4Lk1UEyUf2jACODWLG6Pz/llF0sArYUw47Aarmg==", - "dev": true, - "requires": { - "@sinonjs/formatio": "2.0.0", - "@sinonjs/samsam": "2.0.0", - "diff": "3.5.0", - "lodash.get": "4.4.2", - "lolex": "2.7.1", - "nise": "1.4.2", - "supports-color": "5.4.0", - "type-detect": "4.0.8" - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.2", - "use": "3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", - "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", - "dev": true, - "requires": { - "faye-websocket": "0.10.0", - "uuid": "3.3.2" - }, - "dependencies": { - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - } - } - }, - "sockjs-client": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.5.tgz", - "integrity": "sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=", - "dev": true, - "requires": { - "debug": "2.6.9", - "eventsource": "0.1.6", - "faye-websocket": "0.11.1", - "inherits": "2.0.3", - "json3": "3.3.2", - "url-parse": "1.4.3" - }, - "dependencies": { - "faye-websocket": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", - "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", - "dev": true, - "requires": { - "websocket-driver": "0.7.0" - } - } - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dev": true, - "requires": { - "is-plain-obj": "1.1.0" - } - }, - "source-list-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "dev": true, - "requires": { - "atob": "2.1.1", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" - } - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "requires": { - "source-map": "0.5.7" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", - "dev": true, - "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", - "dev": true - }, - "spdy": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", - "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", - "dev": true, - "requires": { - "debug": "2.6.9", - "handle-thing": "1.2.5", - "http-deceiver": "1.2.7", - "safe-buffer": "5.1.2", - "select-hose": "2.0.0", - "spdy-transport": "2.1.0" - } - }, - "spdy-transport": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.0.tgz", - "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", - "dev": true, - "requires": { - "debug": "2.6.9", - "detect-node": "2.0.3", - "hpack.js": "2.1.6", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "safe-buffer": "5.1.2", - "wbuf": "1.7.3" - } - }, - "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "requires": { - "through": "2.3.8" - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "3.0.2" - } - }, - "split2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", - "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", - "dev": true, - "requires": { - "through2": "2.0.3" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", - "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - } - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true - }, - "stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=" - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", - "dev": true - }, - "stdout-stream": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", - "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", - "dev": true, - "requires": { - "readable-stream": "2.3.6" - } - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true - }, - "stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "stream-http": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.2.tgz", - "integrity": "sha512-QllfrBhqF1DPcz46WxKTs6Mz1Bpc+8Qm6vbqOpVav5odAXwbyzwnEczoWqtxrsmlO+cJqtPrp/8gWKWjaKLLlA==", - "dev": true, - "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" - } - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true - }, - "string-length": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", - "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", - "dev": true, - "requires": { - "astral-regex": "1.0.0", - "strip-ansi": "4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "string.prototype.matchall": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-2.0.0.tgz", - "integrity": "sha512-WoZ+B2ypng1dp4iFLF2kmZlwwlE19gmjgKuhL1FJfDgCREWb3ye3SDVHSzLH6bxfnvYmkCxbzkmWcQZHA4P//Q==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.10.0", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "regexp.prototype.flags": "^1.2.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "stringify-entities": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.2.tgz", - "integrity": "sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==", - "dev": true, - "requires": { - "character-entities-html4": "1.1.2", - "character-entities-legacy": "1.1.2", - "is-alphanumerical": "1.0.2", - "is-hexadecimal": "1.0.2" - } - }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "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" - } - }, - "strip-bom": { - "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" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, - "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=", - "dev": true - }, - "strip-outer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", - "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5" - } - }, - "strip-url-auth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-url-auth/-/strip-url-auth-1.0.1.tgz", - "integrity": "sha1-IrD6OkE4WzO+PzMVUbu4N/oM164=", - "dev": true - }, - "structured-source": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/structured-source/-/structured-source-3.0.2.tgz", - "integrity": "sha1-3YAkJeD1PcSm56yjdSkBoczaevU=", - "dev": true, - "requires": { - "boundary": "1.0.1" - } - }, - "stylehacks": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.0.tgz", - "integrity": "sha1-ZLMjlRxKJOX8ey7AbBN78y0VXoo=", - "dev": true, - "requires": { - "browserslist": "4.0.1", - "postcss": "6.0.23", - "postcss-selector-parser": "3.1.1" - }, - "dependencies": { - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "requires": { - "is-obj": "1.0.1" - } - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - }, - "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", - "dev": true, - "requires": { - "dot-prop": "4.2.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - } - } - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - }, - "svgo": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.0.5.tgz", - "integrity": "sha512-nYrifviB77aNKDNKKyuay3M9aYiK6Hv5gJVDdjj2ZXTQmI8WZc8+UPLR5IpVlktJfSu3co/4XcWgrgI6seGBPg==", - "dev": true, - "requires": { - "coa": "2.0.1", - "colors": "1.1.2", - "css-select": "1.3.0-rc0", - "css-select-base-adapter": "0.1.0", - "css-tree": "1.0.0-alpha25", - "css-url-regex": "1.1.0", - "csso": "3.5.1", - "js-yaml": "3.10.0", - "mkdirp": "0.5.1", - "object.values": "1.0.4", - "sax": "1.2.4", - "stable": "0.1.8", - "unquote": "1.1.1", - "util.promisify": "1.0.0" - }, - "dependencies": { - "js-yaml": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", - "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", - "dev": true, - "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } - } - }, - "symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", - "dev": true - }, - "symbol-tree": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", - "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", - "dev": true - }, - "table": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.3.tgz", - "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", - "dev": true, - "requires": { - "ajv": "^6.0.1", - "ajv-keywords": "^3.0.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" - }, - "dependencies": { - "ajv": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", - "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.1" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - } - } - }, - "tapable": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", - "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", - "dev": true - }, - "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - }, - "tempfile": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz", - "integrity": "sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I=", - "dev": true, - "requires": { - "os-tmpdir": "1.0.2", - "uuid": "2.0.3" - } - }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "dev": true, - "requires": { - "execa": "0.7.0" - } - }, - "test-exclude": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", - "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", - "dev": true, - "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - } - } - }, - "text-encoding": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", - "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=", - "dev": true - }, - "text-extensions": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.7.0.tgz", - "integrity": "sha512-AKXZeDq230UaSzaO5s3qQUZOaC7iKbzq0jOFL614R7d9R593HLqAOL0cYoqLdkNrjBSOdmoQI06yigq1TSBXAg==", - "dev": true - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "throat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", - "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" - } - }, - "through2-filter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz", - "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=", - "dev": true, - "requires": { - "through2": "2.0.3", - "xtend": "4.0.1" - } - }, - "thunky": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz", - "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=", - "dev": true - }, - "ticky": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ticky/-/ticky-1.0.1.tgz", - "integrity": "sha1-t8+nHnaPHJAAxJe5FRswlHxQ5G0=", - "dev": true - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true - }, - "timers-browserify": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", - "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", - "dev": true, - "requires": { - "setimmediate": "1.0.5" - } - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "tmpl": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", - "dev": true - }, - "to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "dev": true, - "requires": { - "is-absolute": "1.0.0", - "is-negated-glob": "1.0.0" - } - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-factory": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-factory/-/to-factory-1.0.0.tgz", - "integrity": "sha1-hzivi9lxIK0dQEeXKtpVY7+UebE=" - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - } - } - }, - "to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", - "dev": true, - "requires": { - "through2": "2.0.3" - } - }, - "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "requires": { - "punycode": "1.4.1" - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dev": true, - "requires": { - "punycode": "1.4.1" - } - }, - "traverse": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", - "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", - "dev": true - }, - "tree-kill": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz", - "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==", - "dev": true - }, - "trim": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", - "dev": true - }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", - "dev": true - }, - "trim-off-newlines": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", - "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", - "dev": true - }, - "trim-repeated": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5" - } - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "trim-trailing-lines": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.1.tgz", - "integrity": "sha512-bWLv9BbWbbd7mlqqs2oQYnLD/U/ZqeJeJwbO0FG2zA1aTq+HTvxfHNKFa/HGCVyJpDiioUYaBhfiT6rgk+l4mg==", - "dev": true - }, - "trough": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.2.tgz", - "integrity": "sha512-FHkoUZvG6Egrv9XZAyYGKEyb1JMsFphgPjoczkZC2y6W93U1jswcVURB8MUvtsahEPEVACyxD47JAL63vF4JsQ==", - "dev": true - }, - "true-case-path": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz", - "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", - "dev": true, - "requires": { - "glob": "6.0.4" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "dev": true, - "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - } - } - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-is": { - "version": "1.6.16", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "2.1.18" - } - }, - "uglify-js": { - "version": "3.4.6", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.6.tgz", - "integrity": "sha512-O1D7L6WcOzS1qW2ehopEm4cWm5yA6bQBozlks8jO8ODxYCy4zv+bR/la4Lwp01tpkYGNonnpXvUpYtrvSu8Yzg==", - "dev": true, - "requires": { - "commander": "2.16.0", - "source-map": "0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", - "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==", - "dev": true - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true - }, - "uglifyjs-webpack-plugin": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", - "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", - "dev": true, - "requires": { - "source-map": "0.5.7", - "uglify-js": "2.8.29", - "webpack-sources": "1.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - } - } - } - }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true - }, - "underscore": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", - "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", - "dev": true - }, - "unherit": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.1.tgz", - "integrity": "sha512-+XZuV691Cn4zHsK0vkKYwBEwB74T3IZIcxrgn2E4rKwTfFyI1zCh7X7grwh9Re08fdPlarIdyWgI8aVB3F5A5g==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "xtend": "4.0.1" - } - }, - "unified": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/unified/-/unified-4.2.1.tgz", - "integrity": "sha1-dv9Dqo2kMPbn5KVchOusKtLPzS4=", - "dev": true, - "requires": { - "bail": "1.0.3", - "extend": "3.0.1", - "has": "1.0.1", - "once": "1.4.0", - "trough": "1.0.2", - "vfile": "1.4.0" - } - }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "dev": true, - "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" - } - } - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, - "unique-stream": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz", - "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=", - "dev": true, - "requires": { - "json-stable-stringify": "1.0.1", - "through2-filter": "2.0.0" - } - }, - "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "dev": true, - "requires": { - "crypto-random-string": "1.0.0" - } - }, - "unist-util-is": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-2.1.2.tgz", - "integrity": "sha512-YkXBK/H9raAmG7KXck+UUpnKiNmUdB+aBGrknfQ4EreE1banuzrKABx3jP6Z5Z3fMSPMQQmeXBlKpCbMwBkxVw==", - "dev": true - }, - "unist-util-remove-position": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.2.tgz", - "integrity": "sha512-XxoNOBvq1WXRKXxgnSYbtCF76TJrRoe5++pD4cCBsssSiWSnPEktyFrFLE8LTk3JW5mt9hB0Sk5zn4x/JeWY7Q==", - "dev": true, - "requires": { - "unist-util-visit": "1.3.1" - } - }, - "unist-util-visit": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.3.1.tgz", - "integrity": "sha512-0fdB9EQJU0tho5tK0VzOJzAQpPv2LyLZ030b10GxuzAWEfvd54mpY7BMjQ1L69k2YNvL+SvxRzH0yUIehOO8aA==", - "dev": true, - "requires": { - "unist-util-is": "2.1.2" - } - }, - "universalify": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", - "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "unzip-response": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", - "dev": true - }, - "upath": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.0.5.tgz", - "integrity": "sha512-qbKn90aDQ0YEwvXoLqj0oiuUYroLX2lVHZ+b+xwjozFasAOC4GneDq5+OaIG5Zj+jFmbz/uO+f7a9qxjktJQww==", - "dev": true - }, - "update-notifier": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", - "dev": true, - "requires": { - "boxen": "1.3.0", - "chalk": "2.4.1", - "configstore": "3.1.2", - "import-lazy": "2.1.0", - "is-ci": "1.1.0", - "is-installed-globally": "0.1.0", - "is-npm": "1.0.0", - "latest-version": "3.1.0", - "semver-diff": "2.1.0", - "xdg-basedir": "3.0.0" - } - }, - "update-section": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/update-section/-/update-section-0.3.3.tgz", - "integrity": "sha1-RY8Xgg03gg3GDiC4bZQ5GwASMVg=", - "dev": true - }, - "uri-js": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.1.tgz", - "integrity": "sha512-jpKCA3HjsBfSDOEgxRDAxQCNyHfCPSbq57PqCkd3gAyBuPb3IWxw54EHncqESznIdqSetHfw3D7ylThu2Kcc9A==", - "dev": true, - "requires": { - "punycode": "2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", - "dev": true - } - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "url-join": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", - "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=", - "dev": true - }, - "url-parse": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.3.tgz", - "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==", - "dev": true, - "requires": { - "querystringify": "2.0.0", - "requires-port": "1.0.0" - } - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "requires": { - "prepend-http": "1.0.4" - } - }, - "use": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", - "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "dev": true, - "requires": { - "define-properties": "1.1.2", - "object.getownpropertydescriptors": "2.0.3" - } - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", - "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", - "dev": true - }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "dev": true, - "requires": { - "user-home": "1.1.1" - } - }, - "validate-npm-package-license": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", - "dev": true, - "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" - } - }, - "value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", - "dev": true - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "vendors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz", - "integrity": "sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "1.3.0" - } - }, - "vfile": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-1.4.0.tgz", - "integrity": "sha1-wP1vpIT43r23cfaMMe112I2pf+c=", - "dev": true - }, - "vfile-location": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.3.tgz", - "integrity": "sha512-zM5/l4lfw1CBoPx3Jimxoc5RNDAHHpk6AM6LM0pTIkm5SUSsx8ZekZ0PVdf0WEZ7kjlhSt7ZlqbRL6Cd6dBs6A==", - "dev": true - }, - "vinyl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", - "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", - "dev": true, - "requires": { - "clone": "2.1.1", - "clone-buffer": "1.0.0", - "clone-stats": "1.0.0", - "cloneable-readable": "1.1.2", - "remove-trailing-separator": "1.1.0", - "replace-ext": "1.0.0" - }, - "dependencies": { - "clone": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", - "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", - "dev": true - } - } - }, - "vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "dev": true, - "requires": { - "fs-mkdirp-stream": "1.0.0", - "glob-stream": "6.1.0", - "graceful-fs": "4.1.11", - "is-valid-glob": "1.0.0", - "lazystream": "1.0.0", - "lead": "1.0.0", - "object.assign": "4.1.0", - "pumpify": "1.5.1", - "readable-stream": "2.3.6", - "remove-bom-buffer": "3.0.0", - "remove-bom-stream": "1.2.0", - "resolve-options": "1.1.0", - "through2": "2.0.3", - "to-through": "2.0.0", - "value-or-function": "3.0.0", - "vinyl": "2.2.0", - "vinyl-sourcemap": "1.1.0" - } - }, - "vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", - "dev": true, - "requires": { - "append-buffer": "1.0.2", - "convert-source-map": "1.5.1", - "graceful-fs": "4.1.11", - "normalize-path": "2.1.1", - "now-and-later": "2.0.0", - "remove-bom-buffer": "3.0.0", - "vinyl": "2.2.0" - } - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "requires": { - "indexof": "0.0.1" - } - }, - "w3c-hr-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", - "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", - "dev": true, - "requires": { - "browser-process-hrtime": "0.1.2" - } - }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "dev": true, - "requires": { - "makeerror": "1.0.11" - } - }, - "watch": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", - "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", - "dev": true, - "requires": { - "exec-sh": "0.2.2", - "minimist": "1.2.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", - "dev": true, - "requires": { - "chokidar": "2.0.3", - "graceful-fs": "4.1.11", - "neo-async": "2.5.1" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "chokidar": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.3.tgz", - "integrity": "sha512-zW8iXYZtXMx4kux/nuZVXjkLP+CyIK5Al5FHnj1OgTKGZfp4Oy6/ymtMSKFv3GD8DviEmUPmJg9eFdJ/JzudMg==", - "dev": true, - "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "fsevents": "1.2.3", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0", - "upath": "1.0.5" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - } - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "requires": { - "minimalistic-assert": "1.0.1" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true - }, - "webpack": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz", - "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==", - "dev": true, - "requires": { - "acorn": "5.5.3", - "acorn-dynamic-import": "2.0.2", - "ajv": "6.5.0", - "ajv-keywords": "3.2.0", - "async": "2.6.0", - "enhanced-resolve": "3.4.1", - "escope": "3.6.0", - "interpret": "1.1.0", - "json-loader": "0.5.7", - "json5": "0.5.1", - "loader-runner": "2.3.0", - "loader-utils": "1.1.0", - "memory-fs": "0.4.1", - "mkdirp": "0.5.1", - "node-libs-browser": "2.1.0", - "source-map": "0.5.7", - "supports-color": "4.5.0", - "tapable": "0.2.8", - "uglifyjs-webpack-plugin": "0.4.6", - "watchpack": "1.6.0", - "webpack-sources": "1.1.0", - "yargs": "8.0.2" - }, - "dependencies": { - "ajv": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.0.tgz", - "integrity": "sha512-VDUX1oSajablmiyFyED9L1DFndg0P9h7p1F+NO8FkIzei6EPrR6Zu1n18rd5P8PqaSRd/FrWv3G1TVBqpM83gA==", - "dev": true, - "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1", - "uri-js": "4.2.1" - } - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true - }, - "async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", - "dev": true, - "requires": { - "lodash": "4.17.10" - } - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" - }, - "dependencies": { - "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" - } - } - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "is-fullwidth-code-point": { - "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" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "2.3.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } - }, - "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", - "dev": true, - "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "7.0.0" - } - } - } - }, - "webpack-dev-middleware": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.1.3.tgz", - "integrity": "sha512-I6Mmy/QjWU/kXwCSFGaiOoL5YEQIVmbb0o45xMoCyQAg/mClqZVTcsX327sPfekDyJWpCxb+04whNyLOIxpJdQ==", - "dev": true, - "requires": { - "loud-rejection": "1.6.0", - "memory-fs": "0.4.1", - "mime": "2.3.1", - "path-is-absolute": "1.0.1", - "range-parser": "1.2.0", - "url-join": "4.0.0", - "webpack-log": "1.2.0" - }, - "dependencies": { - "mime": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", - "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", - "dev": true - } - } - }, - "webpack-dev-server": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.5.tgz", - "integrity": "sha512-LVHg+EPwZLHIlfvokSTgtJqO/vI5CQi89fASb5JEDtVMDjY0yuIEqPPdMiKaBJIB/Ab7v/UN/sYZ7WsZvntQKw==", - "dev": true, - "requires": { - "ansi-html": "0.0.7", - "array-includes": "3.0.3", - "bonjour": "3.5.0", - "chokidar": "2.0.4", - "compression": "1.7.3", - "connect-history-api-fallback": "1.5.0", - "debug": "3.1.0", - "del": "3.0.0", - "express": "4.16.3", - "html-entities": "1.2.1", - "http-proxy-middleware": "0.18.0", - "import-local": "1.0.0", - "internal-ip": "1.2.0", - "ip": "1.1.5", - "killable": "1.0.0", - "loglevel": "1.6.1", - "opn": "5.3.0", - "portfinder": "1.0.13", - "selfsigned": "1.10.3", - "serve-index": "1.9.1", - "sockjs": "0.3.19", - "sockjs-client": "1.1.5", - "spdy": "3.4.7", - "strip-ansi": "3.0.1", - "supports-color": "5.4.0", - "webpack-dev-middleware": "3.1.3", - "webpack-log": "1.2.0", - "yargs": "11.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "chokidar": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", - "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", - "dev": true, - "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "fsevents": "1.2.3", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "lodash.debounce": "4.0.8", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0", - "upath": "1.0.5" - } - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "del": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", - "dev": true, - "requires": { - "globby": "6.1.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.6.2" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "yargs": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.0.0.tgz", - "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", - "dev": true, - "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "9.0.2" - } - }, - "yargs-parser": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", - "dev": true, - "requires": { - "camelcase": "4.1.0" - } - } - } - }, - "webpack-log": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-1.2.0.tgz", - "integrity": "sha512-U9AnICnu50HXtiqiDxuli5gLB5PGBo7VvcHx36jRZHwK4vzOYLbImqT4lwWwoMHdQWwEKw736fCHEekokTEKHA==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "log-symbols": "2.2.0", - "loglevelnext": "1.0.5", - "uuid": "3.3.2" - }, - "dependencies": { - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - } - } - }, - "webpack-sources": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", - "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", - "dev": true, - "requires": { - "source-list-map": "2.0.0", - "source-map": "0.6.1" - } - }, - "websocket-driver": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", - "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", - "dev": true, - "requires": { - "http-parser-js": "0.4.13", - "websocket-extensions": "0.1.3" - } - }, - "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz", - "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.19" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", - "dev": true - } - } - }, - "whatwg-mimetype": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.1.0.tgz", - "integrity": "sha512-FKxhYLytBQiUKjkYteN71fAUA3g6KpNXoho1isLiLSB3N1G4F35Q5vUxWfKFhBwi5IWF27VE6WxhrnnC+m0Mew==", - "dev": true - }, - "whatwg-url": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", - "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", - "dev": true, - "requires": { - "lodash.sortby": "4.7.0", - "tr46": "1.0.1", - "webidl-conversions": "3.0.1" - }, - "dependencies": { - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "dev": true - } - } - }, - "which": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", - "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", - "dev": true, - "requires": { - "isexe": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "2.1.1" - } - }, - "widest-line": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", - "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", - "dev": true, - "requires": { - "string-width": "2.1.1" - } - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "worker-farm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", - "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", - "dev": true, - "requires": { - "errno": "0.1.7" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "is-fullwidth-code-point": { - "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" - } - }, - "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" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } - } - }, - "write-file-atomic": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", - "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" - } - }, - "ws": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", - "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", - "dev": true, - "requires": { - "async-limiter": "1.0.0" - } - }, - "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", - "dev": true - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "xregexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", - "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } - }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "dev": true, - "requires": { - "camelcase": "4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - } - } - }, - "zepto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/zepto/-/zepto-1.2.0.tgz", - "integrity": "sha1-4Se9nmb9hGvl6rSME5SIL3wOT5g=" - } - } -} diff --git a/package.json b/package.json index 0b7eb4be..0ff4cc35 100644 --- a/package.json +++ b/package.json @@ -4,20 +4,19 @@ "description": "Add an autocomplete dropdown to your documentation", "main": "dist/npm/index.js", "scripts": { - "dev": "./scripts/dev", - "dev:docs": "./scripts/dev-docs", - "serve": "./scripts/serve", - "doctoc": "doctoc --maxlevel 3 README.md CONTRIBUTING.md", "build": "./scripts/build", "build:css": "./scripts/build-css", "build:js": "./scripts/build-js", - "build:docs": "./scripts/build-docs", + "docs:build": "cd ./docs && yarn build", + "docs:serve": "cd ./docs && yarn serve", + "docs:deploy": "cd ./docs && yarn deploy", + "doctoc": "doctoc --maxlevel 3 README.md CONTRIBUTING.md", + "lint": "./scripts/lint", "release": "./scripts/release", "release:beta": "./scripts/release-beta", - "lint": "eslint .", - "lint:fix": "npm run lint -- --fix", - "test": "jest --coverage && npm run lint", - "test:watch": "jest --watch" + "serve": "./scripts/serve", + "test": "./scripts/test", + "test:watch": "./scripts/test-watch" }, "files": [ "dist/" @@ -37,7 +36,7 @@ ] }, "devDependencies": { - "autoprefixer": "9.1.0", + "autoprefixer": "9.1.1", "babel-cli": "6.26.0", "babel-core": "6.26.3", "babel-eslint": "8.2.6", @@ -50,40 +49,37 @@ "conventional-changelog-cli": "2.0.1", "cssnano": "4.0.5", "doctoc": "1.3.1", - "eslint": "5.3.0", + "eslint": "5.4.0", "eslint-config-algolia": "13.1.0", - "eslint-config-prettier": "2.9.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", + "eslint-config-prettier": "2.10.0", + "eslint-plugin-import": "2.14.0", + "eslint-plugin-jest": "21.21.0", "eslint-plugin-prettier": "2.6.2", - "gh-pages": "1.2.0", - "jest": "21.2.1", + "jest": "23.0.0", "jsdom": "11.12.0", "json": "9.0.6", + "live-server": "^1.2.0", "mversion": "1.12.0", - "node-sass": "4.9.2", + "node-sass": "4.9.3", "onchange": "4.1.0", "postcss-cli": "6.0.0", - "prettier": "1.14.0", + "prettier": "1.14.2", "pretty-bytes-cli": "2.0.0", - "semver": "5.5.0", - "sinon": "6.1.4", - "uglify-js": "3.4.6", + "semver": "5.5.1", + "sinon": "6.1.5", + "uglify-js": "3.4.7", "webpack": "3.12.0", - "webpack-dev-server": "3.1.5" + "webpack-cli": "^3.1.0" }, "peerDependencies": {}, "dependencies": { "algoliasearch": "^3.24.5", - "autocomplete.js": "^0.30.0", + "autocomplete.js": "^0.31.0", "hogan.js": "^3.0.2", + "parallelshell": "^3.0.2", "request": "^2.87.0", "stack-utils": "^1.0.1", "to-factory": "^1.0.0", "zepto": "^1.2.0" - }, - "jest": { - "verbose": true, - "testURL": "http://localhost/" } } diff --git a/scripts/build b/scripts/build index 69c90b0a..461590c7 100755 --- a/scripts/build +++ b/scripts/build @@ -1,12 +1,6 @@ #!/usr/bin/env bash - -set -e # exit when error +set -e rm -rf dist - -# JavaScript -npm run build:js -npm run build:css - -# Documentation -npm run build:docs +yarn run build:js +yarn run build:css diff --git a/scripts/build-docs b/scripts/build-docs deleted file mode 100755 index ba361006..00000000 --- a/scripts/build-docs +++ /dev/null @@ -1,38 +0,0 @@ -#! /bin/bash - -set -o nounset -set -o errexit - -readonly SOURCE=README.md -readonly OUTPUT=docs/documentation.md - -readonly START_DOC_TAG="" -readonly END_DOC_TAG="" - -readonly START_LINKS_TAG="" -readonly END_LINKS_TAG="" - -function escape_regex { - echo "$1" | sed -e 's/[]\/\!$*.^|[]/\\&/g' -} - -function extract { - sed -n "/^\s*$(escape_regex "$1")\s*$/,/^\s*$(escape_regex "$2")\s*$/p" \ - | sed '$d' \ - | sed -n '2,$p' -} - -function main { - rm -rf $OUTPUT && touch $OUTPUT - - echo "---" >> $OUTPUT - echo "layout: page" >> $OUTPUT - echo "title: Documentation" >> $OUTPUT - echo "permalink: /documentation/" >> $OUTPUT - echo "---" >> $OUTPUT - - cat $SOURCE | extract "$START_DOC_TAG" "$END_DOC_TAG" >> $OUTPUT - cat $SOURCE | extract "$START_LINKS_TAG" "$END_LINKS_TAG" >> $OUTPUT -} - -main diff --git a/scripts/dev b/scripts/dev deleted file mode 100755 index b1941498..00000000 --- a/scripts/dev +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -npm run build:css - -webpack-dev-server --config webpack.dev.config.babel.js & -onchange './src/styles/*.scss' -- npm run build:css & -wait diff --git a/scripts/dev-docs b/scripts/dev-docs deleted file mode 100755 index 374c0a90..00000000 --- a/scripts/dev-docs +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -set -ev # exit when error - -cd docs && \ -bundle install && \ -npm install && \ -node communityHeader.js && \ -bundle exec guard -i & \ -npm run dev & \ -wait diff --git a/scripts/docs/gh-pages.js b/scripts/docs/gh-pages.js deleted file mode 100644 index a78a4845..00000000 --- a/scripts/docs/gh-pages.js +++ /dev/null @@ -1,23 +0,0 @@ -/* eslint no-console:0 */ -import ghpages from 'gh-pages'; -import {join} from 'path'; - -let basePath = join(__dirname, '../../docs/build'); - -ghpages.clean(); - -if (process.env.CI === 'true') { - ghpages.publish(basePath, { - repo: 'https://' + process.env.GH_TOKEN + '@github.com/algolia/docsearch.git' - }, end); -} else { - ghpages.publish(basePath, end); -} - -function end(err) { - if (err) { - throw err; - } else { - console.log('published gh-pages'); - } -} \ No newline at end of file diff --git a/scripts/docs/update-website b/scripts/docs/update-website deleted file mode 100755 index bdc28a7e..00000000 --- a/scripts/docs/update-website +++ /dev/null @@ -1,29 +0,0 @@ -#! /usr/bin/env bash - -set -ev # exit when error - -if [ -z $TRAVIS_BRANCH ]; then - currentBranch=`git rev-parse --abbrev-ref HEAD` -else - currentBranch=$TRAVIS_BRANCH -fi - -if [ $currentBranch != 'master' ]; then - printf "update-website: You must be on master" - exit 1 -else - export STAGE=production -fi - -VERSION=`cat package.json | json version` - -set -e # exit when error - -printf "\nPublish website to gh-pages\n" - -cd docs -bundle install -rm -rf build -bundle exec middleman build --no-parallel -cd .. -babel-node scripts/docs/gh-pages.js diff --git a/scripts/finish-release b/scripts/finish-release deleted file mode 100755 index 2081940f..00000000 --- a/scripts/finish-release +++ /dev/null @@ -1,25 +0,0 @@ -#! /usr/bin/env bash -[ -z $CI ] && CI='false' - -if [ $CI != 'true' ]; then - printf "finish-release: Only doable on CI\n" - exit 1 -fi - -set -ev # exit when error - -VERSION=`cat package.json | json version` -JSDELIVER_URL="http://cdn.jsdelivr.net/docsearch.js/$VERSION/docsearch.min.js" - -while true; do - STATUS=$(curl -L -I $JSDELIVER_URL 2>/dev/null | head -n 1 | cut -d$' ' -f2); - if [ $STATUS == '200' ]; then - printf "$VERSION is now available on jsDelivr\n" - break; - else - printf "$VERSION is not yet published on jsDelivr, retrying in 30s (status was $STATUS)\n" - fi - sleep 30 -done - -./scripts/docs/update-website diff --git a/scripts/lint b/scripts/lint new file mode 100755 index 00000000..987bce7f --- /dev/null +++ b/scripts/lint @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +set -e + +eslint ./src ./*.js diff --git a/scripts/release b/scripts/release index 13167346..68671be5 100755 --- a/scripts/release +++ b/scripts/release @@ -8,8 +8,8 @@ then exit 1 fi -currentBranch=`git rev-parse --abbrev-ref HEAD` -if [ $currentBranch != 'master' ]; then +currentBranch=$(git rev-parse --abbrev-ref HEAD) +if [ "$currentBranch" != 'master' ]; then printf "Release: You must be on master" exit 1 fi @@ -26,13 +26,17 @@ git fetch origin --tags printf "Release: npm install" npm install -currentVersion=`cat package.json | json version` +currentVersion=$(json version < package.json) # header -printf "\n\nRelease: current version is $currentVersion" -printf "\nRelease: a changelog will be generated only if a fix/feat/performance/breaking token is found in git log" -printf "\nRelease: you must choose a new ve.rs.ion (semver)" -printf "\nRelease: press q to exit the next screen\n\n" +echo "" +echo "Release: current version is $currentVersion" +echo "Release: a changelog will be generated only if a fix/feat/performance/breaking token is found in git log" +echo "Release: you must choose a new ve.rs.ion (semver)" +echo "Release: press q to exit the next screen" +echo "" +echo "" + # preview changelog read -p "=> Release: press [ENTER] to view changes since latest version.." @@ -50,7 +54,7 @@ NODE_ENV=production VERSION=$newVersion npm run build # update changelog printf "\n\nRelease: update changelog" -changelog=`conventional-changelog -p angular` +changelog=$(conventional-changelog -p angular) conventional-changelog --preset angular --infile CHANGELOG.md --same-file -r 0 # regenerate readme TOC @@ -60,7 +64,7 @@ npm run doctoc # git add and tag commitMessage="v$newVersion\n\n$changelog" git add src/lib/version.js package.json CHANGELOG.md README.md CONTRIBUTING.md -printf "$commitMessage" | git commit --file - +echo "$commitMessage" | git commit --file - git tag "v$newVersion" printf "\n\nRelease: almost done, check everything in another terminal tab.\n" @@ -71,6 +75,4 @@ git push origin master git push origin --tags npm publish -printf "Release: -Package was published to npm. -A job on travis-ci will be automatically launched to finalize the release." +printf "Release: Package was published to npm." diff --git a/scripts/serve b/scripts/serve index 336fd1ab..1644b6d3 100755 --- a/scripts/serve +++ b/scripts/serve @@ -1,24 +1,9 @@ #!/usr/bin/env bash -# Serves the current build version on a local server available (by default) on -# http://127.0.0.1:8080/docsearch.js and http://127.0.0.1/docsearch.css -# -# This is useful when you want to test the latest docsearch.js version -# (including your own branches) on a specific local project. Just run `npm run -# serve` in the docsearch repository, and link the file in your project. -# -# This works by running webpack in watch mode as well as simply serving the dist -# folder through a local web server. -npm run build:css +yarn run build:css -# Watch changes and rebuild file if needed -NODE_ENV=production \ - webpack \ - --config webpack.serve.config.babel.js \ - -w & -# Serve files -cd dist/cdn && http-server & -# Rebuild css -onchange './src/styles/*.scss' -- npm run build:css & \ - -wait +echo "Find all files at http://127.0.0.1:8080/"; +parallelshell \ + 'webpack --config webpack.serve.config.babel.js -w' \ + 'onchange "./src/styles/*.scss" -- yarn run build:css' \ + 'live-server ./dist/cdn' \ diff --git a/scripts/test b/scripts/test new file mode 100755 index 00000000..1d00b529 --- /dev/null +++ b/scripts/test @@ -0,0 +1,6 @@ +#!/usr/bin/env sh +set -e + +jest \ + --no-cache \ + ./src/lib/ diff --git a/scripts/test-ci b/scripts/test-ci deleted file mode 100755 index 0bd608d5..00000000 --- a/scripts/test-ci +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash - -set -ev # exit when error - -npm run test -NODE_ENV=production npm run build - -if [ "$TRAVIS_PULL_REQUEST" == 'false' ] && [ "$TRAVIS_BRANCH" == 'master' ]; then - ./scripts/finish-release -fi diff --git a/scripts/test-watch b/scripts/test-watch new file mode 100755 index 00000000..63b84fce --- /dev/null +++ b/scripts/test-watch @@ -0,0 +1,7 @@ +#!/usr/bin/env sh +set -e +jest \ + --no-cache \ + --watch \ + ./src/lib/ + diff --git a/src/lib/DocSearch.js b/src/lib/DocSearch.js index 97cc70a9..6a3fa12b 100644 --- a/src/lib/DocSearch.js +++ b/src/lib/DocSearch.js @@ -306,7 +306,7 @@ class DocSearch { handleSelected(input, event, suggestion) { input.setVal(''); - window.location.href = suggestion.url; + window.location.assign(suggestion.url); } handleShown(input) { diff --git a/src/lib/__tests__/DocSearch-test.js b/src/lib/__tests__/DocSearch-test.js index cb74e595..0ea540da 100644 --- a/src/lib/__tests__/DocSearch-test.js +++ b/src/lib/__tests__/DocSearch-test.js @@ -3,10 +3,6 @@ import sinon from 'sinon'; import $ from '../zepto.js'; import DocSearch from '../DocSearch.js'; -Object.defineProperty(window.location, 'href', { - writable: true, - value: 'some url', -}); describe('DocSearch', () => { beforeEach(() => { @@ -22,6 +18,8 @@ describe('DocSearch', () => { // We prevent the logging of expected errors window.console.warn = sinon.spy(); + + window.location.assign = jest.fn(); }); describe('constructor', () => { @@ -405,8 +403,11 @@ describe('DocSearch', () => { ds.autocomplete.trigger('autocomplete:selected', { url: 'https://website.com/doc/page', }); + return new Promise(resolve => { - expect(window.location.href).toEqual('https://website.com/doc/page'); + expect(window.location.assign).toHaveBeenCalledWith( + 'https://website.com/doc/page' + ); resolve(); }); }); diff --git a/webpack.dev.config.babel.js b/webpack.dev.config.babel.js deleted file mode 100644 index 342ad71a..00000000 --- a/webpack.dev.config.babel.js +++ /dev/null @@ -1,24 +0,0 @@ -import { join } from 'path'; - -export default { - entry: './dev/app.js', - devtool: 'source-map', - output: { - path: join(__dirname, 'dev/'), - filename: 'bundle.js', - }, - module: { - rules: [ - { - test: /\.js$/, - exclude: /node_modules/, - loader: 'babel-loader', - }, - ], - }, - devServer: { - contentBase: 'dev/', - host: '0.0.0.0', - compress: true, - }, -};