diff --git a/404.md b/404.md new file mode 100644 index 0000000..5c5dd77 --- /dev/null +++ b/404.md @@ -0,0 +1,12 @@ +--- +layout: 404 +title: 404 not found +permalink: /404.html +section: 404 +--- + +## 404 + +Sorry, the requested page could not be found. + +Please visit the [Home Page](/) instead. diff --git a/CNAME b/CNAME index 0ebae2f..64a5de7 100644 --- a/CNAME +++ b/CNAME @@ -1 +1 @@ -bluewallet.io \ No newline at end of file +hungry-pare-adf179.netlify.com \ No newline at end of file diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..b71047c --- /dev/null +++ b/Gemfile @@ -0,0 +1,30 @@ +source "https://rubygems.org" + +# Hello! This is where you manage which Jekyll version is used to run. +# When you want to use a different version, change it below, save the +# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: +# +# bundle exec jekyll serve +# +# This will help ensure the proper Jekyll version is running. +# Happy Jekylling! +gem "jekyll", "~> 3.8" +gem 'jekyll-seo-tag' +gem 'jekyll-paginate' +gem 'jekyll-github-metadata' +gem 'jekyll-get-json' + +# If you want to use GitHub Pages, remove the "gem "jekyll"" above and +# uncomment the line below. To upgrade, run `bundle update github-pages`. +# gem "github-pages", group: :jekyll_plugins + +# If you have any plugins, put them here! +group :jekyll_plugins do + # +end + +# Windows does not include zoneinfo files, so bundle the tzinfo-data gem +gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby] + +# Performance-booster for watching directories on Windows +gem "wdm", "~> 0.1.0" if Gem.win_platform? diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..4778acc --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,84 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.7.0) + public_suffix (>= 2.0.2, < 5.0) + colorator (1.1.0) + concurrent-ruby (1.1.5) + deep_merge (1.2.1) + em-websocket (0.5.1) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0.6.0) + eventmachine (1.2.7) + faraday (0.17.1) + multipart-post (>= 1.2, < 3) + ffi (1.11.3) + forwardable-extended (2.6.0) + http_parser.rb (0.6.0) + i18n (0.9.5) + concurrent-ruby (~> 1.0) + jekyll (3.8.6) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 0.7) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 2.0) + kramdown (~> 1.14) + liquid (~> 4.0) + mercenary (~> 0.3.3) + pathutil (~> 0.9) + rouge (>= 1.7, < 4) + safe_yaml (~> 1.0) + jekyll-get-json (0.0.1) + deep_merge (~> 1.2) + jekyll (~> 3.0) + jekyll-github-metadata (2.12.1) + jekyll (~> 3.4) + octokit (~> 4.0, != 4.4.0) + jekyll-paginate (1.1.0) + jekyll-sass-converter (1.5.2) + sass (~> 3.4) + jekyll-seo-tag (2.6.1) + jekyll (>= 3.3, < 5.0) + jekyll-watch (2.2.1) + listen (~> 3.0) + kramdown (1.17.0) + liquid (4.0.3) + listen (3.2.1) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.3.6) + multipart-post (2.1.1) + octokit (4.14.0) + sawyer (~> 0.8.0, >= 0.5.3) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (4.0.1) + rb-fsevent (0.10.3) + rb-inotify (0.10.0) + ffi (~> 1.0) + rouge (3.14.0) + safe_yaml (1.0.5) + sass (3.7.4) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sawyer (0.8.2) + addressable (>= 2.3.5) + faraday (> 0.8, < 2.0) + +PLATFORMS + ruby + +DEPENDENCIES + jekyll (~> 3.8) + jekyll-get-json + jekyll-github-metadata + jekyll-paginate + jekyll-seo-tag + tzinfo-data + +BUNDLED WITH + 2.0.2 diff --git a/LICENSE b/LICENSE index 77afa5b..883a4d5 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ -The MIT License (MIT) +MIT License -Copyright (c) 2013-2018 Blackrock Digital LLC +Copyright (c) 2018 Dan Urbanowicz Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -9,13 +9,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/_changelogs/changelog-1.md b/_changelogs/changelog-1.md new file mode 100644 index 0000000..b705f9e --- /dev/null +++ b/_changelogs/changelog-1.md @@ -0,0 +1,15 @@ +--- +title: November Update +date: 2018-11-11 +--- + +{% include tag.html tag="fixed" %} + +```html + + + + + + +``` diff --git a/_changelogs/changelog-2.md b/_changelogs/changelog-2.md new file mode 100644 index 0000000..0eda2f6 --- /dev/null +++ b/_changelogs/changelog-2.md @@ -0,0 +1,14 @@ +--- +title: 🚧 January Updates v1.0.5 +date: 2019-01-17 +--- + +Create your own labels, set text and color: + +{% include tag.html tag="added" %} +{% include tag.html tag="changed" %} +{% include tag.html tag="deprecated" %} +{% include tag.html tag="removed" %} +{% include tag.html tag="fixed" %} +{% include tag.html tag="security" %} +{% include tag.html tag="unreleased" %} diff --git a/_changelogs/changelog-3.md b/_changelogs/changelog-3.md new file mode 100644 index 0000000..7eb5707 --- /dev/null +++ b/_changelogs/changelog-3.md @@ -0,0 +1,21 @@ +--- +title: February Updates +date: 2019-02-02 +--- + +February updates across our stack, the main focus for this month in regards to what was released is around: + +Migrating all companies to new access control +Migrating all companies using ticket deflection to the new system +Further improving system, and allowing you to compare your results against wide averages for deflection rates + +{% include tag.html tag="changed" %} +- Better support for using applying additional filters to posts_tax_query for categories for custom WordPress syncs +- Reporting fine-tuning for speed improvements (up to 60% improvement in latency) +- Search engine upgraded. Bringing with it enhancements and bug fixes. +- Replaced login / registration pre-app screens with a cleaner design + +{% include tag.html tag="fixed" %} +- Fixed an issue with the sync autolinker only interlinking selectively. +- Fixed up an issue with prematurely logging out users + diff --git a/_changelogs/changelog-4.md b/_changelogs/changelog-4.md new file mode 100644 index 0000000..ebacb51 --- /dev/null +++ b/_changelogs/changelog-4.md @@ -0,0 +1,20 @@ +--- +title: 🚀 April Updates +date: 2019-04-22 +--- + +April comes with a whole bunch of updates across our stack, the main focus for this month in regards to what was released is around: + +Further improving system, and allowing you to compare your results against wide averages for deflection rates +Improvements to our tool to give you and your team more control +And various other new features, updates, and bug fixes along the way. + +{% include tag.html tag="added" %} +- Some scheduled changelogs, tweets, and slack messages queued up this weekend and were not published on time. We fixed the issue and all delayed publications should be out. +- We now prioritize keywords over title and body so customers can more effectively influence search results +- Support form in the Assistant is now protected with reCaptcha to reduce spam reinitializeOnUrlChange added to the JavaScript API to improve support for pages with turbolinks + +{% include tag.html tag="fixed" %} +- Fixed an issue with the sync autolinker only interlinking selectively. +- Fixed up an issue with prematurely logging out users + diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..478a856 --- /dev/null +++ b/_config.yml @@ -0,0 +1,182 @@ +# Welcome to Jekyll! +# +# This config file is meant for settings that affect your whole blog, values +# which you are expected to set up once and rarely edit after that. If you find +# yourself editing this file very often, consider using Jekyll's data files +# feature for the data you need to update frequently. +# +# For technical reasons, this file is *NOT* reloaded automatically when you use +# 'bundle exec jekyll serve'. If you change this file, please restart the server process. + +# Site settings +# These are used to personalize your new site. If you look in the HTML files, +# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on. +# You can create any custom variable you would like, and they will be accessible +# in the templates via {{ site.myvariable }}. +title: BlueWallet - Bitcoin Wallet for iOS and Android +email: your-email@example.com +description: >- # this means to ignore newlines until "baseurl:" + Bitcoin wallet and Lightning wallet for iOS and Android extremely simple and powerful. Open source, Segwit and HD wallets, lightning network, plausible deniability, replace by fee and full encryption +baseurl: "" # the subpath of your site if applicable, e.g. /blog +url: "https://jekyll-netlify-boilerplate.netlify.com" # the base hostname & protocol for your site, e.g. https://example.com + + +# Enable section IDs in frontmatter, useful for identifying current page +# (used as a hook for styling etc) +section: true + +# set to 'true' to enable Netlify CMS (/admin) in production builds +netlifycms: true + +# set to 'true' to enable Google Analytics tracking code in production builds +analytics: true + +# Google analytics code, get your code here https://www.google.com/analytics/ +google_analytics: UA-120614437-1 + + +# Compress HTML (in liquid via layouts/compress.html) +compress_html: + clippings: all + +# Kramdown options +kramdown: + # Prevent IDs from being added to h1-h6 tags + auto_ids: false + +plugins: + - 'jekyll-seo-tag' + - 'jekyll-paginate' + + +# Include in processing (e.g. Netlify directives) +# Uncomment before use + +#include: +# - _redirects +# - _headers + +# Exclude from processing. +# The following items will not be processed. +exclude: + - README.md + - LICENSE.txt + - netlify.toml + - feed.xml + - Gemfile + - Gemfile.lock + - node_modules + - vendor/bundle/ + - vendor/cache/ + - vendor/gems/ + - vendor/ruby/ + +# Site subpath, e.g. /blog +baseurl: "" + +# Permalink URLs structure, for permalink style options see: https://jekyllrb.com/docs/permalinks/ +permalink: /:title/ + +# Site base hostname & protocol, e.g. http://example.com +url: "https://ncoelho.github.io/jekyll-netlify-boilerplate/" + +# Site logo # e.g. logo.png, upload logo image file to /uploads/ folder +logo: logo-bluewallet.svg + +navbar: + sticky: false + search: false + +# Default author settings +author: + name: Nuno Coelho + title: Product & UX + avatar: nuno.png + +# Author settings, displayed on post and doc pages if front matter references author name e.g. author: peter +authors: + nuno: + name: Nuno Coelho + title: Product & UX + avatar: nuno.png + igor: + name: Igor Korsakov + title: Engineering + avatar: igor.png + marcos: + name: Marcos Rodriguez + title: Engineering + avatar: marcos.png + + +# Social icons displayed in footer +social: + email: + website: + facebook: + flickr: + dribbble: + github: https://github.com/bluewallet/bluewallet + googleplus: + instagram: + linkedin: + pinterest: + twitter: https://twitter.com/@bluewalletio + vimeo: + youtube: + telegram: https://t.me/bluewallet + +# Share button +share: + post: false # Display share buttons on a post page + doc: false # Display share buttons on a doc page + twitter: false # Enable by adding Twitter handle + facebook: false # Enable by setting true (Facebook handle not required) + +# Default footer image settings +footer: + copyright: Made somewhere on the planet earth. + +# Disqus comments shortname, requires Disqus account https://disqus.com/ +disqus: + shortname: # 1234 + + +# Number of posts displayed on blog page +paginate: 10 + +# Blog path +paginate_path: "/blog/:num/" + +# Path to post content assets directory i.e post images, pdfs etc +uploads: /uploads/ + +# Build settings +markdown: kramdown +highlighter: rouge + +sass: + style: compressed + +collections: + docs: + output: true + faqs: + output: false + changelogs: + output: false + +# Defaults +defaults: + # _posts + - scope: + path: "" + type: posts + values: + layout: post + # _docs + - scope: + path: "" + type: docs + values: + layout: doc \ No newline at end of file diff --git a/_data/all_features.yml b/_data/all_features.yml new file mode 100644 index 0000000..2c67fdc --- /dev/null +++ b/_data/all_features.yml @@ -0,0 +1,63 @@ +- title: Payjoin + desc: Payjoin or Pay-to-endpoint, it's a feature that allows to break common chain analysis heuristics, where to participants build a transaction together. + +- title: Plug-in your Bitcoin node + desc: Ability to plug-in your own Bitcoin Full node through Electrum Personal Server (EPS), ElectrumX or Electrs. Don't trust, verify for a maximum sovereignty. + +- title: Offline mode + desc: In case you don't have internet connection, BlueWallet will allow you to generate wallets or addresses to be able to receive offline. + +- title: Custom entropy + desc: Ability to manually generate entropy for wallet creation with Coins and Dices. This is an advanced feature, use with caution. + +- title: Coldcard support + desc: Connect to your Coldcard wallet with ease. Support for PSBT and Watch-only wallets. Allows for receiving and sending transactions by signing them offline. + +- title: CoboVault support + desc: Support for Cobo Vault hardware wallet. With one of the first of its kind Air-gapped, PSBT with animated QR codes support. + +- title: Hardware Wallets + desc: Ability to connect and work with Hardware Wallets that support PSBT. After importing your wallet on watch-only mode, go to the wallet options and turn on "hardware wallet" mode. + +- title: PSBT + desc: Support for PSBT - Partially Signed Bitcoin Transactions, BIP 174. Under the hood transactions on BlueWallet are using and constructed by the PSBT standard. + +- title: Broadcast Transaction + desc: Ability to broadcast a transaction that was previsously signed on BlueWallet or elsewhere. + +- title: Multiple Storage + desc: Besides having one storage for all your wallets, you can have multiple encrypted storages, that can be accessed by different passwords. This is useful in case you don't want to have all your wallets in the same storage, or you have other family members or employees accessing or using the app. + +- title: Full encryption + desc: On top of the phone multi-layer encryption, blue wallet can encrypt everything with an added password. Biometric security (touch ID, Face ID) is not safe, so you will have an additional password to encrypt your wallet instead. + +- title: Your keys (bip39) + desc: On your Bitcoin wallet your Private keys (Seed) never leave your device. You can at any moment generate backups and export/import your wallets, with full control of what to do with your private keys. + +- title: HD wallets + desc: The Hierarchical Deterministic (HD) key creation and transfer protocol (BIP32), allows creating child keys from parent keys in a hierarchy. The HD Wallets will generate for you a different address for each transactions. + +- title: SegWit + desc: SegWit supported in P2SH-compatibility mode and bech32 Native mode. Segwit was a massive upgrade to the Bitcoin Protocol released in 2017. You will find all wallets with SegWit enabled by default. Find more about SegWit here. + +- title: Export TXHEX + desc: You can get your transaction HEX (TXHEX) without broadcasting it, and only do it with the relay of your choice. + +- title: Dark mode + desc: BlueWallet is now available in Dark mode for iOS and android. + +- title: LNurl + desc: Support for the LNurl protocol with LNurl-pay and LNurl-withdraw. This features allows you to have an easier interaction with the Lightning Network and services that support LNurl. + +- title: Marketplace + desc: Support for the LNurl protocol with LNurl-pay and LNurl-withdraw. This features allows you to have an easier interaction with the Lightning Network and services that support LNurl. + +- title: Lightning Browser + desc: A Lightning browser supporting the webLN standard to help you use and discover new services. + +- title: Multi-currency + desc: BlueWallet supports more than 30 currencies, including USD, AUD, BRL, CAD, CHF, CZK, CNY, EUR, GDP, HRK, INR, JPY, MXN, MYR, RUB, and more. + +- title: Open Source + desc: BlueWallet is built on a public repo, up-to-date and available on the BlueWallet GitHub. This means that any user can build it and run it on his own, without any custodial dependencies. Verify the code and contribute to the wallet development. + diff --git a/_data/authors.yml b/_data/authors.yml new file mode 100644 index 0000000..e067171 --- /dev/null +++ b/_data/authors.yml @@ -0,0 +1,11 @@ +# specify site authors in this file +# you can add .yml files for any other global data in this folder + +dan_urbanowicz: + name: Dan Urbanowicz + email: dan.urbanowicz@gmail.com + web: https://www.danurbanowicz.com +john_doe: + name: John Doe + email: johndoe@email.com + web: http://twitter.com/johndoe diff --git a/_data/backup-wallet.md b/_data/backup-wallet.md new file mode 100644 index 0000000..8406c59 --- /dev/null +++ b/_data/backup-wallet.md @@ -0,0 +1,21 @@ +--- +title: How to backup/export a wallet +subtitle: Access to private keys and recover of wallets +tags: [usage] +--- + +To backup or export your wallet is pretty simple. This backup is the "key", usually a mnemonic (set of 24 words) or just a "text" that will give you access to your wallet if you lose your device, uninstall the app, etc. In short, if something wrong happens and you want/need to get access to your wallet again. + +### Things to know +On bluewallet every wallet has its own backup and there's no global backup for all wallets that you can create, this is something you need to do individually for each wallet. We advise to backup all wallets. + +### Where to do it +Inside your wallet you are going to find on the top right an options menu. Usually with the 3 dots icon. After you tap there you will be taken to the wallet options screen, where you will find the "backup/export" option. + +
+
+
+ +
+
+
\ No newline at end of file diff --git a/_data/changelog.yml b/_data/changelog.yml new file mode 100644 index 0000000..5d3cbfc --- /dev/null +++ b/_data/changelog.yml @@ -0,0 +1,38 @@ +# Changelog page source + +- title: Version 1.0.0 + label: STABLE + date: Oct 21, 2017 + list: + - Added Slideshow component + - Added style support for radio and minusbox in Firefox + - Removed class from Section component + - Allow fullscreen mode for videos in Lightbox + - Fixed responsive images in modal for IE11 + - Fix Grid and Margin component for cells with no height + - Larger horizontal padding for form input and textarea + +- title: Version 1.0.0 + label: BETA 1 + date: Sep 01, 2017 + list: + - Allow fullscreen mode for YouTube videos in Lightbox + - Fix icons not displaying if connected in rapid succession + - Fix scrollbar jumping in Switcher + +- title: Version 0.6.0 + label: + date: Aug 15, 2017 + list: + - Added style support for radio and checkbox in Firefox + - Removed class from Section component + - Add workaround to mitigate the duplicating icons issue + - Fixed responsive images in modal for IE11 + +- title: Version 0.5.0 + label: + date: Oct 21, 2017 + list: + - Media options now support any valid media query syntax + - Added style support for radio and checkbox in Firefox + - Fix whitespace trimming in dist diff --git a/_data/navigation.yml b/_data/navigation.yml new file mode 100644 index 0000000..e2696d4 --- /dev/null +++ b/_data/navigation.yml @@ -0,0 +1,10 @@ +# specify main menu items here + +- text: Home + url: / +- text: About + url: /about +- text: Contact + url: /contact +- text: Blog + url: /blog diff --git a/_data/navigation_boxes.yml b/_data/navigation_boxes.yml new file mode 100644 index 0000000..bc5a66d --- /dev/null +++ b/_data/navigation_boxes.yml @@ -0,0 +1,31 @@ +# Boxes include navigation + +- title: Watch-only Wallets + desc: Easily connect to your hardware wallet and manage your cold storage. + icon: watch-only + url: /watch-only/ + +- title: Multisig Vaults + desc: The best security available on the Bitcoin protocol. Create wallets with multiple keys. + icon: ms-vault + url: /multisig-wallet/ + +- title: Lightning Wallets + desc: Unfairly cheap and blazing fast transactions on Bitcoin. + icon: lightning + url: /lightning/ + +- title: Notifications + desc: Get notified of all transactions you are sending or receiving. + icon: notifications + url: /features/#notifications + +- title: Plausible Deniability + desc: Create multiple storages or fake ones in case of a forced disclosure. + icon: pdeniability + url: /features/#pdeniability + +- title: Transactions control + desc: Choose your fees when sending. Easily Bump, Cancel or Batch transactions. + icon: fees + url: /features/#bump \ No newline at end of file diff --git a/_data/navigation_docs.yml b/_data/navigation_docs.yml new file mode 100644 index 0000000..7983fe6 --- /dev/null +++ b/_data/navigation_docs.yml @@ -0,0 +1,28 @@ +- title: Help section + docs: + - intro + - create-bitcoin-wallet + - create-lightning-wallet + - backup-wallet + - recover-wallet + - manual-entropy + - batching + - multisig-spend + +- title: Hardware Wallets + docs: + - coldcard + - coldcard-dropbox + - coldcard-watch + - cobo-vault + +- title: Local Trader + docs: + - local-trader + +- title: LNDhub + docs: + - lndhub-ubuntu + - lndhub-macos + - lndhub-raspibolt + diff --git a/_data/navigation_footer.yml b/_data/navigation_footer.yml new file mode 100644 index 0000000..52520d2 --- /dev/null +++ b/_data/navigation_footer.yml @@ -0,0 +1,17 @@ +# Footer navigation links + +- title: Bitcoin Wallet + url: /bitcoin-wallet + +- title: Desktop App + url: /desktop-bitcoin-wallet + +- title: Local Trader + url: /local-trader/ + +- title: LNDHub + url: /lndhub/ + +- title: Apple Watch + url: /watch-app/ + diff --git a/_data/navigation_footer2.yml b/_data/navigation_footer2.yml new file mode 100644 index 0000000..85ef32a --- /dev/null +++ b/_data/navigation_footer2.yml @@ -0,0 +1,14 @@ +# Footer navigation links + +- title: Terms of use + url: /tos/ + +- title: Privacy policy + url: /privacy/ + +- title: Contact + url: /about/ + +- title: Blog + url: /blog/ + diff --git a/_data/navigation_header.yml b/_data/navigation_header.yml new file mode 100755 index 0000000..2066d46 --- /dev/null +++ b/_data/navigation_header.yml @@ -0,0 +1,79 @@ +# Navbar left menu navigation links + +right: + - title: Home + url: / + + - title: Features + dropdown: + + - title: View All + url: /features/ + + - divider: true + + - title: Bitcoin Wallet + url: /bitcoin-wallet/ + + - title: Watch-only Wallet + url: /watch-only/ + + - title: Multisig Vault + url: /multisig-wallet/ + + - title: Lightning Wallet + url: /lightning/ + + - title: Support + url: /docs/intro/ +# Navbar right menu navigation links + +# right: + + # - title: Changelog + # url: /changelog-timeline/ + # button: primary-outline + + # - title: Contact + # url: /contact/ + # button: success + + # - title: Changelog + # url: /contact/ + # button: default + + # - title: Contact + # url: /contact/ + # button: primary + + # - title: Changelog + # url: /contact/ + # button: secondary + + # - title: Contact + # url: /contact/ + # button: danger + + # - title: Changelog + # url: /contact/ + # button: success + + # - title: Contact + # url: /contact/ + # button: warning + + # - title: Changelog + # url: /contact/ + # button: primary-outline + + # - title: Contact + # url: /contact/ + # button: danger-outline + + # - title: Changelog + # url: /contact/ + # button: success-outline + + # - title: Contact + # url: /contact/ + # button: warning-outline \ No newline at end of file diff --git a/_data/navigation_mobile.yml b/_data/navigation_mobile.yml new file mode 100755 index 0000000..aadad0b --- /dev/null +++ b/_data/navigation_mobile.yml @@ -0,0 +1,22 @@ +# Mobile menu navigation links + +- title: Home + url: / + +- title: Features + url: /features/ + +- title: Bitcoin Wallet + url: /bitcoin-wallet/ + +- title: Watch-only Wallet + url: /watch-only/ + +- title: Multisig Vault + url: /multisig-wallet/ + +- title: Lightning Wallet + url: /lightning/ + +- title: Support + url: /docs/intro/ \ No newline at end of file diff --git a/_data/tags.yml b/_data/tags.yml new file mode 100644 index 0000000..bd0d504 --- /dev/null +++ b/_data/tags.yml @@ -0,0 +1,28 @@ +# Tags +added: + text: Added + color: "#3778ff" + +changed: + text: Changed + color: "#3aaa55" + +deprecated: + text: Deprecated + color: "#333333" + +removed: + text: Removed + color: "#17caf0" + +fixed: + text: Fixed + color: "#ff4772" + +security: + text: Security + color: "#fb3434" + +unreleased: + text: Unreleased + color: "#a037ff" \ No newline at end of file diff --git a/_data/translation.yml b/_data/translation.yml new file mode 100644 index 0000000..eead0cb --- /dev/null +++ b/_data/translation.yml @@ -0,0 +1,20 @@ +# English (default) + +en: + previous: "Previous" + next: "Next" + related_docs: "Related Docs" + related_posts: "Related Posts" + read_more: "Read more" + written_by: "Written by" + share_twitter: "Share on Twitter" + share_facebook: "Share on Facebook" + search_placeholder: "Search for answers" + search_no_results: "No results found" + mobile_nav_docs: "Docs" + mobile_nav_site: "Menu" + contact_name: "Name" + contact_email: "Email" + contact_subject: "Subject" + contact_message: "Message" + contact_send: "Send" \ No newline at end of file diff --git a/_data/videos.yml b/_data/videos.yml new file mode 100755 index 0000000..3279e41 --- /dev/null +++ b/_data/videos.yml @@ -0,0 +1,13 @@ +# Video include content + +- title: Jekyll Introduction + desc: Overview of the most popular static generator + url: https://youtu.be/T1itpPvFWHI + +- title: Creating a post + desc: Lean how to publish your first post in Jekyll + url: https://youtu.be/gsYqPL9EFwQ + +- title: Batching Transactions + desc: Send to many recipients + url: https://youtu.be/watch?v=k9SGcRZnvNg \ No newline at end of file diff --git a/_docs/alerts.md b/_docs/alerts.md new file mode 100644 index 0000000..5b9f371 --- /dev/null +++ b/_docs/alerts.md @@ -0,0 +1,32 @@ +--- +title: Adding alerts to content +subtitle: Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. +tags: [features] +author: evan +--- + +There are four alert styles: + +{% include alert.html style="primary" text="Cras at dolor eget urna varius faucibus tempus in elit." %} + +{% include alert.html style="success" text="Cras at dolor eget urna varius faucibus tempus in elit." %} + +{% include alert.html style="warning" text="Cras at dolor eget urna varius faucibus tempus in elit." %} + +{% include alert.html style="danger" text="Cras at dolor eget urna varius faucibus tempus in elit." %} + +Add alerts to a post using the following includes: + +{% raw %} +```yaml +{% include alert.html style="primary" text="Cras at dolor eget urna varius faucibus tempus in elit." %} + +{% include alert.html style="success" text="Cras at dolor eget urna varius faucibus tempus in elit." %} + +{% include alert.html style="warning" text="Cras at dolor eget urna varius faucibus tempus in elit." %} + +{% include alert.html style="danger" text="Cras at dolor eget urna varius faucibus tempus in elit." %} +``` +{% endraw %} + + diff --git a/_docs/analytics.md b/_docs/analytics.md new file mode 100644 index 0000000..235ba9b --- /dev/null +++ b/_docs/analytics.md @@ -0,0 +1,15 @@ +--- +layout: doc +title: Google Analytics +categories: [Features] +author: evan +tags: +--- + +To enable Google Anaytics, add the following lines to your Jekyll site: + +```yaml + google_analytics: UA-NNNNNNNN-N +``` + +Google Analytics will only appear in production, i.e., `JEKYLL_ENV=production` diff --git a/_docs/backup-wallet.md b/_docs/backup-wallet.md new file mode 100644 index 0000000..8406c59 --- /dev/null +++ b/_docs/backup-wallet.md @@ -0,0 +1,21 @@ +--- +title: How to backup/export a wallet +subtitle: Access to private keys and recover of wallets +tags: [usage] +--- + +To backup or export your wallet is pretty simple. This backup is the "key", usually a mnemonic (set of 24 words) or just a "text" that will give you access to your wallet if you lose your device, uninstall the app, etc. In short, if something wrong happens and you want/need to get access to your wallet again. + +### Things to know +On bluewallet every wallet has its own backup and there's no global backup for all wallets that you can create, this is something you need to do individually for each wallet. We advise to backup all wallets. + +### Where to do it +Inside your wallet you are going to find on the top right an options menu. Usually with the 3 dots icon. After you tap there you will be taken to the wallet options screen, where you will find the "backup/export" option. + +
+
+
+ +
+
+
\ No newline at end of file diff --git a/_docs/batching.md b/_docs/batching.md new file mode 100644 index 0000000..04187d3 --- /dev/null +++ b/_docs/batching.md @@ -0,0 +1,16 @@ +--- +title: Send to many or Batching +tags: [usage] +--- + +This feature allows you to send multiple transactions in one batch. This is useful if you have two or more transactions that you want to make and spend less fees. All the transaction will be batched in a single transaction fee, making it less expensive for the sender and also they will spend less space on the blockchain. So a win-win for the bitcoin network and for the users. + +
+
+

Batching demo

+

Send to multiple recipients

+
+ +
+
+
\ No newline at end of file diff --git a/_docs/boxes.md b/_docs/boxes.md new file mode 100644 index 0000000..688c042 --- /dev/null +++ b/_docs/boxes.md @@ -0,0 +1,29 @@ +--- +title: Category boxes section +subtitle: Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. +tags: [features] +author: evan +--- + +Home page category boxes are added in `_data/navigation_boxes.yml`, e.g.: +```yml +- title: Getting Started + desc: Get your account up and running in just few easy steps + icon: settings + doc: usage + +- title: Account and Billing + desc: Managing your account, creating new users and exporting data + icon: credit-card + doc: drafts +``` + +All available icons can be found [here](https://getuikit.com/docs/icon#library). + +Add boxes section to a page using the following include: +{% raw %} +```yaml +{% include boxes.html columns="3" title="Browse Topics" subtitle="Chose an option that you need help with or search above" %} +``` +{% endraw %} + diff --git a/_docs/changelog.md b/_docs/changelog.md new file mode 100644 index 0000000..99d7bd5 --- /dev/null +++ b/_docs/changelog.md @@ -0,0 +1,77 @@ +--- +title: Creating a changelog +subtitle: Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. +tags: [setup] +author: evan +--- + +Theme comes with two different changelogs, timeline and post style. + +### Timeline style changelog + +Timeline changelog can be added to a page using an include and its data is pulled from a `_data/changelog.yml` data file. This changelog is suitable for simple lists of changes. + +Add changelog to a page using the following include: +{% raw %} +```yaml +{% include changelog.html %} +``` +{% endraw %} + +Changelog enties are added in `_data/changelog.yml`: + +```yml +- title: Version 0.6.0 + label: + date: Aug 15, 2017 + list: + - Added style support for radio and checkbox in Firefox + - Removed class from Section component +``` + +### Post style changelog + +This changelog is suitable for changelog entries with more content beyond simple lists adding text and media. + +Post styled changelog is displayed by setting `layout: changelog` in page YAML Front Matter: + +```yml +--- +layout: changelog +title: Changelog +permalink: /changelog/ +--- +``` + +Changelog enties are added by creating posts in `_changelog`: + +{% raw %} +```yml +--- +title: January Updates +date: 2019-01-22 +--- + +{% include tag.html tag="added" %} +- Some scheduled changelogs, tweets, and slack messages queued up this weekend and were not published on time. We fixed the issue and all delayed publications should be out. +- We now prioritize keywords over title and body so customers can more effectively influence search results +latency) +- Search engine upgraded. Bringing with it enhancements and bug fixes. +- Replaced login / registration pre-app screens with a cleaner design + +{% include tag.html tag="fixed" %} +- Fixed an issue with the sync autolinker only interlinking selectively. +- Fixed up an issue with prematurely logging out users +``` +{% endraw %} + +Tags can be modified in `_data/tags.yml`: +```yml +added: + text: Added + color: "#3778ff" + +changed: + text: Changed + color: "#3aaa55" +``` \ No newline at end of file diff --git a/_docs/cobo-vault.md b/_docs/cobo-vault.md new file mode 100644 index 0000000..cfaa0d6 --- /dev/null +++ b/_docs/cobo-vault.md @@ -0,0 +1,15 @@ +--- +title: Cobo Vault +subtitle: Air-gapped offline transaction with BlueWallet and Cobo Vault +tags: [usage] +--- + +BlueWallet features Cobo Vault hardware wallet support. + +With one of the first of its kind Air-gapped, PSBT with animated QR codes support. + +
+
+ +
+
diff --git a/_docs/coldcard-dropbox.md b/_docs/coldcard-dropbox.md new file mode 100644 index 0000000..f2fa3b7 --- /dev/null +++ b/_docs/coldcard-dropbox.md @@ -0,0 +1,26 @@ +--- +title: Coldcard - Cloud +subtitle: Coldcard with Bluewallet - Using Dropbox +tags: [hww] +--- + +
+
+ +
+
+ + +In this video you will see the usage of PSBT, watch-only wallets. And how to send transactions offline with your Coldcard and Bluewallet. Using dropbox on this example. + +- Start the Coldcard device, go to `Advanced` ➤ `MicroSD Card` ➤ `Export Wallet` ➤ `Electrum Wallet`. +- Put the SD card into Coldcard. Choose Native Segwit. It should create wallet skeleton file on SD card. +- Put the SD card into the PC and move the created wallet skeleton file onto the Dropbox folder. +- Grab the iPhone, launch BlueWallet, tap `Create a wallet` ➤ `Import wallet` ➤ `scan QR or import from file` ➤ `tap file icon` and choose your wallet skeleton file. It should import your Coldcard wallet as watch-only. +- Create a transaction from this watch-only wallet, when prompted - export it to a file and save it in Dropbox folder. +- Put the SD card back into the PC, and move the transaction file from Dropbox folder to the SD card. +- Put the SD card into the Coldcard, go to Ready To Sign and proceed with signing the transaction. +- Put the SD card into the PC. There should be 2 new files: a file with tge transaction hex that is ready to broadcast `(*-final.txn)`, and a signed transaction file `(*-signed.psbt)`.Let us finish the transaction on iPhone, so move signed transaction file to Dropbox. +- On the iPhone, tap Open Signed Transaction, and choose the signed transaction file from your Dropbox. - Tap Send now! + +PS: Take in consideration that we used dropbox on this example, but anything will work, File system, iCloud, Bluetooth, AirDrop, box.com, direct lightning to sd card adapter, etc \ No newline at end of file diff --git a/_docs/coldcard-watch.md b/_docs/coldcard-watch.md new file mode 100644 index 0000000..509187f --- /dev/null +++ b/_docs/coldcard-watch.md @@ -0,0 +1,12 @@ +--- +title: Coldcard - Watch-only +subtitle: See your real time Bitcoin balance stored on your ColdCard hardware wallet anytime from your BlueWallet app +tags: [hww] +--- + +
+
+ +
+
+ diff --git a/_docs/coldcard.md b/_docs/coldcard.md new file mode 100644 index 0000000..7c7bb2e --- /dev/null +++ b/_docs/coldcard.md @@ -0,0 +1,29 @@ +--- +title: Coldcard +subtitle: Coldcard with Bluewallet - Lightning SD card +tags: [hww] +--- + +
+
+ +
+
+ + +In this video you will see the usage of PSBT, watch-only wallets. And how to send transactions offline with your Coldcard and Bluewallet. + +Using a [Lightning to SD adaptor](https://www.apple.com/shop/product/MJYT2AM/A/lightning-to-sd-card-camera-reader) + +- Start the Coldcard device, go to `Advanced` ➤ `MicroSD Card` ➤ `Export Wallet` ➤ `Electrum Wallet`. Put the SD card into Coldcard. Choose Native Segwit. It should create the wallet skeleton file on SD card. +- Put the SD card into the adaptor, go to the import wallets screen and choose your file. +- Create a transaction from this watch-only wallet, when prompted - export it to a file and save it in your folder. +- Put the SD card into the Coldcard, go to "Ready To Sign" and proceed with signing the transaction. +- Put the SD card into the adaptor. There should be 2 new files: + - a file with the transaction hex that is ready to broadcast +```(*-final.txn)``` + - a signed transaction file +```(*-signed.psbt)``` + - Choose the signed transaction file +```('*-signed.psbt)``` +- Tap send! You are done :) \ No newline at end of file diff --git a/_docs/comments.md b/_docs/comments.md new file mode 100644 index 0000000..e7e01f6 --- /dev/null +++ b/_docs/comments.md @@ -0,0 +1,18 @@ +--- +layout: doc +title: Enabling comments (via Disqus) +subtitle: Disqus is a third party service that can be used to comment on blog posts. This document covers adding Disqus to a Jekyll blog +categories: [Features] +author: tom +--- + +Optionally, if you have a Disqus account, you can tell Jekyll to use it to show a comments section below each post. To enable it, add the following lines to your Jekyll site: + +```yaml +disqus: + shortname: my_disqus_shortname +``` + +You can find out more about Disqus' shortnames [here](https://help.disqus.com/customer/portal/articles/466208). + +Comments are enabled by default and will only appear in production, i.e., `JEKYLL_ENV=production`. If you don't want to display comments for a particular post you can disable them by adding `comments: false` to that post's YAML Front Matter. diff --git a/_docs/contact.md b/_docs/contact.md new file mode 100644 index 0000000..410345e --- /dev/null +++ b/_docs/contact.md @@ -0,0 +1,15 @@ +--- +title: Contact form (via FormSpree) +subtitle: This document covers the setup and options of theme feature described in the doc title +author: sara +tags: [setup] +--- + +Submit the form and confirm your email address at [FormSpree](https://formspree.io/). Then add the following include to a page, replacing the email address: + +{% raw %} +```yaml +{% include formspree.html email="my_name@gmail.com" redirect="/thanks/" name="true" subject="true" %} +``` +{% endraw %} + diff --git a/_docs/create-bitcoin-wallet.md b/_docs/create-bitcoin-wallet.md new file mode 100644 index 0000000..bcc2463 --- /dev/null +++ b/_docs/create-bitcoin-wallet.md @@ -0,0 +1,83 @@ +--- +title: How to create a Bitcoin wallet +tags: + - setup +--- +Creating a Bitcoin wallet on BlueWallet is easy. + +You can either click on the "Add now" button or the "+" icon in the top right corner + +{% include phone-screenshot-image.html img="bluewallet-first-page.png" alt="BlueWallet's first page" %} + +That will take you to the "add wallet" screen. + +## Adding a new wallet + +In the "add wallet" screen, you can choose between a Bitcoin wallet and a Lightning wallet. + +{% include phone-screenshot-image.html img="add-bitcoin-wallet.png" alt="Add bitcoin wallet page" %} + +For Bitcoin, click on the Bitcoin button. (If you want to create a Lightning wallet, see [this guide](/docs/create-lightning-wallet).) + +You may also name your wallet, or leave the default name. + +
+ +### Advanced options + +If you have "Advanced mode" enabled in general settings, +you'll see more options for creating the wallet. + +{% include phone-screenshot-image.html img="add-bitcoin-wallet-with-advanced-options.png" alt="Add Bitcoin wallet with advanced options" %} + +#### Wallet type + +The first group of options is for the wallet type: + +##### HD SegWit (BIP84 Bech32 Native) + +??? + +##### SegWit (P2SH) + +??? + +###### HD SegWit (BIP49 PS2H) + +??? + +#### Manual entropy + +BlueWallet supports manual entropy. See [here](./manual-entropy.md) for more details. + +When you're ready, you can click on "Create" to make your new wallet. + +### Importing a wallet + +Instead of creating a new wallet, you can chose to import a wallet from another source or a wallet that you've previously created on BlueWallet. + +Click on "Import wallet" to open the import screen. + +{% include phone-screenshot-image.html img="import-wallet.png" alt="Import wallet" %} + +In this text area you can post your: mnemonic, private key or WIF. + +#### Mnemonic + +??? + +#### Private key + +??? + +#### WIF + +??? + +#### ??? What else can the user import + +After you've entered your import source in the text area, click "Import" to create an imported wallet. + +#### Scanning or importing a file + +What is this feature for??? What can you scan? What type of file can you import? \ No newline at end of file diff --git a/_docs/create-lightning-wallet.md b/_docs/create-lightning-wallet.md new file mode 100644 index 0000000..0bf3df0 --- /dev/null +++ b/_docs/create-lightning-wallet.md @@ -0,0 +1,49 @@ +--- +title: How to create a Lightning wallet +tags: [setup] +--- + +Creating a Lightning wallet on BlueWallet is easy. + +You can either click on the "Add now" button or the "+" icon in the top right corner + +{% include phone-screenshot-image.html img="bluewallet-first-page.png" alt="BlueWallet's first page" %} + +That will take you to the "add wallet" screen. + +## Adding a new wallet + +In the "add wallet" screen, you can choose between a Bitcoin wallet and a Lightning wallet. + +{% include phone-screenshot-image.html img="add-lightning-wallet.png" alt="Add Lightning wallet" %} + +For Lightning, click on the Lightning button. (If you want to create a Bitcoin wallet, see [this guide](/docs/create-bitcoin-wallet).) + +You may also name your wallet, or leave the default name. + +
+ +### Advanced options + +If you have "Advanced mode" enabled in general settings, +you'll see one more option for creating the wallet. + +{% include phone-screenshot-image.html img="add-lightning-wallet-with-advanced-options.png" alt="Add Lightning wallet with advanced options" %} + +#### Connecting to your own LNDHub + +Lightning functionality in BlueWallet is powered by [LNDHub](http://lndhub.io/), an open source service that we created for this purpose. We host our own instance of this service and BlueWallet connects to it by default. However, for more privacy you can host your own instance and connect to it. + +To do that, you can add the address of your node in the specified text field. + +#### Provide entropy + +Is the "Provide entropy" feature applicable to Lightning wallets??? + +
+ +When you're ready, you can click on "Create" to make your new wallet. + +### Importing a wallet + +??? is it possible to import a Lightning wallet? diff --git a/_docs/cta.md b/_docs/cta.md new file mode 100644 index 0000000..163be9d --- /dev/null +++ b/_docs/cta.md @@ -0,0 +1,13 @@ +--- +title: Call to action section +subtitle: Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. +tags: [features] +author: alex +--- + +To add the following to a page: +{% raw %} +```yaml +{% include cta.html title="Didn't find an answer?" button_text="Contact Us" button_url="/contact/" subtitle="Get in touch with us for details on setup and additional custom services pricing" %} +``` +{% endraw %} \ No newline at end of file diff --git a/_docs/customize.md b/_docs/customize.md new file mode 100644 index 0000000..8500b9d --- /dev/null +++ b/_docs/customize.md @@ -0,0 +1,19 @@ +--- +title: Customization +subtitle: Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. +tags: [customize] +author: evan +--- + +To modify the primary color, open `/_sass/theme/variables.scss` and replace the color values e.g.: + +```scss +$global-primary-background: #05c896; +``` + +Further style customisation can be done in the following files: +``` +/_sass/theme/mixins.scss +/_sass/theme/variables.scss +/assets/css/main.scss +``` \ No newline at end of file diff --git a/_docs/development.md b/_docs/development.md new file mode 100644 index 0000000..f7bc5c0 --- /dev/null +++ b/_docs/development.md @@ -0,0 +1,32 @@ +--- +title: Development +subtitle: Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. +tags: [customize] +author: evan +--- + +### Build process +Install [UIkit](https://getuikit.com/) font end framework dependency via Npm: +```bash +npm install +``` +Enable live browser reload with the following: +```bash +bundle exec jekyll s --livereload +``` + +Use the following commands to compile js scripts: +```bash +npm run dev +``` +Compile and minify: +```bash +npm run build +``` + +### Hooks +There are four hook inlude files that simplify adding content or scripts in the theme locations: +- `_includes/hook-head.html` +- `_includes/hook-pre-closing-body.html` +- `_includes/hook-pre-closing-body-doc.html` +- `_includes/hook-post-content-doc.html` \ No newline at end of file diff --git a/_docs/docs.md b/_docs/docs.md new file mode 100644 index 0000000..39b82f0 --- /dev/null +++ b/_docs/docs.md @@ -0,0 +1,28 @@ +--- +title: Creating docs posts +subtitle: Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. +tags: [setup] +author: evan +--- + +Create new doc post entries in `_docs` folder, similar to creating posts, but with following front matter settings: + +```yml +--- +title: Category hosting Setting up new domain and page +subtitle: This is optional doc subtitle +tags: [featured, development] +author: peter +--- +``` + +Sidebar navigation on docs post can edited in `_data/navigation_docs.yml`: + +```yml +- title: Getting Started # Section title + docs: + - home # Doc file name from _docs folder + - quickstart + - installation + - windows +``` diff --git a/_docs/faq.md b/_docs/faq.md new file mode 100644 index 0000000..f9e388d --- /dev/null +++ b/_docs/faq.md @@ -0,0 +1,23 @@ +--- +title: Frequently asked questions section +subtitle: Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. +tags: [features, featured] +author: alex +--- + +Create FAQ post in `_faqs` folder (categories are optional): +```yml +--- +title: Do you provide customer support? +categories: [presale] +--- +``` + +To add the following to a page: +{% raw %} +```yaml +{% include faqs.html multiple="true" title="Frequently asked questions" category="presale" subtitle="Find quicke answers to frequent pre-sale questions asked by customers" %} +``` +{% endraw %} + +Specifying category is optional, if not defined all FAQ posts will be displayed. To display multiple FAQs at the same time without one collapsing when the other one is opened, add the `multiple="true"` attribute. \ No newline at end of file diff --git a/_docs/featured.md b/_docs/featured.md new file mode 100644 index 0000000..31c7e69 --- /dev/null +++ b/_docs/featured.md @@ -0,0 +1,18 @@ +--- +title: Fearured docs section +subtitle: Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. +tags: [features] +author: evan +--- + +Then add the following to a page to display featured docs: +{% raw %} +```yaml +{% include featured.html tag="featured" title="Popular Articles" subtitle="Selected featured articles to get you started fast in Jekyll" %} +``` +{% endraw %} + +All docs with a `featured` tag will be displayed: +```yml +tags: [featured] +``` \ No newline at end of file diff --git a/_docs/footer.md b/_docs/footer.md new file mode 100644 index 0000000..a71ce99 --- /dev/null +++ b/_docs/footer.md @@ -0,0 +1,18 @@ +--- +title: Footer options +subtitle: This document covers the setup and options of theme feature described in the doc title +author: john +tags: [setup] +--- + +Edit copyright notice in `_config.yml`: +```yaml +footer: + copyright: +``` + +Set in the navigation links in `_data/navigation_footer.yml`: +```yaml +- title: About + url: /about/ +``` diff --git a/_docs/hero.md b/_docs/hero.md new file mode 100644 index 0000000..55868f9 --- /dev/null +++ b/_docs/hero.md @@ -0,0 +1,20 @@ +--- +title: Hero page header +subtitle: Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. +tags: [features] +author: john +--- + +To add a hero header to a page add the following to a YAML Front Matter: + +```yaml +--- +layout: page +width: expand +hero: + title: How can we help you? + subtitle: Search or browse in depth articles and videos + image: knowledge.svg + search: true +--- +``` \ No newline at end of file diff --git a/_docs/installation.md b/_docs/installation.md new file mode 100644 index 0000000..d469557 --- /dev/null +++ b/_docs/installation.md @@ -0,0 +1,19 @@ +--- +title: Theme installation +subtitle: This document covers the setup and options of theme feature described in the doc title +author: sara +tags: [setup] +--- + +Install the dependencies with [Bundler](http://bundler.io/): + +```bash +bundle install +``` + +Run the following to generate your site: +```bash +bundle exec jekyll serve +``` + +You can find more on [Deployment Methods](https://jekyllrb.com/docs/deployment-methods/) page on Jekyll website. \ No newline at end of file diff --git a/_docs/intro.md b/_docs/intro.md new file mode 100644 index 0000000..d4fad78 --- /dev/null +++ b/_docs/intro.md @@ -0,0 +1,8 @@ +--- +title: Help and documentation +tags: [setup] +--- + +

Contact support for any doubts bluewallet@bluewallet.io

+ +{% include faqs.html multiple="true" title="Frequently asked questions" category="problems" subtitle="Find quick answers to frequent questions asked by customers" %} diff --git a/_docs/lndhub-macos.md b/_docs/lndhub-macos.md new file mode 100644 index 0000000..e47ca78 --- /dev/null +++ b/_docs/lndhub-macos.md @@ -0,0 +1,156 @@ +--- +title: LNDHub on Mac OSX +subtitle: Coldcard with Bluewallet - Lightning SD card +tags: + - lndhub +--- +**Requirements:** + +* [NodeLauncher](https://github.com/lightning-power-users/node-launcher) +* Mac Terminal +* Homebrew installed — [https://brew.sh](https://brew.sh/) +* [LndHub](https://github.com/BlueWallet/LndHub) +* [BlueWallet](http://bluewallet.io/) + +Let’s create a self-sovereign mobile lightning wallet using nothing but a Mac, a mobile phone and some software supplied by the fantastic open source community! + +![](/assets/img/uploads/1.png) + +Step 1 — LND + +1A — Download and set up Pierre Rochard’s NodeLauncher. + +**[lightning-power-users/node-launcher](https://github.com/lightning-power-users/node-launcher/releases)** + +Setup guide here: + +**[Easiest Bitcoin Lightning Guide](https://medium.com/lightning-power-users/windows-macos-lightning-network-284bd5034340)** + +![](/assets/img/uploads/2.png) + +Launch Bitcoin and LND + +1B— “**Launch Bitcoin**” to begin syncing with Bitcoin (12–72 hours). + +1C — “**Launch LND**” to start syncing LND (2–6 hours) + +1D — “**Create**” LND Wallet + +Step 2— LndHub + +LndHub is the open-source wrapper for LND provided by BlueWallet. + +[**BlueWallet/LndHub***Wrapper* ](https://github.com/BlueWallet/LndHub) + +2A — Set up the LNDHub + +git clone [git@github.com](mailto:git@github.com):BlueWallet/LndHub.git\ +cd LndHub + +2B— Copy in the LND Macaroon `admin.macaroon`to the LndHub directory. Quick find from NodeLauncher, “**Show Macroons**”: + +![](/assets/img/uploads/3.png) + +Click “Show Macaroons” + +2C — Copy in the `tls.cert` file. Quick find by Nodelauncher “**Advanced**” menu, then “S**how lnd.conf**” + +![](/assets/img/uploads/4.png) + +Click “Show lnd.conf” + +![](/assets/img/uploads/5.png) + +Copy this file into LndHub folder + +2D — Edit the LndHub `config.js` file to add bitcoin RPC credentials + +sudo nano config.js + +* Change bitcoind.rpc login:password to match the rpcuser & rpcpassword in your bitcoin.conf (use Nodelauncher Advanced menu to locate this file, and then a text editor to open) +* Change all the IP addresses from 1.1.1.1 to 127.0.0.1 +* Change to what is specified on your NodeLauncher pane (usually 10010 ) +* Change the redis port from 12914 to 6379 + +let config = {bitcoind: {rpc: 'http://:@127.0.0.1:8332',},redis: {port: 6379,host: '127.0.0.1',family: 4,password: 'password',db: 0,},lnd: {url: '127.0.0.1:',password: '',},};if (process.env.CONFIG) {console.log('using config from env');config = JSON.parse(process.env.CONFIG);}module.exports = config;Step 3— Redis + +Redis is the datastore for LndHub. + +3A —Install Redis, then create the working directory inside the LndHub folder + +brew install redis\ +sudo mkdir redis + +3B — Edit the `redis.conf` file + +sudo nano /usr/local/etc/redis.conf + +Change the supervision `supervised systemd` : + +![](/assets/img/uploads/6.png) + +Change the working directory to `dir /Users//LndHub/redis` : + +![](/assets/img/uploads/7.png) + +Get stuck? Additional tutorial [here](https://medium.com/@petehouston/install-and-config-redis-on-mac-os-x-via-homebrew-eb8df9a4f298): + +Step 4— Deploy with NPM and Babel + +Finalise LndHub configuration and deploy. Ensure you are back in your main LndHub directory (/User//LndHub) + +4A — Install Node, and then check versions + +brew install nodenode -v\ +npm -v + +4B — Install node modules + +npm config set prefix '~/.npm-global'\ +export PATH=~/.npm-global/bin:$PATH\ +npm install + +4C — Compile babeljs + +npm install -g babel-cli\ +mkdir buildbabel ./ --out-dir ./build --copy-files --ignore node_modules + +4D — Run LndHub + +node build/index.js + +Check for `'BOOTING UP' 'Listening on port 3000'` + +Head to to now see LndHub running. + +Step 5— Port Forward + +Since LndHub is running locally, we need to forward external ports. + +5A — Head to `192.168.0.1` in your browser, and enter your router username and password. Google it if you don’t know, but normally `admin:password` + +5B — Find your computer’s MAC and IP address (displayed in “devices” or “overview”). Also can use `ifconfig` [to get MAC](https://ithelp.brown.edu/kb/articles/find-the-mac-address-of-a-computer-or-device) and `ipconfig getifaddr en0`[to get local IP](https://apple.stackexchange.com/questions/20547/how-do-i-find-my-ip-address-from-the-command-line) in terminal. + +5C — Navigate to “Games and Services” to find “Port Forwarding” and add your LndHub as a forwarded port on 3000. My local IP was `192.168.0.13` + +![](/assets/img/uploads/8.png) + +5C — Navigate to “LAN” and then locate the “DHCP Reservation Lease” pane. Bind your Local IP to your MAC Address: + +![](/assets/img/uploads/9.png) + +All this is doing is forwarding external requests on port 3000 direct to your local IP and directly to your Mac’s Address. + +Now find your external IP address (google “what’s my IP” if you don’t know), and add port 3000 in your browser: + +[http://:3000/](http://144.132.69.213:3000/) + +![](/assets/img/uploads/10.png) + +LndHub Running! + +Step 6— Connect to BlueWallet + +Now head to BlueWallet and add the above url to in Lightning Settings. You are self-sovereign! + +![](/assets/img/uploads/11.png) \ No newline at end of file diff --git a/_docs/lndhub-raspibolt.md b/_docs/lndhub-raspibolt.md new file mode 100644 index 0000000..80ffc57 --- /dev/null +++ b/_docs/lndhub-raspibolt.md @@ -0,0 +1,344 @@ +--- +title: LNDhub with raspibolt +subtitle: Coldcard with Bluewallet - Lightning SD card +tags: + - lndhub +--- + + +### Install Redis + +Login as "admin" + +Download Redis + +``` +$ cd /home/admin/download +$ rm -rf /home/admin/download/* +$ wget http://download.redis.io/releases/redis-5.0.3.tar.gz +$ tar xzf redis-5.0.3.tar.gz +$ cd redis-5.0.3/ +``` + +Make & install + +``` +$ make +$ sudo make install +``` + +Create the working directory for Redis. We will create it on the external hard disk + +``` +$ sudo mkdir /mnt/hdd/redis + +``` + +Create the redis user + +``` +$ sudo adduser --system --group --no-create-home redis +$ sudo chown redis:redis /mnt/hdd/redis +$ sudo chmod 770 /mnt/hdd/redis +``` + +Make a directory for the `redis.conf` file & copy the default conf file to it. + +``` +$ sudo mkdir /etc/redis +$ sudo cp redis.conf /etc/redis +``` + +Edit the `redis.conf` to change the supervised & dir options. + +``` +$ nano /etc/redis/redis.conf +# If you run Redis from upstart or systemd, Redis can interact with your +# supervision tree. Options: +# supervised no - no supervision interaction +# supervised upstart - signal upstart by putting Redis into SIGSTOP mode +# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET +# supervised auto - detect upstart or systemd method based on +# UPSTART_JOB or NOTIFY_SOCKET environment variables +# Note: these supervision methods only signal "process is ready." +# They do not enable continuous liveness pings back to your supervisor. +supervised systemd +``` + +Find `supervised no` and change it to `supervised systemd` + +``` +# If you run Redis from upstart or systemd, Redis can interact with your +# supervision tree. Options: +# supervised no - no supervision interaction +# supervised upstart - signal upstart by putting Redis into SIGSTOP mode +# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET +# supervised auto - detect upstart or systemd method based on +# UPSTART_JOB or NOTIFY_SOCKET environment variables +# Note: these supervision methods only signal "process is ready." +# They do not enable continuous liveness pings back to your supervisor. +supervised systemd +``` + +Find `dir` and set it to `/mnt/hdd/redis` + +``` +# The working directory. +# +# The DB will be written inside this directory, with the filename specified +# above using the 'dbfilename' configuration directive. +# +# The Append Only File will also be created inside this directory. +# +# Note that you must specify a directory here, not a file name. +dir /mnt/hdd/redis +``` + +### Autostart Redis + +Setup Redis to start automatically on system startup. Edit the system service config for redis + +``` +$ sudo nano /etc/systemd/system/redis.service + +``` + +``` +[Unit] +Description=Redis In-Memory Data Store +After=network.target + +[Service] +User=redis +Group=redis +ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf +ExecStop=/usr/local/bin/redis-cli shutdown +Restart=always + +[Install] +WantedBy=multi-user.target + +``` + +Start up redis via the systemctl and test the status + +``` +$ sudo systemctl start redis +$ sudo systemctl status redis +``` + +Test redis is running + +``` +$ redis-cli +127.0.0.1:6379> ping +PONG +127.0.0.1:6379> exit +``` + +Enable the service + +``` +$ sudo systemctl enable redis +``` + +Clean up + +``` +$ rm -rf /home/admin/download/* + +``` + +### Install Node + +Download Node + +``` +$ cd /home/admin/download +$ wget https://nodejs.org/dist/v10.15.1/node-v10.15.1-linux-armv7l.tar.xz +``` + +Extract to `usr/local/lib` + +``` +$ sudo mkdir /usr/local/lib/nodejs/node-v10.15.1 +$ sudo tar -xf node-v10.15.1-linux-armv7l.tar.xz -C /usr/local/lib/nodejs/node-v10.15.1 +``` + +Link node version into `/usr/local/bin` + +``` +$ sudo ln -s /usr/local/lib/nodejs/node-v10.15.1/bin/node /usr/local/bin/node +$ sudo ln -s /usr/local/lib/nodejs/node-v10.15.1/bin/npm /usr/local/bin/npm +``` + +Test node & npm is linked correctly + +``` +$ node -v +$ npm -v +``` + +Clean up + +``` +$ rm -rf /home/admin/download/* +``` + +### Port Forwarding and Uncomplicated Firewall + +We need to open up port 3000 on the router and allow access through `ufw`. Follow the steps as you have done previously opening the port forwarding on your router. Add a new port forwarding configuration with the following settings: + +Application nameExternal portInternal portInternal IP addressProtocol (TCP or UDP)LndHub 3000 3000 YOUR:NODE:IP:ADDR TCP  + +Allowing access in ufw + +``` +$ sudo su +$ ufw allow 3000 comment 'allow LndHub' +$ ufw reload +$ exit +``` + +### Unlock LND + +Make sure your lnd node is unlocked before running LndHub + +``` +$ lncli unlock +``` + +### Install LndHub + +Switch user to bitcoin + +``` +$ su - bitcoin + +``` + +Clone the LndHub repository + +``` +$ git clone https://github.com/BlueWallet/LndHub +``` + +Copy the `tls.cert` and `admin.macaroon` files into LndHub + +``` +$ cp .lnd/data/chain/bitcoin/mainnet/admin.macaroon LndHub/ +$ cp .lnd/tls.cert LndHub/ +``` + +Edit the LndHub `config.js` file to add bitcoin RPC credentials + +``` +$ cd LndHub/ +$ nano config.js +``` + +Edit the `config.js` file + +* Change bitcoind.rpc login:password to match the rpcuser & rpcpassword in your bitcoin.conf. Your rpcpassword may need to be URL encoded if it contains special characters. You can use an online service like to encode it (it does not send your rpcpassword anywhere). +* Change all the IP addresses from 1.1.1.1 to 127.0.0.1 +* Change the redis port from 12914 to 6379 + +``` +let config = { + bitcoind: { + rpc: 'http://rpcuser:rpcpassword@127.0.0.1:8332', + }, + redis: { + port: 6379, + host: '127.0.0.1', + family: 4, + db: 0, + }, + lnd: { + url: '127.0.0.1:10009', + }, +}; +``` + +Install required node modules + +``` +$ npm config set prefix '~/.npm-global' +$ export PATH=~/.npm-global/bin:$PATH +$ npm install +``` + +Compile babeljs + +``` +$ npm install -g babel-cli +$ mkdir build +$ babel ./ --out-dir ./build --copy-files --ignore node_modules +``` + +Run LndHub + +``` +$ node build/index.js +``` + +Check for `'BOOTING UP' 'Listening on port 3000'` + +### Autostart LndHub + +Setup LndHub to start automatically on system startup. Switch back to the "admin" user or login as "admin" + +``` +$ exit +``` + +Edit the system service config for LndHub + +``` +$ sudo nano /etc/systemd/system/lndhub.service +``` + +``` +[Unit] +Description=LndHub Wrapper for Lightning Daemon +Wants=lnd.service +After=lnd.service + +[Service] +WorkingDirectory=/home/bitcoin/LndHub +ExecStart=/usr/local/bin/node build/index.js + +User=bitcoin +Group=bitcoin +Type=simple +KillMode=process +LimitNOFILE=128000 +TimeoutSec=240 +Restart=always +RestartSec=60 + +[Install] +WantedBy=multi-user.target +``` + +Start up LndHub via the systemctl + +``` +$ sudo systemctl enable lndhub +$ sudo systemctl start lndhub +``` + +Check the lndhub log file for `'BOOTING UP' 'Listening on port 3000'` + +``` +$ sudo journalctl -f -u lndhub +``` + +LndHub should now be ready to use in the BlueWallet, but first + +* In your brower enter the RaspiBolt IP and port 3000 to see if you can get the default LndHub page, eg: [http://192.168.0.10:3000](http://192.168.0.10:3000/) +* In that page you should see the configured LND uri, eg [03fbceea6554714aa4c94648a64d60860d87ac758ca99bdff20e7dce1b0764696d@77.47.67.53](mailto:03fbceea6554714aa4c94648a64d60860d87ac758ca99bdff20e7dce1b0764696d@77.47.67.53):9735 +* That should be your LND node address +* In the BlueWallet app, configure your Lightning Settings to http://LND_IP_ADDRESS:3000 +* Add a new Lightning Wallet +* Monitor the journalctl to see if the app is making requests \ No newline at end of file diff --git a/_docs/lndhub-ubuntu.md b/_docs/lndhub-ubuntu.md new file mode 100644 index 0000000..c528963 --- /dev/null +++ b/_docs/lndhub-ubuntu.md @@ -0,0 +1,270 @@ +--- +title: LNDhub on VPS with Ubuntu +subtitle: Coldcard with Bluewallet - Lightning SD card +tags: + - lndhub +--- +To avoid rewriting things already well explained in other tutorials, I leave here [a link to set up](https://gist.github.com/bretton/0b22a0503a9eba09df86a23f3d625c13) your Bitcoin&Lightning node on Ubuntu 16.04, if you already have one you can jump to Step 1.\ +You can follow this or other guides as long as LND is the implementation of choice for Lightning, we will apply the necessary changes to configurations files in the next steps. If you are starting from scratch, I suggest to execute this on a VPS, for example a Digital Ocean's droplet. + +### Step 1: Install Redis + +LndHub uses Redis as database, install it with + +``` +$ sudo apt update +$ sudo apt install redis-server +``` + +and edit two important settings in + +``` +$ sudo nano /etc/redis/redis.conf + +``` + +changing the line about `supervised` from `supervised no` to `supervised systemd` + +``` +# If you run Redis from upstart or systemd, Redis can interact with your +# supervision tree. Options: +# supervised no - no supervision interaction +# supervised upstart - signal upstart by putting Redis into SIGSTOP mode +# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET +# supervised auto - detect upstart or systemd method based on +# UPSTART_JOB or NOTIFY_SOCKET environment variables +# Note: these supervision methods only signal "process is ready." +# They do not enable continuous liveness pings back to your supervisor. +supervised systemd +``` + +and the line `appendonly no` to `appendonly yes` to enable disk persistance. + +``` +# AOF and RDB persistence can be enabled at the same time without problems. +# If the AOF is enabled on startup Redis will load the AOF, that is the file +# with the better durability guarantees. +# +# Please check http://redis.io/topics/persistence for more information. + +appendonly yes + +# The name of the append only file (default: "appendonly.aof") + +appendfilename "appendonly.aof" + +# The fsync() call tells the Operating System to actually write data on disk +``` + +### Step 2: Redis autostart + +Setup Redis to start automatically after a system restart. Open the file + +``` +$ sudo nano /etc/systemd/system/redis.service + +``` + +and paste the following script inside. + +``` +[Unit] +Description=Redis In-Memory Data Store +After=network.target + +[Service] +User=redis +Group=redis +ExecStart=/usr/bin/redis-server /etc/redis/redis.conf +ExecStop=/usr/bin/redis-cli shutdown +Restart=always + +[Install] +WantedBy=multi-user.target +``` + +Now start and enable it with `systemctl`. + +``` +$ sudo systemctl start redis +$ sudo systemctl enable redis +``` + +### Step 3: Bitcoin&LND configuration files + +Since `bitcoin.conf` and `lnd.conf` are often topic of discussion, here I paste my files that are currently working with Bitcoin v0.17.1 and LND v0.5.1-beta, except for passwords of course. + +``` +$ sudo nano .bitcoin/bitcoin.conf + +``` + +``` +server=1 +txindex=1 +daemon=1 +externalip=104.248.248.9 +maxconnections=10 +rpcuser=user +rpcpassword=password +minrelaytxfee=0.00000000 +incrementalrelayfee=0.00000010 +zmqpubrawblock=tcp://127.0.0.1:28332 +zmqpubrawtx=tcp://127.0.0.1:28333 +rpcport=8332 + +``` + +``` +$ sudo nano .lnd/lnd.conf + +``` + +``` +[Application Options] +; set external IP if not using NAT +externalip=104.248.248.9 +; set node alias (seen in explorers) +alias=HIVENLABSLN1 +restlisten=localhost:8080 + +[Bitcoin] +bitcoin.active=1 +bitcoin.mainnet=1 +bitcoin.node=bitcoind + +[Bitcoind] +bitcoind.rpcuser=user +bitcoind.rpcpass=password +bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332 +bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333 + +``` + +Note: `external IP` field is to be changed according to your VPS IP. + +### Step 4: Download and configure LndHub + +You are now ready to get and install LndHub, start copying the github repository with + +``` +$ git clone https://github.com/BlueWallet/LndHub + +``` + +and copy `admin.macaroon` and `tls.cert` in root folder of LndHub. + +``` +$ cp .lnd/data/chain/bitcoin/mainnet/admin.macaroon LndHub/ +$ cp .lnd/tls.cert LndHub/ +``` + +Now you need to set the config file of LndHub. As for `bitcoind` and `lnd` I leave you here my version. + +``` +$ sudo nano LndHub/config.js + +``` + +``` +let config = { + bitcoind: { + rpc: 'http://user:password@127.0.0.1:8332', + }, + redis: { + port: 6379, + host: '127.0.0.1', + family: 4, + db: 0, + }, + lnd: { + url: '127.0.0.1:10009', + }, +}; + +if (process.env.CONFIG) { + console.log('using config from env'); + config = JSON.parse(process.env.CONFIG); +} + +module.exports = config; + +``` + +### Step 5: Install LndHub + +Node is required to install and run LndHub, install it with the following command. + +``` +$ sudo apt install nodejs npm + +``` + +Enter the LndHub folder and install node modules. + +``` +$ cd LndHub +$ npm install +``` + +Compile babeljs + +``` +$ npm install -g babel-cli +$ mkdir build +$ babel ./ --out-dir ./build --copy-files --ignore node_modules +``` + +and, finally, run it. + +``` +$ node build/index.js + +``` + +### Step 6: LndHub autostart + +Setup LndHub to start automatically after a system restart. Open the file + +``` +$ sudo nano /etc/systemd/system/lndhub.service + +``` + +and paste the following script inside. + +``` +[Unit] +Description=LndHub Wrapper for Lightning Daemon +Wants=lnd.service +After=lnd.service + +[Service] +WorkingDirectory=/LndHub +ExecStart=/usr/bin/node build/index.js + +Type=simple +KillMode=process +LimitNOFILE=128000 +TimeoutSec=240 +Restart=always +RestartSec=60 + +[Install] +WantedBy=multi-user.target +``` + +Now start and enable it with `systemctl`. + +``` +$ sudo systemctl enable lndhub +$ sudo systemctl start lndhub +``` + +You should now see the LndHub default page at this address: + +### Step 7: Link Bluewallet to your node + +Open the Bluewallet app on your smartphone, go to settings (top-right corner) -> Lightning Settings and add your node URL .\ +There is no confirmation message when you click Save at the moment, v3.7.2 on iOS, so don't worry if you don't see any feedback. The first test you can do is create a new Lightning wallet and generate an invoice, and if no error is returned, it's all correctly configured.\ +Your bank is born, let's take a moment to think about what you achieved here: you can now pay in BTC from your smartphone instantly with Lightning, everywhere in the world, and you can let somebody who trusts you join your node and create their account linked with your hub just downloading an app. \ No newline at end of file diff --git a/_docs/local-trader.md b/_docs/local-trader.md new file mode 100644 index 0000000..62192bd --- /dev/null +++ b/_docs/local-trader.md @@ -0,0 +1,12 @@ +--- +title: Use the Local Trader +tags: [usage] +--- + +
+
+
+ +
+
+
\ No newline at end of file diff --git a/_docs/manual-entropy.md b/_docs/manual-entropy.md new file mode 100644 index 0000000..b4034e9 --- /dev/null +++ b/_docs/manual-entropy.md @@ -0,0 +1,42 @@ +--- +title: Adding manual entropy +tags: [setup] +--- + +BlueWallet supports manual entropy. + +To use this feature, go to: + +`Settings` ➤ `General` then toggle on `Advanced mode`. + +Now when you go back to the "add wallet" screen, you will see the option to add manual entropy. + +{% include phone-screenshot-image.html img="add-manual-entropy.png" alt="Add manual entropy" %} + +This option is available for both Bitcoin and Lightning wallets. + +You can choose to provide a custom source of entropy for your wallet, either by a coin flip, 6-sided dice roll, or 20-sided dice roll. + +## Supported sources of entropy + +### 6-sided dice roll + +{% include phone-screenshot-image.html img="6-sided-dice-roll-manual-entropy.png" alt="6-sided dice roll manual entropy" %} + +### 20-sided dice roll + +{% include phone-screenshot-image.html img="20-sided-dice-roll-manual-entropy.png" alt="20-sided dice roll manual entropy" %} + +### Coin flip + +{% include phone-screenshot-image.html img="coin-flip-manual-entropy.png" alt="Coin flip manual entropy" %} + +When you're done entering your entropy, click "Save" to go back to the "add wallet" screen. + +You should see a note at the bottom of the screen informing you that your saved entropy is being used: + +{% include phone-screenshot-image.html img="manual-entropy-used.png" alt="Manual entropy is used" %} + +If you didn't provide all the 256 bits of entropy, BlueWallet will use the system's random number generator to obtain the remaining bytes. In that case you'll see a message like this: + +{% include phone-screenshot-image.html img="incomplete-manual-entropy.png" alt="Incomplete manual entropy" %} diff --git a/_docs/media.md b/_docs/media.md new file mode 100644 index 0000000..bc7bb1d --- /dev/null +++ b/_docs/media.md @@ -0,0 +1,47 @@ +--- +title: Adding media to post and doc content +subtitle: Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. +tags: [features, featured] +author: alex +--- + +### Adding images +To add an image to a post or page use the following codes: +Local image from `/uploads/` directory: +{% raw %} +```yaml +{% include image.html img="girl.jpg" alt="Alt for image" caption="Girl on a rock" %} +``` +{% endraw %} + +External wide image with lightbox: +{% raw %} +```yaml +{% include image.html img="https://source.unsplash.com/TT-ROxWj9nA.jpg" lightbox="true" alt="Alt for image" caption="Image in lightbox" %} +``` +{% endraw %} + +Uploads folder location can be changed in `_config.yml`. + +### Slideshow + +{% raw %} +```yaml +{% include slideshow.html gallery="slideshow-1" %} +``` +{% endraw %} + +The `gallery` attribute refers to a folder inside your `uploads` folder, all images in `slideshow-1` folder will be displyed in slideshow. Uploads folder location can be changed in `_config.yml`. + +### Responsive Videos +Embed local videos: +```html + +``` +Embed YouTube videos: +```html + +``` diff --git a/_docs/multisig-spend.md b/_docs/multisig-spend.md new file mode 100644 index 0000000..a944900 --- /dev/null +++ b/_docs/multisig-spend.md @@ -0,0 +1,13 @@ +--- +title: Vaults - spending +subtitle: Air gapped offline transactions from a Multisig Vault +tags: [usage] +--- + +BlueWallet's Bitcoin Multisig wallet Vaults feature. Where 2 BlueWallet apps are signing transactions offline and airgapped. + +
+
+ +
+
diff --git a/_docs/navigation.md b/_docs/navigation.md new file mode 100644 index 0000000..d5250fa --- /dev/null +++ b/_docs/navigation.md @@ -0,0 +1,63 @@ +--- +title: Navigation bar +subtitle: This document covers the setup and options of theme feature described in the doc title +author: sara +tags: [setup] +--- + +Set in the main navigation links in `_data/navigation_header.yml`: + +```yaml + - title: About + url: /about/ +``` + +To add a button to navigation use: +```yaml + - title: Contact + url: /contact/ + button: success +``` + +All available buttons: +```yaml + - title: Changelog + url: /contact/ + button: default + + - title: Contact + url: /contact/ + button: primary + + - title: Changelog + url: /contact/ + button: secondary + + - title: Contact + url: /contact/ + button: danger + + - title: Changelog + url: /contact/ + button: success + + - title: Contact + url: /contact/ + button: warning + + - title: Changelog + url: /contact/ + button: primary-outline + + - title: Contact + url: /contact/ + button: danger-outline + + - title: Changelog + url: /contact/ + button: success-outline + + - title: Contact + url: /contact/ + button: warning-outline +``` diff --git a/_docs/pages.md b/_docs/pages.md new file mode 100644 index 0000000..79b5c87 --- /dev/null +++ b/_docs/pages.md @@ -0,0 +1,46 @@ +--- +layout: doc +title: Updating your billing credit card +subtitle: Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. +author: +tags: othertag +--- + +#### Sections in this article +{:.no_toc} +* TOC +{:toc} + +Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam. + +Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. + +## Image Lightbox Example +Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur. + +{% include image.html img="image1.png" style="wide" lightbox="true" alt="Alt for image" caption="Image in lightbox" %} + +Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis. + +## Example Of Code Block +In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; + +```html + + + + + + + + +``` + +## Text and Quote +Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis. + +> Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet + +In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; + +Etiam in fermentum mi. Sed et tempor felis, eu aliquet nisi. Nam eget ullamcorper arcu. Nunc porttitor nisl a dolor blandit, eget consequat sem maximus. Phasellus lacinia quam porta orci malesuada, vel tincidunt. diff --git a/_docs/posts.md b/_docs/posts.md new file mode 100644 index 0000000..2739e07 --- /dev/null +++ b/_docs/posts.md @@ -0,0 +1,31 @@ +--- +title: Creating your first post in Jekyll +subtitle: Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. +author: +tags: featured +--- + +To create a new post, you can create a new markdown file inside the `_posts` directory by following the recommended file naming format: +``` +YEAR-MONTH-DAY-title.MARKUP +``` +Where `YEAR` is a four-digit number, `MONTH` and `DAY` are both two-digit numbers, and `MARKUP` is the file extension representing the format used in the file. For example, the following are examples of valid post filenames: + +``` +2011-12-31-new-years-eve-is-awesome.md +2012-09-12-how-to-write-a-blog.md +``` + +Post requires front matter, everything in between the first and second --- are part of the YAML Front Matter, and everything after the second --- will be rendered with Markdown and show up as “Content”. +The following is a post file with different configurations you can add as example: + +```yaml +--- +layout: post +title: How To Travel On Low Budget +--- +``` + +You can rebuild the site in many different ways, but the most common way is to run `bundle exec jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated. + +To keep things more organized, add post images to `/assets/posts/` directory, and add theme images to `/assets/img/` directory. diff --git a/_docs/recover-wallet.md b/_docs/recover-wallet.md new file mode 100644 index 0000000..0f99578 --- /dev/null +++ b/_docs/recover-wallet.md @@ -0,0 +1,30 @@ +--- +title: How to recover your wallet +subtitle: Recover your wallet on external software +tags: + - usage +--- +BlueWallet provides 12 or 24 word mnemonic seeds for onchain Segwit wallets. These are standard BIP44, BIP49 and BIP84 addresses with the following derivation paths: + +### BIP44 + +{% include alert.html style="success" text="m/44'" %} + +### BIP49 + +{% include alert.html style="success" text="m/49'" %} + +### BIP84 + +{% include alert.html style="success" text="m/84'/0'/0''" %} + +You can use Electrum wallet on desktop (electrum.org) to recover this wallets at any moment. + +1. Choose Restore wallet. +2. "I already have a seed" +3. Options > bip39 +4. Enter seed + +![](/assets/img/uploads/screenshot-2019-08-21-at-16.57.54.png) + +![](/assets/img/uploads/screenshot-2019-08-21-at-16.57.46.png) \ No newline at end of file diff --git a/_docs/setup.md b/_docs/setup.md new file mode 100644 index 0000000..ac02439 --- /dev/null +++ b/_docs/setup.md @@ -0,0 +1,37 @@ +--- +title: Basic theme setup +subtitle: This document covers the setup and options of theme feature described in the doc title +author: sara +tags: [setup] +--- + +### Site and author details +Add your site and author details in `_config.yml`: + +```yaml +title: Docs +description: Documentation Jekyll theme. +lang: en + +# Site subpath, e.g. /blog +baseurl: "" + +# Permalink URLs structure, for permalink style options see: https://jekyllrb.com/docs/permalinks/ +permalink: /:title/ + +# Site base hostname & protocol, e.g. http://example.com +url: "https://docs.jekyll.plus" + +# Site logo # e.g. logo.png, upload logo image file to /uploads/ folder +logo: + +# Default author settings +author: + name: Pete Seth + title: Lead Developer + avatar: avatar-tom.png +``` + +### Update favicon + +You can find the current favicon (favicon.png) inside the theme `/uploads/` directory, just replace it with your new favicon. \ No newline at end of file diff --git a/_docs/sources.md b/_docs/sources.md new file mode 100644 index 0000000..9e2ae6a --- /dev/null +++ b/_docs/sources.md @@ -0,0 +1,11 @@ +--- +title: Sources and credits +subtitle: Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. +tags: [customize] +author: evan +--- + +- Google analytics [https://www.google.com/analytics/](https://www.google.com/analytics/) +- Google maps [https://www.google.com/maps](https://www.google.com/maps) +- UIkit front end framework [https://getuikit.com/](https://getuikit.com/) +- Jekyll CML [https://jekyllrb.com/](https://jekyllrb.com/) \ No newline at end of file diff --git a/_docs/support.md b/_docs/support.md new file mode 100644 index 0000000..63915a6 --- /dev/null +++ b/_docs/support.md @@ -0,0 +1,9 @@ +--- +title: Contacting support +subtitle: Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. +tags: [help, customize] +author: evan + +--- + +Customer support is provided through our Envato item page [contact form](https://themeforest.net/item/docs-responsive-documentation-manual-jekyll-theme/21131076/support) for up to six months from the purchase date and is provided Monday to Friday during the business week. We aim to answer all support requests daily, most are handled within 24h. diff --git a/_docs/team.md b/_docs/team.md new file mode 100644 index 0000000..61e0ab5 --- /dev/null +++ b/_docs/team.md @@ -0,0 +1,15 @@ +--- +title: Team members section +subtitle: Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. +tags: [features] +author: alex +--- + +To add the following to a page: +{% raw %} +```yaml +{% include team.html authors="evan, john, sara, alex, tom, daniel" title="We are here to help" subtitle="Our team is just an email away ready to answer your questions" %} +``` +{% endraw %} + +Specifying authors is optional, if not defined all authors will be displayed form `_config.yml` file. \ No newline at end of file diff --git a/_docs/toc.md b/_docs/toc.md new file mode 100644 index 0000000..94808a0 --- /dev/null +++ b/_docs/toc.md @@ -0,0 +1,15 @@ +--- +title: Adding table of contents to docs +subtitle: Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. +tags: [features] +author: john +--- + +Add the following code at the top of the post: +``` +#### Sections in this article +{:.no_toc} +* TOC +{:toc} +``` +`{:.no_toc}` exludes `#### Sections in this article` title from indexing in table of contents \ No newline at end of file diff --git a/_docs/translation.md b/_docs/translation.md new file mode 100644 index 0000000..4344898 --- /dev/null +++ b/_docs/translation.md @@ -0,0 +1,33 @@ +--- +title: Translation +subtitle: Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. +tags: [customize] +author: evan +--- + +Set your language code in `_config.yml`: +```yml +lang: en +``` +Theme strings can be translated in `_data/translation.yml`, copy the current English translation and paste it bellow the Eglish translation, then replace `en` with you language code that you set in `_config.yml` and translate the strings. + +```yml +en: + previous: "Previous" + next: "Next" + related_docs: "Related Docs" + related_posts: "Related Posts" + read_more: "Read more" + written_by: "Written by" + share_twitter: "Share on Twitter" + share_facebook: "Share on Facebook" + search_placeholder: "Search for answers" + search_no_results: "No results found" + mobile_nav_docs: "Docs" + mobile_nav_site: "Menu" + contact_name: "Name" + contact_email: "Email" + contact_subject: "Subject" + contact_message: "Message" + contact_send: "Send" +``` \ No newline at end of file diff --git a/_docs/videos.md b/_docs/videos.md new file mode 100644 index 0000000..83e51a3 --- /dev/null +++ b/_docs/videos.md @@ -0,0 +1,30 @@ +--- +title: Video lightbox boxes section +subtitle: Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. +tags: [features, featured] +author: evan +--- + +Add videos in `_data/videos.yml`: +```yml +- title: Jekyll Introduction + desc: Overview of the most popular static generator + url: https://youtu.be/T1itpPvFWHI + +- title: Creating a post + desc: Lean how to publish your first post in Jekyll + url: https://youtu.be/gsYqPL9EFwQ +``` +Video sources can be YouTube, Vimeo or local: +``` +video.mp4 +https://www.youtube.com/watch?v=YE7VzlLtp-4 +https://vimeo.com/1084537 +``` + +Then add the following to a page to display video lightbox boxes: +{% raw %} +```yaml +{% include videos.html columns="2" title="Video Tutorials" subtitle="Watch screencasts to get you started fast with Jekyll" %} +``` +{% endraw %} \ No newline at end of file diff --git a/_faqs/10-support.md b/_faqs/10-support.md new file mode 100644 index 0000000..9664028 --- /dev/null +++ b/_faqs/10-support.md @@ -0,0 +1,6 @@ +--- +title: Not enough balance +categories: [problems] +--- + +When this error appears it means the app already nows upfront that you don't have enough balance, usually because of the fees the service will charge on your transaction. diff --git a/_faqs/20-updates.md b/_faqs/20-updates.md new file mode 100644 index 0000000..0737afc --- /dev/null +++ b/_faqs/20-updates.md @@ -0,0 +1,6 @@ +--- +title: Not enough confirmed inputs +categories: [problems] +--- + +When this error appears it means that you still have one onchain transaction ongoing. Duo to limitations bluewallet supports only one transaction in simultaneous. diff --git a/_faqs/30-renew.md b/_faqs/30-renew.md new file mode 100644 index 0000000..d7abe6e --- /dev/null +++ b/_faqs/30-renew.md @@ -0,0 +1,13 @@ +--- +title: Balance is not updating +categories: [problems] +--- + +When this happens is usually because the wallet is not updating automatically for some reason. + +The wallet provides a way to manually refresh. Go inside the wallet you want to update and do a "pull-to-refresh", drag the view down to activate the refresh mechanism. + +
+
+ +
diff --git a/_faqs/40-documentation.md b/_faqs/40-documentation.md new file mode 100644 index 0000000..3ebcaa5 --- /dev/null +++ b/_faqs/40-documentation.md @@ -0,0 +1,13 @@ +--- +title: Refill is taking too much time +categories: [problems] +--- + +When this happens is usually because the Lightning wallet is not updating automatically for some reason. + +The wallet provides a way to manually refresh. Go inside the wallet you want to update and do a "pull-to-refresh", drag the view down to activate the refresh mechanism. + +
+
+ +
\ No newline at end of file diff --git a/_faqs/50-customization.md b/_faqs/50-customization.md new file mode 100644 index 0000000..a7cb6cc --- /dev/null +++ b/_faqs/50-customization.md @@ -0,0 +1,16 @@ +--- +title: Payment in transit +categories: [problems] +--- + +This state happens when your payment was sent to the network, but it didn't get a response back. So bluewallet doesn't know what happen, if it failed, if it succeed, etc. + +This payment usually enters in a "limbo" state that can go from 24h up to some days. + +Bluewallet will try every day to see if it can get a status of the payment. + +The payment gets unlock and available on your wallet again, when the timeout from the channels on each node it passed finished. + +Usually the timeout on each node is 24h, so imagine your payment had 3 hops and passed through 3 nodes, You will need to wait 62h to recover your funds. + +This is the worst known case at the moment on the network. \ No newline at end of file diff --git a/_includes/about.html b/_includes/about.html new file mode 100644 index 0000000..4648cf0 --- /dev/null +++ b/_includes/about.html @@ -0,0 +1,60 @@ +
+
+

About

+

The BlueWallet project born out of the ashes of the 2017 bull-run. With the frustration of not finding a wallet for our Bitcoin needs. Where we could have a Bitcoin only wallet and full control of the transactions. At the time, there wasn't a single Bitcoin wallet available for iOS that was bitcoin-only, supported Segwit and where we could have fee control. So we decided to build it.

+
+

Our commitment is to build the best Bitcoin wallet we can. With strong focus on open source fundations, self-sovereign principles, decentralization and the Cypherpunk's Manifesto. We will iterate slowly, we will not build it in one day, but we will get there.

+
+
+
+
+

Who are we

+

We are a collective of developers and designers focused on bringing tools to self-sovereignity, personal property security and privacy.


+

Reach out, we will appreciate your feedback.

+ + + +
+
+
+
+

Contact us

+
    +
  • bluewallet@bluewallet.io
  • +
+
+
\ No newline at end of file diff --git a/_includes/alert.html b/_includes/alert.html new file mode 100644 index 0000000..322318f --- /dev/null +++ b/_includes/alert.html @@ -0,0 +1,3 @@ + +

{{ include.text }}

+
\ No newline at end of file diff --git a/_includes/alpha-map.html b/_includes/alpha-map.html new file mode 100644 index 0000000..33db26b --- /dev/null +++ b/_includes/alpha-map.html @@ -0,0 +1,38 @@ +
+ + diff --git a/_includes/alpha-team-slider.html b/_includes/alpha-team-slider.html new file mode 100644 index 0000000..98e5937 --- /dev/null +++ b/_includes/alpha-team-slider.html @@ -0,0 +1,50 @@ +
+
+ + {% if include.title %} +

{{ include.title }}

+ {% endif %} + + {% if include.subtitle %}

{{ include.subtitle | escape }}

{% endif %} + +
+
+
    + {% for item in site.authors %} + {% if include.authors %} + {% if include.authors contains item.username %} + {% else %} + {% continue %} + {% endif %} + {% endif %} + +
  • +
    +
    + {% if item.avatar %} + {% if item.avatar contains 'http' %} + {% assign domain = '' %} + {% else %} + {% assign domain = site.uploads | absolute_url %} + {% endif %} + +
    + {{ item.name }} +
    + {% endif %} +
    +

    {{ item.name }}

    +

    {{ item.title }}

    +
    +
    +
    +
  • + {% endfor %} +
+ + +
+
+ +
+
\ No newline at end of file diff --git a/_includes/analytics.html b/_includes/analytics.html new file mode 100644 index 0000000..dad3ccc --- /dev/null +++ b/_includes/analytics.html @@ -0,0 +1,9 @@ + diff --git a/_includes/bitcoin-wallet.html b/_includes/bitcoin-wallet.html new file mode 100644 index 0000000..2e52a45 --- /dev/null +++ b/_includes/bitcoin-wallet.html @@ -0,0 +1,133 @@ +
+
+

Bitcoin Wallet

+

BlueWallet supports various Bitcoin wallet implementations, BIPs and different integrations with external services. You can easily import any wallet with our wallet recovery and import feature.

+
+ download bitcoin wallet for desktop +
+
+
+ +
+
+

Wallets supported

+ + +
+
+
+
    +
  • + +
    +

    Native Segwit

    +

    Native Segwit addresses wallet are the latest in terms of technology that allow you to save up to 40% in fees.

    +
    +
  • +
  • + +
    +

    Watch-only

    +

    The Watch-only wallet, as the name suggests is a wallet that allows you to keep an eye on your balance and receive transactions without touching your private key.

    +
    +
  • +
  • + +
    +

    Multisig Vaults

    +

    The Multisig Vault is a bitcoin wallet with multiple keys. It is advised for large amounts because it has the best security. It requires multiple keys to spend funds.

    +
    +
  • +
  • + +
    +

    Lightning

    +

    The Bitcoin Lightning wallet can be used on hosted fashion or self-hosted if you run your own node. This wallet provides the ability to receive lightning out of the box and send payments as well.

    +
    +
  • +
  • + +
    +

    Wrapped Segwit

    +

    The wrapped segwit Bitcoin wallet is available in the advanced mode. It provides the best compatibility with exchanges and old services.

    +
    +
  • +
  • + +
    +

    Single Address

    +

    The Single address Bitcoin wallet, it's a Segwit compatible wallet that always will have the same receiving address. This is available in advanced mode.

    +
    +
  • +
  • + +
    +

    Legacy

    +

    Legacy wallet types start by 1... they are still widely use and you can import them through the import feature.

    +
    +
  • +
  • + +
    +

    Electrum

    +

    Electrum is a old Bitcoin wallet that has their own type that is not compatible with other apps. BlueWallet makes sure it can support it.

    +
    +
  • +
  • + +
    +

    BRD/Bread

    +

    Bread wallet has a custom wallet format, usually not supported by other wallets. We made sure we have that available in case you want to import your bread wallet.

    +
    +
  • +
+
+ +
+ + +
+ +
+ + +
+
+
+
+
+ + +
+
+
+
+
+ +
+
+
+
+

Create wallets

+

The create wallet options allows you to add wallet by simply choosing the type you want. The Bitcoin wallet (a multi address HD and segwit) is the default recommended one.

+
+
+
+
+
+
+

Import wallets

+

Bluewallet provides a “magic form” where you can try to import and recover whatever you got. It will do its best to understand the format and import your wallet into your BlueWallet app.

+
+
+
+
+ +
+
+
+
+
+ + + diff --git a/_includes/boxes.html b/_includes/boxes.html new file mode 100644 index 0000000..e9a4ee2 --- /dev/null +++ b/_includes/boxes.html @@ -0,0 +1,64 @@ +{% if include.columns %} + {% assign columns = include.columns %} + {% if columns == '1' %} + {% assign container = ' uk-container-xsmall' %} + {% elsif columns == '2' %} + {% assign container = ' uk-container-small' %} + {% else %} + {% assign container = '' %} + {% endif %} +{% else %} + {% assign columns = 3 %} + {% assign container = '' %} +{% endif %} + +
+
+ {{ site.data.team.login }} + + {% if include.title %} +

{{ include.title }}

+ {% endif %} + + {% if include.subtitle %}

{{ include.subtitle | escape }}

{% endif %} + +
+ {% for item in site.data.navigation_boxes %} + +
+
+ {% if item.url contains 'http' %} + {% assign domain = '' %} + {% else %} + {% assign domain = '' | relative_url %} + + + + {% endif %} + {% if item.icon %} + + download bitcoin wallet for ios + + {% endif %} + {% if item.title %} +

{{ item.title }}

+ {% endif %} + {% if item.desc %} +

{{ item.desc }}

+ {% endif %} +
+
+ + {% endfor %} +
+ +
+
\ No newline at end of file diff --git a/_includes/changelog.html b/_includes/changelog.html new file mode 100644 index 0000000..161d160 --- /dev/null +++ b/_includes/changelog.html @@ -0,0 +1,17 @@ +
+ {% for version in site.data.changelog %} +
+
+
{{ version.date }}
+
+
+

{{ version.title }}{% if version.label %}{{ version.label }}{% endif %}

+
    + {% for item in version.list %} +
  • {{ item }}
  • + {% endfor %} +
+
+
+ {% endfor %} +
diff --git a/_includes/contact-form.html b/_includes/contact-form.html new file mode 100644 index 0000000..c2608d1 --- /dev/null +++ b/_includes/contact-form.html @@ -0,0 +1,11 @@ +
+ + + + + + + + + +
diff --git a/_includes/cta.html b/_includes/cta.html new file mode 100644 index 0000000..52277b3 --- /dev/null +++ b/_includes/cta.html @@ -0,0 +1,17 @@ +{% if include.button_url contains 'http' %} + {% assign domain = '' %} +{% else %} + {% assign domain = '' | relative_url %} +{% endif %} + +{% if include.button_url %} +
+
+
+ {% if include.title %}

{{ include.title }}

{% endif %} + {% if include.subtitle %}

{{ include.subtitle | escape }}

{% endif %} + {{ include.button_text }} +
+
+
+{% endif %} diff --git a/_includes/desktop-wallet.html b/_includes/desktop-wallet.html new file mode 100644 index 0000000..7b1b7dc --- /dev/null +++ b/_includes/desktop-wallet.html @@ -0,0 +1,59 @@ +
+
+

BlueWallet for MacOS

+

Desktop Wallet

+ + download bitcoin wallet for desktop + + +

Direct download available with .dmg or Homebrew

+ +
+ download bitcoin wallet for desktop +
+
+
+ +
+
+

Features

+
+
+
+

HWW integration

+

Easily connect to your hardware wallet through watch-only and PSBTs support.

+
+
+
+
+

Plausible Deniability

+

Create multiple storages or fake ones in case of a forced disclosure.

+
+
+
+
+

Multiple Wallets

+

Support for different wallet types. Like Bip84/49/44, electrum, legacy, etc.

+
+
+
+
+

Full node

+

Full node connection through ElectrumX, Electrs or Electrum Personal Server.

+
+
+
+
+

Transactions control

+

Easily Bump, Cancel or do Batch transactions. With RBF and CPFP.

+
+
+
+
+

Notifications

+

With push notifications for pending and confirmed transactions.

+
+
+
+
+
\ No newline at end of file diff --git a/_includes/disqus_comments.html b/_includes/disqus_comments.html new file mode 100644 index 0000000..f6e9537 --- /dev/null +++ b/_includes/disqus_comments.html @@ -0,0 +1,20 @@ +{% if page.comments != false and jekyll.environment == "production" %} + +
+ + +{% endif %} diff --git a/_includes/faqs.html b/_includes/faqs.html new file mode 100644 index 0000000..21b4ff6 --- /dev/null +++ b/_includes/faqs.html @@ -0,0 +1,28 @@ +
+
+ + {% if include.title %} +

{{ include.title }}

+ {% endif %} + + {% if include.subtitle %} +

{{ include.subtitle | escape }}

+ {% endif %} + + {% if include.category %} + {% assign faqs = site.faqs | where: "categories", include.category %} + {% else %} + {% assign faqs = site.faqs %} + {% endif %} + + + +
+
\ No newline at end of file diff --git a/_includes/featured.html b/_includes/featured.html new file mode 100644 index 0000000..30347b9 --- /dev/null +++ b/_includes/featured.html @@ -0,0 +1,24 @@ +{% if include.tag %} +
+
+ + {% if include.title %} +

{{ include.title }}

+ {% endif %} + + {% if include.subtitle %} +

{{ include.subtitle | escape }}

+ {% endif %} + + + +
+
+{% endif %} + diff --git a/_includes/features.html b/_includes/features.html new file mode 100644 index 0000000..6ea9fa3 --- /dev/null +++ b/_includes/features.html @@ -0,0 +1,202 @@ +
+

Radically Simple 👩‍🎤 Extremely Powerful

+

A freedom and self-sovereign tool, disguised as a cute little Blue app on your pocket

+
+ +
+
+
+
+
+

Multiple Wallets

+

With a multiple wallet architecture to allow maximum flexibility.
BlueWallet aims to support the highest wallet standards. +Besides Bitcoin Wallets, Watch-only, Multisig Vaults and Lightning. Blue can import most wallet standards including Electrum and Bread wallets.

+
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+
+
+

Watch-only

+

Watch-only wallets allows you to keep an eye on your cold storage or paper wallet without touching your private key. Easily import your public address, xpub or ypub and watch it from your app without moving anything.

+
+ +
+ +
+
+
+
+

Multisig Vault

+

The most secure Bitcoin technology. Multisig is like a vault, where multiple keys are needed to spend Bitcoin. +Recommended for cold storage and large amounts.

+
+
+
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+
+
+
+
+ lightning wallet +
+

Lightning Wallets

+

with zero configuration. You can use our hosted Lightning wallets or connect to your own node. Allows you to seamlessly use the Lightning Network, without the need to open channels, be online or operate and mantain a node.

+
+
+
+
+
+ fee estimation +
+

Fee & Transactions control

+

Provides you a fee estimation targeting confirmations in 10m, 3h or 1 day. With real time calculation on how much to spend. Ability to Bump and Cancel sent transactions with "Replace-by-fee" (RBF) or with "Child-pays-for-parent" (CPFP).

+
+
+
+
+
+ +
+
+
+ +
+
+
+
+
+
+ +

Plausible deniability

+

A feature thinking about your personal security. BlueWallet allows you to define a different password which will decrypt a "fake" wallet set up. For any situation where you are forced to disclose your access or for when you don't wantto show your real wallet.

+
+ lightning wallet +
+
+
+
+
+
+
+ +
+
+
+ + +
+
+
+
+
+
+ lightning wallet +
+

Notifications

+

We have developed Ground Control. A push notification service for bitcoin wallets that allows you to have mobile and desktop push notifications or to run your own push notification server.

+
+
+
+
+
+ fee estimation +
+

Recover wallets

+

A “magical form” where you can try to import whatever you got. It will do its best to understand the format and import your wallet into your BlueWallet app.

+
+
+
+
+
+ fee estimation +
+

Batch Transactions

+

Send multiple transactions in one batch. This is useful if you more than one transaction and you want to spend less fees. All your transactions will be batched in a single transaction fee, making it less expensive.

+
+
+
+
+
+ +
+
+
+ + +
+
+
+

Plus so much more

+
+
+ {% for item in site.data.all_features %} + +
+
+ {% if item.title %} +

{{ item.title }}

+ {% endif %} + {% if item.desc %} +

{{ item.desc }}

+ {% endif %} +
+
+ {% endfor %} +
+
+
+ +
+
+
+ +
+
+
+
+
+
+ +

Multi-language

+

BlueWallet supports more than 30 languages, including Chinese, Japanese, Portuguese, Spanish, Indonesian, Russian, Ukranian, Italian, German, Swedish, Norwegian, French, Danish, Turkish, and more.

+ Join the translation community +
+
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/_includes/footer.html b/_includes/footer.html new file mode 100644 index 0000000..6324add --- /dev/null +++ b/_includes/footer.html @@ -0,0 +1,64 @@ +{% include newsletter.html title="Get the updates directly on your email" %} + +{% include promo.html %} + + diff --git a/_includes/formspree.html b/_includes/formspree.html new file mode 100644 index 0000000..1668989 --- /dev/null +++ b/_includes/formspree.html @@ -0,0 +1,39 @@ +{% if include.email %} +
+ {% if include.name == 'true' %} +
+ +
+ +
+
+ {% endif %} +
+ +
+ +
+
+ {% if include.subject == 'true' %} +
+ +
+ +
+
+ {% endif %} +
+ +
+ +
+
+
+ {% if include.redirect %} + + {% endif %} + + +
+
+{% endif %} diff --git a/_includes/google-analytics.html b/_includes/google-analytics.html new file mode 100644 index 0000000..eb2a692 --- /dev/null +++ b/_includes/google-analytics.html @@ -0,0 +1,11 @@ + + diff --git a/_includes/head.html b/_includes/head.html new file mode 100644 index 0000000..6e25861 --- /dev/null +++ b/_includes/head.html @@ -0,0 +1,18 @@ + + + + + {% seo %} + + + + + + {% if page.hero.search or site.navbar.search %} + {% include search-js.html %} + {% endif %} + {% include hook-head.html %} + {% if jekyll.environment == 'production' and site.google_analytics %} + {% include google-analytics.html %} + {% endif %} + \ No newline at end of file diff --git a/_includes/header.html b/_includes/header.html new file mode 100644 index 0000000..6249e7a --- /dev/null +++ b/_includes/header.html @@ -0,0 +1,11 @@ +
+ +

+ {{ site.title | escape }} +

+ + + +
diff --git a/_includes/hero.html b/_includes/hero.html new file mode 100644 index 0000000..131be3d --- /dev/null +++ b/_includes/hero.html @@ -0,0 +1,53 @@ +{% if page.header.image %} + {% assign image = page.header.image %} +{% endif %} + +{% if page.header.align %} + {% assign align = page.header.align %} +{% else %} + {% assign align = "center" %} +{% endif %} + +
+
+ + {% include navbar.html %} + +
+
+ +

{{ page.hero.title }}

+ + {% if page.hero.search %} + + {% endif %} + +
+
+ +
+
\ No newline at end of file diff --git a/_includes/home-hero.html b/_includes/home-hero.html new file mode 100644 index 0000000..5d409d2 --- /dev/null +++ b/_includes/home-hero.html @@ -0,0 +1,34 @@ +
+
+
+
+
+
+

Radically Simple & Powerful Bitcoin Wallet

+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+

Direct download available for android and Desktop

+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/_includes/hook-head.html b/_includes/hook-head.html new file mode 100644 index 0000000..e69de29 diff --git a/_includes/hook-post-content-doc.html b/_includes/hook-post-content-doc.html new file mode 100644 index 0000000..e69de29 diff --git a/_includes/hook-pre-closing-body-doc.html b/_includes/hook-pre-closing-body-doc.html new file mode 100644 index 0000000..e69de29 diff --git a/_includes/hook-pre-closing-body.html b/_includes/hook-pre-closing-body.html new file mode 100644 index 0000000..f1c33e9 --- /dev/null +++ b/_includes/hook-pre-closing-body.html @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/_includes/image.html b/_includes/image.html new file mode 100644 index 0000000..d422b23 --- /dev/null +++ b/_includes/image.html @@ -0,0 +1,16 @@ +{% if include.lightbox == 'true' %} +
+ + {{ include.alt }} +
+ +
+
+ {% if include.caption %}
{{ include.caption }}
{% endif %} +
+{% else %} +
+ {{ include.alt }} + {% if include.caption %}
{{ include.caption }}
{% endif %} +
+{% endif %} diff --git a/_includes/lightning.html b/_includes/lightning.html new file mode 100644 index 0000000..1a12887 --- /dev/null +++ b/_includes/lightning.html @@ -0,0 +1,84 @@ +
+
+

Lightning Wallet

+

with zero configuration

+

You can use our hosted Lightning wallets or connect to your own node. Allows you to seamlessly use the Lightning Network, without the need to open channels, be online or operate and mantain a node. Our goal is to remove friction and provide a great user experience.

+
+ lightning wallet bitcoin +
+
+
+ +
+
+

Features

+
+
+
+

Refill

+

Allows you to refill your Lightning wallet with Bitcoin. It needs 3 confirmations to validate.

+
+
+
+
+

Send

+

Make payments after scanning a QR code or through an invoice.

+
+
+
+
+

Receive

+

Receive instant payments. Generate invoices that can be easily shared.

+
+
+
+
+

LNurl new

+

Allows you to have an easier interaction with services that support LNurl. Pay and Withdraw.

+
+
+
+
+

Marketplace

+

Access and Explore Lightning ready services and start participating on the new layer for payments.

+
+
+
+
+

Browser

+

Directly access your favourite lightning ready apps from our browser.

+
+
+
+
+
+ +
+
+

How to start

+
+
+
+ 1 +

Create a Lightning Wallet

+

Once you have created your Lightning Wallet, you will find the option "manage funds" inside your wallet. This is where you can refill new Wallet.

+
+
+
+
+ 2 +

Send an on-chain Transaction

+

Choose your favourite refill option and send a transaction with the desired amount. Keep the amount low, Lightning is experimental.

+
+
+
+
+ 3 +

Start using Lightning

+

Once you send your transaction, it will require 3 comfirmations before your balance appears on your Lightning wallet. Welcome to Lighting.

+
+
+
+
+
+ diff --git a/_includes/lndhub.html b/_includes/lndhub.html new file mode 100644 index 0000000..eaecab4 --- /dev/null +++ b/_includes/lndhub.html @@ -0,0 +1,33 @@ +
+
+
+
+
+
+ lndhub bluewallet lightning +
+
+
+
+

A Lightning Hub

+

A free and open source, multiple account plugin for Lightning built on top of the Lightning Network Deamon. It allows that a group of users run different accounts with only one node in a trust-minimized setup.

+

Ideal for hosted shared services or groups, families and friends that want to share their own node.

+ +
+ Star +
+
+ +
+
+

How does it work

+ lndhub bluewallet lightning +
+

The user sends a transaction to a dedicated top-up address, and this balance is added to his account on LNDhub. Then, the user can use this balance to pay Lightning invoices. But under the hood, it’s actually LNDhub who pays the invoice, deducting user’s account balance. It works the same way when the user wants to receive a Lightning payment - it’s LNDhub who creates the Lightning invoice and actually receives coins on one of it’s channels.

+
+
+
+ + + + \ No newline at end of file diff --git a/_includes/local-trader.html b/_includes/local-trader.html new file mode 100644 index 0000000..5cba46c --- /dev/null +++ b/_includes/local-trader.html @@ -0,0 +1,78 @@ +
+
+

Local Trader

+

Buy Bitcoin p2p while controlling your funds

+
+ p2p local trader bitcoin +
+
+
+ +
+
+

Highlights

+
+
+
+

Buy Bitcoin

+

Accept offers from sellers and buy directly from fellow users.

+
+
+
+
+

Search offers

+

You can search by location, payment method, currency and offer type.

+
+
+
+
+

Manage contracts

+

Once an offer is accepted a “contract” is created and can be viewed in the app.

+
+
+
+
+
+ +
+
+

How it works

+
+
+
+ p2p local trader bitcoin +

Step 1 - Accept an offer and a secure multisig escrow contract is created

+
+
+
+
+

Step 2 - Seller deposits Bitcoin in the escrow directly from their wallet

+ p2p local trader bitcoin +
+
+
+
+ p2p local trader bitcoin +

Step 3 - Buyer pays the seller according to the agreed upon payment method

+
+
+
+
+

Step 4 - Seller releases Bitcoin from multisig escrow directly to the buyer’s wallet

+ p2p local trader bitcoin + +
+
+
+
+
+ + +
+
+

Local Trader Demo

+
+ +
+
+
diff --git a/_includes/multisig-wallet.html b/_includes/multisig-wallet.html new file mode 100644 index 0000000..1bbb892 --- /dev/null +++ b/_includes/multisig-wallet.html @@ -0,0 +1,120 @@ +
+
+

Multisig Vault

+

The most secure Bitcoin technology. Multisig is like a vault, where multiple keys are needed to spend Bitcoin.
Recommended for cold storage and large amounts.

+
+ download bitcoin wallet for desktop +
+
+
+ +
+
+

Highlights

+
+
+
+

Easy Creation

+

Total flexibility to choose the number os keys and address types.

+
+
+
+
+

Powerful Import

+

Easily import or recover any setup. Compatible with most wallets.

+
+
+
+
+

Backup Keys

+

Safely backup your signing keys simultaneously with all pubkeys.

+
+
+
+
+

Backup Watch-only

+

Easily backup and spread your coordination setup (pubkeys) for better protection.

+
+
+
+
+

Air Gapped

+

Support for PSBTs and QR codes for maximum security.

+
+
+
+
+

Edit Setup 🔥

+

Easily change your setup to allow key rotation or fast signing for emergency situations.

+
+
+
+
+
+ +
+
+

The only thing between having a bitcoin and losing a bitcoin is one mistake. Multisig provides you with additional protection making it exceptionally challenging to "overcome".

+
+
+ +
+
+

Why use a Vault

+

Provides better protection or safety on...

+
+
+
+

Phishing attacks

+
+
+
+
+

On and Offline Thievery

+
+
+
+
+

Malware infection

+
+
+
+
+

Supply chain attacks

+
+
+
+
+ +

An evil-maid attack

+
+
+
+
+

Key loss

+
+
+
+
+

Device loss

+
+
+
+
+

Device malfunction

+
+
+
+
+
+ + +
+
+

Multisig Demo

+

In this demo of the Multisig Vaults you can see 2 BlueWallet apps signing transactions offline and airgapped.

+
+ +
+
+
diff --git a/_includes/navbar.html b/_includes/navbar.html new file mode 100644 index 0000000..c5e146e --- /dev/null +++ b/_includes/navbar.html @@ -0,0 +1,190 @@ + + + \ No newline at end of file diff --git a/_includes/navigation.html b/_includes/navigation.html new file mode 100644 index 0000000..b2c79ae --- /dev/null +++ b/_includes/navigation.html @@ -0,0 +1,11 @@ +{% assign navurl = page.url | remove: 'index.html' %} + diff --git a/_includes/newsletter.html b/_includes/newsletter.html new file mode 100644 index 0000000..cf996d0 --- /dev/null +++ b/_includes/newsletter.html @@ -0,0 +1,27 @@ +
+
+ {% if include.title %} +

{{ include.title }}

+ {% endif %} +
+
+ +
+
+ +
+
+
+
\ No newline at end of file diff --git a/_includes/offcanvas-docs.html b/_includes/offcanvas-docs.html new file mode 100644 index 0000000..62aaa9d --- /dev/null +++ b/_includes/offcanvas-docs.html @@ -0,0 +1,18 @@ +
+
+ + + + {% for section in site.data.navigation_docs %} +
{{ section.title }}
+
    + {% for doc in section.docs %} + {% assign doc_url = doc | prepend:"/docs/" | append:"/" %} + {% assign p = site.docs | where:"url", doc_url | first %} +
  • {{ p.title }}
  • + {% endfor %} +
+ {% endfor %} + +
+
diff --git a/_includes/offcanvas.html b/_includes/offcanvas.html new file mode 100644 index 0000000..a9ac6c8 --- /dev/null +++ b/_includes/offcanvas.html @@ -0,0 +1,34 @@ +
+
+ + + + + +
    + {% for link in site.data.navigation_mobile %} + {% if link.url contains 'http' %} + {% assign domain = '' %} + {% else %} + {% assign domain = '' | relative_url %} + {% endif %} + + {% if link.url == page.url %} + {% assign current = ' class="uk-active"' %} + {% else %} + {% assign current = null %} + {% endif %} + + {% if link.button %} +
  • + {% else %} + {{ link.title }} + {% endif %} + + {% endfor %} +
+ + + +
+
diff --git a/_includes/page-intro.html b/_includes/page-intro.html new file mode 100644 index 0000000..cad5959 --- /dev/null +++ b/_includes/page-intro.html @@ -0,0 +1,5 @@ +{% if page.intro_paragraph and page.intro_paragraph != '' %} +

+ {{ page.intro_paragraph | markdownify | remove: '

' | remove: '

' }} +

+{% endif %} diff --git a/_includes/paginate-blog.html b/_includes/paginate-blog.html new file mode 100644 index 0000000..a1b3815 --- /dev/null +++ b/_includes/paginate-blog.html @@ -0,0 +1,8 @@ + + diff --git a/_includes/paginate-doc.html b/_includes/paginate-doc.html new file mode 100644 index 0000000..821192e --- /dev/null +++ b/_includes/paginate-doc.html @@ -0,0 +1,32 @@ +{% assign docs = site.data.navigation_docs | map: 'docs' | join: ',' | split: ',' %} + +{% for document in docs %} + {% assign document_url = document | prepend:"/docs/" | append:"/" %} + {% if document_url == page.url %} +
+
+
+ {% if forloop.first %} + {% else %} + {% assign previous = forloop.index0 | minus: 1 %} + {% assign previous_page = docs[previous] | prepend:"/docs/" | append:"/" %} + {% assign previous_doc = site.docs | where:"url", previous_page | first %} +
{{previous_doc.title}}
+
← {{ site.data.translation[site.lang].previous | default: "Previous" }}
+ {% endif %} +
+
+ {% if forloop.last %} + {% else %} + {% assign next = forloop.index0 | plus: 1 %} + {% assign next_page = docs[next] | prepend:"/docs/" | append:"/" %} + {% assign next_doc = site.docs | where:"url", next_page | first %} +
{{next_doc.title}}
+ + {% endif %} +
+
+
+ {% break %} + {% endif %} +{% endfor %} diff --git a/_includes/paginate-post.html b/_includes/paginate-post.html new file mode 100644 index 0000000..a53b2f1 --- /dev/null +++ b/_includes/paginate-post.html @@ -0,0 +1,18 @@ +
+
+
+ {% if page.previous.url %} +

{{page.previous.title}}

+
{{ page.previous.excerpt | truncate: 90 }}
+
← {{ site.data.translation[site.lang].previous | default: "Previous" }}
+ {% endif %} +
+
+ {% if page.next.url %} +

{{page.next.title}}

+
{{ page.next.excerpt | truncate: 90 }}
+ + {% endif %} +
+
+
diff --git a/_includes/phone-screenshot-image.html b/_includes/phone-screenshot-image.html new file mode 100644 index 0000000..7d74871 --- /dev/null +++ b/_includes/phone-screenshot-image.html @@ -0,0 +1,2 @@ +{% include image.html lightbox="true" img=include.img alt=include.alt +caption=include.caption class="phone-screenshot-image" %} diff --git a/_includes/post-meta.html b/_includes/post-meta.html new file mode 100644 index 0000000..db3f79f --- /dev/null +++ b/_includes/post-meta.html @@ -0,0 +1,24 @@ +{% if page.author %} + {% assign author = site.authors[page.author] %} +{% else %} + {% assign author = site.author %} +{% endif %} + +{% if author.avatar %} + {% if author.avatar contains 'http' %} + {% assign domain = '' %} + {% else %} + {% assign domain = site.uploads | absolute_url %} + {% endif %} + {{ author.name }} +{% endif %} + +
+ {% if author.name %} + {{ site.data.translation[site.lang].written_by | default: "Written by" }}
+ {% endif %} + +
\ No newline at end of file diff --git a/_includes/promo.html b/_includes/promo.html new file mode 100644 index 0000000..6d368e9 --- /dev/null +++ b/_includes/promo.html @@ -0,0 +1,26 @@ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
\ No newline at end of file diff --git a/_includes/related-docs.html b/_includes/related-docs.html new file mode 100644 index 0000000..73f2a27 --- /dev/null +++ b/_includes/related-docs.html @@ -0,0 +1,32 @@ +
+

{{ site.data.translation[site.lang].related_docs | default: "Related Docs" }}

+ + {% assign maxRelated = 4 %} + {% assign minCommonTags = 1 %} + {% assign maxRelatedCounter = 0 %} + + +
diff --git a/_includes/related-posts.html b/_includes/related-posts.html new file mode 100644 index 0000000..fc43627 --- /dev/null +++ b/_includes/related-posts.html @@ -0,0 +1,32 @@ +
+

{{ site.data.translation[site.lang].related_posts | default: "Related Posts" }}

+ + {% assign maxRelated = 4 %} + {% assign minCommonTags = 1 %} + {% assign maxRelatedCounter = 0 %} + + +
diff --git a/_includes/search-js.html b/_includes/search-js.html new file mode 100644 index 0000000..f15422c --- /dev/null +++ b/_includes/search-js.html @@ -0,0 +1,97 @@ + \ No newline at end of file diff --git a/_includes/share.html b/_includes/share.html new file mode 100644 index 0000000..7b5faa7 --- /dev/null +++ b/_includes/share.html @@ -0,0 +1,8 @@ +
+ {% if site.share.twitter %} + + {% endif %} + {% if site.share.facebook %} + + {% endif %} +
diff --git a/_includes/slideshow.html b/_includes/slideshow.html new file mode 100644 index 0000000..56347a3 --- /dev/null +++ b/_includes/slideshow.html @@ -0,0 +1,14 @@ +
+ + + + + + +
diff --git a/_includes/social-networks.html b/_includes/social-networks.html new file mode 100644 index 0000000..c1e69a1 --- /dev/null +++ b/_includes/social-networks.html @@ -0,0 +1,79 @@ +{% if site.social.twitter %} +
+ + twitter bluewallet + Twitter + +
+{% endif %} +{% if site.social.facebook %} +
+ +
+{% endif %} +{% if site.social.flickr %} +
+ +
+{% endif %} +{% if site.social.dribbble %} +
+ +
+{% endif %} +{% if site.social.instagram %} +
+ +
+{% endif %} +{% if site.social.googleplus %} +
+ +
+{% endif %} +{% if site.social.linkedin %} +
+ +
+{% endif %} +{% if site.social.pinterest %} +
+ +
+{% endif %} +{% if site.social.vimeo %} +
+ +
+{% endif %} +{% if site.social.youtube %} +
+ +
+{% endif %} +{% if site.social.email %} +
+ +
+{% endif %} +{% if site.social.website %} +
+ +
+{% endif %} +{% if site.social.telegram %} +
+ + telegram bluewallet + Telegram + +
+{% endif %} +{% if site.social.github %} +
+ + github bluewallet + Github + +
+{% endif %} \ No newline at end of file diff --git a/_includes/tag.html b/_includes/tag.html new file mode 100644 index 0000000..011b0bf --- /dev/null +++ b/_includes/tag.html @@ -0,0 +1,2 @@ + +{{ site.data.tags[include.tag].text }} \ No newline at end of file diff --git a/_includes/team.html b/_includes/team.html new file mode 100644 index 0000000..c2205e9 --- /dev/null +++ b/_includes/team.html @@ -0,0 +1,45 @@ +
+
+ + {% if include.title %} +

{{ include.title }}

+ {% endif %} + + {% if include.subtitle %}

{{ include.subtitle | escape }}

{% endif %} + +
+ + {% if include.authors %} + {% assign authors = include.authors | split: ", " %} + {% else %} + {% assign authors = site.authors %} + {% endif %} + + {% for author in authors %} + + {% if include.authors %} + {% assign item = site.authors[author] %} + {% else %} + {% assign item = author[1] %} + {% endif %} + +
+
+ {% if item.avatar %} + {% if item.avatar contains 'http' %} + {% assign domain = '' %} + {% else %} + {% assign domain = site.uploads | absolute_url %} + {% endif %} + + {{ item.name }} + {% endif %} +
{{ item.name }}
+ +
+
+ {% endfor %} +
+ +
+
\ No newline at end of file diff --git a/_includes/videos.html b/_includes/videos.html new file mode 100644 index 0000000..404a845 --- /dev/null +++ b/_includes/videos.html @@ -0,0 +1,40 @@ +{% if include.columns %} + {% assign columns = include.columns %} + {% if columns == '1' %} + {% assign container = ' uk-container-xsmall' %} + {% elsif columns == '2' %} + {% assign container = ' uk-container-small' %} + {% else %} + {% assign container = '' %} + {% endif %} +{% else %} + {% assign columns = 3 %} + {% assign container = '' %} +{% endif %} + +
+
+ + {% if include.title %} +

{{ include.title }}

+ {% endif %} + + {% if include.subtitle %}

{{ include.subtitle | escape }}

{% endif %} + +
+ {% for item in site.data.videos %} +
+
+ + +

{{ item.title }}

+ {% if item.desc %} +

{{ item.desc }}

+ {% endif %} +
+
+ {% endfor %} +
+ +
+
\ No newline at end of file diff --git a/_includes/watch-app.html b/_includes/watch-app.html new file mode 100644 index 0000000..5c5b6ed --- /dev/null +++ b/_includes/watch-app.html @@ -0,0 +1,59 @@ +
+
+ +
+ +
+
+
+

Watch App

+
+
+

A beautifully designed apple watch app for Bitcoin.
A first of its kind, by BlueWallet.

+ + download bitcoin wallet for ios + +
+
+
+
+
+
+
+ apple watch app for bitcoin +
+
+
+
+
+ +
+
+

Highlights

+
+
+
+

Your Wallets

+

Individual wallet details and basic functionality.

+
+
+
+
+

Receive/Send

+

Receive or Send payments directly
 on your wirst.

+
+
+
+
+

Transactions

+

See latest transactions from your wallets.

+
+
+
+
+
+
+
+ apple watch download bitcoin wallet for ios +
+
\ No newline at end of file diff --git a/_includes/watch-only.html b/_includes/watch-only.html new file mode 100644 index 0000000..1e121c2 --- /dev/null +++ b/_includes/watch-only.html @@ -0,0 +1,89 @@ +
+
+

Watch-only

+

Watch-only wallets allows you to keep an eye on your cold storage or paper wallet without touching your private key. Easily import your public address, xpub or ypub and watch it from your app without moving anything.

+
+ download bitcoin wallet for desktop +
+
+
+ +
+
+

Features

+
+
+
+

xpub/ypub/zpub

+

A x/y/zpub or master public key address can be passed to generate receiving addresses.

+
+
+
+
+

Public Address

+

Monitor individual addresses you want to keep an eye on.

+
+
+
+
+

Receive

+

Generate adresses and QR codes for receiving.

+
+
+
+
+

Offline Signing new

+

Send transactions by signing them offline or with another wallet.

+
+
+
+
+

Animated QR codes

+

To facilitate the experience for big transactons.

+
+
+
+
+

Hardware wallets

+

Support for your cold storage solution and hardware devices.

+
+
+
+
+
+ +
+
+

How to set up a watch-only wallet

+
+
+
+ download bitcoin wallet for desktop +

Tap on add wallet icon

+
+
+
+
+ download bitcoin wallet for desktop +

Tap "Import wallet" option

+
+
+
+
+ download bitcoin wallet for desktop +

Input or scan a QR code

+
+
+
+
+
+ +
+
+

Hardware Wallet support

+

Use your wallets with ease on your mobile app while leaving your keys in cold storage. Ability to create, send and receive transactions.

+
+ +
+
+
diff --git a/_layouts/.DS_Store b/_layouts/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/_layouts/.DS_Store differ diff --git a/_layouts/404.html b/_layouts/404.html new file mode 100644 index 0000000..0548176 --- /dev/null +++ b/_layouts/404.html @@ -0,0 +1,28 @@ + + + + {% include head.html %} + + + + {% include navbar.html %} + + not found... + + {% include offcanvas-docs.html %} + + {% include offcanvas.html %} + + {% if page.layout != 'doc' %} + {% include footer.html %} + {% endif %} + + {% if page.layout == 'doc' %} + {% include hook-pre-closing-body-doc.html %} + {% endif %} + + {% include hook-pre-closing-body.html %} + + + + diff --git a/_layouts/changelog.html b/_layouts/changelog.html new file mode 100644 index 0000000..b3d39ad --- /dev/null +++ b/_layouts/changelog.html @@ -0,0 +1,42 @@ +--- +layout: default +--- + +
+
+ +

{{ page.title | escape }}

+ +
+ {{ content }} +
+ + {% assign changelogs = site.changelogs | sort: 'date' | reverse %} + {% for changelog in changelogs %} +
+
+
+

{{ changelog.title }}

+
+ {% if changelog.date %} + + {% endif %} +
+
+ {% if changelog.date %} + + {% endif %} +
+
+
{{ changelog.content }}
+
+ {% endfor %} + +
+
diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..66c5f9f --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,28 @@ + + + + {% include head.html %} + + + + {% include navbar.html %} + + {{ content }} + + {% include offcanvas-docs.html %} + + {% include offcanvas.html %} + + {% if page.layout != 'doc' %} + {% include footer.html %} + {% endif %} + + {% if page.layout == 'doc' %} + {% include hook-pre-closing-body-doc.html %} + {% endif %} + + {% include hook-pre-closing-body.html %} + + + + diff --git a/_layouts/desktop-bitcoin-wallet.html b/_layouts/desktop-bitcoin-wallet.html new file mode 100644 index 0000000..d4bced4 --- /dev/null +++ b/_layouts/desktop-bitcoin-wallet.html @@ -0,0 +1,42 @@ +--- +layout: default +--- + +
+
+
+ +

{{ page.title | escape }}

+ + + +
+ {{ content }} + {% if site.share.post %} + {% include share.html %} + {% endif %} +
+ +
+ + {% include paginate-post.html %} + + {% include related-posts.html %} + + {% if site.disqus.shortname %} + {% include disqus_comments.html %} + {% endif %} +
+ + + +
+
diff --git a/_layouts/doc.html b/_layouts/doc.html new file mode 100644 index 0000000..3e9fa6d --- /dev/null +++ b/_layouts/doc.html @@ -0,0 +1,77 @@ +--- +layout: default +--- + +
+
+
+ + + + +
+ +
+ + {% if page.layout == 'doc' %} + {% if site.data.translation[site.lang].mobile_nav_docs %} +  Documentation + {% else %} +  Documentation + {% endif %} + {% endif %} + +

{{ page.title | escape }}

+ + {% if page.subtitle %}

{{ page.subtitle }}

{% endif %} + +
+ {{ content }} + {% if site.share.doc %} + {% include share.html %} + {% endif %} +
+ + {% include hook-post-content-doc.html %} + +
+ + {% include paginate-doc.html %} +
+ + {% if site.disqus.shortname %} + {% include disqus_comments.html %} + {% endif %} +
+ + + +
+ +
+
diff --git a/_layouts/page.html b/_layouts/page.html new file mode 100644 index 0000000..db4aeca --- /dev/null +++ b/_layouts/page.html @@ -0,0 +1,21 @@ +--- +layout: default +--- + +{% if page.width == 'expand' %} + {{ content }} +{% else %} +
+
+ +
+ +
+ {{ content }} +
+ +
+ +
+
+{% endif %} \ No newline at end of file diff --git a/_layouts/post.html b/_layouts/post.html new file mode 100644 index 0000000..d4bced4 --- /dev/null +++ b/_layouts/post.html @@ -0,0 +1,42 @@ +--- +layout: default +--- + +
+
+
+ +

{{ page.title | escape }}

+ + + +
+ {{ content }} + {% if site.share.post %} + {% include share.html %} + {% endif %} +
+ +
+ + {% include paginate-post.html %} + + {% include related-posts.html %} + + {% if site.disqus.shortname %} + {% include disqus_comments.html %} + {% endif %} +
+ + + +
+
diff --git a/_posts/2018-10-01-A-glimpse-on-the-future-of-Bitcoin-UX-4129cca9ece6.md b/_posts/2018-10-01-A-glimpse-on-the-future-of-Bitcoin-UX-4129cca9ece6.md new file mode 100644 index 0000000..daae671 --- /dev/null +++ b/_posts/2018-10-01-A-glimpse-on-the-future-of-Bitcoin-UX-4129cca9ece6.md @@ -0,0 +1,123 @@ +--- +layout: post +title: A glimpse on the future of Bitcoin UX +date: 2018-10-01 15:27:00 +author: nuno +categories: [news, updates] +--- + +Hi there, I’m [Nuno](https://twitter.com/nvcoelho) from [Bluewallet, a Bitcoin wallet](https://bluewallet.io). I’m a UX and Product Designer. And for the last couple of years Bitcoin has been a daily passion, an obsession, and the most exciting thing I’ve come across, since I first connected to the internet. + +Usually when I start talking about Bitcoin with my friends, the conversation always goes along the lines of: + +Them: “ohh, you are on that shit, have you made some money yet? What about Ripple…?” (lol…). + +Me: “It’s not about that, you see, bitcoin is a protocol where you can build things on top of.” + +Them: “Really…!? I’m not following” + +Me: “Heya, imagine the internet, and services like gmail, facebook and so on. But the internet of money!” + +… Crickets\*\*\*…! + +Explaining Bitcoin to your friends is not that simple. The tech is at a very early stage and still has flawed concepts all over the place. + +For example: + +* Wallets that don’t keep Coins, but Keys instead. +* Addresses that are numbers and letters that no one can read. + +Early this year, after some time of studying Bitcoin daily, I started looking for open source projects to collaborate on. Long story short, [Igor Korsakov](https://twitter.com/overtorment), an experienced bitcoin developer found me. After some discussions we were a team building what we think will be the next generation of a [bitcoin wallet](https://itunes.apple.com/us/app/bluewallet-bitcoin-wallet/id1376878040?l=ru&ls=1&mt=8). Later this year, [Marcos Rodriguez](https://github.com/marcosrdz) found our [project on Github](https://github.com/BlueWallet/BlueWallet) and immediately joined the team. + +Ok, fu\*\* we are a team of 3 people, how amazing is that??!! + +It is pretty cool, but trying to build a wallet with a remote team that has never worked together is not easier than explaining what bitcoin is to your friends. Truth is, most wallets suck and the best examples out there are not really there yet or even close to what the technology allows. For sure what the user experience should be, or will be in the future, doesn’t exist yet, and there’s no one who can tell you what it will look like. + +* What should a wallet be? +* What will a wallet be in 10 years? +* Should a wallet display fiat currencies? +* Should an address be a wallet? +* Should we encrypt everything? +* Is touch ID secure? +* Is the lightning network ready anytime soon? +* How do we get rid of QR codes? +* How do we get rid of addresses? +* Should a user run their own node? +* Can you add a node inside a phone? +* Should we allow people to buy Bitcoin? Oh shit how do you do that? + +The amount of uncertainty, questions without answers, flawed concepts on the protocol, for sure, don’t help. But having an idea of the direction we should go to, certainly helps. That is what I’m going to try to write about, a glimpse on how I see the UX on Bitcoin will go in the future. + +### Where we are at the moment. + +We just started, and after hacking our wallet in React Native (props to [Igor](https://twitter.com/overtorment)), we are now redesigning the main experience and trying to step up the game on what the basic expectations from a user should be for a [Bitcoin wallet](https://bluewallet.io/). + +**Our first Prototype in Production** + +![](/uploads/blog/1__BkxRuZqPs__H8fq1U5WYT__Q.png) + +I remember that Igor was not really happy when we were talking about it, and I said something like “looks like a prototype, it’s not there yet…” :D + +### What we are working on at the moment + +After the first iteration and having something working in production that we can get feedback and learn from, we are working on the UI and what the main navigation should be. + +Wallets need to step up their game on basic things: like GUI quality, navigation that falls in what users expect from an app and their mental models, etc. + +Here’s a little preview on how we plan to do just that. + +![](/uploads/blog/1__Ce1O88UQUi7LeudYMnn2SA.gif) + +![](/uploads/blog/1__xSS3BEad9Wx9BpmVoe2W4A.png) + +So pretty much, a lot of catching up is going on a the moment. But we are slowly working on this every day. We will get there! + +Also, our lightning solution is right around the corner. Stay tuned for some awesomeness! + +### What the future can brings us - Part 1 + +After showing you a bit of the short term future, I’m going to ramble about where can we go from here. Most likely in some years I’m going to be so ashamed of this article that I may find myself crying alone in the dark. Nevertheless the future belongs to the dreamers :D + +There was this sentence I read somewhere that completely changed the way I understood Bitcoin. Someone saying “the wallet is the interface, it’s where the users will interact with the network. The wallet is the browser!”. + +This completely changed my perspective of Bitcoin. If there’s an interface for the users, then people will be able to build services on top of it. People will build banks, mortgage services, loans services. You can pay for your bills, top up your phone, send money to your friends. This is a game changer. + +The way we transfer, keep and secure our personal value will never be the same. + +So let’s see how can a first, next generation wallet do that… + +![](/uploads/blog/1__QuLtnA__EGWJTNAJ__Nsk__7A.gif) + +In this concept (just a concept) we are seeing a wallet that features a marketplace. Imagine an app (a wallet) that provides the ability for other services to live and be built on top of it. Think about Messenger apps or wechat mini-programs. Where developers have APIs and pre-made Interfaces to create their services on. + +A kind of eco-system like this would also solve the common question for wallet builders, “how will you make money from a wallet?”. + +Now we have an answer. No problem, you can thank me later :) + +At this point you also may be asking yourself. “But this already exists out there?!” Well kind of… There are literally billions of people without access to a bank. Bitcoin brings that access to everyone on the planet. Imagine having a bank account on your pocket, now you (and the rest of people) can have an entire bank! + +### What the future can brings us — Part 2 + +Another inherent problem of the Bitcoin protocol concerns identity. For sure privacy will be the next big thing, and many projects are working on that. But people are not numbers, Bitcoin will be more social than ever! It’s a network in the end of the day… + +The ability to send money to your friends, pay for your food delivery to your local restaurant, or buy from your favourite shop needs to be easy to do. And, most probably it will be conversational too. + +QR codes will die, and addresses will be something users won’t interact with. + +![](/uploads/blog/1__jhzjE2eK1sS8lEDutaQKgw.gif) + +At the end of the day, it’s about people and not about the tech. This example aims to exemplify that. Users, services, brands and humans will directly interact with Bitcoin everyday. + +### Some final thoughts + +This won’t be built in a few days or even in a couple of years. This is a long journey, and the opportunity of a lifetime to build products that will change the future as we know it. Personal and business interactions with value, personal sovereignty and money education are the next revolution! + +The most exciting thing since the internet. + +We are a team of 3, trying to bring Bitcoin to the people. How can you help? + +* Are you a developer? [Here is the place](https://github.com/BlueWallet/BlueWallet). +* Not a developer, join our [beta access](https://testflight.apple.com/join/8KtgcwC6) and help us test and bug fix. +* Are you a VC. Damn!! Working full time on this would make things easier for sure. Drop me a line (n@bluewallet.io). + +Thank you for reading and any feedback, comments, thoughts and violent reactions. I’m all yours, see you around! \ No newline at end of file diff --git a/_posts/2018-12-03-A-new-Bitcoin-wallet-for-Android-Announcing-Bluewallet-9c716b0e1266.md b/_posts/2018-12-03-A-new-Bitcoin-wallet-for-Android-Announcing-Bluewallet-9c716b0e1266.md new file mode 100644 index 0000000..53ff790 --- /dev/null +++ b/_posts/2018-12-03-A-new-Bitcoin-wallet-for-Android-Announcing-Bluewallet-9c716b0e1266.md @@ -0,0 +1,99 @@ +--- +layout: post +title: A new Bitcoin wallet for Android-Announcing Bluewallet +date: 2018-12-03 09:27:00 +author: nuno +categories: [news, updates] +--- + +It’s here! It took us a while. But the Android version of [Blue Wallet is live on play store](https://play.google.com/store/apps/details?id=io.bluewallet.bluewallet). With full featured and more exciting new things ahead. + +### [Download it here for Android](https://play.google.com/store/apps/details?id=io.bluewallet.bluewallet) + +![](/uploads/blog/1____srLIaM0M9aEFIoIdCjsEw.png) +undefined + +### **What is Blue Wallet?** + +[Blue Wallet](https://bluewallet.io/) is an **open source project**. A [Bitcoin wallet](https://bluewallet.io/) built by bitcoiners, by community members, by hodlers, by bitcoin maximalists, and by hodlers of last resort. Call us whatever you want. 😎 + +But quite simply just by 3 guys who deeply care about bringing bitcoin to the masses. Hi there! We are [Igor Korsakov](https://twitter.com/overtorment), [Marcos Rodriguez](https://twitter.com/marcosrdz) and [Nuno Coelho](https://twitter.com/nvcoelho). 👋 + +### **Why are we building this?** + +We were deeply frustrated with the current status of mobile wallet development on Bitcoin. Most of the wallets out there became a shitcoin horror show. Onboarding users to pure speculative useless tokens, where the creators are making money while the normal user is being introduced to scams, frauds on top of being directed to the least interesting aspect of the technology. Wasting time, creating frustration, and thereby resulting to a slow adoption. + +We are on a mission to fix that. + +We want to bring to the community a wallet focused on the users and their usage. Notice the overuse of the use word… + +We plan to do that by focusing our efforts on two main pillars: **Security and User Experience**. + +Let’s take a look on what our MVP (minimum viable product) looks like. + +### 1 — Security by design + +**Open Source** +Blue Wallet is built on a public repo, up-to-date, and available on the [Blue Wallet GitHub](https://github.com/BlueWallet/BlueWallet). This means that any user can build it and run it on his own, without any custodial dependencies. Verify the code and contribute to the wallet development. Blue Wallet is made with ReactNative and Distributed under [MIT licensed](https://opensource.org/licenses/MIT). + +**Plausible deniability** +A custom made feature thinking about your personal security. Blue Wallet allows you to define a different password which will decrypt a fake wallet set up for any situation you are forced to disclose your access or when you don’t want to or you can’t show your real wallet. + +**Full encryption** +Blue Wallet can encrypt everything with an additional password. Biometric security (touch ID, Face ID) is not secure enough, and because this we’ve given you the option to have an additional password to protect and encrypt your wallet instead. + +**SegWit** +SegWit supported in P2SH-compatibility mode. Segwit was a massive upgrade to the Bitcoin Protocol released in 2017. You will find all wallets with SegWit enabled by default. Find more about [SegWit here](https://segwit.org/). + +**HD wallets** +The Hierarchical Deterministic (HD) key creation and transfer protocol (BIP32), which allows creating child keys from parent keys in a hierarchy. The HD Wallets will generate you different public keys for each transactions. + +### 2 — Focus on your experience + +**Be in control** +Your private keys never leave your device**. You are in full control of your private keys. You can, at any moment, generate backups and export/import your wallets, with full control of what to do with your private keys. + +**Watch-only wallets** +Watch-only wallets allow you to keep an eye on your cold storage without touching your private key. Easily import your address or xpub and watch it from your app without ever touching it. + +**Flexible fees** +Starting from 1 Satoshi. You define, with full flexibility, the amount you want to add to your transaction. Blue Wallet also provides you a fee estimation to give you an idea how much to add to your transaction to be included on the next block. + +**Replace-By-Fee** +If you would like to speed up a transaction, Blue Wallet allows to do just that by supporting **RBF**. Speed-up transactions by increasing the fee (BIP125). + +**Export TXHEX** +You can get your transaction HEX (TXHEX) without broadcasting it, and only do it with the relay of your choice. + +**Multiple wallet support** +Blue Wallet aims to support maximum wallet standards. Currently supported: BIP44 (HD), BIP49 (HD SegWit), BIP39 Breadwallet-compatible (m/0'/0/0), Legacy single-address, SegWit single-address (P2SH). You can have as many wallets in a single app at the same time. + +### What’s coming next? + +Ok, all of that is cool. But the future is cooler. Let’s take a look at what is coming next. + +So we compiled a list of 4 main focus areas that we are working on at the moment and for the near future. And of course, our [backlog](https://github.com/BlueWallet/BlueWallet/projects/1) and our [roadmap](https://github.com/BlueWallet/BlueWallet/projects/2) are all open for everyone to see and contribute to if anybody should want to do just that. + +**Lightning Wallets** +Wallets with support for the [Lightning Network Protocol](https://lightning.network/). It will bring you unfairly cheap and fast transactions. + +**Batch TX** +Ability to pay multiple addresses with a single transaction. Save on fees and optimize blockspace usage. + +**MultiSig TX** +Add security to your funds. Each transactions requires M of N signatures (with keys stored on different physical devices with Blue Wallet). + +**Plug your node** +Plug your own Bitcoin Core node for a maximum sovereignty. + +### [Download it here for Android](https://play.google.com/store/apps/details?id=io.bluewallet.bluewallet) + +We are a team of 3, trying to bring Bitcoin to the people. Do you want to help? + +* Are you a developer? [Here is the place](https://github.com/BlueWallet/BlueWallet). +* Not a developer? Join our [telegram group](https://t.me/bluewallet) and help us test and bug fix. +* Are you investing in Bitcoin projects? Drop me a line (n@bluewallet.io). + +Thank you for reading and for any feedback, comments, thoughts and even violent reactions you might want to share with us. I’m all yours… See you around! + +Check out our previous article on the [future of Bitcoin UX](https://medium.com/bluewallet/a-glimpse-on-the-future-of-bitcoin-ux-4129cca9ece6) \ No newline at end of file diff --git a/_posts/2018-12-19-BlueWallet-brings-zero-configuration-Lightning-payments-to-iOS-and-Android-30137a69f071.md b/_posts/2018-12-19-BlueWallet-brings-zero-configuration-Lightning-payments-to-iOS-and-Android-30137a69f071.md new file mode 100644 index 0000000..2e48324 --- /dev/null +++ b/_posts/2018-12-19-BlueWallet-brings-zero-configuration-Lightning-payments-to-iOS-and-Android-30137a69f071.md @@ -0,0 +1,70 @@ +--- +layout: post +title: BlueWallet brings zero-configuration Lightning payments to iOS and Android +date: 2018-12-19 15:27:00 +author: igor +categories: [news, updates] +--- + +BlueWallet has just released support for the Lightning Network. Being a 2nd layer scaling solution, Lightning promises low-fees and instant payments. But as a drawback brings a lot of complexities and unfamiliarities to unsuspecting users. + +Completely aligned with Bitcoin’s “be your own bank” for sovereign individuals, Lightning requires users to run their own Lightning nodes (besides their own Bitcoin node), open and manage state channels with other nodes (this is what makes a network), maintain liquidity (both incoming and outgoing) in channels, and basically, do a hard ‘node operator’ work. This is the cost of independence from financial institutions. + +Our approach to Lightning is different. + +We decided to hide the complexity of running a node under the hood and take over the work of hub operator. + +This makes the user experience smooth, bringing Lightning payments to anyone who is at least remotely acquainted with cryptocurrencies and mobile wallets. + +We called it LndHub, an opensource wrapper around LND. This is “3rd layer solution” (as we jokingly call it; of course this is not real 3rd layer). + +![](/uploads/blog/1__vqmo5jBOWO1VeKG25UHvXQ.png) + + +**This is how it works**: the user sends his bitcoins to a dedicated top-up address, and this balance is added to his account on LndHub. Then, the user can use this balance to pay Lightning invoices. But under the hood, it’s actually LndHub who pays the invoice, deducting the user’s account balance. It works the same way when the user wants to receive a Lightning payment — it’s LndHub who creates Lightning invoice and actually receives coins on one of its channels. + +![](/uploads/blog/1__y4mllrICanzylWy4rrkdyg.png) + +This has its drawbacks. Basically, user transfers his funds in custody to a 3rd party (and we all know that trusted 3rd parties are security holes, thanks to Nick Szabo). But how much of a problem is that? Let’s think a bit about it. Trust is minimized to an absolute minimum required to carry its duties. On the other hand, Lightning is expected for day-to-day use, and how much the average user usually has in his pocket for daily expenses? Probably, $50 for groceries and coffee? A fair tradeoff risking those for an exchange of usability. + +Of course, on-chain Bitcoins private keys should be in full user’s control. Not your keys — not your coins, as they say. We are thinking of it as “savings” account (as opposed to Lightning — “current” account). + +Other drawbacks include centralisation of the network. Given lots of users start using LndHub, amount of funds and liquidity it holds will also grow, turning LndHub into a major Hub on the network. This was anticipated in the dawn of Lightning development, and we don’t see a problem with that. Network still remains open, and is free to morph and mutate as per current economic reality. + +Luckily, **LndHub is completely opensource,** which means any tech-savvy user can deploy his own instance of LndHub and use it with his wallet. This instance can even be shared with the party, such as friends and family: each member will have his own independent balance and transaction history. Should be pretty convenient for someone to onboard more people to the Lightning party. Just install lnd, bitcoind, lndhub and in your wallet settings put a link to your hub. Share the link with your friends and help them config their wallets. Done! + +![](/uploads/blog/1__Q12kpMPZ726TWRJGl__iT__w.png) + +This also mitigates effects of hub centralization, letting the user maintain control over his on-chain and off-chain funds. + +To sum this up, here’s a quick pros and cons list: + +**Pros**: + +* Improves user experience, allowing to onboard more users +* Completely removes technicalities, like opening and maintaining channels and liquidity (both incoming and outgoing)t +* Improves chances of successful payment routing +* Receiving payments is a breeze (lndhub and lnd are 100% online, no need for Watchtowers) +* Single LndHub (if self-hosted) can help share lightning experience with many users (think friends and family) + +**Cons**: + +* Funds are held by a 3rd party (but only small amounts for everyday use). Mitigated by opensourcing LndHub. +* Minor network centralization +* Less private. Hub operator knows who paid whom. Luckily, trust is minimized as Hub doesn’t know who is on sending and who is on receiving end, and what is being paid for. And again, LndHub is opensource for people needing extra privacy. + +#### What next? + +You can give it a try with [BlueWallet mobile app (iOS and Android)](https://bluewallet.io), check out code for [LndHub](https://github.com/BlueWallet/LndHub) or [BlueWallet](https://github.com/bluewallet/bluewallet) (both are opensource and MIT licensed), and let us know what you think! Of course, there might be bugs, so be careful and please report them. LndHub API spec is also open, so you can build your own product on top of it. + +For bonus cypherpunk points you can build wallet binaries yourself and plugnplay your own bitcoind/lnd/lndhub! + +#### Handy links + +* [http://lndhub.io](http://lndhub.io) +* [http://lndhub.io/about](http://lndhub.io/about) +* [https://bluewallet.io](https://bluewallet.io) +* [https://itunes.apple.com/us/app/bluewallet-bitcoin-wallet/id1376878040](https://itunes.apple.com/us/app/bluewallet-bitcoin-wallet/id1376878040?l=ru&ls=1&mt=8) +* [https://play.google.com/store/apps/details?id=io.bluewallet.bluewallet](https://play.google.com/store/apps/details?id=io.bluewallet.bluewallet) +* [https://github.com/BlueWallet/lndhub](https://github.com/BlueWallet/lndhub) +* [https://github.com/BlueWallet/Bluewallet](https://github.com/BlueWallet/Bluewallet) \ No newline at end of file diff --git a/_posts/2019-01-21-BlueWallet-introduces-Lapp-Browser-and-Lapp-Marketplace-eed36721d853.md b/_posts/2019-01-21-BlueWallet-introduces-Lapp-Browser-and-Lapp-Marketplace-eed36721d853.md new file mode 100644 index 0000000..597e9a2 --- /dev/null +++ b/_posts/2019-01-21-BlueWallet-introduces-Lapp-Browser-and-Lapp-Marketplace-eed36721d853.md @@ -0,0 +1,57 @@ +--- +title: BlueWallet introduces Lapp Browser and Lapp Marketplace +description: In the latest release of BlueWallet (v3.6.0) for Android & iOS we added a Lapp Browser. Similar to Dapp Browser, Lapp Browser allows you… +layout: post +date: 2019-01-21 11:27:00 +author: igor +categories: [news, updates] +--- + +![](/uploads/blog/1__8aBrXNxm5J8qGqxNe3leSQ.png) + +![](/uploads/blog/1__8ocpMPrkE__pasqTKq8NeGQ.gif) + +What is Lightning-powered App (Lapp)? In general, this is any application which works with Lightning network. In our case, this is any web-page that can receive payments or pay you back (not only that but more on that later). + +Since BlueWallet added Lightning integration, our users made thousands of payments, and we have some stats and insights to share (which we will in further blog posts), but for now, we want to bring closer users and real business. We want to make it easier for regular people to discover great goods and services, allow them to interact with Lapps, pay and get paid easily. + +![](/uploads/blog/1__I9tmpGCk61N84__PCZ1TBFw.gif) + +_Its been one year since Lightning network mainnet launch, and it’s time to take it seriously._ + +Thus, the very first thing to meet & greet users on the Lapp Browser will be a Lapp Marketplace — a simple collection of Lapps worth of your attention. + +### How does it work? + +In the essence, Lapp Browser is a webview that navigates to Lightning-enabled webpages. The webview has javascript code injected, which bridges user’s Lightning wallet with the Lapp, allowing a more smooth interaction. The interaction part itself can evolve a lot in the future to be and feel more native, more integrated, etc. + +BlueWallet partially conforms to [webln](https://github.com/wbobeirne/webln) specification (which is still in early alpha), so any Lapp that implements that spec will integrate with the wallet more naturally. Ideally, paying and getting paid in Lapp will be within one button tap (not a hustle of switching between apps and copypasting _bolt11_ strings). + +![](/uploads/blog/1__QZlxfhsTQob4xJAaedg6DA.gif) + +### Why are we doing this? + +There’s no way to know what the future of wallets will be. + +Imagine a world where you have full control of your money. Bitcoin is the main currency online and offline. You open your wallet app where you are able to easily pay your bills, send money to your family, buy stuff online, topup your phone, etc. + +This is the world we want to live in. And this experiment is a first step to start learning how can we build this on top of the Lightning Network. + +![](/uploads/blog/1__3UuRMNuJputXC04a9kMJgA.gif) + +### Whats next + +Lots of work to be done. At the moment very few Lapps implement webln spec. Although this spec is still in alpha stage, it feels like a way to go. For example, every Dapp supports web3 specs, so developers might want to build their next Lapp considering webln compatibility. Except for frictionless send and receive, this spec also drafts providing identity to Lapp (so Lapp can seamlessly create an account and authorize you; no personal information leaked though, only anonymous public key is shared), and also mechanisms to sign messages with your identity, and verify other people signatures. Please, give [this spec](https://github.com/wbobeirne/webln) some love. + +### Disclaimer + +BlueWallet’s Lightning integration is custodial by default, but you can easily connect it with your own LND instance for the same experience (everything we do is opensource). + +Be warned, there might be bugs (please report them). Actually, with this release we’ve hit a sort of “beta” jackpot: Lapp browser is in beta, Lightning integration is in beta, and BlueWallet itself is still in beta. Don’t use it for large amounts! Be reckless, but not too reckless. + +### Handy links + +* [https://bluewallet.io](https://bluewallet.io) +* [Our Lightning integration announcement](https://medium.com/bluewallet/bluewallet-brings-zero-configuration-lightning-payments-to-ios-and-android-30137a69f071) +* [A glimpse on the future](https://medium.com/bluewallet/a-glimpse-on-the-future-of-bitcoin-ux-4129cca9ece6) +* [Marketplace sources](https://github.com/BlueWallet/Website/tree/master/marketplace) \ No newline at end of file diff --git a/_posts/2019-05-28-v4-0-2-is-out-on-android-and-iOS-73b0133f8916.md b/_posts/2019-05-28-v4-0-2-is-out-on-android-and-iOS-73b0133f8916.md new file mode 100644 index 0000000..c42099d --- /dev/null +++ b/_posts/2019-05-28-v4-0-2-is-out-on-android-and-iOS-73b0133f8916.md @@ -0,0 +1,27 @@ +--- +layout: post +title: v4.0.2 is out on android and iOS +date: 2019-05-28 09:45:00 +author: nuno +categories: [news, updates] +--- + +update on [bluewallet.io](https://bluewallet.io) + +NEW +-Simpler wallet creation screen +-Advanced mode in app settings + +FIXED +- HD wallet update if it was heavily used externally +- Cached HD addresses generation (performance) +- Updated bitcoinjs-lib (performance) +- Improve quality of QR code onchain +- Lack of spacing in receive QR screen +- Better mnemonic backup screen + +This release features the removal of the P2SH and SEGWIT references. We know have onchain HD Segwit wallets by default :) + +![](/uploads/blog/1__HrzbozVIPmRYMJk9gJDCdg.jpeg) + +[bluewallet.io](https://bluewallet.io) \ No newline at end of file diff --git a/_posts/2019-08-05-Bluewallet-4-2-0-d31c7c4487fa.md b/_posts/2019-08-05-Bluewallet-4-2-0-d31c7c4487fa.md new file mode 100644 index 0000000..663737a --- /dev/null +++ b/_posts/2019-08-05-Bluewallet-4-2-0-d31c7c4487fa.md @@ -0,0 +1,32 @@ +--- +layout: post +title: Bluewallet 4.2.0 +date: '2019-08-05 09:27:00' +author: nuno +categories: [news, updates] +--- + +4.2.0 is out for iOS and android. With a massive update! 🤯 + +New +- Plug your full node (Electrum/BIP84) 😎 +- Bump sent Tx (RBF/BIP84) 🤓 +- Cancel sent Tx (RBF/BIP84) 😮 +- Bump received Tx (CPFP/BIP84) 🤠 +- Hungarian translation and HUF currency 🇭🇺 + +![](/uploads/blog/1__w__mUqMrlx4lhyTqnXc9MCA.jpeg) +undefined + +Fixed +- Receive address offline +- Wait for connection before fetching or broadcast +- iOS App crashes when scaning QR Code +- Amount when scanning was not displayed +- Lightning transaction details +- Import wallet with custom lndhub +- Swedish translation updates + +Keep your apps updated! Thank you 🙏 + +[Bitcoin Wallet — Bluewallet](https://bluewallet.io) \ No newline at end of file diff --git a/_posts/2019-09-04-Bluewallet-v-4-4-1----Bitcoin-wallet-65705e8a8784.md b/_posts/2019-09-04-Bluewallet-v-4-4-1----Bitcoin-wallet-65705e8a8784.md new file mode 100644 index 0000000..afc89ed --- /dev/null +++ b/_posts/2019-09-04-Bluewallet-v-4-4-1----Bitcoin-wallet-65705e8a8784.md @@ -0,0 +1,75 @@ +--- +layout: post +title: Bluewallet v.4.4.1  — Bitcoin wallet +date: 2019-09-04 09:27:00 +author: nuno +categories: [news, updates] +--- + +Bluewallet v.4.4.1, [mobile Bitcoin wallet for iOS and android](https://bluewallet.io) is out and there are some cool new features that you should know about. Mainly the ability to send all funds, the ability to have a bit more privacy by allow you to hide your balances and the super cool “Scan to receive”, a new functionality available for Lightning based on _lnurl spec_. + +#### **What is new** + +### Send MAX (BIP84 & BIP49) + +The ability to Send MAX, one of the most requested features appears when you tap on the amount. The keyboard goes up, you can see your total balance and you can tap on it to select the total amount. That simple. + +Particularly useful if you want to migrate your wallets to Bech32 wallets ;) + +![](/uploads/blog/1__meQxWp__U0428GlEkJKBqeg.png) +undefined + +### Scan to receive (lnurl spec) by @fiatjaf + +_lnurl_ is a protocol for communication between Lightning wallets and third-party services. It simplifies complicated common flows into standard subprotocols carried on between the user wallet and the service over simple HTTP JSON calls. + +Basically it goes like this: + +1. The wallet reads a QR code; +2. If it has the _lnurl_ prefix it is decoded and the the resulting URL is called; +3. From the server response for that URL the wallet knows what subprotocol it should proceed with; +4. In the case of **lnurl-withdraw**, for example, the server response will contain some parameters (min/max, default description) for the invoice that will be generated in the user wallet; +5. The wallet proceeds with the subprotocol. In the case of **lnurl-withdraw**, for example, it will display an invoice generation window prefilled with the parameters returned by the server, and, upon confirmation by the user, send the invoice back to the server, which will pay it. + +![](/uploads/blog/1__JZdpyNAQs0np2wgCpoHDrw.gif) +undefined + +[Source](https://telegra.ph/lnurl-a-protocol-for-seamless-interaction-between-services-and-Lightning-wallets-08-19) + +Supported by: [BlueWallet](https://bluewallet.io/), [Bitcoin Lightning Wallet](https://lightning-wallet.com/) and [@lntxbot](https://t.me/lntxbot) + +Can be used on: [Kriptode](https://kriptode.com/), [Lightning Gifts](https://lightning.gifts/) and [@lntxbot](https://t.me/lntxbot) + +### Allow user to hide their balance + +The ability to hide your balance is a small privacy improvement. With it you now don’t need to be afraid of opening your wallet in public or over the shoulder kind of situations for instance. + +![](/uploads/blog/1__l__z95zazGnMJMuoPyBNHxg.png) +undefined + +#### Other noticeable improvements on this release + +* WatchApp Complication +* New TX status screen +* Share QR along with address +* KRW currency support +* iOS Handoff for tx and wallets + +**What was fixed** + +* Crash on ManageFunds +* Don’t allow more than one leading zero +* Wallet selector on send view +* Data is stored in OS secure keystore +* Broken Lightning scheme handling +* QR Correctness for watch app +* Tap to copy preimage +* Show last saved exchange rate + +Keep Building! And keep that feedback coming. Free Open Source Software! Thank you all :) + +We are always available by email bluewallet@bluewallet.io or on the usual channels. + +* [bluewallet.io](https://bluewallet.io/) +* [Twitter](https://twitter.com/bluewalletio) +* [Telegram](https://t.me/bluewallet) \ No newline at end of file diff --git a/_posts/2019-09-24-Marketplace-removed-from-iOS-app-5630a5c7d2e4.md b/_posts/2019-09-24-Marketplace-removed-from-iOS-app-5630a5c7d2e4.md new file mode 100644 index 0000000..dc8bca0 --- /dev/null +++ b/_posts/2019-09-24-Marketplace-removed-from-iOS-app-5630a5c7d2e4.md @@ -0,0 +1,34 @@ +--- +layout: post +title: Marketplace removed from iOS app +date: 2019-09-24 09:27:00 +author: nuno +categories: [news, updates] +--- + +![](/uploads/blog/1__0AjNYIYaPUiDuS5OVtcS6g.png) + +Last week we got a call from an Apple employee. That call was about removing our “marketplace” feature. + +Apparently it is not permitted to have 3rd party not embedded code for payments in the Apple app store when presented in form of store or store-like interface. This is point [4.7 on the review guidelines](https://developer.apple.com/app-store/review/guidelines/) for the other teams this issue may concern. + +This is obviously terrible news 😢 + +Terrible news for all the indie devs that we are supporting, promoting, and sending traffic to. Now will have one less source of traffic to count on. + +And, it means Apple doesn’t have or provide a solution for wallets to work with lapps/dapps. Which, taking into consideration their monopoly, is something they should provide solutions on. It also reveals a lack of adaptation to new trends and making it difficult for innovation to happen in their eco-system. + +A wallet is, at the end-of-day, more like a browser or a gateway type of interface than a “wallet itself”. It is a way for users to interact with the Bitcoin network and with Bitcoin related services. Bitcoin is here to stay. Bitcoin won’t change. Apple should adapt and provide solutions for wallet developers to work with Bitcoin services. + +The “Marketplace” feature consists of two elements, a [Lightning and Bitcoin enabled services directory and a “Lapp Browser”](https://bluewallet.io/lapps), that interacts and understands Bitcoin features through protocols like the _WebLN_. + +For all the developers using Bluewallet Lapp browser, the Lapp Browser will still be available and can be easily _deeplinked_ to provide a better experience for direct send/receive. + +Example: +`lapp://openlappbrowser?url=your_urlencoded_link_here` + +We will think of something else and find new solutions. Any suggestion is very welcome. For now, we are extremely sad to announce that the Marketplace feature was removed from the iOS (not on android) version. + +Big thanks for all the support we have received. Keep the feedback and ideas coming. We will keep building! + +If you wanna hangout [here is our group](https://t.me/bluewallet). ✌️ \ No newline at end of file diff --git a/_posts/2019-11-26-November-updates---Price-extension--Onchain-refill-and-more-8b832423a050.md b/_posts/2019-11-26-November-updates---Price-extension--Onchain-refill-and-more-8b832423a050.md new file mode 100644 index 0000000..438afe2 --- /dev/null +++ b/_posts/2019-11-26-November-updates---Price-extension--Onchain-refill-and-more-8b832423a050.md @@ -0,0 +1,67 @@ +--- +layout: post +title: November updates — Price extension, Onchain refill and more +date: 2019-11-26 19:33:00 +author: nuno +categories: [news, updates] +--- + +We have been busy building, that’s a good way to be busy and we haven’t update the blog in awhile, so here it is, an update on the latest releases 😃 + +We’ve release to production versions 4.5.2, 4.6.0, 4.7.0, 4.7.1 and 4.8.0. These versions include minor new features, bug fixes and user experience improvements. Lots of polishing and small tweaks to make [bluewallet](https://bluewallet.io) more solid and a better free open source product for the community. + +![](/uploads/blog/1__KNs1nTrAooGXllARG1kizw.png) + +#### New features + +* Today Price Extension +* Quick Actions +* Send max option on advanced menu +* Onchain refill view for Lightning +* Amount and description to the success screen on Lightning +* Optional biometrics unlock +* Cryptoadvance HW wallet support (for BIP84) via PSBT and QR codes +* Default into wallet on launch +* Reintroduce the Lapp browser on iOS +* Better initial HD rescan +* New nemonic backup screen + +![](/uploads/blog/1__Y3NBaMKtXaWMvxx2YPI7__Q.png) + +#### Removed features + +With the feedback sometimes features got to go, which is fine. See you! 👋 + +* Auto brightness + +#### Fixed bugs + +A huge amount of bugs squashed, thanks to all the feedback and issues opened! + +* Allow textfield to be visible above keyboard +* Lapp browser when typing URL without https scheme +* Layout for small devices +* Don’t allow zero invoices to enable create invoice button +* Change create button on Receive LN payment should be create invoice +* Update for watch +* Electrum connection +* LApp marketplace address is now editable +* Single address watch-only wallet Receive button crash +* NaN when sending onchain +* Zero on send success screen +* Time shown for top-most transaction +* Issue with scanQrWif +* Typo on NL language +* Better wallet export QR readability +* RBF tx memo porting +* White screen on boot +* Lightning wallet was not shown on Watch app +* Crash on PSBT tx broadcast (when using with hardware wallet) + +**We are a small team of Bitcoin users trying to help on how to bring Bitcoin to the people and the people to Bitcoin, through beautifully crafted open source software. How can you help?** + +* Are you a developer? [Here is the place](https://github.com/BlueWallet/BlueWallet). +* Not a developer. Give us a review on the app stores, that helps immensely. Join our [beta access](https://testflight.apple.com/join/8KtgcwC6) and help us test and bug fix. Provide feedback. +* Are you a Bitcoin OG investor and you believe in what we are building? Drop me a line (n@bluewallet.io). + +Thank you for reading and any feedback, comments, thoughts and violent reactions, I’m all yours. See you around! \ No newline at end of file diff --git a/_posts/2019-12-02-Work-in-Progress---Building-a-Bitcoin-wallet-e81ca6db82d7.md b/_posts/2019-12-02-Work-in-Progress---Building-a-Bitcoin-wallet-e81ca6db82d7.md new file mode 100644 index 0000000..9cf947a --- /dev/null +++ b/_posts/2019-12-02-Work-in-Progress---Building-a-Bitcoin-wallet-e81ca6db82d7.md @@ -0,0 +1,88 @@ +--- +layout: post +title: Work in Progress — Building a Bitcoin wallet +date: 2019-12-02 08:27:00 +author: nuno +categories: [news, updates] +--- + +Olá! 👋 + +Thought it would be cool to share what people are working on at the [Bluewallet](https://bluewallet.io) project. + +Usually there’s not much visibility on open source projects, unless, of course, you are part of the mailing list, IRC channels or chat groups of the project. So a WIP (work in progress) Post seems like a nice idea. It’s a way to have the community aware, updated, and given a chance to say something. Best to have feelings and violent reactions shared now, than after something is done.😃 + +We will approach this as a “Now” and “Next. + +Now being what we are working on now and should be hitting production at any moment. + +Next being what we will be working on and will come sooner than later. + +### What’s coming up Now? + +#### Bech32 — Native SegWit as the default wallet + +![](/uploads/blog/1__JueZcC5e5L78fmq7Rop04A.png) + +Bluewallet [supports many address types](https://bluewallet.io/bitcoin-wallet/). During 2019, we invested most of our time improving and testing our Bech32 wallets. They are now a powerful open financial systems available to anyone for free. And here’s what you can do with them: + +* Full fee control +* Save up to 50% in fees +* Bump your transactions +* Cancel your transactions +* Batch multiple transactions + +It seems that the time has come, and as [Bitcoin Core](https://bitcoincore.org/) also made bech32 the default type on the latest release, there’s no reason for us to not do so as well. + +### What’s coming Next? + +#### BTCPay Server integration + +![](/uploads/blog/1__xCzKdweAJ__YNrvXwhkqfTw.png) +undefined + +[BTCPay](https://btcpayserver.org/) has become the Swiss Army knife of the Bitcoin tech stack. From developing applications, running nodes, to integrating with hardware wallets, etc. + +It seems obvious to us that bringing this eco-system to Bluewallet, where BTCPay users can have an open source native mobile app to interact with their applications, can be the cherry on top of the proverbial cake. + +It solves a real problem - where today, users have their wallets on web frontends, which is something not that secure to do. At the same time, we can work on a native experience to improve the User Experience for the end user, who are, in this case, the merchants and store payees. + +This opens interesting scenarios, where people would be able to hack cool things. For instance, it could be to explore NFC (Near Field Communication) solutions to develop open source cards/points-of-sale, and so much more on top of BTCPay and native mobile environments and everything they can bring. + +**How and where can you help or know more?** + +* [Mockups are here](https://sketch.cloud/s/p7ZQo/p/btcpay) +* [Views in Reach Native](https://drive.google.com/open?id=1z07eypjlFJOSR8yW1ot0ZuKBj-vzJDox) +* [Current dev branch](https://github.com/BlueWallet/BlueWallet/tree/btcpayserverui) +* [Github Bluewallet issue](https://github.com/BlueWallet/BlueWallet/issues/328) +* [Chat room on BTCPay](https://chat.btcpayserver.org/btcpayserver/channels/bluewallet-btcpay) + +![](/uploads/blog/1__WgPKeu2PHYkA4Jr0JnaThA.png) +undefined + +#### Hodl Hodl integration + +There’s this saying on the wallets world, “You either die a hero or you live long enough to become an exchange” 😆 + +Bluewallet doesn’t really want to be an exchange. So integrating with Hold Hodl, where they focus on the exchange technology, so Blue can just focus on the wallet technology, seems like the perfect plan. + +Only the future will tell, but I’m super excited about this one. P2P marketplaces definitely bring a lot of value and they are a huge escape tunnel from the regulated world. + +**Why Hodl Hodl?** + +No-KYC exchange, non-custodial, P2P transactions, kick-ass multi-sig tech, Lightning on exchanges pioneers, bad-ass group of people. Organizers of the arguably best Bitcoin conference :) + +Still at a very early stage, so this is what we can show at the moment. But pretty sure this one will blow many people’s minds. + +![](/uploads/blog/1__1UgOVs9myOAfURf8t3lrEg.png) +undefined![](/uploads/blog/1__o0uBYENEVmezDzSSZf1KBQ.png) +undefined + +**We are a small team of Bitcoin users trying to help on bringing Bitcoin to the people and the people to Bitcoin — through beautifully crafted open source software.** + +* Are you a user? Give us a review on the app stores. That helps immensely. +* Join our [beta access](https://testflight.apple.com/join/8KtgcwC6) and help us test and bug fix. Provide feedback. +* Are you a developer? [Here is the place](https://github.com/BlueWallet/BlueWallet). +* Are you a Bitcoin OG investor and you believe in what we are building? Drop me a line (n@bluewallet.io). + +Thank you for reading and any feedback, comments, thoughts and violent reactions, I’m all yours. See you around! \ No newline at end of file diff --git a/_posts/2019-12-25-Preparing-for-war---how-was-2019-and-a-glimpse-of-the-future-72637ffe58eb.md b/_posts/2019-12-25-Preparing-for-war---how-was-2019-and-a-glimpse-of-the-future-72637ffe58eb.md new file mode 100644 index 0000000..8bd4810 --- /dev/null +++ b/_posts/2019-12-25-Preparing-for-war---how-was-2019-and-a-glimpse-of-the-future-72637ffe58eb.md @@ -0,0 +1,75 @@ +--- +title: Preparing for war — how was 2019 and a glimpse of the future +description: 2019 was a great year for BlueWallet. Although it is a new wallet and still in its infancy, we did get some some media coverage, we did… +layout: post +date: 2019-12-25 08:27:00 +author: igor +categories: [news, updates] +--- + +**Preparing for war — how was 2019 and a glimpse of the future** + +2019 was a great year for BlueWallet. Although it is a new wallet and still in its infancy, we did get some some [media coverage](https://www.coindesk.com/bitcoins-lightning-comes-to-apple-smartwatches-with-new-app), we did get some [recognition from industry experts](https://docs.google.com/spreadsheets/d/1aZ1zbaUEzCo9NCctN8-eL2VLIiSdY009tTJvRXDUWEw/edit#gid=0) and we did get [some users](https://t.me/bluewallet) to remind us how much we suck and how much better it can still be. All that, working on the project on our free time in a pure open source fashion. + +This year blew away our wildest expectations on what we thought we could achieve. To give you a bit of perspective, at this time last year we were releasing the android version of the app and our Lightning wallets feature right before Christmas. And probably, at that time, most of you hadn’t really heard about Blue. + +Talking about Lightning. While the Lightning Network slowly matures, and after doing our part to put it on the spotlight and bringing the attention it actually deserved. We decided to take a step back and work on the layer that really matters. The base layer. + +In the core, BlueWallet is (and always was) a non-custodial on-chain [bitcoin wallet](https://bluewallet.io), born out of the frustration and ashes of the 2017 Bull market. When fees were high and the majority of wallets still had not implemented segwit and flexible fees. Paying $20 in fees for a transaction because your wallet’s fee estimation was broken? That was a real deal back then. + +The very first release of BlueWallet fixed exactly that: segwit, flexible fees (starting from 1 sat/byte), and RBF (replace-by-fee). + +During the next cycle of adoption (this is how I like to call the bull-run) I expect to see exactly the same thing we saw in 2017: with that many people discovering the advantages of Bitcoin and making their first happy transactions. The block space will again be an extremely scarce commodity. + +After another block reward halving, a more mature fee market will develop, and we will witness a natural competition for block space. This is why I think it is important to prepare for that in advance: your bitcoin wallet app (as a customer-facing software) should be the one to act in your best interests, trying to save as much pennies on transactions as possible and, at the same time, give you the full control you need and should have. + +In preparation for that, at BlueWallet we implemented: + +* **CPFP — Bump transaction** (child-pays-for-parent) — a technique that allows you to spend incoming transaction that is unconfirmed by sending it to your another address, but with the total fees higher than the original transaction. This helps if it takes forever for your incoming transaction to confirm on the blockchain. +* **RBF — Bump transaction** (replace-by-fee) — if you sent a transaction and it’s still unconfirmed you can replace it with the one with higher fees, making it more attractive for miners to mine, thus, speeding up the confirmation. +* **RBF — Cancel transaction** — a technique similar to regular RBF, but where the replacement transaction’s output is the address you control, thus, paying yourself, effectively cancelling the transaction. +* **Batch send** — when creating a transaction add as many payees as you want. This helps to save on fees when having to pay multiple destinations. Making a nice UI/UX on this one was a challenge. +* **Flexible fees** (starting from 1 sat per byte) and fee recommendations fetched from a real up-to-date bitcoin node. +* Finally, [from now on, we are **promoting BIP84 Native SegWit wallets as the default wallet**](https://twitter.com/bluewalletio/status/1207311114209497089) when users create a new wallet. We were warned and actually advised against that, as that triggers a stream of complaints from users who can’t withdraw coins from exchanges because exchanges still don’t recognize ‘bc1……’ addresses. But it’s time. Really. Users should take their complaints to obsolete exchanges. Native segwit will allow saving on fees even more. + +I like to repeat that **BlueWallet is preparing for war**, and this war will be for block space. Once another billion of Earth inhabitants realize the benefits of hard, censorship-resistant and non-confiscatable money. + +If this is the kind of fight you want to be part of, protecting the Bitcoin user interests over miners and corporate players, [**you know where to go**](https://github.com/BlueWallet/BlueWallet). And you are much welcomed! + +![](img/0__wzOrnxP3ajASE1jK.jpg) + +That was not the only features we were busy with. Among many, some **new and also remarkable features**: + +* Connect to your own Bitcoin Node through Electrum server for maximum self-sovereignty, no SPVs, full node fashion. +* Watch-only ZPUB wallets. Just scan the QR code with a ZPUB or input a ZPUB into the text field directly. XPUB and YPUB are supported as well. +* With recent transition to PSBT under the hood, we added a workflow to have your transaction signed on your hardware wallet in a pure air-gapped fashion. Just mark your watch-only ZPUB wallet as working with an external HW wallet, then create a transaction and feed the QR code with the unsigned PSBT to your hardware wallet. Sign it on hardware wallet, scan it back to BlueWallet and broadcast it to the network. You have just conveniently made a transaction on your mobile device, while keeping your private keys on a secure hardware wallet, truly air-gapped! This is still in beta and only the [CryptoAdvance device is 100% supported](https://twitter.com/StepanSnigirev/status/1209426608949465088), but we will work on testing and polishing the integration with other hardware wallets. + +We still have a lot of work to do: + +* Ongoing integration with HodlHodl. Non-custodial fiat-to-btc trading is an important bitcoin infrastructure project. It’s a hedge against all regulated exchanges going bad with AML/KYC. +* When LND will be stable enough we will include it as part of the wallet, allowing users to switch their lightning wallets into non-custodial mode, and gradually make it the default mode. But custodial lightning brought some unexpected benefits, such as practically unlimited incoming capacity, instant on, zero onchain footprint. It makes sense to maintain both and explore possible synergies here. +* Multisig wallets are hard to tackle, mostly UI/UX wise. A proper joining ceremony is a hard task to design. The ceremony of creating a transaction and inviting all participants to sign it, can also be a challenge. +* To reach maximum security, it makes sense to use only multisig wallets with all keys residing on your own devices, preferably hardware wallets from different manufacturers. Designing, implementing and testing this flow is not easy. +* Sign message with your wallet/verify. I strongly feel that your private keys should help you with authentication on 3rd-party services, but what’s the proper way to do that we do not know, yet. +* Provide-UTXO — when creating a transaction, supply UTXO to use in form of JSON document. This allows using the wallet on a completely offline/air-gapped device, provided you carry with you your up-to-date UTXO set. Then you sign it, broadcast via SMS/pigeons/whatever and congrats! You can transact even from a desert island. +* Choose UTXO / UTXO spend strategies — when creating a transaction, choose which UTXO (or UTXO strategy) you want to use. For example, you could strive for the smallest fees (use higher-value outputs first), optimize for amounts used (sum of input amounts are close to total output amounts — might produce dust output), or you could consolidate (use all available inputs — yes this completely destroys privacy but helps to prepare for a period of high fees) etc. +* Coinjoin — a proper coins mix service with other peers is tricky, but we might attempt it. +* RBF-Service. A trustless server that broadcasts your replacement transactions with higher fees if previous transaction wasn’t confirmed in a timeframe you specified. You can start with 1 sat/byte transaction and gradually increase fee until it’s confirmed in a reasonable time (with the smallest fee possible). Automatically. This is only an idea at the moment. +* NFC. Users will be able to ‘tap-to-share’ their receive address to other users, and other NFC-capable devices. This will eliminate the requirement for users to have to fiddle with their device’s display brightness, and having to move around their camera view in order to scan a QR Code. This feature will also be useful for our upcoming BTCPayServer integration. +* Push notifications have been set aside for too long, but they will be eventually done. + +And some [other more experimental consumer ideas](https://medium.com/bluewallet/work-in-progress-building-a-bitcoin-wallet-e81ca6db82d7) that we are already sharing with the community and putting it out there. The list doesn’t end there, but one needs to keep some secrets as well :) Feel free to bring your ideas on! + +Just some statistics of the year: + +* **32 production releases** +* **738 commits** +* **27 contributors** + +A special thanks to all the contributors, you guys rock! 🤘 + +To summarize, we are preparing for war! It will be a war about block space, it will be a war about providing the users with the right tools to fight against corporate interests trying to take advantage of Bitcoin. Join us, we promise it won’t be a boring one! + +[https://github.com/bluewallet/bluewallet](https://github.com/blueWallet/blueWallet) + +Cheers! \ No newline at end of file diff --git a/_posts/2020-05-07-v5-3-5---SendMax-on-all-wallets-9f5566d51a09.md b/_posts/2020-05-07-v5-3-5---SendMax-on-all-wallets-9f5566d51a09.md new file mode 100644 index 0000000..bc032b6 --- /dev/null +++ b/_posts/2020-05-07-v5-3-5---SendMax-on-all-wallets-9f5566d51a09.md @@ -0,0 +1,58 @@ +--- +layout: post +title: v5.3.5 — SendMax on all wallets +date: 2020-05-07 12:44:00 +author: nuno +categories: [news, updates] +--- + +Version 5.3.5 of [BlueWallet Bitcoin wallet](https://bluewallet.io) is out on iOS and android. And, as usual is full of improvements and bug fixes. Let’s take a closer look on them. + +This version includes a major refactor on all wallet types. With **PSBT**, **Send** and **SendMax** features added to **all wallets**. Includes Bread wallet type, allowing easy import to BlueWallet. + +![](/uploads/blog/1__I6D9MS__xv7ZLI4vNs7kiqw.gif) +undefined + +Users can now Sell FIAT and easily Buy Bitcoin directly in the wallet, through [@MoonPayHQ](https://twitter.com/MoonPayHQ) in the US and EU. And [@XanpoolOfficial](https://twitter.com/XanpoolOfficial) in Southeast Asia. + +![](/uploads/blog/1__WVW3JvNUl77gU5Z0ZdsHBA.jpeg) + +**Broadcast a transaction** feature is now available from the Settings > Network > Broadcast. Or from your Wallet details. + +![](/uploads/blog/1__QIJKuz8hp7k9U1y__qT0MLw.jpeg) +undefined + +The **Local Trader**, a p2p marketplace, is now available from the main screen, making it easier to find it and to access it :) + +![](/uploads/blog/1__Qo8UrKdO0ALiZmHdzHswrg.png) +undefined + +### Changelog + +#### NEW + +* Import BIP38 (key+passphrase) +* Support for Electrum Seed format, legacy BIP32 +* Send functionality for all wallet types (includes Bread wallets) +* All wallet types can now “send MAX” +* Allow to Sell Fiat through Moonpay and Xanpool +* Refill lightning wallet with bank card +* Local Trader moved to the Main screen +* Broadcast transaction screen + +#### FIXED + +* Hide toolbar when keyboard is dismissed +* Keyboard avoiding on small screens +* Import on Toolbar touch +* Move the sell fiat button to the list header +* Cleaner Add wallet panel at empty state +* iOS widget not working on some countries +* Negative confirmation num for electrum personal server + +**If you like what we are doing, please consider leaving us a review on the app stores.** It helps immensely our work and it takes less than 10s to do :) + +iOS: [http://apple.co/2QwnLzw](https://t.co/5jcCtYZiyC?amp=1 "http://apple.co/2QwnLzw")  +android: [http://bit.ly/2XjBEnm](https://t.co/fUA6dVjtNw?amp=1 "http://bit.ly/2XjBEnm") + +Backup your keys. Keep Building! 💙 👊 \ No newline at end of file diff --git a/_posts/2020-08-04-v5-5-2----Ground-Control-87073ed44910.md b/_posts/2020-08-04-v5-5-2----Ground-Control-87073ed44910.md new file mode 100644 index 0000000..0c2ad42 --- /dev/null +++ b/_posts/2020-08-04-v5-5-2----Ground-Control-87073ed44910.md @@ -0,0 +1,68 @@ +--- +layout: post +title: v5.5.2 - Ground Control +date: 2020-08-04 08:27:00 +author: nuno +categories: [news, updates] +--- + +![](/uploads/blog/1__5cl6lecKsZgz__OReOGjRHA.jpeg) + +To Major Tom + +Today we are releasing BlueWallet v5.5.2 and it brings 2 features that I would like to introduce and give a little walk through. + +### 1\. Push notifications + +To make push notifications possible we develop a new Free and Open Source service called “Ground Control”. + +Ground Control is a **notifications center for Bitcoin wallets**, that you will be able to run in a self-hosted fashion to not be depend on BlueWallet’s server. + +![](/uploads/blog/1__tB0Qeaq7acgTyJmz2PA6Sg.png) + +It supports Bitcoin and LNDhub, receive transactions, pending and confirmed onchain transactions. It processes blocks and a mempool in search of subscribed onchain addresses in order to provide notifications for users. Built with typescript, expressjs, mariadb & [openapi](https://editor.swagger.io/?url=https://raw.githubusercontent.com/BlueWallet/GroundControl/master/openapi.yaml). + +You can also easily setup your own Ground Control server, and have a more privacy-aware push notifications setup. + +See more here: +[https://github.com/BlueWallet/GroundControl](https://github.com/BlueWallet/GroundControl) + +![](/uploads/blog/1__LlOcKZ9XbM4d8ULehbImLg.png) + +### 2\. LNurl-pay + +Services that support LNurl-Pay (like [@bitrefill](http://twitter.com/bitrefill "Twitter profile for @bitrefill")) allow you to pay or easily repeat a payment without you having to open this service or ask to generate an invoice. Think about it as a UX improvement for Lightning. + +![](/uploads/blog/1__u1WsNSvvtB4HBiSVNwGlVQ.gif) + +LNurl-Pay can have some interesting use cases in the future, and going towards a more mobile-friendly type of interaction. For instance: + +* Donation sites +* Restaurant menus +* Pricing tags in market shelves +* Bike/scooter-sharing services and other indie stuff +* Any site that wants to accept payments + +#### Changelog v5.5.2 + +ADD: push notifications +ADD: lnurl-pay support +ADD: HodlHodl logout button +ADD: Keychain clear if password is lost +ADD: screen/wallets/details transactions count +FIX: crashes after importing malformed xpub as watch-only +FIX: Restore Change unit on balance tap +FIX: When doing max amount, some scenarios would return invalid amount +FIX: missing text on sendMAX dialog box confirmation +FIX: Invoice creation darkmode +FIX: Font-Color in Input Field “transaction notes” + +Keep building! 💙 👊 + +**We are a Bitcoin collective trying to help on how to bring Bitcoin to the people and the people to Bitcoin, through beautifully crafted open source software. How can you help?** + +* Are you a developer? [Here is the place](https://github.com/BlueWallet/BlueWallet). +* Not a developer. Give us a review on the app stores, that helps immensely. Join our [beta access](https://testflight.apple.com/join/8KtgcwC6) and help us test and bug fix. Provide feedback. +* Are you a Bitcoin OG and you believe in what we are building? Drop me a line (n@bluewallet.io). + +Thank you for reading and any feedback, comments, thoughts and violent reactions, I’m all yours. See you around! \ No newline at end of file diff --git a/_posts/2020-08-28-Bitcoin-Wallet-for-Desktop---v5-5-6-4f2172406155.md b/_posts/2020-08-28-Bitcoin-Wallet-for-Desktop---v5-5-6-4f2172406155.md new file mode 100644 index 0000000..2c00afe --- /dev/null +++ b/_posts/2020-08-28-Bitcoin-Wallet-for-Desktop---v5-5-6-4f2172406155.md @@ -0,0 +1,54 @@ +--- +layout: post +title: Bitcoin Wallet for Desktop - v5.5.6 +date: 2020-08-28 08:52:00 +author: nuno +categories: [news, updates] +--- + + +![](/uploads/blog/1__ylHJ4Hf5by83gH6JS5HGFA.png) + +BlueWallet for Desktop is out on the mac store  + +This is the first [Bitcoin-only wallet](https://bluewallet.io) available on the mac store for millions of users. And, a huge effort from the team to bring to the Bitcoin community our first desktop product. + +#### [Check it out here](https://bluewallet.io/desktop-bitcoin-wallet/) + +It is kind of a big deal. With a desktop product, we can start to think about things mobile doesn’t really allow us to do, like shipping a wallet with a full bitcoin node, and all the privacy gains that comes with it. Which I bet some of you will appreciate. + +For now it is only available for macOS, but we expect to increase the compatibility with other platforms as we go. + +#### **Let’s see what we can do from start with it, shall we.** + +**HWW integration** Easily connect to your hardware wallet through watch-only and PSBTs support. + +**Plausible Deniability** Create multiple storages or fake ones in case of a forced disclosure. + +**Multiple Wallets** Support for different wallet types. Like Bip84/49/44, electrum, legacy, etc. + +![](/uploads/blog/1__OWQvkS45QPso6l8X8FVIPQ.png) + + +**Full node** Full node connection through ElectrumX, Electrs or Electrum Personal Server. + +**Transactions control** Easily Batch, Bump or Cancel transactions. With RBF and CPFP. + +**Notifications** With push notifications for pending and confirmed transactions. + +![](/uploads/blog/1__pdu00hpS1hRgjpHcnBfycg.png) + + +And [many other features](https://bluewallet.io/features/) available right from the start. + +Give it a try, send feedback. Let’s build the revolution together :) + +**We are a Bitcoin collective of developers and designers trying to help on how to bring Bitcoin to the people and the people to Bitcoin. Through beautifully crafted open source software.** + +**How can you help?** + +* Are you a developer? [Here is the place](https://github.com/BlueWallet/BlueWallet). +* Not a developer. Give us a review on the app stores, that helps immensely. Join our [beta access](https://testflight.apple.com/join/8KtgcwC6) and help us test and bug fix. Provide feedback. +* Are you a Bitcoin OG or investor and you believe in what we are building? Drop me a line (n@bluewallet.io). + +Thank you for reading and any feedback, comments, thoughts and violent reactions, I’m all yours. See you around! \ No newline at end of file diff --git a/_posts/2020-12-20-introducing-local-trader-—-v5-2-0.md b/_posts/2020-12-20-introducing-local-trader-—-v5-2-0.md new file mode 100644 index 0000000..9daeb93 --- /dev/null +++ b/_posts/2020-12-20-introducing-local-trader-—-v5-2-0.md @@ -0,0 +1,76 @@ +--- +layout: post +title: Introducing Local Trader — v5.2.0 +date: 2020-04-03 18:29:44 +author: nuno +categories: [news, updates] +--- +Version 5.2.0 is out and it introduces some cool new features and a new Product. Let’s take a look shall we. + +Finally we provide support for TLS with ElectrumX (other implementations will be available on the next release) after many requests. Users running Electrum Servers probably know what this means. But essentially more security and privacy for this users using the [Bitcoin wallet](https://bluewallet.io/). + +![](/uploads/blog/1_PLxkIoqqPaOh9ppT9_sKmg.jpeg) + +Remove password was introduced. It is advise that you encrypt your storage, but many new users that probably don’t need encryption at the beginning, were activating this feature by mistake and with that, having to type a password every time they access the app. Now, if you want to remove this password you can do it easily through the interface. + +Also take in consideration that if you have multiple storages and remove the encryption, these secondary storages will be removed as well. + +![](/uploads/blog/1_A7Xl06wiAKH6WOpASX41MA.jpeg) + +Another Security feature for iOS is also included, where you can define if your storage should be delete or not if you remove the app. Useful if for some reason you just need to delete the app, now you can keep your encrypted storage for a later instal. + +# Introducing Local Trader + +As a bonus, this version also includes the release of our new product, that for now we are going to call “Local Trader”. + +Local Trader will be a p2p non-custodial and non-KYC trade platform. It is powered by [Hodl Hodl](https://hodlhodl.com/) and this is an alpha release with limited features. + +Why is this product relevant? Well, for different reasons. + +Mainly because it will provide mobile, non-KYC, private trades between individuals — which is important now in this world where it is more and more difficult to acquire/trade Bitcoin without attaching or giving away your private information. + +We need more freedom tech and less fin(ance) tech. And we are going in the freedom tech direction. Hope you can join us! + +The first release of Local Trader includes: + +- Search for offers +- Filter by country +- Filter by offer type +- Filter by payment option +- Filter by currency + +More goodies on this soon! 🤯 + +
+ +
+ + +Local Trader on BlueWallet + +If you are curious why would we release something with limited features. The goal is to put product out there, get feedback and see which direction this product can take based on what the users have to say. Instead of spending months and months of development in secret like other projects, we like to iterate fast, get feedback faster and let the users define the product. So take a look, try it out and [tell us what do you think](https://t.me/bluewallet). + +**v5.2.0 Changelog** + +New +- Local Trader (v.Alpha, Powered by [@hodlhodl](http://twitter.com/hodlhodl)) +- Support for TLS with ElectrumX (SSL connection) +- Remove password (Decrypt/Unmount Storage) +- Delete storage or not (iOS) +- UAH Local currency + +Fixed +- Allow use of Today extension on iOS 10 +- Redesigned General Settings +- Electrum (re)connection improvements + +APK available on GitHub releases as usual. If you don’t have access to the play store this is where you should go. + + + +- iOS:  +- android:  + +Stay safe out there. Backup your keys! 💙 + +Keep Building! \ No newline at end of file diff --git a/_posts/2020-12-20-v5-0-0-—-coldcard-wallet-support.md b/_posts/2020-12-20-v5-0-0-—-coldcard-wallet-support.md new file mode 100644 index 0000000..e70805f --- /dev/null +++ b/_posts/2020-12-20-v5-0-0-—-coldcard-wallet-support.md @@ -0,0 +1,53 @@ +--- +layout: post +title: v5.0.0 — Coldcard wallet support +date: 2020-03-02 18:28:04 +author: nuno +categories: [news, updates] +--- + + +Olá! 👋 + +I’m super excited for this one. It is a massive effort, and the result of many months of iterations to bring [Coldcard](https://coldcardwallet.com/) support to Blue. Thanks to all contributors that brought to the app PSBT support ([junderw](https://twitter.com/junderwood4649)), Hardware wallets support ([StepanSnigirev](https://twitter.com/StepanSnigirev)) and the Coldcard integration ([overtorment](https://twitter.com/overtorment)/[marcosrdz](https://twitter.com/marcosrdz)), you guys rock! + +## Changelog + +* ADD: Coldcard support +* ADD: Import/Export transactions(txn files) for future broadcast +* FIX: Allow capitalized bech32 addresses (closes #838) +* FIX: lnurl scan to receive is not returning the correct view (closes #828) +* FIX: Watch-only delete wallet doesn’t have confirmation now +* FIX: Typo in spanish + + +![](/uploads/blog/1_qimXeoqtnjceQQtxpyrSgA.png) + +# How to use Coldcard with Bluewallet + +Let’s have a look on how to use PSBT, watch-only wallets. And how to send transactions offline with your Coldcard and Bluewallet. + +
+ +
+ +Bluewallet Bitcoin wallet + Coldcard Coldstorage + +1. Start the Coldcard device, go to Advanced → MicroSD Card → Export Wallet → Electrum Wallet. Put the SD card into Coldcard. Choose Native Segwit. It should create wallet skeleton file on SD card. +2. Put the SD card into the PC and move the created wallet skeleton file onto the Dropbox folder. +3. Grab the iPhone, launch BlueWallet, tap Create a wallet → Import wallet → scan QR or import from file → tap file icon and choose your wallet skeleton file. It should import your Coldcard wallet as watch-only. +4. Create a transaction from this watch-only wallet, when prompted — export it to a file and save it in Dropbox folder. +5. Put the SD card back into the PC, and move the transaction file from Dropbox folder to the SD card. +6. Put the SD card into the Coldcard, go to Ready To Sign and proceed with signing the transaction. +7. Put the SD card into the PC. There should be 2 new files: a file with tge transaction hex that is ready to broadcast (\*-final.txn), and a signed transaction file (\*-signed.psbt). Let us finish the transaction on iPhone, so move signed transaction file to Dropbox. +8. On the iPhone, tap Open Signed Transaction, and choose the signed transaction file from your Dropbox. Tap Send now! + +Try it out! 👊 + +*PS: Take in consideration that we used dropbox on this example, but anything will work, File system, iCloud, Bluetooth, AirDrop, box.com, direct lightning to sd card adapter, etc* + +That’s all for today. Reach out for any doubts, questions, feelings and violent reactions! + +* website:  +* Github:  +* Telegram:  \ No newline at end of file diff --git a/_posts/2020-12-20-v5-5-0-—-buy-bitcoin-without-kyc-cobo-vault-support.md b/_posts/2020-12-20-v5-5-0-—-buy-bitcoin-without-kyc-cobo-vault-support.md new file mode 100644 index 0000000..f33455c --- /dev/null +++ b/_posts/2020-12-20-v5-5-0-—-buy-bitcoin-without-kyc-cobo-vault-support.md @@ -0,0 +1,52 @@ +--- +layout: post +title: v5.5.0 — Buy Bitcoin without KYC, Cobo Vault support +date: 2020-07-13 18:31:12 +author: nuno +categories: [news, updates] +--- +Our last update was in May, and ho boy! We have been busy. On the latest versions a lot of improvements were introduced, most notable the option to Buy Bitcoin from the Local Trader, a p2p marketplace. And, Cobo Vault support, with QR codes, air-gapped PSBTs, one of the first of its kind. Let’s take a closer look on the latest developments and updates. There’s a lot to tell :) + +## Cobo Vault support with QR codes PSBTs + +Introduced on the version 5.4.4, PSBTs (partially signed bitcoin transactions) with QR codes, this is the first implementation of [BCR-UR (animated QR codes)](https://github.com/BlockchainCommons/Research/blob/master/papers/bcr-2020-005-ur.md) between software & hardware wallets. + +A nice contribution and collaboration with the [Cobo Vault team](https://cobo.com/hardware-wallet). Thank you! + +
+ +
+ + +## Buy Bitcoin on Local Trader + +v5.4.3 features the ability to buy on the “Local Trader”. A p2p marketplace where you control your funds. You can now login (w/[@hodlhodl](https://hodlhodl.com/)), view offers, view contracts and accept offers. More info on the [Local Trader](https://bluewallet.io/local-trader/) + +![](/uploads/blog/1_p9jWuLeYrjaAk72lj8_0_A.png) + +## Input local currency + +We struggle to add this feature, but the requests won’t stop coming, and it is understandable. I hope this will help more than it will cause any problems related to exchange rates, price volatility, etc.\ +We are going to keep a look on its evolution closely. + +## Camera/Scan on the main screen + +There’s now a fast access button from the main screen to access the camera directly. This can be use for different purposes, like, to scan a QR code, to make a payment, to receive a payment, to withdraw a [Azte.co voucher](http://azte.co/), etc. + +## Entropy via coins and dice roll + +version 5.4.4 also introduces a new advanced feature for the more advanced users out there that don’t want to trust BlueWallet entropy generation. Entropy for wallet generation with Coins and Dices. Have fun! :) + +## Support for Electrum wallet seeds + +You can *now easily import your Electrum generated wallets to BlueWallet with ease.* + +These are the notable changes, a lot more fixes and improvements were made under the hood. The summer is here, and we are not stopping, more goodies to come, more innovations to be released. [Follow us on twitter](https://twitter.com/bluewalletio) to keep an eye on it. + +**We are a small team of Bitcoin users trying to help on how to bring Bitcoin to the people and the people to Bitcoin, through beautifully crafted open source software. How can you help?** + +* Are you a developer? [Here is the place](https://github.com/BlueWallet/BlueWallet). +* Not a developer. Give us a review on the app stores, that helps immensely. Join our [beta access](https://testflight.apple.com/join/8KtgcwC6) and help us test and bug fix. Provide feedback. +* Are you a Bitcoin OG investor and you believe in what we are building? Drop me a line (n@bluewallet.io). + +Thank you for reading and any feedback, comments, thoughts and violent reactions, I’m all yours. See you around! \ No newline at end of file diff --git a/_sass/.DS_Store b/_sass/.DS_Store new file mode 100644 index 0000000..937d75c Binary files /dev/null and b/_sass/.DS_Store differ diff --git a/_sass/main.scss b/_sass/main.scss new file mode 100644 index 0000000..9e6b85f --- /dev/null +++ b/_sass/main.scss @@ -0,0 +1,12 @@ +@charset "utf-8"; + +@import + "partials/fonts", + "partials/variables", + "partials/mixins", + "partials/normalize", + "partials/utilities", + "partials/typography", + "partials/app" +; + diff --git a/_sass/partials/_app.scss b/_sass/partials/_app.scss new file mode 100644 index 0000000..ca8d781 --- /dev/null +++ b/_sass/partials/_app.scss @@ -0,0 +1,183 @@ +// Main Styles + +// See the other SASS partials for typography, variables etc. +// CSS Grid is used for the layout with fallbacks for less capable browsers +// declared beforehand, and a @supports feature query to reset fallbacks when +// necessary. https://rachelandrew.co.uk/css/cheatsheets/grid-fallbacks + +// the body element is our primary layout grid + +body { + height: 100vh; + display: grid; + grid-template-rows: auto 1fr auto; + grid-template-columns: + [full-start] minmax(1rem, 1fr) + [main-start] minmax(0, 52rem) [main-end] + minmax(1rem, 1fr) [full-end]; +} + +// by default, make any new children of body to span the full track +body > * { + grid-column: full; + padding: 2rem 1rem; +} + +// header, the first grid row +// it is also a grid for the logo and nav +header { + grid-column: full; + display: grid; + background-color: $brand-color; + padding: 2rem; + @media screen and (min-width: $screen-sm-min) { + grid-template-columns: 1fr auto; + grid-column-gap: 1rem; + } +} + +// logo, is a grid item +header > h1 { + display: inline-block; + padding-bottom: 1rem; + @media screen and (min-width: $screen-sm-min) { + padding-bottom: 0; + } + a, + a:visited { + text-decoration: none; + border: 0; + color: white; + @media screen and (min-width: $screen-sm-min) { + padding: 1rem; + } + } + a:hover { + color: white; + } +} + +// main menu, is a grid item +header > nav { + @media screen and (min-width: $screen-sm-min) { + float: right; + } + ul { + // flexbox is better than grid for distributing an unknown qty of children + display: flex; + li { + margin-right: 2rem; + display: inline-block; + @media screen and (min-width: $screen-sm-min) { + margin-right: 0; + } + a, + a:visited { + color: white; + text-decoration: none; + border: 0; + @media screen and (min-width: $screen-sm-min) { + padding: 1rem; + } + &[data-current="current page"] { + // you can add an active nav item style here + } + } + a:hover { + color: white; + } + } + } +} + +// our main content wrapper, the width scales with font size +main { + width: 100%; + max-width: 52rem; + margin-right: auto; + margin-left: auto; + grid-column: main; + display: grid; + padding-top: 8rem; + padding-bottom: 8rem; + @media screen and (min-width: $screen-md-min) { + align-content: start; + } +} + +// reset breaking fallbacks (e.g. widths) if CSS Grid is supported +// float, inline-block, table properties are already ignored by CSS Grid +@supports (display: grid) { + main { + width: auto; + max-width: none; + } +} + +// blog posts list +html[data-current="blog"] main > section { + ul li { + padding: 2rem 0; + border-bottom: 0.05em solid $hairline-color; + p { + padding-bottom: 0; + } + } +} + +// adjacent blog posts links +nav[aria-label="Adjacent Posts"] { + padding: 4rem 0; + ul { + display: flex; + li { + flex: 0 0 50%; + width: auto; + &:nth-child(2) { + text-align: right; + } + } + } +} + +// contact form +html[data-current="contact"] main > form { + display: grid; + label { + display: none; + } + input, + textarea { + width: 100%; + padding: 1rem; + margin-bottom: 2rem; + } + button { + width: 100%; + } +} + +// reset CSS Grid fallbacks when they aren't required +@supports (display: grid) { + html[data-current="contact"] main > form { + input, + textarea, + button { + width: auto; + max-width: none; + } + } +} + +footer { + grid-column: full; + display: grid; + grid-template-columns: + [full-start] minmax(1rem, 1fr) + [main-start] minmax(0, 50rem) [main-end] + minmax(1rem, 1fr) [full-end]; + background-color: $grey-bg-color; + > small { + grid-column: main; + } +} diff --git a/_sass/partials/_fonts.scss b/_sass/partials/_fonts.scss new file mode 100644 index 0000000..73a9826 --- /dev/null +++ b/_sass/partials/_fonts.scss @@ -0,0 +1 @@ +// add font-face or font import declarations here diff --git a/_sass/partials/_mixins.scss b/_sass/partials/_mixins.scss new file mode 100644 index 0000000..9ce24e8 --- /dev/null +++ b/_sass/partials/_mixins.scss @@ -0,0 +1,19 @@ +// List your mixins in here to keep things tidy + +// A basic button +@mixin button($btn-bg, $btn-text) { + font-weight: $bold-font-weight; + padding: 2rem; + line-height: $base-line-height; + color: $btn-text; + background-color: $btn-bg; + border: 3px solid $btn-bg; +} + +// Disable text selection +@mixin user-select($argument: none){ + -webkit-user-select: $argument; + -moz-user-select: $argument; + -ms-user-select: $argument; + user-select: $argument; +} diff --git a/_sass/partials/_normalize.scss b/_sass/partials/_normalize.scss new file mode 100644 index 0000000..ecd9cef --- /dev/null +++ b/_sass/partials/_normalize.scss @@ -0,0 +1,426 @@ +/** + * 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, +picture, +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 { + -webkit-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"] { + -webkit-box-sizing: border-box; + 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-adjust-hue-button, +input[type="number"]::-webkit-outer-adjust-hue-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 */ + -webkit-box-sizing: content-box; + 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/_sass/partials/_typography.scss b/_sass/partials/_typography.scss new file mode 100644 index 0000000..191c421 --- /dev/null +++ b/_sass/partials/_typography.scss @@ -0,0 +1,97 @@ +// Basic Typographic Defaults + +// set font sizes in percent on the root element + +html { + font-size: $base-font-size; + @media screen and (min-width: $screen-xs-min) { + font-size: $base-font-size * 1.2; + } + @media screen and (min-width: $screen-md-min) { + font-size: $base-font-size * 1.4; + } +} + +// now we can specify a single font size in rem for each of our elements +// the root breakpoints above will then scale all elements together + +body { + color: $text-color; + font-family: $base-font; + line-height: $base-line-height; + font-weight: $base-font-weight; + font-style: normal; + font-variant: normal; + font-size: 1.6rem; // this is equivalent to 16px +} + +h1,h2,h3,h4,h5,h6,p,figure,time { + padding-bottom: 2rem; +} + +h1,h2,h3,h4,h5,h6,figure { + p + &, + figure + & { + padding-top: 2rem; + } +} + + +p.intro { + font-size: 2.4rem; + color: lighten($text-color, 40%); + padding-bottom: 4rem; + @media screen and (min-width: $screen-sm-min) { + padding-bottom: 4rem; + } +} + +h1,h2,h3,h4,h5,h6 { + font-weight: $bold-font-weight; + line-height: $base-line-height / 1.3; +} + +h2 { + font-size: 3.2rem; + padding-bottom: 4rem; +} + +h3 { + font-size: 2rem; +} + +code { + font-family: $code-font; + font-size: 1.2rem; + color: $text-color; +} + +strong { + font-weight: $bold-font-weight; +} + +small { + font-size: 1.2rem; +} + +a, +a:visited { + border-bottom: 0.05em solid $link-color; + text-decoration: none; + color: $link-color; +} + +a:hover, +a:active { + text-decoration: none; + border: 0; + color: $link-hover-color; +} + +header > h1 { + line-height: $base-line-height; + font-weight: $base-font-weight; + @media screen and (min-width: $screen-sm-min) { + text-align: left; + } +} diff --git a/_sass/partials/_utilities.scss b/_sass/partials/_utilities.scss new file mode 100644 index 0000000..da8cc1b --- /dev/null +++ b/_sass/partials/_utilities.scss @@ -0,0 +1,97 @@ +// utilities for modifying some default browser behaviour + +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, button, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} + +* { + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +* :before, * :after { + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +input, +textarea, +button, +select, +label, +a { + -webkit-tap-highlight-color: rgba(0,0,0,0); + outline: none; +} + +ul, +ol, +dl { + list-style: none; +} + +em { + font-style: italic; +} + +body { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +img { + display: block; + width: 100%; + max-width: 100%; + height: auto; +} + +pre { + background-color: $grey-bg-color; + border-radius: 0.3rem; + padding: 1rem; +} + +code { + background-color: $grey-bg-color; + padding: 0.2rem 0.4rem; +} + +::selection { + background-color: $selection-bg-color; +} + +input, +textarea { + border: 0.05em solid $hairline-color; + &:focus { + border: 0.05em solid $text-color; + } +} + +textarea { + vertical-align: top; + resize: vertical; + max-width: 100%; +} + +button { + @include button($link-color, $text-color-negative); +} diff --git a/_sass/partials/_variables.scss b/_sass/partials/_variables.scss new file mode 100755 index 0000000..3173b53 --- /dev/null +++ b/_sass/partials/_variables.scss @@ -0,0 +1,24 @@ +// site colours +$text-color: rgb(40,40,40); +$text-color-negative: white; +$brand-color: rgb(29,37,52); +$link-color: rgb(0,114,154); +$link-hover-color: rgb(0,57,78); +$grey-bg-color: rgb(243,243,243); +$hairline-color: rgb(230,230,230); +$selection-bg-color: rgba(255,255,100,0.5); + +// typographic defaults +$base-font: system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue; +$code-font: Courier, monospace; +$base-font-size: 62.5%; +$base-font-weight: 300; +$bold-font-weight: 600; +$base-line-height: 1.5; + +// viewport breakpoints +$screen-xs-min: 480px; +$screen-sm-min: 768px; +$screen-md-min: 992px; +$screen-lg-min: 1240px; +$screen-xl-min: 1920px; diff --git a/_sass/syntax-highlighting/bw.scss b/_sass/syntax-highlighting/bw.scss new file mode 100644 index 0000000..747f891 --- /dev/null +++ b/_sass/syntax-highlighting/bw.scss @@ -0,0 +1,43 @@ + +pre.highlight { + background-color: #fff; + border: solid 1px $border-xlight; + box-shadow: $global-medium-box-shadow; + padding: $padding-padding; + border-radius: $border-radius-small; +} + +.highlight .hll { background-color: #ffffcc } +.highlight .c { font-style: italic } /* Comment */ +.highlight .err { } /* Error */ +.highlight .k { font-weight: bold } /* Keyword */ +.highlight .cm { font-style: italic } /* Comment.Multiline */ +.highlight .c1 { font-style: italic } /* Comment.Single */ +.highlight .cs { font-style: italic } /* Comment.Special */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gh { font-weight: bold } /* Generic.Heading */ +.highlight .gp { font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { font-weight: bold } /* Generic.Subheading */ +.highlight .kc { font-weight: bold } /* Keyword.Constant */ +.highlight .kd { font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { font-weight: bold } /* Keyword.Namespace */ +.highlight .kr { font-weight: bold } /* Keyword.Reserved */ +.highlight .s { font-style: italic } /* Literal.String */ +.highlight .nc { font-weight: bold } /* Name.Class */ +.highlight .ni { font-weight: bold } /* Name.Entity */ +.highlight .ne { font-weight: bold } /* Name.Exception */ +.highlight .nn { font-weight: bold } /* Name.Namespace */ +.highlight .nt { font-weight: bold } /* Name.Tag */ +.highlight .ow { font-weight: bold } /* Operator.Word */ +.highlight .sb { font-style: italic } /* Literal.String.Backtick */ +.highlight .sc { font-style: italic } /* Literal.String.Char */ +.highlight .sd { font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { font-style: italic } /* Literal.String.Double */ +.highlight .se { font-weight: bold; font-style: italic } /* Literal.String.Escape */ +.highlight .sh { font-style: italic } /* Literal.String.Heredoc */ +.highlight .si { font-weight: bold; font-style: italic } /* Literal.String.Interpol */ +.highlight .sx { font-style: italic } /* Literal.String.Other */ +.highlight .sr { font-style: italic } /* Literal.String.Regex */ +.highlight .s1 { font-style: italic } /* Literal.String.Single */ +.highlight .ss { font-style: italic } /* Literal.String.Symbol */ \ No newline at end of file diff --git a/_sass/syntax-highlighting/cld.scss b/_sass/syntax-highlighting/cld.scss new file mode 100644 index 0000000..f67b503 --- /dev/null +++ b/_sass/syntax-highlighting/cld.scss @@ -0,0 +1,289 @@ +/** + * Syntax highlighting styles + */ + +pre.highlight { + background-color: #fff; + border: solid 1px $border-xlight; + box-shadow: $global-medium-box-shadow; + padding: $padding-padding; + border-radius: $border-radius-small; +} + +.highlight .lineno { + color: #B1B8C4 +} + +.highlight .c { + color: #B1B8C4 +} + +.highlight .err { + color: #5A6575 +} + +.highlight .g { + color: #5A6575 +} + +.highlight .k { + color: #25BEA1 +} + +.highlight .l { + color: #5A6575 +} + +.highlight .n { + color: #5A6575 +} + +.highlight .o { + color: #25BEA1 +} + +.highlight .x { + color: #FBBC09 +} + +.highlight .p { + color: #25BEA1 +} + +.highlight .cm { + color: #B1B8C4 +} + +.highlight .cp { + color: #25BEA1 +} + +.highlight .c1 { + color: #B1B8C4 +} + +.highlight .cs { + color: #25BEA1 +} + +.highlight .gd { + color: #E56134 +} + +.highlight .ge { + color: #5A6575; + font-style: italic +} + +.highlight .gr { + color: #9961C9 +} + +.highlight .gh { + color: #FBBC09 +} + +.highlight .gi { + color: #25BEA1 +} + +.highlight .go { + color: #5A6575 +} + +.highlight .gp { + color: #FBBC09 +} + +.highlight .gs { + color: #5A6575; + font-weight: bold +} + +.highlight .gu { + color: #FBBC09 +} + +.highlight .gt { + color: #5A6575 +} + +.highlight .kc { + color: #FBBC09 +} + +.highlight .kd { + color: #11A0F3 +} + +.highlight .kn { + color: #25BEA1 +} + +.highlight .kp { + color: #25BEA1 +} + +.highlight .kr { + color: #11A0F3 +} + +.highlight .kt { + color: #9961C9 +} + +.highlight .ld { + color: #5A6575 +} + +.highlight .m { + color: #E56134 +} + +.highlight .s { + color: #E56134 +} + +.highlight .na { + color: #5A6575 +} + +.highlight .nb { + color: #5A6575 +} + +.highlight .nc { + color: #11A0F3 +} + +.highlight .no { + color: #5A6575 +} + +.highlight .nd { + color: #11A0F3 +} + +.highlight .ni { + color: #FBBC09 +} + +.highlight .ne { + color: #FBBC09 +} + +.highlight .nf { + color: #11A0F3 +} + +.highlight .nl { + color: #5A6575 +} + +.highlight .nn { + color: #5A6575 +} + +.highlight .nx { + color: #5A6575 +} + +.highlight .py { + color: #5A6575 +} + +.highlight .nt { + color: #11A0F3 +} + +.highlight .nv { + color: #5A6575 +} + +.highlight .ow { + color: #25BEA1 +} + +.highlight .w { + color: #5A6575 +} + +.highlight .mf { + color: #E56134 +} + +.highlight .mh { + color: #E56134 +} + +.highlight .mi { + color: #E56134 +} + +.highlight .mo { + color: #E56134 +} + +.highlight .sb { + color: #B1B8C4 +} + +.highlight .sc { + color: #E56134 +} + +.highlight .sd { + color: #5A6575 +} + +.highlight .s2 { + color: #E56134 +} + +.highlight .se { + color: #FBBC09 +} + +.highlight .sh { + color: #5A6575 +} + +.highlight .si { + color: #E56134 +} + +.highlight .sx { + color: #E56134 +} + +.highlight .sr { + color: #9961C9 +} + +.highlight .s1 { + color: #E56134 +} + +.highlight .ss { + color: #E56134 +} + +.highlight .bp { + color: #11A0F3 +} + +.highlight .vc { + color: #11A0F3 +} + +.highlight .vg { + color: #11A0F3 +} + +.highlight .vi { + color: #11A0F3 +} + +.highlight .il { + color: #E56134 +} diff --git a/_sass/system-font-css/CHANGELOG.md b/_sass/system-font-css/CHANGELOG.md new file mode 100644 index 0000000..7a4eee3 --- /dev/null +++ b/_sass/system-font-css/CHANGELOG.md @@ -0,0 +1,13 @@ +## 2.0.0 (2017-06-28) + +- Changed from `system` to `system-ui` to match the CSS specification. + +## 1.1.0 (2015-08-02) + +- Added: Android fonts Roboto and Droid Sans after Ubuntu. +- Removed: Windows 3.1-ME font Microsoft Sans Serif. +- Updated: documentation. + +## 1.0.0 (2015-07-30) + +- Added: Initial version diff --git a/_sass/system-font-css/LICENSE.md b/_sass/system-font-css/LICENSE.md new file mode 100644 index 0000000..565f84e --- /dev/null +++ b/_sass/system-font-css/LICENSE.md @@ -0,0 +1,15 @@ +# CC0 1.0 Universal License + +Public Domain Dedication + +The person(s) who associated a work with this deed has dedicated the work to the public domain by waiving all of his or her rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law. + +You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission. + +In no way are the patent or trademark rights of any person affected by CC0, nor are the rights that other persons may have in the work or in how the work is used, such as publicity or privacy rights. + +Unless expressly stated otherwise, the person(s) who associated a work with this deed makes no warranties about the work, and disclaims liability for all uses of the work, to the fullest extent permitted by applicable law. + +When using or citing the work, you should not imply endorsement by the author or the affirmer. + +This is a [human-readable summary of the Legal Code](https://creativecommons.org/publicdomain/zero/1.0/) ([read the full text](https://creativecommons.org/publicdomain/zero/1.0/legalcode)). diff --git a/_sass/system-font-css/README.md b/_sass/system-font-css/README.md new file mode 100644 index 0000000..08268fb --- /dev/null +++ b/_sass/system-font-css/README.md @@ -0,0 +1,68 @@ +# System Font CSS + +System Font CSS is set of `@font-face` rules that let you use the native system font of the OS running the browser. + +```css +body { + font-family: system-ui; +} +``` + +[system-font.css](system-font.css) offers eight variations of the `system-ui` font family; **light** (300) **light italic**, **normal** (400), **normal italic**, **medium** (500), **medium italic**, **bold** (700), and **bold italic**. + +```css +blockquote { + font: italic 300 system-ui; +} + +p { + font: 400 system-ui; +} +``` + +## Quick Start + +### Install + +This package can be installed with: + +* [npm](https://www.npmjs.com/package/system-font-css): `npm install --save system-font-css` + +### Load + +When installed with npm, system-font.css will create both a SCSS and LESS partial for easy importing: + +```scss +@import 'system-font'; +``` + +## OSX + +**OSX** has used three system typefaces. Since **El Capitan** it has used **San Fransisco**. In **Yosemite** it used **Helvetica Neue**. From **Mavericks** back to **Kodiak** it used **Lucida Grande**. + +## Windows + +**Windows** has used four system typefaces. Since **Vista** it has used **Segoe UI**. In XP, it used **Tahoma**, which oddly enough does not have an italic variation. From **Windows ME** back to **Windows 3.1** it used **Microsoft Sans Serif**. Finally, from **Windows 2.0** back to **Windows 1.0** it used **Fixedsys**. Neither **Microsoft Sans Serif** or **Fixedsys** are included in this set, with apologies. + +Also, for those of opposed to joy, remember that **Internet Explorer 8** does not support local `@font-face` rules. Therefore, should you need to reference system fonts in that browser then you will need to do so from the `font` declaration. + +```css +body { + font-family: system-ui, "Segoe UI", Tahoma; +} +``` + +## Android + +**Android** has used two system typefaces. Since **Ice Cream Sandwich** it has used **Roboto**. From **Jelly Bean** back to **Cupcake** it used **Droid Sans**, which also lacks an italic variation. Do you suppose OS developers dislike *emphasis*? + +## Ubuntu + +Ubuntu has always used one system typeface, aptly named **Ubuntu**. That part was easy. + +## Native `system-ui` resources + +* [CSS Fonts Module Level 4 Editor’s Draft Specification](https://drafts.csswg.org/css-fonts-4/#system-ui-def) +* [Chrome Platform Status](https://www.chromestatus.com/feature/5640395337760768) +* Proposed for inclusion on [Can I Use](https://github.com/Fyrd/caniuse/issues/2918) +* Previous [discussions in the W3C](https://lists.w3.org/Archives/Public/www-style/2015Jul/0169.html) to standardize a generic `system` family. diff --git a/_sass/system-font-css/_system-font.scss b/_sass/system-font-css/_system-font.scss new file mode 100644 index 0000000..fd07821 --- /dev/null +++ b/_sass/system-font-css/_system-font.scss @@ -0,0 +1,57 @@ +/*! system-font.css v2.0.2 | CC0-1.0 License | github.com/jonathantneal/system-font-css */ + +@font-face { + font-family: system-ui; + font-style: normal; + font-weight: 300; + src: local(".SFNSText-Light"), local(".HelveticaNeueDeskInterface-Light"), local(".LucidaGrandeUI"), local("Segoe UI Light"), local("Ubuntu Light"), local("Roboto-Light"), local("DroidSans"), local("Tahoma"); +} + +@font-face { + font-family: system-ui; + font-style: italic; + font-weight: 300; + src: local(".SFNSText-LightItalic"), local(".HelveticaNeueDeskInterface-Italic"), local(".LucidaGrandeUI"), local("Segoe UI Light Italic"), local("Ubuntu Light Italic"), local("Roboto-LightItalic"), local("DroidSans"), local("Tahoma"); +} + +@font-face { + font-family: system-ui; + font-style: normal; + font-weight: 400; + src: local(".SFNSText-Regular"), local(".HelveticaNeueDeskInterface-Regular"), local(".LucidaGrandeUI"), local("Segoe UI"), local("Ubuntu"), local("Roboto-Regular"), local("DroidSans"), local("Tahoma"); +} + +@font-face { + font-family: system-ui; + font-style: italic; + font-weight: 400; + src: local(".SFNSText-Italic"), local(".HelveticaNeueDeskInterface-Italic"), local(".LucidaGrandeUI"), local("Segoe UI Italic"), local("Ubuntu Italic"), local("Roboto-Italic"), local("DroidSans"), local("Tahoma"); +} + +@font-face { + font-family: system-ui; + font-style: normal; + font-weight: 500; + src: local(".SFNSText-Medium"), local(".HelveticaNeueDeskInterface-MediumP4"), local(".LucidaGrandeUI"), local("Segoe UI Semibold"), local("Ubuntu Medium"), local("Roboto-Medium"), local("DroidSans-Bold"), local("Tahoma Bold"); +} + +@font-face { + font-family: system-ui; + font-style: italic; + font-weight: 500; + src: local(".SFNSText-MediumItalic"), local(".HelveticaNeueDeskInterface-MediumItalicP4"), local(".LucidaGrandeUI"), local("Segoe UI Semibold Italic"), local("Ubuntu Medium Italic"), local("Roboto-MediumItalic"), local("DroidSans-Bold"), local("Tahoma Bold"); +} + +@font-face { + font-family: system-ui; + font-style: normal; + font-weight: 700; + src: local(".SFNSText-Bold"), local(".HelveticaNeueDeskInterface-Bold"), local(".LucidaGrandeUI"), local("Segoe UI Bold"), local("Ubuntu Bold"), local("Roboto-Bold"), local("DroidSans-Bold"), local("Tahoma Bold"); +} + +@font-face { + font-family: system-ui; + font-style: italic; + font-weight: 700; + src: local(".SFNSText-BoldItalic"), local(".HelveticaNeueDeskInterface-BoldItalic"), local(".LucidaGrandeUI"), local("Segoe UI Bold Italic"), local("Ubuntu Bold Italic"), local("Roboto-BoldItalic"), local("DroidSans-Bold"), local("Tahoma Bold"); +} diff --git a/_sass/system-font-css/index.html b/_sass/system-font-css/index.html new file mode 100644 index 0000000..ec5ea86 --- /dev/null +++ b/_sass/system-font-css/index.html @@ -0,0 +1,189 @@ + +System Font CSS + + + + + + +

+ System Font CSS +

+ +

+ System Font CSS is set of @font-face rules that let you use the native system font of the OS running the browser. +

+ +
+body {
+    font-family: system;
+}
+
+ +

+ system-font.css offers eight variations of the system font family; light (300) light italic, normal (400), normal italic, medium (500), medium italic, bold (700), and bold italic. +

+ +
+blockquote {
+    font: italic 300 system;
+}
+
+p {
+    font: 400 system;
+}
+
+ +

+ OSX +

+ +

+ OSX has used three system typefaces. Since El Capitan it has used San Fransisco. In Yosemite it used Helvetica Neue. From Mavericks back to Kodiak it used Lucida Grande. +

+ +

+ Windows +

+ +

+ Windows has used four system typefaces. Since Vista it has used Segoe UI. In XP, it used Tahoma, which oddly enough lacks an italic variation. From Windows ME back to Windows 3.1 it used Microsoft Sans Serif. Finally, from Windows 2.0 back to Windows 1.0 it used Fixedsys. Neither Microsoft Sans Serif or Fixedsys are included in this set, with apologies. +

+ +

+ Also, for those of opposed to joy, remember that Internet Explorer 8 does not support local @font-face rules. Therefore, should you need to reference system fonts in that browser then you will need to do so from the font declaration. +

+ +
+body {
+	font-family: system, "Segoe UI", Tahoma;
+}
+
+ +

+ Android +

+ +

+ Android has used two system typefaces. Since Ice Cream Sandwich it has used Roboto. From Jelly Bean back to Cupcake it used Droid Sans, which also lacks an italic variation. Do you suppose OS developers dislike emphasis? +

+ +

+ Ubuntu +

+ +

+ Ubuntu has always used one system typeface, apty named Ubuntu. That part was easy. +

+ +

+ Is system going to be a thing? +

+ +

+ Maybe. There are discussions in the W3C to standardize a generic system family. +

diff --git a/_sass/system-font-css/package.json b/_sass/system-font-css/package.json new file mode 100644 index 0000000..91916c2 --- /dev/null +++ b/_sass/system-font-css/package.json @@ -0,0 +1,83 @@ +{ + "_from": "system-font-css@^2.0.1", + "_id": "system-font-css@2.0.2", + "_inBundle": false, + "_integrity": "sha512-zK36lpja4NIi4Po99bXReeqeDcM1sW4hTKJt5Mby/IXX6kLSwjkQ4pZThFdgb/jDwfRsBvxxVG+VekP1sTdF0w==", + "_location": "/system-font-css", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "system-font-css@^2.0.1", + "name": "system-font-css", + "escapedName": "system-font-css", + "rawSpec": "^2.0.1", + "saveSpec": null, + "fetchSpec": "^2.0.1" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/system-font-css/-/system-font-css-2.0.2.tgz", + "_shasum": "88c4ae30eda94bc60705cba7d66c8c822f3c47db", + "_spec": "system-font-css@^2.0.1", + "_where": "/Users/ivan/Dev/jekyll/jekyll-theme-docs", + "author": { + "name": "Jonathan Neal", + "email": "jonathantneal@hotmail.com", + "url": "http://jonathantneal.com" + }, + "bugs": { + "url": "https://github.com/jonathantneal/system-font-css/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Zach Leatherman", + "email": "zachleatherman@gmail.com", + "url": "https://zachleat.com/" + } + ], + "dependencies": { + "cpr": "^2.2.0" + }, + "deprecated": false, + "description": "Use the native system font of the OS running the browser", + "devDependencies": {}, + "engines": { + "node": ">=0.8.0" + }, + "homepage": "https://github.com/jonathantneal/system-font-css", + "keywords": [ + "system", + "fonts", + "faces", + "rules", + "css", + "mac", + "windows", + "ubuntu", + "san", + "fransisco", + "helvetica", + "neue", + "lucida", + "grande", + "segoe", + "ui", + "microsoft", + "sans", + "serif" + ], + "license": "CC0-1.0", + "main": "system-font.css", + "name": "system-font-css", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/jonathantneal/system-font-css.git" + }, + "scripts": { + "install": "cpr system-font.css _system-font.scss -o && cpr system-font.css system-font.less -o" + }, + "version": "2.0.2" +} diff --git a/_sass/system-font-css/system-font.css b/_sass/system-font-css/system-font.css new file mode 100644 index 0000000..fd07821 --- /dev/null +++ b/_sass/system-font-css/system-font.css @@ -0,0 +1,57 @@ +/*! system-font.css v2.0.2 | CC0-1.0 License | github.com/jonathantneal/system-font-css */ + +@font-face { + font-family: system-ui; + font-style: normal; + font-weight: 300; + src: local(".SFNSText-Light"), local(".HelveticaNeueDeskInterface-Light"), local(".LucidaGrandeUI"), local("Segoe UI Light"), local("Ubuntu Light"), local("Roboto-Light"), local("DroidSans"), local("Tahoma"); +} + +@font-face { + font-family: system-ui; + font-style: italic; + font-weight: 300; + src: local(".SFNSText-LightItalic"), local(".HelveticaNeueDeskInterface-Italic"), local(".LucidaGrandeUI"), local("Segoe UI Light Italic"), local("Ubuntu Light Italic"), local("Roboto-LightItalic"), local("DroidSans"), local("Tahoma"); +} + +@font-face { + font-family: system-ui; + font-style: normal; + font-weight: 400; + src: local(".SFNSText-Regular"), local(".HelveticaNeueDeskInterface-Regular"), local(".LucidaGrandeUI"), local("Segoe UI"), local("Ubuntu"), local("Roboto-Regular"), local("DroidSans"), local("Tahoma"); +} + +@font-face { + font-family: system-ui; + font-style: italic; + font-weight: 400; + src: local(".SFNSText-Italic"), local(".HelveticaNeueDeskInterface-Italic"), local(".LucidaGrandeUI"), local("Segoe UI Italic"), local("Ubuntu Italic"), local("Roboto-Italic"), local("DroidSans"), local("Tahoma"); +} + +@font-face { + font-family: system-ui; + font-style: normal; + font-weight: 500; + src: local(".SFNSText-Medium"), local(".HelveticaNeueDeskInterface-MediumP4"), local(".LucidaGrandeUI"), local("Segoe UI Semibold"), local("Ubuntu Medium"), local("Roboto-Medium"), local("DroidSans-Bold"), local("Tahoma Bold"); +} + +@font-face { + font-family: system-ui; + font-style: italic; + font-weight: 500; + src: local(".SFNSText-MediumItalic"), local(".HelveticaNeueDeskInterface-MediumItalicP4"), local(".LucidaGrandeUI"), local("Segoe UI Semibold Italic"), local("Ubuntu Medium Italic"), local("Roboto-MediumItalic"), local("DroidSans-Bold"), local("Tahoma Bold"); +} + +@font-face { + font-family: system-ui; + font-style: normal; + font-weight: 700; + src: local(".SFNSText-Bold"), local(".HelveticaNeueDeskInterface-Bold"), local(".LucidaGrandeUI"), local("Segoe UI Bold"), local("Ubuntu Bold"), local("Roboto-Bold"), local("DroidSans-Bold"), local("Tahoma Bold"); +} + +@font-face { + font-family: system-ui; + font-style: italic; + font-weight: 700; + src: local(".SFNSText-BoldItalic"), local(".HelveticaNeueDeskInterface-BoldItalic"), local(".LucidaGrandeUI"), local("Segoe UI Bold Italic"), local("Ubuntu Bold Italic"), local("Roboto-BoldItalic"), local("DroidSans-Bold"), local("Tahoma Bold"); +} diff --git a/_sass/system-font-css/system-font.less b/_sass/system-font-css/system-font.less new file mode 100644 index 0000000..fd07821 --- /dev/null +++ b/_sass/system-font-css/system-font.less @@ -0,0 +1,57 @@ +/*! system-font.css v2.0.2 | CC0-1.0 License | github.com/jonathantneal/system-font-css */ + +@font-face { + font-family: system-ui; + font-style: normal; + font-weight: 300; + src: local(".SFNSText-Light"), local(".HelveticaNeueDeskInterface-Light"), local(".LucidaGrandeUI"), local("Segoe UI Light"), local("Ubuntu Light"), local("Roboto-Light"), local("DroidSans"), local("Tahoma"); +} + +@font-face { + font-family: system-ui; + font-style: italic; + font-weight: 300; + src: local(".SFNSText-LightItalic"), local(".HelveticaNeueDeskInterface-Italic"), local(".LucidaGrandeUI"), local("Segoe UI Light Italic"), local("Ubuntu Light Italic"), local("Roboto-LightItalic"), local("DroidSans"), local("Tahoma"); +} + +@font-face { + font-family: system-ui; + font-style: normal; + font-weight: 400; + src: local(".SFNSText-Regular"), local(".HelveticaNeueDeskInterface-Regular"), local(".LucidaGrandeUI"), local("Segoe UI"), local("Ubuntu"), local("Roboto-Regular"), local("DroidSans"), local("Tahoma"); +} + +@font-face { + font-family: system-ui; + font-style: italic; + font-weight: 400; + src: local(".SFNSText-Italic"), local(".HelveticaNeueDeskInterface-Italic"), local(".LucidaGrandeUI"), local("Segoe UI Italic"), local("Ubuntu Italic"), local("Roboto-Italic"), local("DroidSans"), local("Tahoma"); +} + +@font-face { + font-family: system-ui; + font-style: normal; + font-weight: 500; + src: local(".SFNSText-Medium"), local(".HelveticaNeueDeskInterface-MediumP4"), local(".LucidaGrandeUI"), local("Segoe UI Semibold"), local("Ubuntu Medium"), local("Roboto-Medium"), local("DroidSans-Bold"), local("Tahoma Bold"); +} + +@font-face { + font-family: system-ui; + font-style: italic; + font-weight: 500; + src: local(".SFNSText-MediumItalic"), local(".HelveticaNeueDeskInterface-MediumItalicP4"), local(".LucidaGrandeUI"), local("Segoe UI Semibold Italic"), local("Ubuntu Medium Italic"), local("Roboto-MediumItalic"), local("DroidSans-Bold"), local("Tahoma Bold"); +} + +@font-face { + font-family: system-ui; + font-style: normal; + font-weight: 700; + src: local(".SFNSText-Bold"), local(".HelveticaNeueDeskInterface-Bold"), local(".LucidaGrandeUI"), local("Segoe UI Bold"), local("Ubuntu Bold"), local("Roboto-Bold"), local("DroidSans-Bold"), local("Tahoma Bold"); +} + +@font-face { + font-family: system-ui; + font-style: italic; + font-weight: 700; + src: local(".SFNSText-BoldItalic"), local(".HelveticaNeueDeskInterface-BoldItalic"), local(".LucidaGrandeUI"), local("Segoe UI Bold Italic"), local("Ubuntu Bold Italic"), local("Roboto-BoldItalic"), local("DroidSans-Bold"), local("Tahoma Bold"); +} diff --git a/_sass/theme/mixins.scss b/_sass/theme/mixins.scss new file mode 100644 index 0000000..691b4cc --- /dev/null +++ b/_sass/theme/mixins.scss @@ -0,0 +1,847 @@ +// Docs Theme Mixins +// ======================================================================== + +@mixin hook-base-body(){ + //filter: blur(7px); + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; +} + +@mixin hook-base-misc(){ + input[type="submit" i]{ + -webkit-appearance:none; + } + .link-primary a:not(.lightbox):not(.uk-inline):not(.uk-link-muted):not(.uk-slidenav) { + transition: all 100ms cubic-bezier(0.4, 0, 0.2, 1); + border-bottom: 1px solid $global-primary-background; + color: $global-primary-background; + } + + .link-primary a:not(.lightbox):not(.uk-inline):not(.uk-link-muted):not(.uk-slidenav):hover { + border-bottom-color: lighten($global-primary-background, 25%); + text-decoration: none; + } + + .link-secondary a:not(.lightbox):not(.uk-inline):not(.uk-link-muted):not(.uk-slidenav):hover { + border-bottom: 1px solid $global-color; + text-decoration: none; + } +} + +@mixin hook-navbar(){ + font-weight: 500; + .uk-drop { + width: 360px; + } + .uk-search-navbar .uk-search-input { + height: 50px; + font-size: 1.0625rem; + padding-left: 1.1875rem; + background: #fff; + } +} + +@mixin hook-navbar-misc(){ + .uk-navbar-item .uk-button { + padding: 0 22px; + line-height: 34px; + } + // Fix for UIkit left and right first & last items + .uk-navbar-container > .uk-container { + .uk-navbar-left { + margin-left: -$navbar-nav-item-padding-horizontal; + } + .uk-navbar-right { + margin-right: -$navbar-nav-item-padding-horizontal; + } + } +} + +@mixin hook-logo(){ + font-weight: 700; +} + +@mixin hook-button(){ + border-radius: 30px; +} + +@mixin hook-button-misc(){ + // Warning + .uk-button-warning { + background-color: $button-warning-background; + color: $button-primary-color; + border: 1px solid transparent; + } + + .uk-button-warning:hover, + .uk-button-warning:focus { + background-color: $button-warning-hover-background; + color: $button-primary-color; + } + + .uk-button-warning:active, + .uk-button-warning.uk-active { + background-color: $button-warning-hover-background; + color: $button-primary-color; + } + + // Success + .uk-button-success { + background-color: $button-success-background; + color: $button-primary-color; + border: 1px solid transparent; + } + + .uk-button-success:hover, + .uk-button-success:focus { + background-color: $button-success-hover-background; + color: $button-primary-hover-color; + } + + .uk-button-success:active, + .uk-button-success.uk-active { + background-color: $button-success-hover-background; + color: $button-primary-active-color; + } + + // Primary outline + .uk-button-primary-outline { + background-color: $button-default-background; + color: $button-primary-background; + border: $button-border-width solid $button-primary-background; + } + + .uk-button-primary-outline:hover, + .uk-button-primary-outline:focus { + background-color: $button-primary-background; + color: $button-primary-hover-color; + border: $button-border-width solid $button-primary-background; + } + + .uk-button-primary-outline:active, + .uk-button-primary-outline.uk-active { + background-color: $button-primary-background; + color: $button-primary-active-color; + border: $button-border-width solid $button-primary-background; + } + + // Danger outline + .uk-button-danger-outline { + background-color: $button-default-background; + color: $button-danger-background; + border: $button-border-width solid $button-danger-background; + } + + .uk-button-danger-outline:hover, + .uk-button-danger-outline:focus { + background-color: $button-danger-background; + color: $button-danger-hover-color; + border: $button-border-width solid $button-danger-background; + } + + .uk-button-danger-outline:active, + .uk-button-danger-outline.uk-active { + background-color: $button-danger-background; + color: $button-danger-active-color; + border: $button-border-width solid $button-danger-background; + } + + // Success outline + .uk-button-success-outline { + background-color: $button-default-background; + color: $button-success-background; + border: $button-border-width solid $button-success-background; + } + + .uk-button-success-outline:hover, + .uk-button-success-outline:focus { + background-color: $button-success-background; + color: $button-primary-hover-color; + border: $button-border-width solid $button-success-background; + } + + .uk-button-success-outline:active, + .uk-button-success-outline.uk-active { + background-color: $button-success-background; + color: $button-primary-hover-color; + border: $button-border-width solid $button-success-background; + } + + // Warning outline + .uk-button-warning-outline { + background-color: $button-default-background; + color: $button-warning-background; + border: $button-border-width solid $button-warning-background; + } + + .uk-button-warning-outline:hover, + .uk-button-warning-outline:focus { + background-color: $button-warning-background; + color: $button-primary-hover-color; + border: $button-border-width solid $button-warning-background; + } + + .uk-button-warning-outline:active, + .uk-button-warning-outline.uk-active { + background-color: $button-warning-background; + color: $button-primary-active-color; + border: $button-border-width solid $button-warning-background; + } + +} + +@mixin hook-alert(){ + border-radius: $border-rounded-border-radius; +} + +@mixin hook-alert-misc(){ + + .uk-alert h1, + .uk-alert h2, + .uk-alert h3, + .uk-alert h4, + .uk-alert h5, + .uk-alert h6 { color: inherit; } + + .uk-alert a:not([class]) { + color: inherit !important; + border-bottom-color: inherit !important; + } + + .uk-alert a:not([class]):hover { + color: inherit !important; + border-bottom-color: inherit !important; + } +} + +@mixin hook-card-body(){ + > p { + font-size: $global-small-font-size; + } + > span { + color: $global-primary-background; + } +} + +@mixin hook-card-misc(){ + .uk-position-cover { + z-index: 1; + } + .card-category { + h3:nth-child(2n) { + margin-top: 0 !important; + } + } + .card-post { + .uk-card-header{ + padding-top: $global-medium-margin; + padding-bottom: 0; + border-bottom: none; + .avatar { + width: 40px; + } + } + .uk-card-body{ + padding-top: $global-medium-margin / 2; + padding-bottom: $global-medium-margin / 2; + } + .uk-card-footer{ + padding-bottom: $global-medium-margin * 0.9; + padding-top: 0; + border-top: none; + } + } +} + +@mixin hook-form(){ + border: solid 1px $global-border; +} + +@mixin hook-offcanvas-bar(){ + font-weight: 500; +} + +@mixin hook-list-misc(){ + .uk-list { + margin: 0; + } +} + +@mixin hook-article-title(){ + margin-bottom: $global-margin; +} + +@mixin hook-article-meta(){ + a { + color: $article-meta-color; + &:hover { + color: $global-primary-background; + } + } + .avatar { + margin-right: 15px; + max-width: 36px; + } +} + +@mixin hook-article-misc(){ + .article-content { + line-height: 1.8; + + .side-note { + border: 0 solid #d2d6dc; + padding: .75rem; + background-color: rgba(249,250,251, 1); + border-radius: .375rem; + border-width: 1px; + margin-bottom: .75rem; + font-size: .875rem; + line-height: 1.25rem; + box-shadow: 0 1px 2px 0 rgba(0,0,0,.05); + } + + figure img, .uk-slideshow-items { + border: solid 1px $border-xlight; + box-shadow: $global-medium-box-shadow; + border-radius: $border-radius-small; + } + figure { + &.phone-screenshot-image { + margin: 40px auto; + max-width: 350px; + } + + img + div .uk-overlay-icon { + color: rgba(255, 255, 255, 0); + } + img:hover + div .uk-overlay-icon { + color: rgba(255, 255, 255, 1); + } + figcaption { + margin-left: 0; + span { + padding-right: 20px; + margin-bottom: -43px; + margin-top: 20px; + border-right: solid 2px $global-muted-color; + font-style: italic; + font-size: 0.8rem; + line-height: 1.8; + } + } + } + blockquote { + border-left: solid 2px $global-muted-color; + padding-left: $base-margin-vertical; + line-height: 1.7; + } + + figure, .uk-slideshow { + margin-top: $global-medium-margin; + margin-bottom: $global-medium-margin; + } + + figure figcaption { + margin-bottom: $global-medium-margin * 1.8; + } + + ul:not(#markdown-toc):not(#markdown-toc ul):not(.uk-slideshow-items), + .uk-alert { + margin-bottom: $global-medium-margin; + } + + table { + margin-top: $global-medium-margin * .7; + margin-bottom: $global-medium-margin; + } + + pre, + blockquote { + margin-top: $global-medium-margin * .7; + margin-bottom: $global-medium-margin; + } + + } + .avatar { + border-radius: 50%; + } + .paginate-post .uk-text-small { + line-height: 1.75; + } +} + +@mixin hook-table-misc() { + table { + font-size: $global-small-font-size; + border-collapse: collapse; + border-spacing: 0; + width: 100%; + margin-bottom: $global-medium-margin; + >tr:not(:first-child), >:not(:first-child)>tr, >:first-child>tr:not(:first-child) { + border-top: 1px solid $table-divider-border; + } + tbody tr { + transition: background-color .1s linear; + } + th, td { + padding: 10px 12px; + } + td { + vertical-align: top; + } + th { + text-align: left; + vertical-align: bottom; + } + th:first-child, td:first-child { + padding-left: 0; + } + th:last-child, td:last-child { + padding-right: 0; + } + } +} + +@mixin hook-label(){ + font-weight: 500; + border-radius: $label-border-radius; +} + +@mixin hook-navbar-sticky(){ + border-bottom: solid 1px $border-xlight; +} +@mixin hook-accordion-title(){ + + overflow: hidden; + border: solid 1px $border-light; + border-radius: $border-radius-small; + padding: 20px; + font-weight: 500; + + &::after { + content: ""; + width: ($accordion-title-line-height * 1em); + height: ($accordion-title-line-height * 1em); + float: right; + @include svg-fill($internal-accordion-close-image, "#000", $accordion-icon-color); + background-repeat: no-repeat; + background-position: 50% 50%; + background-color: $accordion-icon-background-color; + border-radius: 20px; + } + + .uk-open > &::after { @include svg-fill($internal-accordion-open-image, "#000", $accordion-icon-color); } + +} + +@mixin hook-accordion-content(){ + padding: 20px; +} + +@mixin hook-utility-misc(){ + .border-xlight { + border: solid 1px $border-xlight; + } + .border-light { + border: solid 1px $border-light; + } + .border { + border: solid 1px $global-border; + } + .border-radius-medium { + border-radius: $border-radius-medium; + } + .border-radius-large { + border-radius: $border-radius-large; + } + .remove-underline, .remove-underline:hover{ + text-decoration: none; + } + .uk-container.uk-container-xsmall { + max-width: 700px; + } + .hvr-forward { + display: inline-block; + vertical-align: middle; + -webkit-transform: perspective(1px) translateZ(0); + transform: perspective(1px) translateZ(0); + box-shadow: 0 0 1px transparent; + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-property: transform; + transition-property: transform; + } + .hvr-forward:active, + .hvr-forward:focus, + .hvr-forward:hover { + -webkit-transform: translateX(6px); + transform: translateX(6px); + } + + .hvr-back { + display: inline-block; + vertical-align: middle; + -webkit-transform: perspective(1px) translateZ(0); + transform: perspective(1px) translateZ(0); + box-shadow: 0 0 1px transparent; + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-property: transform; + transition-property: transform; + } + + .hvr-back:hover, + .hvr-back:focus, + .hvr-back:active { + -webkit-transform: translateX(-6px); + transform: translateX(-6px); + } + + .social-networks { + margin-top: $global-large-margin; + } + + .container-xxsmall { + max-width: $container-xxsmall; + } + + .sidebar-fixed-width { + width: $docs-sidebar-width; + } + .sidebar-docs { + width: $docs-sidebar-width - $global-medium-gutter; + padding-right: $global-medium-gutter; + top: 112px; + bottom: 70px; + overflow-y: scroll; + overflow-x: hidden; + > h5 { + margin: 15px 0 0; + &:first-child { + margin-top: 17px + } + } + } + + @media (min-width: $breakpoint-large) { + .sidebar-fixed-width { + width: $docs-sidebar-width-l; + } + .sidebar-docs { + width: $docs-sidebar-width-l - $global-large-gutter; + padding-right: $global-large-gutter; + } + } + + ul.doc-nav { + padding-left: 14px; + margin-top: 5px; + } + + .doc-nav > li.uk-active > a { + position: relative; + &:before { + content: ""; + position: absolute; + top: 15px; + left: -14px; + width: 7px; + border-top: 1px solid $global-primary-background; + } + } + + .hero-image { + margin-top: -28px; + margin-bottom: 30px; + img { + max-height: 220px; + } + } + + .uk-section { + .uk-h1 { + margin-bottom: 12px; + } + .uk-text-lead { + margin: 0; + } + } + + .section-hero { + z-index: 10; + .hero-search { + margin: 60px auto 0 auto; + .uk-search-input { + height: 80px; + border-radius: 50px; + font-size: 1.25rem; + font-style: normal; + padding-left: 36px; + &:focus { + background: #ffffff; + } + } + .uk-search-icon { + width: 70px; + svg { + width: 31px; + height: auto; + } + } + + } + .uk-text-lead { + font-size: 1.25rem; + color: #686c7b; + } + } + + @media (min-width: $breakpoint-small) { + .section-videos { + div[class^="uk-child-width-1-1"] { + .uk-card { + padding-top: 70px; + padding-bottom: 70px; + } + } + } + } + + @media (min-width: $breakpoint-medium) { + .section-videos { + div[class^="uk-child-width-1-1"] { + .uk-card { + padding-top: 110px; + padding-bottom: 110px; + } + } + } + } + + .section-featured { + .uk-accordion>:nth-child(n+2) { + margin-top: 16px; + } + + a { + display: block; + font-size: $text-lead-font-size; + overflow: hidden; + border: solid 1px $border-light; + border-radius: $border-radius-small; + padding: 20px; + font-weight: 500; + color: $global-primary-background; + + &::after { + content: ""; + width: ($accordion-title-line-height * 1em); + height: ($accordion-title-line-height * 1em); + float: right; + @include svg-fill($featured-right-image, "#000", $accordion-icon-color); + background-repeat: no-repeat; + background-position: 50% 50%; + background-color: $accordion-icon-background-color; + border-radius: 20px; + } + + &:hover { + text-decoration: none; + color: $global-primary-background; + } + + } + } + + .section-team { + .uk-slider-items { + li { + opacity: .7; + &.uk-active { + opacity: 1; + }; + } + } + .uk-grid > div { + width: 128px; + } + .uk-card { + img { + max-width: 86px; + } + } + } + + #markdown-toc { + padding: 0 0 0 $global-margin; + border-left: solid 2px #d9dde0; + list-style: none; + margin-bottom: $global-medium-margin; + > li > :last-child { + margin-bottom: 0; + } + ul { + margin: 0; + padding-left: $global-margin; + list-style: none; + } + >li:nth-child(n+2), >li>ul { + margin-top: 5px; + } + + } + .article-content .no_toc { + margin-top: 0; + margin-bottom: $global-margin; + } + + #search-hero-results, #search-navbar-results { + margin: 10px 0 0 0; + box-shadow: $global-medium-box-shadow; + border-radius: $border-radius-medium; + background: #fff; + li { + margin: 0; + line-height: 1.4; + border-left: solid 1px $border-xlight; + border-right: solid 1px $border-xlight; + &:first-child { + border-top-left-radius: $border-radius-medium; + border-top-right-radius: $border-radius-medium; + border-top: solid 1px $border-xlight; + } + &:last-child { + border-bottom-left-radius: $border-radius-medium; + border-bottom-right-radius: $border-radius-medium; + border-bottom: solid 1px $border-xlight; + } + a { + display: block; + &:hover { + text-decoration: none; + } + + } + } + } + + #search-hero-results { + li { + &:first-child { + padding-top: 5px; + } + &:last-child { + padding-bottom: 5px; + } + + a { + padding: 18px 36px; + } + &.no-results { + padding: 18px 36px; + } + } + } + + #search-navbar-results { + li { + &:first-child { + padding-top: 2px; + } + &:last-child { + padding-bottom: 2px; + } + a { + padding: 14px 17px; + } + &.no-results { + padding: 14px 17px; + } + } + + } + + @media (min-width: $breakpoint-small) { + + .tm-timeline { + box-sizing: border-box; + * { + box-sizing: border-box; + } + position: relative; + + &:before { + content: ''; + position: absolute; + top: 0; + left: calc(30% - 2px); + bottom: 0; + width: $timeline-border-width; + background: $global-primary-background; + } + + &:after { + content: ""; + display: table; + clear: both; + } + } + + .tm-timeline-entry { + + .tm-timeline-entry{ + margin-top: $global-large-margin; + } + clear: both; + text-align: left; + position: relative; + + &:after { + display: block; + content: ""; + clear: both; + } + + .tm-timeline-time { + float: left; + width: 30%; + padding-right: $global-large-margin; + text-align: right; + position: relative; + + &:before { + content: ''; + position: absolute; + width: $timeline-dot-diameter; + height: $timeline-dot-diameter; + border: $timeline-border-width solid $global-primary-background; + background-color: #fff; + border-radius: 100%; + top: 0; + right: - 14px; + z-index: 99; + } + + h5 { + margin: 3px 0 0; + } + } + + .tm-timeline-body { + float: right; + width: 70%; + padding-left: $global-large-margin; + margin-top: -2px; + h3 { + margin: 0 0 15px; + span { + padding: 1px 7px; + } + } + + } + } + } + +} + + diff --git a/_sass/theme/uikit.scss b/_sass/theme/uikit.scss new file mode 100644 index 0000000..09e4949 --- /dev/null +++ b/_sass/theme/uikit.scss @@ -0,0 +1,93 @@ +// Import UIkit components + +// Base +@import "../uikit/components/variables.scss"; +@import "../uikit/components/mixin.scss"; +@import "../uikit/components/base.scss"; + +// Elements +@import "../uikit/components/link.scss"; +@import "../uikit/components/heading.scss"; +@import "../uikit/components/divider.scss"; +@import "../uikit/components/list.scss"; +// @import "../uikit/components/description-list.scss"; +@import "../uikit/components/table.scss"; +@import "../uikit/components/icon.scss"; +// @import "../uikit/components/form-range.scss"; +@import "../uikit/components/form.scss"; // After: Icon, Form Range +@import "../uikit/components/button.scss"; + +// Layout +@import "../uikit/components/section.scss"; +@import "../uikit/components/container.scss"; +@import "../uikit/components/grid.scss"; +@import "../uikit/components/tile.scss"; +@import "../uikit/components/card.scss"; + +// Common +@import "../uikit/components/close.scss"; // After: Icon +// @import "../uikit/components/spinner.scss"; // After: Icon +@import "../uikit/components/totop.scss"; // After: Icon +// @import "../uikit/components/marker.scss"; // After: Icon +@import "../uikit/components/alert.scss"; // After: Close +// @import "../uikit/components/badge.scss"; +@import "../uikit/components/label.scss"; +@import "../uikit/components/overlay.scss"; // After: Icon +@import "../uikit/components/article.scss"; // After: Subnav +// @import "../uikit/components/comment.scss"; // After: Subnav +@import "../uikit/components/search.scss"; // After: Icon + +// Navs +@import "../uikit/components/nav.scss"; +@import "../uikit/components/navbar.scss"; // After: Card, Grid, Nav, Icon, Search +@import "../uikit/components/subnav.scss"; +// @import "../uikit/components/breadcrumb.scss"; +@import "../uikit/components/pagination.scss"; +// @import "../uikit/components/tab.scss"; +@import "../uikit/components/slidenav.scss"; // After: Icon +// @import "../uikit/components/dotnav.scss"; +// @import "../uikit/components/thumbnav.scss"; + +// JavaScript +@import "../uikit/components/accordion.scss"; +@import "../uikit/components/drop.scss"; // After: Card +@import "../uikit/components/dropdown.scss"; // After: Card +// @import "../uikit/components/modal.scss"; // After: Close +@import "../uikit/components/lightbox.scss"; // After: Close +@import "../uikit/components/slideshow.scss"; +@import "../uikit/components/slider.scss"; +@import "../uikit/components/sticky.scss"; +@import "../uikit/components/offcanvas.scss"; +// @import "../uikit/components/switcher.scss"; +// Scrollspy +// Toggle +// Scroll + +// Additional +// @import "../uikit/components/iconnav.scss"; +// @import "../uikit/components/notification.scss"; +// @import "../uikit/components/tooltip.scss"; +// @import "../uikit/components/placeholder.scss"; +// @import "../uikit/components/progress.scss"; +// @import "../uikit/components/sortable.scss"; +// @import "../uikit/components/countdown.scss"; + +// Utilities +@import "../uikit/components/animation.scss"; +@import "../uikit/components/width.scss"; +@import "../uikit/components/text.scss"; +@import "../uikit/components/column.scss"; +@import "../uikit/components/cover.scss"; +@import "../uikit/components/background.scss"; +@import "../uikit/components/align.scss"; +@import "../uikit/components/utility.scss"; +@import "../uikit/components/flex.scss"; // After: Utility +@import "../uikit/components/margin.scss"; +@import "../uikit/components/padding.scss"; +@import "../uikit/components/position.scss"; +@import "../uikit/components/transition.scss"; +@import "../uikit/components/visibility.scss"; +@import "../uikit/components/inverse.scss"; + +// Need to be loaded last +@import "../uikit/components/print.scss"; diff --git a/_sass/theme/variables.scss b/_sass/theme/variables.scss new file mode 100644 index 0000000..74f5c87 --- /dev/null +++ b/_sass/theme/variables.scss @@ -0,0 +1,168 @@ +// Docs Theme Variables +// ======================================================================== + +// Color +$global-color: #323247; +$global-muted-color: #6B7990; +$global-primary-background: #0070FF; +$global-secondary-background: #1D282E; +$global-warning-background: #fbc418; +$global-success-background: #403e56; +$global-danger-background: #f0506e; +$base-link-color: $global-color; +$base-link-hover-color: $global-color; +$link-muted-hover-color: $global-color; +$badge-background: $global-color; + +// Font +$global-font-family: system-ui; +$global-xxlarge-font-size: 2.00rem; // H1 +$global-xlarge-font-size: 1.6875rem; // H2 +$global-large-font-size: 1.375rem; // H3 +$global-medium-font-size: 1.125rem; // H4 +$global-small-font-size: 0.875rem; +$xsmall-font-size: 0.8125rem; +$heading-primary-font-size: 1.8rem; +$heading-primary-font-size-m: 3.8rem; +$heading-primary-font-size-s: 0.8rem; +$heading-hero-font-size: 2.5rem; +$heading-hero-font-size-m: 5rem; +$heading-hero-font-size-s: 2.5rem; + +$base-heading-font-weight: bold; +$base-heading-margin-top: 50px; +$base-h2-line-height: 1.4; +$text-lead-font-size: 1.125rem; +$text-lead-color: $global-muted-color; + +// Borders +$global-border: #e5e5e5; +$border-light: #ebecee; +$border-xlight: #EEF1F4; + +// Border radius +$border-rounded-border-radius: 5px; +$border-radius-small: 6px; +$border-radius-medium: 6px; +$border-radius-large: 16px; + +// Pre & Code +$base-code-font-family: Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif; +$base-code-color: darken($global-primary-background, 3%); +$base-pre-font-size: $global-small-font-size; +$base-pre-line-height: 1.65; +$base-pre-font-family: $base-code-font-family; +$base-pre-color: $base-code-color; + +// Container +$container-xxsmall: 560px; + +// Box shadow +$global-medium-box-shadow: 0 5px 15px rgba(0,0,0,0.08); +$global-large-box-shadow: 0 10px 35px rgba(0,0,0,0.12); +$global-xlarge-box-shadow: 0 28px 50px rgba(0,0,0,0.16); + +// Logo +$logo-font-size: 1.5rem; +$logo-color: $global-color; +$logo-hover-color: $global-color; + +// Table +$table-divider-border: $border-light; + +// Buttons +$button-default-color: $global-secondary-background; +$button-default-hover-background: $global-secondary-background; +$button-default-hover-color: #fff; +$button-default-active-background: $global-secondary-background; +$button-default-active-color: #fff; +$button-default-border: $global-secondary-background; +$button-default-hover-border: $global-secondary-background; +$button-default-active-border: $global-secondary-background; +$button-warning-background: $global-warning-background; +$button-warning-hover-background: darken($button-warning-background, 7%); +$button-success-background: $global-success-background; +$button-success-hover-background: darken($button-success-background, 5%); + +// Label +$label-font-size: $xsmall-font-size; +$label-border-radius: 20px; +$label-text-transform: unset; +$label-padding-vertical: 2px; + +// Navbar +$navbar-background: #fff; +$navbar-nav-item-color: $global-color; +$navbar-nav-item-hover-color: $global-primary-background; +$navbar-nav-item-active-color: $global-primary-background; +$navbar-nav-item-font-size: 1rem; +$navbar-nav-item-text-transform: none; +$navbar-toggle-color: $global-color; +$navbar-toggle-hover-color: $global-primary-background; + +// Navbar dropdown +$navbar-dropdown-margin: 1px; +$navbar-dropdown-nav-item-color: $global-color; +$navbar-dropdown-nav-item-hover-color: $global-primary-background; +$navbar-dropdown-nav-item-active-color: $global-primary-background; + +// Subnav +$subnav-item-color: $global-muted-color; +$subnav-item-hover-color: $global-color; +$subnav-item-active-color: $global-color; +$subnav-item-text-transform: none; + +// Pagination links +$pagination-item-color: $global-color; +$pagination-item-hover-color: $global-color; + +// Article +$article-meta-font-size: $xsmall-font-size; +$article-meta-line-height: 1.4; +$article-title-line-height: 1.4; +$article-title-font-size: 2.125rem; + +// Section +$section-padding-vertical-m: 60px; + +// Card +$card-small-body-padding-horizontal: 25px; +$card-small-body-padding-vertical: 25px; +$card-body-padding-vertical-l: 32px; +$card-body-padding-horizontal-l: 40px; +$card-default-color: $global-muted-color; +$card-default-title-color: $global-color; + +// Offcanvas +$offcanvas-bar-color-mode: dark; +$offcanvas-bar-background: #fff; +$offcanvas-bar-width: 320px; + +// Search +$search-color: $global-color; +$search-placeholder-color: #6e747c; //$global-muted-color; +$search-icon-color: #6e747c; //$global-muted-color; +$search-default-border: $border-xlight; +$search-default-background: #fff; + +// Accordion +$accordion-item-margin-top: 16px; +$accordion-title-font-size: $global-medium-font-size; +$accordion-title-color: $global-primary-background; +$accordion-title-hover-color: $global-primary-background; +$accordion-content-margin-top: 16px; +$accordion-icon-color: $global-primary-background; +$accordion-icon-background-color: lighten( $global-primary-background, 57% ); +$internal-accordion-open-image: "data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline fill='none' stroke='#000' stroke-width='1.03' points='4 13 10 7 16 13' /%3E%3C/svg%3E"; +$internal-accordion-close-image: "data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline fill='none' stroke='#000' stroke-width='1.03' points='16 7 10 13 4 7' /%3E%3C/svg%3E"; + +// Featured +$featured-right-image: "data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline fill='none' stroke='#000' stroke-width='1.03' points='7 4 13 10 7 16' /%3E%3C/svg%3E%0A"; + +// Doc navigation +$docs-sidebar-width: 260px; +$docs-sidebar-width-l: 360px; + +// Changelog +$timeline-border-width: 4px; +$timeline-dot-diameter: 20px; diff --git a/_sass/uikit/components/_import.components.scss b/_sass/uikit/components/_import.components.scss new file mode 100644 index 0000000..445384f --- /dev/null +++ b/_sass/uikit/components/_import.components.scss @@ -0,0 +1,56 @@ +// Base +@import "variables.scss"; +@import "mixin.scss"; +@import "base.scss"; + +// Elements +@import "link.scss"; +@import "heading.scss"; +@import "divider.scss"; +@import "list.scss"; +@import "description-list.scss"; +@import "table.scss"; +@import "icon.scss"; +@import "form.scss"; // After: Icon +@import "button.scss"; + +// Layout +@import "section.scss"; +@import "container.scss"; +@import "grid.scss"; +@import "tile.scss"; +@import "card.scss"; + +// Common +@import "close.scss"; // After: Icon +@import "spinner.scss"; // After: Icon +@import "totop.scss"; // After: Icon +@import "alert.scss"; // After: Close +@import "badge.scss"; +@import "label.scss"; +@import "overlay.scss"; // After: Icon +@import "article.scss"; // After: Subnav +@import "comment.scss"; // After: Subnav +@import "search.scss"; // After: Icon + +// Navs +@import "nav.scss"; +@import "navbar.scss"; // After: Card, Grid, Nav, Icon, Search +@import "subnav.scss"; +@import "breadcrumb.scss"; +@import "pagination.scss"; +@import "tab.scss"; +@import "slidenav.scss"; // After: Icon +@import "dotnav.scss"; + +// JavaScript +@import "accordion.scss"; +@import "drop.scss"; // After: Card +@import "dropdown.scss"; // After: Card +@import "modal.scss"; // After: Close +@import "sticky.scss"; +@import "offcanvas.scss"; +@import "switcher.scss"; +// Scrollspy +// Toggle +// Scroll diff --git a/_sass/uikit/components/_import.scss b/_sass/uikit/components/_import.scss new file mode 100644 index 0000000..b3749a2 --- /dev/null +++ b/_sass/uikit/components/_import.scss @@ -0,0 +1,91 @@ +// Base +@import "variables.scss"; +@import "mixin.scss"; +@import "base.scss"; + +// Elements +@import "link.scss"; +@import "heading.scss"; +@import "divider.scss"; +@import "list.scss"; +@import "description-list.scss"; +@import "table.scss"; +@import "icon.scss"; +@import "form-range.scss"; +@import "form.scss"; // After: Icon, Form Range +@import "button.scss"; + +// Layout +@import "section.scss"; +@import "container.scss"; +@import "grid.scss"; +@import "tile.scss"; +@import "card.scss"; + +// Common +@import "close.scss"; // After: Icon +@import "spinner.scss"; // After: Icon +@import "totop.scss"; // After: Icon +@import "marker.scss"; // After: Icon +@import "alert.scss"; // After: Close +@import "badge.scss"; +@import "label.scss"; +@import "overlay.scss"; // After: Icon +@import "article.scss"; // After: Subnav +@import "comment.scss"; // After: Subnav +@import "search.scss"; // After: Icon + +// Navs +@import "nav.scss"; +@import "navbar.scss"; // After: Card, Grid, Nav, Icon, Search +@import "subnav.scss"; +@import "breadcrumb.scss"; +@import "pagination.scss"; +@import "tab.scss"; +@import "slidenav.scss"; // After: Icon +@import "dotnav.scss"; +@import "thumbnav.scss"; + +// JavaScript +@import "accordion.scss"; +@import "drop.scss"; // After: Card +@import "dropdown.scss"; // After: Card +@import "modal.scss"; // After: Close +@import "lightbox.scss"; // After: Close +@import "slideshow.scss"; +@import "slider.scss"; +@import "sticky.scss"; +@import "offcanvas.scss"; +@import "switcher.scss"; +// Scrollspy +// Toggle +// Scroll + +// Additional +@import "iconnav.scss"; +@import "notification.scss"; +@import "tooltip.scss"; +@import "placeholder.scss"; +@import "progress.scss"; +@import "sortable.scss"; +@import "countdown.scss"; + +// Utilities +@import "animation.scss"; +@import "width.scss"; +@import "text.scss"; +@import "column.scss"; +@import "cover.scss"; +@import "background.scss"; +@import "align.scss"; +@import "utility.scss"; +@import "flex.scss"; // After: Utility +@import "margin.scss"; +@import "padding.scss"; +@import "position.scss"; +@import "transition.scss"; +@import "visibility.scss"; +@import "inverse.scss"; + +// Need to be loaded last +@import "print.scss"; diff --git a/_sass/uikit/components/_import.utilities.scss b/_sass/uikit/components/_import.utilities.scss new file mode 100644 index 0000000..bea39e5 --- /dev/null +++ b/_sass/uikit/components/_import.utilities.scss @@ -0,0 +1,19 @@ +// Utilities +@import "animation.scss"; +@import "width.scss"; +@import "text.scss"; +@import "column.scss"; +@import "cover.scss"; +@import "background.scss"; +@import "align.scss"; +@import "utility.scss"; +@import "flex.scss"; // After: Utility +@import "margin.scss"; +@import "padding.scss"; +@import "position.scss"; +@import "transition.scss"; +@import "visibility.scss"; +@import "inverse.scss"; + +// Need to be loaded last +@import "print.scss"; diff --git a/_sass/uikit/components/accordion.scss b/_sass/uikit/components/accordion.scss new file mode 100644 index 0000000..bfb0e81 --- /dev/null +++ b/_sass/uikit/components/accordion.scss @@ -0,0 +1,118 @@ +// Name: Accordion +// Description: Component to create accordions +// +// Component: `uk-accordion` +// +// Sub-objects: `uk-accordion-title` +// `uk-accordion-content` +// +// States: `uk-open` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$accordion-item-margin-top: $global-margin !default; + +$accordion-title-font-size: $global-medium-font-size !default; +$accordion-title-line-height: 1.4 !default; +$accordion-title-color: $global-emphasis-color !default; +$accordion-title-hover-color: $global-color !default; + +$accordion-content-margin-top: $global-margin !default; + + +/* ======================================================================== + Component: Accordion + ========================================================================== */ + +.uk-accordion { + padding: 0; + list-style: none; + @if(mixin-exists(hook-accordion)) {@include hook-accordion();} +} + + +/* Item + ========================================================================== */ + +.uk-accordion > :nth-child(n+2) { + margin-top: $accordion-item-margin-top; + @if(mixin-exists(hook-accordion-item)) {@include hook-accordion-item();} +} + + +/* Title + ========================================================================== */ + +.uk-accordion-title { + display: block; + font-size: $accordion-title-font-size; + line-height: $accordion-title-line-height; + color: $accordion-title-color; + @if(mixin-exists(hook-accordion-title)) {@include hook-accordion-title();} +} + +/* Hover + Focus */ +.uk-accordion-title:hover, +.uk-accordion-title:focus { + color: $accordion-title-hover-color; + text-decoration: none; + outline: none; + @if(mixin-exists(hook-accordion-title-hover)) {@include hook-accordion-title-hover();} +} + + +/* Content + ========================================================================== */ + +.uk-accordion-content { + margin-top: $accordion-content-margin-top; + @if(mixin-exists(hook-accordion-content)) {@include hook-accordion-content();} +} + +/* + * Micro clearfix + */ + +.uk-accordion-content::before, +.uk-accordion-content::after { + content: ""; + display: table; +} + +.uk-accordion-content::after { clear: both; } + +/* + * Remove margin from the last-child + */ + + .uk-accordion-content > :last-child { margin-bottom: 0; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-accordion-misc)) {@include hook-accordion-misc();} + +// @mixin hook-accordion(){} +// @mixin hook-accordion-item(){} +// @mixin hook-accordion-title(){} +// @mixin hook-accordion-title-hover(){} +// @mixin hook-accordion-content(){} +// @mixin hook-accordion-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-accordion-title-color: $inverse-global-emphasis-color !default; +$inverse-accordion-title-hover-color: $inverse-global-inverse-color !default; + + + +// @mixin hook-inverse-accordion-item(){} +// @mixin hook-inverse-accordion-title(){} +// @mixin hook-inverse-accordion-title-hover(){} \ No newline at end of file diff --git a/_sass/uikit/components/alert.scss b/_sass/uikit/components/alert.scss new file mode 100644 index 0000000..8922cc8 --- /dev/null +++ b/_sass/uikit/components/alert.scss @@ -0,0 +1,147 @@ +// Name: Alert +// Description: Component to create alert messages +// +// Component: `uk-alert` +// +// Adopted: `uk-alert-close` +// +// Modifiers: `uk-alert-primary` +// `uk-alert-success` +// `uk-alert-warning` +// `uk-alert-danger` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$alert-margin-vertical: $global-margin !default; +$alert-padding: $global-small-gutter !default; +$alert-padding-right: $alert-padding + 14px !default; +$alert-background: $global-muted-background !default; +$alert-color: $global-color !default; + +$alert-close-top: $alert-padding + 5px !default; +$alert-close-right: $alert-padding !default; + +$alert-primary-background: lighten(mix(white, $global-primary-background, 40%), 20%) !default; +$alert-primary-color: $global-primary-background !default; + +$alert-success-background: lighten(mix(white, $global-success-background, 40%), 25%) !default; +$alert-success-color: $global-success-background !default; + +$alert-warning-background: lighten(mix(white, $global-warning-background, 45%), 15%) !default; +$alert-warning-color: $global-warning-background !default; + +$alert-danger-background: lighten(mix(white, $global-danger-background, 40%), 20%) !default; +$alert-danger-color: $global-danger-background !default; + + +/* ======================================================================== + Component: Alert + ========================================================================== */ + +.uk-alert { + position: relative; + margin-bottom: $alert-margin-vertical; + padding: $alert-padding $alert-padding-right $alert-padding $alert-padding; + background: $alert-background; + color: $alert-color; + @if(mixin-exists(hook-alert)) {@include hook-alert();} +} + +/* Add margin if adjacent element */ +* + .uk-alert { margin-top: $alert-margin-vertical; } + +/* + * Remove margin from the last-child + */ + +.uk-alert > :last-child { margin-bottom: 0; } + + +/* Close + * Adopts `uk-close` + ========================================================================== */ + +.uk-alert-close { + position: absolute; + top: $alert-close-top; + right: $alert-close-right; + @if(mixin-exists(hook-alert-close)) {@include hook-alert-close();} +} + +/* + * Remove margin from adjacent element + */ + +.uk-alert-close:first-child + * { margin-top: 0; } + +/* + * Hover + Focus + */ + +.uk-alert-close:hover, +.uk-alert-close:focus { + @if(mixin-exists(hook-alert-close-hover)) {@include hook-alert-close-hover();} +} + + +/* Style modifiers + ========================================================================== */ + +/* + * Primary + */ + +.uk-alert-primary { + background: $alert-primary-background; + color: $alert-primary-color; + @if(mixin-exists(hook-alert-primary)) {@include hook-alert-primary();} +} + +/* + * Success + */ + +.uk-alert-success { + background: $alert-success-background; + color: $alert-success-color; + @if(mixin-exists(hook-alert-success)) {@include hook-alert-success();} +} + +/* + * Warning + */ + +.uk-alert-warning { + background: $alert-warning-background; + color: $alert-warning-color; + @if(mixin-exists(hook-alert-warning)) {@include hook-alert-warning();} +} + +/* + * Danger + */ + +.uk-alert-danger { + background: $alert-danger-background; + color: $alert-danger-color; + @if(mixin-exists(hook-alert-danger)) {@include hook-alert-danger();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-alert-misc)) {@include hook-alert-misc();} + +// @mixin hook-alert(){} +// @mixin hook-alert-close(){} +// @mixin hook-alert-close-hover(){} +// @mixin hook-alert-primary(){} +// @mixin hook-alert-success(){} +// @mixin hook-alert-warning(){} +// @mixin hook-alert-danger(){} +// @mixin hook-alert-misc(){} \ No newline at end of file diff --git a/_sass/uikit/components/align.scss b/_sass/uikit/components/align.scss new file mode 100644 index 0000000..bee6702 --- /dev/null +++ b/_sass/uikit/components/align.scss @@ -0,0 +1,142 @@ +// Name: Align +// Description: Utilities to align embedded content +// +// Component: `uk-align-left-*` +// `uk-align-right-*` +// `uk-align-center` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$align-margin-horizontal: $global-gutter !default; +$align-margin-vertical: $global-gutter !default; + +$align-margin-horizontal-l: $global-medium-gutter !default; + + +/* ======================================================================== + Component: Align + ========================================================================== */ + +/* + * Default + */ + +[class*='uk-align'] { + display: block; + margin-bottom: $align-margin-vertical; +} + +* + [class*='uk-align'] { margin-top: $align-margin-vertical; } + +/* + * Center + */ + +.uk-align-center { + margin-left: auto; + margin-right: auto; +} + +/* + * Left/Right + */ + +.uk-align-left { + margin-top: 0; + margin-right: $align-margin-horizontal; + float: left; +} + +.uk-align-right { + margin-top: 0; + margin-left: $align-margin-horizontal; + float: right; +} + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-align-left\@s { + margin-top: 0; + margin-right: $align-margin-horizontal; + float: left; + } + + .uk-align-right\@s { + margin-top: 0; + margin-left: $align-margin-horizontal; + float: right; + } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-align-left\@m { + margin-top: 0; + margin-right: $align-margin-horizontal; + float: left; + } + + .uk-align-right\@m { + margin-top: 0; + margin-left: $align-margin-horizontal; + float: right; + } + +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-align-left\@l { + margin-top: 0; + float: left; + } + + .uk-align-right\@l { + margin-top: 0; + float: right; + } + + .uk-align-left, + .uk-align-left\@s, + .uk-align-left\@m, + .uk-align-left\@l { margin-right: $align-margin-horizontal-l; } + + .uk-align-right, + .uk-align-right\@s, + .uk-align-right\@m, + .uk-align-right\@l { margin-left: $align-margin-horizontal-l; } + +} + +/* Large screen and bigger */ +@media (min-width: $breakpoint-xlarge) { + + .uk-align-left\@xl { + margin-top: 0; + margin-right: $align-margin-horizontal-l; + float: left; + } + + .uk-align-right\@xl { + margin-top: 0; + margin-left: $align-margin-horizontal-l; + float: right; + } + +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-align-misc)) {@include hook-align-misc();} + +// @mixin hook-align-misc(){} \ No newline at end of file diff --git a/_sass/uikit/components/animation.scss b/_sass/uikit/components/animation.scss new file mode 100644 index 0000000..c1d9192 --- /dev/null +++ b/_sass/uikit/components/animation.scss @@ -0,0 +1,390 @@ +// Name: Animation +// Description: Utilities for keyframe animations +// +// Component: `uk-animation-*` +// +// Modifiers: `uk-animation-reverse` +// `uk-animation-fast` +// `uk-animation-fade` +// `uk-animation-scale-up` +// `uk-animation-scale-down` +// `uk-animation-slide-top-*` +// `uk-animation-slide-bottom-*` +// `uk-animation-slide-left-*` +// `uk-animation-slide-right-*` +// `uk-animation-kenburns` +// `uk-animation-shake` +// +// Sub-objects: `uk-animation-toggle` +// +// States: `uk-hover` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$animation-duration: 0.5s !default; +$animation-fade-duration: 0.8s !default; +$animation-kenburns-duration: 15s !default; +$animation-fast-duration: 0.1s !default; + +$animation-slide-small-translate: 10px !default; +$animation-slide-medium-translate: 50px !default; + + +/* ======================================================================== + Component: Animation + ========================================================================== */ + +[class*='uk-animation-'] { + animation-duration: $animation-duration; + animation-timing-function: ease-out; + animation-fill-mode: both; +} + + +/* Direction modifier + ========================================================================== */ + +.uk-animation-reverse { + animation-direction: reverse; + animation-timing-function: ease-in; +} + + +/* Animations for scrollspy + ========================================================================== */ + +/* + * Fade + */ + +.uk-animation-fade { + animation-name: uk-fade; + animation-duration: $animation-fade-duration; + animation-timing-function: linear; +} + +/* + * Scale + */ + +.uk-animation-scale-up { animation-name: uk-fade-scale-02; } +.uk-animation-scale-down { animation-name: uk-fade-scale-18; } + +/* + * Slide + */ + +.uk-animation-slide-top { animation-name: uk-fade-top; } +.uk-animation-slide-bottom { animation-name: uk-fade-bottom; } +.uk-animation-slide-left { animation-name: uk-fade-left; } +.uk-animation-slide-right { animation-name: uk-fade-right; } + +/* + * Slide Small + */ + +.uk-animation-slide-top-small { animation-name: uk-fade-top-small; } +.uk-animation-slide-bottom-small { animation-name: uk-fade-bottom-small; } +.uk-animation-slide-left-small { animation-name: uk-fade-left-small; } +.uk-animation-slide-right-small { animation-name: uk-fade-right-small; } + +/* + * Slide Medium + */ + +.uk-animation-slide-top-medium { animation-name: uk-fade-top-medium; } +.uk-animation-slide-bottom-medium { animation-name: uk-fade-bottom-medium; } +.uk-animation-slide-left-medium { animation-name: uk-fade-left-medium; } +.uk-animation-slide-right-medium { animation-name: uk-fade-right-medium; } + +/* + * Kenburns + */ + +.uk-animation-kenburns { + animation-name: uk-scale-kenburns; + animation-duration: $animation-kenburns-duration; +} + +/* + * Shake + */ + +.uk-animation-shake { animation-name: uk-shake; } + + +/* Duration modifier + ========================================================================== */ + +.uk-animation-fast { animation-duration: $animation-fast-duration; } + + +/* Enable animation only on hover +========================================================================== */ + +/* + * Note: Firefox and IE needs this because animations are not triggered when switching between display `none` and `block` + */ + +.uk-animation-toggle:not(:hover):not(.uk-hover) [class*='uk-animation-'] { animation-name: none; } + + +/* Keyframes used by animation classes + ========================================================================== */ + +/* + * Fade + */ + +@keyframes uk-fade { + 0% { opacity: 0; } + 100% { opacity: 1; } +} + +/* + * Slide Top + */ + +@keyframes uk-fade-top { + 0% { + opacity: 0; + transform: translateY(-100%); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} + +/* + * Slide Bottom + */ + +@keyframes uk-fade-bottom { + 0% { + opacity: 0; + transform: translateY(100%); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} + +/* + * Slide Left + */ + +@keyframes uk-fade-left { + 0% { + opacity: 0; + transform: translateX(-100%); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} + +/* + * Slide Right + */ + +@keyframes uk-fade-right { + 0% { + opacity: 0; + transform: translateX(100%); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} + +/* + * Slide Top Small + */ + +@keyframes uk-fade-top-small { + 0% { + opacity: 0; + transform: translateY(-$animation-slide-small-translate); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} + +/* + * Slide Bottom Small + */ + +@keyframes uk-fade-bottom-small { + 0% { + opacity: 0; + transform: translateY($animation-slide-small-translate); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} + +/* + * Slide Left Small + */ + +@keyframes uk-fade-left-small { + 0% { + opacity: 0; + transform: translateX(-$animation-slide-small-translate); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} + +/* + * Slide Right Small + */ + +@keyframes uk-fade-right-small { + 0% { + opacity: 0; + transform: translateX($animation-slide-small-translate); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} + +/* + * Slide Top Medium + */ + +@keyframes uk-fade-top-medium { + 0% { + opacity: 0; + transform: translateY(-$animation-slide-medium-translate); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} + +/* + * Slide Bottom Medium + */ + +@keyframes uk-fade-bottom-medium { + 0% { + opacity: 0; + transform: translateY($animation-slide-medium-translate); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} + +/* + * Slide Left Medium + */ + +@keyframes uk-fade-left-medium { + 0% { + opacity: 0; + transform: translateX(-$animation-slide-medium-translate); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} + +/* + * Slide Right Medium + */ + +@keyframes uk-fade-right-medium { + 0% { + opacity: 0; + transform: translateX($animation-slide-medium-translate); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} + +/* + * Scale Up + */ + +@keyframes uk-fade-scale-02 { + 0% { + opacity: 0; + transform: scale(0.2); + } + 100% { + opacity: 1; + transform: scale(1); + } +} + +/* + * Scale Down + */ + +@keyframes uk-fade-scale-18 { + 0% { + opacity: 0; + transform: scale(1.8); + } + 100% { + opacity: 1; + transform: scale(1); + } +} + +/* + * Kenburns + */ + +@keyframes uk-scale-kenburns { + 0% { transform: scale(1); } + 100% { transform: scale(1.2); } +} + +/* + * Shake + */ + +@keyframes uk-shake { + 0%, 100% { transform: translateX(0); } + 10% { transform: translateX(-9px); } + 20% { transform: translateX(8px); } + 30% { transform: translateX(-7px); } + 40% { transform: translateX(6px); } + 50% { transform: translateX(-5px); } + 60% { transform: translateX(4px); } + 70% { transform: translateX(-3px); } + 80% { transform: translateX(2px); } + 90% { transform: translateX(-1px); } +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-animation-misc)) {@include hook-animation-misc();} + +// @mixin hook-animation-misc(){} diff --git a/_sass/uikit/components/article.scss b/_sass/uikit/components/article.scss new file mode 100644 index 0000000..9cc470f --- /dev/null +++ b/_sass/uikit/components/article.scss @@ -0,0 +1,102 @@ +// Name: Article +// Description: Component to create articles +// +// Component: `uk-article` +// +// Sub-objects: `uk-article-title` +// `uk-article-meta` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$article-margin-top: $global-large-margin !default; + +$article-title-font-size: $global-xxlarge-font-size !default; +$article-title-line-height: 1.2 !default; + +$article-meta-font-size: $global-small-font-size !default; +$article-meta-line-height: 1.4 !default; +$article-meta-color: $global-muted-color !default; + + +/* ======================================================================== + Component: Article + ========================================================================== */ + +.uk-article { + @if(mixin-exists(hook-article)) {@include hook-article();} +} + +/* + * Micro clearfix + */ + +.uk-article::before, +.uk-article::after { + content: ""; + display: table; +} + +.uk-article::after { clear: both; } + +/* + * Remove margin from the last-child + */ + +.uk-article > :last-child { margin-bottom: 0; } + + +/* Adjacent sibling + ========================================================================== */ + +.uk-article + .uk-article { + margin-top: $article-margin-top; + @if(mixin-exists(hook-article-adjacent)) {@include hook-article-adjacent();} +} + + +/* Title + ========================================================================== */ + +.uk-article-title { + font-size: $article-title-font-size; + line-height: $article-title-line-height; + @if(mixin-exists(hook-article-title)) {@include hook-article-title();} +} + + +/* Meta + ========================================================================== */ + +.uk-article-meta { + font-size: $article-meta-font-size; + line-height: $article-meta-line-height; + color: $article-meta-color; + @if(mixin-exists(hook-article-meta)) {@include hook-article-meta();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-article-misc)) {@include hook-article-misc();} + +// @mixin hook-article(){} +// @mixin hook-article-adjacent(){} +// @mixin hook-article-title(){} +// @mixin hook-article-meta(){} +// @mixin hook-article-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-article-meta-color: $inverse-global-muted-color !default; + + + +// @mixin hook-inverse-article-title(){} +// @mixin hook-inverse-article-meta(){} \ No newline at end of file diff --git a/_sass/uikit/components/background.scss b/_sass/uikit/components/background.scss new file mode 100644 index 0000000..ca7a344 --- /dev/null +++ b/_sass/uikit/components/background.scss @@ -0,0 +1,136 @@ +// Name: Background +// Description: Utilities for backgrounds +// +// Component: `uk-background-*` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$background-default-background: $global-background !default; +$background-muted-background: $global-muted-background !default; +$background-primary-background: $global-primary-background !default; +$background-secondary-background: $global-secondary-background !default; + + +/* ======================================================================== + Component: Background + ========================================================================== */ + + +/* Color + ========================================================================== */ + +.uk-background-default { background-color: $background-default-background; } +.uk-background-muted { background-color: $background-muted-background; } +.uk-background-primary { background-color: $background-primary-background; } +.uk-background-secondary { background-color: $background-secondary-background; } + + +/* Size + ========================================================================== */ + +.uk-background-cover, +.uk-background-contain { + background-position: 50% 50%; + background-repeat: no-repeat; +} + +.uk-background-cover { background-size: cover; } +.uk-background-contain { background-size: contain; } + + +/* Position + ========================================================================== */ + +.uk-background-top-left { background-position: 0 0; } +.uk-background-top-center { background-position: 50% 0; } +.uk-background-top-right { background-position: 100% 0; } +.uk-background-center-left { background-position: 0 50%; } +.uk-background-center-center { background-position: 50% 50%; } +.uk-background-center-right { background-position: 100% 50%; } +.uk-background-bottom-left { background-position: 0 100%; } +.uk-background-bottom-center { background-position: 50% 100%; } +.uk-background-bottom-right { background-position: 100% 100%; } + + +/* Repeat + ========================================================================== */ + +.uk-background-norepeat { background-repeat: no-repeat; } + + +/* Attachment + ========================================================================== */ + +.uk-background-fixed { background-attachment: fixed; } + +/* + * Exclude touch devices because `fixed` doesn't work on iOS and Android + */ + +@media (pointer: coarse) { + .uk-background-fixed { background-attachment: scroll; } +} + + +/* Image + ========================================================================== */ + +/* Phone portrait and smaller */ +@media (max-width: $breakpoint-xsmall-max) { + + .uk-background-image\@s { background-image: none !important; } + +} + +/* Phone landscape and smaller */ +@media (max-width: $breakpoint-small-max) { + + .uk-background-image\@m { background-image: none !important; } + +} + +/* Tablet landscape and smaller */ +@media (max-width: $breakpoint-medium-max) { + + .uk-background-image\@l { background-image: none !important; } + +} + +/* Desktop and smaller */ +@media (max-width: $breakpoint-large-max) { + + .uk-background-image\@xl {background-image: none !important; } + +} + + +/* Blend modes + ========================================================================== */ + +.uk-background-blend-multiply { background-blend-mode: multiply; } +.uk-background-blend-screen { background-blend-mode: screen; } +.uk-background-blend-overlay { background-blend-mode: overlay; } +.uk-background-blend-darken { background-blend-mode: darken; } +.uk-background-blend-lighten { background-blend-mode: lighten; } +.uk-background-blend-color-dodge { background-blend-mode: color-dodge; } +.uk-background-blend-color-burn { background-blend-mode: color-burn; } +.uk-background-blend-hard-light { background-blend-mode: hard-light; } +.uk-background-blend-soft-light { background-blend-mode: soft-light; } +.uk-background-blend-difference { background-blend-mode: difference; } +.uk-background-blend-exclusion { background-blend-mode: exclusion; } +.uk-background-blend-hue { background-blend-mode: hue; } +.uk-background-blend-saturation { background-blend-mode: saturation; } +.uk-background-blend-color { background-blend-mode: color; } +.uk-background-blend-luminosity { background-blend-mode: luminosity; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-background-misc)) {@include hook-background-misc();} + +// @mixin hook-background-misc(){} diff --git a/_sass/uikit/components/badge.scss b/_sass/uikit/components/badge.scss new file mode 100644 index 0000000..d076c5d --- /dev/null +++ b/_sass/uikit/components/badge.scss @@ -0,0 +1,83 @@ +// Name: Badge +// Description: Component to create notification badges + +// Component: `uk-badge` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$badge-size: 22px !default; +$badge-padding-vertical: 0 !default; +$badge-padding-horizontal: 5px !default; +$badge-border-radius: 500px !default; +$badge-background: $global-primary-background !default; +$badge-color: $global-inverse-color !default; +$badge-font-size: $global-small-font-size !default; + +$badge-hover-color: $global-inverse-color !default; + + +/* ======================================================================== + Component: Badge + ========================================================================== */ + +/* + * 1. Style + * 2. Center child vertically and horizontally + */ + +.uk-badge { + box-sizing: border-box; + min-width: $badge-size; + height: $badge-size; + padding: $badge-padding-vertical $badge-padding-horizontal; + border-radius: $badge-border-radius; + vertical-align: middle; + /* 1 */ + background: $badge-background; + color: $badge-color; + font-size: $badge-font-size; + /* 2 */ + display: inline-flex; + justify-content: center; + align-items: center; + @if(mixin-exists(hook-badge)) {@include hook-badge();} +} + +/* + * Required for `a` + */ + +.uk-badge:hover, +.uk-badge:focus { + color: $badge-hover-color; + text-decoration: none; + outline: none; + @if(mixin-exists(hook-badge-hover)) {@include hook-badge-hover();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-badge-misc)) {@include hook-badge-misc();} + +// @mixin hook-badge(){} +// @mixin hook-badge-hover(){} +// @mixin hook-badge-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-badge-background: $inverse-global-primary-background !default; +$inverse-badge-color: $inverse-global-inverse-color !default; +$inverse-badge-hover-color: $inverse-global-inverse-color !default; + + + +// @mixin hook-inverse-badge(){} +// @mixin hook-inverse-badge-hover(){} \ No newline at end of file diff --git a/_sass/uikit/components/base.scss b/_sass/uikit/components/base.scss new file mode 100644 index 0000000..138ecbb --- /dev/null +++ b/_sass/uikit/components/base.scss @@ -0,0 +1,612 @@ +// Name: Base +// Description: Default values for HTML elements +// +// Component: `uk-link` +// `uk-h1`, `uk-h2`, `uk-h3`, `uk-h4`, `uk-h5`, `uk-h6` +// `uk-hr` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$base-body-background: $global-background !default; +$base-body-font-family: $global-font-family !default; +$base-body-font-weight: normal !default; +$base-body-font-size: $global-font-size !default; +$base-body-line-height: $global-line-height !default; +$base-body-color: $global-color !default; + +$base-link-color: $global-link-color !default; +$base-link-text-decoration: none !default; +$base-link-hover-color: $global-link-hover-color !default; +$base-link-hover-text-decoration: underline !default; + +$base-strong-font-weight: bolder !default; +$base-code-font-size: $global-small-font-size !default; +$base-code-font-family: Consolas, monaco, monospace !default; +$base-code-color: $global-danger-background !default; +$base-em-color: $global-danger-background !default; +$base-ins-background: #ffd !default; +$base-ins-color: $global-color !default; +$base-mark-background: #ffd !default; +$base-mark-color: $global-color !default; +$base-quote-font-style: italic !default; +$base-small-font-size: 80% !default; + +$base-margin-vertical: $global-margin !default; + +$base-heading-font-family: $global-font-family !default; +$base-heading-font-weight: normal !default; +$base-heading-color: $global-emphasis-color !default; +$base-heading-text-transform: none !default; +$base-heading-margin-top: $global-medium-margin !default; +$base-h1-font-size: $global-xxlarge-font-size !default; +$base-h1-line-height: 1.2 !default; +$base-h2-font-size: $global-xlarge-font-size !default; +$base-h2-line-height: 1.3 !default; +$base-h3-font-size: $global-large-font-size !default; +$base-h3-line-height: 1.4 !default; +$base-h4-font-size: $global-medium-font-size !default; +$base-h4-line-height: 1.4 !default; +$base-h5-font-size: $global-font-size !default; +$base-h5-line-height: 1.4 !default; +$base-h6-font-size: $global-small-font-size !default; +$base-h6-line-height: 1.4 !default; + +$base-list-padding-left: 30px !default; + +$base-hr-margin-vertical: $global-margin !default; +$base-hr-border-width: $global-border-width !default; +$base-hr-border: $global-border !default; + +$base-blockquote-font-size: $global-medium-font-size !default; +$base-blockquote-line-height: 1.5 !default; +$base-blockquote-font-style: italic !default; +$base-blockquote-margin-vertical: $global-margin !default; +$base-blockquote-footer-margin-top: $global-small-margin !default; +$base-blockquote-footer-font-size: $global-small-font-size !default; +$base-blockquote-footer-line-height: 1.5 !default; + +$base-pre-font-size: $global-small-font-size !default; +$base-pre-line-height: 1.5 !default; +$base-pre-font-family: $base-code-font-family !default; +$base-pre-color: $global-color !default; + +$base-selection-background: #39f !default; +$base-selection-color: $global-inverse-color !default; + + +/* ======================================================================== + Component: Base + ========================================================================== */ + +/* + * 1. Set `font-size` to support `rem` units + * Not using `font` property because a leading hyphen (e.g. -apple-system) causes the font to break in IE11 and Edge + * 2. Prevent adjustments of font size after orientation changes in iOS. + * 3. Style + */ + +html { + /* 1 */ + font-family: $base-body-font-family; + font-size: $base-body-font-size; + font-weight: $base-body-font-weight; + line-height: $base-body-line-height; + /* 2 */ + -webkit-text-size-adjust: 100%; + /* 3 */ + background: $base-body-background; + color: $base-body-color; + @if(mixin-exists(hook-base-body)) {@include hook-base-body();} +} + +/* + * Remove the margin in all browsers. + */ + +body { margin: 0; } + + +/* Links + ========================================================================== */ + +/* + * Remove gaps in links underline in iOS 8+ and Safari 8+. + */ + +a { -webkit-text-decoration-skip: objects; } + +/* + * Remove the outline on focused links when they are also active or hovered + */ + +a:active, +a:hover { outline: none; } + +/* + * Style + */ + +a, +.uk-link { + color: $base-link-color; + text-decoration: $base-link-text-decoration; + cursor: pointer; + @if(mixin-exists(hook-base-link)) {@include hook-base-link();} +} + +a:hover, +.uk-link:hover { + color: $base-link-hover-color; + text-decoration: $base-link-hover-text-decoration; + @if(mixin-exists(hook-base-link-hover)) {@include hook-base-link-hover();} +} + + +/* Text-level semantics + ========================================================================== */ + +/* + * 1. Remove the bottom border in Chrome 57-. + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + /* 1 */ + border-bottom: none; + /* 2 */ + text-decoration: underline; + text-decoration: underline dotted; +} + + +/* + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { font-weight: $base-strong-font-weight; } + +/* + * 1. Consolas has a better baseline in running text compared to `Courier` + * 2. Correct the odd `em` font sizing in all browsers. + * 3. Style + */ + +:not(pre) > code, +:not(pre) > kbd, +:not(pre) > samp { + /* 1 */ + font-family: $base-code-font-family; + /* 2 */ + font-size: $base-code-font-size; + /* 3 */ + color: $base-code-color; + white-space: nowrap; + @if(mixin-exists(hook-base-code)) {@include hook-base-code();} +} + +/* + * Emphasize + */ + +em { color: $base-em-color; } + +/* + * Insert + */ + +ins { + background: $base-ins-background; + color: $base-ins-color; + text-decoration: none; +} + +/* + * Mark + */ + +mark { + background: $base-mark-background; + color: $base-mark-color; +} + +/* + * Quote + */ + +q { font-style: $base-quote-font-style; } + +/* + * Add the correct font size in all browsers. + */ + +small { font-size: $base-small-font-size; } + +/* + * Prevents `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 the gap between embedded content and the bottom of their containers. + */ + +audio, +canvas, +iframe, +img, +svg, +video { vertical-align: middle; } + +/* + * Responsiveness + * 1. Set a maximum width + * 2. Auto scale the height. Only needed if `height` attribute is present + * 2. Corrects `max-width` behavior if padding and border are used + */ + +audio, +canvas, +img, +video { + /* 1 */ + max-width: 100%; + /* 2 */ + height: auto; + /* 3 */ + box-sizing: border-box; +} + +/* + * Hide the overflow in IE. + */ + +svg:not(:root) { overflow: hidden; } + + +/* Block elements + ========================================================================== */ + +/* + * Margins + */ + +p, +ul, +ol, +dl, +pre, +address, +fieldset, +figure { margin: 0 0 $base-margin-vertical 0; } + +/* Add margin if adjacent element */ +* + p, +* + ul, +* + ol, +* + dl, +* + pre, +* + address, +* + fieldset, +* + figure { margin-top: $base-margin-vertical; } + + +/* Headings + ========================================================================== */ + +h1, .uk-h1, +h2, .uk-h2, +h3, .uk-h3, +h4, .uk-h4, +h5, .uk-h5, +h6, .uk-h6 { + margin: 0 0 $base-margin-vertical 0; + font-family: $base-heading-font-family; + font-weight: $base-heading-font-weight; + color: $base-heading-color; + text-transform: $base-heading-text-transform; + @if(mixin-exists(hook-base-heading)) {@include hook-base-heading();} +} + +/* Add margin if adjacent element */ +* + h1, * + .uk-h1, +* + h2, * + .uk-h2, +* + h3, * + .uk-h3, +* + h4, * + .uk-h4, +* + h5, * + .uk-h5, +* + h6, * + .uk-h6 { margin-top: $base-heading-margin-top; } + +/* + * Sizes + */ + +h1, .uk-h1 { + font-size: $base-h1-font-size; + line-height: $base-h1-line-height; + @if(mixin-exists(hook-base-h1)) {@include hook-base-h1();} +} + +h2, .uk-h2 { + font-size: $base-h2-font-size; + line-height: $base-h2-line-height; + @if(mixin-exists(hook-base-h2)) {@include hook-base-h2();} +} + +h3, .uk-h3 { + font-size: $base-h3-font-size; + line-height: $base-h3-line-height; + @if(mixin-exists(hook-base-h3)) {@include hook-base-h3();} +} + +h4, .uk-h4 { + font-size: $base-h4-font-size; + line-height: $base-h4-line-height; + @if(mixin-exists(hook-base-h4)) {@include hook-base-h4();} +} + +h5, .uk-h5 { + font-size: $base-h5-font-size; + line-height: $base-h5-line-height; + @if(mixin-exists(hook-base-h5)) {@include hook-base-h5();} +} + +h6, .uk-h6 { + font-size: $base-h6-font-size; + line-height: $base-h6-line-height; + @if(mixin-exists(hook-base-h6)) {@include hook-base-h6();} +} + + +/* Lists + ========================================================================== */ + +ul, +ol { padding-left: $base-list-padding-left; } + +/* + * Reset margin for nested lists + */ + +ul > li > ul, +ul > li > ol, +ol > li > ol, +ol > li > ul { margin: 0; } + + +/* Description lists + ========================================================================== */ + +dt { font-weight: bold; } +dd { margin-left: 0; } + + +/* Horizontal rules + ========================================================================== */ + +/* + * 1. Add the correct box sizing and height in Firefox. + * 2. Show the overflow in Edge and IE. + * 3. Add the correct text-align in Edge and IE. + * 4. Style + */ + +hr, .uk-hr { + /* 1 */ + box-sizing: content-box; + height: 0; + /* 2 */ + overflow: visible; + /* 3 */ + text-align: inherit; + /* 4 */ + margin: 0 0 $base-hr-margin-vertical 0; + border: 0; + border-top: $base-hr-border-width solid $base-hr-border; + @if(mixin-exists(hook-base-hr)) {@include hook-base-hr();} +} + +/* Add margin if adjacent element */ +* + hr, +* + .uk-hr { margin-top: $base-hr-margin-vertical } + + +/* Address + ========================================================================== */ + +address { font-style: normal; } + + +/* Blockquotes + ========================================================================== */ + +blockquote { + margin: 0 0 $base-blockquote-margin-vertical 0; + font-size: $base-blockquote-font-size; + line-height: $base-blockquote-line-height; + font-style: $base-blockquote-font-style; + @if(mixin-exists(hook-base-blockquote)) {@include hook-base-blockquote();} +} + +/* Add margin if adjacent element */ +* + blockquote { margin-top: $base-blockquote-margin-vertical; } + +/* + * Content + */ + +blockquote p:last-of-type { margin-bottom: 0; } + +blockquote footer { + margin-top: $base-blockquote-footer-margin-top; + font-size: $base-blockquote-footer-font-size; + line-height: $base-blockquote-footer-line-height; + @if(mixin-exists(hook-base-blockquote-footer)) {@include hook-base-blockquote-footer();} +} + + +/* Preformatted text + ========================================================================== */ + +/* + * 1. Contain overflow in all browsers. + */ + +pre { + font: $base-pre-font-size unquote("/") $base-pre-line-height $base-pre-font-family; + color: $base-pre-color; + -moz-tab-size: 4; + tab-size: 4; + /* 1 */ + overflow: auto; + @if(mixin-exists(hook-base-pre)) {@include hook-base-pre();} +} + +pre code { font-family: $base-pre-font-family; } + + +/* Selection pseudo-element + ========================================================================== */ + +::-moz-selection { + background: $base-selection-background; + color: $base-selection-color; + text-shadow: none; +} + +::selection { + background: $base-selection-background; + color: $base-selection-color; + text-shadow: none; +} + + +/* HTML5 elements + ========================================================================== */ + +/* + * 1. Add the correct display in Edge, IE 10+, and Firefox. + * 2. Add the correct display in IE. + */ + +details, /* 1 */ +main { /* 2 */ + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { display: list-item; } + +/* + * Add the correct display in IE. + */ + +template { display: none; } + + +/* Iframe + ========================================================================== */ + +iframe { border: 0; } + + +/* Prevent the 300ms delay for touchscreen interactions + ========================================================================== */ + +/* + * Most browsers prevent the 300ms delay automatically for sites that use the `width=device-width` property. + * For Safari on iOS 9.3+, IE 11 and Edge on desktops and IE 11 on Windows Phone 8.1 it must be applied manually. + */ + +a, +area, +button, +input, +label, +select, +summary, +textarea { touch-action: manipulation; } + + +/* Pass media breakpoints to JS + ========================================================================== */ + +/* + * Breakpoints + */ + +.var-media-s::before { content: '#{$breakpoint-small}'; } +.var-media-m::before { content: '#{$breakpoint-medium}'; } +.var-media-l::before { content: '#{$breakpoint-large}'; } +.var-media-xl::before { content: '#{$breakpoint-xlarge}'; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-base-misc)) {@include hook-base-misc();} + +// @mixin hook-base-body(){} +// @mixin hook-base-link(){} +// @mixin hook-base-link-hover(){} +// @mixin hook-base-code(){} +// @mixin hook-base-heading(){} +// @mixin hook-base-h1(){} +// @mixin hook-base-h2(){} +// @mixin hook-base-h3(){} +// @mixin hook-base-h4(){} +// @mixin hook-base-h5(){} +// @mixin hook-base-h6(){} +// @mixin hook-base-hr(){} +// @mixin hook-base-blockquote(){} +// @mixin hook-base-blockquote-footer(){} +// @mixin hook-base-pre(){} +// @mixin hook-base-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-base-color: $inverse-global-color !default; +$inverse-base-link-color: $inverse-global-emphasis-color !default; +$inverse-base-link-hover-color: $inverse-global-emphasis-color !default; +$inverse-base-code-color: $inverse-global-color !default; +$inverse-base-em-color: $inverse-global-emphasis-color !default; +$inverse-base-heading-color: $inverse-global-emphasis-color !default; +$inverse-base-hr-border: $inverse-global-border !default; + + + +// @mixin hook-inverse-base-link(){} +// @mixin hook-inverse-base-link-hover(){} +// @mixin hook-inverse-base-code(){} +// @mixin hook-inverse-base-heading(){} +// @mixin hook-inverse-base-h1(){} +// @mixin hook-inverse-base-h2(){} +// @mixin hook-inverse-base-h3(){} +// @mixin hook-inverse-base-h4(){} +// @mixin hook-inverse-base-h5(){} +// @mixin hook-inverse-base-h6(){} +// @mixin hook-inverse-base-blockquote(){} +// @mixin hook-inverse-base-blockquote-footer(){} +// @mixin hook-inverse-base-hr(){} diff --git a/_sass/uikit/components/breadcrumb.scss b/_sass/uikit/components/breadcrumb.scss new file mode 100644 index 0000000..1f4ca50 --- /dev/null +++ b/_sass/uikit/components/breadcrumb.scss @@ -0,0 +1,122 @@ +// Name: Breadcrumb +// Description: Component to create a breadcrumb navigation +// +// Component: `uk-breadcrumb` +// +// States: `uk-disabled` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$breadcrumb-item-font-size: $global-small-font-size !default; +$breadcrumb-item-color: $global-muted-color !default; +$breadcrumb-item-hover-color: $global-color !default; +$breadcrumb-item-hover-text-decoration: none !default; +$breadcrumb-item-active-color: $global-color !default; + +$breadcrumb-divider: "/" !default; +$breadcrumb-divider-margin-horizontal: 20px !default; +$breadcrumb-divider-color: $global-muted-color !default; + + +/* ======================================================================== + Component: Breadcrumb + ========================================================================== */ + +/* + * 1. Allow items to wrap into the next line + * 2. Reset list + */ + +.uk-breadcrumb { + display: flex; + /* 1 */ + flex-wrap: wrap; + /* 2 */ + padding: 0; + list-style: none; + @if(mixin-exists(hook-breadcrumb)) {@include hook-breadcrumb();} +} + +/* + * Space is allocated solely based on content dimensions: 0 0 auto + */ + +.uk-breadcrumb > * { flex: none; } + + +/* Items + ========================================================================== */ + +.uk-breadcrumb > * > * { + display: inline-block; + font-size: $breadcrumb-item-font-size; + color: $breadcrumb-item-color; + @if(mixin-exists(hook-breadcrumb-item)) {@include hook-breadcrumb-item();} +} + +/* Hover + Focus */ +.uk-breadcrumb > * > :hover, +.uk-breadcrumb > * > :focus { + color: $breadcrumb-item-hover-color; + text-decoration: $breadcrumb-item-hover-text-decoration; + @if(mixin-exists(hook-breadcrumb-item-hover)) {@include hook-breadcrumb-item-hover();} +} + +/* Disabled */ +.uk-breadcrumb > .uk-disabled > * { + @if(mixin-exists(hook-breadcrumb-item-disabled)) {@include hook-breadcrumb-item-disabled();} +} + +/* Active */ +.uk-breadcrumb > :last-child > * { + color: $breadcrumb-item-active-color; + @if(mixin-exists(hook-breadcrumb-item-active)) {@include hook-breadcrumb-item-active();} +} + +/* + * Divider + * `nth-child` makes it also work without JS if it's only one row + */ + +.uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before { + content: $breadcrumb-divider; + display: inline-block; + margin: 0 $breadcrumb-divider-margin-horizontal; + color: $breadcrumb-divider-color; + @if(mixin-exists(hook-breadcrumb-divider)) {@include hook-breadcrumb-divider();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-breadcrumb-misc)) {@include hook-breadcrumb-misc();} + +// @mixin hook-breadcrumb(){} +// @mixin hook-breadcrumb-item(){} +// @mixin hook-breadcrumb-item-hover(){} +// @mixin hook-breadcrumb-item-disabled(){} +// @mixin hook-breadcrumb-item-active(){} +// @mixin hook-breadcrumb-divider(){} +// @mixin hook-breadcrumb-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-breadcrumb-item-color: $inverse-global-muted-color !default; +$inverse-breadcrumb-item-hover-color: $inverse-global-color !default; +$inverse-breadcrumb-item-active-color: $inverse-global-color !default; +$inverse-breadcrumb-divider-color: $inverse-global-muted-color !default; + + + +// @mixin hook-inverse-breadcrumb-item(){} +// @mixin hook-inverse-breadcrumb-item-hover(){} +// @mixin hook-inverse-breadcrumb-item-disabled(){} +// @mixin hook-inverse-breadcrumb-item-active(){} +// @mixin hook-inverse-breadcrumb-divider(){} diff --git a/_sass/uikit/components/button.scss b/_sass/uikit/components/button.scss new file mode 100644 index 0000000..f65e1c2 --- /dev/null +++ b/_sass/uikit/components/button.scss @@ -0,0 +1,451 @@ +// Name: Button +// Description: Styles for buttons +// +// Component: `uk-button` +// +// Sub-objects: `uk-button-group` +// +// Modifiers: `uk-button-default` +// `uk-button-primary` +// `uk-button-secondary` +// `uk-button-danger` +// `uk-button-text` +// `uk-button-link` +// `uk-button-small` +// `uk-button-large` +// +// States: `uk-active` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$button-line-height: $global-control-height !default; +$button-small-line-height: $global-control-small-height !default; +$button-large-line-height: $global-control-large-height !default; + +$button-font-size: $global-font-size !default; +$button-small-font-size: $global-small-font-size !default; +$button-large-font-size: $global-medium-font-size !default; + +$button-padding-horizontal: $global-gutter !default; +$button-small-padding-horizontal: $global-small-gutter !default; +$button-large-padding-horizontal: $global-medium-gutter !default; + +$button-default-background: $global-muted-background !default; +$button-default-color: $global-emphasis-color !default; +$button-default-hover-background: darken($button-default-background, 5%) !default; +$button-default-hover-color: $global-emphasis-color !default; +$button-default-active-background: darken($button-default-background, 10%) !default; +$button-default-active-color: $global-emphasis-color !default; + +$button-primary-background: $global-primary-background !default; +$button-primary-color: $global-inverse-color !default; +$button-primary-hover-background: darken($button-primary-background, 5%) !default; +$button-primary-hover-color: $global-inverse-color !default; +$button-primary-active-background: darken($button-primary-background, 10%) !default; +$button-primary-active-color: $global-inverse-color !default; + +$button-secondary-background: $global-secondary-background !default; +$button-secondary-color: $global-inverse-color !default; +$button-secondary-hover-background: darken($button-secondary-background, 5%) !default; +$button-secondary-hover-color: $global-inverse-color !default; +$button-secondary-active-background: darken($button-secondary-background, 10%) !default; +$button-secondary-active-color: $global-inverse-color !default; + +$button-danger-background: $global-danger-background !default; +$button-danger-color: $global-inverse-color !default; +$button-danger-hover-background: darken($button-danger-background, 5%) !default; +$button-danger-hover-color: $global-inverse-color !default; +$button-danger-active-background: darken($button-danger-background, 10%) !default; +$button-danger-active-color: $global-inverse-color !default; + +$button-disabled-background: $global-muted-background !default; +$button-disabled-color: $global-muted-color !default; + +$button-text-line-height: $global-line-height !default; +$button-text-color: $global-muted-color !default; +$button-text-hover-color: $global-color !default; +$button-text-disabled-color: $global-muted-color !default; + +$button-link-line-height: $global-line-height !default; +$button-link-color: $global-link-color !default; +$button-link-hover-color: $global-link-hover-color !default; +$button-link-hover-text-decoration: underline !default; +$button-link-disabled-color: $global-muted-color !default; + + +/* ======================================================================== + Component: Button + ========================================================================== */ + +/* + * 1. Remove margins in Chrome, Safari and Opera. + * 2. Remove borders for `button`. + * 3. Remove border-radius in Chrome. + * 4. Address `overflow` set to `hidden` in IE. + * 5. Correct `font` properties and `color` not being inherited for `button`. + * 6. Remove the inheritance of text transform in Edge, Firefox, and IE. + * 7. Style + * 8. `line-height` is used to create a height because it also centers the text vertically for `a` elements. + * Better would be to use height and flexbox to center the text vertically but flexbox doesn't work in Firefox on `button` elements. + * 9. Align text if button has a width + * 10. Required for `a`. + */ + +.uk-button { + /* 1 */ + margin: 0; + /* 2 */ + border: none; + /* 3 */ + border-radius: 0; + /* 4 */ + overflow: visible; + /* 5 */ + font: inherit; + color: inherit; + /* 6 */ + text-transform: none; + /* 7 */ + display: inline-block; + box-sizing: border-box; + padding: 0 $button-padding-horizontal; + vertical-align: middle; + font-size: $button-font-size; + /* 8 */ + line-height: $button-line-height; + /* 9 */ + text-align: center; + /* 10 */ + text-decoration: none; + @if(mixin-exists(hook-button)) {@include hook-button();} +} + +.uk-button:not(:disabled) { cursor: pointer; } + +/* + * Remove the inner border and padding in Firefox. + */ + +.uk-button::-moz-focus-inner { + border: 0; + padding: 0; +} + +/* Hover */ +.uk-button:hover { + /* 8 */ + text-decoration: none; + @if(mixin-exists(hook-button-hover)) {@include hook-button-hover();} +} + +/* Focus */ +.uk-button:focus { + outline: none; + @if(mixin-exists(hook-button-focus)) {@include hook-button-focus();} +} + +/* OnClick + Active */ +.uk-button:active, +.uk-button.uk-active { + @if(mixin-exists(hook-button-active)) {@include hook-button-active();} +} + + +/* Style modifiers + ========================================================================== */ + +/* + * Default + */ + +.uk-button-default { + background-color: $button-default-background; + color: $button-default-color; + @if(mixin-exists(hook-button-default)) {@include hook-button-default();} +} + +/* Hover + Focus */ +.uk-button-default:hover, +.uk-button-default:focus { + background-color: $button-default-hover-background; + color: $button-default-hover-color; + @if(mixin-exists(hook-button-default-hover)) {@include hook-button-default-hover();} +} + +/* OnClick + Active */ +.uk-button-default:active, +.uk-button-default.uk-active { + background-color: $button-default-active-background; + color: $button-default-active-color; + @if(mixin-exists(hook-button-default-active)) {@include hook-button-default-active();} +} + +/* + * Primary + */ + +.uk-button-primary { + background-color: $button-primary-background; + color: $button-primary-color; + @if(mixin-exists(hook-button-primary)) {@include hook-button-primary();} +} + +/* Hover + Focus */ +.uk-button-primary:hover, +.uk-button-primary:focus { + background-color: $button-primary-hover-background; + color: $button-primary-hover-color; + @if(mixin-exists(hook-button-primary-hover)) {@include hook-button-primary-hover();} +} + +/* OnClick + Active */ +.uk-button-primary:active, +.uk-button-primary.uk-active { + background-color: $button-primary-active-background; + color: $button-primary-active-color; + @if(mixin-exists(hook-button-primary-active)) {@include hook-button-primary-active();} +} + +/* + * Secondary + */ + +.uk-button-secondary { + background-color: $button-secondary-background; + color: $button-secondary-color; + @if(mixin-exists(hook-button-secondary)) {@include hook-button-secondary();} +} + +/* Hover + Focus */ +.uk-button-secondary:hover, +.uk-button-secondary:focus { + background-color: $button-secondary-hover-background; + color: $button-secondary-hover-color; + @if(mixin-exists(hook-button-secondary-hover)) {@include hook-button-secondary-hover();} +} + +/* OnClick + Active */ +.uk-button-secondary:active, +.uk-button-secondary.uk-active { + background-color: $button-secondary-active-background; + color: $button-secondary-active-color; + @if(mixin-exists(hook-button-secondary-active)) {@include hook-button-secondary-active();} +} + +/* + * Danger + */ + +.uk-button-danger { + background-color: $button-danger-background; + color: $button-danger-color; + @if(mixin-exists(hook-button-danger)) {@include hook-button-danger();} +} + +/* Hover + Focus */ +.uk-button-danger:hover, +.uk-button-danger:focus { + background-color: $button-danger-hover-background; + color: $button-danger-hover-color; + @if(mixin-exists(hook-button-danger-hover)) {@include hook-button-danger-hover();} +} + +/* OnClick + Active */ +.uk-button-danger:active, +.uk-button-danger.uk-active { + background-color: $button-danger-active-background; + color: $button-danger-active-color; + @if(mixin-exists(hook-button-danger-active)) {@include hook-button-danger-active();} +} + +/* + * Disabled + * The same for all style modifiers + */ + +.uk-button-default:disabled, +.uk-button-primary:disabled, +.uk-button-secondary:disabled, +.uk-button-danger:disabled { + background-color: $button-disabled-background; + color: $button-disabled-color; + @if(mixin-exists(hook-button-disabled)) {@include hook-button-disabled();} +} + + +/* Size modifiers + ========================================================================== */ + +.uk-button-small { + padding: 0 $button-small-padding-horizontal; + line-height: $button-small-line-height; + font-size: $button-small-font-size; + @if(mixin-exists(hook-button-small)) {@include hook-button-small();} +} + +.uk-button-large { + padding: 0 $button-large-padding-horizontal; + line-height: $button-large-line-height; + font-size: $button-large-font-size; + @if(mixin-exists(hook-button-large)) {@include hook-button-large();} +} + + +/* Text modifiers + ========================================================================== */ + +/* + * Text + * 1. Reset + * 2. Style + */ + +.uk-button-text { + /* 1 */ + padding: 0; + line-height: $button-text-line-height; + background: none; + /* 2 */ + color: $button-text-color; + @if(mixin-exists(hook-button-text)) {@include hook-button-text();} +} + +/* Hover + Focus */ +.uk-button-text:hover, +.uk-button-text:focus { + color: $button-text-hover-color; + @if(mixin-exists(hook-button-text-hover)) {@include hook-button-text-hover();} +} + +/* Disabled */ +.uk-button-text:disabled { + color: $button-text-disabled-color; + @if(mixin-exists(hook-button-text-disabled)) {@include hook-button-text-disabled();} +} + +/* + * Link + * 1. Reset + * 2. Style + */ + +.uk-button-link { + /* 1 */ + padding: 0; + line-height: $button-link-line-height; + background: none; + /* 2 */ + color: $button-link-color; + @if(mixin-exists(hook-button-link)) {@include hook-button-link();} +} + +/* Hover + Focus */ +.uk-button-link:hover, +.uk-button-link:focus { + color: $button-link-hover-color; + text-decoration: $button-link-hover-text-decoration; +} + +/* Disabled */ +.uk-button-link:disabled { + color: $button-link-disabled-color; + text-decoration: none; +} + + +/* Group + ========================================================================== */ + +/* + * 1. Using `flex` instead of `inline-block` to prevent whitespace betweent child elements + * 2. Behave like button + * 3. Create position context + */ + +.uk-button-group { + /* 1 */ + display: inline-flex; + /* 2 */ + vertical-align: middle; + /* 3 */ + position: relative; +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-button-misc)) {@include hook-button-misc();} + +// @mixin hook-button(){} +// @mixin hook-button-hover(){} +// @mixin hook-button-focus(){} +// @mixin hook-button-active(){} +// @mixin hook-button-default(){} +// @mixin hook-button-default-hover(){} +// @mixin hook-button-default-active(){} +// @mixin hook-button-primary(){} +// @mixin hook-button-primary-hover(){} +// @mixin hook-button-primary-active(){} +// @mixin hook-button-secondary(){} +// @mixin hook-button-secondary-hover(){} +// @mixin hook-button-secondary-active(){} +// @mixin hook-button-danger(){} +// @mixin hook-button-danger-hover(){} +// @mixin hook-button-danger-active(){} +// @mixin hook-button-disabled(){} +// @mixin hook-button-small(){} +// @mixin hook-button-large(){} +// @mixin hook-button-text(){} +// @mixin hook-button-text-hover(){} +// @mixin hook-button-text-disabled(){} +// @mixin hook-button-link(){} +// @mixin hook-button-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-button-default-background: $inverse-global-primary-background !default; +$inverse-button-default-color: $inverse-global-inverse-color !default; +$inverse-button-default-hover-background: darken($inverse-button-default-background, 5%) !default; +$inverse-button-default-hover-color: $inverse-global-inverse-color !default; +$inverse-button-default-active-background: darken($inverse-button-default-background, 10%) !default; +$inverse-button-default-active-color: $inverse-global-inverse-color !default; +$inverse-button-primary-background: $inverse-global-primary-background !default; +$inverse-button-primary-color: $inverse-global-inverse-color !default; +$inverse-button-primary-hover-background: darken($inverse-button-primary-background, 5%) !default; +$inverse-button-primary-hover-color: $inverse-global-inverse-color !default; +$inverse-button-primary-active-background: darken($inverse-button-primary-background, 10%) !default; +$inverse-button-primary-active-color: $inverse-global-inverse-color !default; +$inverse-button-secondary-background: $inverse-global-primary-background !default; +$inverse-button-secondary-color: $inverse-global-inverse-color !default; +$inverse-button-secondary-hover-background: darken($inverse-button-secondary-background, 5%) !default; +$inverse-button-secondary-hover-color: $inverse-global-inverse-color !default; +$inverse-button-secondary-active-background: darken($inverse-button-secondary-background, 10%) !default; +$inverse-button-secondary-active-color: $inverse-global-inverse-color !default; +$inverse-button-text-color: $inverse-global-muted-color !default; +$inverse-button-text-hover-color: $inverse-global-color !default; +$inverse-button-text-disabled-color: $inverse-global-muted-color !default; +$inverse-button-link-color: $inverse-global-muted-color !default; +$inverse-button-link-hover-color: $inverse-global-color !default; + + + +// @mixin hook-inverse-button-default(){} +// @mixin hook-inverse-button-default-hover(){} +// @mixin hook-inverse-button-default-active(){} +// @mixin hook-inverse-button-primary(){} +// @mixin hook-inverse-button-primary-hover(){} +// @mixin hook-inverse-button-primary-active(){} +// @mixin hook-inverse-button-secondary(){} +// @mixin hook-inverse-button-secondary-hover(){} +// @mixin hook-inverse-button-secondary-active(){} +// @mixin hook-inverse-button-text(){} +// @mixin hook-inverse-button-text-hover(){} +// @mixin hook-inverse-button-text-disabled(){} +// @mixin hook-inverse-button-link(){} diff --git a/_sass/uikit/components/card.scss b/_sass/uikit/components/card.scss new file mode 100644 index 0000000..e332a03 --- /dev/null +++ b/_sass/uikit/components/card.scss @@ -0,0 +1,363 @@ +// Name: Card +// Description: Component to create boxed content containers +// +// Component: `uk-card` +// +// Sub-objects: `uk-card-body` +// `uk-card-header` +// `uk-card-footer` +// `uk-card-media-*` +// `uk-card-title` +// `uk-card-badge` +// +// Modifiers: `uk-card-hover` +// `uk-card-default` +// `uk-card-primary` +// `uk-card-secondary` +// `uk-card-small` +// `uk-card-large` +// +// Uses: `uk-grid-stack` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$card-body-padding-horizontal: $global-gutter !default; +$card-body-padding-vertical: $global-gutter !default; + +$card-body-padding-horizontal-l: $global-medium-gutter !default; +$card-body-padding-vertical-l: $global-medium-gutter !default; + +$card-header-padding-horizontal: $global-gutter !default; +$card-header-padding-vertical: round($global-gutter / 2) !default; + +$card-header-padding-horizontal-l: $global-medium-gutter !default; +$card-header-padding-vertical-l: round($global-medium-gutter / 2) !default; + +$card-footer-padding-horizontal: $global-gutter !default; +$card-footer-padding-vertical: ($global-gutter / 2) !default; + +$card-footer-padding-horizontal-l: $global-medium-gutter !default; +$card-footer-padding-vertical-l: round($global-medium-gutter / 2) !default; + +$card-title-font-size: $global-large-font-size !default; +$card-title-line-height: 1.4 !default; + +$card-badge-top: $global-gutter !default; +$card-badge-right: $card-badge-top !default; + +$card-hover-background: $global-muted-background !default; + +$card-default-background: $global-muted-background !default; +$card-default-color: $global-color !default; +$card-default-title-color: $global-emphasis-color !default; +$card-default-hover-background: darken($card-default-background, 5%) !default; + +$card-primary-background: $global-primary-background !default; +$card-primary-color: $global-inverse-color !default; +$card-primary-title-color: $card-primary-color !default; +$card-primary-hover-background: darken($card-primary-background, 5%) !default; +$card-primary-color-mode: light !default; + +$card-secondary-background: $global-secondary-background !default; +$card-secondary-color: $global-inverse-color !default; +$card-secondary-title-color: $card-secondary-color !default; +$card-secondary-hover-background: darken($card-secondary-background, 5%) !default; +$card-secondary-color-mode: light !default; + +$card-small-body-padding-horizontal: $global-margin !default; +$card-small-body-padding-vertical: $global-margin !default; +$card-small-header-padding-horizontal: $global-margin !default; +$card-small-header-padding-vertical: round($global-margin / 1.5) !default; +$card-small-footer-padding-horizontal: $global-margin !default; +$card-small-footer-padding-vertical: round($global-margin / 1.5) !default; + +$card-large-body-padding-horizontal-l: $global-large-gutter !default; +$card-large-body-padding-vertical-l: $global-large-gutter !default; +$card-large-header-padding-horizontal-l: $global-large-gutter !default; +$card-large-header-padding-vertical-l: round($global-large-gutter / 2) !default; +$card-large-footer-padding-horizontal-l: $global-large-gutter !default; +$card-large-footer-padding-vertical-l: round($global-large-gutter / 2) !default; + + +/* ======================================================================== + Component: Card + ========================================================================== */ + +.uk-card { + position: relative; + box-sizing: border-box; + @if(mixin-exists(hook-card)) {@include hook-card();} +} + + +/* Sections + ========================================================================== */ + +.uk-card-body { + padding: $card-body-padding-vertical $card-body-padding-horizontal; + @if(mixin-exists(hook-card-body)) {@include hook-card-body();} +} + +.uk-card-header { + padding: $card-header-padding-vertical $card-header-padding-horizontal; + @if(mixin-exists(hook-card-header)) {@include hook-card-header();} +} + +.uk-card-footer { + padding: $card-footer-padding-vertical $card-footer-padding-horizontal; + @if(mixin-exists(hook-card-footer)) {@include hook-card-footer();} +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-card-body { padding: $card-body-padding-vertical-l $card-body-padding-horizontal-l; } + + .uk-card-header { padding: $card-header-padding-vertical-l $card-header-padding-horizontal-l; } + + .uk-card-footer { padding: $card-footer-padding-vertical-l $card-footer-padding-horizontal-l; } + +} + +/* + * Micro clearfix + */ + +.uk-card-body::before, +.uk-card-body::after, +.uk-card-header::before, +.uk-card-header::after, +.uk-card-footer::before, +.uk-card-footer::after { + content: ""; + display: table; +} + +.uk-card-body::after, +.uk-card-header::after, +.uk-card-footer::after { clear: both; } + +/* + * Remove margin from the last-child + */ + +.uk-card-body > :last-child, +.uk-card-header > :last-child, +.uk-card-footer > :last-child { margin-bottom: 0; } + + +/* Media + ========================================================================== */ + +/* + * Reserved alignment modifier to style the media element, e.g. with `border-radius` + * Implemented by the theme + */ + +[class*='uk-card-media'] { + @if(mixin-exists(hook-card-media)) {@include hook-card-media();} +} + +.uk-card-media-top, +.uk-grid-stack > .uk-card-media-left, +.uk-grid-stack > .uk-card-media-right { + @if(mixin-exists(hook-card-media-top)) {@include hook-card-media-top();} +} + +.uk-card-media-bottom { + @if(mixin-exists(hook-card-media-bottom)) {@include hook-card-media-bottom();} +} + +:not(.uk-grid-stack) > .uk-card-media-left { + @if(mixin-exists(hook-card-media-left)) {@include hook-card-media-left();} +} + +:not(.uk-grid-stack) > .uk-card-media-right { + @if(mixin-exists(hook-card-media-right)) {@include hook-card-media-right();} +} + + +/* Title + ========================================================================== */ + +.uk-card-title { + font-size: $card-title-font-size; + line-height: $card-title-line-height; + @if(mixin-exists(hook-card-title)) {@include hook-card-title();} +} + + +/* Badge + ========================================================================== */ + +.uk-card-badge { + position: absolute; + top: $card-badge-top; + right: $card-badge-right; + z-index: 1; + @if(mixin-exists(hook-card-badge)) {@include hook-card-badge();} +} + +/* + * Remove margin from adjacent element + */ + +.uk-card-badge:first-child + * { margin-top: 0; } + + +/* Hover modifier + ========================================================================== */ + +.uk-card-hover:not(.uk-card-default):not(.uk-card-primary):not(.uk-card-secondary):hover { + background: $card-hover-background; + @if(mixin-exists(hook-card-hover)) {@include hook-card-hover();} +} + + +/* Style modifiers + ========================================================================== */ + +/* + * Default + * Note: Header and Footer are only implemented for the default style + */ + +.uk-card-default { + background: $card-default-background; + color: $card-default-color; + @if(mixin-exists(hook-card-default)) {@include hook-card-default();} +} + +.uk-card-default .uk-card-title { + color: $card-default-title-color; + @if(mixin-exists(hook-card-default-title)) {@include hook-card-default-title();} +} + +.uk-card-default.uk-card-hover:hover { + background-color: $card-default-hover-background; + @if(mixin-exists(hook-card-default-hover)) {@include hook-card-default-hover();} +} + +.uk-card-default .uk-card-header { + @if(mixin-exists(hook-card-default-header)) {@include hook-card-default-header();} +} + +.uk-card-default .uk-card-footer { + @if(mixin-exists(hook-card-default-footer)) {@include hook-card-default-footer();} +} + +/* + * Primary + */ + +.uk-card-primary { + background: $card-primary-background; + color: $card-primary-color; + @if(mixin-exists(hook-card-primary)) {@include hook-card-primary();} +} + +.uk-card-primary .uk-card-title { + color: $card-primary-title-color; + @if(mixin-exists(hook-card-primary-title)) {@include hook-card-primary-title();} +} + +.uk-card-primary.uk-card-hover:hover { + background-color: $card-primary-hover-background; + @if(mixin-exists(hook-card-primary-hover)) {@include hook-card-primary-hover();} +} + +// Color Mode +@if ( $card-primary-color-mode == light ) { .uk-card-primary.uk-card-body { @extend .uk-light !optional;} } +@if ( $card-primary-color-mode == light ) { .uk-card-primary > :not([class*='uk-card-media']) { @extend .uk-light !optional;} } +@if ( $card-primary-color-mode == dark ) { .uk-card-primary.uk-card-body { @extend .uk-dark !optional;} } +@if ( $card-primary-color-mode == dark ) { .uk-card-primary > :not([class*='uk-card-media']) { @extend .uk-dark !optional;} } + +/* + * Secondary + */ + +.uk-card-secondary { + background: $card-secondary-background; + color: $card-secondary-color; + @if(mixin-exists(hook-card-secondary)) {@include hook-card-secondary();} +} + +.uk-card-secondary .uk-card-title { + color: $card-secondary-title-color; + @if(mixin-exists(hook-card-secondary-title)) {@include hook-card-secondary-title();} +} + +.uk-card-secondary.uk-card-hover:hover { + background-color: $card-secondary-hover-background; + @if(mixin-exists(hook-card-secondary-hover)) {@include hook-card-secondary-hover();} +} + +// Color Mode +@if ( $card-secondary-color-mode == light ) { .uk-card-secondary.uk-card-body { @extend .uk-light !optional;} } +@if ( $card-secondary-color-mode == light ) { .uk-card-secondary > :not([class*='uk-card-media']) { @extend .uk-light !optional;} } +@if ( $card-secondary-color-mode == dark ) { .uk-card-secondary.uk-card-body { @extend .uk-dark !optional;} } +@if ( $card-secondary-color-mode == dark ) { .uk-card-secondary > :not([class*='uk-card-media']) { @extend .uk-dark !optional;} } + + +/* Size modifier + ========================================================================== */ + +/* + * Small + */ + +.uk-card-small.uk-card-body, +.uk-card-small .uk-card-body { padding: $card-small-body-padding-vertical $card-small-body-padding-horizontal; } + +.uk-card-small .uk-card-header { padding: $card-small-header-padding-vertical $card-small-header-padding-horizontal; } +.uk-card-small .uk-card-footer { padding: $card-small-footer-padding-vertical $card-small-footer-padding-horizontal; } + +/* + * Large + */ + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-card-large.uk-card-body, + .uk-card-large .uk-card-body { padding: $card-large-body-padding-vertical-l $card-large-body-padding-horizontal-l; } + + .uk-card-large .uk-card-header { padding: $card-large-header-padding-vertical-l $card-large-header-padding-horizontal-l; } + .uk-card-large .uk-card-footer { padding: $card-large-footer-padding-vertical-l $card-large-footer-padding-horizontal-l; } + +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-card-misc)) {@include hook-card-misc();} + +// @mixin hook-card(){} +// @mixin hook-card-body(){} +// @mixin hook-card-header(){} +// @mixin hook-card-footer(){} +// @mixin hook-card-media(){} +// @mixin hook-card-media-top(){} +// @mixin hook-card-media-bottom(){} +// @mixin hook-card-media-left(){} +// @mixin hook-card-media-right(){} +// @mixin hook-card-title(){} +// @mixin hook-card-badge(){} +// @mixin hook-card-hover(){} +// @mixin hook-card-default(){} +// @mixin hook-card-default-title(){} +// @mixin hook-card-default-hover(){} +// @mixin hook-card-default-header(){} +// @mixin hook-card-default-footer(){} +// @mixin hook-card-primary(){} +// @mixin hook-card-primary-title(){} +// @mixin hook-card-primary-hover(){} +// @mixin hook-card-secondary(){} +// @mixin hook-card-secondary-title(){} +// @mixin hook-card-secondary-hover(){} +// @mixin hook-card-misc(){} diff --git a/_sass/uikit/components/close.scss b/_sass/uikit/components/close.scss new file mode 100644 index 0000000..32e2775 --- /dev/null +++ b/_sass/uikit/components/close.scss @@ -0,0 +1,57 @@ +// Name: Close +// Description: Component to create a close button +// +// Component: `uk-close` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$close-color: $global-muted-color !default; +$close-hover-color: $global-color !default; + + +/* ======================================================================== + Component: Close + ========================================================================== */ + +/* + * Adopts `uk-icon` + */ + +.uk-close { + color: $close-color; + @if(mixin-exists(hook-close)) {@include hook-close();} +} + +/* Hover + Focus */ +.uk-close:hover, +.uk-close:focus { + color: $close-hover-color; + outline: none; + @if(mixin-exists(hook-close-hover)) {@include hook-close-hover();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-close-misc)) {@include hook-close-misc();} + +// @mixin hook-close(){} +// @mixin hook-close-hover(){} +// @mixin hook-close-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-close-color: $inverse-global-muted-color !default; +$inverse-close-hover-color: $inverse-global-color !default; + + + +// @mixin hook-inverse-close(){} +// @mixin hook-inverse-close-hover(){} diff --git a/_sass/uikit/components/column.scss b/_sass/uikit/components/column.scss new file mode 100644 index 0000000..54bae26 --- /dev/null +++ b/_sass/uikit/components/column.scss @@ -0,0 +1,138 @@ +// Name: Column +// Description: Utilities for text columns +// +// Component: `uk-column-*` +// +// Sub-objects: `uk-column-span` +// +// Modifiers: `uk-column-divider` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$column-gutter: $global-gutter !default; +$column-gutter-l: $global-medium-gutter !default; + +$column-divider-rule-color: $global-border !default; +$column-divider-rule-width: 1px !default; + + +/* ======================================================================== + Component: Column + ========================================================================== */ + +[class*='uk-column-'] { column-gap: $column-gutter; } + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + [class*='uk-column-'] { column-gap: $column-gutter-l; } + +} + +/* + * Fix image 1px line wrapping into the next column in Chrome + */ + +[class*='uk-column-'] img { transform: translate3d(0,0,0); } + + +/* Divider + ========================================================================== */ + +/* + * 1. Double the column gap + */ + +.uk-column-divider { + column-rule: $column-divider-rule-width solid $column-divider-rule-color; + /* 1 */ + column-gap: ($column-gutter * 2); +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-column-divider { + column-gap: ($column-gutter-l * 2); + } + +} + + +/* Width modifiers + ========================================================================== */ + +.uk-column-1-2 { column-count: 2;} +.uk-column-1-3 { column-count: 3; } +.uk-column-1-4 { column-count: 4; } +.uk-column-1-5 { column-count: 5; } +.uk-column-1-6 { column-count: 6; } + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-column-1-2\@s { column-count: 2; } + .uk-column-1-3\@s { column-count: 3; } + .uk-column-1-4\@s { column-count: 4; } + .uk-column-1-5\@s { column-count: 5; } + .uk-column-1-6\@s { column-count: 6; } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-column-1-2\@m { column-count: 2; } + .uk-column-1-3\@m { column-count: 3; } + .uk-column-1-4\@m { column-count: 4; } + .uk-column-1-5\@m { column-count: 5; } + .uk-column-1-6\@m { column-count: 6; } + +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-column-1-2\@l { column-count: 2; } + .uk-column-1-3\@l { column-count: 3; } + .uk-column-1-4\@l { column-count: 4; } + .uk-column-1-5\@l { column-count: 5; } + .uk-column-1-6\@l { column-count: 6; } + +} + +/* Large screen and bigger */ +@media (min-width: $breakpoint-xlarge) { + + .uk-column-1-2\@xl { column-count: 2; } + .uk-column-1-3\@xl { column-count: 3; } + .uk-column-1-4\@xl { column-count: 4; } + .uk-column-1-5\@xl { column-count: 5; } + .uk-column-1-6\@xl { column-count: 6; } + +} + +/* Make element span across all columns + * Does not work in Firefox yet + ========================================================================== */ + +.uk-column-span { column-span: all; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-column-misc)) {@include hook-column-misc();} + +// @mixin hook-column-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-column-divider-rule-color: $inverse-global-border !default; + diff --git a/_sass/uikit/components/comment.scss b/_sass/uikit/components/comment.scss new file mode 100644 index 0000000..8583dd8 --- /dev/null +++ b/_sass/uikit/components/comment.scss @@ -0,0 +1,171 @@ +// Name: Comment +// Description: Component to create nested comments +// +// Component: `uk-comment` +// +// Sub-objects: `uk-comment-body` +// `uk-comment-header` +// `uk-comment-title` +// `uk-comment-meta` +// `uk-comment-avatar` +// `uk-comment-list` +// +// Modifier: `uk-comment-primary` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$comment-header-margin-bottom: $global-margin !default; + +$comment-title-font-size: $global-medium-font-size !default; +$comment-title-line-height: 1.4 !default; + +$comment-meta-font-size: $global-small-font-size !default; +$comment-meta-line-height: 1.4 !default; +$comment-meta-color: $global-muted-color !default; + +$comment-list-margin-top: $global-large-margin !default; +$comment-list-padding-left: 30px !default; +$comment-list-padding-left-m: 100px !default; + + +/* ======================================================================== + Component: Comment + ========================================================================== */ + +.uk-comment { + @if(mixin-exists(hook-comment)) {@include hook-comment();} +} + + +/* Sections + ========================================================================== */ + +.uk-comment-body { + @if(mixin-exists(hook-comment-body)) {@include hook-comment-body();} +} + +.uk-comment-header { + margin-bottom: $comment-header-margin-bottom; + @if(mixin-exists(hook-comment-header)) {@include hook-comment-header();} +} + +/* + * Micro clearfix + */ + +.uk-comment-body::before, +.uk-comment-body::after, +.uk-comment-header::before, +.uk-comment-header::after { + content: ""; + display: table; +} + +.uk-comment-body::after, +.uk-comment-header::after { clear: both; } + +/* + * Remove margin from the last-child + */ + +.uk-comment-body > :last-child, +.uk-comment-header > :last-child { margin-bottom: 0; } + + +/* Title + ========================================================================== */ + +.uk-comment-title { + font-size: $comment-title-font-size; + line-height: $comment-title-line-height; + @if(mixin-exists(hook-comment-title)) {@include hook-comment-title();} +} + + +/* Meta + ========================================================================== */ + +.uk-comment-meta { + font-size: $comment-meta-font-size; + line-height: $comment-meta-line-height; + color: $comment-meta-color; + @if(mixin-exists(hook-comment-meta)) {@include hook-comment-meta();} +} + + +/* Avatar + ========================================================================== */ + +.uk-comment-avatar { + @if(mixin-exists(hook-comment-avatar)) {@include hook-comment-avatar();} +} + + +/* List + ========================================================================== */ + +.uk-comment-list { + padding: 0; + list-style: none; +} + +/* Adjacent siblings */ +.uk-comment-list > :nth-child(n+2) { + margin-top: $comment-list-margin-top; + @if(mixin-exists(hook-comment-list-adjacent)) {@include hook-comment-list-adjacent();} +} + +/* + * Sublists + * Note: General sibling selector allows reply block between comment and sublist + */ + +.uk-comment-list .uk-comment ~ ul { + margin: $comment-list-margin-top 0 0 0; + padding-left: $comment-list-padding-left; + list-style: none; + @if(mixin-exists(hook-comment-list-sub)) {@include hook-comment-list-sub();} +} + +/* Tablet and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-comment-list .uk-comment ~ ul { padding-left: $comment-list-padding-left-m; } + +} + +/* Adjacent siblings */ +.uk-comment-list .uk-comment ~ ul > :nth-child(n+2) { + margin-top: $comment-list-margin-top; + @if(mixin-exists(hook-comment-list-sub-adjacent)) {@include hook-comment-list-sub-adjacent();} +} + + +/* Style modifier + ========================================================================== */ + +.uk-comment-primary { + @if(mixin-exists(hook-comment-primary)) {@include hook-comment-primary();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-comment-misc)) {@include hook-comment-misc();} + +// @mixin hook-comment(){} +// @mixin hook-comment-body(){} +// @mixin hook-comment-header(){} +// @mixin hook-comment-title(){} +// @mixin hook-comment-meta(){} +// @mixin hook-comment-avatar(){} +// @mixin hook-comment-list-adjacent(){} +// @mixin hook-comment-list-sub(){} +// @mixin hook-comment-list-sub-adjacent(){} +// @mixin hook-comment-primary(){} +// @mixin hook-comment-misc(){} \ No newline at end of file diff --git a/_sass/uikit/components/container.scss b/_sass/uikit/components/container.scss new file mode 100644 index 0000000..f28a3a8 --- /dev/null +++ b/_sass/uikit/components/container.scss @@ -0,0 +1,106 @@ +// Name: Container +// Description: Component to align and center your site and grid content +// +// Component: `uk-container` +// +// Modifier: `uk-container-small` +// `uk-container-large` +// `uk-container-expand` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$container-max-width: 1124px !default; +$container-small-max-width: 900px !default; +$container-large-max-width: 1600px !default; + +$container-padding-horizontal: 15px !default; +$container-padding-horizontal-s: $global-gutter !default; +$container-padding-horizontal-m: $global-medium-gutter !default; + + +/* ======================================================================== + Component: Container + ========================================================================== */ + +/* + * 1. Box sizing has to be `content-box` so the max-width is always the same and + * unaffected by the padding on different breakpoints. It's important for the size modifiers. + */ + +.uk-container { + box-sizing: content-box; /* 1 */ + max-width: $container-max-width; + margin-left: auto; + margin-right: auto; + padding-left: $container-padding-horizontal; + padding-right: $container-padding-horizontal; +} + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-container { + padding-left: $container-padding-horizontal-s; + padding-right: $container-padding-horizontal-s; + } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-container { + padding-left: $container-padding-horizontal-m; + padding-right: $container-padding-horizontal-m; + } + +} + +/* + * Micro clearfix + */ + +.uk-container::before, +.uk-container::after { + content: ""; + display: table; +} + +.uk-container::after { clear: both; } + +/* + * Remove margin from the last-child + */ + +.uk-container > :last-child { margin-bottom: 0; } + +/* + * Remove padding from nested containers + */ + +.uk-container .uk-container { + padding-left: 0; + padding-right: 0; +} + + +/* Size modifier + ========================================================================== */ + +.uk-container-small { max-width: $container-small-max-width; } + +.uk-container-large { max-width: $container-large-max-width; } + +.uk-container-expand { max-width: none; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-container-misc)) {@include hook-container-misc();} + +// @mixin hook-container-misc(){} \ No newline at end of file diff --git a/_sass/uikit/components/countdown.scss b/_sass/uikit/components/countdown.scss new file mode 100644 index 0000000..3f53e70 --- /dev/null +++ b/_sass/uikit/components/countdown.scss @@ -0,0 +1,126 @@ +// Name: Countdown +// Description: Component to create countdown timers +// +// Component: `uk-countdown` +// +// Sub-objects: `uk-countdown-number` +// `uk-countdown-separator` +// `uk-countdown-label` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$countdown-item-line-height: 70px !default; + +$countdown-number-font-size: 2rem !default; // 32px +$countdown-number-font-size-s: 4rem !default; // 64px +$countdown-number-font-size-m: 6rem !default; // 96px + +$countdown-separator-font-size: 1rem !default; // 16px +$countdown-separator-font-size-s: 2rem !default; // 32px +$countdown-separator-font-size-m: 3rem !default; // 48px + + +/* ======================================================================== + Component: Countdown + ========================================================================== */ + +.uk-countdown { + @if(mixin-exists(hook-countdown)) {@include hook-countdown();} +} + + +/* Item + ========================================================================== */ + +/* + * 1. Center numbers and separators vertically + */ + +.uk-countdown-number, +.uk-countdown-separator { + /* 1 */ + line-height: $countdown-item-line-height; + @if(mixin-exists(hook-countdown-item)) {@include hook-countdown-item();} +} + + +/* Number + ========================================================================== */ + +.uk-countdown-number { + font-size: $countdown-number-font-size; + @if(mixin-exists(hook-countdown-number)) {@include hook-countdown-number();} +} + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-countdown-number { font-size: $countdown-number-font-size-s; } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-countdown-number { font-size: $countdown-number-font-size-m; } + +} + + +/* Separator + ========================================================================== */ + +.uk-countdown-separator { + font-size: $countdown-separator-font-size; + @if(mixin-exists(hook-countdown-separator)) {@include hook-countdown-separator();} +} + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-countdown-separator { font-size: $countdown-separator-font-size-s; } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-countdown-separator { font-size: $countdown-separator-font-size-m; } + +} + + +/* Label + ========================================================================== */ + +.uk-countdown-label { + @if(mixin-exists(hook-countdown-label)) {@include hook-countdown-label();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-countdown-misc)) {@include hook-countdown-misc();} + +// @mixin hook-countdown(){} +// @mixin hook-countdown-item(){} +// @mixin hook-countdown-number(){} +// @mixin hook-countdown-separator(){} +// @mixin hook-countdown-label(){} +// @mixin hook-countdown-misc(){} + + +// Inverse +// ======================================================================== + + + +// @mixin hook-inverse-countdown-item(){} +// @mixin hook-inverse-countdown-number(){} +// @mixin hook-inverse-countdown-separator(){} +// @mixin hook-inverse-countdown-label(){} diff --git a/_sass/uikit/components/cover.scss b/_sass/uikit/components/cover.scss new file mode 100644 index 0000000..b44a684 --- /dev/null +++ b/_sass/uikit/components/cover.scss @@ -0,0 +1,57 @@ +// Name: Cover +// Description: Utilities to let embedded content cover their container in a centered position +// +// Component: `uk-cover` +// +// Sub-object: `uk-cover-container` +// +// ======================================================================== + + +/* ======================================================================== + Component: Cover + ========================================================================== */ + +/* + * Works with iframes and embedded content + * 1. Reset responsiveness for embedded content + * 2. Center object + * Note: Percent values on the `top` property only works if this element + * is absolute positioned or if the container has a height + */ + +.uk-cover { + /* 1 */ + max-width: none; + /* 2 */ + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%,-50%); +} + +iframe.uk-cover { pointer-events: none; } + + +/* Container + ========================================================================== */ + +/* + * 1. Parent container which clips resized object + * 2. Needed if the child is positioned absolute. See note above + */ + +.uk-cover-container { + /* 1 */ + overflow: hidden; + /* 2 */ + position: relative; +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-cover-misc)) {@include hook-cover-misc();} + +// @mixin hook-cover-misc(){} \ No newline at end of file diff --git a/_sass/uikit/components/description-list.scss b/_sass/uikit/components/description-list.scss new file mode 100644 index 0000000..6683286 --- /dev/null +++ b/_sass/uikit/components/description-list.scss @@ -0,0 +1,71 @@ +// Name: Description list +// Description: Styles for description lists +// +// Component: `uk-description-list` +// +// Modifiers: `uk-description-list-divider` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$description-list-term-color: $global-emphasis-color !default; +$description-list-term-margin-top: $global-margin !default; + +$description-list-divider-term-margin-top: $global-margin !default; +$description-list-divider-term-border-width: $global-border-width !default; +$description-list-divider-term-border: $global-border !default; + + +/* ======================================================================== + Component: Description list + ========================================================================== */ + +/* + * Term + */ + +.uk-description-list > dt { + color: $description-list-term-color; + @if(mixin-exists(hook-description-list-term)) {@include hook-description-list-term();} +} + +.uk-description-list > dt:nth-child(n+2) { + margin-top: $description-list-term-margin-top; +} + +/* + * Description + */ + +.uk-description-list > dd { + @if(mixin-exists(hook-description-list-description)) {@include hook-description-list-description();} +} + + +/* Style modifier + ========================================================================== */ + +/* + * Line + */ + +.uk-description-list-divider > dt:nth-child(n+2) { + margin-top: $description-list-divider-term-margin-top; + padding-top: $description-list-divider-term-margin-top; + border-top: $description-list-divider-term-border-width solid $description-list-divider-term-border; + @if(mixin-exists(hook-description-list-divider-term)) {@include hook-description-list-divider-term();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-description-list-misc)) {@include hook-description-list-misc();} + +// @mixin hook-description-list-term(){} +// @mixin hook-description-list-description(){} +// @mixin hook-description-list-divider-term(){} +// @mixin hook-description-list-misc(){} \ No newline at end of file diff --git a/_sass/uikit/components/divider.scss b/_sass/uikit/components/divider.scss new file mode 100644 index 0000000..b51708c --- /dev/null +++ b/_sass/uikit/components/divider.scss @@ -0,0 +1,129 @@ +// Name: Divider +// Description: Styles for dividers +// +// Component: `uk-divider-icon` +// `uk-divider-small` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$divider-margin-vertical: $global-margin !default; + +$divider-icon-width: 50px !default; +$divider-icon-height: 20px !default; +$divider-icon-color: $global-border !default; +$divider-icon-line-top: 50% !default; +$divider-icon-line-width: 100% !default; +$divider-icon-line-border-width: $global-border-width !default; +$divider-icon-line-border: $global-border !default; + +$internal-divider-icon-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22none%22%20stroke%3D%22#000%22%20stroke-width%3D%222%22%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%227%22%20%2F%3E%0A%3C%2Fsvg%3E%0A" !default; + +$divider-small-width: 100px !default; +$divider-small-border-width: $global-border-width !default; +$divider-small-border: $global-border !default; + + +/* ======================================================================== + Component: Divider + ========================================================================== */ + +/* + * 1. Reset default `hr` + * 2. Set margin if a `div` is used for semantical reason + */ + +[class*='uk-divider'] { + /* 1 */ + border: none; + /* 2 */ + margin-bottom: $divider-margin-vertical; +} + +/* Add margin if adjacent element */ +* + [class*='uk-divider'] { margin-top: $divider-margin-vertical; } + + +/* Icon + ========================================================================== */ + +.uk-divider-icon { + position: relative; + height: $divider-icon-height; + @include svg-fill($internal-divider-icon-image, "#000", $divider-icon-color); + background-repeat: no-repeat; + background-position: 50% 50%; + @if(mixin-exists(hook-divider-icon)) {@include hook-divider-icon();} +} + +.uk-divider-icon::before, +.uk-divider-icon::after { + content: ""; + position: absolute; + top: $divider-icon-line-top; + max-width: unquote('calc(50% - (#{$divider-icon-width} / 2))'); + border-bottom: $divider-icon-line-border-width solid $divider-icon-line-border; + @if(mixin-exists(hook-divider-icon-line)) {@include hook-divider-icon-line();} +} + +.uk-divider-icon::before { + right: unquote('calc(50% + (#{$divider-icon-width} / 2))'); + width: $divider-icon-line-width; + @if(mixin-exists(hook-divider-icon-line-left)) {@include hook-divider-icon-line-left();} +} + +.uk-divider-icon::after { + left: unquote('calc(50% + (#{$divider-icon-width} / 2))'); + width: $divider-icon-line-width; + @if(mixin-exists(hook-divider-icon-line-right)) {@include hook-divider-icon-line-right();} +} + + +/* Small + ========================================================================== */ + +/* + * Reset child height, caused by `inline-block` + */ + +.uk-divider-small { line-height: 0; } + +.uk-divider-small::after { + content: ""; + display: inline-block; + width: $divider-small-width; + max-width: 100%; + border-top: $divider-small-border-width solid $divider-small-border; + vertical-align: top; + @if(mixin-exists(hook-divider-small)) {@include hook-divider-small();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-divider-misc)) {@include hook-divider-misc();} + +// @mixin hook-divider-icon(){} +// @mixin hook-divider-icon-line(){} +// @mixin hook-divider-icon-line-left(){} +// @mixin hook-divider-icon-line-right(){} +// @mixin hook-divider-small(){} +// @mixin hook-divider-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-divider-icon-color: $inverse-global-border !default; +$inverse-divider-icon-line-border: $inverse-global-border !default; +$inverse-divider-small-border: $inverse-global-border !default; + + + +// @mixin hook-inverse-divider-icon(){} +// @mixin hook-inverse-divider-icon-line(){} +// @mixin hook-inverse-divider-small(){} diff --git a/_sass/uikit/components/dotnav.scss b/_sass/uikit/components/dotnav.scss new file mode 100644 index 0000000..f1f2a40 --- /dev/null +++ b/_sass/uikit/components/dotnav.scss @@ -0,0 +1,157 @@ +// Name: Dotnav +// Description: Component to create dot navigations +// +// Component: `uk-dotnav` +// +// Modifier: `uk-dotnav-vertical` +// +// States: `uk-active` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$dotnav-margin-horizontal: 12px !default; +$dotnav-margin-vertical: $dotnav-margin-horizontal !default; + +$dotnav-item-width: 10px !default; +$dotnav-item-height: $dotnav-item-width !default; +$dotnav-item-border-radius: 50% !default; + +$dotnav-item-background: rgba($global-color, 0.2) !default; +$dotnav-item-hover-background: rgba($global-color, 0.6) !default; +$dotnav-item-onclick-background: rgba($global-color, 0.2) !default; +$dotnav-item-active-background: rgba($global-color, 0.6) !default; + + +/* ======================================================================== + Component: Dotnav + ========================================================================== */ + +/* + * 1. Allow items to wrap into the next line + * 2. Reset list + * 3. Gutter + */ + +.uk-dotnav { + display: flex; + /* 1 */ + flex-wrap: wrap; + /* 2 */ + margin: 0; + padding: 0; + list-style: none; + /* 3 */ + margin-left: (-$dotnav-margin-horizontal); + @if(mixin-exists(hook-dotnav)) {@include hook-dotnav();} +} + +/* + * 1. Space is allocated solely based on content dimensions: 0 0 auto + * 2. Gutter + */ + +.uk-dotnav > * { + /* 1 */ + flex: none; + /* 2 */ + padding-left: $dotnav-margin-horizontal; +} + + +/* Items + ========================================================================== */ + +/* + * Items + * 1. Hide text if present + */ + +.uk-dotnav > * > * { + display: block; + box-sizing: border-box; + width: $dotnav-item-width; + height: $dotnav-item-height; + border-radius: $dotnav-item-border-radius; + background: $dotnav-item-background; + /* 1 */ + text-indent: 100%; + overflow: hidden; + white-space: nowrap; + @if(mixin-exists(hook-dotnav-item)) {@include hook-dotnav-item();} +} + +/* Hover + Focus */ +.uk-dotnav > * > :hover, +.uk-dotnav > * > :focus { + background-color: $dotnav-item-hover-background; + outline: none; + @if(mixin-exists(hook-dotnav-item-hover)) {@include hook-dotnav-item-hover();} +} + +/* OnClick */ +.uk-dotnav > * > :active { + background-color: $dotnav-item-onclick-background; + @if(mixin-exists(hook-dotnav-item-onclick)) {@include hook-dotnav-item-onclick();} +} + +/* Active */ +.uk-dotnav > .uk-active > * { + background-color: $dotnav-item-active-background; + @if(mixin-exists(hook-dotnav-item-active)) {@include hook-dotnav-item-active();} +} + + +/* Modifier: 'uk-dotnav-vertical' + ========================================================================== */ + +/* + * 1. Change direction + * 2. Gutter + */ + +.uk-dotnav-vertical { + /* 1 */ + flex-direction: column; + /* 2 */ + margin-left: 0; + margin-top: (-$dotnav-margin-vertical); +} + +/* 2 */ +.uk-dotnav-vertical > * { + padding-left: 0; + padding-top: $dotnav-margin-vertical; +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-dotnav-misc)) {@include hook-dotnav-misc();} + +// @mixin hook-dotnav(){} +// @mixin hook-dotnav-item(){} +// @mixin hook-dotnav-item-hover(){} +// @mixin hook-dotnav-item-onclick(){} +// @mixin hook-dotnav-item-active(){} +// @mixin hook-dotnav-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-dotnav-item-background: rgba($inverse-global-color, 0.5) !default; +$inverse-dotnav-item-hover-background: rgba($inverse-global-color, 0.9) !default; +$inverse-dotnav-item-onclick-background: rgba($inverse-global-color, 0.5) !default; +$inverse-dotnav-item-active-background: rgba($inverse-global-color, 0.9) !default; + + + +// @mixin hook-inverse-dotnav-item(){} +// @mixin hook-inverse-dotnav-item-hover(){} +// @mixin hook-inverse-dotnav-item-onclick(){} +// @mixin hook-inverse-dotnav-item-active(){} \ No newline at end of file diff --git a/_sass/uikit/components/drop.scss b/_sass/uikit/components/drop.scss new file mode 100644 index 0000000..fb5e9e8 --- /dev/null +++ b/_sass/uikit/components/drop.scss @@ -0,0 +1,74 @@ +// Name: Drop +// Description: Component to position any element next to any other element. +// +// Component: `uk-drop` +// +// Modifiers: `uk-drop-top-*` +// `uk-drop-bottom-*` +// `uk-drop-left-*` +// `uk-drop-right-*` +// `uk-drop-stack` +// `uk-drop-grid` +// +// States: `uk-open` +// +// Uses: Animation +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$drop-z-index: $global-z-index + 20 !default; +$drop-width: 300px !default; +$drop-margin: $global-margin !default; + + +/* ======================================================================== + Component: Drop + ========================================================================== */ + +/* + * 1. Hide by default + * 2. Set position + * 3. Set a default width + */ + +.uk-drop { + /* 1 */ + display: none; + /* 2 */ + position: absolute; + z-index: $drop-z-index; + /* 3 */ + box-sizing: border-box; + width: $drop-width; +} + +/* Show */ +.uk-drop.uk-open { display: block; } + + +/* Direction / Alignment modifiers + ========================================================================== */ + +/* Direction */ +[class*='uk-drop-top'] { margin-top: (-$drop-margin); } +[class*='uk-drop-bottom'] { margin-top: $drop-margin; } +[class*='uk-drop-left'] { margin-left: (-$drop-margin); } +[class*='uk-drop-right'] { margin-left: $drop-margin; } + + +/* Grid modifiers + ========================================================================== */ + +.uk-drop-stack .uk-drop-grid > * { width: 100% !important; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-drop-misc)) {@include hook-drop-misc();} + +// @mixin hook-drop-misc(){} diff --git a/_sass/uikit/components/dropdown.scss b/_sass/uikit/components/dropdown.scss new file mode 100644 index 0000000..49bb127 --- /dev/null +++ b/_sass/uikit/components/dropdown.scss @@ -0,0 +1,150 @@ +// Name: Dropdown +// Description: Component to create dropdown menus +// +// Component: `uk-dropdown` +// +// Adopted: `uk-dropdown-nav` +// +// Modifiers: `uk-dropdown-top-*` +// `uk-dropdown-bottom-*` +// `uk-dropdown-left-*` +// `uk-dropdown-right-*` +// `uk-dropdown-stack` +// `uk-dropdown-grid` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$dropdown-z-index: $global-z-index + 20 !default; +$dropdown-min-width: 200px !default; +$dropdown-padding: 15px !default; +$dropdown-background: $global-muted-background !default; +$dropdown-color: $global-color !default; +$dropdown-margin: $global-small-margin !default; + +$dropdown-nav-item-color: $global-muted-color !default; +$dropdown-nav-item-hover-color: $global-color !default; +$dropdown-nav-header-color: $global-emphasis-color !default; +$dropdown-nav-divider-border-width: $global-border-width !default; +$dropdown-nav-divider-border: $global-border !default; +$dropdown-nav-sublist-item-color: $global-muted-color !default; +$dropdown-nav-sublist-item-hover-color: $global-color !default; + + +/* ======================================================================== + Component: Dropdown + ========================================================================== */ + +/* + * 1. Hide by default + * 2. Set position + * 3. Set a default width + * 4. Style + */ + +.uk-dropdown { + /* 1 */ + display: none; + /* 2 */ + position: absolute; + z-index: $dropdown-z-index; + /* 3 */ + box-sizing: border-box; + min-width: $dropdown-min-width; + /* 4 */ + padding: $dropdown-padding; + background: $dropdown-background; + color: $dropdown-color; + @if(mixin-exists(hook-dropdown)) {@include hook-dropdown();} +} + +/* Show */ +.uk-dropdown.uk-open { display: block; } + + +/* Nav + * Adopts `uk-nav` + ========================================================================== */ + +.uk-dropdown-nav { + white-space: nowrap; + @if(mixin-exists(hook-dropdown-nav)) {@include hook-dropdown-nav();} +} + +/* + * Items + */ + +.uk-dropdown-nav > li > a { + color: $dropdown-nav-item-color; + @if(mixin-exists(hook-dropdown-nav-item)) {@include hook-dropdown-nav-item();} +} + +/* Hover + Focus + Active */ +.uk-dropdown-nav > li > a:hover, +.uk-dropdown-nav > li > a:focus, +.uk-dropdown-nav > li.uk-active > a { + color: $dropdown-nav-item-hover-color; + @if(mixin-exists(hook-dropdown-nav-item-hover)) {@include hook-dropdown-nav-item-hover();} +} + +/* + * Header + */ + +.uk-dropdown-nav .uk-nav-header { + color: $dropdown-nav-header-color; + @if(mixin-exists(hook-dropdown-nav-header)) {@include hook-dropdown-nav-header();} +} + +/* + * Divider + */ + +.uk-dropdown-nav .uk-nav-divider { + border-top: $dropdown-nav-divider-border-width solid $dropdown-nav-divider-border; + @if(mixin-exists(hook-dropdown-nav-divider)) {@include hook-dropdown-nav-divider();} +} + +/* + * Sublists + */ + +.uk-dropdown-nav .uk-nav-sub a { color: $dropdown-nav-sublist-item-color; } + +.uk-dropdown-nav .uk-nav-sub a:hover, +.uk-dropdown-nav .uk-nav-sub a:focus { color: $dropdown-nav-sublist-item-hover-color; } + + +/* Direction / Alignment modifiers + ========================================================================== */ + +/* Direction */ +[class*='uk-dropdown-top'] { margin-top: (-$dropdown-margin); } +[class*='uk-dropdown-bottom'] { margin-top: $dropdown-margin; } +[class*='uk-dropdown-left'] { margin-left: (-$dropdown-margin); } +[class*='uk-dropdown-right'] { margin-left: $dropdown-margin; } + + +/* Grid modifiers + ========================================================================== */ + +.uk-dropdown-stack .uk-dropdown-grid > * { width: 100% !important; } + + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-dropdown-misc)) {@include hook-dropdown-misc();} + +// @mixin hook-dropdown(){} +// @mixin hook-dropdown-nav(){} +// @mixin hook-dropdown-nav-item(){} +// @mixin hook-dropdown-nav-item-hover(){} +// @mixin hook-dropdown-nav-header(){} +// @mixin hook-dropdown-nav-divider(){} +// @mixin hook-dropdown-misc(){} diff --git a/_sass/uikit/components/flex.scss b/_sass/uikit/components/flex.scss new file mode 100644 index 0000000..1301fc4 --- /dev/null +++ b/_sass/uikit/components/flex.scss @@ -0,0 +1,209 @@ +// Name: Flex +// Description: Utilities for layouts based on flexbox +// +// Component: `uk-flex-*` +// +// ======================================================================== + + +/* ======================================================================== + Component: Flex + ========================================================================== */ + +.uk-flex { display: flex; } +.uk-flex-inline { display: inline-flex; } + +/* + * Remove pseudo elements created by micro clearfix as precaution + */ + +.uk-flex::before, +.uk-flex::after, +.uk-flex-inline::before, +.uk-flex-inline::after { display: none; } + + +/* Alignment + ========================================================================== */ + +/* + * Align items along the main axis of the current line of the flex container + * Row: Horizontal + */ + +// Default +.uk-flex-left { justify-content: flex-start; } +.uk-flex-center { justify-content: center; } +.uk-flex-right { justify-content: flex-end; } +.uk-flex-between { justify-content: space-between; } +.uk-flex-around { justify-content: space-around; } + + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-flex-left\@s { justify-content: flex-start; } + .uk-flex-center\@s { justify-content: center; } + .uk-flex-right\@s { justify-content: flex-end; } + .uk-flex-between\@s { justify-content: space-between; } + .uk-flex-around\@s { justify-content: space-around; } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-flex-left\@m { justify-content: flex-start; } + .uk-flex-center\@m { justify-content: center; } + .uk-flex-right\@m { justify-content: flex-end; } + .uk-flex-between\@m { justify-content: space-between; } + .uk-flex-around\@m { justify-content: space-around; } + +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-flex-left\@l { justify-content: flex-start; } + .uk-flex-center\@l { justify-content: center; } + .uk-flex-right\@l { justify-content: flex-end; } + .uk-flex-between\@l { justify-content: space-between; } + .uk-flex-around\@l { justify-content: space-around; } + +} + +/* Large screen and bigger */ +@media (min-width: $breakpoint-xlarge) { + + .uk-flex-left\@xl { justify-content: flex-start; } + .uk-flex-center\@xl { justify-content: center; } + .uk-flex-right\@xl { justify-content: flex-end; } + .uk-flex-between\@xl { justify-content: space-between; } + .uk-flex-around\@xl { justify-content: space-around; } + +} + +/* + * Align items in the cross axis of the current line of the flex container + * Row: Vertical + */ + +// Default +.uk-flex-stretch { align-items: stretch; } +.uk-flex-top { align-items: flex-start; } +.uk-flex-middle { align-items: center; } +.uk-flex-bottom { align-items: flex-end; } + + +/* Direction + ========================================================================== */ + +// Default +.uk-flex-row { flex-direction: row; } +.uk-flex-row-reverse { flex-direction: row-reverse; } +.uk-flex-column { flex-direction: column; } +.uk-flex-column-reverse { flex-direction: column-reverse; } + + +/* Wrap + ========================================================================== */ + +// Default +.uk-flex-nowrap { flex-wrap: nowrap; } +.uk-flex-wrap { flex-wrap: wrap; } +.uk-flex-wrap-reverse { flex-wrap: wrap-reverse; } + +/* + * Aligns items within the flex container when there is extra space in the cross-axis + * Only works if there is more than one line of flex items + */ + +// Default +.uk-flex-wrap-stretch { align-content: stretch; } +.uk-flex-wrap-top { align-content: flex-start; } +.uk-flex-wrap-middle { align-content: center; } +.uk-flex-wrap-bottom { align-content: flex-end; } +.uk-flex-wrap-between { align-content: space-between; } +.uk-flex-wrap-around { align-content: space-around; } + + +/* Item ordering + ========================================================================== */ + +/* + * Default is 0 + */ + +.uk-flex-first { order: -1;} +.uk-flex-last { order: 99;} + + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-flex-first\@s { order: -1; } + .uk-flex-last\@s { order: 99; } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-flex-first\@m { order: -1; } + .uk-flex-last\@m { order: 99; } + +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-flex-first\@l { order: -1; } + .uk-flex-last\@l { order: 99; } + +} + +/* Large screen and bigger */ +@media (min-width: $breakpoint-xlarge) { + + .uk-flex-first\@xl { order: -1; } + .uk-flex-last\@xl { order: 99; } + +} + + +/* Item dimensions + ========================================================================== */ + +/* + * Initial: 0 1 auto + * Content dimensions, but shrinks + */ + +/* + * No Flex: 0 0 auto + * Content dimensions + */ + +.uk-flex-none { flex: none; } + +/* + * Relative Flex: 1 1 auto + * Space is allocated considering content + */ + +.uk-flex-auto { flex: auto; } + +/* + * Absolute Flex: 1 1 0% + * Space is allocated solely based on flex + */ + +.uk-flex-1 { flex: 1; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-flex-misc)) {@include hook-flex-misc();} + +// @mixin hook-flex-misc(){} \ No newline at end of file diff --git a/_sass/uikit/components/form-range.scss b/_sass/uikit/components/form-range.scss new file mode 100644 index 0000000..f7a22a5 --- /dev/null +++ b/_sass/uikit/components/form-range.scss @@ -0,0 +1,185 @@ +// Name: Form Range +// Description: Styles for the range input type +// +// Component: `uk-range` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$form-range-thumb-height: 15px !default; +$form-range-thumb-border-radius: 500px !default; +$form-range-thumb-background: $global-color !default; + +$form-range-track-height: 3px !default; +$form-range-track-background: darken($global-muted-background, 5%) !default; +$form-range-track-focus-background: darken($global-muted-background, 15%) !default; + + +/* ======================================================================== + Component: Form Range + ========================================================================== */ + +/* + * 1. Normalize and defaults + * 2. Prevent content overflow if a fixed width is used + * 3. Take the full width + * 4. Remove default style + * 5. Remove white background in Chrome + * 6. Remove padding in IE11 + */ + +.uk-range { + /* 1 */ + box-sizing: border-box; + margin: 0; + vertical-align: middle; + /* 2 */ + max-width: 100%; + /* 3 */ + width: 100%; + /* 4 */ + -webkit-appearance: none; + /* 5 */ + background: transparent; + /* 6 */ + padding: 0; + @if(mixin-exists(hook-form-range)) {@include hook-form-range();} +} + +/* Focus */ +.uk-range:focus { outline: none; } +.uk-range::-moz-focus-outer { border: none; } + +/* IE11 Reset */ +.uk-range::-ms-track { + height: $form-range-thumb-height; + background: transparent; + border-color: transparent; + color: transparent; +} + +/* + * Improves consistency of cursor style for clickable elements + */ + +.uk-range:not(:disabled)::-webkit-slider-thumb { cursor: pointer; } +.uk-range:not(:disabled)::-moz-range-thumb { cursor: pointer; } +.uk-range:not(:disabled)::-ms-thumb { cursor: pointer; } + + +/* Thumb + ========================================================================== */ + +/* + * 1. Reset + * 2. Style + */ + +/* Webkit */ +.uk-range::-webkit-slider-thumb { + /* 1 */ + -webkit-appearance: none; + margin-top: (floor($form-range-thumb-height / 2) * -1); + /* 2 */ + height: $form-range-thumb-height; + width: $form-range-thumb-height; + border-radius: $form-range-thumb-border-radius; + background: $form-range-thumb-background; + @if(mixin-exists(hook-form-range-thumb)) {@include hook-form-range-thumb();} +} + +/* Firefox */ +.uk-range::-moz-range-thumb { + /* 1 */ + border: none; + /* 2 */ + height: $form-range-thumb-height; + width: $form-range-thumb-height; + border-radius: $form-range-thumb-border-radius; + background: $form-range-thumb-background; + @if(mixin-exists(hook-form-range-thumb)) {@include hook-form-range-thumb();} +} + +/* Edge */ +.uk-range::-ms-thumb { + /* 1 */ + margin-top: 0; +} + +/* IE11 */ +.uk-range::-ms-thumb { + /* 1 */ + border: none; + /* 2 */ + height: $form-range-thumb-height; + width: $form-range-thumb-height; + border-radius: $form-range-thumb-border-radius; + background: $form-range-thumb-background; + @if(mixin-exists(hook-form-range-thumb)) {@include hook-form-range-thumb();} +} + +/* Edge + IE11 */ +.uk-range::-ms-tooltip { display: none; } + + +/* Track + ========================================================================== */ + +/* + * 1. Safari doesn't have a focus state. Using active instead. + */ + +/* Webkit */ +.uk-range::-webkit-slider-runnable-track { + height: $form-range-track-height; + background: $form-range-track-background; + @if(mixin-exists(hook-form-range-track)) {@include hook-form-range-track();} +} + +.uk-range:focus::-webkit-slider-runnable-track, +/* 1 */ +.uk-range:active::-webkit-slider-runnable-track { + background: $form-range-track-focus-background; + @if(mixin-exists(hook-form-range-track-focus)) {@include hook-form-range-track-focus();} +} + +/* Firefox */ +.uk-range::-moz-range-track { + height: $form-range-track-height; + background: $form-range-track-background; + @if(mixin-exists(hook-form-range-track)) {@include hook-form-range-track();} +} + +.uk-range:focus::-moz-range-track { + background: $form-range-track-focus-background; + @if(mixin-exists(hook-form-range-track-focus)) {@include hook-form-range-track-focus();} +} + +/* Edge */ +.uk-range::-ms-fill-lower, +.uk-range::-ms-fill-upper { + height: $form-range-track-height; + background: $form-range-track-background; + @if(mixin-exists(hook-form-range-track)) {@include hook-form-range-track();} +} + +.uk-range:focus::-ms-fill-lower, +.uk-range:focus::-ms-fill-upper { + background: $form-range-track-focus-background; + @if(mixin-exists(hook-form-range-track-focus)) {@include hook-form-range-track-focus();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-form-range-misc)) {@include hook-form-range-misc();} + +// @mixin hook-form-range(){} +// @mixin hook-form-range-thumb(){} +// @mixin hook-form-range-track(){} +// @mixin hook-form-range-track-focus(){} +// @mixin hook-form-range-misc(){} diff --git a/_sass/uikit/components/form.scss b/_sass/uikit/components/form.scss new file mode 100644 index 0000000..e731cff --- /dev/null +++ b/_sass/uikit/components/form.scss @@ -0,0 +1,756 @@ +// Name: Form +// Description: Styles for forms +// +// Component: `uk-form-*` +// `uk-input` +// `uk-select` +// `uk-textarea` +// `uk-radio` +// `uk-checkbox` +// `uk-legend` +// `uk-fieldset` +// +// Sub-objects: `uk-form-custom` +// `uk-form-stacked` +// `uk-form-horizontal` +// `uk-form-label` +// `uk-form-controls` +// `uk-form-icon` +// `uk-form-icon-flip` +// +// Modifiers: `uk-form-small` +// `uk-form-large` +// `uk-form-danger` +// `uk-form-success` +// `uk-form-blank` +// `uk-form-width-xsmall` +// `uk-form-width-small` +// `uk-form-width-medium` +// `uk-form-width-large` +// `uk-form-controls-text` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$form-height: $global-control-height !default; +$form-line-height: $form-height !default; +$form-padding-horizontal: 10px !default; +$form-padding-vertical: 4px !default; + +$form-background: $global-muted-background !default; +$form-color: $global-color !default; + +$form-focus-background: $global-muted-background !default; +$form-focus-color: $global-color !default; + +$form-disabled-background: $global-muted-background !default; +$form-disabled-color: $global-muted-color !default; + +$form-placeholder-color: $global-muted-color !default; + +$form-small-height: $global-control-small-height !default; +$form-small-padding-horizontal: 8px !default; +$form-small-line-height: $form-small-height !default; +$form-small-font-size: $global-small-font-size !default; + +$form-large-height: $global-control-large-height !default; +$form-large-padding-horizontal: 12px !default; +$form-large-line-height: $form-large-height !default; +$form-large-font-size: $global-medium-font-size !default; + +$form-danger-color: $global-danger-background !default; +$form-success-color: $global-success-background !default; + +$form-width-xsmall: 50px !default; +$form-width-small: 130px !default; +$form-width-medium: 200px !default; +$form-width-large: 500px !default; + +$form-select-padding-right: 20px !default; +$form-select-icon-color: $global-color !default; +$form-select-disabled-icon-color: $global-muted-color !default; + +$form-radio-size: 16px !default; +$form-radio-margin-top: -4px !default; +$form-radio-background: darken($global-muted-background, 5%) !default; + +$form-radio-checked-background: $global-primary-background !default; +$form-radio-checked-icon-color: $global-inverse-color !default; + +$form-radio-checked-focus-background: darken($global-primary-background, 10%) !default; + +$form-radio-disabled-background: $global-muted-background !default; +$form-radio-disabled-icon-color: $global-muted-color !default; + +$form-legend-font-size: $global-large-font-size !default; +$form-legend-line-height: 1.4 !default; + +$form-stacked-margin-bottom: $global-small-margin !default; + +$form-horizontal-label-width: 200px !default; +$form-horizontal-label-margin-top: 7px !default; +$form-horizontal-controls-margin-left: 215px !default; +$form-horizontal-controls-text-padding-top: 7px !default; + +$form-icon-width: $form-height !default; +$form-icon-font-size: $global-font-size !default; +$form-icon-color: $global-muted-color !default; +$form-icon-hover-color: $global-color !default; + +$internal-form-select-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22#000%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22#000%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A" !default; +$internal-form-radio-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22#000%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$internal-form-checkbox-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22#000%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A" !default; +$internal-form-checkbox-indeterminate-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22#000%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; + + +/* ======================================================================== + Component: Form + ========================================================================== */ + +/* + * 1. Define consistent box sizing. + * Default is `content-box` with following exceptions set to `border-box` + * `select`, `input[type="checkbox"]` and `input[type="radio"]` + * `input[type="search"]` in Chrome, Safari and Opera + * `input[type="color"]` in Firefox + * 2. Address margins set differently in Firefox/IE and Chrome/Safari/Opera. + * 3. Remove `border-radius` in iOS. + * 4. Change font properties to `inherit` in all browsers. + */ + +.uk-input, +.uk-select, +.uk-textarea, +.uk-radio, +.uk-checkbox { + /* 1 */ + box-sizing: border-box; + /* 2 */ + margin: 0; + /* 3 */ + border-radius: 0; + /* 4 */ + font: inherit; +} + +/* + * Show the overflow in Edge. + */ + +.uk-input { overflow: visible; } + +/* + * Remove the inheritance of text transform in Firefox. + */ + +.uk-select { text-transform: none; } + +/* + * 1. Change font properties to `inherit` in all browsers + * 2. Don't inherit the `font-weight` and use `bold` instead. + * NOTE: Both declarations don't work in Chrome, Safari and Opera. + */ + +.uk-select optgroup { + /* 1 */ + font: inherit; + /* 2 */ + font-weight: bold; +} + +/* + * Remove the default vertical scrollbar in IE 10+. + */ + +.uk-textarea { overflow: auto; } + +/* + * Remove the inner padding and cancel buttons in Chrome on OS X and Safari on OS X. + */ + +.uk-input[type="search"]::-webkit-search-cancel-button, +.uk-input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } + + +/* + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +.uk-input[type="number"]::-webkit-inner-spin-button, +.uk-input[type="number"]::-webkit-outer-spin-button { height: auto; } + +/* + * Removes placeholder transparency in Firefox. + */ + +.uk-input::-moz-placeholder, +.uk-textarea::-moz-placeholder { opacity: 1; } + +/* + * Improves consistency of cursor style for clickable elements + */ + +.uk-radio:not(:disabled), +.uk-checkbox:not(:disabled) { cursor: pointer; } + +/* + * Define consistent border, margin, and padding. + */ + +.uk-fieldset { + border: none; + margin: 0; + padding: 0; +} + + +/* Input, select and textarea + * Allowed: `text`, `password`, `datetime`, `datetime-local`, `date`, `month`, + `time`, `week`, `number`, `email`, `url`, `search`, `tel`, `color` + * Disallowed: `range`, `radio`, `checkbox`, `file`, `submit`, `reset` and `image` + ========================================================================== */ + +/* + * Remove default style in iOS. + */ + +.uk-input, +.uk-textarea { -webkit-appearance: none; } + +/* + * 1. Prevent content overflow if a fixed width is used + * 2. Take the full width + * 3. Reset default + * 4. Style + */ + +.uk-input, +.uk-select, +.uk-textarea { + /* 1 */ + max-width: 100%; + /* 2 */ + width: 100%; + /* 3 */ + border: 0 none; + /* 4 */ + padding: 0 $form-padding-horizontal; + background: $form-background; + color: $form-color; + @if(mixin-exists(hook-form)) {@include hook-form();} +} + +/* + * Single-line + * 1. Allow any element to look like an `input` or `select` element + * 2. Make sure line-height is not larger than height + * Also needed to center the text vertically + */ + +.uk-input, +.uk-select:not([multiple]):not([size]) { + height: $form-height; + vertical-align: middle; + /* 1 */ + display: inline-block; + @if(mixin-exists(hook-form-single-line)) {@include hook-form-single-line();} +} + +/* 2 */ +.uk-input:not(input), +.uk-select:not(select) { line-height: $form-line-height; } + +/* + * Multi-line + */ + +.uk-select[multiple], +.uk-select[size], +.uk-textarea { + padding-top: $form-padding-vertical; + padding-bottom: $form-padding-vertical; + vertical-align: top; + @if(mixin-exists(hook-form-multi-line)) {@include hook-form-multi-line();} +} + +/* Focus */ +.uk-input:focus, +.uk-select:focus, +.uk-textarea:focus { + outline: none; + background-color: $form-focus-background; + color: $form-focus-color; + @if(mixin-exists(hook-form-focus)) {@include hook-form-focus();} +} + +/* Disabled */ +.uk-input:disabled, +.uk-select:disabled, +.uk-textarea:disabled { + background-color: $form-disabled-background; + color: $form-disabled-color; + @if(mixin-exists(hook-form-disabled)) {@include hook-form-disabled();} +} + +/* + * Placeholder + */ + +.uk-input:-ms-input-placeholder { color: $form-placeholder-color !important; } +.uk-input::placeholder { color: $form-placeholder-color; } + +.uk-textarea:-ms-input-placeholder { color: $form-placeholder-color !important; } +.uk-textarea::placeholder { color: $form-placeholder-color; } + + +/* Style modifier (`uk-input`, `uk-select` and `uk-textarea`) + ========================================================================== */ + +/* + * Small + */ + +.uk-form-small { font-size: $form-small-font-size; } + +.uk-form-small:not(textarea):not([multiple]):not([size]) { + height: $form-small-height; + padding-left: $form-small-padding-horizontal; + padding-right: $form-small-padding-horizontal; +} + +.uk-form-small:not(select):not(input):not(textarea) { line-height: $form-small-line-height; } + +/* + * Large + */ + +.uk-form-large { font-size: $form-large-font-size; } + +.uk-form-large:not(textarea):not([multiple]):not([size]) { + height: $form-large-height; + padding-left: $form-large-padding-horizontal; + padding-right: $form-large-padding-horizontal; +} + +.uk-form-large:not(select):not(input):not(textarea) { line-height: $form-large-line-height; } + + +/* Style modifier (`uk-input`, `uk-select` and `uk-textarea`) + ========================================================================== */ + +/* + * Error + */ + +.uk-form-danger, +.uk-form-danger:focus { + color: $form-danger-color; + @if(mixin-exists(hook-form-danger)) {@include hook-form-danger();} +} + +/* + * Success + */ + +.uk-form-success, +.uk-form-success:focus { + color: $form-success-color; + @if(mixin-exists(hook-form-success)) {@include hook-form-success();} +} + +/* + * Blank + */ + +.uk-form-blank { + background: none; + @if(mixin-exists(hook-form-blank)) {@include hook-form-blank();} +} + +.uk-form-blank:focus { + @if(mixin-exists(hook-form-blank-focus)) {@include hook-form-blank-focus();} +} + + +/* Width modifiers (`uk-input`, `uk-select` and `uk-textarea`) + ========================================================================== */ + +/* + * Fixed widths + * Different widths for mini sized `input` and `select` elements + */ + +input.uk-form-width-xsmall { width: $form-width-xsmall; } + +select.uk-form-width-xsmall { width: ($form-width-xsmall + 25px); } + +.uk-form-width-small { width: $form-width-small; } + +.uk-form-width-medium { width: $form-width-medium; } + +.uk-form-width-large { width: $form-width-large; } + + +/* Select + ========================================================================== */ + +/* + * 1. Remove default style. Also works in Firefox + * 2. Style + * 3. Remove default style in IE 10/11 + */ + +.uk-select:not([multiple]):not([size]) { + /* 1 */ + -webkit-appearance: none; + -moz-appearance: none; + /* 2 */ + padding-right: $form-select-padding-right; + @include svg-fill($internal-form-select-image, "#000", $form-select-icon-color); + background-repeat: no-repeat; + background-position: 100% 50%; +} + +/* 3 */ +.uk-select:not([multiple]):not([size])::-ms-expand { display: none; } + +/* + * Disabled + */ + +.uk-select:not([multiple]):not([size]):disabled { @include svg-fill($internal-form-select-image, "#000", $form-select-disabled-icon-color); } + + +/* Radio and checkbox + * Note: Does not work in IE11 + ========================================================================== */ + +/* + * 1. Style + * 2. Make box more robust so it clips the child element + * 3. Vertical alignment + * 4. Remove default style + * 5. Fix black background on iOS + * 6. Center icons + */ + +.uk-radio, +.uk-checkbox { + /* 1 */ + display: inline-block; + height: $form-radio-size; + width: $form-radio-size; + /* 2 */ + overflow: hidden; + /* 3 */ + margin-top: $form-radio-margin-top; + vertical-align: middle; + /* 4 */ + -webkit-appearance: none; + -moz-appearance: none; + /* 5 */ + background-color: $form-radio-background; + /* 6 */ + background-repeat: no-repeat; + background-position: 50% 50%; + @if(mixin-exists(hook-form-radio)) {@include hook-form-radio();} +} + +.uk-radio { border-radius: 50%; } + +/* Focus */ +.uk-radio:focus, +.uk-checkbox:focus { + outline: none; + @if(mixin-exists(hook-form-radio-focus)) {@include hook-form-radio-focus();} +} + +/* + * Checked + */ + +.uk-radio:checked, +.uk-checkbox:checked, +.uk-checkbox:indeterminate { + background-color: $form-radio-checked-background; + @if(mixin-exists(hook-form-radio-checked)) {@include hook-form-radio-checked();} +} + +/* Focus */ +.uk-radio:checked:focus, +.uk-checkbox:checked:focus, +.uk-checkbox:indeterminate:focus { + background-color: $form-radio-checked-focus-background; + @if(mixin-exists(hook-form-radio-checked-focus)) {@include hook-form-radio-checked-focus();} +} + +/* + * Icons + */ + +.uk-radio:checked { @include svg-fill($internal-form-radio-image, "#000", $form-radio-checked-icon-color); } +.uk-checkbox:checked { @include svg-fill($internal-form-checkbox-image, "#000", $form-radio-checked-icon-color); } +.uk-checkbox:indeterminate { @include svg-fill($internal-form-checkbox-indeterminate-image, "#000", $form-radio-checked-icon-color); } + +/* + * Disabled + */ + +.uk-radio:disabled, +.uk-checkbox:disabled { + background-color: $form-radio-disabled-background; + @if(mixin-exists(hook-form-radio-disabled)) {@include hook-form-radio-disabled();} +} + +.uk-radio:disabled:checked { @include svg-fill($internal-form-radio-image, "#000", $form-radio-disabled-icon-color); } +.uk-checkbox:disabled:checked { @include svg-fill($internal-form-checkbox-image, "#000", $form-radio-disabled-icon-color); } +.uk-checkbox:disabled:indeterminate { @include svg-fill($internal-form-checkbox-indeterminate-image, "#000", $form-radio-disabled-icon-color); } + + +/* Legend + ========================================================================== */ + +/* + * Legend + * 1. Behave like block element + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove padding so people aren't caught out if they zero out fieldsets. + * 4. Style + */ + +.uk-legend { + /* 1 */ + width: 100%; + /* 2 */ + color: inherit; + /* 3 */ + padding: 0; + /* 4 */ + font-size: $form-legend-font-size; + line-height: $form-legend-line-height; + @if(mixin-exists(hook-form-legend)) {@include hook-form-legend();} +} + + +/* Custom controls + ========================================================================== */ + +/* + * 1. Container fits its content + * 2. Create position context + * 3. Prevent content overflow + * 4. Behave like most inline-block elements + */ + +.uk-form-custom { + /* 1 */ + display: inline-block; + /* 2 */ + position: relative; + /* 3 */ + max-width: 100%; + /* 4 */ + vertical-align: middle; +} + +/* + * 1. Position and resize the form control to always cover its container + * 2. Required for Firefox for positioning to the left + * 3. Required for Webkit to make `height` work + * 4. Hide controle and show cursor + * 5. Needed for the cursor + * 6. Clip height caused by 5. Needed for Webkit only + */ + +.uk-form-custom select, +.uk-form-custom input[type="file"] { + /* 1 */ + position: absolute; + top: 0; + z-index: 1; + width: 100%; + height: 100%; + /* 2 */ + left: 0; + /* 3 */ + -webkit-appearance: none; + /* 4 */ + opacity: 0; + cursor: pointer; +} + +.uk-form-custom input[type="file"] { + /* 5 */ + font-size: 500px; + /* 6 */ + overflow: hidden; +} + + +/* Label + ========================================================================== */ + +.uk-form-label { + @if(mixin-exists(hook-form-label)) {@include hook-form-label();} +} + + +/* Layout + ========================================================================== */ + +/* + * Stacked + */ + +.uk-form-stacked .uk-form-label { + display: block; + margin-bottom: $form-stacked-margin-bottom; + @if(mixin-exists(hook-form-stacked-label)) {@include hook-form-stacked-label();} +} + +/* + * Horizontal + */ + +/* Tablet portrait and smaller */ +@media (max-width: $breakpoint-small-max) { + + /* Behave like `uk-form-stacked` */ + .uk-form-horizontal .uk-form-label { + display: block; + margin-bottom: $form-stacked-margin-bottom; + @if(mixin-exists(hook-form-stacked-label)) {@include hook-form-stacked-label();} + } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-form-horizontal .uk-form-label { + width: $form-horizontal-label-width; + margin-top: $form-horizontal-label-margin-top; + float: left; + @if(mixin-exists(hook-form-horizontal-label)) {@include hook-form-horizontal-label();} + } + + .uk-form-horizontal .uk-form-controls { margin-left: $form-horizontal-controls-margin-left; } + + /* Better vertical alignment if controls are checkboxes and radio buttons with text */ + .uk-form-horizontal .uk-form-controls-text { padding-top: $form-horizontal-controls-text-padding-top; } + +} + + +/* Icons + ========================================================================== */ + +/* + * 1. Set position + * 2. Set width + * 3. Center icon vertically and horizontally + * 4. Style + */ + +.uk-form-icon { + /* 1 */ + position: absolute; + top: 0; + bottom: 0; + left: 0; + /* 2 */ + width: $form-icon-width; + /* 3 */ + display: inline-flex; + justify-content: center; + align-items: center; + /* 4 */ + color: $form-icon-color; +} + +/* + * Required for `a`. + */ + +.uk-form-icon:hover { color: $form-icon-hover-color; } + +/* + * Make `input` element clickable through icon, e.g. if it's a `span` + */ + +.uk-form-icon:not(a):not(button):not(input) { pointer-events: none; } + +/* + * Input padding + */ + +.uk-form-icon:not(.uk-form-icon-flip) + .uk-input { padding-left: $form-icon-width !important; } + +/* + * Position modifier + */ + +.uk-form-icon-flip { + right: 0; + left: auto; +} + +.uk-form-icon-flip + .uk-input { padding-right: $form-icon-width !important; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-form-misc)) {@include hook-form-misc();} + +// @mixin hook-form(){} +// @mixin hook-form-single-line(){} +// @mixin hook-form-multi-line(){} +// @mixin hook-form-focus(){} +// @mixin hook-form-disabled(){} +// @mixin hook-form-danger(){} +// @mixin hook-form-success(){} +// @mixin hook-form-blank(){} +// @mixin hook-form-blank-focus(){} +// @mixin hook-form-radio(){} +// @mixin hook-form-radio-focus(){} +// @mixin hook-form-radio-checked(){} +// @mixin hook-form-radio-checked-focus(){} +// @mixin hook-form-radio-disabled(){} +// @mixin hook-form-legend(){} +// @mixin hook-form-label(){} +// @mixin hook-form-stacked-label(){} +// @mixin hook-form-horizontal-label(){} +// @mixin hook-form-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-form-background: $inverse-global-muted-background !default; +$inverse-form-color: $inverse-global-color !default; +$inverse-form-focus-background: $inverse-global-muted-background !default; +$inverse-form-focus-color: $inverse-global-color !default; +$inverse-form-placeholder-color: $inverse-global-muted-color !default; + +$inverse-form-select-icon-color: $inverse-global-color !default; + +$inverse-form-radio-background: darken($inverse-global-muted-background, 5%) !default; + +$inverse-form-radio-checked-background: $inverse-global-primary-background !default; +$inverse-form-radio-checked-icon-color: $inverse-global-inverse-color !default; + +$inverse-form-radio-checked-focus-background: darken($inverse-global-primary-background, 10%) !default; + + + +// @mixin hook-inverse-form(){} +// @mixin hook-inverse-form-focus(){} +// @mixin hook-inverse-form-radio(){} +// @mixin hook-inverse-form-radio-focus(){} +// @mixin hook-inverse-form-radio-checked(){} +// @mixin hook-inverse-form-radio-checked-focus(){} +// @mixin hook-inverse-form-label(){} diff --git a/_sass/uikit/components/grid.scss b/_sass/uikit/components/grid.scss new file mode 100644 index 0000000..455033c --- /dev/null +++ b/_sass/uikit/components/grid.scss @@ -0,0 +1,352 @@ +// Name: Grid +// Description: Component to create responsive, fluid and nestable grids +// +// Component: `uk-grid` +// +// Modifiers: `uk-grid-small` +// `uk-grid-medium` +// `uk-grid-large` +// `uk-grid-collapse` +// `uk-grid-divider` +// `uk-grid-match` +// `uk-grid-stack` +// `uk-grid-margin` +// `uk-grid-margin-small` +// `uk-grid-margin-medium` +// `uk-grid-margin-large` +// `uk-grid-margin-collapse` +// +// Sub-modifier: `uk-grid-item-match` +// +// States: `uk-first-column` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$grid-gutter-horizontal: $global-gutter !default; +$grid-gutter-vertical: $grid-gutter-horizontal !default; +$grid-gutter-horizontal-l: $global-medium-gutter !default; +$grid-gutter-vertical-l: $grid-gutter-horizontal-l !default; + +$grid-small-gutter-horizontal: $global-small-gutter !default; +$grid-small-gutter-vertical: $grid-small-gutter-horizontal !default; + +$grid-medium-gutter-horizontal: $global-gutter !default; +$grid-medium-gutter-vertical: $grid-medium-gutter-horizontal !default; + +$grid-large-gutter-horizontal: $global-medium-gutter !default; +$grid-large-gutter-vertical: $grid-large-gutter-horizontal !default; +$grid-large-gutter-horizontal-l: $global-large-gutter !default; +$grid-large-gutter-vertical-l: $grid-large-gutter-horizontal-l !default; + +$grid-divider-border-width: $global-border-width !default; +$grid-divider-border: $global-border !default; + + +/* ======================================================================== + Component: Grid + ========================================================================== */ + +/* + * 1. Allow cells to wrap into the next line + * 2. Reset list + */ + +.uk-grid { + display: flex; + /* 1 */ + flex-wrap: wrap; + /* 2 */ + margin: 0; + padding: 0; + list-style: none; +} + +/* + * Grid cell + * Note: Space is allocated solely based on content dimensions, but shrinks: 0 1 auto + * Reset margin for e.g. paragraphs + */ + +.uk-grid > * { margin: 0; } + +/* + * Remove margin from the last-child + */ + +.uk-grid > * > :last-child { margin-bottom: 0; } + + +/* Gutter + ========================================================================== */ + +/* + * Default + */ + +/* Horizontal */ +.uk-grid { margin-left: (-$grid-gutter-horizontal); } +.uk-grid > * { padding-left: $grid-gutter-horizontal; } + +/* Vertical */ +.uk-grid + .uk-grid, +.uk-grid > .uk-grid-margin, +* + .uk-grid-margin { margin-top: $grid-gutter-vertical; } + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + /* Horizontal */ + .uk-grid { margin-left: (-$grid-gutter-horizontal-l); } + .uk-grid > * { padding-left: $grid-gutter-horizontal-l; } + + /* Vertical */ + .uk-grid + .uk-grid, + .uk-grid > .uk-grid-margin, + * + .uk-grid-margin { margin-top: $grid-gutter-vertical-l; } + +} + +/* + * Small + */ + +/* Horizontal */ +.uk-grid-small { margin-left: (-$grid-small-gutter-horizontal); } +.uk-grid-small > * { padding-left: $grid-small-gutter-horizontal; } + +/* Vertical */ +.uk-grid + .uk-grid-small, +.uk-grid-small > .uk-grid-margin, +* + .uk-grid-margin-small { margin-top: $grid-small-gutter-vertical; } + +/* + * Medium + */ + +/* Horizontal */ +.uk-grid-medium { margin-left: (-$grid-medium-gutter-horizontal); } +.uk-grid-medium > * { padding-left: $grid-medium-gutter-horizontal; } + +/* Vertical */ +.uk-grid + .uk-grid-medium, +.uk-grid-medium > .uk-grid-margin, +* + .uk-grid-margin-medium { margin-top: $grid-medium-gutter-vertical; } + +/* + * Large + */ + +/* Horizontal */ +.uk-grid-large { margin-left: (-$grid-large-gutter-horizontal); } +.uk-grid-large > * { padding-left: $grid-large-gutter-horizontal; } + +/* Vertical */ +.uk-grid + .uk-grid-large, +.uk-grid-large > .uk-grid-margin, +* + .uk-grid-margin-large { margin-top: $grid-large-gutter-vertical; } + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + /* Horizontal */ + .uk-grid-large { margin-left: (-$grid-large-gutter-horizontal-l); } + .uk-grid-large > * { padding-left: $grid-large-gutter-horizontal-l; } + + /* Vertical */ + .uk-grid + .uk-grid-large, + .uk-grid-large > .uk-grid-margin, + * + .uk-grid-margin-large { margin-top: $grid-large-gutter-vertical-l; } + +} + +/* + * Collapse + */ + +/* Horizontal */ +.uk-grid-collapse { margin-left: 0; } +.uk-grid-collapse > * { padding-left: 0; } + +/* Vertical */ +.uk-grid + .uk-grid-collapse, +.uk-grid-collapse > .uk-grid-margin { margin-top: 0; } + + +/* Divider + ========================================================================== */ + +.uk-grid-divider > * { position: relative; } + +.uk-grid-divider > :not(.uk-first-column)::before { + content: ""; + position: absolute; + top: 0; + bottom: 0; + border-left: $grid-divider-border-width solid $grid-divider-border; +} + +/* Vertical */ +.uk-grid-divider.uk-grid-stack > .uk-grid-margin::before { + content: ""; + position: absolute; + left: 0; + right: 0; + border-top: $grid-divider-border-width solid $grid-divider-border; +} + +/* + * Default + */ + +/* Horizontal */ +.uk-grid-divider { margin-left: -($grid-gutter-horizontal * 2); } +.uk-grid-divider > * { padding-left: ($grid-gutter-horizontal * 2); } + +.uk-grid-divider > :not(.uk-first-column)::before { left: $grid-gutter-horizontal; } + +/* Vertical */ +.uk-grid-divider.uk-grid-stack > .uk-grid-margin { margin-top: ($grid-gutter-vertical * 2); } + +.uk-grid-divider.uk-grid-stack > .uk-grid-margin::before { + top: (-$grid-gutter-vertical); + left: ($grid-gutter-horizontal * 2); +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + /* Horizontal */ + .uk-grid-divider { margin-left: -($grid-gutter-horizontal-l * 2); } + .uk-grid-divider > * { padding-left: ($grid-gutter-horizontal-l * 2); } + + .uk-grid-divider > :not(.uk-first-column)::before { left: $grid-gutter-horizontal-l; } + + /* Vertical */ + .uk-grid-divider.uk-grid-stack > .uk-grid-margin { margin-top: ($grid-gutter-vertical-l * 2); } + + .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before { + top: (-$grid-gutter-vertical-l); + left: ($grid-gutter-horizontal-l * 2); + } + +} + +/* + * Small + */ + +/* Horizontal */ +.uk-grid-divider.uk-grid-small { margin-left: -($grid-small-gutter-horizontal * 2); } +.uk-grid-divider.uk-grid-small > * { padding-left: ($grid-small-gutter-horizontal * 2); } + +.uk-grid-divider.uk-grid-small > :not(.uk-first-column)::before { left: $grid-small-gutter-horizontal; } + +/* Vertical */ +.uk-grid-divider.uk-grid-small.uk-grid-stack > .uk-grid-margin { margin-top: ($grid-small-gutter-vertical * 2); } + +.uk-grid-divider.uk-grid-small.uk-grid-stack > .uk-grid-margin::before { + top: (-$grid-small-gutter-vertical); + left: ($grid-small-gutter-horizontal * 2); +} + +/* + * Medium + */ + +/* Horizontal */ +.uk-grid-divider.uk-grid-medium { margin-left: -($grid-medium-gutter-horizontal * 2); } +.uk-grid-divider.uk-grid-medium > * { padding-left: ($grid-medium-gutter-horizontal * 2); } + +.uk-grid-divider.uk-grid-medium > :not(.uk-first-column)::before { left: $grid-medium-gutter-horizontal; } + +/* Vertical */ +.uk-grid-divider.uk-grid-medium.uk-grid-stack > .uk-grid-margin { margin-top: ($grid-medium-gutter-vertical * 2); } + +.uk-grid-divider.uk-grid-medium.uk-grid-stack > .uk-grid-margin::before { + top: (-$grid-medium-gutter-vertical); + left: ($grid-medium-gutter-horizontal * 2); +} + +/* + * Large + */ + +/* Horizontal */ +.uk-grid-divider.uk-grid-large { margin-left: -($grid-large-gutter-horizontal * 2); } +.uk-grid-divider.uk-grid-large > * { padding-left: ($grid-large-gutter-horizontal * 2); } + +.uk-grid-divider.uk-grid-large > :not(.uk-first-column)::before { left: $grid-large-gutter-horizontal; } + +/* Vertical */ +.uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin { margin-top: ($grid-large-gutter-vertical * 2); } + +.uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin::before { + top: (-$grid-large-gutter-vertical); + left: ($grid-large-gutter-horizontal * 2); +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + /* Horizontal */ + .uk-grid-divider.uk-grid-large { margin-left: -($grid-large-gutter-horizontal-l * 2); } + .uk-grid-divider.uk-grid-large > * { padding-left: ($grid-large-gutter-horizontal-l * 2); } + + .uk-grid-divider.uk-grid-large > :not(.uk-first-column)::before { left: $grid-large-gutter-horizontal-l; } + + /* Vertical */ + .uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin { margin-top: ($grid-large-gutter-vertical-l * 2); } + + .uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin::before { + top: (-$grid-large-gutter-vertical-l); + left: ($grid-large-gutter-horizontal-l * 2); + } + +} + + +/* Match child of a grid cell + ========================================================================== */ + +/* + * Behave like a block element + * 1. Wrap into the next line + * 2. Take the full width, at least 100%. Only if no class from the Width component is set. + * 3. Expand width even if larger than 100%, e.g. because of negative margin (Needed for nested grids) + */ + +.uk-grid-match > *, +.uk-grid-item-match { + display: flex; + /* 1 */ + flex-wrap: wrap; +} + +.uk-grid-match > * > :not([class*='uk-width']), +.uk-grid-item-match > :not([class*='uk-width']) { + /* 2 */ + box-sizing: border-box; + width: 100%; + /* 3 */ + flex: auto; +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-grid-misc)) {@include hook-grid-misc();} + +// @mixin hook-grid-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-grid-divider-border: $inverse-global-border !default; + + diff --git a/_sass/uikit/components/heading.scss b/_sass/uikit/components/heading.scss new file mode 100644 index 0000000..a5127c8 --- /dev/null +++ b/_sass/uikit/components/heading.scss @@ -0,0 +1,214 @@ +// Name: Heading +// Description: Styles for headings +// +// Component: `uk-heading-primary` +// `uk-heading-hero` +// `uk-heading-divider` +// `uk-heading-bullet` +// `uk-heading-line` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$heading-primary-font-size: $global-xxlarge-font-size !default; +$heading-primary-line-height: 1.2 !default; + +$heading-primary-font-size-m: 3.75rem !default; // 54px +$heading-primary-line-height-m: 1.1 !default; + +$heading-hero-font-size: 4rem !default; // 64px +$heading-hero-line-height: 1.1 !default; + +$heading-hero-font-size-s: 3rem !default; // 96px +$heading-hero-line-height-s: 1 !default; + +$heading-hero-font-size-m: 4rem !default; // 128px +$heading-hero-line-height-m: 1 !default; + +$heading-divider-padding-bottom: 10px !default; +$heading-divider-border-width: $global-border-width !default; +$heading-divider-border: $global-border !default; + +$heading-bullet-top: unquote('calc(-0.1 * 1em)') !default; +$heading-bullet-height: 0.9em !default; +$heading-bullet-margin-right: 10px !default; +$heading-bullet-border-width: 5px !default; +$heading-bullet-border: $global-border !default; + +$heading-line-top: 50% !default; +$heading-line-height: $heading-line-border-width !default; +$heading-line-width: 2000px !default; +$heading-line-border-width: $global-border-width !default; +$heading-line-border: $global-border !default; +$heading-line-margin-horizontal: 0.6em !default; + + +/* ======================================================================== + Component: Heading + ========================================================================== */ + + +/* Primary + ========================================================================== */ + +.uk-heading-primary { + font-size: $heading-primary-font-size; + line-height: $heading-primary-line-height; + @if(mixin-exists(hook-heading-primary)) {@include hook-heading-primary();} +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-heading-primary { + font-size: $heading-primary-font-size-m; + line-height: $heading-primary-line-height-m; + } + +} + + +/* Hero + ========================================================================== */ + +.uk-heading-hero { + font-size: $heading-hero-font-size; + line-height: $heading-hero-line-height; + @if(mixin-exists(hook-heading-hero)) {@include hook-heading-hero();} +} + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-heading-hero { + font-size: $heading-hero-font-size-s; + line-height: $heading-hero-line-height-s; + } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-heading-hero { + font-size: $heading-hero-font-size-m; + line-height: $heading-hero-line-height-m; + } + +} + + +/* Divider + ========================================================================== */ + +.uk-heading-divider { + padding-bottom: $heading-divider-padding-bottom; + border-bottom: $heading-divider-border-width solid $heading-divider-border; + @if(mixin-exists(hook-heading-divider)) {@include hook-heading-divider();} +} + + +/* Bullet + ========================================================================== */ + +.uk-heading-bullet { position: relative; } + +/* + * 1. Using `inline-block` to make it work with text alignment + * 2. Center vertically + * 3. Style + */ + +.uk-heading-bullet::before { + content: ""; + /* 1 */ + display: inline-block; + /* 2 */ + position: relative; + top: $heading-bullet-top; + vertical-align: middle; + /* 3 */ + height: $heading-bullet-height; + margin-right: $heading-bullet-margin-right; + border-left: $heading-bullet-border-width solid $heading-bullet-border; + @if(mixin-exists(hook-heading-bullet)) {@include hook-heading-bullet();} +} + + +/* Line + ========================================================================== */ + +/* + * Clip the child element + */ + +.uk-heading-line { overflow: hidden; } + +/* + * Extra markup is needed to make it work with text align + */ + +.uk-heading-line > * { + display: inline-block; + position: relative; +} + +/* + * 1. Center vertically + * 2. Make the element as large as possible. It's clipped by the container. + * 3. Style + */ + +.uk-heading-line > ::before, +.uk-heading-line > ::after { + content: ""; + /* 1 */ + position: absolute; + top: unquote('calc(#{$heading-line-top} - (#{$heading-line-height} / 2))'); + /* 2 */ + width: $heading-line-width; + /* 3 */ + border-bottom: $heading-line-border-width solid $heading-line-border; + @if(mixin-exists(hook-heading-line)) {@include hook-heading-line();} +} + +.uk-heading-line > ::before { + right: 100%; + margin-right: $heading-line-margin-horizontal; +} +.uk-heading-line > ::after { + left: 100%; + margin-left: $heading-line-margin-horizontal; +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-heading-misc)) {@include hook-heading-misc();} + +// @mixin hook-heading-primary(){} +// @mixin hook-heading-hero(){} +// @mixin hook-heading-divider(){} +// @mixin hook-heading-bullet(){} +// @mixin hook-heading-line(){} +// @mixin hook-heading-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-heading-divider-border: $inverse-global-border !default; +$inverse-heading-bullet-border: $inverse-global-border !default; +$inverse-heading-line-border: $inverse-global-border !default; + + + +// @mixin hook-inverse-heading-primary(){} +// @mixin hook-inverse-heading-hero(){} +// @mixin hook-inverse-heading-divider(){} +// @mixin hook-inverse-heading-bullet(){} +// @mixin hook-inverse-heading-line(){} diff --git a/_sass/uikit/components/icon.scss b/_sass/uikit/components/icon.scss new file mode 100644 index 0000000..2ff70ec --- /dev/null +++ b/_sass/uikit/components/icon.scss @@ -0,0 +1,223 @@ +// Name: Icon +// Description: Component to create icons +// +// Component: `uk-icon` +// +// Modifiers: `uk-icon-image` +// `uk-icon-link` +// `uk-icon-button` +// +// States: `uk-preserve` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$icon-image-size: 20px !default; + +$icon-link-color: $global-muted-color !default; +$icon-link-hover-color: $global-color !default; +$icon-link-active-color: darken($global-color, 5%) !default; + +$icon-button-size: 36px !default; +$icon-button-border-radius: 500px !default; +$icon-button-background: $global-muted-background !default; +$icon-button-color: $global-muted-color !default; + +$icon-button-hover-background: darken($icon-button-background, 5%) !default; +$icon-button-hover-color: $global-color !default; + +$icon-button-active-background: darken($icon-button-background, 10%) !default; +$icon-button-active-color: $global-color !default; + + +/* ======================================================================== + Component: Icon + ========================================================================== */ + +/* + * Note: 1. - 7. is required for `button` elements. Needed for Close and Form Icon component. + * 1. Remove margins in Chrome, Safari and Opera. + * 2. Remove borders for `button`. + * 3. Remove border-radius in Chrome. + * 4. Address `overflow` set to `hidden` in IE. + * 5. Correct `font` properties and `color` not being inherited for `button`. + * 6. Remove the inheritance of text transform in Edge, Firefox, and IE. + * 7. Remove default `button` padding and background color + * 8. Style + * 9. Fill all SVG elements with the current text color if no `fill` attribute is set + * 10. Let the container fit the height of the icon + */ + +.uk-icon { + /* 1 */ + margin: 0; + /* 2 */ + border: none; + /* 3 */ + border-radius: 0; + /* 4 */ + overflow: visible; + /* 5 */ + font: inherit; + color: inherit; + /* 6 */ + text-transform: none; + /* 7. */ + padding: 0; + background-color: transparent; + /* 8 */ + display: inline-block; + /* 9 */ + fill: currentcolor; + /* 10 */ + line-height: 0; +} + +/* Required for `button`. */ +button.uk-icon:not(:disabled) { cursor: pointer; } + +/* + * Remove the inner border and padding in Firefox. + */ + +.uk-icon::-moz-focus-inner { + border: 0; + padding: 0; +} + +/* + * Set the fill and stroke color of all SVG elements to the current text color + * 1. Fix for uppercase attribute names in Edge. Will be fixed in Windows 10 builds 16251+ + */ + +.uk-icon [fill*='#']:not(.uk-preserve), +.uk-icon [FILL*='#']:not(.uk-preserve) { fill: currentcolor; } // 1 +.uk-icon [stroke*='#']:not(.uk-preserve), +.uk-icon [STROKE*='#']:not(.uk-preserve) { stroke: currentcolor; } // 1 + +/* + * Fix Firefox blurry SVG rendering: https://bugzilla.mozilla.org/show_bug.cgi?id=1046835 + */ + +.uk-icon > * { transform: translate(0,0); } + + +/* Image modifier + ========================================================================== */ + +/* + * Display images in icon dimensions + */ + +.uk-icon-image { + width: $icon-image-size; + height: $icon-image-size; + background-position: 50% 50%; + background-repeat: no-repeat; + background-size: contain; + vertical-align: middle; +} + + +/* Style modifiers + ========================================================================== */ + +/* + * Link + */ + +.uk-icon-link { + color: $icon-link-color; + @if(mixin-exists(hook-icon-link)) {@include hook-icon-link();} +} + +.uk-icon-link:hover, +.uk-icon-link:focus { + color: $icon-link-hover-color; + outline: none; + @if(mixin-exists(hook-icon-link-hover)) {@include hook-icon-link-hover();} +} + +/* OnClick + Active */ +.uk-icon-link:active, +.uk-active > .uk-icon-link { + color: $icon-link-active-color; + @if(mixin-exists(hook-icon-link-active)) {@include hook-icon-link-active();} +} + +/* + * Button + * 1. Center icon vertically and horizontally + */ + +.uk-icon-button { + box-sizing: border-box; + width: $icon-button-size; + height: $icon-button-size; + border-radius: $icon-button-border-radius; + background: $icon-button-background; + color: $icon-button-color; + vertical-align: middle; + /* 1 */ + display: inline-flex; + justify-content: center; + align-items: center; + @if(mixin-exists(hook-icon-button)) {@include hook-icon-button();} +} + +/* Hover + Focus */ +.uk-icon-button:hover, +.uk-icon-button:focus { + background-color: $icon-button-hover-background; + color: $icon-button-hover-color; + outline: none; + @if(mixin-exists(hook-icon-button-hover)) {@include hook-icon-button-hover();} +} + +/* OnClick + Active */ +.uk-icon-button:active, +.uk-active > .uk-icon-button { + background-color: $icon-button-active-background; + color: $icon-button-active-color; + @if(mixin-exists(hook-icon-button-active)) {@include hook-icon-button-active();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-icon-misc)) {@include hook-icon-misc();} + +// @mixin hook-icon-link(){} +// @mixin hook-icon-link-hover(){} +// @mixin hook-icon-link-active(){} +// @mixin hook-icon-button(){} +// @mixin hook-icon-button-hover(){} +// @mixin hook-icon-button-active(){} +// @mixin hook-icon-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-icon-link-color: $inverse-global-muted-color !default; +$inverse-icon-link-hover-color: $inverse-global-color !default; +$inverse-icon-link-active-color: $inverse-global-color !default; +$inverse-icon-button-background: $inverse-global-muted-background !default; +$inverse-icon-button-color: $inverse-global-muted-color !default; +$inverse-icon-button-hover-background: darken($inverse-icon-button-background, 5%) !default; +$inverse-icon-button-hover-color: $inverse-global-color !default; +$inverse-icon-button-active-background: darken($inverse-icon-button-background, 10%) !default; +$inverse-icon-button-active-color: $inverse-global-color !default; + + + +// @mixin hook-inverse-icon-link(){} +// @mixin hook-inverse-icon-link-hover(){} +// @mixin hook-inverse-icon-link-active(){} +// @mixin hook-inverse-icon-button(){} +// @mixin hook-inverse-icon-button-hover(){} +// @mixin hook-inverse-icon-button-active(){} diff --git a/_sass/uikit/components/iconnav.scss b/_sass/uikit/components/iconnav.scss new file mode 100644 index 0000000..ae739c9 --- /dev/null +++ b/_sass/uikit/components/iconnav.scss @@ -0,0 +1,140 @@ +// Name: Iconnav +// Description: Component to create icon navigations +// +// Component: `uk-iconnav` +// +// Modifier: `uk-iconnav-vertical` +// +// States: `uk-active` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$iconnav-margin-horizontal: $global-small-margin !default; +$iconnav-margin-vertical: $iconnav-margin-horizontal !default; + +$iconnav-item-color: $global-muted-color !default; + +$iconnav-item-hover-color: $global-color !default; + +$iconnav-item-active-color: $global-color !default; + + +/* ======================================================================== + Component: Iconnav + ========================================================================== */ + +/* + * 1. Allow items to wrap into the next line + * 2. Reset list + * 3. Gutter + */ + +.uk-iconnav { + display: flex; + /* 1 */ + flex-wrap: wrap; + /* 2 */ + margin: 0; + padding: 0; + list-style: none; + /* 3 */ + margin-left: (-$iconnav-margin-horizontal); + @if(mixin-exists(hook-iconnav)) {@include hook-iconnav();} +} + +/* + * 1. Space is allocated solely based on content dimensions: 0 0 auto + * 2. Gutter + */ + +.uk-iconnav > * { + /* 1 */ + flex: none; + /* 2 */ + padding-left: $iconnav-margin-horizontal; +} + + +/* Items + ========================================================================== */ + +/* + * Items must target `a` elements to exclude other elements (e.g. dropdowns) + * 1. Prevent gap if child element is `inline-block`, e.g. an icon + * 2. Style + */ + +.uk-iconnav > * > a { + /* 1 */ + display: block; + /* 2 */ + color: $iconnav-item-color; + @if(mixin-exists(hook-iconnav-item)) {@include hook-iconnav-item();} +} + +/* Hover + Focus */ +.uk-iconnav > * > a:hover, +.uk-iconnav > * > a:focus { + color: $iconnav-item-hover-color; + outline: none; + @if(mixin-exists(hook-iconnav-item-hover)) {@include hook-iconnav-item-hover();} +} + +/* Active */ +.uk-iconnav > .uk-active > a { + color: $iconnav-item-active-color; + @if(mixin-exists(hook-iconnav-item-active)) {@include hook-iconnav-item-active();} +} + + +/* Modifier: 'uk-iconnav-vertical' + ========================================================================== */ + +/* + * 1. Change direction + * 2. Gutter + */ + +.uk-iconnav-vertical { + /* 1 */ + flex-direction: column; + /* 2 */ + margin-left: 0; + margin-top: (-$iconnav-margin-vertical); +} + +/* 2 */ +.uk-iconnav-vertical > * { + padding-left: 0; + padding-top: $iconnav-margin-vertical; +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-iconnav-misc)) {@include hook-iconnav-misc();} + +// @mixin hook-iconnav(){} +// @mixin hook-iconnav-item(){} +// @mixin hook-iconnav-item-hover(){} +// @mixin hook-iconnav-item-active(){} +// @mixin hook-iconnav-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-iconnav-item-color: $inverse-global-muted-color !default; +$inverse-iconnav-item-hover-color: $inverse-global-color !default; +$inverse-iconnav-item-active-color: $inverse-global-color !default; + + + +// @mixin hook-inverse-iconnav-item(){} +// @mixin hook-inverse-iconnav-item-hover(){} +// @mixin hook-inverse-iconnav-item-active(){} \ No newline at end of file diff --git a/_sass/uikit/components/inverse.scss b/_sass/uikit/components/inverse.scss new file mode 100644 index 0000000..c1b0c07 --- /dev/null +++ b/_sass/uikit/components/inverse.scss @@ -0,0 +1,46 @@ +// Name: Inverse +// Description: Inverse component style for light or dark backgrounds +// +// Component: `uk-light` +// `uk-dark` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$inverse-global-color-mode: light !default; + +$inverse-global-color: rgba($global-inverse-color, 0.7) !default; +$inverse-global-emphasis-color: $global-inverse-color !default; +$inverse-global-muted-color: rgba($global-inverse-color, 0.5) !default; +$inverse-global-inverse-color: $global-color !default; + +$inverse-global-primary-background: $global-inverse-color !default; +$inverse-global-muted-background: rgba($global-inverse-color, 0.1) !default; + +$inverse-global-border: rgba($global-inverse-color, 0.2) !default; + + +/* ======================================================================== + Component: Inverse + ========================================================================== */ + + + +/* + * Implemented class depends on the general theme color + * `uk-light` is for light colors on dark backgrounds + * `uk-dark` is or dark colors on light backgrounds + */ + +@if ($inverse-global-color-mode == light) { .uk-light { @if(mixin-exists(hook-inverse)) {@include hook-inverse();}}} + +@if ($inverse-global-color-mode == dark) { .uk-dark { @if(mixin-exists(hook-inverse)) {@include hook-inverse();}}} + + +// Hooks +// ======================================================================== + +// @mixin hook-inverse(){} \ No newline at end of file diff --git a/_sass/uikit/components/label.scss b/_sass/uikit/components/label.scss new file mode 100644 index 0000000..6600aed --- /dev/null +++ b/_sass/uikit/components/label.scss @@ -0,0 +1,102 @@ +// Name: Label +// Description: Component to indicate important notes +// +// Component: `uk-label` +// +// Modifiers: `uk-label-success` +// `uk-label-warning` +// `uk-label-danger` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$label-padding-vertical: 0 !default; +$label-padding-horizontal: $global-small-margin !default; +$label-background: $global-primary-background !default; +$label-line-height: $global-line-height !default; +$label-font-size: $global-small-font-size !default; +$label-color: $global-inverse-color !default; + +$label-success-background: $global-success-background !default; +$label-success-color: $global-inverse-color !default; +$label-warning-background: $global-warning-background !default; +$label-warning-color: $global-inverse-color !default; +$label-danger-background: $global-danger-background !default; +$label-danger-color: $global-inverse-color !default; + + +/* ======================================================================== + Component: Label + ========================================================================== */ + +.uk-label { + display: inline-block; + padding: $label-padding-vertical $label-padding-horizontal; + background: $label-background; + line-height: $label-line-height; + font-size: $label-font-size; + color: $label-color; + vertical-align: middle; + white-space: nowrap; + @if(mixin-exists(hook-label)) {@include hook-label();} +} + + +/* Color modifiers + ========================================================================== */ + +/* + * Success + */ + +.uk-label-success { + background-color: $label-success-background; + color: $label-success-color; + @if(mixin-exists(hook-label-success)) {@include hook-label-success();} +} + +/* + * Warning + */ + +.uk-label-warning { + background-color: $label-warning-background; + color: $label-warning-color; + @if(mixin-exists(hook-label-warning)) {@include hook-label-warning();} +} + +/* + * Danger + */ + +.uk-label-danger { + background-color: $label-danger-background; + color: $label-danger-color; + @if(mixin-exists(hook-label-danger)) {@include hook-label-danger();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-label-misc)) {@include hook-label-misc();} + +// @mixin hook-label(){} +// @mixin hook-label-success(){} +// @mixin hook-label-warning(){} +// @mixin hook-label-danger(){} +// @mixin hook-label-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-label-background: $inverse-global-primary-background !default; +$inverse-label-color: $inverse-global-inverse-color !default; + + + +// @mixin hook-inverse-label(){} \ No newline at end of file diff --git a/_sass/uikit/components/lightbox.scss b/_sass/uikit/components/lightbox.scss new file mode 100644 index 0000000..4f9c698 --- /dev/null +++ b/_sass/uikit/components/lightbox.scss @@ -0,0 +1,232 @@ +// Name: Lightbox +// Description: Component to create an lightbox image gallery +// +// Component: `uk-lightbox` +// +// Sub-objects: `uk-lightbox-page` +// `uk-lightbox-items` +// `uk-lightbox-toolbar` +// `uk-lightbox-toolbar-icon` +// `uk-lightbox-button` +// `uk-lightbox-caption` +// `uk-lightbox-iframe` +// +// States: `uk-open` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$lightbox-z-index: $global-z-index + 10 !default; +$lightbox-background: #000 !default; + +$lightbox-item-color: rgba(255,255,255,0.7) !default; + +$lightbox-toolbar-padding-vertical: 10px !default; +$lightbox-toolbar-padding-horizontal: 10px !default; +$lightbox-toolbar-background: rgba(0,0,0,0.3) !default; +$lightbox-toolbar-color: rgba(255,255,255,0.7) !default; + +$lightbox-toolbar-icon-padding: 5px !default; +$lightbox-toolbar-icon-color: rgba(255,255,255,0.7) !default; + +$lightbox-toolbar-icon-hover-color: #fff !default; + +$lightbox-button-size: 50px !default; +$lightbox-button-background: $lightbox-toolbar-background !default; +$lightbox-button-color: rgba(255,255,255,0.7) !default; + +$lightbox-button-hover-color: #fff !default; + + +/* ======================================================================== + Component: Lightbox + ========================================================================== */ + +/* + * 1. Hide by default + * 2. Set position + * 3. Allow scrolling for the modal dialog + * 4. Horizontal padding + * 5. Mask the background page + * 6. Fade-in transition + */ + +.uk-lightbox { + /* 1 */ + display: none; + /* 2 */ + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: $lightbox-z-index; + /* 5 */ + background: $lightbox-background; + /* 6 */ + opacity: 0; + transition: opacity 0.15s linear; + @if(mixin-exists(hook-lightbox)) {@include hook-lightbox();} +} + +/* + * Open + * 1. Center child + * 2. Fade-in + */ + +.uk-lightbox.uk-open { + display: block; + /* 2 */ + opacity: 1; +} + + +/* Page + ========================================================================== */ + +/* + * Prevent scrollbars + */ + +.uk-lightbox-page { overflow: hidden; } + + +/* Item + ========================================================================== */ + +/* + * 1. Center child within the viewport + * 2. Not visible by default + * 3. Color needed for spinner icon + * 4. Optimize animation + * 5. Responsiveness + * Using `vh` for `max-height` to fix image proportions after resize in Safari and Opera + * Using `vh` and `vw` to make responsive image work in IE11 + */ + +.uk-lightbox-items > * { + /* 1 */ + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + /* 2 */ + display: none; + justify-content: center; + align-items: center; + /* 3 */ + color: $lightbox-item-color; + /* 4 */ + will-change: transform, opacity; + @if(mixin-exists(hook-lightbox-item)) {@include hook-lightbox-item();} +} + +/* 5 */ +.uk-lightbox-items > * > * { + max-width: 100vw; + max-height: 100vh; +} + +.uk-lightbox-items > * > :not(iframe) { + width: auto; + height: auto; +} + +.uk-lightbox-items > .uk-active { display: flex; } + +/* Toolbar + ========================================================================== */ + +.uk-lightbox-toolbar { + padding: $lightbox-toolbar-padding-vertical $lightbox-toolbar-padding-horizontal; + background: $lightbox-toolbar-background; + color: $lightbox-toolbar-color; + @if(mixin-exists(hook-lightbox-toolbar)) {@include hook-lightbox-toolbar();} +} + +.uk-lightbox-toolbar * { color: $lightbox-toolbar-color; } + + +/* Toolbar Icon (Close) + ========================================================================== */ + +.uk-lightbox-toolbar-icon { + padding: $lightbox-toolbar-icon-padding; + color: $lightbox-toolbar-icon-color; + @if(mixin-exists(hook-lightbox-toolbar-icon)) {@include hook-lightbox-toolbar-icon();} +} + +/* + * Hover + */ + +.uk-lightbox-toolbar-icon:hover { + color: $lightbox-toolbar-icon-hover-color; + @if(mixin-exists(hook-lightbox-toolbar-icon-hover)) {@include hook-lightbox-toolbar-icon-hover();} +} + + + +/* Button (Slidenav) + ========================================================================== */ + +/* + * 1. Center icon vertically and horizontally + */ + +.uk-lightbox-button { + box-sizing: border-box; + width: $lightbox-button-size; + height: $lightbox-button-size; + background: $lightbox-button-background; + color: $lightbox-button-color; + /* 1 */ + display: inline-flex; + justify-content: center; + align-items: center; + @if(mixin-exists(hook-lightbox-button)) {@include hook-lightbox-button();} +} + +/* + * Hover + */ + +.uk-lightbox-button:hover { + color: $lightbox-button-hover-color; + @if(mixin-exists(hook-lightbox-button-hover)) {@include hook-lightbox-button-hover();} +} + + +/* Caption + ========================================================================== */ + +.uk-lightbox-caption {} + + +/* Iframe + ========================================================================== */ + +.uk-lightbox-iframe { + width: 80%; + height: 80%; +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-lightbox-misc)) {@include hook-lightbox-misc();} + +// @mixin hook-lightbox(){} +// @mixin hook-lightbox-item(){} +// @mixin hook-lightbox-toolbar(){} +// @mixin hook-lightbox-toolbar-icon(){} +// @mixin hook-lightbox-toolbar-icon-hover(){} +// @mixin hook-lightbox-button(){} +// @mixin hook-lightbox-button-hover(){} +// @mixin hook-lightbox-misc(){} diff --git a/_sass/uikit/components/link.scss b/_sass/uikit/components/link.scss new file mode 100644 index 0000000..9e0ef0e --- /dev/null +++ b/_sass/uikit/components/link.scss @@ -0,0 +1,123 @@ +// Name: Link +// Description: Styles for links +// +// Component: `uk-link-muted` +// `uk-link-text` +// `uk-link-heading` +// `uk-link-reset` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$link-muted-color: $global-muted-color !default; +$link-muted-hover-color: $global-color !default; + +$link-text-hover-color: $global-muted-color !default; + +$link-heading-hover-color: $global-primary-background !default; +$link-heading-hover-text-decoration: none !default; + + +/* ======================================================================== + Component: Link + ========================================================================== */ + + +/* Muted + ========================================================================== */ + +a.uk-link-muted, +.uk-link-muted a { + color: $link-muted-color; + @if(mixin-exists(hook-link-muted)) {@include hook-link-muted();} +} + +a.uk-link-muted:hover, +.uk-link-muted a:hover { + color: $link-muted-hover-color; + @if(mixin-exists(hook-link-muted-hover)) {@include hook-link-muted-hover();} +} + + +/* Text + ========================================================================== */ + +a.uk-link-text:not(:hover), +.uk-link-text a:not(:hover) { + color: inherit; + @if(mixin-exists(hook-link-text)) {@include hook-link-text();} +} + +a.uk-link-text:hover, +.uk-link-text a:hover { + color: $link-text-hover-color; + @if(mixin-exists(hook-link-text-hover)) {@include hook-link-text-hover();} +} + + +/* Heading + ========================================================================== */ + +a.uk-link-heading:not(:hover), +.uk-link-heading a:not(:hover) { + color: inherit; + @if(mixin-exists(hook-link-heading)) {@include hook-link-heading();} +} + +a.uk-link-heading:hover, +.uk-link-heading a:hover { + color: $link-heading-hover-color; + text-decoration: $link-heading-hover-text-decoration; + @if(mixin-exists(hook-link-heading-hover)) {@include hook-link-heading-hover();} +} + + +/* Reset + ========================================================================== */ + +/* + * `!important` needed to override inverse component + */ + +a.uk-link-reset, +a.uk-link-reset:hover, +.uk-link-reset a, +.uk-link-reset a:hover { + color: inherit !important; + text-decoration: none !important; + @if(mixin-exists(hook-link-reset)) {@include hook-link-reset();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-link-misc)) {@include hook-link-misc();} + +// @mixin hook-link-muted(){} +// @mixin hook-link-muted-hover(){} +// @mixin hook-link-text(){} +// @mixin hook-link-text-hover(){} +// @mixin hook-link-heading(){} +// @mixin hook-link-heading-hover(){} +// @mixin hook-link-reset(){} +// @mixin hook-link-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-link-muted-color: $inverse-global-muted-color !default; +$inverse-link-muted-hover-color: $inverse-global-color !default; +$inverse-link-text-hover-color: $inverse-global-muted-color !default; +$inverse-link-heading-hover-color: $inverse-global-primary-background !default; + + + +// @mixin hook-inverse-link-muted(){} +// @mixin hook-inverse-link-muted-hover(){} +// @mixin hook-inverse-link-text-hover(){} +// @mixin hook-inverse-link-heading-hover(){} diff --git a/_sass/uikit/components/list.scss b/_sass/uikit/components/list.scss new file mode 100644 index 0000000..ed810bb --- /dev/null +++ b/_sass/uikit/components/list.scss @@ -0,0 +1,187 @@ +// Name: List +// Description: Styles for lists +// +// Component: `uk-list` +// +// Modifiers: `uk-list-divider` +// `uk-list-striped` +// `uk-list-bullet` +// `uk-list-large` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$list-margin-top: $global-small-margin !default; + +$list-nested-padding-left: $global-gutter !default; + +$list-divider-margin-top: $global-small-margin !default; +$list-divider-border-width: $global-border-width !default; +$list-divider-border: $global-border !default; + +$list-striped-padding-vertical: $global-small-margin !default; +$list-striped-padding-horizontal: $global-small-margin !default; +$list-striped-background: $global-muted-background !default; + +$list-bullet-width: ($global-line-height * 1em) !default; +$list-bullet-height: $list-bullet-width !default; +$list-bullet-margin-right: $global-small-margin !default; +$list-bullet-icon-color: $global-color !default; + +$list-large-margin-top: $global-margin !default; +$list-large-divider-margin-top: $global-margin !default; +$list-large-striped-padding-vertical: $global-margin !default; +$list-large-striped-padding-horizontal: $global-small-margin !default; + +$internal-list-bullet-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%226%22%20height%3D%226%22%20viewBox%3D%220%200%206%206%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22#000%22%20cx%3D%223%22%20cy%3D%223%22%20r%3D%223%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; + + +/* ======================================================================== + Component: List + ========================================================================== */ + +.uk-list { + padding: 0; + list-style: none; +} + +/* + * Micro clearfix + */ + +.uk-list > li::before, +.uk-list > li::after { + content: ""; + display: table; +} + +.uk-list > li::after { clear: both; } + +/* + * Remove margin from the last-child + */ + +.uk-list > li > :last-child { margin-bottom: 0; } + +/* + * Nested lists + */ + +.uk-list ul { + margin: 0; + padding-left: $list-nested-padding-left; + list-style: none; +} + +/* + * Style + */ + +.uk-list > li:nth-child(n+2), +.uk-list > li > ul { margin-top: $list-margin-top; } + + +/* Style modifiers + ========================================================================== */ + +/* + * Divider + */ + +.uk-list-divider > li:nth-child(n+2) { + margin-top: $list-divider-margin-top; + padding-top: $list-divider-margin-top; + border-top: $list-divider-border-width solid $list-divider-border; + @if(mixin-exists(hook-list-divider)) {@include hook-list-divider();} +} + +/* + * Striped + */ + +.uk-list-striped > li { + padding: $list-striped-padding-vertical $list-striped-padding-horizontal; + @if(mixin-exists(hook-list-striped)) {@include hook-list-striped();} +} + +.uk-list-striped > li:nth-of-type(odd) { background: $list-striped-background; } + +.uk-list-striped > li:nth-child(n+2) { margin-top: 0; } + +/* + * Bullet + */ + +.uk-list-bullet > li { + position: relative; + padding-left: unquote('calc(#{$list-bullet-width} + #{$list-bullet-margin-right})'); +} + +.uk-list-bullet > li::before { + content: ""; + position: absolute; + top: 0; + left: 0; + width: $list-bullet-width; + height: $list-bullet-height; + @include svg-fill($internal-list-bullet-image, "#000", $list-bullet-icon-color); + background-repeat: no-repeat; + background-position: 50% 50%; + float: left; + @if(mixin-exists(hook-list-bullet)) {@include hook-list-bullet();} +} + + +/* Size modifier + ========================================================================== */ + +.uk-list-large > li:nth-child(n+2), +.uk-list-large > li > ul { margin-top: $list-large-margin-top; } + +/* + * Divider + */ + +.uk-list-large.uk-list-divider > li:nth-child(n+2) { + margin-top: $list-large-divider-margin-top; + padding-top: $list-large-divider-margin-top; +} + +/* + * Striped + */ + +.uk-list-large.uk-list-striped > li { + padding: $list-large-striped-padding-vertical $list-large-striped-padding-horizontal; + @if(mixin-exists(hook-list-striped)) {@include hook-list-striped();} +} + +.uk-list-large.uk-list-striped > li:nth-child(n+2) { margin-top: 0; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-list-misc)) {@include hook-list-misc();} + +// @mixin hook-list-divider(){} +// @mixin hook-list-striped(){} +// @mixin hook-list-bullet(){} +// @mixin hook-list-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-list-divider-border: $inverse-global-border !default; +$inverse-list-striped-background: $inverse-global-muted-background !default; +$inverse-list-bullet-icon-color: $inverse-global-color !default; + + + +// @mixin hook-inverse-list-divider(){} +// @mixin hook-inverse-list-striped(){} +// @mixin hook-inverse-list-bullet(){} diff --git a/_sass/uikit/components/margin.scss b/_sass/uikit/components/margin.scss new file mode 100644 index 0000000..c3b1369 --- /dev/null +++ b/_sass/uikit/components/margin.scss @@ -0,0 +1,163 @@ +// Name: Margin +// Description: Utilities for margins +// +// Component: `uk-margin-*` +// `uk-margin-small-*` +// `uk-margin-medium-*` +// `uk-margin-large-*` +// `uk-margin-xlarge-*` +// `uk-margin-remove-*` +// `uk-margin-auto-*` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$margin-margin: $global-margin !default; + +$margin-small-margin: $global-small-margin !default; + +$margin-medium-margin: $global-medium-margin !default; + +$margin-large-margin: $global-medium-margin !default; +$margin-large-margin-l: $global-large-margin !default; + +$margin-xlarge-margin: $global-large-margin !default; +$margin-xlarge-margin-l: $global-xlarge-margin !default; + + +/* ======================================================================== + Component: Margin + ========================================================================== */ + +/* + * Default + */ + +.uk-margin { margin-bottom: $margin-margin; } +* + .uk-margin { margin-top: $margin-margin !important; } + +.uk-margin-top { margin-top: $margin-margin !important; } +.uk-margin-bottom { margin-bottom: $margin-margin !important; } +.uk-margin-left { margin-left: $margin-margin !important; } +.uk-margin-right { margin-right: $margin-margin !important; } + + +/* Small + ========================================================================== */ + +.uk-margin-small { margin-bottom: $margin-small-margin; } +* + .uk-margin-small { margin-top: $margin-small-margin !important; } + +.uk-margin-small-top { margin-top: $margin-small-margin !important; } +.uk-margin-small-bottom { margin-bottom: $margin-small-margin !important; } +.uk-margin-small-left { margin-left: $margin-small-margin !important; } +.uk-margin-small-right { margin-right: $margin-small-margin !important; } + + +/* Medium + ========================================================================== */ + +.uk-margin-medium { margin-bottom: $margin-medium-margin; } +* + .uk-margin-medium { margin-top: $margin-medium-margin !important; } + +.uk-margin-medium-top { margin-top: $margin-medium-margin !important; } +.uk-margin-medium-bottom { margin-bottom: $margin-medium-margin !important; } +.uk-margin-medium-left { margin-left: $margin-medium-margin !important; } +.uk-margin-medium-right { margin-right: $margin-medium-margin !important; } + + +/* Large + ========================================================================== */ + +.uk-margin-large { margin-bottom: $margin-large-margin; } +* + .uk-margin-large { margin-top: $margin-large-margin !important; } + +.uk-margin-large-top { margin-top: $margin-large-margin !important; } +.uk-margin-large-bottom { margin-bottom: $margin-large-margin !important; } +.uk-margin-large-left { margin-left: $margin-large-margin !important; } +.uk-margin-large-right { margin-right: $margin-large-margin !important; } + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-margin-large { margin-bottom: $margin-large-margin-l; } + * + .uk-margin-large { margin-top: $margin-large-margin-l !important; } + + .uk-margin-large-top { margin-top: $margin-large-margin-l !important; } + .uk-margin-large-bottom { margin-bottom: $margin-large-margin-l !important; } + .uk-margin-large-left { margin-left: $margin-large-margin-l !important; } + .uk-margin-large-right { margin-right: $margin-large-margin-l !important; } + +} + + +/* XLarge + ========================================================================== */ + +.uk-margin-xlarge { margin-bottom: $margin-xlarge-margin; } +* + .uk-margin-xlarge { margin-top: $margin-xlarge-margin !important; } + +.uk-margin-xlarge-top { margin-top: $margin-xlarge-margin !important; } +.uk-margin-xlarge-bottom { margin-bottom: $margin-xlarge-margin !important; } +.uk-margin-xlarge-left { margin-left: $margin-xlarge-margin !important; } +.uk-margin-xlarge-right { margin-right: $margin-xlarge-margin !important; } + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-margin-xlarge { margin-bottom: $margin-xlarge-margin-l; } + * + .uk-margin-xlarge { margin-top: $margin-xlarge-margin-l !important; } + + .uk-margin-xlarge-top { margin-top: $margin-xlarge-margin-l !important; } + .uk-margin-xlarge-bottom { margin-bottom: $margin-xlarge-margin-l !important; } + .uk-margin-xlarge-left { margin-left: $margin-xlarge-margin-l !important; } + .uk-margin-xlarge-right { margin-right: $margin-xlarge-margin-l !important; } + +} + + +/* Remove + ========================================================================== */ + +.uk-margin-remove { margin: 0 !important; } +.uk-margin-remove-top { margin-top: 0 !important; } +.uk-margin-remove-bottom { margin-bottom: 0 !important; } +.uk-margin-remove-left { margin-left: 0 !important; } +.uk-margin-remove-right { margin-right: 0 !important; } + +.uk-margin-remove-vertical { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.uk-margin-remove-adjacent + * { margin-top: 0 !important; } + + +/* Auto + ========================================================================== */ + +.uk-margin-auto { + margin-left: auto !important; + margin-right: auto !important; +} + +.uk-margin-auto-top { margin-top: auto !important; } +.uk-margin-auto-bottom { margin-bottom: auto !important; } +.uk-margin-auto-left { margin-left: auto !important; } +.uk-margin-auto-right { margin-right: auto !important; } + +.uk-margin-auto-vertical { + margin-top: auto !important; + margin-bottom: auto !important; +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-margin-misc)) {@include hook-margin-misc();} + +// @mixin hook-margin-misc(){} diff --git a/_sass/uikit/components/marker.scss b/_sass/uikit/components/marker.scss new file mode 100644 index 0000000..97e4360 --- /dev/null +++ b/_sass/uikit/components/marker.scss @@ -0,0 +1,63 @@ +// Name: Marker +// Description: Component to create a marker icon +// +// Component: `uk-marker` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$marker-padding: 5px !default; +$marker-background: $global-secondary-background !default; +$marker-color: $global-inverse-color !default; + +$marker-hover-color: $global-inverse-color !default; + + +/* ======================================================================== + Component: Marker + ========================================================================== */ + +/* + * Addopts `uk-icon` + */ + +.uk-marker { + padding: $marker-padding; + background: $marker-background; + color: $marker-color; + @if(mixin-exists(hook-marker)) {@include hook-marker();} +} + +/* Hover + Focus */ +.uk-marker:hover, +.uk-marker:focus { + color: $marker-hover-color; + outline: none; + @if(mixin-exists(hook-marker-hover)) {@include hook-marker-hover();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-marker-misc)) {@include hook-marker-misc();} + +// @mixin hook-marker(){} +// @mixin hook-marker-hover(){} +// @mixin hook-marker-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-marker-background: $global-muted-background !default; +$inverse-marker-color: $global-color !default; +$inverse-marker-hover-color: $global-color !default; + + + +// @mixin hook-inverse-marker(){} +// @mixin hook-inverse-marker-hover(){} diff --git a/_sass/uikit/components/mixin.scss b/_sass/uikit/components/mixin.scss new file mode 100644 index 0000000..5ed438a --- /dev/null +++ b/_sass/uikit/components/mixin.scss @@ -0,0 +1,32 @@ +// +// Component: Mixin +// Description: Defines mixins which are used across all components +// +// ======================================================================== + + +// SVG +// ======================================================================== + +/// Replace `$search` with `$replace` in `$string` +/// @author Hugo Giraudel +/// @param {String} $string - Initial string +/// @param {String} $search - Substring to replace +/// @param {String} $replace ('') - New value +/// @return {String} - Updated string +@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; +} + +@mixin svg-fill($src, $color-default, $color-new){ + + $replace-src: str-replace($src, $color-default, $color-new) !default; + $replace-src: str-replace($replace-src, "#", "%23"); + background-image: url(quote($replace-src)); +} \ No newline at end of file diff --git a/_sass/uikit/components/modal.scss b/_sass/uikit/components/modal.scss new file mode 100644 index 0000000..863f008 --- /dev/null +++ b/_sass/uikit/components/modal.scss @@ -0,0 +1,368 @@ +// Name: Modal +// Description: Component to create modal dialogs +// +// Component: `uk-modal` +// +// Sub-objects: `uk-modal-page` +// `uk-modal-dialog` +// `uk-modal-header` +// `uk-modal-body` +// `uk-modal-footer` +// `uk-modal-title` +// `uk-modal-close` +// +// Adopted: `uk-modal-close-default` +// `uk-modal-close-outside` +// `uk-modal-close-full` +// +// Modifiers: `uk-modal-container` +// `uk-modal-full` +// +// States: `uk-open` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$modal-z-index: $global-z-index + 10 !default; +$modal-background: rgba(0,0,0,0.6) !default; + +$modal-padding-horizontal: 15px !default; +$modal-padding-horizontal-s: $global-gutter !default; +$modal-padding-horizontal-m: $global-medium-gutter !default; +$modal-padding-vertical: $modal-padding-horizontal !default; +$modal-padding-vertical-s: 50px !default; + +$modal-dialog-width: 600px !default; +$modal-dialog-background: $global-background !default; + +$modal-container-width: 1200px !default; + +$modal-body-padding-horizontal: $global-gutter !default; +$modal-body-padding-vertical: $global-gutter !default; + +$modal-header-padding-horizontal: $global-gutter !default; +$modal-header-padding-vertical: ($modal-header-padding-horizontal / 2) !default; +$modal-header-background: $global-muted-background !default; + +$modal-footer-padding-horizontal: $global-gutter !default; +$modal-footer-padding-vertical: ($modal-footer-padding-horizontal / 2) !default; +$modal-footer-background: $global-muted-background !default; + +$modal-title-font-size: $global-xlarge-font-size !default; +$modal-title-line-height: 1.3 !default; + +$modal-close-position: $global-small-margin !default; +$modal-close-padding: 5px !default; + +$modal-close-outside-position: 0 !default; +$modal-close-outside-translate: 100% !default; +$modal-close-outside-color: lighten($global-inverse-color, 20%) !default; +$modal-close-outside-hover-color: $global-inverse-color !default; + + +/* ======================================================================== + Component: Modal + ========================================================================== */ + +/* + * 1. Hide by default + * 2. Set position + * 3. Allow scrolling for the modal dialog + * 4. Horizontal padding + * 5. Mask the background page + * 6. Fade-in transition + */ + +.uk-modal { + /* 1 */ + display: none; + /* 2 */ + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: $modal-z-index; + /* 3 */ + overflow-y: auto; + -webkit-overflow-scrolling: touch; + /* 4 */ + padding: $modal-padding-vertical $modal-padding-horizontal; + /* 5 */ + background: $modal-background; + /* 6 */ + opacity: 0; + transition: opacity 0.15s linear; + @if(mixin-exists(hook-modal)) {@include hook-modal();} +} + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-modal { padding: $modal-padding-vertical-s $modal-padding-horizontal-s; } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-modal { + padding-left: $modal-padding-horizontal-m; + padding-right: $modal-padding-horizontal-m; + } + +} + +/* + * Open + */ + +.uk-modal.uk-open { opacity: 1; } + + +/* Page + ========================================================================== */ + +/* + * Prevent scrollbars + */ + +.uk-modal-page { overflow: hidden; } + + +/* Dialog + ========================================================================== */ + +/* + * 1. Create position context for spinner and close button + * 2. Dimensions + * 3. Fix `max-width: 100%` not working in combination with flex and responsive images in IE11 + * `!important` needed to overwrite `uk-width-auto`. See `#modal-media-image` in tests + * 4. Style + * 5. Slide-in transition + */ + +.uk-modal-dialog { + /* 1 */ + position: relative; + /* 2 */ + box-sizing: border-box; + margin: 0 auto; + width: $modal-dialog-width; + /* 3 */ + max-width: unquote('calc(100% - 0.01px)') !important; + /* 4 */ + background: $modal-dialog-background; + /* 5 */ + opacity: 0; + transform: translateY(-100px); + transition: 0.3s linear; + transition-property: opacity, transform; + @if(mixin-exists(hook-modal-dialog)) {@include hook-modal-dialog();} +} + +/* + * Open + */ + +.uk-open > .uk-modal-dialog { + opacity: 1; + transform: translateY(0); +} + + +/* Size modifier + ========================================================================== */ + +/* + * Container size + * Take the same size as the Container component + */ + +.uk-modal-container .uk-modal-dialog { width: $modal-container-width; } + +/* + * Full size + * 1. Remove padding and background from modal + * 2. Reset all default declarations from modal dialog + */ + +/* 1 */ +.uk-modal-full { + padding: 0; + background: none; +} + +/* 2 */ +.uk-modal-full .uk-modal-dialog { + margin: 0; + width: 100%; + max-width: 100%; + transform: translateY(0); + @if(mixin-exists(hook-modal-full)) {@include hook-modal-full();} +} + + +/* Sections + ========================================================================== */ + +.uk-modal-body { + padding: $modal-body-padding-vertical $modal-body-padding-horizontal; + @if(mixin-exists(hook-modal-body)) {@include hook-modal-body();} +} + +.uk-modal-header { + padding: $modal-header-padding-vertical $modal-header-padding-horizontal; + background: $modal-header-background; + @if(mixin-exists(hook-modal-header)) {@include hook-modal-header();} +} + +.uk-modal-footer { + padding: $modal-footer-padding-vertical $modal-footer-padding-horizontal; + background: $modal-footer-background; + @if(mixin-exists(hook-modal-footer)) {@include hook-modal-footer();} +} + +/* + * Micro clearfix + */ + +.uk-modal-body::before, +.uk-modal-body::after, +.uk-modal-header::before, +.uk-modal-header::after, +.uk-modal-footer::before, +.uk-modal-footer::after { + content: ""; + display: table; +} + +.uk-modal-body::after, +.uk-modal-header::after, +.uk-modal-footer::after { clear: both; } + +/* + * Remove margin from the last-child + */ + +.uk-modal-body > :last-child, +.uk-modal-header > :last-child, +.uk-modal-footer > :last-child { margin-bottom: 0; } + + +/* Title + ========================================================================== */ + +.uk-modal-title { + font-size: $modal-title-font-size; + line-height: $modal-title-line-height; + @if(mixin-exists(hook-modal-title)) {@include hook-modal-title();} +} + + +/* Close + * Adopts `uk-close` + ========================================================================== */ + +[class*='uk-modal-close-'] { + position: absolute; + z-index: $modal-z-index; + top: $modal-close-position; + right: $modal-close-position; + padding: $modal-close-padding; + @if(mixin-exists(hook-modal-close)) {@include hook-modal-close();} +} + +/* + * Remove margin from adjacent element + */ + +[class*='uk-modal-close-']:first-child + * { margin-top: 0; } + +/* + * Hover + */ + +[class*='uk-modal-close-']:hover { + @if(mixin-exists(hook-modal-close-hover)) {@include hook-modal-close-hover();} +} + +/* + * Default + */ + +.uk-modal-close-default { + @if(mixin-exists(hook-modal-close-default)) {@include hook-modal-close-default();} +} + +.uk-modal-close-default:hover { + @if(mixin-exists(hook-modal-close-default-hover)) {@include hook-modal-close-default-hover();} +} + +/* + * Outside + * 1. Prevent scrollbar on small devices + */ + +.uk-modal-close-outside { + top: $modal-close-outside-position; + /* 1 */ + right: (-$modal-close-padding); + transform: translate(0, -($modal-close-outside-translate)); + color: $modal-close-outside-color; + @if(mixin-exists(hook-modal-close-outside)) {@include hook-modal-close-outside();} +} + +.uk-modal-close-outside:hover { + color: $modal-close-outside-hover-color; + @if(mixin-exists(hook-modal-close-outside-hover)) {@include hook-modal-close-outside-hover();} +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + /* 1 */ + .uk-modal-close-outside { + right: $modal-close-outside-position; + transform: translate($modal-close-outside-translate, -($modal-close-outside-translate)); + } + +} + +/* + * Full + */ + +.uk-modal-close-full { + @if(mixin-exists(hook-modal-close-full)) {@include hook-modal-close-full();} +} + +.uk-modal-close-full:hover { + @if(mixin-exists(hook-modal-close-full-hover)) {@include hook-modal-close-full-hover();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-modal-misc)) {@include hook-modal-misc();} + +// @mixin hook-modal(){} +// @mixin hook-modal-dialog(){} +// @mixin hook-modal-full(){} +// @mixin hook-modal-header(){} +// @mixin hook-modal-body(){} +// @mixin hook-modal-footer(){} +// @mixin hook-modal-title(){} +// @mixin hook-modal-close(){} +// @mixin hook-modal-close-hover(){} +// @mixin hook-modal-close-default(){} +// @mixin hook-modal-close-default-hover(){} +// @mixin hook-modal-close-outside(){} +// @mixin hook-modal-close-outside-hover(){} +// @mixin hook-modal-close-full(){} +// @mixin hook-modal-close-full-hover(){} +// @mixin hook-modal-misc(){} diff --git a/_sass/uikit/components/nav.scss b/_sass/uikit/components/nav.scss new file mode 100644 index 0000000..9d990ca --- /dev/null +++ b/_sass/uikit/components/nav.scss @@ -0,0 +1,357 @@ +// Name: Nav +// Description: Defines styles for list navigations +// +// Component: `uk-nav` +// +// Sub-objects: `uk-nav-header` +// `uk-nav-divider` +// `uk-nav-sub` +// +// Modifiers: `uk-nav-parent-icon` +// `uk-nav-default` +// `uk-nav-primary` +// `uk-nav-center` +// +// States: `uk-active` +// `uk-parent` +// `uk-open` +// `uk-touch` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$nav-item-padding-vertical: 5px !default; +$nav-item-padding-horizontal: 0 !default; + +$nav-sublist-padding-vertical: 5px !default; +$nav-sublist-padding-left: 15px !default; +$nav-sublist-deeper-padding-left: 15px !default; +$nav-sublist-item-padding-vertical: 2px !default; + +$nav-parent-icon-width: ($global-line-height * 1em) !default; +$nav-parent-icon-height: $nav-parent-icon-width !default; +$nav-parent-icon-color: $global-color !default; + +$nav-header-padding-vertical: $nav-item-padding-vertical !default; +$nav-header-padding-horizontal: $nav-item-padding-horizontal !default; +$nav-header-font-size: $global-small-font-size !default; +$nav-header-text-transform: uppercase !default; +$nav-header-margin-top: $global-margin !default; + +$nav-divider-margin-vertical: 5px !default; +$nav-divider-margin-horizontal: 0 !default; + +$nav-default-item-color: $global-muted-color !default; +$nav-default-item-hover-color: $global-color !default; +$nav-default-item-active-color: $global-emphasis-color !default; +$nav-default-header-color: $global-emphasis-color !default; +$nav-default-divider-border-width: $global-border-width !default; +$nav-default-divider-border: $global-border !default; +$nav-default-sublist-item-color: $global-muted-color !default; +$nav-default-sublist-item-hover-color: $global-color !default; + +$nav-primary-item-font-size: $global-large-font-size !default; +$nav-primary-item-line-height: $global-line-height !default; +$nav-primary-item-color: $global-muted-color !default; +$nav-primary-item-hover-color: $global-color !default; +$nav-primary-item-active-color: $global-emphasis-color !default; +$nav-primary-header-color: $global-emphasis-color !default; +$nav-primary-divider-border-width: $global-border-width !default; +$nav-primary-divider-border: $global-border !default; +$nav-primary-sublist-item-color: $global-muted-color !default; +$nav-primary-sublist-item-hover-color: $global-color !default; + +$internal-nav-parent-close-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22#000%22%20stroke-width%3D%221.1%22%20points%3D%2210%201%204%207%2010%2013%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$internal-nav-parent-open-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22#000%22%20stroke-width%3D%221.1%22%20points%3D%221%204%207%2010%2013%204%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; + + +/* ======================================================================== + Component: Nav + ========================================================================== */ + +/* + * Reset + * 1. Prepare lists + * 2. Prepare links + * 3. Remove default focus style + */ + +/* 1 */ +.uk-nav, +.uk-nav ul { + margin: 0; + padding: 0; + list-style: none; +} + +/* 2 */ +.uk-nav li > a { + display: block; + text-decoration: none; +} + +/* 3 */ +.uk-nav li > a:focus { outline: none; } + +/* + * Items + * Must target `a` elements to exclude other elements (e.g. lists) + */ + +.uk-nav > li > a { padding: $nav-item-padding-vertical $nav-item-padding-horizontal; } + + +/* Sublists + ========================================================================== */ + +/* + * Level 2 + * `ul` needed for higher specificity to override padding + */ + +ul.uk-nav-sub { + padding: $nav-sublist-padding-vertical 0 $nav-sublist-padding-vertical $nav-sublist-padding-left; + @if(mixin-exists(hook-nav-sub)) {@include hook-nav-sub();} +} + +/* + * Level 3 and deeper + */ + +.uk-nav-sub ul { padding-left: $nav-sublist-deeper-padding-left; } + +/* + * Items + */ + +.uk-nav-sub a { padding: $nav-sublist-item-padding-vertical 0; } + + +/* Parent icon modifier + ========================================================================== */ + +.uk-nav-parent-icon > .uk-parent > a::after { + content: ""; + width: $nav-parent-icon-width; + height: $nav-parent-icon-height; + float: right; + @include svg-fill($internal-nav-parent-close-image, "#000", $nav-parent-icon-color); + background-repeat: no-repeat; + background-position: 50% 50%; + @if(mixin-exists(hook-nav-parent-icon)) {@include hook-nav-parent-icon();} +} + +.uk-nav-parent-icon > .uk-parent.uk-open > a::after { @include svg-fill($internal-nav-parent-open-image, "#000", $nav-parent-icon-color); } + + +/* Header + ========================================================================== */ + +.uk-nav-header { + padding: $nav-header-padding-vertical $nav-header-padding-horizontal; + text-transform: $nav-header-text-transform; + font-size: $nav-header-font-size; + @if(mixin-exists(hook-nav-header)) {@include hook-nav-header();} +} + +.uk-nav-header:not(:first-child) { margin-top: $nav-header-margin-top; } + + +/* Divider + ========================================================================== */ + +.uk-nav-divider { + margin: $nav-divider-margin-vertical $nav-divider-margin-horizontal; + @if(mixin-exists(hook-nav-divider)) {@include hook-nav-divider();} +} + + +/* Default modifier + ========================================================================== */ + +.uk-nav-default { + @if(mixin-exists(hook-nav-default)) {@include hook-nav-default();} +} + +/* + * Items + */ + +.uk-nav-default > li > a { + color: $nav-default-item-color; + @if(mixin-exists(hook-nav-default-item)) {@include hook-nav-default-item();} +} + +/* Hover + Focus */ +.uk-nav-default > li > a:hover, +.uk-nav-default > li > a:focus { + color: $nav-default-item-hover-color; + @if(mixin-exists(hook-nav-default-item-hover)) {@include hook-nav-default-item-hover();} +} + +/* Active */ +.uk-nav-default > li.uk-active > a { + color: $nav-default-item-active-color; + @if(mixin-exists(hook-nav-default-item-active)) {@include hook-nav-default-item-active();} +} + +/* + * Header + */ + +.uk-nav-default .uk-nav-header { + color: $nav-default-header-color; + @if(mixin-exists(hook-nav-default-header)) {@include hook-nav-default-header();} +} + +/* + * Divider + */ + +.uk-nav-default .uk-nav-divider { + border-top: $nav-default-divider-border-width solid $nav-default-divider-border; + @if(mixin-exists(hook-nav-default-divider)) {@include hook-nav-default-divider();} +} + +/* + * Sublists + */ + +.uk-nav-default .uk-nav-sub a { color: $nav-default-sublist-item-color; } + +.uk-nav-default .uk-nav-sub a:hover, +.uk-nav-default .uk-nav-sub a:focus { color: $nav-default-sublist-item-hover-color; } + + +/* Primary modifier + ========================================================================== */ + +.uk-nav-primary { + @if(mixin-exists(hook-nav-primary)) {@include hook-nav-primary();} +} + +/* + * Items + */ + +.uk-nav-primary > li > a { + font-size: $nav-primary-item-font-size; + line-height: $nav-primary-item-line-height; + color: $nav-primary-item-color; + @if(mixin-exists(hook-nav-primary-item)) {@include hook-nav-primary-item();} +} + +/* Hover + Focus */ +.uk-nav-primary > li > a:hover, +.uk-nav-primary > li > a:focus { + color: $nav-primary-item-hover-color; + @if(mixin-exists(hook-nav-primary-item-hover)) {@include hook-nav-primary-item-hover();} +} + +/* Active */ +.uk-nav-primary > li.uk-active > a { + color: $nav-primary-item-active-color; + @if(mixin-exists(hook-nav-primary-item-active)) {@include hook-nav-primary-item-active();} +} + +/* + * Header + */ + +.uk-nav-primary .uk-nav-header { + color: $nav-primary-header-color; + @if(mixin-exists(hook-nav-primary-header)) {@include hook-nav-primary-header();} +} + +/* + * Divider + */ + +.uk-nav-primary .uk-nav-divider { + border-top: $nav-primary-divider-border-width solid $nav-primary-divider-border; + @if(mixin-exists(hook-nav-primary-divider)) {@include hook-nav-primary-divider();} +} + +/* + * Sublists + */ + +.uk-nav-primary .uk-nav-sub a { color: $nav-primary-sublist-item-color; } + +.uk-nav-primary .uk-nav-sub a:hover, +.uk-nav-primary .uk-nav-sub a:focus { color: $nav-primary-sublist-item-hover-color; } + + +/* Alignment modifier + ========================================================================== */ + +.uk-nav-center { text-align: center; } + +/* Sublists */ +.uk-nav-center .uk-nav-sub, +.uk-nav-center .uk-nav-sub ul { padding-left: 0; } + +/* Parent icon modifier */ +.uk-nav-center.uk-nav-parent-icon > .uk-parent > a::after { position: absolute; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-nav-misc)) {@include hook-nav-misc();} + +// @mixin hook-nav-sub(){} +// @mixin hook-nav-parent-icon(){} +// @mixin hook-nav-header(){} +// @mixin hook-nav-divider(){} +// @mixin hook-nav-default(){} +// @mixin hook-nav-default-item(){} +// @mixin hook-nav-default-item-hover(){} +// @mixin hook-nav-default-item-active(){} +// @mixin hook-nav-default-header(){} +// @mixin hook-nav-default-divider(){} +// @mixin hook-nav-primary(){} +// @mixin hook-nav-primary-item(){} +// @mixin hook-nav-primary-item-hover(){} +// @mixin hook-nav-primary-item-active(){} +// @mixin hook-nav-primary-header(){} +// @mixin hook-nav-primary-divider(){} +// @mixin hook-nav-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-nav-parent-icon-color: $inverse-global-color !default; +$inverse-nav-default-item-color: $inverse-global-muted-color !default; +$inverse-nav-default-item-hover-color: $inverse-global-color !default; +$inverse-nav-default-item-active-color: $inverse-global-emphasis-color !default; +$inverse-nav-default-header-color: $inverse-global-emphasis-color !default; +$inverse-nav-default-divider-border: $inverse-global-border !default; +$inverse-nav-default-sublist-item-color: $inverse-global-muted-color !default; +$inverse-nav-default-sublist-item-hover-color: $inverse-global-color !default; + +$inverse-nav-primary-item-color: $inverse-global-muted-color !default; +$inverse-nav-primary-item-hover-color: $inverse-global-color !default; +$inverse-nav-primary-item-active-color: $inverse-global-emphasis-color !default; +$inverse-nav-primary-header-color: $inverse-global-emphasis-color !default; +$inverse-nav-primary-divider-border: $inverse-global-border !default; +$inverse-nav-primary-sublist-item-color: $inverse-global-muted-color !default; +$inverse-nav-primary-sublist-item-hover-color: $inverse-global-color !default; + + + +// @mixin hook-inverse-nav-parent-icon(){} +// @mixin hook-inverse-nav-default-item(){} +// @mixin hook-inverse-nav-default-item-hover(){} +// @mixin hook-inverse-nav-default-item-active(){} +// @mixin hook-inverse-nav-default-header(){} +// @mixin hook-inverse-nav-default-divider(){} +// @mixin hook-inverse-nav-primary-item(){} +// @mixin hook-inverse-nav-primary-item-hover(){} +// @mixin hook-inverse-nav-primary-item-active(){} +// @mixin hook-inverse-nav-primary-header(){} +// @mixin hook-inverse-nav-primary-divider(){} diff --git a/_sass/uikit/components/navbar.scss b/_sass/uikit/components/navbar.scss new file mode 100644 index 0000000..a1f633a --- /dev/null +++ b/_sass/uikit/components/navbar.scss @@ -0,0 +1,537 @@ +// Name: Navbar +// Description: Component to create horizontal navigation bars +// +// Component: `uk-navbar` +// +// Sub-objects: `uk-navbar-container` +// `uk-navbar-left` +// `uk-navbar-right` +// `uk-navbar-center` +// `uk-navbar-center-left` +// `uk-navbar-center-right` +// `uk-navbar-nav` +// `uk-navbar-item` +// `uk-navbar-toggle` +// `uk-navbar-subtitle` +// `uk-navbar-dropbar` +// +// Adopted: `uk-navbar-dropdown` + Modifiers +// `uk-navbar-dropdown-nav` +// `uk-navbar-dropdown-grid` +// `uk-navbar-toggle-icon` +// +// Modifiers: `uk-navbar-transparent` +// `uk-navbar-sticky` +// `uk-navbar-dropdown-stack` +// +// States: `uk-active` +// `uk-parent` +// `uk-open` +// +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$navbar-background: $global-muted-background !default; +$navbar-color-mode: none !default; + +$navbar-nav-item-height: 80px !default; +$navbar-nav-item-padding-horizontal: 15px !default; +$navbar-nav-item-color: $global-muted-color !default; +$navbar-nav-item-font-size: $global-font-size !default; +$navbar-nav-item-font-family: $global-font-family !default; +$navbar-nav-item-hover-color: $global-color !default; +$navbar-nav-item-onclick-color: $global-emphasis-color !default; +$navbar-nav-item-active-color: $global-emphasis-color !default; + +$navbar-item-color: $global-color !default; + +$navbar-toggle-color: $global-muted-color !default; +$navbar-toggle-hover-color: $global-color !default; + +$navbar-subtitle-font-size: $global-small-font-size !default; + +$navbar-dropdown-z-index: $global-z-index + 20 !default; +$navbar-dropdown-width: 200px !default; +$navbar-dropdown-margin: 0 !default; +$navbar-dropdown-padding: 15px !default; +$navbar-dropdown-background: $global-muted-background !default; +$navbar-dropdown-color: $global-color !default; +$navbar-dropdown-grid-gutter-horizontal: $global-gutter !default; +$navbar-dropdown-grid-gutter-vertical: $navbar-dropdown-grid-gutter-horizontal !default; + +$navbar-dropdown-dropbar-margin-top: 0 !default; +$navbar-dropdown-dropbar-margin-bottom: $navbar-dropdown-dropbar-margin-top !default; + +$navbar-dropdown-nav-item-color: $global-muted-color !default; +$navbar-dropdown-nav-item-hover-color: $global-color !default; +$navbar-dropdown-nav-item-active-color: $global-emphasis-color !default; +$navbar-dropdown-nav-header-color: $global-emphasis-color !default; +$navbar-dropdown-nav-divider-border-width: $global-border-width !default; +$navbar-dropdown-nav-divider-border: $global-border !default; +$navbar-dropdown-nav-sublist-item-color: $global-muted-color !default; +$navbar-dropdown-nav-sublist-item-hover-color: $global-color !default; + +$navbar-dropbar-background: $navbar-dropdown-background !default; +$navbar-dropbar-z-index: $global-z-index - 20 !default; + + +/* ======================================================================== + Component: Navbar + ========================================================================== */ + +/* + * 1. Create position context to center navbar group + */ + +.uk-navbar { + display: flex; + /* 1 */ + position: relative; + @if(mixin-exists(hook-navbar)) {@include hook-navbar();} +} + + +/* Container + ========================================================================== */ + +.uk-navbar-container:not(.uk-navbar-transparent) { + background: $navbar-background; + @if(mixin-exists(hook-navbar-container)) {@include hook-navbar-container();} +} + +// Color Mode +@if ( $navbar-color-mode == light ) { .uk-navbar-container:not(.uk-navbar-transparent) { @extend .uk-light !optional;} } +@if ( $navbar-color-mode == dark ) { .uk-navbar-container:not(.uk-navbar-transparent) { @extend .uk-dark !optional;} } + +/* + * Remove pseudo elements created by micro clearfix as precaution (if Container component is used) + */ + +.uk-navbar-container > ::before, +.uk-navbar-container > ::after { display: none !important; } + + +/* Groups + ========================================================================== */ + +/* + * 1. Align navs and items vertically if they have a different height + * 2. Note: IE 11 requires an extra `div` which affects the center selector + */ + +.uk-navbar-left, +.uk-navbar-right, +// 2. [class*='uk-navbar-center'], +.uk-navbar-center, +.uk-navbar-center-left > *, +.uk-navbar-center-right > * { + display: flex; + /* 1 */ + align-items: center; +} + +/* + * Horizontal alignment + * 1. Create position context for centered navbar with sub groups (left/right) + * 2. Needed for dropdowns because a new position context is created + * `z-index` must be smaller than off-canvas + * 3. Fix text wrapping if the centered section is larger than 50% of the navbar + * 4. Align sub groups for centered navbar + */ + +.uk-navbar-right { margin-left: auto; } + +.uk-navbar-center:only-child { + margin-left: auto; + margin-right: auto; + /* 1 */ + position: relative; +} + +.uk-navbar-center:not(:only-child) { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%,-50%); + /* 2 */ + z-index: $global-z-index - 10; +} + +/* 3 */ +.uk-navbar-center:not(:only-child) .uk-navbar-nav > li > a, +.uk-navbar-center:not(:only-child) .uk-navbar-item, +.uk-navbar-center:not(:only-child) .uk-navbar-toggle { white-space: nowrap; } + +/* 4 */ +.uk-navbar-center-left, +.uk-navbar-center-right { + position: absolute; + top: 0; +} + +.uk-navbar-center-left { right: 100%; } +.uk-navbar-center-right { left: 100%; } + +[class*='uk-navbar-center-'] .uk-navbar-nav > li > a, +[class*='uk-navbar-center-'] .uk-navbar-item, +[class*='uk-navbar-center-'] .uk-navbar-toggle { white-space: nowrap; } + + +/* Nav + ========================================================================== */ + +/* + * 1. Reset list + */ + +.uk-navbar-nav { + display: flex; + /* 1 */ + margin: 0; + padding: 0; + list-style: none; +} + +/* + * Allow items to wrap into the next line + * Only not `absolute` positioned groups + */ + +.uk-navbar-left, +.uk-navbar-right, +.uk-navbar-center:only-child { flex-wrap: wrap; } + +/* + * Items + * 1. Center content vertically and horizontally + * 2. Dimensions + * 3. Style + * 4. Required for `a` + */ + +.uk-navbar-nav > li > a, // Nav item +.uk-navbar-item, // Content item +.uk-navbar-toggle { // Clickable item + /* 1 */ + display: flex; + justify-content: center; + align-items: center; + /* 2 */ + box-sizing: border-box; + height: $navbar-nav-item-height; + padding: 0 $navbar-nav-item-padding-horizontal; + /* 3 */ + font-size: $navbar-nav-item-font-size; + font-family: $navbar-nav-item-font-family; + /* 4 */ + text-decoration: none; +} + +/* + * Nav items + */ + +.uk-navbar-nav > li > a { + color: $navbar-nav-item-color; + @if(mixin-exists(hook-navbar-nav-item)) {@include hook-navbar-nav-item();} +} + +/* + * Hover + * Apply hover style also to focus state and if dropdown is opened + */ + +.uk-navbar-nav > li:hover > a, +.uk-navbar-nav > li > a:focus, +.uk-navbar-nav > li > a.uk-open { + color: $navbar-nav-item-hover-color; + outline: none; + @if(mixin-exists(hook-navbar-nav-item-hover)) {@include hook-navbar-nav-item-hover();} +} + +/* OnClick */ +.uk-navbar-nav > li > a:active { + color: $navbar-nav-item-onclick-color; + @if(mixin-exists(hook-navbar-nav-item-onclick)) {@include hook-navbar-nav-item-onclick();} +} + +/* Active */ +.uk-navbar-nav > li.uk-active > a { + color: $navbar-nav-item-active-color; + @if(mixin-exists(hook-navbar-nav-item-active)) {@include hook-navbar-nav-item-active();} +} + + +/* Item + ========================================================================== */ + +.uk-navbar-item { + color: $navbar-item-color; + @if(mixin-exists(hook-navbar-item)) {@include hook-navbar-item();} +} + + +/* Toggle + ========================================================================== */ + +.uk-navbar-toggle { + color: $navbar-toggle-color; + @if(mixin-exists(hook-navbar-toggle)) {@include hook-navbar-toggle();} +} + +.uk-navbar-toggle:hover, +.uk-navbar-toggle:focus, +.uk-navbar-toggle.uk-open { + color: $navbar-toggle-hover-color; + outline: none; + text-decoration: none; + @if(mixin-exists(hook-navbar-toggle-hover)) {@include hook-navbar-toggle-hover();} +} + +/* + * Icon + * Adopts `uk-icon` + */ + +.uk-navbar-toggle-icon { + @if(mixin-exists(hook-navbar-toggle-icon)) {@include hook-navbar-toggle-icon();} +} + +/* Hover + Focus */ +:hover > .uk-navbar-toggle-icon, +:focus > .uk-navbar-toggle-icon { + @if(mixin-exists(hook-navbar-toggle-icon-hover)) {@include hook-navbar-toggle-icon-hover();} +} + + +/* Subtitle + ========================================================================== */ + +.uk-navbar-subtitle { + font-size: $navbar-subtitle-font-size; + @if(mixin-exists(hook-navbar-subtitle)) {@include hook-navbar-subtitle();} +} + + +/* Style modifiers + ========================================================================== */ + +.uk-navbar-transparent { + @if(mixin-exists(hook-navbar-transparent)) {@include hook-navbar-transparent();} +} + +.uk-navbar-sticky { + @if(mixin-exists(hook-navbar-sticky)) {@include hook-navbar-sticky();} +} + + +/* Dropdown + ========================================================================== */ + +/* + * Adopts `uk-dropdown` + * 1. Hide by default + * 2. Set position + * 3. Set a default width + * 4. Style + */ + +.uk-navbar-dropdown { + /* 1 */ + display: none; + /* 2 */ + position: absolute; + z-index: $navbar-dropdown-z-index; + /* 3 */ + box-sizing: border-box; + width: $navbar-dropdown-width; + /* 4 */ + padding: $navbar-dropdown-padding; + background: $navbar-dropdown-background; + color: $navbar-dropdown-color; + @if(mixin-exists(hook-navbar-dropdown)) {@include hook-navbar-dropdown();} +} + +/* Show */ +.uk-navbar-dropdown.uk-open { display: block; } + +/* + * Direction / Alignment modifiers + */ + +/* Direction */ +[class*='uk-navbar-dropdown-top'] { margin-top: (-$navbar-dropdown-margin); } +[class*='uk-navbar-dropdown-bottom'] { margin-top: $navbar-dropdown-margin; } +[class*='uk-navbar-dropdown-left'] { margin-left: (-$navbar-dropdown-margin); } +[class*='uk-navbar-dropdown-right'] { margin-left: $navbar-dropdown-margin; } + +/* + * Grid + * Adopts `uk-grid` + */ + +/* Gutter Horizontal */ +.uk-navbar-dropdown-grid { margin-left: (-$navbar-dropdown-grid-gutter-horizontal); } +.uk-navbar-dropdown-grid > * { padding-left: $navbar-dropdown-grid-gutter-horizontal; } + +/* Gutter Vertical */ +.uk-navbar-dropdown-grid > .uk-grid-margin { margin-top: $navbar-dropdown-grid-gutter-vertical; } + +/* Stack */ +.uk-navbar-dropdown-stack .uk-navbar-dropdown-grid > * { width: 100% !important; } + +/* + * Width modifier + */ + +.uk-navbar-dropdown-width-2:not(.uk-navbar-dropdown-stack) { width: ($navbar-dropdown-width * 2); } +.uk-navbar-dropdown-width-3:not(.uk-navbar-dropdown-stack) { width: ($navbar-dropdown-width * 3); } +.uk-navbar-dropdown-width-4:not(.uk-navbar-dropdown-stack) { width: ($navbar-dropdown-width * 4); } +.uk-navbar-dropdown-width-5:not(.uk-navbar-dropdown-stack) { width: ($navbar-dropdown-width * 5); } + +/* + * Dropbar modifier + */ + +.uk-navbar-dropdown-dropbar { + margin-top: $navbar-dropdown-dropbar-margin-top; + margin-bottom: $navbar-dropdown-dropbar-margin-bottom; + @if(mixin-exists(hook-navbar-dropdown-dropbar)) {@include hook-navbar-dropdown-dropbar();} +} + + +/* Dropdown Nav + * Adopts `uk-nav` + ========================================================================== */ + +.uk-navbar-dropdown-nav { + @if(mixin-exists(hook-navbar-dropdown-nav)) {@include hook-navbar-dropdown-nav();} +} + +/* + * Items + */ + +.uk-navbar-dropdown-nav > li > a { + color: $navbar-dropdown-nav-item-color; + @if(mixin-exists(hook-navbar-dropdown-nav-item)) {@include hook-navbar-dropdown-nav-item();} +} + +/* Hover + Focus */ +.uk-navbar-dropdown-nav > li > a:hover, +.uk-navbar-dropdown-nav > li > a:focus { + color: $navbar-dropdown-nav-item-hover-color; + @if(mixin-exists(hook-navbar-dropdown-nav-item-hover)) {@include hook-navbar-dropdown-nav-item-hover();} +} + +/* Active */ +.uk-navbar-dropdown-nav > li.uk-active > a { + color: $navbar-dropdown-nav-item-active-color; + @if(mixin-exists(hook-navbar-dropdown-nav-item-active)) {@include hook-navbar-dropdown-nav-item-active();} +} + +/* + * Header + */ + +.uk-navbar-dropdown-nav .uk-nav-header { + color: $navbar-dropdown-nav-header-color; + @if(mixin-exists(hook-navbar-dropdown-nav-header)) {@include hook-navbar-dropdown-nav-header();} +} + +/* + * Divider + */ + +.uk-navbar-dropdown-nav .uk-nav-divider { + border-top: $navbar-dropdown-nav-divider-border-width solid $navbar-dropdown-nav-divider-border; + @if(mixin-exists(hook-navbar-dropdown-nav-divider)) {@include hook-navbar-dropdown-nav-divider();} +} + +/* + * Sublists + */ + +.uk-navbar-dropdown-nav .uk-nav-sub a { color: $navbar-dropdown-nav-sublist-item-color; } + +.uk-navbar-dropdown-nav .uk-nav-sub a:hover, +.uk-navbar-dropdown-nav .uk-nav-sub a:focus { color: $navbar-dropdown-nav-sublist-item-hover-color; } + + +/* Dropbar + ========================================================================== */ + +.uk-navbar-dropbar { + background: $navbar-dropbar-background; + @if(mixin-exists(hook-navbar-dropbar)) {@include hook-navbar-dropbar();} +} + +/* + * Slide modifier + */ + +.uk-navbar-dropbar-slide { + position: absolute; + z-index: $navbar-dropbar-z-index; + left: 0; + right: 0; + @if(mixin-exists(hook-navbar-dropbar-slide)) {@include hook-navbar-dropbar-slide();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-navbar-misc)) {@include hook-navbar-misc();} + +// @mixin hook-navbar(){} +// @mixin hook-navbar-container(){} +// @mixin hook-navbar-nav-item(){} +// @mixin hook-navbar-nav-item-hover(){} +// @mixin hook-navbar-nav-item-onclick(){} +// @mixin hook-navbar-nav-item-active(){} +// @mixin hook-navbar-item(){} +// @mixin hook-navbar-toggle(){} +// @mixin hook-navbar-toggle-hover(){} +// @mixin hook-navbar-toggle-icon(){} +// @mixin hook-navbar-toggle-icon-hover(){} +// @mixin hook-navbar-subtitle(){} +// @mixin hook-navbar-transparent(){} +// @mixin hook-navbar-sticky(){} +// @mixin hook-navbar-dropdown(){} +// @mixin hook-navbar-dropdown-dropbar(){} +// @mixin hook-navbar-dropdown-nav(){} +// @mixin hook-navbar-dropdown-nav-item(){} +// @mixin hook-navbar-dropdown-nav-item-hover(){} +// @mixin hook-navbar-dropdown-nav-item-active(){} +// @mixin hook-navbar-dropdown-nav-header(){} +// @mixin hook-navbar-dropdown-nav-divider(){} +// @mixin hook-navbar-dropbar(){} +// @mixin hook-navbar-dropbar-slide(){} +// @mixin hook-navbar-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-navbar-nav-item-color: $inverse-global-muted-color !default; +$inverse-navbar-nav-item-hover-color: $inverse-global-color !default; +$inverse-navbar-nav-item-onclick-color: $inverse-global-emphasis-color !default; +$inverse-navbar-nav-item-active-color: $inverse-global-emphasis-color !default; +$inverse-navbar-item-color: $inverse-global-color !default; +$inverse-navbar-toggle-color: $inverse-global-muted-color !default; +$inverse-navbar-toggle-hover-color: $inverse-global-color !default; + + + +// @mixin hook-inverse-navbar-nav-item(){} +// @mixin hook-inverse-navbar-nav-item-hover(){} +// @mixin hook-inverse-navbar-nav-item-onclick(){} +// @mixin hook-inverse-navbar-nav-item-active(){} +// @mixin hook-inverse-navbar-item(){} +// @mixin hook-inverse-navbar-toggle(){} +// @mixin hook-inverse-navbar-toggle-hover(){} diff --git a/_sass/uikit/components/notification.scss b/_sass/uikit/components/notification.scss new file mode 100644 index 0000000..cc1ba55 --- /dev/null +++ b/_sass/uikit/components/notification.scss @@ -0,0 +1,190 @@ +// Name: Notification +// Description: Component to create notification messages +// +// Component: `uk-notification` +// +// Sub-objects: `uk-notification-message` +// +// Adopted: `uk-notification-close` +// +// Modifiers: `uk-notification-top-center` +// `uk-notification-top-right` +// `uk-notification-bottom-left` +// `uk-notification-bottom-center` +// `uk-notification-bottom-right` +// `uk-notification-message-primary` +// `uk-notification-message-success` +// `uk-notification-message-warning` +// `uk-notification-message-danger` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$notification-position: 10px !default; +$notification-z-index: $global-z-index + 40 !default; +$notification-width: 350px !default; + +$notification-message-margin-bottom: 10px !default; +$notification-message-padding: $global-small-gutter !default; +$notification-message-background: $global-muted-background !default; +$notification-message-color: $global-color !default; +$notification-message-font-size: $global-medium-font-size !default; +$notification-message-line-height: 1.4 !default; + +$notification-close-top: $notification-message-padding + 5px !default; +$notification-close-right: $notification-message-padding !default; + +$notification-message-primary-color: $global-primary-background !default; +$notification-message-success-color: $global-success-background !default; +$notification-message-warning-color: $global-warning-background !default; +$notification-message-danger-color: $global-danger-background !default; + + +/* ======================================================================== + Component: Notification + ========================================================================== */ + +/* + * 1. Set position + * 2. Dimensions + */ + +.uk-notification { + /* 1 */ + position: fixed; + top: $notification-position; + left: $notification-position; + z-index: $notification-z-index; + /* 2 */ + box-sizing: border-box; + width: $notification-width; + @if(mixin-exists(hook-notification)) {@include hook-notification();} +} + + +/* Position modifiers +========================================================================== */ + +.uk-notification-top-right, +.uk-notification-bottom-right { + left: auto; + right: $notification-position; +} + +.uk-notification-top-center, +.uk-notification-bottom-center { + left: 50%; + margin-left: ($notification-width / -2); +} + +.uk-notification-bottom-left, +.uk-notification-bottom-right, +.uk-notification-bottom-center { + top: auto; + bottom: $notification-position; +} + + +/* Responsiveness +========================================================================== */ + +/* Phones portrait and smaller */ +@media (max-width: $breakpoint-xsmall-max) { + + .uk-notification { + left: $notification-position; + right: $notification-position; + width: auto; + margin: 0; + } + +} + + +/* Message +========================================================================== */ + +.uk-notification-message { + position: relative; + margin-bottom: $notification-message-margin-bottom; + padding: $notification-message-padding; + background: $notification-message-background; + color: $notification-message-color; + font-size: $notification-message-font-size; + line-height: $notification-message-line-height; + cursor: pointer; + @if(mixin-exists(hook-notification-message)) {@include hook-notification-message();} +} + + +/* Close + * Adopts `uk-close` + ========================================================================== */ + +.uk-notification-close { + display: none; + position: absolute; + top: $notification-close-top; + right: $notification-close-right; + @if(mixin-exists(hook-notification-close)) {@include hook-notification-close();} +} + +.uk-notification-message:hover .uk-notification-close { display: block; } + + +/* Style modifiers + ========================================================================== */ + +/* + * Primary + */ + +.uk-notification-message-primary { + color: $notification-message-primary-color; + @if(mixin-exists(hook-notification-message-primary)) {@include hook-notification-message-primary();} +} + +/* + * Success + */ + +.uk-notification-message-success { + color: $notification-message-success-color; + @if(mixin-exists(hook-notification-message-success)) {@include hook-notification-message-success();} +} + +/* + * Warning + */ + +.uk-notification-message-warning { + color: $notification-message-warning-color; + @if(mixin-exists(hook-notification-message-warning)) {@include hook-notification-message-warning();} +} + +/* + * Danger + */ + +.uk-notification-message-danger { + color: $notification-message-danger-color; + @if(mixin-exists(hook-notification-message-danger)) {@include hook-notification-message-danger();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-notification-misc)) {@include hook-notification-misc();} + +// @mixin hook-notification(){} +// @mixin hook-notification-message(){} +// @mixin hook-notification-close(){} +// @mixin hook-notification-message-primary(){} +// @mixin hook-notification-message-success(){} +// @mixin hook-notification-message-warning(){} +// @mixin hook-notification-message-danger(){} +// @mixin hook-notification-misc(){} diff --git a/_sass/uikit/components/offcanvas.scss b/_sass/uikit/components/offcanvas.scss new file mode 100644 index 0000000..5fc0558 --- /dev/null +++ b/_sass/uikit/components/offcanvas.scss @@ -0,0 +1,301 @@ +// Name: Off-canvas +// Description: Component to create an off-canvas sidebar +// +// Component: `uk-offcanvas` +// +// Sub-objects: `uk-offcanvas-bar` +// `uk-offcanvas-container` +// `uk-offcanvas-content` +// `uk-offcanvas-page` +// +// Adopted: `uk-offcanvas-close` +// +// Modifiers: `uk-offcanvas-flip` +// `uk-offcanvas-bar-animation` +// `uk-offcanvas-reveal` +// `uk-offcanvas-overlay` +// `uk-offcanvas-content-animation` +// +// States: `uk-open` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$offcanvas-z-index: $global-z-index !default; + +$offcanvas-bar-width: 270px !default; +$offcanvas-bar-padding-vertical: $global-margin !default; +$offcanvas-bar-padding-horizontal: $global-margin !default; +$offcanvas-bar-background: $global-secondary-background !default; +$offcanvas-bar-color-mode: light !default; + +$offcanvas-bar-width-m: 350px !default; +$offcanvas-bar-padding-vertical-m: $global-medium-gutter !default; +$offcanvas-bar-padding-horizontal-m: $global-medium-gutter !default; + +$offcanvas-close-position: 20px !default; +$offcanvas-close-padding: 5px !default; + +$offcanvas-overlay-background: rgba(0,0,0,0.1) !default; + + +/* ======================================================================== + Component: Off-canvas + ========================================================================== */ + +/* + * 1. Hide by default + * 2. Set position + */ + +.uk-offcanvas { + /* 1 */ + display: none; + /* 2 */ + position: fixed; + top: 0; + bottom: 0; + left: 0; + z-index: $offcanvas-z-index; +} + +/* + * Flip modifier + */ + +.uk-offcanvas-flip .uk-offcanvas { + right: 0; + left: auto; +} + + +/* Bar + ========================================================================== */ + +/* + * 1. Set position + * 2. Size and style + * 3. Allow scrolling + * 4. Transform + */ + +.uk-offcanvas-bar { + /* 1 */ + position: absolute; + top: 0; + bottom: 0; + left: 0; + /* 2 */ + box-sizing: border-box; + width: $offcanvas-bar-width; + padding: $offcanvas-bar-padding-vertical $offcanvas-bar-padding-horizontal; + background: $offcanvas-bar-background; + /* 3 */ + overflow-y: auto; + -webkit-overflow-scrolling: touch; + /* 4 */ + transform: translateX(-100%); + @if(mixin-exists(hook-offcanvas-bar)) {@include hook-offcanvas-bar();} +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-offcanvas-bar { + width: $offcanvas-bar-width-m; + padding: $offcanvas-bar-padding-vertical-m $offcanvas-bar-padding-horizontal-m; + } + +} + +// Color Mode +@if ( $offcanvas-bar-color-mode == light ) { .uk-offcanvas-bar { @extend .uk-light !optional;} } +@if ( $offcanvas-bar-color-mode == dark ) { .uk-offcanvas-bar { @extend .uk-dark !optional;} } + +/* Flip modifier */ +.uk-offcanvas-flip .uk-offcanvas-bar { + left: auto; + right: 0; + transform: translateX(100%); +} + +/* + * Open + */ + +.uk-open > .uk-offcanvas-bar { transform: translateX(0); } + +/* + * Slide Animation (Used in slide and push mode) + */ + +.uk-offcanvas-bar-animation { transition: transform 0.3s ease-out; } + +/* + * Reveal Animation + * 1. Set position + * 2. Clip the bar + * 3. Animation + * 4. Reset transform + */ + +.uk-offcanvas-reveal { + /* 1 */ + position: absolute; + top: 0; + bottom: 0; + left: 0; + /* 2 */ + width: 0; + overflow: hidden; + /* 3 */ + transition: width 0.3s ease-out; +} + +.uk-offcanvas-reveal .uk-offcanvas-bar { + /* 4 */ + transform: translateX(0); +} + +.uk-open > .uk-offcanvas-reveal { width: $offcanvas-bar-width; } + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-open > .uk-offcanvas-reveal { width: $offcanvas-bar-width-m; } + +} + +/* + * Flip modifier + */ + +.uk-offcanvas-flip .uk-offcanvas-reveal { + right: 0; + left: auto; +} + + +/* Close + * Adopts `uk-close` + ========================================================================== */ + +.uk-offcanvas-close { + position: absolute; + z-index: $offcanvas-z-index; + top: $offcanvas-close-position; + right: $offcanvas-close-position; + padding: $offcanvas-close-padding; + @if(mixin-exists(hook-offcanvas-close)) {@include hook-offcanvas-close();} +} + + +/* Overlay + ========================================================================== */ + +/* + * Overlay the whole page. Needed for the `::before` + * 1. Using `100vw` so no modification is needed when off-canvas is flipped + * 2. Allow for closing with swipe gesture on devices with pointer events. + */ + +.uk-offcanvas-overlay { + /* 1 */ + width: 100vw; + /* 2 */ + touch-action: none; +} + +/* + * 1. Mask the whole page + * 2. Fade-in transition + */ + +.uk-offcanvas-overlay::before { + /* 1 */ + content: ""; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + background: $offcanvas-overlay-background; + /* 2 */ + opacity: 0; + transition: opacity 0.15s linear; + @if(mixin-exists(hook-offcanvas-overlay)) {@include hook-offcanvas-overlay();} +} + +.uk-offcanvas-overlay.uk-open::before { opacity: 1; } + + +/* Container + ========================================================================== */ + +/* + * Prevent horizontal scrollbar when the content is slide-out + * Has to be on the `html` element too to make it work on the `body` + */ + +.uk-offcanvas-page, +.uk-offcanvas-container { overflow-x: hidden; } + +/* + * Prevent all scrollbars if overlay is used + */ + +.uk-offcanvas-container-overlay { overflow: hidden; } + + +/* Content + ========================================================================== */ + +/* + * Prepare slide-out animation (Used in reveal and push mode) + * Using `position: left` instead of `transform` because position `fixed` elements like sticky navbars + * lose their fixed state and behaves like `absolute` within a transformed container + * Note: JS sets a fixed width and height so the page can slide-out without shrinking + * 1. Smooth scrolling + */ + +.uk-offcanvas-container .uk-offcanvas-content { + position: relative; + left: 0; + transition: left 0.3s ease-out; + /* 1 */ + -webkit-overflow-scrolling: touch; +} + +/* Disable scrolling if overlay mode */ +.uk-offcanvas-overlay .uk-offcanvas-content { overflow-y: hidden; } + +/* + * Activate slide-out animation + */ + +:not(.uk-offcanvas-flip) > .uk-offcanvas-content-animation { left: $offcanvas-bar-width; } + +.uk-offcanvas-flip > .uk-offcanvas-content-animation { left: (-$offcanvas-bar-width); } + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + :not(.uk-offcanvas-flip) > .uk-offcanvas-content-animation { left: $offcanvas-bar-width-m; } + + .uk-offcanvas-flip > .uk-offcanvas-content-animation { left: (-$offcanvas-bar-width-m); } + +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-offcanvas-misc)) {@include hook-offcanvas-misc();} + +// @mixin hook-offcanvas-bar(){} +// @mixin hook-offcanvas-close(){} +// @mixin hook-offcanvas-overlay(){} +// @mixin hook-offcanvas-misc(){} diff --git a/_sass/uikit/components/overlay.scss b/_sass/uikit/components/overlay.scss new file mode 100644 index 0000000..c3eb0a5 --- /dev/null +++ b/_sass/uikit/components/overlay.scss @@ -0,0 +1,85 @@ +// Name: Overlay +// Description: Component to create content areas overlaying an image +// +// Component: `uk-overlay` +// +// Adopted: `uk-overlay-icon` +// +// Modifier: `uk-overlay-default` +// `uk-overlay-primary` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$overlay-padding-horizontal: $global-gutter !default; +$overlay-padding-vertical: $global-gutter !default; + +$overlay-default-background: rgba($global-background, 0.8) !default; + +$overlay-primary-background: rgba($global-secondary-background, 0.8) !default; +$overlay-primary-color-mode: light !default; + + +/* ======================================================================== + Component: Overlay + ========================================================================== */ + +.uk-overlay { + padding: $overlay-padding-vertical $overlay-padding-horizontal; + @if(mixin-exists(hook-overlay)) {@include hook-overlay();} +} + +/* + * Remove margin from the last-child + */ + +.uk-overlay > :last-child { margin-bottom: 0; } + + +/* Icon + ========================================================================== */ + +.uk-overlay-icon { + @if(mixin-exists(hook-overlay-icon)) {@include hook-overlay-icon();} +} + + +/* Style modifiers + ========================================================================== */ + +/* + * Default + */ + +.uk-overlay-default { + background: $overlay-default-background; + @if(mixin-exists(hook-overlay-default)) {@include hook-overlay-default();} +} + +/* + * Primary + */ + +.uk-overlay-primary { + background: $overlay-primary-background; + @if(mixin-exists(hook-overlay-primary)) {@include hook-overlay-primary();} +} + +// Color Mode +@if ( $overlay-primary-color-mode == light ) { .uk-overlay-primary { @extend .uk-light !optional;} } +@if ( $overlay-primary-color-mode == dark ) { .uk-overlay-primary { @extend .uk-dark !optional;} } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-overlay-misc)) {@include hook-overlay-misc();} + +// @mixin hook-overlay(){} +// @mixin hook-overlay-icon(){} +// @mixin hook-overlay-default(){} +// @mixin hook-overlay-primary(){} +// @mixin hook-overlay-misc(){} diff --git a/_sass/uikit/components/padding.scss b/_sass/uikit/components/padding.scss new file mode 100644 index 0000000..0c0f1ed --- /dev/null +++ b/_sass/uikit/components/padding.scss @@ -0,0 +1,81 @@ +// Name: Padding +// Description: Utilities for padding +// +// Component: `uk-padding` +// `uk-padding-large` +// `uk-padding-remove-*` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$padding-padding: $global-gutter !default; +$padding-padding-l: $global-medium-gutter !default; + +$padding-small-padding: $global-small-gutter !default; + +$padding-large-padding: $global-gutter !default; +$padding-large-padding-l: $global-large-gutter !default; + + +/* ======================================================================== + Component: Padding + ========================================================================== */ + +.uk-padding { padding: $padding-padding; } + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-padding { padding: $padding-padding-l; } + +} + + +/* Small + ========================================================================== */ + +.uk-padding-small { padding: $padding-small-padding; } + + +/* Large + ========================================================================== */ + +.uk-padding-large { padding: $padding-large-padding; } + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-padding-large { padding: $padding-large-padding-l; } + +} + + +/* Remove + ========================================================================== */ + +.uk-padding-remove { padding: 0 !important; } +.uk-padding-remove-top { padding-top: 0 !important; } +.uk-padding-remove-bottom { padding-bottom: 0 !important; } +.uk-padding-remove-left { padding-left: 0 !important; } +.uk-padding-remove-right { padding-right: 0 !important; } + +.uk-padding-remove-vertical { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.uk-padding-remove-horizontal { + padding-left: 0 !important; + padding-right: 0 !important; +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-padding-misc)) {@include hook-padding-misc();} + +// @mixin hook-padding-misc(){} diff --git a/_sass/uikit/components/pagination.scss b/_sass/uikit/components/pagination.scss new file mode 100644 index 0000000..5dce23a --- /dev/null +++ b/_sass/uikit/components/pagination.scss @@ -0,0 +1,128 @@ +// Name: Pagination +// Description: Component to create a page navigation +// +// Component: `uk-pagination` +// +// Adopted: `uk-pagination-next` +// `uk-pagination-previous` +// +// States: `uk-active` +// `uk-disabled` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$pagination-margin-horizontal: 20px !default; + +$pagination-item-color: $global-muted-color !default; +$pagination-item-hover-color: $global-color !default; +$pagination-item-hover-text-decoration: none !default; +$pagination-item-active-color: $global-color !default; +$pagination-item-disabled-color: $global-muted-color !default; + + +/* ======================================================================== + Component: Pagination + ========================================================================== */ + +/* + * 1. Allow items to wrap into the next line + * 2. Gutter + * 3. Reset list + */ + +.uk-pagination { + display: flex; + /* 1 */ + flex-wrap: wrap; + /* 2 */ + margin-left: (-$pagination-margin-horizontal); + /* 3 */ + padding: 0; + list-style: none; + @if(mixin-exists(hook-pagination)) {@include hook-pagination();} +} + +/* + * 1. Space is allocated solely based on content dimensions: 0 0 auto + * 2. Gutter + * 3. Create position context for dropdowns + */ + +.uk-pagination > * { + /* 1 */ + flex: none; + /* 2 */ + padding-left: $pagination-margin-horizontal; + /* 3 */ + position: relative; +} + + +/* Items + ========================================================================== */ + +/* + * 1. Prevent gap if child element is `inline-block`, e.g. an icon + * 2. Style + */ + +.uk-pagination > * > * { + /* 1 */ + display: block; + /* 2 */ + color: $pagination-item-color; + @if(mixin-exists(hook-pagination-item)) {@include hook-pagination-item();} +} + +/* Hover + Focus */ +.uk-pagination > * > :hover, +.uk-pagination > * > :focus { + color: $pagination-item-hover-color; + text-decoration: $pagination-item-hover-text-decoration; + @if(mixin-exists(hook-pagination-item-hover)) {@include hook-pagination-item-hover();} +} + +/* Active */ +.uk-pagination > .uk-active > * { + color: $pagination-item-active-color; + @if(mixin-exists(hook-pagination-item-active)) {@include hook-pagination-item-active();} +} + +/* Disabled */ +.uk-pagination > .uk-disabled > * { + color: $pagination-item-disabled-color; + @if(mixin-exists(hook-pagination-item-disabled)) {@include hook-pagination-item-disabled();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-pagination-misc)) {@include hook-pagination-misc();} + +// @mixin hook-pagination(){} +// @mixin hook-pagination-item(){} +// @mixin hook-pagination-item-hover(){} +// @mixin hook-pagination-item-active(){} +// @mixin hook-pagination-item-disabled(){} +// @mixin hook-pagination-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-pagination-item-color: $inverse-global-muted-color !default; +$inverse-pagination-item-hover-color: $inverse-global-color !default; +$inverse-pagination-item-active-color: $inverse-global-color !default; +$inverse-pagination-item-disabled-color: $inverse-global-muted-color !default; + + + +// @mixin hook-inverse-pagination-item(){} +// @mixin hook-inverse-pagination-item-hover(){} +// @mixin hook-inverse-pagination-item-active(){} +// @mixin hook-inverse-pagination-item-disabled(){} diff --git a/_sass/uikit/components/placeholder.scss b/_sass/uikit/components/placeholder.scss new file mode 100644 index 0000000..05c06f7 --- /dev/null +++ b/_sass/uikit/components/placeholder.scss @@ -0,0 +1,45 @@ +// Name: Placeholder +// Description: Component to create placeholder boxes +// +// Component: `uk-placeholder` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$placeholder-margin-vertical: $global-margin !default; +$placeholder-padding-vertical: $global-gutter !default; +$placeholder-padding-horizontal: $global-gutter !default; +$placeholder-background: $global-muted-background !default; + + +/* ======================================================================== + Component: Placeholder + ========================================================================== */ + +.uk-placeholder { + margin-bottom: $placeholder-margin-vertical; + padding: $placeholder-padding-vertical $placeholder-padding-horizontal; + background: $placeholder-background; + @if(mixin-exists(hook-placeholder)) {@include hook-placeholder();} +} + +/* Add margin if adjacent element */ +* + .uk-placeholder { margin-top: $placeholder-margin-vertical; } + +/* + * Remove margin from the last-child + */ + +.uk-placeholder > :last-child { margin-bottom: 0; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-placeholder-misc)) {@include hook-placeholder-misc();} + +// @mixin hook-placeholder(){} +// @mixin hook-placeholder-misc(){} \ No newline at end of file diff --git a/_sass/uikit/components/position.scss b/_sass/uikit/components/position.scss new file mode 100644 index 0000000..799b358 --- /dev/null +++ b/_sass/uikit/components/position.scss @@ -0,0 +1,250 @@ +// Name: Position +// Description: Utilities to position content +// +// Component: `uk-position-absolute` +// `uk-position-relative` +// `uk-position-z-index` +// `uk-position-top` +// `uk-position-bottom` +// `uk-position-left` +// `uk-position-right` +// `uk-position-top-left` +// `uk-position-top-center` +// `uk-position-top-right` +// `uk-position-bottom-left` +// `uk-position-bottom-center` +// `uk-position-bottom-right` +// `uk-position-center` +// `uk-position-center-left` +// `uk-position-center-right` +// `uk-position-cover` +// +// Modifiers: `uk-position-small` +// `uk-position-medium` +// `uk-position-large` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$position-small-margin: $global-small-gutter !default; +$position-medium-margin: $global-gutter !default; +$position-large-margin: $global-gutter !default; +$position-large-margin-l: 50px !default; + + +/* ======================================================================== + Component: Position + ========================================================================== */ + + +/* Directions + ========================================================================== */ + +[class*='uk-position-top'], +[class*='uk-position-bottom'], +[class*='uk-position-left'], +[class*='uk-position-right'], +[class*='uk-position-center'] { position: absolute !important; } + + +/* Edges + ========================================================================== */ + +/* Don't use `width: 100%` because it is wrong if the parent has padding. */ +.uk-position-top { + top: 0; + left: 0; + right: 0; +} + +.uk-position-bottom { + bottom: 0; + left: 0; + right: 0; +} + +.uk-position-left { + top: 0; + bottom: 0; + left: 0; +} + +.uk-position-right { + top: 0; + bottom: 0; + right: 0; +} + + +/* Corners + ========================================================================== */ + +.uk-position-top-left { + top: 0; + left: 0; +} + +.uk-position-top-right { + top: 0; + right: 0; +} + +.uk-position-bottom-left { + bottom: 0; + left: 0; +} + +.uk-position-bottom-right { + bottom: 0; + right: 0; +} + +/* + * Center + * 1. Fix text wrapping if content is larger than 50% of the container (Not working in Firefox) + * 2. Fix text wrapping for Firefox + */ + +.uk-position-center { + top: 50%; + left: 50%; + transform: translate(-50%,-50%); + /* 1 */ + display: table; + /* 2 */ + width: -moz-max-content; + max-width: 100%; + box-sizing: border-box; +} + +/* Vertical */ +[class*='uk-position-center-left'], +[class*='uk-position-center-right'] { + top: 50%; + transform: translateY(-50%); +} + +.uk-position-center-left { left: 0; } +.uk-position-center-right { right: 0; } + +.uk-position-center-left-out { + right: 100%; + width: max-content; +} + +.uk-position-center-right-out { + left: 100%; + width: max-content; +} + +/* Horizontal */ +.uk-position-top-center, +.uk-position-bottom-center { + left: 50%; + transform: translateX(-50%); + /* 1 */ + display: table; + /* 2 */ + width: -moz-max-content; + max-width: 100%; + box-sizing: border-box; +} + +.uk-position-top-center { top: 0; } +.uk-position-bottom-center { bottom: 0; } + + +/* Cover + ========================================================================== */ + +.uk-position-cover { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; +} + + +/* Utility + ========================================================================== */ + +.uk-position-relative { position: relative !important; } + +.uk-position-absolute { position: absolute !important; } + +.uk-position-fixed { position: fixed !important; } + +.uk-position-z-index { z-index: 1; } + + +/* Margin modifier + ========================================================================== */ + +/* + * Small + */ + +.uk-position-small { margin: $position-small-margin; } + +.uk-position-small.uk-position-center { transform: translate(-50%, -50%) translate(-$position-small-margin, (-$position-small-margin)); } + +.uk-position-small[class*='uk-position-center-left'], +.uk-position-small[class*='uk-position-center-right'] { transform: translateY(-50%) translateY(-$position-small-margin); } + +.uk-position-small.uk-position-top-center, +.uk-position-small.uk-position-bottom-center { transform: translateX(-50%) translateX(-$position-small-margin); } + +/* + * Medium + */ + +.uk-position-medium { margin: $position-medium-margin; } + +.uk-position-medium.uk-position-center { transform: translate(-50%, -50%) translate(-$position-medium-margin, (-$position-medium-margin)); } + +.uk-position-medium[class*='uk-position-center-left'], +.uk-position-medium[class*='uk-position-center-right'] { transform: translateY(-50%) translateY(-$position-medium-margin); } + +.uk-position-medium.uk-position-top-center, +.uk-position-medium.uk-position-bottom-center { transform: translateX(-50%) translateX(-$position-medium-margin); } + +/* + * Large + */ + +.uk-position-large { margin: $position-large-margin; } + +.uk-position-large.uk-position-center { transform: translate(-50%, -50%) translate(-$position-large-margin, (-$position-large-margin)); } + +.uk-position-large[class*='uk-position-center-left'], +.uk-position-large[class*='uk-position-center-right'] { transform: translateY(-50%) translateY(-$position-large-margin); } + +.uk-position-large.uk-position-top-center, +.uk-position-large.uk-position-bottom-center { transform: translateX(-50%) translateX(-$position-large-margin); } + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-position-large { margin: $position-large-margin-l; } + + .uk-position-large.uk-position-center { transform: translate(-50%, -50%) translate(-$position-large-margin-l, (-$position-large-margin-l)); } + + .uk-position-large[class*='uk-position-center-left'], + .uk-position-large[class*='uk-position-center-right'] { transform: translateY(-50%) translateY(-$position-large-margin-l); } + + .uk-position-large.uk-position-top-center, + .uk-position-large.uk-position-bottom-center { transform: translateX(-50%) translateX(-$position-large-margin-l); } + +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-position-misc)) {@include hook-position-misc();} + +// @mixin hook-position-misc(){} diff --git a/_sass/uikit/components/print.scss b/_sass/uikit/components/print.scss new file mode 100644 index 0000000..6162df5 --- /dev/null +++ b/_sass/uikit/components/print.scss @@ -0,0 +1,61 @@ +// Name: Print +// Description: Optimize page for printing +// +// Adapted from http://github.com/h5bp/html5-boilerplate +// +// Modifications: Removed link `href` and `title` related rules +// +// ======================================================================== + + +/* ======================================================================== + Component: Print + ========================================================================== */ + +@media print { + + *, + *::before, + *::after { + background: transparent !important; + color: black !important; + box-shadow: none !important; + text-shadow: none !important; + } + + a, + a:visited { text-decoration: underline; } + + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + + thead { display: table-header-group; } + + tr, + img { page-break-inside: avoid; } + + img { max-width: 100% !important; } + + @page { margin: 0.5cm; } + + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + + h2, + h3 { page-break-after: avoid; } + + @if(mixin-exists(hook-print)) {@include hook-print();} + +} + +// Hooks +// ======================================================================== + +// @mixin hook-print(){} diff --git a/_sass/uikit/components/progress.scss b/_sass/uikit/components/progress.scss new file mode 100644 index 0000000..4575513 --- /dev/null +++ b/_sass/uikit/components/progress.scss @@ -0,0 +1,105 @@ +// Name: Progress +// Description: Component to create progress bars +// +// Component: `uk-progress` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$progress-height: 15px !default; +$progress-margin-vertical: $global-margin !default; +$progress-background: $global-muted-background !default; + +$progress-bar-background: $global-primary-background !default; + + +/* ======================================================================== + Component: Progress + ========================================================================== */ + +/* + * 1. Add the correct vertical alignment in Chrome, Firefox, and Opera. + * 2. Remove default style + * 3. Behave like a block element + * 4. Remove borders in Firefox and Edge + * 5. Set background color for progress container in Firefox, IE11 and Edge + * 6. Style + */ + +.uk-progress { + /* 1 */ + vertical-align: baseline; + /* 2 */ + -webkit-appearance: none; + -moz-appearance: none; + /* 3 */ + display: block; + width: 100%; + /* 4 */ + border: 0; + /* 5 */ + background-color: $progress-background; + /* 6 */ + margin-bottom: $progress-margin-vertical; + height: $progress-height; + @if(mixin-exists(hook-progress)) {@include hook-progress();} +} + +/* Add margin if adjacent element */ +* + .uk-progress { margin-top: $progress-margin-vertical; } + +/* + * Remove animated circles for indeterminate state in IE11 and Edge + */ + +.uk-progress:indeterminate { color: transparent; } + +/* + * Progress container + * 2. Remove progress bar for indeterminate state in Firefox + */ + +.uk-progress::-webkit-progress-bar { + background-color: $progress-background; + @if(mixin-exists(hook-progress)) {@include hook-progress();} +} + +/* 2 */ +.uk-progress:indeterminate::-moz-progress-bar { width: 0; } + +/* + * Progress bar + * 1. Remove right border in IE11 and Edge + */ + +.uk-progress::-webkit-progress-value { + background-color: $progress-bar-background; + transition: width 0.6s ease; + @if(mixin-exists(hook-progress-bar)) {@include hook-progress-bar();} +} + +.uk-progress::-moz-progress-bar { + background-color: $progress-bar-background; + @if(mixin-exists(hook-progress-bar)) {@include hook-progress-bar();} +} + +.uk-progress::-ms-fill { + background-color: $progress-bar-background; + transition: width 0.6s ease; + /* 1 */ + border: 0; + @if(mixin-exists(hook-progress-bar)) {@include hook-progress-bar();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-progress-misc)) {@include hook-progress-misc();} + +// @mixin hook-progress(){} +// @mixin hook-progress-bar(){} +// @mixin hook-progress-misc(){} diff --git a/_sass/uikit/components/search.scss b/_sass/uikit/components/search.scss new file mode 100644 index 0000000..78a1bf5 --- /dev/null +++ b/_sass/uikit/components/search.scss @@ -0,0 +1,328 @@ +// Name: Search +// Description: Component to create the search +// +// Component: `uk-search` +// +// Sub-objects: `uk-search-input` +// `uk-search-toggle` +// +// Adopted: `uk-search-icon` +// +// Modifier: `uk-search-default` +// `uk-search-navbar` +// `uk-search-large` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$search-color: $global-color !default; +$search-placeholder-color: $global-muted-color !default; + +$search-icon-color: $global-muted-color !default; + +$search-default-width: 180px !default; +$search-default-height: $global-control-height !default; +$search-default-padding-horizontal: 6px !default; +$search-default-background: $global-muted-background !default; +$search-default-focus-background: $search-default-background !default; + +$search-default-icon-width: $global-control-height !default; + +$search-navbar-width: 400px !default; +$search-navbar-height: 40px !default; +$search-navbar-background: transparent !default; +$search-navbar-font-size: $global-large-font-size !default; + +$search-navbar-icon-width: 40px !default; + +$search-large-width: 500px !default; +$search-large-height: 80px !default; +$search-large-background: transparent !default; +$search-large-font-size: $global-xxlarge-font-size !default; + +$search-large-icon-width: 80px !default; + +$search-toggle-color: $global-muted-color !default; +$search-toggle-hover-color: $global-color !default; + + +/* ======================================================================== + Component: Search + ========================================================================== */ + +/* + * 1. Container fits its content + * 2. Create position context + * 3. Prevent content overflow + * 4. Reset `form` + */ + +.uk-search { + /* 1 */ + display: inline-block; + /* 2 */ + position: relative; + /* 3 */ + max-width: 100%; + /* 4 */ + margin: 0; +} + + +/* Input + ========================================================================== */ + +/* + * Remove the inner padding and cancel buttons in Chrome on OS X and Safari on OS X. + */ + +.uk-search-input::-webkit-search-cancel-button, +.uk-search-input::-webkit-search-decoration { -webkit-appearance: none; } + +/* + * Removes placeholder transparency in Firefox. + */ + +.uk-search-input::-moz-placeholder { opacity: 1; } + +/* + * 1. Define consistent box sizing. + * 2. Address margins set differently in Firefox/IE and Chrome/Safari/Opera. + * 3. Remove `border-radius` in iOS. + * 4. Change font properties to `inherit` in all browsers + * 5. Show the overflow in Edge. + * 6. Remove default style in iOS. + * 7. Vertical alignment + * 8. Take the full container width + * 9. Style + */ + +.uk-search-input { + /* 1 */ + box-sizing: border-box; + /* 2 */ + margin: 0; + /* 3 */ + border-radius: 0; + /* 4 */ + font: inherit; + /* 5 */ + overflow: visible; + /* 6 */ + -webkit-appearance: none; + /* 7 */ + vertical-align: middle; + /* 8 */ + width: 100%; + /* 9 */ + border: none; + color: $search-color; + @if(mixin-exists(hook-search-input)) {@include hook-search-input();} +} + +.uk-search-input:focus { outline: none; } + +/* Placeholder */ +.uk-search-input:-ms-input-placeholder { color: $search-placeholder-color !important; } +.uk-search-input::placeholder { color: $search-placeholder-color; } + + +/* Icon (Adopts `uk-icon`) + ========================================================================== */ + +/* + * Remove default focus style + */ + +.uk-search-icon:focus { outline: none; } + +/* + * Position above input + * 1. Set position + * 2. Center icon vertically and horizontally + * 3. Style + */ + +.uk-search .uk-search-icon { + /* 1 */ + position: absolute; + top: 0; + bottom: 0; + left: 0; + /* 2 */ + display: inline-flex; + justify-content: center; + align-items: center; + /* 3 */ + color: $search-icon-color; +} + +/* + * Required for `a`. + */ + +.uk-search .uk-search-icon:hover { color: $search-icon-color; } + +/* + * Make `input` element clickable through icon, e.g. if it's a `span` + */ + +.uk-search .uk-search-icon:not(a):not(button):not(input) { pointer-events: none; } + +/* + * Position modifier + */ + +.uk-search .uk-search-icon-flip { + right: 0; + left: auto; +} + + +/* Default modifier + ========================================================================== */ + +.uk-search-default { width: $search-default-width; } + +/* + * Input + */ + +.uk-search-default .uk-search-input { + height: $search-default-height; + padding-left: $search-default-padding-horizontal; + padding-right: $search-default-padding-horizontal; + background: $search-default-background; + @if(mixin-exists(hook-search-default-input)) {@include hook-search-default-input();} +} + +/* Focus */ +.uk-search-default .uk-search-input:focus { + background-color: $search-default-focus-background; + @if(mixin-exists(hook-search-default-input-focus)) {@include hook-search-default-input-focus();} +} + +/* + * Icon + */ + +.uk-search-default .uk-search-icon { width: $search-default-icon-width; } + +.uk-search-default .uk-search-icon:not(.uk-search-icon-flip) + .uk-search-input { padding-left: ($search-default-icon-width); } +.uk-search-default .uk-search-icon-flip + .uk-search-input { padding-right: ($search-default-icon-width); } + + +/* Navbar modifier + ========================================================================== */ + +.uk-search-navbar { width: $search-navbar-width; } + +/* + * Input + */ + +.uk-search-navbar .uk-search-input { + height: $search-navbar-height; + background: $search-navbar-background; + font-size: $search-navbar-font-size; + @if(mixin-exists(hook-search-navbar-input)) {@include hook-search-navbar-input();} +} + +/* + * Icon + */ + +.uk-search-navbar .uk-search-icon { width: $search-navbar-icon-width; } + +.uk-search-navbar .uk-search-icon:not(.uk-search-icon-flip) + .uk-search-input { padding-left: ($search-navbar-icon-width); } +.uk-search-navbar .uk-search-icon-flip + .uk-search-input { padding-right: ($search-navbar-icon-width); } + + +/* Large modifier + ========================================================================== */ + +.uk-search-large { width: $search-large-width; } + +/* + * Input + */ + +.uk-search-large .uk-search-input { + height: $search-large-height; + background: $search-large-background; + font-size: $search-large-font-size; + @if(mixin-exists(hook-search-large-input)) {@include hook-search-large-input();} +} + +/* + * Icon + */ + +.uk-search-large .uk-search-icon { width: $search-large-icon-width; } + +.uk-search-large .uk-search-icon:not(.uk-search-icon-flip) + .uk-search-input { padding-left: ($search-large-icon-width); } +.uk-search-large .uk-search-icon-flip + .uk-search-input { padding-right: ($search-large-icon-width); } + + +/* Toggle + ========================================================================== */ + +.uk-search-toggle { + color: $search-toggle-color; + @if(mixin-exists(hook-search-toggle)) {@include hook-search-toggle();} +} + +/* Hover + Focus */ +.uk-search-toggle:hover, +.uk-search-toggle:focus { + color: $search-toggle-hover-color; + @if(mixin-exists(hook-search-toggle-hover)) {@include hook-search-toggle-hover();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-search-misc)) {@include hook-search-misc();} + +// @mixin hook-search-input(){} +// @mixin hook-search-default-input(){} +// @mixin hook-search-default-input-focus(){} +// @mixin hook-search-navbar-input(){} +// @mixin hook-search-large-input(){} + +// @mixin hook-search-toggle(){} +// @mixin hook-search-toggle-hover(){} + +// @mixin hook-search-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-search-color: $inverse-global-color !default; +$inverse-search-placeholder-color: $inverse-global-muted-color !default; + +$inverse-search-icon-color: $inverse-global-muted-color !default; + +$inverse-search-default-background: $inverse-global-muted-background !default; +$inverse-search-default-focus-background: $inverse-search-default-background !default; + +$inverse-search-navbar-background: transparent !default; + +$inverse-search-large-background: transparent !default; + +$inverse-search-toggle-color: $inverse-global-muted-color !default; +$inverse-search-toggle-hover-color: $inverse-global-color !default; + + + +// @mixin hook-inverse-search-default-input(){} +// @mixin hook-inverse-search-default-input-focus(){} +// @mixin hook-inverse-search-navbar-input(){} +// @mixin hook-inverse-search-large-input(){} +// @mixin hook-inverse-search-toggle(){} +// @mixin hook-inverse-search-toggle-hover(){} diff --git a/_sass/uikit/components/section.scss b/_sass/uikit/components/section.scss new file mode 100644 index 0000000..ee7d250 --- /dev/null +++ b/_sass/uikit/components/section.scss @@ -0,0 +1,224 @@ +// Name: Section +// Description: Component to create horizontal layout section +// +// Component: `uk-section` +// +// Modifiers: `uk-section-xsmall` +// `uk-section-small` +// `uk-section-large` +// `uk-section-xlarge` +// `uk-section-default` +// `uk-section-muted` +// `uk-section-primary` +// `uk-section-secondary` +// `uk-section-overlap` +// +// States: `uk-preserve-color` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$section-padding-vertical: $global-medium-margin !default; +$section-padding-vertical-m: $global-large-margin !default; + +$section-xsmall-padding-vertical: $global-margin !default; + +$section-small-padding-vertical: $global-medium-margin !default; + +$section-large-padding-vertical: $global-large-margin !default; +$section-large-padding-vertical-m: $global-xlarge-margin !default; + +$section-xlarge-padding-vertical: $global-xlarge-margin !default; +$section-xlarge-padding-vertical-m: ($global-large-margin + $global-xlarge-margin) !default; + +$section-default-background: $global-background !default; + +$section-muted-background: $global-muted-background !default; + +$section-primary-background: $global-primary-background !default; +$section-primary-color-mode: light !default; + +$section-secondary-background: $global-secondary-background !default; +$section-secondary-color-mode: light !default; + + +/* ======================================================================== + Component: Section + ========================================================================== */ + +/* + * 1. Make it work with `100vh` and height in general + */ + +.uk-section { + box-sizing: border-box; /* 1 */ + padding-top: $section-padding-vertical; + padding-bottom: $section-padding-vertical; + @if(mixin-exists(hook-section)) {@include hook-section();} +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-section { + padding-top: $section-padding-vertical-m; + padding-bottom: $section-padding-vertical-m; + } + +} + +/* + * Micro clearfix + */ + +.uk-section::before, +.uk-section::after { + content: ""; + display: table; +} + +.uk-section::after { clear: both; } + +/* + * Remove margin from the last-child + */ + +.uk-section > :last-child { margin-bottom: 0; } + + +/* Size modifiers + ========================================================================== */ + +/* + * XSmall + */ + +.uk-section-xsmall { + padding-top: $section-xsmall-padding-vertical; + padding-bottom: $section-xsmall-padding-vertical; +} + +/* + * Small + */ + +.uk-section-small { + padding-top: $section-small-padding-vertical; + padding-bottom: $section-small-padding-vertical; +} + +/* + * Large + */ + +.uk-section-large { + padding-top: $section-large-padding-vertical; + padding-bottom: $section-large-padding-vertical; +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-section-large { + padding-top: $section-large-padding-vertical-m; + padding-bottom: $section-large-padding-vertical-m; + } + +} + + +/* + * XLarge + */ + +.uk-section-xlarge { + padding-top: $section-xlarge-padding-vertical; + padding-bottom: $section-xlarge-padding-vertical; +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-section-xlarge { + padding-top: $section-xlarge-padding-vertical-m; + padding-bottom: $section-xlarge-padding-vertical-m; + } + +} + + +/* Style modifiers + ========================================================================== */ + +/* + * Default + */ + +.uk-section-default { + background: $section-default-background; + @if(mixin-exists(hook-section-default)) {@include hook-section-default();} +} + +/* + * Muted + */ + +.uk-section-muted { + background: $section-muted-background; + @if(mixin-exists(hook-section-muted)) {@include hook-section-muted();} +} + +/* + * Primary + */ + +.uk-section-primary { + background: $section-primary-background; + @if(mixin-exists(hook-section-primary)) {@include hook-section-primary();} +} + +@if ( $section-primary-color-mode == light ) { .uk-section-primary:not(.uk-preserve-color) { @extend .uk-light !optional;} } +@if ( $section-primary-color-mode == dark ) { .uk-section-primary:not(.uk-preserve-color) { @extend .uk-dark !optional;} } + + +/* + * Secondary + */ + +.uk-section-secondary { + background: $section-secondary-background; + @if(mixin-exists(hook-section-secondary)) {@include hook-section-secondary();} +} + +@if ( $section-secondary-color-mode == light ) { .uk-section-secondary:not(.uk-preserve-color) { @extend .uk-light !optional;} } +@if ( $section-secondary-color-mode == dark ) { .uk-section-secondary:not(.uk-preserve-color) { @extend .uk-dark !optional;} } + + +/* Overlap modifier + ========================================================================== */ + +/* + * Reserved modifier to make a section overlap another section with an border image + * Implemented by the theme + */ + +.uk-section-overlap { + @if(mixin-exists(hook-section-overlap)) {@include hook-section-overlap();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-section-misc)) {@include hook-section-misc();} + +// @mixin hook-section(){} +// @mixin hook-section-default(){} +// @mixin hook-section-muted(){} +// @mixin hook-section-secondary(){} +// @mixin hook-section-primary(){} +// @mixin hook-section-overlap(){} +// @mixin hook-section-misc(){} \ No newline at end of file diff --git a/_sass/uikit/components/slidenav.scss b/_sass/uikit/components/slidenav.scss new file mode 100644 index 0000000..0b9af8f --- /dev/null +++ b/_sass/uikit/components/slidenav.scss @@ -0,0 +1,122 @@ +// Name: Slidenav +// Description: Component to create previous/next icon navigations +// +// Component: `uk-slidenav` +// +// Sub-objects: `uk-slidenav-container` +// +// Modifiers: `uk-slidenav-previous` +// `uk-slidenav-next` +// `uk-slidenav-large` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$slidenav-padding-vertical: 5px !default; +$slidenav-padding-horizontal: 10px !default; + +$slidenav-color: rgba($global-color, 0.5) !default; +$slidenav-hover-color: rgba($global-color, 0.9) !default; +$slidenav-active-color: rgba($global-color, 0.5) !default; + +$slidenav-large-padding-vertical: 10px !default; +$slidenav-large-padding-horizontal: $slidenav-large-padding-vertical !default; + + +/* ======================================================================== + Component: Slidenav + ========================================================================== */ + +/* + * Adopts `uk-icon` + */ + +.uk-slidenav { + padding: $slidenav-padding-vertical $slidenav-padding-horizontal; + color: $slidenav-color; + @if(mixin-exists(hook-slidenav)) {@include hook-slidenav();} +} + +/* Hover + Focus */ +.uk-slidenav:hover, +.uk-slidenav:focus { + color: $slidenav-hover-color; + outline: none; + @if(mixin-exists(hook-slidenav-hover)) {@include hook-slidenav-hover();} +} + +/* OnClick */ +.uk-slidenav:active { + color: $slidenav-active-color; + @if(mixin-exists(hook-slidenav-active)) {@include hook-slidenav-active();} +} + + +/* Icon modifier + ========================================================================== */ + +/* + * Previous + */ + +.uk-slidenav-previous { + @if(mixin-exists(hook-slidenav-previous)) {@include hook-slidenav-previous();} +} + +/* + * Next + */ + +.uk-slidenav-next { + @if(mixin-exists(hook-slidenav-next)) {@include hook-slidenav-next();} +} + + +/* Size modifier + ========================================================================== */ + +.uk-slidenav-large { + padding: $slidenav-large-padding-vertical $slidenav-large-padding-horizontal; + @if(mixin-exists(hook-slidenav-large)) {@include hook-slidenav-large();} +} + + +/* Container + ========================================================================== */ + +.uk-slidenav-container { + display: flex; + @if(mixin-exists(hook-slidenav-container)) {@include hook-slidenav-container();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-slidenav-misc)) {@include hook-slidenav-misc();} + +// @mixin hook-slidenav(){} +// @mixin hook-slidenav-hover(){} +// @mixin hook-slidenav-active(){} +// @mixin hook-slidenav-previous(){} +// @mixin hook-slidenav-next(){} +// @mixin hook-slidenav-large(){} +// @mixin hook-slidenav-container(){} +// @mixin hook-slidenav-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-slidenav-color: rgba($inverse-global-color, 0.7) !default; +$inverse-slidenav-hover-color: rgba($inverse-global-color, 0.95) !default; +$inverse-slidenav-active-color: rgba($inverse-global-color, 0.7) !default; + + + +// @mixin hook-inverse-slidenav(){} +// @mixin hook-inverse-slidenav-hover(){} +// @mixin hook-inverse-slidenav-active(){} diff --git a/_sass/uikit/components/slider.scss b/_sass/uikit/components/slider.scss new file mode 100644 index 0000000..2799868 --- /dev/null +++ b/_sass/uikit/components/slider.scss @@ -0,0 +1,99 @@ +// Name: Slider +// Description: Component to create horizontal sliders +// +// Component: `uk-slider` +// +// Sub-objects: `uk-slider-container` +// `uk-slider-items` +// +// States: `uk-active` +// +// ======================================================================== + + +/* ======================================================================== + Component: Slider + ========================================================================== */ + +/* + * 1. Prevent tab highlighting on iOS. + */ + +.uk-slider { + /* 1 */ + -webkit-tap-highlight-color: transparent; + @if(mixin-exists(hook-slider)) {@include hook-slider();} +} + + +/* Container + ========================================================================== */ + +/* + * 1. Clip child elements + */ + +.uk-slider-container { + /* 1 */ + overflow: hidden; +} + +/* Items + ========================================================================== */ + +/* + * 1. Optimize animation + * 2. Create a containing block. In Safari it's neither created by `transform` nor `will-change`. + */ + +.uk-slider-items { + /* 1 */ + will-change: transform; + /* 2 */ + position: relative; +} + +/* + * 1. Reset list style without interfering with grid + * 2. Prevent displaying the callout information on iOS. + */ + +.uk-slider-items:not(.uk-grid) { + display: flex; + /* 1 */ + margin: 0; + padding: 0; + list-style: none; + /* 2 */ + -webkit-touch-callout: none; +} + +.uk-slider-items.uk-grid { flex-wrap: nowrap; } + + +/* Item + ========================================================================== */ + +/* + * 1. Let items take content dimensions (0 0 auto) + * 2. Create position context + * 3. Disable horizontal panning gestures in IE11 and Edge + */ + +.uk-slider-items > * { + /* 1 */ + flex: none; + /* 2 */ + position: relative; + /* 3 */ + touch-action: pan-y; +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-slider-misc)) {@include hook-slider-misc();} + +// @mixin hook-slider(){} +// @mixin hook-slider-misc(){} diff --git a/_sass/uikit/components/slideshow.scss b/_sass/uikit/components/slideshow.scss new file mode 100644 index 0000000..fc355d4 --- /dev/null +++ b/_sass/uikit/components/slideshow.scss @@ -0,0 +1,93 @@ +// Name: Slideshow +// Description: Component to create slideshows +// +// Component: `uk-slideshow` +// +// Sub-objects: `uk-slideshow-items` +// +// States: `uk-active` +// +// ======================================================================== + + +/* ======================================================================== + Component: Slideshow + ========================================================================== */ + +/* + * 1. Prevent tab highlighting on iOS. + */ + +.uk-slideshow { + /* 1 */ + -webkit-tap-highlight-color: transparent; + @if(mixin-exists(hook-slideshow)) {@include hook-slideshow();} +} + + +/* Items + ========================================================================== */ + +/* + * 1. Create position and stacking context + * 2. Reset list + * 3. Clip child elements + * 4. Prevent displaying the callout information on iOS. + */ + +.uk-slideshow-items { + /* 1 */ + position: relative; + z-index: 0; + /* 2 */ + margin: 0; + padding: 0; + list-style: none; + /* 3 */ + overflow: hidden; + /* 4 */ + -webkit-touch-callout: none; +} + + +/* Item + ========================================================================== */ + +/* + * 1. Position items above each other + * 2. Take the full width + * 3. Clip child elements, e.g. for `uk-cover` + * 4. Optimize animation + * 5. Disable horizontal panning gestures in IE11 and Edge + */ + +.uk-slideshow-items > * { + /* 1 */ + position: absolute; + top: 0; + left: 0; + /* 2 */ + right: 0; + bottom: 0; + /* 3 */ + overflow: hidden; + /* 4 */ + will-change: transform, opacity; + /* 5 */ + touch-action: pan-y; +} + +/* + * Hide not active items + */ + +.uk-slideshow-items > :not(.uk-active) { display: none; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-slideshow-misc)) {@include hook-slideshow-misc();} + +// @mixin hook-slideshow(){} +// @mixin hook-slideshow-misc(){} diff --git a/_sass/uikit/components/sortable.scss b/_sass/uikit/components/sortable.scss new file mode 100644 index 0000000..8895f11 --- /dev/null +++ b/_sass/uikit/components/sortable.scss @@ -0,0 +1,101 @@ +// Name: Sortable +// Description: Component to create sortable grids and lists +// +// Component: `uk-sortable` +// +// Sub-objects: `uk-sortable-drag` +// `uk-sortable-placeholder` +// `uk-sortable-handle` +// +// Modifiers: `uk-sortable-empty` +// +// States: `uk-drag` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$sortable-dragged-z-index: $global-z-index + 50 !default; + +$sortable-placeholder-opacity: 0 !default; + +$sortable-empty-height: 50px !default; + + +/* ======================================================================== + Component: Sortable + ========================================================================== */ + +.uk-sortable { + position: relative; + @if(mixin-exists(hook-sortable)) {@include hook-sortable();} +} + +/* + * Deactivate browser touch actions in IE11 and Edge + */ + +.uk-sortable > * { touch-action: none; } + +/* + * Deactivate pointer-events on SVGs in Safari + */ + +.uk-sortable svg { pointer-events: none; } + +/* + * Remove margin from the last-child + */ + +.uk-sortable > :last-child { margin-bottom: 0; } + + +/* Drag + ========================================================================== */ + +.uk-sortable-drag { + position: absolute !important; + z-index: $sortable-dragged-z-index !important; + pointer-events: none; + @if(mixin-exists(hook-sortable-drag)) {@include hook-sortable-drag();} +} + + +/* Placeholder + ========================================================================== */ + +.uk-sortable-placeholder { + opacity: $sortable-placeholder-opacity; + @if(mixin-exists(hook-sortable-placeholder)) {@include hook-sortable-placeholder();} +} + + +/* Empty modifier + ========================================================================== */ + +.uk-sortable-empty { + min-height: $sortable-empty-height; + @if(mixin-exists(hook-sortable-empty)) {@include hook-sortable-empty();} +} + + +/* Handle + ========================================================================== */ + +/* Hover */ +.uk-sortable-handle:hover { cursor: move; } + + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-sortable-misc)) {@include hook-sortable-misc();} + +// @mixin hook-sortable(){} +// @mixin hook-sortable-drag(){} +// @mixin hook-sortable-placeholder(){} +// @mixin hook-sortable-empty(){} +// @mixin hook-sortable-misc(){} diff --git a/_sass/uikit/components/spinner.scss b/_sass/uikit/components/spinner.scss new file mode 100644 index 0000000..a02f41d --- /dev/null +++ b/_sass/uikit/components/spinner.scss @@ -0,0 +1,74 @@ +// Name: Spinner +// Description: Component to create a loading spinner +// +// Component: `uk-spinner` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$spinner-size: 30px !default; +$spinner-stroke-width: 1 !default; +$spinner-radius: floor(($spinner-size - $spinner-stroke-width) / 2) !default; // Minus stroke width to prevent overflow clipping +$spinner-circumference: round(2 * 3.141 * $spinner-radius) !default; +$spinner-duration: 1.4s !default; + + +/* ======================================================================== + Component: Spinner + ========================================================================== */ + +/* + * Adopts `uk-icon` + */ + +.uk-spinner { + @if(mixin-exists(hook-spinner)) {@include hook-spinner();} +} + + +/* SVG + ========================================================================== */ + +.uk-spinner > * { animation: uk-spinner-rotate $spinner-duration linear infinite; } + +@keyframes uk-spinner-rotate { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(270deg); } +} + +/* + * Circle + */ + +.uk-spinner > * > * { + stroke-dasharray: $spinner-circumference; + stroke-dashoffset: 0; + transform-origin: center; + animation: uk-spinner-dash $spinner-duration ease-in-out infinite; + stroke-width: $spinner-stroke-width; + stroke-linecap: round; +} + +@keyframes uk-spinner-dash { + 0% { stroke-dashoffset: $spinner-circumference; } + 50% { + stroke-dashoffset: $spinner-circumference/4; + transform:rotate(135deg); + } + 100% { + stroke-dashoffset: $spinner-circumference; + transform:rotate(450deg); + } +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-spinner-misc)) {@include hook-spinner-misc();} + +// @mixin hook-spinner(){} +// @mixin hook-spinner-misc(){} diff --git a/_sass/uikit/components/sticky.scss b/_sass/uikit/components/sticky.scss new file mode 100644 index 0000000..e8e54f9 --- /dev/null +++ b/_sass/uikit/components/sticky.scss @@ -0,0 +1,53 @@ +// Name: Sticky +// Description: Component to make elements sticky in the viewport +// +// Component: `uk-sticky` +// +// Modifier: `uk-sticky-fixed` +// +// States: `uk-active` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$sticky-z-index: $global-z-index - 20 !default; + +$sticky-animation-duration: 0.2s !default; +$sticky-reverse-animation-duration: 0.2s !default; + + +/* ======================================================================== + Component: Sticky + ========================================================================== */ + +/* + * 1. Resolve frame rate issues on devices with lower frame rates by forcing hardware acceleration + */ + +.uk-sticky-fixed { + z-index: $sticky-z-index; + box-sizing: border-box; + margin: 0 !important; + /* 1 */ + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} + +/* + * Faster animations + */ + +.uk-sticky[class*='uk-animation-'] { animation-duration: $sticky-animation-duration; } + +.uk-sticky.uk-animation-reverse { animation-duration: $sticky-reverse-animation-duration; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-sticky-misc)) {@include hook-sticky-misc();} + +// @mixin hook-sticky-misc(){} diff --git a/_sass/uikit/components/subnav.scss b/_sass/uikit/components/subnav.scss new file mode 100644 index 0000000..5397501 --- /dev/null +++ b/_sass/uikit/components/subnav.scss @@ -0,0 +1,232 @@ +// Name: Subnav +// Description: Component to create a sub navigation +// +// Component: `uk-subnav` +// +// Modifiers: `uk-subnav-divider` +// `uk-subnav-pill` +// +// States: `uk-active` +// `uk-first-column` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$subnav-margin-horizontal: 20px !default; + +$subnav-item-color: $global-muted-color !default; +$subnav-item-hover-color: $global-color !default; +$subnav-item-hover-text-decoration: none !default; +$subnav-item-active-color: $global-emphasis-color !default; + +$subnav-divider-margin-horizontal: $subnav-margin-horizontal !default; +$subnav-divider-border-height: 1.5em !default; +$subnav-divider-border-width: $global-border-width !default; +$subnav-divider-border: $global-border !default; + +$subnav-pill-item-padding-vertical: 5px !default; +$subnav-pill-item-padding-horizontal: 10px !default; +$subnav-pill-item-background: transparent !default; +$subnav-pill-item-color: $subnav-item-color !default; +$subnav-pill-item-hover-background: $global-muted-background !default; +$subnav-pill-item-hover-color: $global-color !default; +$subnav-pill-item-onclick-background: $subnav-pill-item-hover-background !default; +$subnav-pill-item-onclick-color: $subnav-pill-item-hover-color !default; +$subnav-pill-item-active-background: $global-primary-background !default; +$subnav-pill-item-active-color: $global-inverse-color !default; + +$subnav-item-disabled-color: $global-muted-color !default; + + +/* ======================================================================== + Component: Subnav + ========================================================================== */ + +/* + * 1. Allow items to wrap into the next line + * 2. Gutter + * 3. Reset list + */ + +.uk-subnav { + display: flex; + /* 1 */ + flex-wrap: wrap; + /* 2 */ + margin-left: (-$subnav-margin-horizontal); + /* 3 */ + padding: 0; + list-style: none; + @if(mixin-exists(hook-subnav)) {@include hook-subnav();} +} + +/* + * 1. Space is allocated solely based on content dimensions: 0 0 auto + * 2. Gutter + * 3. Create position context for dropdowns + */ + +.uk-subnav > * { + /* 1 */ + flex: none; + /* 2 */ + padding-left: $subnav-margin-horizontal; + /* 3 */ + position: relative; +} + + +/* Items + ========================================================================== */ + +/* + * Items must target `a` elements to exclude other elements (e.g. dropdowns) + * Using `:first-child` instead of `a` to support `span` elements for text + * 1. Prevent gap if child element is `inline-block`, e.g. an icon + * 2. Style + */ + +.uk-subnav > * > :first-child { + /* 1 */ + display: block; + /* 2 */ + color: $subnav-item-color; + @if(mixin-exists(hook-subnav-item)) {@include hook-subnav-item();} +} + +/* Hover + Focus */ +.uk-subnav > * > a:hover, +.uk-subnav > * > a:focus { + color: $subnav-item-hover-color; + text-decoration: $subnav-item-hover-text-decoration; + outline: none; + @if(mixin-exists(hook-subnav-item-hover)) {@include hook-subnav-item-hover();} +} + +/* Active */ +.uk-subnav > .uk-active > a { + color: $subnav-item-active-color; + @if(mixin-exists(hook-subnav-item-active)) {@include hook-subnav-item-active();} +} + + +/* Divider modifier + ========================================================================== */ + +/* + * 1. Align items and divider vertically + */ + +.uk-subnav-divider > * { + /* 1 */ + display: flex; + align-items: center; +} + +/* + * Divider + * `nth-child` makes it also work without JS if it's only one row + */ + +.uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before { + content: ""; + height: $subnav-divider-border-height; + margin-left: ($subnav-divider-margin-horizontal - $subnav-margin-horizontal); + margin-right: $subnav-divider-margin-horizontal; + border-left: $subnav-divider-border-width solid $subnav-divider-border; + @if(mixin-exists(hook-subnav-divider)) {@include hook-subnav-divider();} +} + + +/* Pill modifier + ========================================================================== */ + +.uk-subnav-pill > * > :first-child { + padding: $subnav-pill-item-padding-vertical $subnav-pill-item-padding-horizontal; + background: $subnav-pill-item-background; + color: $subnav-pill-item-color; + @if(mixin-exists(hook-subnav-pill-item)) {@include hook-subnav-pill-item();} +} + +/* Hover + Focus */ +.uk-subnav-pill > * > a:hover, +.uk-subnav-pill > * > a:focus { + background-color: $subnav-pill-item-hover-background; + color: $subnav-pill-item-hover-color; + @if(mixin-exists(hook-subnav-pill-item-hover)) {@include hook-subnav-pill-item-hover();} +} + +/* OnClick */ +.uk-subnav-pill > * > a:active { + background-color: $subnav-pill-item-onclick-background; + color: $subnav-pill-item-onclick-color; + @if(mixin-exists(hook-subnav-pill-item-onclick)) {@include hook-subnav-pill-item-onclick();} +} + +/* Active */ +.uk-subnav-pill > .uk-active > a { + background-color: $subnav-pill-item-active-background; + color: $subnav-pill-item-active-color; + @if(mixin-exists(hook-subnav-pill-item-active)) {@include hook-subnav-pill-item-active();} +} + + +/* Disabled + * The same for all style modifiers + ========================================================================== */ + +.uk-subnav > .uk-disabled > a { + color: $subnav-item-disabled-color; + @if(mixin-exists(hook-subnav-item-disabled)) {@include hook-subnav-item-disabled();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-subnav-misc)) {@include hook-subnav-misc();} + +// @mixin hook-subnav(){} +// @mixin hook-subnav-item(){} +// @mixin hook-subnav-item-hover(){} +// @mixin hook-subnav-item-active(){} +// @mixin hook-subnav-divider(){} +// @mixin hook-subnav-pill-item(){} +// @mixin hook-subnav-pill-item-hover(){} +// @mixin hook-subnav-pill-item-onclick(){} +// @mixin hook-subnav-pill-item-active(){} +// @mixin hook-subnav-item-disabled(){} +// @mixin hook-subnav-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-subnav-item-color: $inverse-global-muted-color !default; +$inverse-subnav-item-hover-color: $inverse-global-color !default; +$inverse-subnav-item-active-color: $inverse-global-emphasis-color !default; +$inverse-subnav-divider-border: $inverse-global-border !default; +$inverse-subnav-pill-item-background: transparent !default; +$inverse-subnav-pill-item-color: $inverse-global-muted-color !default; +$inverse-subnav-pill-item-hover-background: $inverse-global-muted-background !default; +$inverse-subnav-pill-item-hover-color: $inverse-global-color !default; +$inverse-subnav-pill-item-onclick-background: $inverse-subnav-pill-item-hover-background !default; +$inverse-subnav-pill-item-onclick-color: $inverse-subnav-pill-item-hover-color !default; +$inverse-subnav-pill-item-active-background: $inverse-global-primary-background !default; +$inverse-subnav-pill-item-active-color: $inverse-global-inverse-color !default; +$inverse-subnav-item-disabled-color: $inverse-global-muted-color !default; + + + +// @mixin hook-inverse-subnav-item(){} +// @mixin hook-inverse-subnav-item-hover(){} +// @mixin hook-inverse-subnav-item-active(){} +// @mixin hook-inverse-subnav-divider(){} +// @mixin hook-inverse-subnav-pill-item(){} +// @mixin hook-inverse-subnav-pill-item-hover(){} +// @mixin hook-inverse-subnav-pill-item-onclick(){} +// @mixin hook-inverse-subnav-pill-item-active(){} +// @mixin hook-inverse-subnav-item-disabled(){} diff --git a/_sass/uikit/components/switcher.scss b/_sass/uikit/components/switcher.scss new file mode 100644 index 0000000..0d99cdf --- /dev/null +++ b/_sass/uikit/components/switcher.scss @@ -0,0 +1,47 @@ +// Name: Switcher +// Description: Component to navigate through different content panes +// +// Component: `uk-switcher` +// +// States: `uk-active` +// +// ======================================================================== + + +/* ======================================================================== + Component: Switcher + ========================================================================== */ + +/* + * Reset list + */ + +.uk-switcher { + margin: 0; + padding: 0; + list-style: none; +} + + +/* Items + ========================================================================== */ + +/* + * Hide not active items + */ + +.uk-switcher > :not(.uk-active) { display: none; } + +/* + * Remove margin from the last-child + */ + +.uk-switcher > * > :last-child { margin-bottom: 0; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-switcher-misc)) {@include hook-switcher-misc();} + +// @mixin hook-switcher-misc(){} \ No newline at end of file diff --git a/_sass/uikit/components/tab.scss b/_sass/uikit/components/tab.scss new file mode 100644 index 0000000..87e0a67 --- /dev/null +++ b/_sass/uikit/components/tab.scss @@ -0,0 +1,191 @@ +// Name: Tab +// Description: Component to create a tabbed navigation +// +// Component: `uk-tab` +// +// Modifiers: `uk-tab-bottom` +// `uk-tab-left` +// `uk-tab-right` +// +// States: `uk-active` +// `uk-disabled` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$tab-margin-horizontal: 20px !default; + +$tab-item-padding-horizontal: 10px !default; +$tab-item-padding-vertical: 5px !default; +$tab-item-color: $global-muted-color !default; +$tab-item-hover-color: $global-color !default; +$tab-item-hover-text-decoration: none !default; +$tab-item-active-color: $global-emphasis-color !default; +$tab-item-disabled-color: $global-muted-color !default; + + +/* ======================================================================== + Component: Tab + ========================================================================== */ + +/* + * 1. Allow items to wrap into the next line + * 2. Gutter + * 3. Reset list + */ + +.uk-tab { + display: flex; + /* 1 */ + flex-wrap: wrap; + /* 2 */ + margin-left: (-$tab-margin-horizontal); + /* 3 */ + padding: 0; + list-style: none; + @if(mixin-exists(hook-tab)) {@include hook-tab();} +} + +/* + * 1. Space is allocated solely based on content dimensions: 0 0 auto + * 2. Gutter + * 3. Create position context for dropdowns + */ + +.uk-tab > * { + /* 1 */ + flex: none; + /* 2 */ + padding-left: $tab-margin-horizontal; + /* 3 */ + position: relative; +} + + +/* Items + ========================================================================== */ + +/* + * Items must target `a` elements to exclude other elements (e.g. dropdowns) + * 1. Center text if a width is set + * 2. Style + */ + +.uk-tab > * > a { + /* 1 */ + display: block; + text-align: center; + /* 2 */ + padding: $tab-item-padding-vertical $tab-item-padding-horizontal; + color: $tab-item-color; + @if(mixin-exists(hook-tab-item)) {@include hook-tab-item();} +} + +/* Hover + Focus */ +.uk-tab > * > a:hover, +.uk-tab > * > a:focus { + color: $tab-item-hover-color; + text-decoration: $tab-item-hover-text-decoration; + @if(mixin-exists(hook-tab-item-hover)) {@include hook-tab-item-hover();} +} + +/* Active */ +.uk-tab > .uk-active > a { + color: $tab-item-active-color; + @if(mixin-exists(hook-tab-item-active)) {@include hook-tab-item-active();} +} + +/* Disabled */ +.uk-tab > .uk-disabled > a { + color: $tab-item-disabled-color; + @if(mixin-exists(hook-tab-item-disabled)) {@include hook-tab-item-disabled();} +} + + +/* Position modifier + ========================================================================== */ + +/* + * Bottom + */ + +.uk-tab-bottom { + @if(mixin-exists(hook-tab-bottom)) {@include hook-tab-bottom();} +} + +.uk-tab-bottom > * > a { + @if(mixin-exists(hook-tab-bottom-item)) {@include hook-tab-bottom-item();} +} + +/* + * Left + Right + * 1. Reset Gutter + */ + +.uk-tab-left, +.uk-tab-right { + flex-direction: column; + /* 1 */ + margin-left: 0; +} + +/* 1 */ +.uk-tab-left > *, +.uk-tab-right > * { padding-left: 0; } + +.uk-tab-left { + @if(mixin-exists(hook-tab-left)) {@include hook-tab-left();} +} + +.uk-tab-right { + @if(mixin-exists(hook-tab-right)) {@include hook-tab-right();} +} + +.uk-tab-left > * > a { + text-align: left; + @if(mixin-exists(hook-tab-left-item)) {@include hook-tab-left-item();} +} + +.uk-tab-right > * > a { + text-align: left; + @if(mixin-exists(hook-tab-right-item)) {@include hook-tab-right-item();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-tab-misc)) {@include hook-tab-misc();} + +// @mixin hook-tab(){} +// @mixin hook-tab-item(){} +// @mixin hook-tab-item-hover(){} +// @mixin hook-tab-item-active(){} +// @mixin hook-tab-item-disabled(){} +// @mixin hook-tab-bottom(){} +// @mixin hook-tab-bottom-item(){} +// @mixin hook-tab-left(){} +// @mixin hook-tab-left-item(){} +// @mixin hook-tab-right(){} +// @mixin hook-tab-right-item(){} +// @mixin hook-tab-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-tab-item-color: $inverse-global-muted-color !default; +$inverse-tab-item-hover-color: $inverse-global-color !default; +$inverse-tab-item-active-color: $inverse-global-emphasis-color !default; +$inverse-tab-item-disabled-color: $inverse-global-muted-color !default; + + + +// @mixin hook-inverse-tab(){} +// @mixin hook-inverse-tab-item(){} +// @mixin hook-inverse-tab-item-hover(){} +// @mixin hook-inverse-tab-item-active(){} +// @mixin hook-inverse-tab-item-disabled(){} \ No newline at end of file diff --git a/_sass/uikit/components/table.scss b/_sass/uikit/components/table.scss new file mode 100644 index 0000000..313d218 --- /dev/null +++ b/_sass/uikit/components/table.scss @@ -0,0 +1,316 @@ +// Name: Table +// Description: Styles for tables +// +// Component: `uk-table` +// +// Modifiers: `uk-table-middle` +// `uk-table-divider` +// `uk-table-striped` +// `uk-table-hover` +// `uk-table-small` +// `uk-table-justify` +// `uk-table-shrink` +// `uk-table-expand` +// `uk-table-link` +// `uk-table-responsive` +// +// States: `uk-active` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$table-margin-vertical: $global-margin !default; + +$table-cell-padding-vertical: 16px !default; +$table-cell-padding-horizontal: 12px !default; + +$table-header-cell-font-size: $global-font-size !default; +$table-header-cell-font-weight: bold !default; +$table-header-cell-color: $global-color !default; + +$table-footer-font-size: $global-small-font-size !default; + +$table-caption-font-size: $global-small-font-size !default; +$table-caption-color: $global-muted-color !default; + +$table-row-active-background: #ffd !default; + +$table-divider-border-width: $global-border-width !default; +$table-divider-border: $global-border !default; + +$table-striped-row-background: $global-muted-background !default; + +$table-hover-row-background: $table-row-active-background !default; + +$table-small-cell-padding-vertical: 10px !default; +$table-small-cell-padding-horizontal: 12px !default; + +$table-large-cell-padding-vertical: 22px !default; +$table-large-cell-padding-horizontal: 12px !default; + +$table-expand-min-width: 150px !default; + + +/* ======================================================================== + Component: Table + ========================================================================== */ + +/* + * 1. Remove most spacing between table cells. + * 2. Behave like a block element + * 3. Style + */ + +.uk-table { + /* 1 */ + border-collapse: collapse; + border-spacing: 0; + /* 2 */ + width: 100%; + /* 3 */ + margin-bottom: $table-margin-vertical; + @if(mixin-exists(hook-table)) {@include hook-table();} +} + +/* Add margin if adjacent element */ +* + .uk-table { margin-top: $table-margin-vertical; } + + +/* Header cell + ========================================================================== */ + +/* + * 1. Style + */ + +.uk-table th { + padding: $table-cell-padding-vertical $table-cell-padding-horizontal; + text-align: left; + vertical-align: bottom; + /* 1 */ + font-size: $table-header-cell-font-size; + font-weight: $table-header-cell-font-weight; + color: $table-header-cell-color; + @if(mixin-exists(hook-table-header-cell)) {@include hook-table-header-cell();} +} + + +/* Cell + ========================================================================== */ + +.uk-table td { + padding: $table-cell-padding-vertical $table-cell-padding-horizontal; + vertical-align: top; + @if(mixin-exists(hook-table-cell)) {@include hook-table-cell();} +} + +/* + * Remove margin from the last-child + */ + +.uk-table td > :last-child { margin-bottom: 0; } + + +/* Footer + ========================================================================== */ + +.uk-table tfoot { + font-size: $table-footer-font-size; + @if(mixin-exists(hook-table-footer)) {@include hook-table-footer();} +} + + +/* Caption + ========================================================================== */ + +.uk-table caption { + font-size: $table-caption-font-size; + text-align: left; + color: $table-caption-color; + @if(mixin-exists(hook-table-caption)) {@include hook-table-caption();} +} + + +/* Row + ========================================================================== */ + +.uk-table > tr.uk-active, +.uk-table tbody tr.uk-active { + background: $table-row-active-background; + @if(mixin-exists(hook-table-row-active)) {@include hook-table-row-active();} +} + + +/* Alignment modifier + ========================================================================== */ + +.uk-table-middle, +.uk-table-middle td { vertical-align: middle !important; } + + +/* Style modifiers + ========================================================================== */ + +/* + * Divider + */ + +.uk-table-divider > tr:not(:first-child), +.uk-table-divider > :not(:first-child) > tr, +.uk-table-divider > :first-child > tr:not(:first-child) { + border-top: $table-divider-border-width solid $table-divider-border; + @if(mixin-exists(hook-table-divider)) {@include hook-table-divider();} +} + +/* + * Striped + */ + +.uk-table-striped > tr:nth-of-type(odd), +.uk-table-striped tbody tr:nth-of-type(odd) { + background: $table-striped-row-background; + @if(mixin-exists(hook-table-striped)) {@include hook-table-striped();} +} + +/* + * Hover + */ + +.uk-table-hover > tr:hover, +.uk-table-hover tbody tr:hover { + background: $table-hover-row-background; + @if(mixin-exists(hook-table-hover)) {@include hook-table-hover();} +} + + +/* Size modifier + ========================================================================== */ + +.uk-table-small th, +.uk-table-small td { + padding: $table-small-cell-padding-vertical $table-small-cell-padding-horizontal; + @if(mixin-exists(hook-table-small)) {@include hook-table-small();} +} + +.uk-table-large th, +.uk-table-large td { + padding: $table-large-cell-padding-vertical $table-large-cell-padding-horizontal; + @if(mixin-exists(hook-table-large)) {@include hook-table-large();} +} + + +/* Justify modifier + ========================================================================== */ + +.uk-table-justify th:first-child, +.uk-table-justify td:first-child { padding-left: 0; } + +.uk-table-justify th:last-child, +.uk-table-justify td:last-child { padding-right: 0; } + + +/* Cell size modifier + ========================================================================== */ + +.uk-table-shrink { width: 1px; } +.uk-table-expand { min-width: $table-expand-min-width; } + + +/* Cell link modifier + ========================================================================== */ + +/* + * Does not work with `uk-table-justify` at the moment + */ + +.uk-table-link { padding: 0 !important; } + +.uk-table-link > a { + display: block; + padding: $table-cell-padding-vertical $table-cell-padding-horizontal; +} + +.uk-table-small .uk-table-link > a { padding: $table-small-cell-padding-vertical $table-small-cell-padding-horizontal; } + + +/* Responsive table + ========================================================================== */ + + +/* Phone landscape and smaller */ +@media (max-width: $breakpoint-small-max) { + + .uk-table-responsive, + .uk-table-responsive tbody, + .uk-table-responsive th, + .uk-table-responsive td, + .uk-table-responsive tr { display: block; } + + .uk-table-responsive thead { display: none; } + + .uk-table-responsive th, + .uk-table-responsive td { + width: auto !important; + max-width: none !important; + min-width: 0 !important; + overflow: visible !important; + white-space: normal !important; + } + + .uk-table-responsive th:not(:first-child):not(.uk-table-link), + .uk-table-responsive td:not(:first-child):not(.uk-table-link), + .uk-table-responsive .uk-table-link:not(:first-child) > a { padding-top: round($table-cell-padding-vertical / 3) !important; } + + .uk-table-responsive th:not(:last-child):not(.uk-table-link), + .uk-table-responsive td:not(:last-child):not(.uk-table-link), + .uk-table-responsive .uk-table-link:not(:last-child) > a { padding-bottom: round($table-cell-padding-vertical / 3) !important; } + + .uk-table-justify.uk-table-responsive th, + .uk-table-justify.uk-table-responsive td { + padding-left: 0; + padding-right: 0; + } + +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-table-misc)) {@include hook-table-misc();} + +// @mixin hook-table(){} +// @mixin hook-table-header-cell(){} +// @mixin hook-table-cell(){} +// @mixin hook-table-footer(){} +// @mixin hook-table-caption(){} +// @mixin hook-table-row-active(){} +// @mixin hook-table-divider(){} +// @mixin hook-table-striped(){} +// @mixin hook-table-hover(){} +// @mixin hook-table-small(){} +// @mixin hook-table-large(){} +// @mixin hook-table-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-table-header-cell-color: $inverse-global-color !default; +$inverse-table-caption-color: $inverse-global-muted-color !default; +$inverse-table-row-active-background: fade-out($inverse-global-muted-background, 0.02) !default; +$inverse-table-divider-border: $inverse-global-border !default; +$inverse-table-striped-row-background: $inverse-global-muted-background !default; +$inverse-table-hover-row-background: $inverse-table-row-active-background !default; + + + +// @mixin hook-inverse-table-header-cell(){} +// @mixin hook-inverse-table-caption(){} +// @mixin hook-inverse-table-row-active(){} +// @mixin hook-inverse-table-divider(){} +// @mixin hook-inverse-table-striped(){} +// @mixin hook-inverse-table-hover(){} \ No newline at end of file diff --git a/_sass/uikit/components/text.scss b/_sass/uikit/components/text.scss new file mode 100644 index 0000000..c60915b --- /dev/null +++ b/_sass/uikit/components/text.scss @@ -0,0 +1,262 @@ +// Name: Text +// Description: Utilities for text +// +// Component: `uk-text-*` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$text-lead-font-size: $global-large-font-size !default; +$text-lead-line-height: 1.5 !default; +$text-lead-color: $global-emphasis-color !default; + +$text-meta-font-size: $global-small-font-size !default; +$text-meta-line-height: 1.4 !default; +$text-meta-color: $global-muted-color !default; + +$text-small-font-size: $global-small-font-size !default; +$text-small-line-height: 1.5 !default; + +$text-large-font-size: $global-large-font-size !default; +$text-large-line-height: 1.5 !default; + +$text-bold-font-weight: bolder !default; + +$text-muted-color: $global-muted-color !default; +$text-primary-color: $global-primary-background !default; +$text-success-color: $global-success-background !default; +$text-warning-color: $global-warning-background !default; +$text-danger-color: $global-danger-background !default; + +$text-background-color: $global-primary-background !default; + + +/* ======================================================================== + Component: Text + ========================================================================== */ + + +/* Style modifiers + ========================================================================== */ + +.uk-text-lead { + font-size: $text-lead-font-size; + line-height: $text-lead-line-height; + color: $text-lead-color; + @if(mixin-exists(hook-text-lead)) {@include hook-text-lead();} +} + +.uk-text-meta { + font-size: $text-meta-font-size; + line-height: $text-meta-line-height; + color: $text-meta-color; + @if(mixin-exists(hook-text-meta)) {@include hook-text-meta();} +} + + +/* Size modifiers + ========================================================================== */ + +.uk-text-small { + font-size: $text-small-font-size; + line-height: $text-small-line-height; + @if(mixin-exists(hook-text-small)) {@include hook-text-small();} +} + +.uk-text-large { + font-size: $text-large-font-size; + line-height: $text-large-line-height; + @if(mixin-exists(hook-text-large)) {@include hook-text-large();} +} + + +/* Weight modifier + ========================================================================== */ + +.uk-text-bold { font-weight: $text-bold-font-weight; } + + +/* Transform modifier + ========================================================================== */ + +.uk-text-uppercase { text-transform: uppercase !important; } +.uk-text-capitalize { text-transform: capitalize !important; } +.uk-text-lowercase { text-transform: lowercase !important; } + + +/* Color modifiers + ========================================================================== */ + +.uk-text-muted { color: $text-muted-color !important; } +.uk-text-primary { color: $text-primary-color !important; } +.uk-text-success { color: $text-success-color !important; } +.uk-text-warning { color: $text-warning-color !important; } +.uk-text-danger { color: $text-danger-color !important; } + + +/* Background modifier + ========================================================================== */ + +/* + * 1. The background clips to the foreground text. Works in Chrome, Firefox, Safari, Edge and Opera + * Default color is set to transparent + * 2. Container fits the text + * 3. Fallback color for IE11 + */ + +.uk-text-background { + /* 1 */ + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + /* 2 */ + display: inline-block; + /* 3 */ + color: $text-background-color !important; +} + +@supports (-webkit-background-clip: text) { + + .uk-text-background { + background-color: $text-background-color; + @if(mixin-exists(hook-text-background)) {@include hook-text-background();} + } + +} + + +/* Alignment modifiers + ========================================================================== */ + +.uk-text-left { text-align: left !important; } +.uk-text-right { text-align: right !important; } +.uk-text-center { text-align: center !important; } +.uk-text-justify { text-align: justify !important; } + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-text-left\@s { text-align: left !important; } + .uk-text-right\@s { text-align: right !important; } + .uk-text-center\@s { text-align: center !important; } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-text-left\@m { text-align: left !important; } + .uk-text-right\@m { text-align: right !important; } + .uk-text-center\@m { text-align: center !important; } + +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-text-left\@l { text-align: left !important; } + .uk-text-right\@l { text-align: right !important; } + .uk-text-center\@l { text-align: center !important; } + +} + +/* Large screen and bigger */ +@media (min-width: $breakpoint-xlarge) { + + .uk-text-left\@xl { text-align: left !important; } + .uk-text-right\@xl { text-align: right !important; } + .uk-text-center\@xl { text-align: center !important; } + +} + +/* + * Vertical + */ + +.uk-text-top { vertical-align: top !important; } +.uk-text-middle { vertical-align: middle !important; } +.uk-text-bottom { vertical-align: bottom !important; } +.uk-text-baseline { vertical-align: baseline !important; } + + +/* Wrap modifiers + ========================================================================== */ + +/* + * Prevent text from wrapping onto multiple lines + */ + +.uk-text-nowrap { white-space: nowrap; } + +/* + * 1. Make sure a max-width is set after which truncation can occur + * 2. Prevent text from wrapping onto multiple lines, and truncate with an ellipsis + * 3. Fix for table cells + */ + +.uk-text-truncate { + /* 1 */ + max-width: 100%; + /* 2 */ + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +/* 2 */ +th.uk-text-truncate, +td.uk-text-truncate { max-width: 0; } + + +/* + * 1. Wrap long words onto the next line and break them if they are too long to fit + * 2. Legacy `word-wrap` as fallback for `overflow-wrap` + * 3. Add a hyphen where the word breaks + * 4. Fix `overflow-wrap` which doesn't work with table cells in Chrome, Opera, IE11 and Edge + * Must use `break-all` to support IE11 and Edge + */ + +.uk-text-break { + /* 1 */ + overflow-wrap: break-word; + /* 2 */ + word-wrap: break-word; + /* 3 */ + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +/* 4 */ +th.uk-text-break, +td.uk-text-break { word-break: break-all; } + + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-text-misc)) {@include hook-text-misc();} + +// @mixin hook-text-lead(){} +// @mixin hook-text-meta(){} +// @mixin hook-text-small(){} +// @mixin hook-text-large(){} +// @mixin hook-text-background(){} +// @mixin hook-text-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-text-lead-color: $inverse-global-color !default; +$inverse-text-meta-color: $inverse-global-muted-color !default; +$inverse-text-muted-color: $inverse-global-muted-color !default; +$inverse-text-primary-color: $inverse-global-color !default; + + + +// @mixin hook-inverse-text-lead(){} +// @mixin hook-inverse-text-meta(){} diff --git a/_sass/uikit/components/thumbnav.scss b/_sass/uikit/components/thumbnav.scss new file mode 100644 index 0000000..ee551f9 --- /dev/null +++ b/_sass/uikit/components/thumbnav.scss @@ -0,0 +1,123 @@ +// Name: Thumbnav +// Description: Component to create thumbnail navigations +// +// Component: `uk-thumbnav` +// +// Modifier: `uk-thumbnav-vertical` +// +// States: `uk-active` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$thumbnav-margin-horizontal: 15px !default; +$thumbnav-margin-vertical: $thumbnav-margin-horizontal !default; + + +/* ======================================================================== + Component: Thumbnav + ========================================================================== */ + +/* + * 1. Allow items to wrap into the next line + * 2. Reset list + * 3. Gutter + */ + +.uk-thumbnav { + display: flex; + /* 1 */ + flex-wrap: wrap; + /* 2 */ + margin: 0; + padding: 0; + list-style: none; + /* 3 */ + margin-left: (-$thumbnav-margin-horizontal); + @if(mixin-exists(hook-thumbnav)) {@include hook-thumbnav();} +} + +/* + * 1. Space is allocated solely based on content dimensions: 0 0 auto + * 2. Gutter + */ + +.uk-thumbnav > * { + /* 1 */ + flex: none; + /* 2 */ + padding-left: $thumbnav-margin-horizontal; +} + + +/* Items + ========================================================================== */ + +/* + * Items + */ + +.uk-thumbnav > * > * { + display: inline-block; + @if(mixin-exists(hook-thumbnav-item)) {@include hook-thumbnav-item();} +} + +/* Hover + Focus */ +.uk-thumbnav > * > :hover, +.uk-thumbnav > * > :focus { + outline: none; + @if(mixin-exists(hook-thumbnav-item-hover)) {@include hook-thumbnav-item-hover();} +} + +/* Active */ +.uk-thumbnav > .uk-active > * { + @if(mixin-exists(hook-thumbnav-item-active)) {@include hook-thumbnav-item-active();} +} + + +/* Modifier: 'uk-thumbnav-vertical' + ========================================================================== */ + +/* + * 1. Change direction + * 2. Gutter + */ + +.uk-thumbnav-vertical { + /* 1 */ + flex-direction: column; + /* 2 */ + margin-left: 0; + margin-top: (-$thumbnav-margin-vertical); +} + +/* 2 */ +.uk-thumbnav-vertical > * { + padding-left: 0; + padding-top: $thumbnav-margin-vertical; +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-thumbnav-misc)) {@include hook-thumbnav-misc();} + +// @mixin hook-thumbnav(){} +// @mixin hook-thumbnav-item(){} +// @mixin hook-thumbnav-item-hover(){} +// @mixin hook-thumbnav-item-active(){} +// @mixin hook-thumbnav-misc(){} + + +// Inverse +// ======================================================================== + + + +// @mixin hook-inverse-thumbnav-item(){} +// @mixin hook-inverse-thumbnav-item-hover(){} +// @mixin hook-inverse-thumbnav-item-active(){} \ No newline at end of file diff --git a/_sass/uikit/components/tile.scss b/_sass/uikit/components/tile.scss new file mode 100644 index 0000000..3a364bf --- /dev/null +++ b/_sass/uikit/components/tile.scss @@ -0,0 +1,224 @@ +// Name: Tile +// Description: Component to create tiled boxes +// +// Component: `uk-tile` +// +// Modifiers: `uk-tile-xsmall` +// `uk-tile-small` +// `uk-tile-large` +// `uk-tile-xlarge` +// `uk-tile-default` +// `uk-tile-muted` +// `uk-tile-primary` +// `uk-tile-secondary` +// +// States: `uk-preserve-color` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$tile-padding-horizontal: 15px !default; +$tile-padding-horizontal-s: $global-gutter !default; +$tile-padding-horizontal-m: $global-medium-gutter !default; +$tile-padding-vertical: $global-medium-margin !default; +$tile-padding-vertical-m: $global-large-margin !default; + +$tile-xsmall-padding-vertical: $global-margin !default; + +$tile-small-padding-vertical: $global-medium-margin !default; + +$tile-large-padding-vertical: $global-large-margin !default; +$tile-large-padding-vertical-m: $global-xlarge-margin !default; + +$tile-xlarge-padding-vertical: $global-xlarge-margin !default; +$tile-xlarge-padding-vertical-m: ($global-large-margin + $global-xlarge-margin) !default; + +$tile-default-background: $global-background !default; + +$tile-muted-background: $global-muted-background !default; + +$tile-primary-background: $global-primary-background !default; +$tile-primary-color-mode: light !default; + +$tile-secondary-background: $global-secondary-background !default; +$tile-secondary-color-mode: light !default; + + +/* ======================================================================== + Component: Tile + ========================================================================== */ + +.uk-tile { + position: relative; + box-sizing: border-box; + padding-left: $tile-padding-horizontal; + padding-right: $tile-padding-horizontal; + padding-top: $tile-padding-vertical; + padding-bottom: $tile-padding-vertical; + @if(mixin-exists(hook-tile)) {@include hook-tile();} +} + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-tile { + padding-left: $tile-padding-horizontal-s; + padding-right: $tile-padding-horizontal-s; + } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-tile { + padding-left: $tile-padding-horizontal-m; + padding-right: $tile-padding-horizontal-m; + padding-top: $tile-padding-vertical-m; + padding-bottom: $tile-padding-vertical-m; + } + +} + +/* + * Micro clearfix + */ + +.uk-tile::before, +.uk-tile::after { + content: ""; + display: table; +} + +.uk-tile::after { clear: both; } + +/* + * Remove margin from the last-child + */ + +.uk-tile > :last-child { margin-bottom: 0; } + + +/* Size modifiers + ========================================================================== */ + +/* + * XSmall + */ + +.uk-tile-xsmall { + padding-top: $tile-xsmall-padding-vertical; + padding-bottom: $tile-xsmall-padding-vertical; +} + +/* + * Small + */ + +.uk-tile-small { + padding-top: $tile-small-padding-vertical; + padding-bottom: $tile-small-padding-vertical; +} + +/* + * Large + */ + +.uk-tile-large { + padding-top: $tile-large-padding-vertical; + padding-bottom: $tile-large-padding-vertical; +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-tile-large { + padding-top: $tile-large-padding-vertical-m; + padding-bottom: $tile-large-padding-vertical-m; + } + +} + + +/* + * XLarge + */ + +.uk-tile-xlarge { + padding-top: $tile-xlarge-padding-vertical; + padding-bottom: $tile-xlarge-padding-vertical; +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-tile-xlarge { + padding-top: $tile-xlarge-padding-vertical-m; + padding-bottom: $tile-xlarge-padding-vertical-m; + } + +} + + +/* Style modifiers + ========================================================================== */ + +/* + * Default + */ + +.uk-tile-default { + background: $tile-default-background; + @if(mixin-exists(hook-tile-default)) {@include hook-tile-default();} +} + +/* + * Muted + */ + +.uk-tile-muted { + background: $tile-muted-background; + @if(mixin-exists(hook-tile-muted)) {@include hook-tile-muted();} +} + +/* + * Primary + */ + +.uk-tile-primary { + background: $tile-primary-background; + @if(mixin-exists(hook-tile-primary)) {@include hook-tile-primary();} +} + +// Color Mode +@if ( $tile-primary-color-mode == light ) { .uk-tile-primary:not(.uk-preserve-color) { @extend .uk-light !optional;} } +@if ( $tile-primary-color-mode == dark ) { .uk-tile-primary:not(.uk-preserve-color) { @extend .uk-dark !optional;} } + +/* + * Secondary + */ + +.uk-tile-secondary { + background: $tile-secondary-background; + @if(mixin-exists(hook-tile-secondary)) {@include hook-tile-secondary();} +} + +// Color Mode +@if ( $tile-secondary-color-mode == light ) { .uk-tile-secondary:not(.uk-preserve-color) { @extend .uk-light !optional;} } +@if ( $tile-secondary-color-mode == dark ) { .uk-tile-secondary:not(.uk-preserve-color) { @extend .uk-dark !optional;} } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-tile-misc)) {@include hook-tile-misc();} + +// @mixin hook-tile(){} +// @mixin hook-tile-default(){} +// @mixin hook-tile-muted(){} +// @mixin hook-tile-primary(){} +// @mixin hook-tile-secondary(){} +// @mixin hook-tile-misc(){} diff --git a/_sass/uikit/components/tooltip.scss b/_sass/uikit/components/tooltip.scss new file mode 100644 index 0000000..1f8e8c8 --- /dev/null +++ b/_sass/uikit/components/tooltip.scss @@ -0,0 +1,84 @@ +// Name: Tooltip +// Description: Component to create tooltips +// +// Component: `uk-tooltip` +// +// Modifiers `uk-tooltip-top` +// `uk-tooltip-top-left` +// `uk-tooltip-top-right` +// `uk-tooltip-bottom` +// `uk-tooltip-bottom-left` +// `uk-tooltip-bottom-right` +// `uk-tooltip-left` +// `uk-tooltip-right` +// +// States: `uk-active` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$tooltip-z-index: $global-z-index + 30 !default; +$tooltip-max-width: 200px !default; +$tooltip-padding-vertical: 3px !default; +$tooltip-padding-horizontal: 6px !default; +$tooltip-background: #666 !default; +$tooltip-border-radius: 2px !default; +$tooltip-color: $global-inverse-color !default; +$tooltip-font-size: 12px !default; + +$tooltip-margin: 10px !default; + + +/* ======================================================================== + Component: Tooltip + ========================================================================== */ + +/* + * 1. Hide by default + * 2. Position + * 3. Dimensions + * 4. Style + */ + +.uk-tooltip { + /* 1 */ + display: none; + /* 2 */ + position: absolute; + z-index: $tooltip-z-index; + /* 3 */ + box-sizing: border-box; + max-width: $tooltip-max-width; + padding: $tooltip-padding-vertical $tooltip-padding-horizontal; + /* 4 */ + background: $tooltip-background; + border-radius: $tooltip-border-radius; + color: $tooltip-color; + font-size: $tooltip-font-size; + @if(mixin-exists(hook-tooltip)) {@include hook-tooltip();} +} + +/* Show */ +.uk-tooltip.uk-active { display: block; } + + +/* Direction / Alignment modifiers + ========================================================================== */ + +/* Direction */ +[class*='uk-tooltip-top'] { margin-top: (-$tooltip-margin); } +[class*='uk-tooltip-bottom'] { margin-top: $tooltip-margin; } +[class*='uk-tooltip-left'] { margin-left: (-$tooltip-margin); } +[class*='uk-tooltip-right'] { margin-left: $tooltip-margin; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-tooltip-misc)) {@include hook-tooltip-misc();} + +// @mixin hook-tooltip(){} +// @mixin hook-tooltip-misc(){} diff --git a/_sass/uikit/components/totop.scss b/_sass/uikit/components/totop.scss new file mode 100644 index 0000000..4b8aa1d --- /dev/null +++ b/_sass/uikit/components/totop.scss @@ -0,0 +1,71 @@ +// Name: Totop +// Description: Component to create an icon to scroll back to top +// +// Component: `uk-totop` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$totop-padding: 5px !default; +$totop-color: $global-muted-color !default; + +$totop-hover-color: $global-color !default; + +$totop-active-color: $global-emphasis-color !default; + + +/* ======================================================================== + Component: Totop + ========================================================================== */ + +/* + * Addopts `uk-icon` + */ + +.uk-totop { + padding: $totop-padding; + color: $totop-color; + @if(mixin-exists(hook-totop)) {@include hook-totop();} +} + +/* Hover + Focus */ +.uk-totop:hover, +.uk-totop:focus { + color: $totop-hover-color; + outline: none; + @if(mixin-exists(hook-totop-hover)) {@include hook-totop-hover();} +} + +/* OnClick */ +.uk-totop:active { + color: $totop-active-color; + @if(mixin-exists(hook-totop-active)) {@include hook-totop-active();} +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-totop-misc)) {@include hook-totop-misc();} + +// @mixin hook-totop(){} +// @mixin hook-totop-hover(){} +// @mixin hook-totop-active(){} +// @mixin hook-totop-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-totop-color: $inverse-global-muted-color !default; +$inverse-totop-hover-color: $inverse-global-color !default; +$inverse-totop-active-color: $inverse-global-emphasis-color !default; + + + +// @mixin hook-inverse-totop(){} +// @mixin hook-inverse-totop-hover(){} +// @mixin hook-inverse-totop-active(){} diff --git a/_sass/uikit/components/transition.scss b/_sass/uikit/components/transition.scss new file mode 100644 index 0000000..c999274 --- /dev/null +++ b/_sass/uikit/components/transition.scss @@ -0,0 +1,145 @@ +// Name: Transition +// Description: Utilities for transitions +// +// Component: `uk-transition-*` +// +// Modifiers: `uk-transition-fade` +// `uk-transition-scale-up` +// `uk-transition-scale-down` +// `uk-transition-slide-top-*` +// `uk-transition-slide-bottom-*` +// `uk-transition-slide-left-*` +// `uk-transition-slide-right-*` +// `uk-transition-opaque` +// `uk-transition-slow` +// +// Sub-objects: `uk-transition-toggle`, +// `uk-transition-active` +// +// States: `uk-hover` +// `uk-active` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$transition-duration: 0.3s !default; + +$transition-scale: 1.1 !default; + +$transition-slide-small-translate: 10px !default; +$transition-slide-medium-translate: 50px !default; + +$transition-slow-duration: 0.7s !default; + + +/* ======================================================================== + Component: Transition + ========================================================================== */ + +/* + * Using multiple selectors to exclude `uk-transition-toggle` + * Note: Transitions don't work with `uk-postion-center-*` classes because they also use `transform` + * Just put the transition in an extra `div` + */ + +.uk-transition-fade, +[class*='uk-transition-scale'], +[class*='uk-transition-slide'] { + transition: $transition-duration ease-out; + transition-property: opacity, transform, filter; +} + +.uk-transition-toggle:focus { outline: none; } + +/* + * Fade + */ + +.uk-transition-fade { opacity: 0; } + +/* Show */ +.uk-transition-toggle:hover [class*='uk-transition-fade'], +.uk-transition-toggle.uk-hover [class*='uk-transition-fade'], +.uk-transition-toggle:focus [class*='uk-transition-fade'], +.uk-transition-active.uk-active [class*='uk-transition-fade'] { opacity: 1; } + +/* + * Scale + * Note: Using `scale3d` for better image rendering + */ + +[class*='uk-transition-scale'] { opacity: 0; } + +.uk-transition-scale-up { transform: scale3d(1,1,1); } + +.uk-transition-scale-down { transform: scale3d($transition-scale,$transition-scale,1); } + +/* Show */ +.uk-transition-toggle:hover .uk-transition-scale-up, +.uk-transition-toggle.uk-hover .uk-transition-scale-up, +.uk-transition-toggle:focus .uk-transition-scale-up, +.uk-transition-active.uk-active .uk-transition-scale-up { + opacity: 1; + transform: scale3d($transition-scale,$transition-scale,1); +} + +.uk-transition-toggle:hover .uk-transition-scale-down, +.uk-transition-toggle.uk-hover .uk-transition-scale-down, +.uk-transition-toggle:focus .uk-transition-scale-down, +.uk-transition-active.uk-active .uk-transition-scale-down { + opacity: 1; + transform: scale3d(1,1,1); +} + +/* + * Slide + */ + +[class*='uk-transition-slide'] { opacity: 0; } + +.uk-transition-slide-top { transform: translateY(-100%); } +.uk-transition-slide-bottom { transform: translateY(100%); } +.uk-transition-slide-left { transform: translateX(-100%); } +.uk-transition-slide-right { transform: translateX(100%); } + +.uk-transition-slide-top-small { transform: translateY(-$transition-slide-small-translate); } +.uk-transition-slide-bottom-small { transform: translateY($transition-slide-small-translate); } +.uk-transition-slide-left-small { transform: translateX(-$transition-slide-small-translate); } +.uk-transition-slide-right-small { transform: translateX($transition-slide-small-translate); } + +.uk-transition-slide-top-medium { transform: translateY(-$transition-slide-medium-translate); } +.uk-transition-slide-bottom-medium { transform: translateY($transition-slide-medium-translate); } +.uk-transition-slide-left-medium { transform: translateX(-$transition-slide-medium-translate); } +.uk-transition-slide-right-medium { transform: translateX($transition-slide-medium-translate); } + +/* Show */ +.uk-transition-toggle:hover [class*='uk-transition-slide'], +.uk-transition-toggle.uk-hover [class*='uk-transition-slide'], +.uk-transition-toggle:focus [class*='uk-transition-slide'], +.uk-transition-active.uk-active [class*='uk-transition-slide'] { + opacity: 1; + transform: translateX(0) translateY(0); +} + + +/* Opacity modifier +========================================================================== */ + +.uk-transition-opaque { opacity: 1; } + + +/* Duration modifiers +========================================================================== */ + +.uk-transition-slow { transition-duration: $transition-slow-duration; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-transition-misc)) {@include hook-transition-misc();} + +// @mixin hook-transition-misc(){} diff --git a/_sass/uikit/components/utility.scss b/_sass/uikit/components/utility.scss new file mode 100644 index 0000000..d160e21 --- /dev/null +++ b/_sass/uikit/components/utility.scss @@ -0,0 +1,571 @@ +// Name: Utility +// Description: Utilities collection +// +// Component: `uk-panel-*` +// `uk-clearfix` +// `uk-float-*` +// `uk-overflow-*` +// `uk-resize-*` +// `uk-display-*` +// `uk-inline-*` +// `uk-height-*` +// `uk-responsive-*` +// `uk-preserve-width` +// `uk-border-*` +// `uk-box-shadow-*` +// `uk-box-shadow-bottom` +// `uk-dropcap` +// `uk-leader` +// `uk-logo` +// `uk-svg` +// `uk-blend-*` +// `uk-transform-*` +// `uk-transform-origin-*` +// +// States: `uk-disabled` +// `uk-drag` +// `uk-dragover` +// `uk-preserve` +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$panel-scrollable-height: 170px !default; +$panel-scrollable-padding: 10px !default; +$panel-scrollable-border-width: $global-border-width !default; +$panel-scrollable-border: $global-border !default; + +$height-small-height: 150px !default; +$height-medium-height: 300px !default; +$height-large-height: 450px !default; + +$border-rounded-border-radius: 5px !default; + +$box-shadow-duration: 0.1s !default; + +$box-shadow-bottom-height: 30px !default; +$box-shadow-bottom-border-radius: 100% !default; +$box-shadow-bottom-background: #444 !default; +$box-shadow-bottom-blur: 20px !default; + +$dropcap-margin-right: 10px !default; +$dropcap-font-size: (($global-line-height * 3) * 1em) !default; + +$leader-fill-content: '.' !default; +$leader-fill-margin-left: $global-small-gutter !default; + +$logo-font-size: $global-large-font-size !default; +$logo-font-family: $global-font-family !default; +$logo-color: $global-color !default; +$logo-hover-color: $global-color !default; + +$dragover-box-shadow: 0 0 20px rgba(100,100,100,0.3) !default; + + +/* ======================================================================== + Component: Utility + ========================================================================== */ + + +/* Panel + ========================================================================== */ + +.uk-panel { + position: relative; + box-sizing: border-box; +} + +/* + * Micro clearfix + */ + +.uk-panel::before, +.uk-panel::after { + content: ""; + display: table; +} + +.uk-panel::after { clear: both; } + +/* + * Remove margin from the last-child + */ + +.uk-panel > :last-child { margin-bottom: 0; } + + +/* + * Scrollable + */ + +.uk-panel-scrollable { + height: $panel-scrollable-height; + padding: $panel-scrollable-padding; + border: $panel-scrollable-border-width solid $panel-scrollable-border; + overflow: auto; + -webkit-overflow-scrolling: touch; + resize: both; + @if(mixin-exists(hook-panel-scrollable)) {@include hook-panel-scrollable();} +} + + +/* Clearfix + ========================================================================== */ + +/* + * 1. `table-cell` is used with `::before` because `table` creates a 1px gap when it becomes a flex item, only in Webkit + * 2. `table` is used again with `::after` because `clear` only works with block elements. + * Note: `display: block` with `overflow: hidden` is currently not working in the latest Safari + */ + +/* 1 */ +.uk-clearfix::before { + content: ""; + display: table-cell; +} + +/* 2 */ +.uk-clearfix::after { + content: ""; + display: table; + clear: both; +} + + +/* Float + ========================================================================== */ + +/* + * 1. Prevent content overflow + */ + +.uk-float-left { float: left; } +.uk-float-right { float: right; } + +/* 1 */ +[class*='uk-float-'] { max-width: 100%; } + + +/* Overfow + ========================================================================== */ + +.uk-overflow-hidden { overflow: hidden; } + +/* + * Enable scrollbars if content is clipped + * Note: Firefox ignores `padding-bottom` for the scrollable overflow https://bugzilla.mozilla.org/show_bug.cgi?id=748518 + */ + +.uk-overflow-auto { + overflow: auto; + -webkit-overflow-scrolling: touch; +} + +.uk-overflow-auto > :last-child { margin-bottom: 0; } + + +/* Resize + ========================================================================== */ + +.uk-resize { resize: both; } +.uk-resize-vertical { resize: vertical; } + + +/* Display + ========================================================================== */ + +.uk-display-block { display: block !important; } +.uk-display-inline { display: inline !important; } +.uk-display-inline-block { display: inline-block !important; } + + +/* Inline + ========================================================================== */ + +/* + * 1. Container fits its content + * 2. Create position context + * 3. Prevent content overflow + * 4. Behave like most inline-block elements + * 5. Force hardware acceleration without creating a new stacking context + * to fix 1px glitch when combined with overlays and transitions in Webkit + * 6. Clip child elements + */ + +[class*='uk-inline'] { + /* 1 */ + display: inline-block; + /* 2 */ + position: relative; + /* 3 */ + max-width: 100%; + /* 4 */ + vertical-align: middle; + /* 5 */ + -webkit-backface-visibility: hidden; +} + +.uk-inline-clip { + /* 6 */ + overflow: hidden; +} + + +/* Height + ========================================================================== */ + +[class*='uk-height'] { box-sizing: border-box; } + +/* + * Only works if parent element has a height set + */ + +.uk-height-1-1 { height: 100%; } + +/* + * Useful to create image teasers + */ + +.uk-height-viewport { min-height: 100vh; } + +/* + * Pixel + * Useful for `overflow: auto` + */ + +.uk-height-small { height: $height-small-height; } +.uk-height-medium { height: $height-medium-height; } +.uk-height-large { height: $height-large-height; } + +.uk-height-max-small { max-height: $height-small-height; } +.uk-height-max-medium { max-height: $height-medium-height; } +.uk-height-max-large { max-height: $height-large-height; } + + +/* Responsive objects + ========================================================================== */ + +/* + * Preserve original dimensions + * Because `img, `video`, `canvas` and `audio` are already responsive by default, see Base component + */ + +.uk-preserve-width, +.uk-preserve-width audio, +.uk-preserve-width canvas, +.uk-preserve-width img, +.uk-preserve-width svg, +.uk-preserve-width video { max-width: none; } + +/* + * Responsiveness + * Corrects `max-width` and `max-height` behavior if padding and border are used + */ + +.uk-responsive-width, +.uk-responsive-height { box-sizing: border-box; } + +/* + * 1. Set a maximum width. `important` needed to override `uk-preserve-width img` + * 2. Auto scale the height. Only needed if `height` attribute is present + */ + +.uk-responsive-width { + /* 1 */ + max-width: 100% !important; + /* 2 */ + height: auto; +} + +/* + * 1. Set a maximum height. Only works if the parent element has a fixed height + * 2. Auto scale the width. Only needed if `width` attribute is present + * 3. Reset max-width, which `img, `video`, `canvas` and `audio` already have by default + */ + +.uk-responsive-height { + /* 1 */ + max-height: 100%; + /* 2 */ + width: auto; + /* 3 */ + max-width: none; +} + + +/* Border + ========================================================================== */ + +.uk-border-circle { border-radius: 50%; } +.uk-border-rounded { border-radius: $border-rounded-border-radius; } + +/* + * Fix `overflow: hidden` to be ignored with border-radius and CSS transforms in Webkit + */ + +.uk-inline-clip[class*='uk-border-'] { -webkit-transform: translateZ(0); } + + +/* Box-shadow + ========================================================================== */ + +.uk-box-shadow-small { box-shadow: $global-small-box-shadow; } +.uk-box-shadow-medium { box-shadow: $global-medium-box-shadow; } +.uk-box-shadow-large { box-shadow: $global-large-box-shadow; } +.uk-box-shadow-xlarge { box-shadow: $global-xlarge-box-shadow; } + +/* + * Hover + */ + +[class*='uk-box-shadow-hover'] { transition: box-shadow $box-shadow-duration ease-in-out; } + +.uk-box-shadow-hover-small:hover { box-shadow: $global-small-box-shadow; } +.uk-box-shadow-hover-medium:hover { box-shadow: $global-medium-box-shadow; } +.uk-box-shadow-hover-large:hover { box-shadow: $global-large-box-shadow; } +.uk-box-shadow-hover-xlarge:hover { box-shadow: $global-xlarge-box-shadow; } + + +/* Box-shadow bottom + ========================================================================== */ + +/* + * 1. Set position. + * 2. Set style + * 3. Blur doesn't work on pseudo elements with negative `z-index` in Edge. + * Solved by using `before` and add position context to child elements. + */ + +@supports (filter: blur(0)) { + + .uk-box-shadow-bottom { + display: inline-block; + position: relative; + max-width: 100%; + vertical-align: middle; + } + + .uk-box-shadow-bottom::before { + content: ''; + /* 1 */ + position: absolute; + bottom: (-$box-shadow-bottom-height); + left: 0; + right: 0; + /* 2 */ + height: $box-shadow-bottom-height; + border-radius: $box-shadow-bottom-border-radius; + background: $box-shadow-bottom-background; + filter: blur($box-shadow-bottom-blur); + @if(mixin-exists(hook-box-shadow-bottom)) {@include hook-box-shadow-bottom();} + } + + /* 3 */ + .uk-box-shadow-bottom > * { position: relative; } + +} + + +/* Drop cap + ========================================================================== */ + +.uk-dropcap::first-letter, +.uk-dropcap > p:first-of-type::first-letter { + display: block; + margin-right: $dropcap-margin-right; + float: left; + font-size: $dropcap-font-size; + line-height: 1; + @if(mixin-exists(hook-dropcap)) {@include hook-dropcap();} +} + + +/* Leader + ========================================================================== */ + +.uk-leader { overflow: hidden; } + +/* + * 1. Place element in text flow + * 2. Never break into a new line + * 3. Get a string back with as many repeating characters to fill the container + * 4. Prevent wrapping. Overflowing characters will be clipped by the container + */ + +.uk-leader-fill::after { + /* 1 */ + display: inline-block; + margin-left: $leader-fill-margin-left; + /* 2 */ + width: 0; + /* 3 */ + content: attr(data-fill); + /* 4 */ + white-space: nowrap; + @if(mixin-exists(hook-leader)) {@include hook-leader();} +} + +/* + * Hide if media does not match + */ + +.uk-leader-fill.uk-leader-hide::after { display: none; } + +/* Pass fill character to JS */ +.var-leader-fill:before { content: $leader-fill-content; } + + +/* Logo + ========================================================================== */ + +/* + * 1. Required for `a` + */ + +.uk-logo { + max-width: 150px; + font-size: $logo-font-size; + font-family: $logo-font-family; + color: $logo-color; + /* 1 */ + text-decoration: none; + @if(mixin-exists(hook-logo)) {@include hook-logo();} +} + +/* Hover + Focus */ +.uk-logo:hover, +.uk-logo:focus { + color: $logo-hover-color; + outline: none; + /* 1 */ + text-decoration: none; + @if(mixin-exists(hook-logo-hover)) {@include hook-logo-hover();} +} + +.uk-logo-inverse { display: none; } + + +/* SVG + ========================================================================== */ + +/* + * 1. Fill all SVG elements with the current text color if no `fill` attribute is set + * 2. Set the fill and stroke color of all SVG elements to the current text color + * 3. Fix for uppercase attribute names in Edge. Will be fixed in Windows 10 builds 16251+ + */ + +/* 1 */ +.uk-svg, +/* 2 */ +.uk-svg:not(.uk-preserve) [fill*='#']:not(.uk-preserve), +.uk-svg:not(.uk-preserve) [FILL*='#']:not(.uk-preserve) { fill: currentcolor; } // 3 +.uk-svg:not(.uk-preserve) [stroke*='#']:not(.uk-preserve), +.uk-svg:not(.uk-preserve) [STROKE*='#']:not(.uk-preserve) { stroke: currentcolor; } // 3 + +/* + * Fix Firefox blurry SVG rendering: https://bugzilla.mozilla.org/show_bug.cgi?id=1046835 + */ + +.uk-svg { transform: translate(0,0); } + + +/* Disabled State + ========================================================================== */ + +.uk-disabled { pointer-events: none; } + + +/* Drag State + ========================================================================== */ + +/* + * 1. Needed if moving over elements with have their own cursor on hover, e.g. links or buttons + * 2. Fix dragging over iframes + */ + +.uk-drag, +/* 1 */ +.uk-drag * { cursor: move; } + +/* 2 */ +.uk-drag iframe { pointer-events: none; } + + +/* Dragover State + ========================================================================== */ + +/* + * Create a box-shadow when dragging a file over the upload area + */ + +.uk-dragover { box-shadow: $dragover-box-shadow; } + + +/* Blend modes + ========================================================================== */ + +.uk-blend-multiply { mix-blend-mode: multiply; } +.uk-blend-screen { mix-blend-mode: screen; } +.uk-blend-overlay { mix-blend-mode: overlay; } +.uk-blend-darken { mix-blend-mode: darken; } +.uk-blend-lighten { mix-blend-mode: lighten; } +.uk-blend-color-dodge { mix-blend-mode: color-dodge; } +.uk-blend-color-burn { mix-blend-mode: color-burn; } +.uk-blend-hard-light { mix-blend-mode: hard-light; } +.uk-blend-soft-light { mix-blend-mode: soft-light; } +.uk-blend-difference { mix-blend-mode: difference; } +.uk-blend-exclusion { mix-blend-mode: exclusion; } +.uk-blend-hue { mix-blend-mode: hue; } +.uk-blend-saturation { mix-blend-mode: saturation; } +.uk-blend-color { mix-blend-mode: color; } +.uk-blend-luminosity { mix-blend-mode: luminosity; } + + +/* Transform +========================================================================== */ + +.uk-transform-center { transform: translate(-50%, -50%); } + + +/* Transform Origin +========================================================================== */ + +.uk-transform-origin-top-left { transform-origin: 0 0; } +.uk-transform-origin-top-center { transform-origin: 50% 0; } +.uk-transform-origin-top-right { transform-origin: 100% 0; } +.uk-transform-origin-center-left { transform-origin: 0 50%; } +.uk-transform-origin-center-right { transform-origin: 100% 50%; } +.uk-transform-origin-bottom-left { transform-origin: 0 100%; } +.uk-transform-origin-bottom-center { transform-origin: 50% 100%; } +.uk-transform-origin-bottom-right { transform-origin: 100% 100%; } + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-utility-misc)) {@include hook-utility-misc();} + +// @mixin hook-panel-scrollable(){} +// @mixin hook-box-shadow-bottom(){} +// @mixin hook-dropcap(){} +// @mixin hook-leader(){} +// @mixin hook-logo(){} +// @mixin hook-logo-hover(){} +// @mixin hook-utility-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-logo-color: $inverse-global-color !default; +$inverse-logo-hover-color: $inverse-global-color !default; + + + +// @mixin hook-inverse-dropcap(){} +// @mixin hook-inverse-leader(){} +// @mixin hook-inverse-logo(){} +// @mixin hook-inverse-logo-hover(){} diff --git a/_sass/uikit/components/variables.scss b/_sass/uikit/components/variables.scss new file mode 100644 index 0000000..4807857 --- /dev/null +++ b/_sass/uikit/components/variables.scss @@ -0,0 +1,117 @@ +// +// Component: Variables +// Description: Defines common values which are used across all components +// +// ======================================================================== + + +// Breakpoints +// ======================================================================== + +// Phone Portrait: Galaxy (360x640), iPhone 6 (375x667), iPhone 6+ (414x736) +// Phone Landscape: Galaxy (640x360), iPhone 6 (667x375), iPhone 6+ (736x414) +// Tablet Portrait: iPad (768x1024), Galaxy Tab (800x1280), +// Tablet Landscape: iPad (1024x768), iPad Pro (1024x1366), +// Desktop: Galaxy Tab (1280x800), iPad Pro (1366x1024) + +$breakpoint-small: 640px !default; // Phone landscape +$breakpoint-medium: 960px !default; // Tablet Landscape +$breakpoint-large: 1200px !default; // Desktop +$breakpoint-xlarge: 1600px !default; // Large Screens + +$breakpoint-xsmall-max: ($breakpoint-small - 1) !default; +$breakpoint-small-max: ($breakpoint-medium - 1) !default; +$breakpoint-medium-max: ($breakpoint-large - 1) !default; +$breakpoint-large-max: ($breakpoint-xlarge - 1) !default; + + +// Global variables +// ======================================================================== + +// +// Typography +// + +$global-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !default; +$global-font-size: 16px !default; +$global-line-height: 1.5 !default; // 24px + +$global-xxlarge-font-size: 2.625rem !default; // 42px +$global-xlarge-font-size: 2rem !default; // 32px +$global-large-font-size: 1.5rem !default; // 24px +$global-medium-font-size: 1.25rem !default; // 20px +$global-small-font-size: 0.875rem !default; // 14px + +// +// Colors +// + +$global-color: #666 !default; +$global-emphasis-color: #000000 !default; +$global-muted-color: #999 !default; + +$global-link-color: #1e87f0 !default; +$global-link-hover-color: #0f6ecd !default; + +$global-inverse-color: #fff !default; + +// +// Backgrounds +// + +$global-background: #fff !default; + +$global-muted-background: #f8f8f8 !default; +$global-primary-background: #1e87f0 !default; +$global-secondary-background: #222 !default; + +$global-success-background: #32d296 !default; +$global-warning-background: #faa05a !default; +$global-danger-background: #f0506e !default; + +// +// Borders +// + +$global-border-width: 1px !default; +$global-border: #e5e5e5 !default; + +// +// Box-Shadows +// + +$global-small-box-shadow: 0 2px 8px rgba(0,0,0,0.08) !default; +$global-medium-box-shadow: 0 5px 15px rgba(0,0,0,0.08) !default; +$global-large-box-shadow: 0 14px 25px rgba(0,0,0,0.16) !default; +$global-xlarge-box-shadow: 0 28px 50px rgba(0,0,0,0.16) !default; + +// +// Spacings +// + +// Used in margin, section, list +$global-margin: 20px !default; +$global-small-margin: 10px !default; +$global-medium-margin: 40px !default; +$global-large-margin: 70px !default; +$global-xlarge-margin: 140px !default; + +// Used in grid, column, container, align, card, padding +$global-gutter: 30px !default; +$global-small-gutter: 15px !default; +$global-medium-gutter: 40px !default; +$global-large-gutter: 70px !default; + +// +// Controls +// + +$global-control-height: 40px !default; +$global-control-small-height: 30px !default; +$global-control-large-height: 55px !default; + +// +// Z-index +// + +$global-z-index: 1000 !default; \ No newline at end of file diff --git a/_sass/uikit/components/visibility.scss b/_sass/uikit/components/visibility.scss new file mode 100644 index 0000000..ee800a1 --- /dev/null +++ b/_sass/uikit/components/visibility.scss @@ -0,0 +1,151 @@ +// Name: Visibility +// Description: Utilities to show or hide content on breakpoints, hover or touch +// +// Component: `uk-hidden-*` +// `uk-visible-*` +// `uk-invisible` +// `uk-visible-toggle` +// `uk-hidden-hover` +// `uk-invisible-hover` +// `uk-hidden-touch` +// `uk-hidden-notouch` +// +// ======================================================================== + + +/* ======================================================================== + Component: Visibility + ========================================================================== */ + +/* + * Hidden + * `hidden` attribute also set here to make it stronger + */ + +[hidden], +.uk-hidden { display: none !important; } + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-hidden\@s { display: none !important; } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-hidden\@m { display: none !important; } + +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-hidden\@l { display: none !important; } + +} + +/* Large screen and bigger */ +@media (min-width: $breakpoint-xlarge) { + + .uk-hidden\@xl { display: none !important; } + +} + +/* + * Visible + */ + +/* Phone portrait and smaller */ +@media (max-width: $breakpoint-xsmall-max) { + + .uk-visible\@s { display: none !important; } + +} + +/* Phone landscape and smaller */ +@media (max-width: $breakpoint-small-max) { + + .uk-visible\@m { display: none !important; } + +} + +/* Tablet landscape and smaller */ +@media (max-width: $breakpoint-medium-max) { + + .uk-visible\@l { display: none !important; } + +} + +/* Desktop and smaller */ +@media (max-width: $breakpoint-large-max) { + + .uk-visible\@xl { display: none !important; } + +} + + +/* Visibility + ========================================================================== */ + +.uk-invisible { visibility: hidden !important; } + + +/* Hover + ========================================================================== */ + +/* + * Hidden + * Can't use `display: hidden` because it's not focusable. This is accessible through keyboard. + */ + +.uk-visible-toggle:not(:hover):not(.uk-hover) .uk-hidden-hover:not(:focus) { + position: absolute !important; + width: 0 !important; + height: 0 !important; + padding: 0 !important; + margin: 0 !important; + overflow: hidden !important; +} + +/* + * Invisible + * Can't use `visibility: hidden` because it's not focusable. This is accessible through keyboard. + */ + +.uk-visible-toggle:not(:hover):not(.uk-hover) .uk-invisible-hover:not(:focus) { opacity: 0 !important; } + + +/* Touch + ========================================================================== */ + +/* + * Hide if primary pointing device has limited accuracy, e.g. a touch screen. + * Works on mobile browsers: Safari, Chrome and Android browser + */ + +@media (pointer: coarse) { + .uk-hidden-touch { display: none !important; } +} + +/* + * Hide if primary pointing device is accurate, e.g. mouse. + * 1. Fallback for IE11 and Firefox, because `pointer` is not supported + * 2. Reset if supported + */ + +/* 1 */ +.uk-hidden-notouch { display: none !important; } + +@media (pointer: coarse) { + .uk-hidden-notouch { display: block !important; } +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-visibility-misc)) {@include hook-visibility-misc();} + +// @mixin hook-visibility-misc(){} diff --git a/_sass/uikit/components/width.scss b/_sass/uikit/components/width.scss new file mode 100644 index 0000000..7f4a2cb --- /dev/null +++ b/_sass/uikit/components/width.scss @@ -0,0 +1,398 @@ +// Name: Width +// Description: Utilities for widths +// +// Component: `uk-child-width-*` +// `uk-width-*` +// +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$width-small-width: 150px !default; +$width-medium-width: 300px !default; +$width-large-width: 450px !default; +$width-xlarge-width: 600px !default; +$width-xxlarge-width: 750px !default; + + +/* ======================================================================== + Component: Width + ========================================================================== */ + + +/* Equal child widths + ========================================================================== */ + +[class*='uk-child-width'] > * { + box-sizing: border-box; + width: 100%; +} + +.uk-child-width-1-2 > * { width: 50%; } +.uk-child-width-1-3 > * { width: unquote('calc(100% * 1 / 3.001)'); } +.uk-child-width-1-4 > * { width: 25%; } +.uk-child-width-1-5 > * { width: 20%; } +.uk-child-width-1-6 > * { width: unquote('calc(100% * 1 / 6.001)'); } + +.uk-child-width-auto > * { width: auto; } + +/* + * Instead of 0, 1px is needed to make cell wrap into next row if predecessor is 100% wide + * and the grid gutter is 0 pixels wide + */ + +.uk-child-width-expand > * { width: 1px; } + +/* + * 1. Make `width: 1px` work, because according to the spec flex items won’t shrink + * below their minimum content size. To change this, set the min-width. + * Only needed for Firefox. All other browsers ignore this. + * + * 2. `width` is ignored when wrapping flex items in Safari + * https://github.com/philipwalton/flexbugs#11-min-and-max-size-declarations-are-ignored-when-wrapping-flex-items + */ + +.uk-child-width-expand > :not([class*='uk-width']) { + flex: 1; + /* 1 */ + min-width: 0; + /* 2 */ + flex-basis: 1px; +} + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + .uk-child-width-1-1\@s > * { width: 100%; } + .uk-child-width-1-2\@s > * { width: 50%; } + .uk-child-width-1-3\@s > * { width: unquote('calc(100% * 1 / 3.001)'); } + .uk-child-width-1-4\@s > * { width: 25%; } + .uk-child-width-1-5\@s > * { width: 20%; } + .uk-child-width-1-6\@s > * { width: unquote('calc(100% * 1 / 6.001)'); } + + .uk-child-width-auto\@s > * { width: auto; } + .uk-child-width-expand\@s > * { width: 1px; } + + .uk-child-width-expand\@s > :not([class*='uk-width']) { + flex: 1; + min-width: 0; + flex-basis: 1px; + } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + .uk-child-width-1-1\@m > * { width: 100%; } + .uk-child-width-1-2\@m > * { width: 50%; } + .uk-child-width-1-3\@m > * { width: unquote('calc(100% * 1 / 3.001)'); } + .uk-child-width-1-4\@m > * { width: 25%; } + .uk-child-width-1-5\@m > * { width: 20%; } + .uk-child-width-1-6\@m > * { width: unquote('calc(100% * 1 / 6.001)'); } + + .uk-child-width-auto\@m > * { width: auto; } + .uk-child-width-expand\@m > * { width: 1px; } + + .uk-child-width-expand\@m > :not([class*='uk-width']) { + flex: 1; + min-width: 0; + flex-basis: 1px; + } + +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + .uk-child-width-1-1\@l > * { width: 100%; } + .uk-child-width-1-2\@l > * { width: 50%; } + .uk-child-width-1-3\@l > * { width: unquote('calc(100% * 1 / 3.001)'); } + .uk-child-width-1-4\@l > * { width: 25%; } + .uk-child-width-1-5\@l > * { width: 20%; } + .uk-child-width-1-6\@l > * { width: unquote('calc(100% * 1 / 6.001)'); } + + .uk-child-width-auto\@l > * { width: auto; } + .uk-child-width-expand\@l > * { width: 1px; } + + .uk-child-width-expand\@l > :not([class*='uk-width']) { + flex: 1; + min-width: 0; + flex-basis: 1px; + } + +} + +/* Large screen and bigger */ +@media (min-width: $breakpoint-xlarge) { + + .uk-child-width-1-1\@xl > * { width: 100%; } + .uk-child-width-1-2\@xl > * { width: 50%; } + .uk-child-width-1-3\@xl > * { width: unquote('calc(100% * 1 / 3.001)'); } + .uk-child-width-1-4\@xl > * { width: 25%; } + .uk-child-width-1-5\@xl > * { width: 20%; } + .uk-child-width-1-6\@xl > * { width: unquote('calc(100% * 1 / 6.001)'); } + + .uk-child-width-auto\@xl > * { width: auto; } + .uk-child-width-expand\@xl > * { width: 1px; } + + .uk-child-width-expand\@xl > :not([class*='uk-width']) { + flex: 1; + min-width: 0; + flex-basis: 1px; + } + +} + + +/* Single Widths + ========================================================================== */ + +/* + * 1. `max-width` is needed for the pixel-based classes + */ + +[class*='uk-width'] { + box-sizing: border-box; + width: 100%; + /* 1 */ + max-width: 100%; +} + +/* Halves */ +.uk-width-1-2 { width: 50%; } + +/* Thirds */ +.uk-width-1-3 { width: unquote('calc(100% * 1 / 3.001)'); } +.uk-width-2-3 { width: unquote('calc(100% * 2 / 3.001)'); } + +/* Quarters */ +.uk-width-1-4 { width: 25%; } +.uk-width-3-4 { width: 75%; } + +/* Fifths */ +.uk-width-1-5 { width: 20%; } +.uk-width-2-5 { width: 40%; } +.uk-width-3-5 { width: 60%; } +.uk-width-4-5 { width: 80%; } + +/* Sixths */ +.uk-width-1-6 { width: unquote('calc(100% * 1 / 6.001)'); } +.uk-width-5-6 { width: unquote('calc(100% * 5 / 6.001)'); } + +/* Pixel */ +.uk-width-small { width: $width-small-width; } +.uk-width-medium { width: $width-medium-width; } +.uk-width-large { width: $width-large-width; } +.uk-width-xlarge { width: $width-xlarge-width; } +.uk-width-xxlarge { width: $width-xxlarge-width; } + +/* Auto */ +.uk-width-auto { width: auto; } + +/* Expand */ +.uk-width-expand { + width: 1px; + flex: 1; + min-width: 0; + flex-basis: 1px; +} + +/* Phone landscape and bigger */ +@media (min-width: $breakpoint-small) { + + /* Whole */ + .uk-width-1-1\@s { width: 100%; } + + /* Halves */ + .uk-width-1-2\@s { width: 50%; } + + /* Thirds */ + .uk-width-1-3\@s { width: unquote('calc(100% * 1 / 3.001)'); } + .uk-width-2-3\@s { width: unquote('calc(100% * 2 / 3.001)'); } + + /* Quarters */ + .uk-width-1-4\@s { width: 25%; } + .uk-width-3-4\@s { width: 75%; } + + /* Fifths */ + .uk-width-1-5\@s { width: 20%; } + .uk-width-2-5\@s { width: 40%; } + .uk-width-3-5\@s { width: 60%; } + .uk-width-4-5\@s { width: 80%; } + + /* Sixths */ + .uk-width-1-6\@s { width: unquote('calc(100% * 1 / 6.001)'); } + .uk-width-5-6\@s { width: unquote('calc(100% * 5 / 6.001)'); } + + /* Pixel */ + .uk-width-small\@s { width: $width-small-width; } + .uk-width-medium\@s { width: $width-medium-width; } + .uk-width-large\@s { width: $width-large-width; } + .uk-width-xlarge\@s { width: $width-xlarge-width; } + .uk-width-xxlarge\@s { width: $width-xxlarge-width; } + + /* Auto */ + .uk-width-auto\@s { width: auto; } + + /* Expand */ + .uk-width-expand\@s { + width: 1px; + flex: 1; + min-width: 0; + flex-basis: 1px; + } + +} + +/* Tablet landscape and bigger */ +@media (min-width: $breakpoint-medium) { + + /* Whole */ + .uk-width-1-1\@m { width: 100%; } + + /* Halves */ + .uk-width-1-2\@m { width: 50%; } + + /* Thirds */ + .uk-width-1-3\@m { width: unquote('calc(100% * 1 / 3.001)'); } + .uk-width-2-3\@m { width: unquote('calc(100% * 2 / 3.001)'); } + + /* Quarters */ + .uk-width-1-4\@m { width: 25%; } + .uk-width-3-4\@m { width: 75%; } + + /* Fifths */ + .uk-width-1-5\@m { width: 20%; } + .uk-width-2-5\@m { width: 40%; } + .uk-width-3-5\@m { width: 60%; } + .uk-width-4-5\@m { width: 80%; } + + /* Sixths */ + .uk-width-1-6\@m { width: unquote('calc(100% * 1 / 6.001)'); } + .uk-width-5-6\@m { width: unquote('calc(100% * 5 / 6.001)'); } + + /* Pixel */ + .uk-width-small\@m { width: $width-small-width; } + .uk-width-medium\@m { width: $width-medium-width; } + .uk-width-large\@m { width: $width-large-width; } + .uk-width-xlarge\@m { width: $width-xlarge-width; } + .uk-width-xxlarge\@m { width: $width-xxlarge-width; } + + /* Auto */ + .uk-width-auto\@m { width: auto; } + + /* Expand */ + .uk-width-expand\@m { + width: 1px; + flex: 1; + min-width: 0; + flex-basis: 1px; + } + +} + +/* Desktop and bigger */ +@media (min-width: $breakpoint-large) { + + /* Whole */ + .uk-width-1-1\@l { width: 100%; } + + /* Halves */ + .uk-width-1-2\@l { width: 50%; } + + /* Thirds */ + .uk-width-1-3\@l { width: unquote('calc(100% * 1 / 3.001)'); } + .uk-width-2-3\@l { width: unquote('calc(100% * 2 / 3.001)'); } + + /* Quarters */ + .uk-width-1-4\@l { width: 25%; } + .uk-width-3-4\@l { width: 75%; } + + /* Fifths */ + .uk-width-1-5\@l { width: 20%; } + .uk-width-2-5\@l { width: 40%; } + .uk-width-3-5\@l { width: 60%; } + .uk-width-4-5\@l { width: 80%; } + + /* Sixths */ + .uk-width-1-6\@l { width: unquote('calc(100% * 1 / 6.001)'); } + .uk-width-5-6\@l { width: unquote('calc(100% * 5 / 6.001)'); } + + /* Pixel */ + .uk-width-small\@l { width: $width-small-width; } + .uk-width-medium\@l { width: $width-medium-width; } + .uk-width-large\@l { width: $width-large-width; } + .uk-width-xlarge\@l { width: $width-xlarge-width; } + .uk-width-xxlarge\@l { width: $width-xxlarge-width; } + + /* Auto */ + .uk-width-auto\@l { width: auto; } + + /* Expand */ + .uk-width-expand\@l { + width: 1px; + flex: 1; + min-width: 0; + flex-basis: 1px; + } + +} + +/* Large screen and bigger */ +@media (min-width: $breakpoint-xlarge) { + + /* Whole */ + .uk-width-1-1\@xl { width: 100%; } + + /* Halves */ + .uk-width-1-2\@xl { width: 50%; } + + /* Thirds */ + .uk-width-1-3\@xl { width: unquote('calc(100% * 1 / 3.001)'); } + .uk-width-2-3\@xl { width: unquote('calc(100% * 2 / 3.001)'); } + + /* Quarters */ + .uk-width-1-4\@xl { width: 25%; } + .uk-width-3-4\@xl { width: 75%; } + + /* Fifths */ + .uk-width-1-5\@xl { width: 20%; } + .uk-width-2-5\@xl { width: 40%; } + .uk-width-3-5\@xl { width: 60%; } + .uk-width-4-5\@xl { width: 80%; } + + /* Sixths */ + .uk-width-1-6\@xl { width: unquote('calc(100% * 1 / 6.001)'); } + .uk-width-5-6\@xl { width: unquote('calc(100% * 5 / 6.001)'); } + + /* Pixel */ + .uk-width-small\@xl { width: $width-small-width; } + .uk-width-medium\@xl { width: $width-medium-width; } + .uk-width-large\@xl { width: $width-large-width; } + .uk-width-xlarge\@xl { width: $width-xlarge-width; } + .uk-width-xxlarge\@xl { width: $width-xxlarge-width; } + + /* Auto */ + .uk-width-auto\@xl { width: auto; } + + /* Expand */ + .uk-width-expand\@xl { + width: 1px; + flex: 1; + min-width: 0; + flex-basis: 1px; + } + +} + + +// Hooks +// ======================================================================== + +@if(mixin-exists(hook-width-misc)) {@include hook-width-misc();} + +// @mixin hook-width-misc(){} diff --git a/_sass/uikit/mixins-theme.scss b/_sass/uikit/mixins-theme.scss new file mode 100644 index 0000000..993cf20 --- /dev/null +++ b/_sass/uikit/mixins-theme.scss @@ -0,0 +1,2033 @@ +@mixin hook-accordion(){} +@mixin hook-accordion-item(){} +@mixin hook-accordion-title(){ + + overflow: hidden; + + &::after { + content: ""; + width: ($accordion-title-line-height * 1em); + height: ($accordion-title-line-height * 1em); + float: right; + @include svg-fill($internal-accordion-close-image, "#000", $accordion-icon-color); + background-repeat: no-repeat; + background-position: 50% 50%; + } + + .uk-open > &::after { @include svg-fill($internal-accordion-open-image, "#000", $accordion-icon-color); } + +} +@mixin hook-accordion-title-hover(){} +@mixin hook-accordion-content(){} +@mixin hook-accordion-misc(){} +@mixin hook-inverse-accordion-item(){} +@mixin hook-inverse-accordion-title(){} +@mixin hook-inverse-accordion-title-hover(){} +@mixin hook-inverse-component-accordion(){ + + .uk-accordion-title::after { @include svg-fill($internal-accordion-close-image, "#000", $inverse-global-color); } + + .uk-open > .uk-accordion-title::after { @include svg-fill($internal-accordion-open-image, "#000", $inverse-global-color); } + +} +@mixin hook-align-misc(){} +@mixin hook-alert(){} +@mixin hook-alert-close(){ + color: inherit; + opacity: $alert-close-opacity; +} +@mixin hook-alert-close-hover(){ + color: inherit; + opacity: $alert-close-hover-opacity; +} +@mixin hook-alert-primary(){} +@mixin hook-alert-success(){} +@mixin hook-alert-warning(){} +@mixin hook-alert-danger(){} +@mixin hook-alert-misc(){ + + /* + * Content + */ + + .uk-alert h1, + .uk-alert h2, + .uk-alert h3, + .uk-alert h4, + .uk-alert h5, + .uk-alert h6 { color: inherit; } + + .uk-alert a:not([class]) { + color: inherit; + text-decoration: underline; + } + + .uk-alert a:not([class]):hover { + color: inherit; + text-decoration: underline; + } + +} +@mixin hook-article(){} +@mixin hook-article-adjacent(){} +@mixin hook-article-title(){} +@mixin hook-article-meta(){ + + a { color: $article-meta-link-color; } + + a:hover { + color: $article-meta-link-hover-color; + text-decoration: none; + } + +} +@mixin hook-article-misc(){} +@mixin hook-inverse-article-title(){} +@mixin hook-inverse-article-meta(){} +@mixin hook-inverse-component-article(){ + + .uk-article-title { + @if(mixin-exists(hook-inverse-article-title)) {@include hook-inverse-article-title();} + } + + .uk-article-meta { + color: $inverse-article-meta-color; + @if(mixin-exists(hook-inverse-article-meta)) {@include hook-inverse-article-meta();} + } + +} +@mixin hook-animation-misc(){} +@mixin hook-background-misc(){} +@mixin hook-badge(){} +@mixin hook-badge-hover(){} +@mixin hook-badge-misc(){} +@mixin hook-inverse-badge(){} +@mixin hook-inverse-badge-hover(){} +@mixin hook-inverse-component-badge(){ + + .uk-badge { + background-color: $inverse-badge-background; + color: $inverse-badge-color; + @if(mixin-exists(hook-inverse-badge)) {@include hook-inverse-badge();} + } + + .uk-badge:hover, + .uk-badge:focus { + color: $inverse-badge-hover-color; + @if(mixin-exists(hook-inverse-badge-hover)) {@include hook-inverse-badge-hover();} + } + +} +@mixin hook-base-body(){} +@mixin hook-base-link(){} +@mixin hook-base-link-hover(){} +@mixin hook-base-code(){ + padding: $base-code-padding-vertical $base-code-padding-horizontal; + background: $base-code-background; +} +@mixin hook-base-heading(){} +@mixin hook-base-h1(){} +@mixin hook-base-h2(){} +@mixin hook-base-h3(){} +@mixin hook-base-h4(){} +@mixin hook-base-h5(){} +@mixin hook-base-h6(){} +@mixin hook-base-hr(){} +@mixin hook-base-blockquote(){ + color: $base-blockquote-color; +} +@mixin hook-base-blockquote-footer(){ + + color: $base-blockquote-footer-color; + + &::before { content: "— "; } + +} +@mixin hook-base-pre(){ + padding: $base-pre-padding; + border: $base-pre-border-width solid $base-pre-border; + border-radius: $base-pre-border-radius; + background: $base-pre-background; +} +@mixin hook-base-misc(){} +@mixin hook-inverse-base-link(){} +@mixin hook-inverse-base-link-hover(){} +@mixin hook-inverse-base-code(){ + background: $inverse-global-muted-background; +} +@mixin hook-inverse-base-heading(){} +@mixin hook-inverse-base-h1(){} +@mixin hook-inverse-base-h2(){} +@mixin hook-inverse-base-h3(){} +@mixin hook-inverse-base-h4(){} +@mixin hook-inverse-base-h5(){} +@mixin hook-inverse-base-h6(){} +@mixin hook-inverse-base-blockquote(){ color: $inverse-base-blockquote-color; } +@mixin hook-inverse-base-blockquote-footer(){ color: $inverse-base-blockquote-footer-color; } +@mixin hook-inverse-base-hr(){} +@mixin hook-inverse-component-base(){ + + color: $inverse-base-color; + + // Base + // ======================================================================== + + // + // Link + // + + a, + .uk-link { + color: $inverse-base-link-color; + @if(mixin-exists(hook-inverse-base-link)) {@include hook-inverse-base-link();} + } + + a:hover, + .uk-link:hover { + color: $inverse-base-link-hover-color; + @if(mixin-exists(hook-inverse-base-link-hover)) {@include hook-inverse-base-link-hover();} + } + + // + // Code + // + + :not(pre) > code, + :not(pre) > kbd, + :not(pre) > samp { + color: $inverse-base-code-color; + @if(mixin-exists(hook-inverse-base-code)) {@include hook-inverse-base-code();} + } + + // + // Emphasize + // + + em { color: $inverse-base-em-color; } + + // + // Headings + // + + h1, .uk-h1, + h2, .uk-h2, + h3, .uk-h3, + h4, .uk-h4, + h5, .uk-h5, + h6, .uk-h6 { + color: $inverse-base-heading-color; + @if(mixin-exists(hook-inverse-base-heading)) {@include hook-inverse-base-heading();} + } + + h1, .uk-h1 { + @if(mixin-exists(hook-inverse-base-h1)) {@include hook-inverse-base-h1();} + } + + h2, .uk-h2 { + @if(mixin-exists(hook-inverse-base-h2)) {@include hook-inverse-base-h2();} + } + + h3, .uk-h3 { + @if(mixin-exists(hook-inverse-base-h3)) {@include hook-inverse-base-h3();} + } + + h4, .uk-h4 { + @if(mixin-exists(hook-inverse-base-h4)) {@include hook-inverse-base-h4();} + } + + h5, .uk-h5 { + @if(mixin-exists(hook-inverse-base-h5)) {@include hook-inverse-base-h5();} + } + + h6, .uk-h6 { + @if(mixin-exists(hook-inverse-base-h6)) {@include hook-inverse-base-h6();} + } + + // + // Blockquotes + // + + blockquote { + @if(mixin-exists(hook-inverse-base-blockquote)) {@include hook-inverse-base-blockquote();} + } + + blockquote footer { + @if(mixin-exists(hook-inverse-base-blockquote-footer)) {@include hook-inverse-base-blockquote-footer();} + } + + // + // Horizontal rules + // + + hr, .uk-hr { + border-top-color: $inverse-base-hr-border; + @if(mixin-exists(hook-inverse-base-hr)) {@include hook-inverse-base-hr();} + } + +} +@mixin hook-breadcrumb(){} +@mixin hook-breadcrumb-item(){} +@mixin hook-breadcrumb-item-hover(){} +@mixin hook-breadcrumb-item-disabled(){} +@mixin hook-breadcrumb-item-active(){} +@mixin hook-breadcrumb-divider(){} +@mixin hook-breadcrumb-misc(){} +@mixin hook-inverse-breadcrumb-item(){} +@mixin hook-inverse-breadcrumb-item-hover(){} +@mixin hook-inverse-breadcrumb-item-disabled(){} +@mixin hook-inverse-breadcrumb-item-active(){} +@mixin hook-inverse-breadcrumb-divider(){} +@mixin hook-inverse-component-breadcrumb(){ + + .uk-breadcrumb > * > * { + color: $inverse-breadcrumb-item-color; + @if(mixin-exists(hook-inverse-breadcrumb-item)) {@include hook-inverse-breadcrumb-item();} + } + + .uk-breadcrumb > * > :hover, + .uk-breadcrumb > * > :focus { + color: $inverse-breadcrumb-item-hover-color; + @if(mixin-exists(hook-inverse-breadcrumb-item-hover)) {@include hook-inverse-breadcrumb-item-hover();} + } + + + .uk-breadcrumb > .uk-disabled > * { + @if(mixin-exists(hook-inverse-breadcrumb-item-disabled)) {@include hook-inverse-breadcrumb-item-disabled();} + } + + .uk-breadcrumb > :last-child > * { + color: $inverse-breadcrumb-item-active-color; + @if(mixin-exists(hook-inverse-breadcrumb-item-active)) {@include hook-inverse-breadcrumb-item-active();} + } + + // + // Divider + // + + .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before { + color: $inverse-breadcrumb-divider-color; + @if(mixin-exists(hook-inverse-breadcrumb-divider)) {@include hook-inverse-breadcrumb-divider();} + } + +} +@mixin hook-button(){ + text-transform: $button-text-transform; + transition: 0.1s ease-in-out; + transition-property: color, background-color, border-color; +} +@mixin hook-button-hover(){} +@mixin hook-button-focus(){} +@mixin hook-button-active(){} +@mixin hook-button-default(){ border: $button-border-width solid $button-default-border; } +@mixin hook-button-default-hover(){ border-color: $button-default-hover-border; } +@mixin hook-button-default-active(){ border-color: $button-default-active-border; } +@mixin hook-button-primary(){ border: $button-border-width solid transparent; } +@mixin hook-button-primary-hover(){} +@mixin hook-button-primary-active(){} +@mixin hook-button-secondary(){ border: $button-border-width solid transparent; } +@mixin hook-button-secondary-hover(){} +@mixin hook-button-secondary-active(){} +@mixin hook-button-danger(){ border: $button-border-width solid transparent; } +@mixin hook-button-danger-hover(){} +@mixin hook-button-danger-active(){} +@mixin hook-button-disabled(){ border-color: $button-disabled-border; } +@mixin hook-button-small(){} +@mixin hook-button-large(){} +@mixin hook-button-text(){ + + position: relative; + + &::before { + content: ""; + position: absolute; + bottom: 0; + left: 0; + right: 100%; + border-bottom: $button-text-border-width solid $button-text-border; + transition: right 0.3s ease-out; + } + +} +@mixin hook-button-text-hover(){ + + &::before { right: 0; } + +} +@mixin hook-button-text-disabled(){ + + &::before { display: none; } + +} +@mixin hook-button-link(){} +@mixin hook-button-misc(){ + + /* Group + ========================================================================== */ + + /* + * Collapse border + */ + + .uk-button-group > .uk-button:nth-child(n+2), + .uk-button-group > div:nth-child(n+2) .uk-button { margin-left: (-$button-border-width); } + + /* + * Create position context to superimpose the successor elements border + * Known issue: If you use an `a` element as button and an icon inside, + * the active state will not work if you click the icon inside the button + * Workaround: Just use a `button` or `input` element as button + */ + + .uk-button-group .uk-button:hover, + .uk-button-group .uk-button:focus, + .uk-button-group .uk-button:active, + .uk-button-group .uk-button.uk-active { + position: relative; + z-index: 1; + } + +} +@mixin hook-inverse-button-default(){ border-color: $inverse-global-color; } +@mixin hook-inverse-button-default-hover(){ border-color: $inverse-global-emphasis-color; } +@mixin hook-inverse-button-default-active(){ border-color: $inverse-global-emphasis-color; } +@mixin hook-inverse-button-primary(){} +@mixin hook-inverse-button-primary-hover(){} +@mixin hook-inverse-button-primary-active(){} +@mixin hook-inverse-button-secondary(){} +@mixin hook-inverse-button-secondary-hover(){} +@mixin hook-inverse-button-secondary-active(){} +@mixin hook-inverse-button-text(){ + &::before { border-bottom-color: $inverse-global-emphasis-color; } +} +@mixin hook-inverse-button-text-hover(){} +@mixin hook-inverse-button-text-disabled(){} +@mixin hook-inverse-button-link(){} +@mixin hook-inverse-component-button(){ + + // + // Default + // + + .uk-button-default { + background-color: $inverse-button-default-background; + color: $inverse-button-default-color; + @if(mixin-exists(hook-inverse-button-default)) {@include hook-inverse-button-default();} + } + + .uk-button-default:hover, + .uk-button-default:focus { + background-color: $inverse-button-default-hover-background; + color: $inverse-button-default-hover-color; + @if(mixin-exists(hook-inverse-button-default-hover)) {@include hook-inverse-button-default-hover();} + } + + .uk-button-default:active, + .uk-button-default.uk-active { + background-color: $inverse-button-default-active-background; + color: $inverse-button-default-active-color; + @if(mixin-exists(hook-inverse-button-default-active)) {@include hook-inverse-button-default-active();} + } + + // + // Primary + // + + .uk-button-primary { + background-color: $inverse-button-primary-background; + color: $inverse-button-primary-color; + @if(mixin-exists(hook-inverse-button-primary)) {@include hook-inverse-button-primary();} + } + + .uk-button-primary:hover, + .uk-button-primary:focus { + background-color: $inverse-button-primary-hover-background; + color: $inverse-button-primary-hover-color; + @if(mixin-exists(hook-inverse-button-primary-hover)) {@include hook-inverse-button-primary-hover();} + } + + .uk-button-primary:active, + .uk-button-primary.uk-active { + background-color: $inverse-button-primary-active-background; + color: $inverse-button-primary-active-color; + @if(mixin-exists(hook-inverse-button-primary-active)) {@include hook-inverse-button-primary-active();} + } + + // + // Secondary + // + + .uk-button-secondary { + background-color: $inverse-button-secondary-background; + color: $inverse-button-secondary-color; + @if(mixin-exists(hook-inverse-button-secondary)) {@include hook-inverse-button-secondary();} + } + + .uk-button-secondary:hover, + .uk-button-secondary:focus { + background-color: $inverse-button-secondary-hover-background; + color: $inverse-button-secondary-hover-color; + @if(mixin-exists(hook-inverse-button-secondary-hover)) {@include hook-inverse-button-secondary-hover();} + } + + .uk-button-secondary:active, + .uk-button-secondary.uk-active { + background-color: $inverse-button-secondary-active-background; + color: $inverse-button-secondary-active-color; + @if(mixin-exists(hook-inverse-button-secondary-active)) {@include hook-inverse-button-secondary-active();} + } + + // + // Text + // + + .uk-button-text { + color: $inverse-button-text-color; + @if(mixin-exists(hook-inverse-button-text)) {@include hook-inverse-button-text();} + } + + .uk-button-text:hover, + .uk-button-text:focus { + color: $inverse-button-text-hover-color; + @if(mixin-exists(hook-inverse-button-text-hover)) {@include hook-inverse-button-text-hover();} + } + + .uk-button-text:disabled { + color: $inverse-button-text-disabled-color; + @if(mixin-exists(hook-inverse-button-text-disabled)) {@include hook-inverse-button-text-disabled();} + } + + // + // Link + // + + .uk-button-link { + color: $inverse-button-link-color; + @if(mixin-exists(hook-inverse-button-link)) {@include hook-inverse-button-link();} + } + + .uk-button-link:hover, + .uk-button-link:focus { color: $inverse-button-link-hover-color; } + + +} +@mixin hook-card(){ transition: box-shadow 0.1s ease-in-out; } +@mixin hook-card-body(){} +@mixin hook-card-header(){} +@mixin hook-card-footer(){} +@mixin hook-card-media(){} +@mixin hook-card-media-top(){} +@mixin hook-card-media-bottom(){} +@mixin hook-card-media-left(){} +@mixin hook-card-media-right(){} +@mixin hook-card-title(){} +@mixin hook-card-badge(){} +@mixin hook-card-hover(){ box-shadow: $card-hover-box-shadow; } +@mixin hook-card-default(){ box-shadow: $card-default-box-shadow; } +@mixin hook-card-default-title(){} +@mixin hook-card-default-hover(){ box-shadow: $card-default-hover-box-shadow; } +@mixin hook-card-default-header(){ border-bottom: $card-default-header-border-width solid $card-default-header-border; } +@mixin hook-card-default-footer(){ border-top: $card-default-footer-border-width solid $card-default-footer-border; } +@mixin hook-card-primary(){ box-shadow: $card-primary-box-shadow; } +@mixin hook-card-primary-title(){} +@mixin hook-card-primary-hover(){ box-shadow: $card-primary-hover-box-shadow; } +@mixin hook-card-secondary(){ box-shadow: $card-secondary-box-shadow; } +@mixin hook-card-secondary-title(){} +@mixin hook-card-secondary-hover(){ box-shadow: $card-secondary-hover-box-shadow; } +@mixin hook-card-misc(){ + + /* + * Default + */ + + .uk-card-body .uk-nav-default { margin: (-$card-body-padding-vertical + 15px) (-$card-body-padding-horizontal); } + .uk-card-title + .uk-nav-default { margin-top: 0; } + + .uk-card-body .uk-nav-default > li > a, + .uk-card-body .uk-nav-default .uk-nav-header, + .uk-card-body .uk-nav-default .uk-nav-divider { + padding-left: $card-body-padding-horizontal; + padding-right: $card-body-padding-horizontal; + } + + .uk-card-body .uk-nav-default .uk-nav-sub { padding-left: $nav-sublist-deeper-padding-left + $card-body-padding-horizontal; } + + + /* Desktop and bigger */ + @media (min-width: $breakpoint-large) { + + .uk-card-body .uk-nav-default { margin: (-$card-body-padding-vertical-l + 15px) (-$card-body-padding-horizontal-l); } + .uk-card-title + .uk-nav-default { margin-top: 0; } + + .uk-card-body .uk-nav-default > li > a, + .uk-card-body .uk-nav-default .uk-nav-header, + .uk-card-body .uk-nav-default .uk-nav-divider { + padding-left: $card-body-padding-horizontal-l; + padding-right: $card-body-padding-horizontal-l; + } + + .uk-card-body .uk-nav-default .uk-nav-sub { padding-left: $nav-sublist-deeper-padding-left + $card-body-padding-horizontal-l; } + + } + + /* + * Small + */ + + .uk-card-small .uk-nav-default { margin: (-$card-small-body-padding-vertical + 15px) (-$card-small-body-padding-horizontal); } + .uk-card-small .uk-card-title + .uk-nav-default { margin-top: 0; } + + .uk-card-small .uk-nav-default > li > a, + .uk-card-small .uk-nav-default .uk-nav-header, + .uk-card-small .uk-nav-default .uk-nav-divider { + padding-left: $card-small-body-padding-horizontal; + padding-right: $card-small-body-padding-horizontal; + } + + .uk-card-small .uk-nav-default .uk-nav-sub { padding-left: $nav-sublist-deeper-padding-left + $card-small-body-padding-horizontal; } + + /* + * Large + */ + + /* Desktop and bigger */ + @media (min-width: $breakpoint-large) { + + .uk-card-large .uk-nav-default { margin: (-$card-large-body-padding-vertical-l + 15px) (-$card-large-body-padding-horizontal-l); } + .uk-card-large .uk-card-title + .uk-nav-default { margin-top: 0; } + + } + +} +@mixin hook-close(){ + transition: 0.1s ease-in-out; + transition-property: color, opacity; +} +@mixin hook-close-hover(){} +@mixin hook-close-misc(){} +@mixin hook-inverse-close(){} +@mixin hook-inverse-close-hover(){} +@mixin hook-inverse-component-close(){ + + .uk-close { + color: $inverse-close-color; + @if(mixin-exists(hook-inverse-close)) {@include hook-inverse-close();} + } + + .uk-close:hover, + .uk-close:focus { + color: $inverse-close-hover-color; + @if(mixin-exists(hook-inverse-close-hover)) {@include hook-inverse-close-hover();} + } + +} +@mixin hook-column-misc(){} +@mixin hook-inverse-component-column(){ + + .uk-column-divider { column-rule-color: $inverse-column-divider-rule-color; } + +} +@mixin hook-comment(){} +@mixin hook-comment-body(){} +@mixin hook-comment-header(){} +@mixin hook-comment-title(){} +@mixin hook-comment-meta(){} +@mixin hook-comment-avatar(){} +@mixin hook-comment-list-adjacent(){} +@mixin hook-comment-list-sub(){} +@mixin hook-comment-list-sub-adjacent(){} +@mixin hook-comment-primary(){ + padding: $comment-primary-padding; + background-color: $comment-primary-background; +} +@mixin hook-comment-misc(){} +@mixin hook-container-misc(){} +@mixin hook-countdown(){} +@mixin hook-countdown-item(){} +@mixin hook-countdown-number(){} +@mixin hook-countdown-separator(){} +@mixin hook-countdown-label(){} +@mixin hook-countdown-misc(){} +@mixin hook-inverse-countdown-item(){} +@mixin hook-inverse-countdown-number(){} +@mixin hook-inverse-countdown-separator(){} +@mixin hook-inverse-countdown-label(){} +@mixin hook-inverse-component-countdown(){ + + .uk-countdown-number, + .uk-countdown-separator { + @if(mixin-exists(hook-inverse-countdown-item)) {@include hook-inverse-countdown-item();} + } + + .uk-countdown-number { + @if(mixin-exists(hook-inverse-countdown-number)) {@include hook-inverse-countdown-number();} + } + + .uk-countdown-separator { + @if(mixin-exists(hook-inverse-countdown-separator)) {@include hook-inverse-countdown-separator();} + } + + .uk-countdown-label { + @if(mixin-exists(hook-inverse-countdown-label)) {@include hook-inverse-countdown-label();} + } + +} +@mixin hook-cover-misc(){} +@mixin hook-description-list-term(){ + font-size: $description-list-term-font-size; + font-weight: $description-list-term-font-weight; + text-transform: $description-list-term-text-transform; +} +@mixin hook-description-list-description(){} +@mixin hook-description-list-divider-term(){} +@mixin hook-description-list-misc(){} +@mixin svg-fill($src, $color-default, $color-new, $property: background-image){ + + $escape-color-default: escape($color-default) !default; + $escape-color-new: escape("#{$color-new}") !default; + + $data-uri: data-uri('image/svg+xml;charset=UTF-8', "#{$src}") !default; + $replace-src: replace("#{$data-uri}", "#{$escape-color-default}", "#{$escape-color-new}", "g") !default; + + #{$property}: unquote($replace-src); +} +@mixin hook-divider-icon(){} +@mixin hook-divider-icon-line(){} +@mixin hook-divider-icon-line-left(){} +@mixin hook-divider-icon-line-right(){} +@mixin hook-divider-small(){} +@mixin hook-divider-misc(){} +@mixin hook-inverse-divider-icon(){} +@mixin hook-inverse-divider-icon-line(){} +@mixin hook-inverse-divider-small(){} +@mixin hook-inverse-component-divider(){ + + .uk-divider-icon { + @include svg-fill($internal-divider-icon-image, "#000", $inverse-divider-icon-color); + @if(mixin-exists(hook-inverse-divider-icon)) {@include hook-inverse-divider-icon();} + } + + .uk-divider-icon::before, + .uk-divider-icon::after { + border-bottom-color: $inverse-divider-icon-line-border; + @if(mixin-exists(hook-inverse-divider-icon-line)) {@include hook-inverse-divider-icon-line();} + } + + .uk-divider-small::after { + border-top-color: $inverse-divider-small-border; + @if(mixin-exists(hook-inverse-divider-small)) {@include hook-inverse-divider-small();} + } + +} +@mixin hook-dotnav(){} +@mixin hook-dotnav-item(){ + border: $dotnav-item-border-width solid $dotnav-item-border; + transition: 0.2s ease-in-out; + transition-property: background-color, border-color; +} +@mixin hook-dotnav-item-hover(){ border-color: $dotnav-item-hover-border; } +@mixin hook-dotnav-item-onclick(){ border-color: $dotnav-item-onclick-border; } +@mixin hook-dotnav-item-active(){ border-color: $dotnav-item-active-border; } +@mixin hook-dotnav-misc(){} +@mixin hook-inverse-dotnav-item(){ border-color: rgba($inverse-global-color, 0.9); } +@mixin hook-inverse-dotnav-item-hover(){ border-color: transparent; } +@mixin hook-inverse-dotnav-item-onclick(){ border-color: transparent; } +@mixin hook-inverse-dotnav-item-active(){ border-color: transparent; } +@mixin hook-inverse-component-dotnav(){ + + .uk-dotnav > * > * { + background-color: $inverse-dotnav-item-background; + @if(mixin-exists(hook-inverse-dotnav-item)) {@include hook-inverse-dotnav-item();} + } + + .uk-dotnav > * > :hover, + .uk-dotnav > * > :focus { + background-color: $inverse-dotnav-item-hover-background; + @if(mixin-exists(hook-inverse-dotnav-item-hover)) {@include hook-inverse-dotnav-item-hover();} + } + + .uk-dotnav > * > :active { + background-color: $inverse-dotnav-item-onclick-background; + @if(mixin-exists(hook-inverse-dotnav-item-onclick)) {@include hook-inverse-dotnav-item-onclick();} + } + + .uk-dotnav > .uk-active > * { + background-color: $inverse-dotnav-item-active-background; + @if(mixin-exists(hook-inverse-dotnav-item-active)) {@include hook-inverse-dotnav-item-active();} + } + +} +@mixin hook-drop-misc(){} +@mixin hook-dropdown(){ box-shadow: $dropdown-box-shadow; } +@mixin hook-dropdown-nav(){ font-size: $dropdown-nav-font-size; } +@mixin hook-dropdown-nav-item(){} +@mixin hook-dropdown-nav-item-hover(){} +@mixin hook-dropdown-nav-header(){} +@mixin hook-dropdown-nav-divider(){} +@mixin hook-dropdown-misc(){} +@mixin hook-flex-misc(){} +@mixin hook-form-range(){} +@mixin hook-form-range-thumb(){ border: $form-range-thumb-border-width solid $form-range-thumb-border; } +@mixin hook-form-range-track(){ border-radius: $form-range-track-border-radius; } +@mixin hook-form-range-track-focus(){} +@mixin hook-form-range-misc(){} +@mixin hook-form(){ + border: $form-border-width solid $form-border; + transition: 0.2s ease-in-out; + transition-property: color, background-color, border; +} +@mixin hook-form-single-line(){} +@mixin hook-form-multi-line(){} +@mixin hook-form-focus(){ border-color: $form-focus-border; } +@mixin hook-form-disabled(){ border-color: $form-disabled-border; } +@mixin hook-form-danger(){ border-color: $form-danger-border; } +@mixin hook-form-success(){ border-color: $form-success-border; } +@mixin hook-form-blank(){ border-color: transparent; } +@mixin hook-form-blank-focus(){ + border-color: $form-blank-focus-border; + border-style: $form-blank-focus-border-style; +} +@mixin hook-form-radio(){ + border: $form-radio-border-width solid $form-radio-border; + transition: 0.2s ease-in-out; + transition-property: background-color, border; +} +@mixin hook-form-radio-focus(){ border-color: $form-radio-focus-border; } +@mixin hook-form-radio-checked(){ border-color: $form-radio-checked-border; } +@mixin hook-form-radio-checked-focus(){} +@mixin hook-form-radio-disabled(){ border-color: $form-radio-disabled-border; } +@mixin hook-form-legend(){} +@mixin hook-form-label(){ + color: $form-label-color; + font-size: $form-label-font-size; +} +@mixin hook-form-stacked-label(){} +@mixin hook-form-horizontal-label(){} +@mixin hook-form-misc(){} +@mixin hook-inverse-form(){ border-color: $inverse-global-border; } +@mixin hook-inverse-form-focus(){ border-color: $inverse-global-color; } +@mixin hook-inverse-form-radio(){ border-color: $inverse-global-border; } +@mixin hook-inverse-form-radio-focus(){ border-color: $inverse-global-color; } +@mixin hook-inverse-form-radio-checked(){ border-color: $inverse-global-color; } +@mixin hook-inverse-form-radio-checked-focus(){} +@mixin hook-inverse-form-label(){ color: $inverse-form-label-color; } +@mixin hook-inverse-component-form(){ + + .uk-input, + .uk-select, + .uk-textarea { + background-color: $inverse-form-background; + color: $inverse-form-color; + background-clip: padding-box; + @if(mixin-exists(hook-inverse-form)) {@include hook-inverse-form();} + + &:focus { + background-color: $inverse-form-focus-background; + color: $inverse-form-focus-color; + @if(mixin-exists(hook-inverse-form-focus)) {@include hook-inverse-form-focus();} + } + } + + // + // Placeholder + // + + .uk-input:-ms-input-placeholder { color: $inverse-form-placeholder-color !important; } + .uk-input::placeholder { color: $inverse-form-placeholder-color; } + + .uk-textarea:-ms-input-placeholder { color: $inverse-form-placeholder-color !important; } + .uk-textarea::placeholder { color: $inverse-form-placeholder-color; } + + // + // Radio and checkbox + // + + .uk-select:not([multiple]):not([size]) { @include svg-fill($internal-form-select-image, "#000", $inverse-form-select-icon-color); } + + // + // Radio and checkbox + // + + .uk-radio, + .uk-checkbox { + background-color: $inverse-form-radio-background; + @if(mixin-exists(hook-inverse-form-radio)) {@include hook-inverse-form-radio();} + } + + // Focus + .uk-radio:focus, + .uk-checkbox:focus { + @if(mixin-exists(hook-inverse-form-radio-focus)) {@include hook-inverse-form-radio-focus();} + } + + // Checked + .uk-radio:checked, + .uk-checkbox:checked, + .uk-checkbox:indeterminate { + background-color: $inverse-form-radio-checked-background; + @if(mixin-exists(hook-inverse-form-radio-checked)) {@include hook-inverse-form-radio-checked();} + } + + // Focus + .uk-radio:checked:focus, + .uk-checkbox:checked:focus, + .uk-checkbox:indeterminate:focus { + background-color: $inverse-form-radio-checked-focus-background; + @if(mixin-exists(hook-inverse-form-radio-checked-focus)) {@include hook-inverse-form-radio-checked-focus();} + } + + // Icon + .uk-radio:checked { @include svg-fill($internal-form-radio-image, "#000", $inverse-form-radio-checked-icon-color); } + .uk-checkbox:checked { @include svg-fill($internal-form-checkbox-image, "#000", $inverse-form-radio-checked-icon-color); } + .uk-checkbox:indeterminate { @include svg-fill($internal-form-checkbox-indeterminate-image, "#000", $inverse-form-radio-checked-icon-color); } + + // Label + .uk-form-label { + @if(mixin-exists(hook-inverse-form-label)) {@include hook-inverse-form-label();} + } + +} +@mixin hook-grid-misc(){} +@mixin hook-inverse-component-grid(){ + + .uk-grid-divider > :not(.uk-first-column)::before { border-left-color: $inverse-grid-divider-border; } + .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before { border-top-color: $inverse-grid-divider-border; } + +} +@mixin hook-heading-primary(){} +@mixin hook-heading-hero(){} +@mixin hook-heading-divider(){} +@mixin hook-heading-bullet(){} +@mixin hook-heading-line(){} +@mixin hook-heading-misc(){} +@mixin hook-inverse-heading-primary(){} +@mixin hook-inverse-heading-hero(){} +@mixin hook-inverse-heading-divider(){} +@mixin hook-inverse-heading-bullet(){} +@mixin hook-inverse-heading-line(){} +@mixin hook-inverse-component-heading(){ + + .uk-heading-primary { + @if(mixin-exists(hook-inverse-heading-primary)) {@include hook-inverse-heading-primary();} + } + + .uk-heading-hero { + @if(mixin-exists(hook-inverse-heading-hero)) {@include hook-inverse-heading-hero();} + } + + .uk-heading-divider { + border-bottom-color: $inverse-heading-divider-border; + @if(mixin-exists(hook-inverse-heading-divider)) {@include hook-inverse-heading-divider();} + } + + .uk-heading-bullet::before { + border-left-color: $inverse-heading-bullet-border; + @if(mixin-exists(hook-inverse-heading-bullet)) {@include hook-inverse-heading-bullet();} + } + + .uk-heading-line > ::before, + .uk-heading-line > ::after { + border-bottom-color: $inverse-heading-line-border; + @if(mixin-exists(hook-inverse-heading-line)) {@include hook-inverse-heading-line();} + } + +} +@mixin hook-icon-link(){} +@mixin hook-icon-link-hover(){} +@mixin hook-icon-link-active(){} +@mixin hook-icon-button(){ + transition: 0.1s ease-in-out; + transition-property: color, background-color +} +@mixin hook-icon-button-hover(){} +@mixin hook-icon-button-active(){} +@mixin hook-icon-misc(){} +@mixin hook-inverse-icon-link(){} +@mixin hook-inverse-icon-link-hover(){} +@mixin hook-inverse-icon-link-active(){} +@mixin hook-inverse-icon-button(){} +@mixin hook-inverse-icon-button-hover(){} +@mixin hook-inverse-icon-button-active(){} +@mixin hook-inverse-component-icon(){ + + // + // Link + // + + .uk-icon-link { + color: $inverse-icon-link-color; + @if(mixin-exists(hook-inverse-icon-link)) {@include hook-inverse-icon-link();} + } + + .uk-icon-link:hover, + .uk-icon-link:focus { + color: $inverse-icon-link-hover-color; + @if(mixin-exists(hook-inverse-icon-link-hover)) {@include hook-inverse-icon-link-hover();} + } + + .uk-icon-link:active, + .uk-active > .uk-icon-link { + color: $inverse-icon-link-active-color; + @if(mixin-exists(hook-inverse-icon-link-active)) {@include hook-inverse-icon-link-active();} + } + + // + // Button + // + + .uk-icon-button { + background-color: $inverse-icon-button-background; + color: $inverse-icon-button-color; + @if(mixin-exists(hook-inverse-icon-button)) {@include hook-inverse-icon-button();} + } + + .uk-icon-button:hover, + .uk-icon-button:focus { + background-color: $inverse-icon-button-hover-background; + color: $inverse-icon-button-hover-color; + @if(mixin-exists(hook-inverse-icon-button-hover)) {@include hook-inverse-icon-button-hover();} + } + + .uk-icon-button:active { + background-color: $inverse-icon-button-active-background; + color: $inverse-icon-button-active-color; + @if(mixin-exists(hook-inverse-icon-button-active)) {@include hook-inverse-icon-button-active();} + } + +} +@mixin hook-iconnav(){} +@mixin hook-iconnav-item(){} +@mixin hook-iconnav-item-hover(){} +@mixin hook-iconnav-item-active(){} +@mixin hook-iconnav-misc(){} +@mixin hook-inverse-iconnav-item(){} +@mixin hook-inverse-iconnav-item-hover(){} +@mixin hook-inverse-iconnav-item-active(){} +@mixin hook-inverse-component-iconnav(){ + + .uk-iconnav > * > a { + color: $inverse-iconnav-item-color; + @if(mixin-exists(hook-inverse-iconnav-item)) {@include hook-inverse-iconnav-item();} + } + + .uk-iconnav > * > a:hover, + .uk-iconnav > * > a:focus { + color: $inverse-iconnav-item-hover-color; + @if(mixin-exists(hook-inverse-iconnav-item-hover)) {@include hook-inverse-iconnav-item-hover();} + } + + .uk-iconnav > .uk-active > a { + color: $inverse-iconnav-item-active-color; + @if(mixin-exists(hook-inverse-iconnav-item-active)) {@include hook-inverse-iconnav-item-active();} + } + +} +@mixin hook-inverse-component-link(){ + + a.uk-link-muted, + .uk-link-muted a { + color: $inverse-link-muted-color; + @if(mixin-exists(hook-inverse-link-muted)) {@include hook-inverse-link-muted();} + } + + a.uk-link-muted:hover, + .uk-link-muted a:hover { + color: $inverse-link-muted-hover-color; + @if(mixin-exists(hook-inverse-link-muted-hover)) {@include hook-inverse-link-muted-hover();} + } + + a.uk-link-text:hover, + .uk-link-text a:hover { + color: $inverse-link-text-hover-color; + @if(mixin-exists(hook-inverse-link-text-hover)) {@include hook-inverse-link-text-hover();} + } + + a.uk-link-heading:hover, + .uk-link-heading a:hover { + color: $inverse-link-heading-hover-color; + @if(mixin-exists(hook-inverse-link-heading-hover)) {@include hook-inverse-link-heading-hover();} + } + +} +@mixin hook-inverse-component-list(){ + + .uk-list-divider > li:nth-child(n+2) { + border-top-color: $inverse-list-divider-border; + @if(mixin-exists(hook-inverse-list-divider)) {@include hook-inverse-list-divider();} + } + + .uk-list-striped > li { + @if(mixin-exists(hook-inverse-list-striped)) {@include hook-inverse-list-striped();} + } + + .uk-list-striped > li:nth-of-type(odd) { background-color: $inverse-list-striped-background; } + + .uk-list-bullet > li::before { + @include svg-fill($internal-list-bullet-image, "#000", $inverse-list-bullet-icon-color); + @if(mixin-exists(hook-inverse-list-bullet)) {@include hook-inverse-list-bullet();} + } + +} +@mixin hook-inverse-component-totop(){ + + .uk-totop { + color: $inverse-totop-color; + @if(mixin-exists(hook-inverse-totop)) {@include hook-inverse-totop();} + } + + .uk-totop:hover, + .uk-totop:focus { + color: $inverse-totop-hover-color; + @if(mixin-exists(hook-inverse-totop-hover)) {@include hook-inverse-totop-hover();} + } + + .uk-totop:active { + color: $inverse-totop-active-color; + @if(mixin-exists(hook-inverse-totop-active)) {@include hook-inverse-totop-active();} + } + +} +@mixin hook-inverse-component-label(){ + + .uk-label { + background-color: $inverse-label-background; + color: $inverse-label-color; + @if(mixin-exists(hook-inverse-label)) {@include hook-inverse-label();} + } + +} +@mixin hook-inverse-component-search(){ + + // + // Input + // + + .uk-search-input { color: $inverse-search-color; } + + .uk-search-input:-ms-input-placeholder { color: $inverse-search-placeholder-color !important; } + .uk-search-input::placeholder { color: $inverse-search-placeholder-color; } + + + // + // Icon + // + + .uk-search .uk-search-icon { color: $inverse-search-icon-color; } + + .uk-search .uk-search-icon:hover { color: $inverse-search-icon-color; } + + // + // Style modifier + // + + .uk-search-default .uk-search-input { + background-color: $inverse-search-default-background; + @if(mixin-exists(hook-inverse-search-default-input)) {@include hook-inverse-search-default-input();} + } + .uk-search-default .uk-search-input:focus { + background-color: $inverse-search-default-background; + @if(mixin-exists(hook-inverse-search-default-input-focus)) {@include hook-inverse-search-default-input-focus();} + } + + .uk-search-navbar .uk-search-input { + background-color: $inverse-search-navbar-background; + @if(mixin-exists(hook-inverse-search-navbar-input)) {@include hook-inverse-search-navbar-input();} + } + + .uk-search-large .uk-search-input { + background-color: $inverse-search-large-background; + @if(mixin-exists(hook-inverse-search-large-input)) {@include hook-inverse-search-large-input();} + } + + // + // Toggle + // + + .uk-search-toggle { + color: $inverse-search-toggle-color; + @if(mixin-exists(hook-inverse-search-toggle)) {@include hook-inverse-search-toggle();} + } + + .uk-search-toggle:hover, + .uk-search-toggle:focus { + color: $inverse-search-toggle-hover-color; + @if(mixin-exists(hook-inverse-search-toggle-hover)) {@include hook-inverse-search-toggle-hover();} + } + +} +@mixin hook-inverse-component-nav(){ + + // + // Parent icon modifier + // + + .uk-nav-parent-icon > .uk-parent > a::after { + @include svg-fill($internal-nav-parent-close-image, "#000", $inverse-nav-parent-icon-color); + @if(mixin-exists(hook-inverse-nav-parent-icon)) {@include hook-inverse-nav-parent-icon();} + } + + .uk-nav-parent-icon > .uk-parent.uk-open > a::after { @include svg-fill($internal-nav-parent-open-image, "#000", $inverse-nav-parent-icon-color); } + + // + // Default + // + + .uk-nav-default > li > a { + color: $inverse-nav-default-item-color; + @if(mixin-exists(hook-inverse-nav-default-item)) {@include hook-inverse-nav-default-item();} + } + + .uk-nav-default > li > a:hover, + .uk-nav-default > li > a:focus { + color: $inverse-nav-default-item-hover-color; + @if(mixin-exists(hook-inverse-nav-default-item-hover)) {@include hook-inverse-nav-default-item-hover();} + } + + .uk-nav-default > li.uk-active > a { + color: $inverse-nav-default-item-active-color; + @if(mixin-exists(hook-inverse-nav-default-item-active)) {@include hook-inverse-nav-default-item-active();} + } + + .uk-nav-default .uk-nav-header { + color: $inverse-nav-default-header-color; + @if(mixin-exists(hook-inverse-nav-default-header)) {@include hook-inverse-nav-default-header();} + } + + .uk-nav-default .uk-nav-divider { + border-top-color: $inverse-nav-default-divider-border; + @if(mixin-exists(hook-inverse-nav-default-divider)) {@include hook-inverse-nav-default-divider();} + } + + .uk-nav-default .uk-nav-sub a { color: $inverse-nav-default-sublist-item-color; } + + .uk-nav-default .uk-nav-sub a:hover, + .uk-nav-default .uk-nav-sub a:focus { color: $inverse-nav-default-sublist-item-hover-color; } + + // + // Primary + // + + .uk-nav-primary > li > a { + color: $inverse-nav-primary-item-color; + @if(mixin-exists(hook-inverse-nav-primary-item)) {@include hook-inverse-nav-primary-item();} + } + + .uk-nav-primary > li > a:hover, + .uk-nav-primary > li > a:focus { + color: $inverse-nav-primary-item-hover-color; + @if(mixin-exists(hook-inverse-nav-primary-item-hover)) {@include hook-inverse-nav-primary-item-hover();} + } + + .uk-nav-primary > li.uk-active > a { + color: $inverse-nav-primary-item-active-color; + @if(mixin-exists(hook-inverse-nav-primary-item-active)) {@include hook-inverse-nav-primary-item-active();} + } + + .uk-nav-primary .uk-nav-header { + color: $inverse-nav-primary-header-color; + @if(mixin-exists(hook-inverse-nav-primary-header)) {@include hook-inverse-nav-primary-header();} + } + + .uk-nav-primary .uk-nav-divider { + border-top-color: $inverse-nav-primary-divider-border; + @if(mixin-exists(hook-inverse-nav-primary-divider)) {@include hook-inverse-nav-primary-divider();} + } + + .uk-nav-primary .uk-nav-sub a { color: $inverse-nav-primary-sublist-item-color; } + + .uk-nav-primary .uk-nav-sub a:hover, + .uk-nav-primary .uk-nav-sub a:focus { color: $inverse-nav-primary-sublist-item-hover-color; } + +} +@mixin hook-inverse-component-navbar(){ + + .uk-navbar-nav > li > a { + color: $inverse-navbar-nav-item-color; + @if(mixin-exists(hook-inverse-navbar-nav-item)) {@include hook-inverse-navbar-nav-item();} + } + + .uk-navbar-nav > li:hover > a, + .uk-navbar-nav > li > a:focus, + .uk-navbar-nav > li > a.uk-open { + color: $inverse-navbar-nav-item-hover-color; + @if(mixin-exists(hook-inverse-navbar-nav-item-hover)) {@include hook-inverse-navbar-nav-item-hover();} + } + + .uk-navbar-nav > li > a:active { + color: $inverse-navbar-nav-item-onclick-color; + @if(mixin-exists(hook-inverse-navbar-nav-item-onclick)) {@include hook-inverse-navbar-nav-item-onclick();} + } + + .uk-navbar-nav > li.uk-active > a { + color: $inverse-navbar-nav-item-active-color; + @if(mixin-exists(hook-inverse-navbar-nav-item-active)) {@include hook-inverse-navbar-nav-item-active();} + } + + .uk-navbar-item { + color: $inverse-navbar-item-color; + @if(mixin-exists(hook-inverse-navbar-item)) {@include hook-inverse-navbar-item();} + } + + .uk-navbar-toggle { + color: $inverse-navbar-toggle-color; + @if(mixin-exists(hook-inverse-navbar-toggle)) {@include hook-inverse-navbar-toggle();} + } + + .uk-navbar-toggle:hover, + .uk-navbar-toggle:focus, + .uk-navbar-toggle.uk-open { + color: $inverse-navbar-toggle-hover-color; + @if(mixin-exists(hook-inverse-navbar-toggle-hover)) {@include hook-inverse-navbar-toggle-hover();} + } + +} +@mixin hook-inverse-component-subnav(){ + + .uk-subnav > * > :first-child { + color: $inverse-subnav-item-color; + @if(mixin-exists(hook-inverse-subnav-item)) {@include hook-inverse-subnav-item();} + } + + .uk-subnav > * > a:hover, + .uk-subnav > * > a:focus { + color: $inverse-subnav-item-hover-color; + @if(mixin-exists(hook-inverse-subnav-item-hover)) {@include hook-inverse-subnav-item-hover();} + } + + .uk-subnav > .uk-active > a { + color: $inverse-subnav-item-active-color; + @if(mixin-exists(hook-inverse-subnav-item-active)) {@include hook-inverse-subnav-item-active();} + } + + // + // Divider + // + + .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before { + border-left-color: $inverse-subnav-divider-border; + @if(mixin-exists(hook-inverse-subnav-divider)) {@include hook-inverse-subnav-divider();} + } + + // + // Pill + // + + .uk-subnav-pill > * > :first-child { + background-color: $inverse-subnav-pill-item-background; + color: $inverse-subnav-pill-item-color; + @if(mixin-exists(hook-inverse-subnav-pill-item)) {@include hook-inverse-subnav-pill-item();} + } + + .uk-subnav-pill > * > a:hover, + .uk-subnav-pill > * > a:focus { + background-color: $inverse-subnav-pill-item-hover-background; + color: $inverse-subnav-pill-item-hover-color; + @if(mixin-exists(hook-inverse-subnav-pill-item-hover)) {@include hook-inverse-subnav-pill-item-hover();} + } + + .uk-subnav-pill > * > a:active { + background-color: $inverse-subnav-pill-item-onclick-background; + color: $inverse-subnav-pill-item-onclick-color; + @if(mixin-exists(hook-inverse-subnav-pill-item-onclick)) {@include hook-inverse-subnav-pill-item-onclick();} + } + + .uk-subnav-pill > .uk-active > a { + background-color: $inverse-subnav-pill-item-active-background; + color: $inverse-subnav-pill-item-active-color; + @if(mixin-exists(hook-inverse-subnav-pill-item-active)) {@include hook-inverse-subnav-pill-item-active();} + } + + // + // Disabled + // + + .uk-subnav > .uk-disabled > a { + color: $inverse-subnav-item-disabled-color; + @if(mixin-exists(hook-inverse-subnav-item-disabled)) {@include hook-inverse-subnav-item-disabled();} + } + +} +@mixin hook-inverse-component-pagination(){ + + .uk-pagination > * > * { + color: $inverse-pagination-item-color; + @if(mixin-exists(hook-inverse-pagination-item)) {@include hook-inverse-pagination-item();} + } + + .uk-pagination > * > :hover, + .uk-pagination > * > :focus { + color: $inverse-pagination-item-hover-color; + @if(mixin-exists(hook-inverse-pagination-item-hover)) {@include hook-inverse-pagination-item-hover();} + } + + .uk-pagination > .uk-active > * { + color: $inverse-pagination-item-active-color; + @if(mixin-exists(hook-inverse-pagination-item-active)) {@include hook-inverse-pagination-item-active();} + } + + .uk-pagination > .uk-disabled > * { + color: $inverse-pagination-item-disabled-color; + @if(mixin-exists(hook-inverse-pagination-item-disabled)) {@include hook-inverse-pagination-item-disabled();} + } + +} +@mixin hook-inverse-component-tab(){ + + .uk-tab { + @if(mixin-exists(hook-inverse-tab)) {@include hook-inverse-tab();} + } + + .uk-tab > * > a { + color: $inverse-tab-item-color; + @if(mixin-exists(hook-inverse-tab-item)) {@include hook-inverse-tab-item();} + } + + .uk-tab > * > a:hover, + .uk-tab > * > a:focus{ + color: $inverse-tab-item-hover-color; + @if(mixin-exists(hook-inverse-tab-item-hover)) {@include hook-inverse-tab-item-hover();} + } + + .uk-tab > .uk-active > a { + color: $inverse-tab-item-active-color; + @if(mixin-exists(hook-inverse-tab-item-active)) {@include hook-inverse-tab-item-active();} + } + + .uk-tab > .uk-disabled > a { + color: $inverse-tab-item-disabled-color; + @if(mixin-exists(hook-inverse-tab-item-disabled)) {@include hook-inverse-tab-item-disabled();} + } + +} +@mixin hook-inverse-component-slidenav(){ + + .uk-slidenav { + color: $inverse-slidenav-color; + @if(mixin-exists(hook-inverse-slidenav)) {@include hook-inverse-slidenav();} + } + + .uk-slidenav:hover, + .uk-slidenav:focus { + color: $inverse-slidenav-hover-color; + @if(mixin-exists(hook-inverse-slidenav-hover)) {@include hook-inverse-slidenav-hover();} + } + + .uk-slidenav:active { + color: $inverse-slidenav-active-color; + @if(mixin-exists(hook-inverse-slidenav-active)) {@include hook-inverse-slidenav-active();} + } + +} +@mixin hook-inverse-component-text(){ + + .uk-text-lead { + color: $inverse-text-lead-color; + @if(mixin-exists(hook-inverse-text-lead)) {@include hook-inverse-text-lead();} + } + + .uk-text-meta { + color: $inverse-text-meta-color; + @if(mixin-exists(hook-inverse-text-meta)) {@include hook-inverse-text-meta();} + } + + .uk-text-muted { color: $inverse-text-muted-color !important; } + .uk-text-primary { color: $inverse-text-primary-color !important; } + +} +@mixin hook-inverse-component-utility(){ + + .uk-dropcap::first-letter, + .uk-dropcap p:first-of-type::first-letter { + @if(mixin-exists(hook-inverse-dropcap)) {@include hook-inverse-dropcap();} + } + + .uk-leader-fill { + @if(mixin-exists(hook-inverse-leader)) {@include hook-inverse-leader();} + } + + .uk-logo { + color: $inverse-logo-color; + @if(mixin-exists(hook-inverse-logo)) {@include hook-inverse-logo();} + } + + .uk-logo:hover, + .uk-logo:focus { + color: $inverse-logo-hover-color; + @if(mixin-exists(hook-inverse-logo-hover)) {@include hook-inverse-logo-hover();} + } + + .uk-logo > :not(.uk-logo-inverse):not(:only-of-type) { display: none; } + .uk-logo-inverse { display: inline; } + +} +@mixin hook-inverse(){ + @include hook-inverse-component-base(); + @include hook-inverse-component-link(); + @include hook-inverse-component-heading(); + @include hook-inverse-component-divider(); + @include hook-inverse-component-list(); + @include hook-inverse-component-icon(); + @include hook-inverse-component-form(); + @include hook-inverse-component-button(); + @include hook-inverse-component-grid(); + @include hook-inverse-component-close(); + @include hook-inverse-component-totop(); + @include hook-inverse-component-badge(); + @include hook-inverse-component-label(); + @include hook-inverse-component-article(); + @include hook-inverse-component-search(); + @include hook-inverse-component-nav(); + @include hook-inverse-component-navbar(); + @include hook-inverse-component-subnav(); + @include hook-inverse-component-breadcrumb(); + @include hook-inverse-component-pagination(); + @include hook-inverse-component-tab(); + @include hook-inverse-component-slidenav(); + @include hook-inverse-component-dotnav(); + @include hook-inverse-component-accordion(); + @include hook-inverse-component-iconnav(); + @include hook-inverse-component-text(); + @include hook-inverse-component-column(); + @include hook-inverse-component-utility(); +} +@mixin hook-label(){ + border-radius: $label-border-radius; + text-transform: $label-text-transform; +} +@mixin hook-label-success(){} +@mixin hook-label-warning(){} +@mixin hook-label-danger(){} +@mixin hook-label-misc(){} +@mixin hook-inverse-label(){} +@mixin hook-lightbox(){} +@mixin hook-lightbox-item(){} +@mixin hook-lightbox-toolbar(){} +@mixin hook-lightbox-toolbar-icon(){} +@mixin hook-lightbox-toolbar-icon-hover(){} +@mixin hook-lightbox-button(){} +@mixin hook-lightbox-button-hover(){} +@mixin hook-lightbox-misc(){} +@mixin hook-link-muted(){} +@mixin hook-link-muted-hover(){} +@mixin hook-link-text(){} +@mixin hook-link-text-hover(){} +@mixin hook-link-heading(){} +@mixin hook-link-heading-hover(){} +@mixin hook-link-reset(){} +@mixin hook-link-misc(){} +@mixin hook-inverse-link-muted(){} +@mixin hook-inverse-link-muted-hover(){} +@mixin hook-inverse-link-text-hover(){} +@mixin hook-inverse-link-heading-hover(){} +@mixin hook-list-divider(){} +@mixin hook-list-striped(){ + + &:nth-of-type(odd) { + border-top: $list-striped-border-width solid $list-striped-border; + border-bottom: $list-striped-border-width solid $list-striped-border; + } + +} +@mixin hook-list-bullet(){} +@mixin hook-list-misc(){} +@mixin hook-inverse-list-divider(){} +@mixin hook-inverse-list-striped(){ + + &:nth-of-type(odd) { + border-top-color: $inverse-global-border; + border-bottom-color: $inverse-global-border; + } + +} +@mixin hook-inverse-list-bullet(){} +@mixin hook-margin-misc(){} +@mixin hook-marker(){ + border-radius: 500px; +} +@mixin hook-marker-hover(){} +@mixin hook-marker-misc(){} +@mixin hook-inverse-marker(){} +@mixin hook-inverse-marker-hover(){} +@mixin hook-inverse-component-marker(){ + + .uk-marker { + background: $inverse-marker-background; + color: $inverse-marker-color; + @if(mixin-exists(hook-inverse-marker)) {@include hook-inverse-marker();} + } + + .uk-marker:hover, + .uk-marker:focus { + color: $inverse-marker-hover-color; + @if(mixin-exists(hook-inverse-marker-hover)) {@include hook-inverse-marker-hover();} + } + +} +@mixin hook-modal(){} +@mixin hook-modal-dialog(){} +@mixin hook-modal-full(){} +@mixin hook-modal-body(){} +@mixin hook-modal-header(){ border-bottom: $modal-header-border-width solid $modal-header-border; } +@mixin hook-modal-footer(){ border-top: $modal-footer-border-width solid $modal-footer-border; } +@mixin hook-modal-title(){} +@mixin hook-modal-close(){} +@mixin hook-modal-close-hover(){} +@mixin hook-modal-close-default(){} +@mixin hook-modal-close-default-hover(){} +@mixin hook-modal-close-outside(){} +@mixin hook-modal-close-outside-hover(){} +@mixin hook-modal-close-full(){ + top: 0; + right: 0; + padding: $modal-close-full-padding; + background: $modal-close-full-background; +} +@mixin hook-modal-close-full-hover(){} +@mixin hook-modal-misc(){} +@mixin hook-nav-sub(){} +@mixin hook-nav-parent-icon(){} +@mixin hook-nav-header(){} +@mixin hook-nav-divider(){} +@mixin hook-nav-default(){ font-size: $nav-default-font-size; } +@mixin hook-nav-default-item(){} +@mixin hook-nav-default-item-hover(){} +@mixin hook-nav-default-item-active(){} +@mixin hook-nav-default-header(){} +@mixin hook-nav-default-divider(){} +@mixin hook-nav-primary(){} +@mixin hook-nav-primary-item(){} +@mixin hook-nav-primary-item-hover(){} +@mixin hook-nav-primary-item-active(){} +@mixin hook-nav-primary-header(){} +@mixin hook-nav-primary-divider(){} +@mixin hook-nav-misc(){} +@mixin hook-inverse-nav-parent-icon(){} +@mixin hook-inverse-nav-default-item(){} +@mixin hook-inverse-nav-default-item-hover(){} +@mixin hook-inverse-nav-default-item-active(){} +@mixin hook-inverse-nav-default-header(){} +@mixin hook-inverse-nav-default-divider(){} +@mixin hook-inverse-nav-primary-item(){} +@mixin hook-inverse-nav-primary-item-hover(){} +@mixin hook-inverse-nav-primary-item-active(){} +@mixin hook-inverse-nav-primary-header(){} +@mixin hook-inverse-nav-primary-divider(){} +@mixin hook-navbar(){} +@mixin hook-navbar-container(){} +@mixin hook-navbar-nav-item(){ + text-transform: $navbar-nav-item-text-transform; + transition: 0.1s ease-in-out; + transition-property: color, background-color; +} +@mixin hook-navbar-nav-item-hover(){} +@mixin hook-navbar-nav-item-onclick(){} +@mixin hook-navbar-nav-item-active(){} +@mixin hook-navbar-item(){} +@mixin hook-navbar-toggle(){} +@mixin hook-navbar-toggle-hover(){} +@mixin hook-navbar-toggle-icon(){} +@mixin hook-navbar-toggle-icon-hover(){} +@mixin hook-navbar-subtitle(){} +@mixin hook-navbar-transparent(){} +@mixin hook-navbar-sticky(){} +@mixin hook-navbar-dropdown(){ box-shadow: $navbar-dropdown-box-shadow; } +@mixin hook-navbar-dropdown-dropbar(){ box-shadow: none; } +@mixin hook-navbar-dropdown-nav(){ font-size: $navbar-dropdown-nav-font-size; } +@mixin hook-navbar-dropdown-nav-item(){} +@mixin hook-navbar-dropdown-nav-item-hover(){} +@mixin hook-navbar-dropdown-nav-item-active(){} +@mixin hook-navbar-dropdown-nav-header(){} +@mixin hook-navbar-dropdown-nav-divider(){} +@mixin hook-navbar-dropbar(){} +@mixin hook-navbar-dropbar-slide(){ box-shadow: $navbar-dropbar-box-shadow; } +@mixin hook-navbar-misc(){ + + /* + * Navbar + */ + + .uk-navbar-container > .uk-container .uk-navbar-left { + margin-left: (-$navbar-nav-item-padding-horizontal); + margin-right: (-$navbar-nav-item-padding-horizontal); + } + .uk-navbar-container > .uk-container .uk-navbar-right { margin-right: (-$navbar-nav-item-padding-horizontal); } + + /* + * Grid Divider + */ + + .uk-navbar-dropdown-grid > * { position: relative; } + + .uk-navbar-dropdown-grid > :not(.uk-first-column)::before { + content: ""; + position: absolute; + top: 0; + bottom: 0; + left: ($navbar-dropdown-grid-gutter-horizontal / 2); + border-left: $navbar-dropdown-grid-divider-border-width solid $navbar-dropdown-grid-divider-border; + } + + /* Vertical */ + .uk-navbar-dropdown-grid.uk-grid-stack > .uk-grid-margin::before { + content: ""; + position: absolute; + top: -($navbar-dropdown-grid-gutter-vertical / 2); + left: $navbar-dropdown-grid-gutter-horizontal; + right: 0; + border-top: $navbar-dropdown-grid-divider-border-width solid $navbar-dropdown-grid-divider-border; + } + +} +@mixin hook-inverse-navbar-nav-item(){} +@mixin hook-inverse-navbar-nav-item-hover(){} +@mixin hook-inverse-navbar-nav-item-onclick(){} +@mixin hook-inverse-navbar-nav-item-active(){} +@mixin hook-inverse-navbar-item(){} +@mixin hook-inverse-navbar-toggle(){} +@mixin hook-inverse-navbar-toggle-hover(){} +@mixin hook-notification(){} +@mixin hook-notification-message(){} +@mixin hook-notification-close(){} +@mixin hook-notification-message-primary(){} +@mixin hook-notification-message-success(){} +@mixin hook-notification-message-warning(){} +@mixin hook-notification-message-danger(){} +@mixin hook-notification-misc(){} +@mixin hook-offcanvas-bar(){} +@mixin hook-offcanvas-close(){} +@mixin hook-offcanvas-overlay(){} +@mixin hook-offcanvas-misc(){} +@mixin hook-overlay(){} +@mixin hook-overlay-icon(){} +@mixin hook-overlay-default(){} +@mixin hook-overlay-primary(){} +@mixin hook-overlay-misc(){} +@mixin hook-padding-misc(){} +@mixin hook-pagination(){} +@mixin hook-pagination-item(){ transition: color 0.1s ease-in-out; } +@mixin hook-pagination-item-hover(){} +@mixin hook-pagination-item-active(){} +@mixin hook-pagination-item-disabled(){} +@mixin hook-pagination-misc(){} +@mixin hook-inverse-pagination-item(){} +@mixin hook-inverse-pagination-item-hover(){} +@mixin hook-inverse-pagination-item-active(){} +@mixin hook-inverse-pagination-item-disabled(){} +@mixin hook-placeholder(){ border: $placeholder-border-width dashed $placeholder-border; } +@mixin hook-placeholder-misc(){} +@mixin hook-position-misc(){} +@mixin hook-print(){} +@mixin hook-progress(){ + border-radius: $progress-border-radius; + overflow: hidden; +} +@mixin hook-progress-bar(){} +@mixin hook-progress-misc(){} +@mixin hook-search-input(){} +@mixin hook-search-default-input(){ border: $search-default-border-width solid $search-default-border; } +@mixin hook-search-default-input-focus(){} +@mixin hook-search-navbar-input(){} +@mixin hook-search-large-input(){} +@mixin hook-search-toggle(){} +@mixin hook-search-toggle-hover(){} +@mixin hook-search-misc(){} +@mixin hook-inverse-search-default-input(){ border-color: $inverse-global-border; } +@mixin hook-inverse-search-default-input-focus(){} +@mixin hook-inverse-search-navbar-input(){} +@mixin hook-inverse-search-large-input(){} +@mixin hook-inverse-search-toggle(){} +@mixin hook-inverse-search-toggle-hover(){} +@mixin hook-section(){} +@mixin hook-section-default(){} +@mixin hook-section-muted(){} +@mixin hook-section-primary(){} +@mixin hook-section-secondary(){} +@mixin hook-section-overlap(){} +@mixin hook-section-misc(){} +@mixin hook-slidenav(){ transition: color 0.1s ease-in-out; } +@mixin hook-slidenav-hover(){} +@mixin hook-slidenav-active(){} +@mixin hook-slidenav-previous(){} +@mixin hook-slidenav-next(){} +@mixin hook-slidenav-large(){} +@mixin hook-slidenav-container(){} +@mixin hook-slidenav-misc(){} +@mixin hook-inverse-slidenav(){} +@mixin hook-inverse-slidenav-hover(){} +@mixin hook-inverse-slidenav-active(){} +@mixin hook-slider(){} +@mixin hook-slider-misc(){} +@mixin hook-slideshow(){} +@mixin hook-slideshow-misc(){} +@mixin hook-sortable(){} +@mixin hook-sortable-drag(){} +@mixin hook-sortable-placeholder(){} +@mixin hook-sortable-empty(){} +@mixin hook-sortable-misc(){} +@mixin hook-spinner(){} +@mixin hook-spinner-misc(){} +@mixin hook-sticky-misc(){} +@mixin hook-subnav(){} +@mixin hook-subnav-item(){ + font-size: $subnav-item-font-size; + text-transform: $subnav-item-text-transform; + transition: 0.1s ease-in-out; + transition-property: color, background-color; +} +@mixin hook-subnav-item-hover(){} +@mixin hook-subnav-item-active(){} +@mixin hook-subnav-divider(){} +@mixin hook-subnav-pill-item(){} +@mixin hook-subnav-pill-item-hover(){} +@mixin hook-subnav-pill-item-onclick(){} +@mixin hook-subnav-pill-item-active(){} +@mixin hook-subnav-item-disabled(){} +@mixin hook-subnav-misc(){} +@mixin hook-inverse-subnav-item(){} +@mixin hook-inverse-subnav-item-hover(){} +@mixin hook-inverse-subnav-item-active(){} +@mixin hook-inverse-subnav-divider(){} +@mixin hook-inverse-subnav-pill-item(){} +@mixin hook-inverse-subnav-pill-item-hover(){} +@mixin hook-inverse-subnav-pill-item-onclick(){} +@mixin hook-inverse-subnav-pill-item-active(){} +@mixin hook-inverse-subnav-item-disabled(){} +@mixin hook-switcher-misc(){} +@mixin hook-tab(){ + + position: relative; + + &::before { + content: ""; + position: absolute; + bottom: 0; + left: $tab-margin-horizontal; + right: 0; + border-bottom: $tab-border-width solid $tab-border; + } + +} +@mixin hook-tab-item(){ + border-bottom: $tab-item-border-width solid transparent; + font-size: $tab-item-font-size; + text-transform: $tab-item-text-transform; + transition: color 0.1s ease-in-out; +} +@mixin hook-tab-item-hover(){} +@mixin hook-tab-item-active(){ border-color: $tab-item-active-border; } +@mixin hook-tab-item-disabled(){} +@mixin hook-tab-bottom(){ + + &::before { + top: 0; + bottom: auto; + } + +} +@mixin hook-tab-bottom-item(){ + border-top: $tab-item-border-width solid transparent; + border-bottom: none; +} +@mixin hook-tab-left(){ + + &::before { + top: 0; + bottom: 0; + left: auto; + right: 0; + border-left: $tab-border-width solid $tab-border; + border-bottom: none; + } + +} +@mixin hook-tab-right(){ + + &::before { + top: 0; + bottom: 0; + left: 0; + right: auto; + border-left: $tab-border-width solid $tab-border; + border-bottom: none; + } + +} +@mixin hook-tab-left-item(){ + border-right: $tab-item-border-width solid transparent; + border-bottom: none; +} +@mixin hook-tab-right-item(){ + border-left: $tab-item-border-width solid transparent; + border-bottom: none; +} +@mixin hook-tab-misc(){ + + .uk-tab .uk-dropdown { margin-left: ($tab-margin-horizontal + $tab-item-padding-horizontal) } + +} +@mixin hook-inverse-tab(){ + + &::before { border-color: $inverse-tab-border; } + +} +@mixin hook-inverse-tab-item(){} +@mixin hook-inverse-tab-item-hover(){} +@mixin hook-inverse-tab-item-active(){ border-color: $inverse-global-primary-background; } +@mixin hook-inverse-tab-item-disabled(){} +@mixin hook-table(){} +@mixin hook-table-header-cell(){ text-transform: uppercase; } +@mixin hook-table-cell(){} +@mixin hook-table-footer(){} +@mixin hook-table-caption(){} +@mixin hook-table-row-active(){} +@mixin hook-table-divider(){} +@mixin hook-table-striped(){ + border-top: $table-striped-border-width solid $table-striped-border; + border-bottom: $table-striped-border-width solid $table-striped-border; +} +@mixin hook-table-hover(){} +@mixin hook-table-small(){} +@mixin hook-table-large(){} +@mixin hook-table-misc(){ + + .uk-table tbody tr { transition: background-color 0.1s linear; } + +} +@mixin hook-inverse-table-header-cell(){} +@mixin hook-inverse-table-caption(){} +@mixin hook-inverse-table-row-active(){} +@mixin hook-inverse-table-divider(){} +@mixin hook-inverse-table-striped(){ + border-top-color: $inverse-global-border; + border-bottom-color: $inverse-global-border; +} +@mixin hook-inverse-table-hover(){} +@mixin hook-inverse-component-table(){ + + .uk-table th { + color: $inverse-table-header-cell-color; + @if(mixin-exists(hook-inverse-table-header-cell)) {@include hook-inverse-table-header-cell();} + } + + .uk-table caption { + color: $inverse-table-caption-color; + @if(mixin-exists(hook-inverse-table-caption)) {@include hook-inverse-table-caption();} + } + + .uk-table > tr.uk-active, + .uk-table tbody tr.uk-active { + background: $inverse-table-row-active-background; + @if(mixin-exists(hook-inverse-table-row-active)) {@include hook-inverse-table-row-active();} + } + + .uk-table-divider > tr:not(:first-child), + .uk-table-divider > :not(:first-child) > tr, + .uk-table-divider > :first-child > tr:not(:first-child) { + border-top-color: $inverse-table-divider-border; + @if(mixin-exists(hook-inverse-table-divider)) {@include hook-inverse-table-divider();} + } + + .uk-table-striped > tr:nth-of-type(odd), + .uk-table-striped tbody tr:nth-of-type(odd) { + background: $inverse-table-striped-row-background; + @if(mixin-exists(hook-inverse-table-striped)) {@include hook-inverse-table-striped();} + } + + .uk-table-hover > tr:hover, + .uk-table-hover tbody tr:hover { + background: $inverse-table-hover-row-background; + @if(mixin-exists(hook-inverse-table-hover)) {@include hook-inverse-table-hover();} + } + +} +@mixin hook-text-lead(){} +@mixin hook-text-meta(){ + + a { color: $text-meta-link-color; } + + a:hover { + color: $text-meta-link-hover-color; + text-decoration: none; + } + +} +@mixin hook-text-small(){} +@mixin hook-text-large(){} +@mixin hook-text-background(){} +@mixin hook-text-misc(){} +@mixin hook-inverse-text-lead(){} +@mixin hook-inverse-text-meta(){} +@mixin hook-thumbnav(){} +@mixin hook-thumbnav-item(){ + + position: relative; + + &::after { + content: ""; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + background: $thumbnav-item-background; + transition: background-color 0.1s ease-in-out; + } + +} +@mixin hook-thumbnav-item-hover(){ + &::after { background-color: $thumbnav-item-hover-background; } +} +@mixin hook-thumbnav-item-active(){ + &::after { background-color: $thumbnav-item-active-background; } +} +@mixin hook-thumbnav-misc(){} +@mixin hook-inverse-thumbnav-item(){} +@mixin hook-inverse-thumbnav-item-hover(){} +@mixin hook-inverse-thumbnav-item-active(){} +@mixin hook-inverse-component-thumbnav(){ + + .uk-thumbnav > * > * { + @if(mixin-exists(hook-inverse-thumbnav-item)) {@include hook-inverse-thumbnav-item();} + } + + .uk-thumbnav > * > :hover, + .uk-thumbnav > * > :focus { + @if(mixin-exists(hook-inverse-thumbnav-item-hover)) {@include hook-inverse-thumbnav-item-hover();} + } + + .uk-thumbnav > .uk-active > * { + @if(mixin-exists(hook-inverse-thumbnav-item-active)) {@include hook-inverse-thumbnav-item-active();} + } + +} +@mixin hook-tile(){} +@mixin hook-tile-default(){} +@mixin hook-tile-muted(){} +@mixin hook-tile-primary(){} +@mixin hook-tile-secondary(){} +@mixin hook-tile-misc(){} +@mixin hook-tooltip(){} +@mixin hook-tooltip-misc(){} +@mixin hook-totop(){ transition: color 0.1s ease-in-out; } +@mixin hook-totop-hover(){} +@mixin hook-totop-active(){} +@mixin hook-totop-misc(){} +@mixin hook-inverse-totop(){} +@mixin hook-inverse-totop-hover(){} +@mixin hook-inverse-totop-active(){} +@mixin hook-transition-misc(){} +@mixin hook-panel-scrollable(){} +@mixin hook-box-shadow-bottom(){} +@mixin hook-dropcap(){ + // Prevent line wrap + margin-bottom: -2px; +} +@mixin hook-leader(){} +@mixin hook-logo(){} +@mixin hook-logo-hover(){} +@mixin hook-utility-misc(){} +@mixin hook-inverse-dropcap(){} +@mixin hook-inverse-leader(){} +@mixin hook-inverse-logo(){} +@mixin hook-inverse-logo-hover(){} +@mixin hook-visibility-misc(){} +@mixin hook-width-misc(){} \ No newline at end of file diff --git a/_sass/uikit/mixins.scss b/_sass/uikit/mixins.scss new file mode 100644 index 0000000..573b2f3 --- /dev/null +++ b/_sass/uikit/mixins.scss @@ -0,0 +1,1644 @@ +@mixin hook-accordion(){} +@mixin hook-accordion-item(){} +@mixin hook-accordion-title(){} +@mixin hook-accordion-title-hover(){} +@mixin hook-accordion-content(){} +@mixin hook-accordion-misc(){} +@mixin hook-inverse-accordion-item(){} +@mixin hook-inverse-accordion-title(){} +@mixin hook-inverse-accordion-title-hover(){} +@mixin hook-inverse-component-accordion(){ + + .uk-accordion > :nth-child(n+2) { + @if(mixin-exists(hook-inverse-accordion-item)) {@include hook-inverse-accordion-item();} + } + + .uk-accordion-title { + color: $inverse-accordion-title-color; + @if(mixin-exists(hook-inverse-accordion-title)) {@include hook-inverse-accordion-title();} + } + + .uk-accordion-title:hover, + .uk-accordion-title:focus { + color: $inverse-accordion-title-hover-color; + @if(mixin-exists(hook-inverse-accordion-title-hover)) {@include hook-inverse-accordion-title-hover();} + } + +} +@mixin hook-align-misc(){} +@mixin hook-alert(){} +@mixin hook-alert-close(){} +@mixin hook-alert-close-hover(){} +@mixin hook-alert-primary(){} +@mixin hook-alert-success(){} +@mixin hook-alert-warning(){} +@mixin hook-alert-danger(){} +@mixin hook-alert-misc(){} +@mixin hook-article(){} +@mixin hook-article-adjacent(){} +@mixin hook-article-title(){} +@mixin hook-article-meta(){} +@mixin hook-article-misc(){} +@mixin hook-inverse-article-title(){} +@mixin hook-inverse-article-meta(){} +@mixin hook-inverse-component-article(){ + + .uk-article-title { + @if(mixin-exists(hook-inverse-article-title)) {@include hook-inverse-article-title();} + } + + .uk-article-meta { + color: $inverse-article-meta-color; + @if(mixin-exists(hook-inverse-article-meta)) {@include hook-inverse-article-meta();} + } + +} +@mixin hook-animation-misc(){} +@mixin hook-background-misc(){} +@mixin hook-badge(){} +@mixin hook-badge-hover(){} +@mixin hook-badge-misc(){} +@mixin hook-inverse-badge(){} +@mixin hook-inverse-badge-hover(){} +@mixin hook-inverse-component-badge(){ + + .uk-badge { + background-color: $inverse-badge-background; + color: $inverse-badge-color; + @if(mixin-exists(hook-inverse-badge)) {@include hook-inverse-badge();} + } + + .uk-badge:hover, + .uk-badge:focus { + color: $inverse-badge-hover-color; + @if(mixin-exists(hook-inverse-badge-hover)) {@include hook-inverse-badge-hover();} + } + +} +@mixin hook-base-body(){} +@mixin hook-base-link(){} +@mixin hook-base-link-hover(){} +@mixin hook-base-code(){} +@mixin hook-base-heading(){} +@mixin hook-base-h1(){} +@mixin hook-base-h2(){} +@mixin hook-base-h3(){} +@mixin hook-base-h4(){} +@mixin hook-base-h5(){} +@mixin hook-base-h6(){} +@mixin hook-base-hr(){} +@mixin hook-base-blockquote(){} +@mixin hook-base-blockquote-footer(){} +@mixin hook-base-pre(){} +@mixin hook-base-misc(){} +@mixin hook-inverse-base-link(){} +@mixin hook-inverse-base-link-hover(){} +@mixin hook-inverse-base-code(){} +@mixin hook-inverse-base-heading(){} +@mixin hook-inverse-base-h1(){} +@mixin hook-inverse-base-h2(){} +@mixin hook-inverse-base-h3(){} +@mixin hook-inverse-base-h4(){} +@mixin hook-inverse-base-h5(){} +@mixin hook-inverse-base-h6(){} +@mixin hook-inverse-base-blockquote(){} +@mixin hook-inverse-base-blockquote-footer(){} +@mixin hook-inverse-base-hr(){} +@mixin hook-inverse-component-base(){ + + color: $inverse-base-color; + + // Base + // ======================================================================== + + // + // Link + // + + a, + .uk-link { + color: $inverse-base-link-color; + @if(mixin-exists(hook-inverse-base-link)) {@include hook-inverse-base-link();} + } + + a:hover, + .uk-link:hover { + color: $inverse-base-link-hover-color; + @if(mixin-exists(hook-inverse-base-link-hover)) {@include hook-inverse-base-link-hover();} + } + + // + // Code + // + + :not(pre) > code, + :not(pre) > kbd, + :not(pre) > samp { + color: $inverse-base-code-color; + @if(mixin-exists(hook-inverse-base-code)) {@include hook-inverse-base-code();} + } + + // + // Emphasize + // + + em { color: $inverse-base-em-color; } + + // + // Headings + // + + h1, .uk-h1, + h2, .uk-h2, + h3, .uk-h3, + h4, .uk-h4, + h5, .uk-h5, + h6, .uk-h6 { + color: $inverse-base-heading-color; + @if(mixin-exists(hook-inverse-base-heading)) {@include hook-inverse-base-heading();} + } + + h1, .uk-h1 { + @if(mixin-exists(hook-inverse-base-h1)) {@include hook-inverse-base-h1();} + } + + h2, .uk-h2 { + @if(mixin-exists(hook-inverse-base-h2)) {@include hook-inverse-base-h2();} + } + + h3, .uk-h3 { + @if(mixin-exists(hook-inverse-base-h3)) {@include hook-inverse-base-h3();} + } + + h4, .uk-h4 { + @if(mixin-exists(hook-inverse-base-h4)) {@include hook-inverse-base-h4();} + } + + h5, .uk-h5 { + @if(mixin-exists(hook-inverse-base-h5)) {@include hook-inverse-base-h5();} + } + + h6, .uk-h6 { + @if(mixin-exists(hook-inverse-base-h6)) {@include hook-inverse-base-h6();} + } + + // + // Blockquotes + // + + blockquote { + @if(mixin-exists(hook-inverse-base-blockquote)) {@include hook-inverse-base-blockquote();} + } + + blockquote footer { + @if(mixin-exists(hook-inverse-base-blockquote-footer)) {@include hook-inverse-base-blockquote-footer();} + } + + // + // Horizontal rules + // + + hr, .uk-hr { + border-top-color: $inverse-base-hr-border; + @if(mixin-exists(hook-inverse-base-hr)) {@include hook-inverse-base-hr();} + } + +} +@mixin hook-breadcrumb(){} +@mixin hook-breadcrumb-item(){} +@mixin hook-breadcrumb-item-hover(){} +@mixin hook-breadcrumb-item-disabled(){} +@mixin hook-breadcrumb-item-active(){} +@mixin hook-breadcrumb-divider(){} +@mixin hook-breadcrumb-misc(){} +@mixin hook-inverse-breadcrumb-item(){} +@mixin hook-inverse-breadcrumb-item-hover(){} +@mixin hook-inverse-breadcrumb-item-disabled(){} +@mixin hook-inverse-breadcrumb-item-active(){} +@mixin hook-inverse-breadcrumb-divider(){} +@mixin hook-inverse-component-breadcrumb(){ + + .uk-breadcrumb > * > * { + color: $inverse-breadcrumb-item-color; + @if(mixin-exists(hook-inverse-breadcrumb-item)) {@include hook-inverse-breadcrumb-item();} + } + + .uk-breadcrumb > * > :hover, + .uk-breadcrumb > * > :focus { + color: $inverse-breadcrumb-item-hover-color; + @if(mixin-exists(hook-inverse-breadcrumb-item-hover)) {@include hook-inverse-breadcrumb-item-hover();} + } + + + .uk-breadcrumb > .uk-disabled > * { + @if(mixin-exists(hook-inverse-breadcrumb-item-disabled)) {@include hook-inverse-breadcrumb-item-disabled();} + } + + .uk-breadcrumb > :last-child > * { + color: $inverse-breadcrumb-item-active-color; + @if(mixin-exists(hook-inverse-breadcrumb-item-active)) {@include hook-inverse-breadcrumb-item-active();} + } + + // + // Divider + // + + .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before { + color: $inverse-breadcrumb-divider-color; + @if(mixin-exists(hook-inverse-breadcrumb-divider)) {@include hook-inverse-breadcrumb-divider();} + } + +} +@mixin hook-button(){} +@mixin hook-button-hover(){} +@mixin hook-button-focus(){} +@mixin hook-button-active(){} +@mixin hook-button-default(){} +@mixin hook-button-default-hover(){} +@mixin hook-button-default-active(){} +@mixin hook-button-primary(){} +@mixin hook-button-primary-hover(){} +@mixin hook-button-primary-active(){} +@mixin hook-button-secondary(){} +@mixin hook-button-secondary-hover(){} +@mixin hook-button-secondary-active(){} +@mixin hook-button-danger(){} +@mixin hook-button-danger-hover(){} +@mixin hook-button-danger-active(){} +@mixin hook-button-disabled(){} +@mixin hook-button-small(){} +@mixin hook-button-large(){} +@mixin hook-button-text(){} +@mixin hook-button-text-hover(){} +@mixin hook-button-text-disabled(){} +@mixin hook-button-link(){} +@mixin hook-button-misc(){} +@mixin hook-inverse-button-default(){} +@mixin hook-inverse-button-default-hover(){} +@mixin hook-inverse-button-default-active(){} +@mixin hook-inverse-button-primary(){} +@mixin hook-inverse-button-primary-hover(){} +@mixin hook-inverse-button-primary-active(){} +@mixin hook-inverse-button-secondary(){} +@mixin hook-inverse-button-secondary-hover(){} +@mixin hook-inverse-button-secondary-active(){} +@mixin hook-inverse-button-text(){} +@mixin hook-inverse-button-text-hover(){} +@mixin hook-inverse-button-text-disabled(){} +@mixin hook-inverse-button-link(){} +@mixin hook-inverse-component-button(){ + + // + // Default + // + + .uk-button-default { + background-color: $inverse-button-default-background; + color: $inverse-button-default-color; + @if(mixin-exists(hook-inverse-button-default)) {@include hook-inverse-button-default();} + } + + .uk-button-default:hover, + .uk-button-default:focus { + background-color: $inverse-button-default-hover-background; + color: $inverse-button-default-hover-color; + @if(mixin-exists(hook-inverse-button-default-hover)) {@include hook-inverse-button-default-hover();} + } + + .uk-button-default:active, + .uk-button-default.uk-active { + background-color: $inverse-button-default-active-background; + color: $inverse-button-default-active-color; + @if(mixin-exists(hook-inverse-button-default-active)) {@include hook-inverse-button-default-active();} + } + + // + // Primary + // + + .uk-button-primary { + background-color: $inverse-button-primary-background; + color: $inverse-button-primary-color; + @if(mixin-exists(hook-inverse-button-primary)) {@include hook-inverse-button-primary();} + } + + .uk-button-primary:hover, + .uk-button-primary:focus { + background-color: $inverse-button-primary-hover-background; + color: $inverse-button-primary-hover-color; + @if(mixin-exists(hook-inverse-button-primary-hover)) {@include hook-inverse-button-primary-hover();} + } + + .uk-button-primary:active, + .uk-button-primary.uk-active { + background-color: $inverse-button-primary-active-background; + color: $inverse-button-primary-active-color; + @if(mixin-exists(hook-inverse-button-primary-active)) {@include hook-inverse-button-primary-active();} + } + + // + // Secondary + // + + .uk-button-secondary { + background-color: $inverse-button-secondary-background; + color: $inverse-button-secondary-color; + @if(mixin-exists(hook-inverse-button-secondary)) {@include hook-inverse-button-secondary();} + } + + .uk-button-secondary:hover, + .uk-button-secondary:focus { + background-color: $inverse-button-secondary-hover-background; + color: $inverse-button-secondary-hover-color; + @if(mixin-exists(hook-inverse-button-secondary-hover)) {@include hook-inverse-button-secondary-hover();} + } + + .uk-button-secondary:active, + .uk-button-secondary.uk-active { + background-color: $inverse-button-secondary-active-background; + color: $inverse-button-secondary-active-color; + @if(mixin-exists(hook-inverse-button-secondary-active)) {@include hook-inverse-button-secondary-active();} + } + + // + // Text + // + + .uk-button-text { + color: $inverse-button-text-color; + @if(mixin-exists(hook-inverse-button-text)) {@include hook-inverse-button-text();} + } + + .uk-button-text:hover, + .uk-button-text:focus { + color: $inverse-button-text-hover-color; + @if(mixin-exists(hook-inverse-button-text-hover)) {@include hook-inverse-button-text-hover();} + } + + .uk-button-text:disabled { + color: $inverse-button-text-disabled-color; + @if(mixin-exists(hook-inverse-button-text-disabled)) {@include hook-inverse-button-text-disabled();} + } + + // + // Link + // + + .uk-button-link { + color: $inverse-button-link-color; + @if(mixin-exists(hook-inverse-button-link)) {@include hook-inverse-button-link();} + } + + .uk-button-link:hover, + .uk-button-link:focus { color: $inverse-button-link-hover-color; } + + +} +@mixin hook-card(){} +@mixin hook-card-body(){} +@mixin hook-card-header(){} +@mixin hook-card-footer(){} +@mixin hook-card-media(){} +@mixin hook-card-media-top(){} +@mixin hook-card-media-bottom(){} +@mixin hook-card-media-left(){} +@mixin hook-card-media-right(){} +@mixin hook-card-title(){} +@mixin hook-card-badge(){} +@mixin hook-card-hover(){} +@mixin hook-card-default(){} +@mixin hook-card-default-title(){} +@mixin hook-card-default-hover(){} +@mixin hook-card-default-header(){} +@mixin hook-card-default-footer(){} +@mixin hook-card-primary(){} +@mixin hook-card-primary-title(){} +@mixin hook-card-primary-hover(){} +@mixin hook-card-secondary(){} +@mixin hook-card-secondary-title(){} +@mixin hook-card-secondary-hover(){} +@mixin hook-card-misc(){} +@mixin hook-close(){} +@mixin hook-close-hover(){} +@mixin hook-close-misc(){} +@mixin hook-inverse-close(){} +@mixin hook-inverse-close-hover(){} +@mixin hook-inverse-component-close(){ + + .uk-close { + color: $inverse-close-color; + @if(mixin-exists(hook-inverse-close)) {@include hook-inverse-close();} + } + + .uk-close:hover, + .uk-close:focus { + color: $inverse-close-hover-color; + @if(mixin-exists(hook-inverse-close-hover)) {@include hook-inverse-close-hover();} + } + +} +@mixin hook-column-misc(){} +@mixin hook-inverse-component-column(){ + + .uk-column-divider { column-rule-color: $inverse-column-divider-rule-color; } + +} +@mixin hook-comment(){} +@mixin hook-comment-body(){} +@mixin hook-comment-header(){} +@mixin hook-comment-title(){} +@mixin hook-comment-meta(){} +@mixin hook-comment-avatar(){} +@mixin hook-comment-list-adjacent(){} +@mixin hook-comment-list-sub(){} +@mixin hook-comment-list-sub-adjacent(){} +@mixin hook-comment-primary(){} +@mixin hook-comment-misc(){} +@mixin hook-container-misc(){} +@mixin hook-countdown(){} +@mixin hook-countdown-item(){} +@mixin hook-countdown-number(){} +@mixin hook-countdown-separator(){} +@mixin hook-countdown-label(){} +@mixin hook-countdown-misc(){} +@mixin hook-inverse-countdown-item(){} +@mixin hook-inverse-countdown-number(){} +@mixin hook-inverse-countdown-separator(){} +@mixin hook-inverse-countdown-label(){} +@mixin hook-inverse-component-countdown(){ + + .uk-countdown-number, + .uk-countdown-separator { + @if(mixin-exists(hook-inverse-countdown-item)) {@include hook-inverse-countdown-item();} + } + + .uk-countdown-number { + @if(mixin-exists(hook-inverse-countdown-number)) {@include hook-inverse-countdown-number();} + } + + .uk-countdown-separator { + @if(mixin-exists(hook-inverse-countdown-separator)) {@include hook-inverse-countdown-separator();} + } + + .uk-countdown-label { + @if(mixin-exists(hook-inverse-countdown-label)) {@include hook-inverse-countdown-label();} + } + +} +@mixin hook-cover-misc(){} +@mixin hook-description-list-term(){} +@mixin hook-description-list-description(){} +@mixin hook-description-list-divider-term(){} +@mixin hook-description-list-misc(){} +@mixin svg-fill($src, $color-default, $color-new, $property: background-image){ + + $escape-color-default: escape($color-default) !default; + $escape-color-new: escape("#{$color-new}") !default; + + $data-uri: data-uri('image/svg+xml;charset=UTF-8', "#{$src}") !default; + $replace-src: replace("#{$data-uri}", "#{$escape-color-default}", "#{$escape-color-new}", "g") !default; + + #{$property}: unquote($replace-src); +} +@mixin hook-divider-icon(){} +@mixin hook-divider-icon-line(){} +@mixin hook-divider-icon-line-left(){} +@mixin hook-divider-icon-line-right(){} +@mixin hook-divider-small(){} +@mixin hook-divider-misc(){} +@mixin hook-inverse-divider-icon(){} +@mixin hook-inverse-divider-icon-line(){} +@mixin hook-inverse-divider-small(){} +@mixin hook-inverse-component-divider(){ + + .uk-divider-icon { + @include svg-fill($internal-divider-icon-image, "#000", $inverse-divider-icon-color); + @if(mixin-exists(hook-inverse-divider-icon)) {@include hook-inverse-divider-icon();} + } + + .uk-divider-icon::before, + .uk-divider-icon::after { + border-bottom-color: $inverse-divider-icon-line-border; + @if(mixin-exists(hook-inverse-divider-icon-line)) {@include hook-inverse-divider-icon-line();} + } + + .uk-divider-small::after { + border-top-color: $inverse-divider-small-border; + @if(mixin-exists(hook-inverse-divider-small)) {@include hook-inverse-divider-small();} + } + +} +@mixin hook-dotnav(){} +@mixin hook-dotnav-item(){} +@mixin hook-dotnav-item-hover(){} +@mixin hook-dotnav-item-onclick(){} +@mixin hook-dotnav-item-active(){} +@mixin hook-dotnav-misc(){} +@mixin hook-inverse-dotnav-item(){} +@mixin hook-inverse-dotnav-item-hover(){} +@mixin hook-inverse-dotnav-item-onclick(){} +@mixin hook-inverse-dotnav-item-active(){} +@mixin hook-inverse-component-dotnav(){ + + .uk-dotnav > * > * { + background-color: $inverse-dotnav-item-background; + @if(mixin-exists(hook-inverse-dotnav-item)) {@include hook-inverse-dotnav-item();} + } + + .uk-dotnav > * > :hover, + .uk-dotnav > * > :focus { + background-color: $inverse-dotnav-item-hover-background; + @if(mixin-exists(hook-inverse-dotnav-item-hover)) {@include hook-inverse-dotnav-item-hover();} + } + + .uk-dotnav > * > :active { + background-color: $inverse-dotnav-item-onclick-background; + @if(mixin-exists(hook-inverse-dotnav-item-onclick)) {@include hook-inverse-dotnav-item-onclick();} + } + + .uk-dotnav > .uk-active > * { + background-color: $inverse-dotnav-item-active-background; + @if(mixin-exists(hook-inverse-dotnav-item-active)) {@include hook-inverse-dotnav-item-active();} + } + +} +@mixin hook-drop-misc(){} +@mixin hook-dropdown(){} +@mixin hook-dropdown-nav(){} +@mixin hook-dropdown-nav-item(){} +@mixin hook-dropdown-nav-item-hover(){} +@mixin hook-dropdown-nav-header(){} +@mixin hook-dropdown-nav-divider(){} +@mixin hook-dropdown-misc(){} +@mixin hook-flex-misc(){} +@mixin hook-form-range(){} +@mixin hook-form-range-thumb(){} +@mixin hook-form-range-track(){} +@mixin hook-form-range-track-focus(){} +@mixin hook-form-range-misc(){} +@mixin hook-form(){} +@mixin hook-form-single-line(){} +@mixin hook-form-multi-line(){} +@mixin hook-form-focus(){} +@mixin hook-form-disabled(){} +@mixin hook-form-danger(){} +@mixin hook-form-success(){} +@mixin hook-form-blank(){} +@mixin hook-form-blank-focus(){} +@mixin hook-form-radio(){} +@mixin hook-form-radio-focus(){} +@mixin hook-form-radio-checked(){} +@mixin hook-form-radio-checked-focus(){} +@mixin hook-form-radio-disabled(){} +@mixin hook-form-legend(){} +@mixin hook-form-label(){} +@mixin hook-form-stacked-label(){} +@mixin hook-form-horizontal-label(){} +@mixin hook-form-misc(){} +@mixin hook-inverse-form(){} +@mixin hook-inverse-form-focus(){} +@mixin hook-inverse-form-radio(){} +@mixin hook-inverse-form-radio-focus(){} +@mixin hook-inverse-form-radio-checked(){} +@mixin hook-inverse-form-radio-checked-focus(){} +@mixin hook-inverse-form-label(){} +@mixin hook-inverse-component-form(){ + + .uk-input, + .uk-select, + .uk-textarea { + background-color: $inverse-form-background; + color: $inverse-form-color; + background-clip: padding-box; + @if(mixin-exists(hook-inverse-form)) {@include hook-inverse-form();} + + &:focus { + background-color: $inverse-form-focus-background; + color: $inverse-form-focus-color; + @if(mixin-exists(hook-inverse-form-focus)) {@include hook-inverse-form-focus();} + } + } + + // + // Placeholder + // + + .uk-input:-ms-input-placeholder { color: $inverse-form-placeholder-color !important; } + .uk-input::placeholder { color: $inverse-form-placeholder-color; } + + .uk-textarea:-ms-input-placeholder { color: $inverse-form-placeholder-color !important; } + .uk-textarea::placeholder { color: $inverse-form-placeholder-color; } + + // + // Radio and checkbox + // + + .uk-select:not([multiple]):not([size]) { @include svg-fill($internal-form-select-image, "#000", $inverse-form-select-icon-color); } + + // + // Radio and checkbox + // + + .uk-radio, + .uk-checkbox { + background-color: $inverse-form-radio-background; + @if(mixin-exists(hook-inverse-form-radio)) {@include hook-inverse-form-radio();} + } + + // Focus + .uk-radio:focus, + .uk-checkbox:focus { + @if(mixin-exists(hook-inverse-form-radio-focus)) {@include hook-inverse-form-radio-focus();} + } + + // Checked + .uk-radio:checked, + .uk-checkbox:checked, + .uk-checkbox:indeterminate { + background-color: $inverse-form-radio-checked-background; + @if(mixin-exists(hook-inverse-form-radio-checked)) {@include hook-inverse-form-radio-checked();} + } + + // Focus + .uk-radio:checked:focus, + .uk-checkbox:checked:focus, + .uk-checkbox:indeterminate:focus { + background-color: $inverse-form-radio-checked-focus-background; + @if(mixin-exists(hook-inverse-form-radio-checked-focus)) {@include hook-inverse-form-radio-checked-focus();} + } + + // Icon + .uk-radio:checked { @include svg-fill($internal-form-radio-image, "#000", $inverse-form-radio-checked-icon-color); } + .uk-checkbox:checked { @include svg-fill($internal-form-checkbox-image, "#000", $inverse-form-radio-checked-icon-color); } + .uk-checkbox:indeterminate { @include svg-fill($internal-form-checkbox-indeterminate-image, "#000", $inverse-form-radio-checked-icon-color); } + + // Label + .uk-form-label { + @if(mixin-exists(hook-inverse-form-label)) {@include hook-inverse-form-label();} + } + +} +@mixin hook-grid-misc(){} +@mixin hook-inverse-component-grid(){ + + .uk-grid-divider > :not(.uk-first-column)::before { border-left-color: $inverse-grid-divider-border; } + .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before { border-top-color: $inverse-grid-divider-border; } + +} +@mixin hook-heading-primary(){} +@mixin hook-heading-hero(){} +@mixin hook-heading-divider(){} +@mixin hook-heading-bullet(){} +@mixin hook-heading-line(){} +@mixin hook-heading-misc(){} +@mixin hook-inverse-heading-primary(){} +@mixin hook-inverse-heading-hero(){} +@mixin hook-inverse-heading-divider(){} +@mixin hook-inverse-heading-bullet(){} +@mixin hook-inverse-heading-line(){} +@mixin hook-inverse-component-heading(){ + + .uk-heading-primary { + @if(mixin-exists(hook-inverse-heading-primary)) {@include hook-inverse-heading-primary();} + } + + .uk-heading-hero { + @if(mixin-exists(hook-inverse-heading-hero)) {@include hook-inverse-heading-hero();} + } + + .uk-heading-divider { + border-bottom-color: $inverse-heading-divider-border; + @if(mixin-exists(hook-inverse-heading-divider)) {@include hook-inverse-heading-divider();} + } + + .uk-heading-bullet::before { + border-left-color: $inverse-heading-bullet-border; + @if(mixin-exists(hook-inverse-heading-bullet)) {@include hook-inverse-heading-bullet();} + } + + .uk-heading-line > ::before, + .uk-heading-line > ::after { + border-bottom-color: $inverse-heading-line-border; + @if(mixin-exists(hook-inverse-heading-line)) {@include hook-inverse-heading-line();} + } + +} +@mixin hook-icon-link(){} +@mixin hook-icon-link-hover(){} +@mixin hook-icon-link-active(){} +@mixin hook-icon-button(){} +@mixin hook-icon-button-hover(){} +@mixin hook-icon-button-active(){} +@mixin hook-icon-misc(){} +@mixin hook-inverse-icon-link(){} +@mixin hook-inverse-icon-link-hover(){} +@mixin hook-inverse-icon-link-active(){} +@mixin hook-inverse-icon-button(){} +@mixin hook-inverse-icon-button-hover(){} +@mixin hook-inverse-icon-button-active(){} +@mixin hook-inverse-component-icon(){ + + // + // Link + // + + .uk-icon-link { + color: $inverse-icon-link-color; + @if(mixin-exists(hook-inverse-icon-link)) {@include hook-inverse-icon-link();} + } + + .uk-icon-link:hover, + .uk-icon-link:focus { + color: $inverse-icon-link-hover-color; + @if(mixin-exists(hook-inverse-icon-link-hover)) {@include hook-inverse-icon-link-hover();} + } + + .uk-icon-link:active, + .uk-active > .uk-icon-link { + color: $inverse-icon-link-active-color; + @if(mixin-exists(hook-inverse-icon-link-active)) {@include hook-inverse-icon-link-active();} + } + + // + // Button + // + + .uk-icon-button { + background-color: $inverse-icon-button-background; + color: $inverse-icon-button-color; + @if(mixin-exists(hook-inverse-icon-button)) {@include hook-inverse-icon-button();} + } + + .uk-icon-button:hover, + .uk-icon-button:focus { + background-color: $inverse-icon-button-hover-background; + color: $inverse-icon-button-hover-color; + @if(mixin-exists(hook-inverse-icon-button-hover)) {@include hook-inverse-icon-button-hover();} + } + + .uk-icon-button:active { + background-color: $inverse-icon-button-active-background; + color: $inverse-icon-button-active-color; + @if(mixin-exists(hook-inverse-icon-button-active)) {@include hook-inverse-icon-button-active();} + } + +} +@mixin hook-iconnav(){} +@mixin hook-iconnav-item(){} +@mixin hook-iconnav-item-hover(){} +@mixin hook-iconnav-item-active(){} +@mixin hook-iconnav-misc(){} +@mixin hook-inverse-iconnav-item(){} +@mixin hook-inverse-iconnav-item-hover(){} +@mixin hook-inverse-iconnav-item-active(){} +@mixin hook-inverse-component-iconnav(){ + + .uk-iconnav > * > a { + color: $inverse-iconnav-item-color; + @if(mixin-exists(hook-inverse-iconnav-item)) {@include hook-inverse-iconnav-item();} + } + + .uk-iconnav > * > a:hover, + .uk-iconnav > * > a:focus { + color: $inverse-iconnav-item-hover-color; + @if(mixin-exists(hook-inverse-iconnav-item-hover)) {@include hook-inverse-iconnav-item-hover();} + } + + .uk-iconnav > .uk-active > a { + color: $inverse-iconnav-item-active-color; + @if(mixin-exists(hook-inverse-iconnav-item-active)) {@include hook-inverse-iconnav-item-active();} + } + +} +@mixin hook-inverse-component-link(){ + + a.uk-link-muted, + .uk-link-muted a { + color: $inverse-link-muted-color; + @if(mixin-exists(hook-inverse-link-muted)) {@include hook-inverse-link-muted();} + } + + a.uk-link-muted:hover, + .uk-link-muted a:hover { + color: $inverse-link-muted-hover-color; + @if(mixin-exists(hook-inverse-link-muted-hover)) {@include hook-inverse-link-muted-hover();} + } + + a.uk-link-text:hover, + .uk-link-text a:hover { + color: $inverse-link-text-hover-color; + @if(mixin-exists(hook-inverse-link-text-hover)) {@include hook-inverse-link-text-hover();} + } + + a.uk-link-heading:hover, + .uk-link-heading a:hover { + color: $inverse-link-heading-hover-color; + @if(mixin-exists(hook-inverse-link-heading-hover)) {@include hook-inverse-link-heading-hover();} + } + +} +@mixin hook-inverse-component-list(){ + + .uk-list-divider > li:nth-child(n+2) { + border-top-color: $inverse-list-divider-border; + @if(mixin-exists(hook-inverse-list-divider)) {@include hook-inverse-list-divider();} + } + + .uk-list-striped > li { + @if(mixin-exists(hook-inverse-list-striped)) {@include hook-inverse-list-striped();} + } + + .uk-list-striped > li:nth-of-type(odd) { background-color: $inverse-list-striped-background; } + + .uk-list-bullet > li::before { + @include svg-fill($internal-list-bullet-image, "#000", $inverse-list-bullet-icon-color); + @if(mixin-exists(hook-inverse-list-bullet)) {@include hook-inverse-list-bullet();} + } + +} +@mixin hook-inverse-component-totop(){ + + .uk-totop { + color: $inverse-totop-color; + @if(mixin-exists(hook-inverse-totop)) {@include hook-inverse-totop();} + } + + .uk-totop:hover, + .uk-totop:focus { + color: $inverse-totop-hover-color; + @if(mixin-exists(hook-inverse-totop-hover)) {@include hook-inverse-totop-hover();} + } + + .uk-totop:active { + color: $inverse-totop-active-color; + @if(mixin-exists(hook-inverse-totop-active)) {@include hook-inverse-totop-active();} + } + +} +@mixin hook-inverse-component-label(){ + + .uk-label { + background-color: $inverse-label-background; + color: $inverse-label-color; + @if(mixin-exists(hook-inverse-label)) {@include hook-inverse-label();} + } + +} +@mixin hook-inverse-component-search(){ + + // + // Input + // + + .uk-search-input { color: $inverse-search-color; } + + .uk-search-input:-ms-input-placeholder { color: $inverse-search-placeholder-color !important; } + .uk-search-input::placeholder { color: $inverse-search-placeholder-color; } + + + // + // Icon + // + + .uk-search .uk-search-icon { color: $inverse-search-icon-color; } + + .uk-search .uk-search-icon:hover { color: $inverse-search-icon-color; } + + // + // Style modifier + // + + .uk-search-default .uk-search-input { + background-color: $inverse-search-default-background; + @if(mixin-exists(hook-inverse-search-default-input)) {@include hook-inverse-search-default-input();} + } + .uk-search-default .uk-search-input:focus { + background-color: $inverse-search-default-background; + @if(mixin-exists(hook-inverse-search-default-input-focus)) {@include hook-inverse-search-default-input-focus();} + } + + .uk-search-navbar .uk-search-input { + background-color: $inverse-search-navbar-background; + @if(mixin-exists(hook-inverse-search-navbar-input)) {@include hook-inverse-search-navbar-input();} + } + + .uk-search-large .uk-search-input { + background-color: $inverse-search-large-background; + @if(mixin-exists(hook-inverse-search-large-input)) {@include hook-inverse-search-large-input();} + } + + // + // Toggle + // + + .uk-search-toggle { + color: $inverse-search-toggle-color; + @if(mixin-exists(hook-inverse-search-toggle)) {@include hook-inverse-search-toggle();} + } + + .uk-search-toggle:hover, + .uk-search-toggle:focus { + color: $inverse-search-toggle-hover-color; + @if(mixin-exists(hook-inverse-search-toggle-hover)) {@include hook-inverse-search-toggle-hover();} + } + +} +@mixin hook-inverse-component-nav(){ + + // + // Parent icon modifier + // + + .uk-nav-parent-icon > .uk-parent > a::after { + @include svg-fill($internal-nav-parent-close-image, "#000", $inverse-nav-parent-icon-color); + @if(mixin-exists(hook-inverse-nav-parent-icon)) {@include hook-inverse-nav-parent-icon();} + } + + .uk-nav-parent-icon > .uk-parent.uk-open > a::after { @include svg-fill($internal-nav-parent-open-image, "#000", $inverse-nav-parent-icon-color); } + + // + // Default + // + + .uk-nav-default > li > a { + color: $inverse-nav-default-item-color; + @if(mixin-exists(hook-inverse-nav-default-item)) {@include hook-inverse-nav-default-item();} + } + + .uk-nav-default > li > a:hover, + .uk-nav-default > li > a:focus { + color: $inverse-nav-default-item-hover-color; + @if(mixin-exists(hook-inverse-nav-default-item-hover)) {@include hook-inverse-nav-default-item-hover();} + } + + .uk-nav-default > li.uk-active > a { + color: $inverse-nav-default-item-active-color; + @if(mixin-exists(hook-inverse-nav-default-item-active)) {@include hook-inverse-nav-default-item-active();} + } + + .uk-nav-default .uk-nav-header { + color: $inverse-nav-default-header-color; + @if(mixin-exists(hook-inverse-nav-default-header)) {@include hook-inverse-nav-default-header();} + } + + .uk-nav-default .uk-nav-divider { + border-top-color: $inverse-nav-default-divider-border; + @if(mixin-exists(hook-inverse-nav-default-divider)) {@include hook-inverse-nav-default-divider();} + } + + .uk-nav-default .uk-nav-sub a { color: $inverse-nav-default-sublist-item-color; } + + .uk-nav-default .uk-nav-sub a:hover, + .uk-nav-default .uk-nav-sub a:focus { color: $inverse-nav-default-sublist-item-hover-color; } + + // + // Primary + // + + .uk-nav-primary > li > a { + color: $inverse-nav-primary-item-color; + @if(mixin-exists(hook-inverse-nav-primary-item)) {@include hook-inverse-nav-primary-item();} + } + + .uk-nav-primary > li > a:hover, + .uk-nav-primary > li > a:focus { + color: $inverse-nav-primary-item-hover-color; + @if(mixin-exists(hook-inverse-nav-primary-item-hover)) {@include hook-inverse-nav-primary-item-hover();} + } + + .uk-nav-primary > li.uk-active > a { + color: $inverse-nav-primary-item-active-color; + @if(mixin-exists(hook-inverse-nav-primary-item-active)) {@include hook-inverse-nav-primary-item-active();} + } + + .uk-nav-primary .uk-nav-header { + color: $inverse-nav-primary-header-color; + @if(mixin-exists(hook-inverse-nav-primary-header)) {@include hook-inverse-nav-primary-header();} + } + + .uk-nav-primary .uk-nav-divider { + border-top-color: $inverse-nav-primary-divider-border; + @if(mixin-exists(hook-inverse-nav-primary-divider)) {@include hook-inverse-nav-primary-divider();} + } + + .uk-nav-primary .uk-nav-sub a { color: $inverse-nav-primary-sublist-item-color; } + + .uk-nav-primary .uk-nav-sub a:hover, + .uk-nav-primary .uk-nav-sub a:focus { color: $inverse-nav-primary-sublist-item-hover-color; } + +} +@mixin hook-inverse-component-navbar(){ + + .uk-navbar-nav > li > a { + color: $inverse-navbar-nav-item-color; + @if(mixin-exists(hook-inverse-navbar-nav-item)) {@include hook-inverse-navbar-nav-item();} + } + + .uk-navbar-nav > li:hover > a, + .uk-navbar-nav > li > a:focus, + .uk-navbar-nav > li > a.uk-open { + color: $inverse-navbar-nav-item-hover-color; + @if(mixin-exists(hook-inverse-navbar-nav-item-hover)) {@include hook-inverse-navbar-nav-item-hover();} + } + + .uk-navbar-nav > li > a:active { + color: $inverse-navbar-nav-item-onclick-color; + @if(mixin-exists(hook-inverse-navbar-nav-item-onclick)) {@include hook-inverse-navbar-nav-item-onclick();} + } + + .uk-navbar-nav > li.uk-active > a { + color: $inverse-navbar-nav-item-active-color; + @if(mixin-exists(hook-inverse-navbar-nav-item-active)) {@include hook-inverse-navbar-nav-item-active();} + } + + .uk-navbar-item { + color: $inverse-navbar-item-color; + @if(mixin-exists(hook-inverse-navbar-item)) {@include hook-inverse-navbar-item();} + } + + .uk-navbar-toggle { + color: $inverse-navbar-toggle-color; + @if(mixin-exists(hook-inverse-navbar-toggle)) {@include hook-inverse-navbar-toggle();} + } + + .uk-navbar-toggle:hover, + .uk-navbar-toggle:focus, + .uk-navbar-toggle.uk-open { + color: $inverse-navbar-toggle-hover-color; + @if(mixin-exists(hook-inverse-navbar-toggle-hover)) {@include hook-inverse-navbar-toggle-hover();} + } + +} +@mixin hook-inverse-component-subnav(){ + + .uk-subnav > * > :first-child { + color: $inverse-subnav-item-color; + @if(mixin-exists(hook-inverse-subnav-item)) {@include hook-inverse-subnav-item();} + } + + .uk-subnav > * > a:hover, + .uk-subnav > * > a:focus { + color: $inverse-subnav-item-hover-color; + @if(mixin-exists(hook-inverse-subnav-item-hover)) {@include hook-inverse-subnav-item-hover();} + } + + .uk-subnav > .uk-active > a { + color: $inverse-subnav-item-active-color; + @if(mixin-exists(hook-inverse-subnav-item-active)) {@include hook-inverse-subnav-item-active();} + } + + // + // Divider + // + + .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before { + border-left-color: $inverse-subnav-divider-border; + @if(mixin-exists(hook-inverse-subnav-divider)) {@include hook-inverse-subnav-divider();} + } + + // + // Pill + // + + .uk-subnav-pill > * > :first-child { + background-color: $inverse-subnav-pill-item-background; + color: $inverse-subnav-pill-item-color; + @if(mixin-exists(hook-inverse-subnav-pill-item)) {@include hook-inverse-subnav-pill-item();} + } + + .uk-subnav-pill > * > a:hover, + .uk-subnav-pill > * > a:focus { + background-color: $inverse-subnav-pill-item-hover-background; + color: $inverse-subnav-pill-item-hover-color; + @if(mixin-exists(hook-inverse-subnav-pill-item-hover)) {@include hook-inverse-subnav-pill-item-hover();} + } + + .uk-subnav-pill > * > a:active { + background-color: $inverse-subnav-pill-item-onclick-background; + color: $inverse-subnav-pill-item-onclick-color; + @if(mixin-exists(hook-inverse-subnav-pill-item-onclick)) {@include hook-inverse-subnav-pill-item-onclick();} + } + + .uk-subnav-pill > .uk-active > a { + background-color: $inverse-subnav-pill-item-active-background; + color: $inverse-subnav-pill-item-active-color; + @if(mixin-exists(hook-inverse-subnav-pill-item-active)) {@include hook-inverse-subnav-pill-item-active();} + } + + // + // Disabled + // + + .uk-subnav > .uk-disabled > a { + color: $inverse-subnav-item-disabled-color; + @if(mixin-exists(hook-inverse-subnav-item-disabled)) {@include hook-inverse-subnav-item-disabled();} + } + +} +@mixin hook-inverse-component-pagination(){ + + .uk-pagination > * > * { + color: $inverse-pagination-item-color; + @if(mixin-exists(hook-inverse-pagination-item)) {@include hook-inverse-pagination-item();} + } + + .uk-pagination > * > :hover, + .uk-pagination > * > :focus { + color: $inverse-pagination-item-hover-color; + @if(mixin-exists(hook-inverse-pagination-item-hover)) {@include hook-inverse-pagination-item-hover();} + } + + .uk-pagination > .uk-active > * { + color: $inverse-pagination-item-active-color; + @if(mixin-exists(hook-inverse-pagination-item-active)) {@include hook-inverse-pagination-item-active();} + } + + .uk-pagination > .uk-disabled > * { + color: $inverse-pagination-item-disabled-color; + @if(mixin-exists(hook-inverse-pagination-item-disabled)) {@include hook-inverse-pagination-item-disabled();} + } + +} +@mixin hook-inverse-component-tab(){ + + .uk-tab { + @if(mixin-exists(hook-inverse-tab)) {@include hook-inverse-tab();} + } + + .uk-tab > * > a { + color: $inverse-tab-item-color; + @if(mixin-exists(hook-inverse-tab-item)) {@include hook-inverse-tab-item();} + } + + .uk-tab > * > a:hover, + .uk-tab > * > a:focus{ + color: $inverse-tab-item-hover-color; + @if(mixin-exists(hook-inverse-tab-item-hover)) {@include hook-inverse-tab-item-hover();} + } + + .uk-tab > .uk-active > a { + color: $inverse-tab-item-active-color; + @if(mixin-exists(hook-inverse-tab-item-active)) {@include hook-inverse-tab-item-active();} + } + + .uk-tab > .uk-disabled > a { + color: $inverse-tab-item-disabled-color; + @if(mixin-exists(hook-inverse-tab-item-disabled)) {@include hook-inverse-tab-item-disabled();} + } + +} +@mixin hook-inverse-component-slidenav(){ + + .uk-slidenav { + color: $inverse-slidenav-color; + @if(mixin-exists(hook-inverse-slidenav)) {@include hook-inverse-slidenav();} + } + + .uk-slidenav:hover, + .uk-slidenav:focus { + color: $inverse-slidenav-hover-color; + @if(mixin-exists(hook-inverse-slidenav-hover)) {@include hook-inverse-slidenav-hover();} + } + + .uk-slidenav:active { + color: $inverse-slidenav-active-color; + @if(mixin-exists(hook-inverse-slidenav-active)) {@include hook-inverse-slidenav-active();} + } + +} +@mixin hook-inverse-component-text(){ + + .uk-text-lead { + color: $inverse-text-lead-color; + @if(mixin-exists(hook-inverse-text-lead)) {@include hook-inverse-text-lead();} + } + + .uk-text-meta { + color: $inverse-text-meta-color; + @if(mixin-exists(hook-inverse-text-meta)) {@include hook-inverse-text-meta();} + } + + .uk-text-muted { color: $inverse-text-muted-color !important; } + .uk-text-primary { color: $inverse-text-primary-color !important; } + +} +@mixin hook-inverse-component-utility(){ + + .uk-dropcap::first-letter, + .uk-dropcap p:first-of-type::first-letter { + @if(mixin-exists(hook-inverse-dropcap)) {@include hook-inverse-dropcap();} + } + + .uk-leader-fill { + @if(mixin-exists(hook-inverse-leader)) {@include hook-inverse-leader();} + } + + .uk-logo { + color: $inverse-logo-color; + @if(mixin-exists(hook-inverse-logo)) {@include hook-inverse-logo();} + } + + .uk-logo:hover, + .uk-logo:focus { + color: $inverse-logo-hover-color; + @if(mixin-exists(hook-inverse-logo-hover)) {@include hook-inverse-logo-hover();} + } + + .uk-logo > :not(.uk-logo-inverse):not(:only-of-type) { display: none; } + .uk-logo-inverse { display: inline; } + +} +@mixin hook-inverse(){ + @include hook-inverse-component-base(); + @include hook-inverse-component-link(); + @include hook-inverse-component-heading(); + @include hook-inverse-component-divider(); + @include hook-inverse-component-list(); + @include hook-inverse-component-icon(); + @include hook-inverse-component-form(); + @include hook-inverse-component-button(); + @include hook-inverse-component-grid(); + @include hook-inverse-component-close(); + @include hook-inverse-component-totop(); + @include hook-inverse-component-badge(); + @include hook-inverse-component-label(); + @include hook-inverse-component-article(); + @include hook-inverse-component-search(); + @include hook-inverse-component-nav(); + @include hook-inverse-component-navbar(); + @include hook-inverse-component-subnav(); + @include hook-inverse-component-breadcrumb(); + @include hook-inverse-component-pagination(); + @include hook-inverse-component-tab(); + @include hook-inverse-component-slidenav(); + @include hook-inverse-component-dotnav(); + @include hook-inverse-component-accordion(); + @include hook-inverse-component-iconnav(); + @include hook-inverse-component-text(); + @include hook-inverse-component-column(); + @include hook-inverse-component-utility(); +} +@mixin hook-label(){} +@mixin hook-label-success(){} +@mixin hook-label-warning(){} +@mixin hook-label-danger(){} +@mixin hook-label-misc(){} +@mixin hook-inverse-label(){} +@mixin hook-lightbox(){} +@mixin hook-lightbox-item(){} +@mixin hook-lightbox-toolbar(){} +@mixin hook-lightbox-toolbar-icon(){} +@mixin hook-lightbox-toolbar-icon-hover(){} +@mixin hook-lightbox-button(){} +@mixin hook-lightbox-button-hover(){} +@mixin hook-lightbox-misc(){} +@mixin hook-link-muted(){} +@mixin hook-link-muted-hover(){} +@mixin hook-link-text(){} +@mixin hook-link-text-hover(){} +@mixin hook-link-heading(){} +@mixin hook-link-heading-hover(){} +@mixin hook-link-reset(){} +@mixin hook-link-misc(){} +@mixin hook-inverse-link-muted(){} +@mixin hook-inverse-link-muted-hover(){} +@mixin hook-inverse-link-text-hover(){} +@mixin hook-inverse-link-heading-hover(){} +@mixin hook-list-divider(){} +@mixin hook-list-striped(){} +@mixin hook-list-bullet(){} +@mixin hook-list-misc(){} +@mixin hook-inverse-list-divider(){} +@mixin hook-inverse-list-striped(){} +@mixin hook-inverse-list-bullet(){} +@mixin hook-margin-misc(){} +@mixin hook-marker(){} +@mixin hook-marker-hover(){} +@mixin hook-marker-misc(){} +@mixin hook-inverse-marker(){} +@mixin hook-inverse-marker-hover(){} +@mixin hook-inverse-component-marker(){ + + .uk-marker { + background: $inverse-marker-background; + color: $inverse-marker-color; + @if(mixin-exists(hook-inverse-marker)) {@include hook-inverse-marker();} + } + + .uk-marker:hover, + .uk-marker:focus { + color: $inverse-marker-hover-color; + @if(mixin-exists(hook-inverse-marker-hover)) {@include hook-inverse-marker-hover();} + } + +} +@mixin hook-modal(){} +@mixin hook-modal-dialog(){} +@mixin hook-modal-full(){} +@mixin hook-modal-body(){} +@mixin hook-modal-header(){} +@mixin hook-modal-footer(){} +@mixin hook-modal-title(){} +@mixin hook-modal-close(){} +@mixin hook-modal-close-hover(){} +@mixin hook-modal-close-default(){} +@mixin hook-modal-close-default-hover(){} +@mixin hook-modal-close-outside(){} +@mixin hook-modal-close-outside-hover(){} +@mixin hook-modal-close-full(){} +@mixin hook-modal-close-full-hover(){} +@mixin hook-modal-misc(){} +@mixin hook-nav-sub(){} +@mixin hook-nav-parent-icon(){} +@mixin hook-nav-header(){} +@mixin hook-nav-divider(){} +@mixin hook-nav-default(){} +@mixin hook-nav-default-item(){} +@mixin hook-nav-default-item-hover(){} +@mixin hook-nav-default-item-active(){} +@mixin hook-nav-default-header(){} +@mixin hook-nav-default-divider(){} +@mixin hook-nav-primary(){} +@mixin hook-nav-primary-item(){} +@mixin hook-nav-primary-item-hover(){} +@mixin hook-nav-primary-item-active(){} +@mixin hook-nav-primary-header(){} +@mixin hook-nav-primary-divider(){} +@mixin hook-nav-misc(){} +@mixin hook-inverse-nav-parent-icon(){} +@mixin hook-inverse-nav-default-item(){} +@mixin hook-inverse-nav-default-item-hover(){} +@mixin hook-inverse-nav-default-item-active(){} +@mixin hook-inverse-nav-default-header(){} +@mixin hook-inverse-nav-default-divider(){} +@mixin hook-inverse-nav-primary-item(){} +@mixin hook-inverse-nav-primary-item-hover(){} +@mixin hook-inverse-nav-primary-item-active(){} +@mixin hook-inverse-nav-primary-header(){} +@mixin hook-inverse-nav-primary-divider(){} +@mixin hook-navbar(){} +@mixin hook-navbar-container(){} +@mixin hook-navbar-nav-item(){} +@mixin hook-navbar-nav-item-hover(){} +@mixin hook-navbar-nav-item-onclick(){} +@mixin hook-navbar-nav-item-active(){} +@mixin hook-navbar-item(){} +@mixin hook-navbar-toggle(){} +@mixin hook-navbar-toggle-hover(){} +@mixin hook-navbar-toggle-icon(){} +@mixin hook-navbar-toggle-icon-hover(){} +@mixin hook-navbar-subtitle(){} +@mixin hook-navbar-transparent(){} +@mixin hook-navbar-sticky(){} +@mixin hook-navbar-dropdown(){} +@mixin hook-navbar-dropdown-dropbar(){} +@mixin hook-navbar-dropdown-nav(){} +@mixin hook-navbar-dropdown-nav-item(){} +@mixin hook-navbar-dropdown-nav-item-hover(){} +@mixin hook-navbar-dropdown-nav-item-active(){} +@mixin hook-navbar-dropdown-nav-header(){} +@mixin hook-navbar-dropdown-nav-divider(){} +@mixin hook-navbar-dropbar(){} +@mixin hook-navbar-dropbar-slide(){} +@mixin hook-navbar-misc(){} +@mixin hook-inverse-navbar-nav-item(){} +@mixin hook-inverse-navbar-nav-item-hover(){} +@mixin hook-inverse-navbar-nav-item-onclick(){} +@mixin hook-inverse-navbar-nav-item-active(){} +@mixin hook-inverse-navbar-item(){} +@mixin hook-inverse-navbar-toggle(){} +@mixin hook-inverse-navbar-toggle-hover(){} +@mixin hook-notification(){} +@mixin hook-notification-message(){} +@mixin hook-notification-close(){} +@mixin hook-notification-message-primary(){} +@mixin hook-notification-message-success(){} +@mixin hook-notification-message-warning(){} +@mixin hook-notification-message-danger(){} +@mixin hook-notification-misc(){} +@mixin hook-offcanvas-bar(){} +@mixin hook-offcanvas-close(){} +@mixin hook-offcanvas-overlay(){} +@mixin hook-offcanvas-misc(){} +@mixin hook-overlay(){} +@mixin hook-overlay-icon(){} +@mixin hook-overlay-default(){} +@mixin hook-overlay-primary(){} +@mixin hook-overlay-misc(){} +@mixin hook-padding-misc(){} +@mixin hook-pagination(){} +@mixin hook-pagination-item(){} +@mixin hook-pagination-item-hover(){} +@mixin hook-pagination-item-active(){} +@mixin hook-pagination-item-disabled(){} +@mixin hook-pagination-misc(){} +@mixin hook-inverse-pagination-item(){} +@mixin hook-inverse-pagination-item-hover(){} +@mixin hook-inverse-pagination-item-active(){} +@mixin hook-inverse-pagination-item-disabled(){} +@mixin hook-placeholder(){} +@mixin hook-placeholder-misc(){} +@mixin hook-position-misc(){} +@mixin hook-print(){} +@mixin hook-progress(){} +@mixin hook-progress-bar(){} +@mixin hook-progress-misc(){} +@mixin hook-search-input(){} +@mixin hook-search-default-input(){} +@mixin hook-search-default-input-focus(){} +@mixin hook-search-navbar-input(){} +@mixin hook-search-large-input(){} +@mixin hook-search-toggle(){} +@mixin hook-search-toggle-hover(){} +@mixin hook-search-misc(){} +@mixin hook-inverse-search-default-input(){} +@mixin hook-inverse-search-default-input-focus(){} +@mixin hook-inverse-search-navbar-input(){} +@mixin hook-inverse-search-large-input(){} +@mixin hook-inverse-search-toggle(){} +@mixin hook-inverse-search-toggle-hover(){} +@mixin hook-section(){} +@mixin hook-section-default(){} +@mixin hook-section-muted(){} +@mixin hook-section-primary(){} +@mixin hook-section-secondary(){} +@mixin hook-section-overlap(){} +@mixin hook-section-misc(){} +@mixin hook-slidenav(){} +@mixin hook-slidenav-hover(){} +@mixin hook-slidenav-active(){} +@mixin hook-slidenav-previous(){} +@mixin hook-slidenav-next(){} +@mixin hook-slidenav-large(){} +@mixin hook-slidenav-container(){} +@mixin hook-slidenav-misc(){} +@mixin hook-inverse-slidenav(){} +@mixin hook-inverse-slidenav-hover(){} +@mixin hook-inverse-slidenav-active(){} +@mixin hook-slider(){} +@mixin hook-slider-misc(){} +@mixin hook-slideshow(){} +@mixin hook-slideshow-misc(){} +@mixin hook-sortable(){} +@mixin hook-sortable-drag(){} +@mixin hook-sortable-placeholder(){} +@mixin hook-sortable-empty(){} +@mixin hook-sortable-misc(){} +@mixin hook-spinner(){} +@mixin hook-spinner-misc(){} +@mixin hook-sticky-misc(){} +@mixin hook-subnav(){} +@mixin hook-subnav-item(){} +@mixin hook-subnav-item-hover(){} +@mixin hook-subnav-item-active(){} +@mixin hook-subnav-divider(){} +@mixin hook-subnav-pill-item(){} +@mixin hook-subnav-pill-item-hover(){} +@mixin hook-subnav-pill-item-onclick(){} +@mixin hook-subnav-pill-item-active(){} +@mixin hook-subnav-item-disabled(){} +@mixin hook-subnav-misc(){} +@mixin hook-inverse-subnav-item(){} +@mixin hook-inverse-subnav-item-hover(){} +@mixin hook-inverse-subnav-item-active(){} +@mixin hook-inverse-subnav-divider(){} +@mixin hook-inverse-subnav-pill-item(){} +@mixin hook-inverse-subnav-pill-item-hover(){} +@mixin hook-inverse-subnav-pill-item-onclick(){} +@mixin hook-inverse-subnav-pill-item-active(){} +@mixin hook-inverse-subnav-item-disabled(){} +@mixin hook-switcher-misc(){} +@mixin hook-tab(){} +@mixin hook-tab-item(){} +@mixin hook-tab-item-hover(){} +@mixin hook-tab-item-active(){} +@mixin hook-tab-item-disabled(){} +@mixin hook-tab-bottom(){} +@mixin hook-tab-bottom-item(){} +@mixin hook-tab-left(){} +@mixin hook-tab-right(){} +@mixin hook-tab-left-item(){} +@mixin hook-tab-right-item(){} +@mixin hook-tab-misc(){} +@mixin hook-inverse-tab(){} +@mixin hook-inverse-tab-item(){} +@mixin hook-inverse-tab-item-hover(){} +@mixin hook-inverse-tab-item-active(){} +@mixin hook-inverse-tab-item-disabled(){} +@mixin hook-table(){} +@mixin hook-table-header-cell(){} +@mixin hook-table-cell(){} +@mixin hook-table-footer(){} +@mixin hook-table-caption(){} +@mixin hook-table-row-active(){} +@mixin hook-table-divider(){} +@mixin hook-table-striped(){} +@mixin hook-table-hover(){} +@mixin hook-table-small(){} +@mixin hook-table-large(){} +@mixin hook-table-misc(){} +@mixin hook-inverse-table-header-cell(){} +@mixin hook-inverse-table-caption(){} +@mixin hook-inverse-table-row-active(){} +@mixin hook-inverse-table-divider(){} +@mixin hook-inverse-table-striped(){} +@mixin hook-inverse-table-hover(){} +@mixin hook-inverse-component-table(){ + + .uk-table th { + color: $inverse-table-header-cell-color; + @if(mixin-exists(hook-inverse-table-header-cell)) {@include hook-inverse-table-header-cell();} + } + + .uk-table caption { + color: $inverse-table-caption-color; + @if(mixin-exists(hook-inverse-table-caption)) {@include hook-inverse-table-caption();} + } + + .uk-table > tr.uk-active, + .uk-table tbody tr.uk-active { + background: $inverse-table-row-active-background; + @if(mixin-exists(hook-inverse-table-row-active)) {@include hook-inverse-table-row-active();} + } + + .uk-table-divider > tr:not(:first-child), + .uk-table-divider > :not(:first-child) > tr, + .uk-table-divider > :first-child > tr:not(:first-child) { + border-top-color: $inverse-table-divider-border; + @if(mixin-exists(hook-inverse-table-divider)) {@include hook-inverse-table-divider();} + } + + .uk-table-striped > tr:nth-of-type(odd), + .uk-table-striped tbody tr:nth-of-type(odd) { + background: $inverse-table-striped-row-background; + @if(mixin-exists(hook-inverse-table-striped)) {@include hook-inverse-table-striped();} + } + + .uk-table-hover > tr:hover, + .uk-table-hover tbody tr:hover { + background: $inverse-table-hover-row-background; + @if(mixin-exists(hook-inverse-table-hover)) {@include hook-inverse-table-hover();} + } + +} +@mixin hook-text-lead(){} +@mixin hook-text-meta(){} +@mixin hook-text-small(){} +@mixin hook-text-large(){} +@mixin hook-text-background(){} +@mixin hook-text-misc(){} +@mixin hook-inverse-text-lead(){} +@mixin hook-inverse-text-meta(){} +@mixin hook-thumbnav(){} +@mixin hook-thumbnav-item(){} +@mixin hook-thumbnav-item-hover(){} +@mixin hook-thumbnav-item-active(){} +@mixin hook-thumbnav-misc(){} +@mixin hook-inverse-thumbnav-item(){} +@mixin hook-inverse-thumbnav-item-hover(){} +@mixin hook-inverse-thumbnav-item-active(){} +@mixin hook-inverse-component-thumbnav(){ + + .uk-thumbnav > * > * { + @if(mixin-exists(hook-inverse-thumbnav-item)) {@include hook-inverse-thumbnav-item();} + } + + .uk-thumbnav > * > :hover, + .uk-thumbnav > * > :focus { + @if(mixin-exists(hook-inverse-thumbnav-item-hover)) {@include hook-inverse-thumbnav-item-hover();} + } + + .uk-thumbnav > .uk-active > * { + @if(mixin-exists(hook-inverse-thumbnav-item-active)) {@include hook-inverse-thumbnav-item-active();} + } + +} +@mixin hook-tile(){} +@mixin hook-tile-default(){} +@mixin hook-tile-muted(){} +@mixin hook-tile-primary(){} +@mixin hook-tile-secondary(){} +@mixin hook-tile-misc(){} +@mixin hook-tooltip(){} +@mixin hook-tooltip-misc(){} +@mixin hook-totop(){} +@mixin hook-totop-hover(){} +@mixin hook-totop-active(){} +@mixin hook-totop-misc(){} +@mixin hook-inverse-totop(){} +@mixin hook-inverse-totop-hover(){} +@mixin hook-inverse-totop-active(){} +@mixin hook-transition-misc(){} +@mixin hook-panel-scrollable(){} +@mixin hook-box-shadow-bottom(){} +@mixin hook-dropcap(){} +@mixin hook-leader(){} +@mixin hook-logo(){} +@mixin hook-logo-hover(){} +@mixin hook-utility-misc(){} +@mixin hook-inverse-dropcap(){} +@mixin hook-inverse-leader(){} +@mixin hook-inverse-logo(){} +@mixin hook-inverse-logo-hover(){} +@mixin hook-visibility-misc(){} +@mixin hook-width-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/_import.scss b/_sass/uikit/theme/_import.scss new file mode 100644 index 0000000..b08e50b --- /dev/null +++ b/_sass/uikit/theme/_import.scss @@ -0,0 +1,78 @@ +// Base +@import "variables.scss"; +@import "base.scss"; + +// Elements +@import "link.scss"; +@import "heading.scss"; +@import "divider.scss"; +@import "list.scss"; +@import "description-list.scss"; +@import "table.scss"; +@import "icon.scss"; +@import "form-range.scss"; +@import "form.scss"; +@import "button.scss"; + +// Layout +@import "section.scss"; +@import "container.scss"; +@import "grid.scss"; +@import "tile.scss"; +@import "card.scss"; + +// Common +@import "close.scss"; +@import "spinner.scss"; +@import "marker.scss"; +@import "totop.scss"; +@import "alert.scss"; +@import "badge.scss"; +@import "label.scss"; +@import "overlay.scss"; +@import "article.scss"; +@import "comment.scss"; +@import "search.scss"; + +// Navs +@import "nav.scss"; +@import "navbar.scss"; +@import "subnav.scss"; +@import "breadcrumb.scss"; +@import "pagination.scss"; +@import "tab.scss"; +@import "slidenav.scss"; +@import "dotnav.scss"; +@import "thumbnav.scss"; + +// JavaScript +@import "accordion.scss"; +@import "drop.scss"; +@import "dropdown.scss"; +@import "modal.scss"; +@import "lightbox.scss"; +@import "sticky.scss"; +@import "offcanvas.scss"; + +// Additional +@import "iconnav.scss"; +@import "notification.scss"; +@import "tooltip.scss"; +@import "placeholder.scss"; +@import "progress.scss"; +@import "sortable.scss"; +@import "countdown.scss"; + +// Utilities +@import "animation.scss"; +@import "width.scss"; +@import "text.scss"; +@import "column.scss"; +@import "background.scss"; +@import "align.scss"; +@import "utility.scss"; +@import "margin.scss"; +@import "padding.scss"; +@import "position.scss"; +@import "transition.scss"; +@import "inverse.scss"; diff --git a/_sass/uikit/theme/accordion.scss b/_sass/uikit/theme/accordion.scss new file mode 100644 index 0000000..3e44609 --- /dev/null +++ b/_sass/uikit/theme/accordion.scss @@ -0,0 +1,58 @@ +// +// Component: Accordion +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$accordion-icon-color: $global-color !default; +$internal-accordion-open-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22#000%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$internal-accordion-close-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22#000%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%20%20%20%20%3Crect%20fill%3D%22#000%22%20width%3D%221%22%20height%3D%2213%22%20x%3D%226%22%20y%3D%220%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; + + +// Component +// ======================================================================== + +// @mixin hook-accordion(){} + + +// Item +// ======================================================================== + +// @mixin hook-accordion-item(){} + + +// Title +// ======================================================================== + + + +// @mixin hook-accordion-title-hover(){} + + +// Content +// ======================================================================== + +// @mixin hook-accordion-content(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-accordion-misc(){} + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-accordion-item(){} + +// @mixin hook-inverse-accordion-title(){} +// @mixin hook-inverse-accordion-title-hover(){} + + diff --git a/_sass/uikit/theme/alert.scss b/_sass/uikit/theme/alert.scss new file mode 100644 index 0000000..c4baa7c --- /dev/null +++ b/_sass/uikit/theme/alert.scss @@ -0,0 +1,46 @@ +// +// Component: Alert +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$alert-close-opacity: 0.4 !default; +$alert-close-hover-opacity: 0.8 !default; + + +// Component +// ======================================================================== + +// @mixin hook-alert(){} + + +// Close +// ======================================================================== + + + + + + +// Style modifiers +// ======================================================================== + +// @mixin hook-alert-primary(){} + +// @mixin hook-alert-success(){} + +// @mixin hook-alert-warning(){} + +// @mixin hook-alert-danger(){} + + +// Miscellaneous +// ======================================================================== + diff --git a/_sass/uikit/theme/align.scss b/_sass/uikit/theme/align.scss new file mode 100644 index 0000000..290abd4 --- /dev/null +++ b/_sass/uikit/theme/align.scss @@ -0,0 +1,14 @@ +// +// Component: Align +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-align-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/animation.scss b/_sass/uikit/theme/animation.scss new file mode 100644 index 0000000..03ebbc6 --- /dev/null +++ b/_sass/uikit/theme/animation.scss @@ -0,0 +1,14 @@ +// +// Component: Animation +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-animation-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/article.scss b/_sass/uikit/theme/article.scss new file mode 100644 index 0000000..a698e3e --- /dev/null +++ b/_sass/uikit/theme/article.scss @@ -0,0 +1,51 @@ +// +// Component: Article +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$article-meta-link-color: $article-meta-color !default; +$article-meta-link-hover-color: $global-color !default; + + +// Component +// ======================================================================== + +// @mixin hook-article(){} + + +// Adjacent sibling +// ======================================================================== + +// @mixin hook-article-adjacent(){} + + +// Title +// ======================================================================== + +// @mixin hook-article-title(){} + + +// Meta +// ======================================================================== + + + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-article-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-article-meta(){} \ No newline at end of file diff --git a/_sass/uikit/theme/background.scss b/_sass/uikit/theme/background.scss new file mode 100644 index 0000000..29e062e --- /dev/null +++ b/_sass/uikit/theme/background.scss @@ -0,0 +1,14 @@ +// +// Component: Background +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-background-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/badge.scss b/_sass/uikit/theme/badge.scss new file mode 100644 index 0000000..22ae937 --- /dev/null +++ b/_sass/uikit/theme/badge.scss @@ -0,0 +1,29 @@ +// +// Component: Badge +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-badge(){} + +// @mixin hook-badge-hover(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-badge-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-badge(){} +// @mixin hook-inverse-badge-hover(){} \ No newline at end of file diff --git a/_sass/uikit/theme/base.scss b/_sass/uikit/theme/base.scss new file mode 100644 index 0000000..2c1c335 --- /dev/null +++ b/_sass/uikit/theme/base.scss @@ -0,0 +1,116 @@ +// +// Component: Base +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$base-code-padding-horizontal: 6px !default; +$base-code-padding-vertical: 2px !default; +$base-code-background: $global-muted-background !default; + +$base-blockquote-color: $global-emphasis-color !default; + +$base-blockquote-footer-color: $global-color !default; + +$base-pre-padding: 10px !default; +$base-pre-background: $global-background !default; +$base-pre-border-width: $global-border-width !default; +$base-pre-border: $global-border !default; +$base-pre-border-radius: 3px !default; + + +// Body +// ======================================================================== + +// @mixin hook-base-body(){} + + +// Links +// ======================================================================== + +// @mixin hook-base-link(){} + +// @mixin hook-base-link-hover(){} + + +// Text-level semantics +// ======================================================================== + + + + +// Headings +// ======================================================================== + +// @mixin hook-base-heading(){} + +// @mixin hook-base-h1(){} + +// @mixin hook-base-h2(){} + +// @mixin hook-base-h3(){} + +// @mixin hook-base-h4(){} + +// @mixin hook-base-h5(){} + +// @mixin hook-base-h6(){} + + +// Horizontal rules +// ======================================================================== + +// @mixin hook-base-hr(){} + + +// Blockquotes +// ======================================================================== + + + + + + +// Preformatted text +// ======================================================================== + + + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-base-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-base-blockquote-color: $inverse-global-emphasis-color !default; +$inverse-base-blockquote-footer-color: $inverse-global-color !default; + +// @mixin hook-inverse-base-link(){} +// @mixin hook-inverse-base-link-hover(){} + + + +// @mixin hook-inverse-base-heading(){} + +// @mixin hook-inverse-base-h1(){} +// @mixin hook-inverse-base-h2(){} +// @mixin hook-inverse-base-h3(){} +// @mixin hook-inverse-base-h4(){} +// @mixin hook-inverse-base-h5(){} +// @mixin hook-inverse-base-h6(){} + + + + +// @mixin hook-inverse-base-hr(){} \ No newline at end of file diff --git a/_sass/uikit/theme/breadcrumb.scss b/_sass/uikit/theme/breadcrumb.scss new file mode 100644 index 0000000..40c04e5 --- /dev/null +++ b/_sass/uikit/theme/breadcrumb.scss @@ -0,0 +1,45 @@ +// +// Component: Breadcrumb +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-breadcrumb(){} + + +// Items +// ======================================================================== + +// @mixin hook-breadcrumb-item(){} + +// @mixin hook-breadcrumb-item-hover(){} + +// @mixin hook-breadcrumb-item-disabled(){} + +// @mixin hook-breadcrumb-item-active(){} + +// @mixin hook-breadcrumb-divider(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-breadcrumb-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-breadcrumb-item(){} +// @mixin hook-inverse-breadcrumb-item-hover(){} +// @mixin hook-inverse-breadcrumb-item-disabled(){} +// @mixin hook-inverse-breadcrumb-item-active(){} + +// @mixin hook-inverse-breadcrumb-divider(){} \ No newline at end of file diff --git a/_sass/uikit/theme/button.scss b/_sass/uikit/theme/button.scss new file mode 100644 index 0000000..6acb509 --- /dev/null +++ b/_sass/uikit/theme/button.scss @@ -0,0 +1,161 @@ +// +// Component: Button +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$button-line-height: $global-control-height - ($button-border-width * 2) !default; +$button-small-line-height: $global-control-small-height - ($button-border-width * 2) !default; +$button-large-line-height: $global-control-large-height - ($button-border-width * 2) !default; + +$button-font-size: $global-small-font-size !default; +$button-large-font-size: $global-small-font-size !default; + +$button-default-background: transparent !default; +$button-default-hover-background: transparent !default; +$button-default-active-background: transparent !default; + +$button-disabled-background: transparent !default; + +$button-text-color: $global-emphasis-color !default; +$button-text-hover-color: $global-emphasis-color !default; + +// +// New +// + +$button-text-transform: uppercase !default; + +$button-border-width: $global-border-width !default; + +$button-default-border: $global-border !default; +$button-default-hover-border: darken($global-border, 20%) !default; +$button-default-active-border: darken($global-border, 30%) !default; + +$button-disabled-border: $global-border !default; + +$button-text-border-width: $global-border-width !default; +$button-text-border: $button-text-hover-color !default; + + +// Component +// ======================================================================== + + + +// @mixin hook-button-hover(){} + +// @mixin hook-button-focus(){} + +// @mixin hook-button-active(){} + + +// Style modifiers +// ======================================================================== + + + + + + + +// +// Primary +// + + + +// @mixin hook-button-primary-hover(){} + +// @mixin hook-button-primary-active(){} + +// +// Secondary +// + + + +// @mixin hook-button-secondary-hover(){} + +// @mixin hook-button-secondary-active(){} + +// +// Danger +// + + + +// @mixin hook-button-danger-hover(){} + +// @mixin hook-button-danger-active(){} + + +// Disabled +// ======================================================================== + + + + +// Size modifiers +// ======================================================================== + +// @mixin hook-button-small(){} + +// @mixin hook-button-large(){} + + +// Text modifier +// ======================================================================== + + + + + + + + +// Link modifier +// ======================================================================== + +// @mixin hook-button-link(){} + + +// Miscellaneous +// ======================================================================== + + + + +// Inverse +// ======================================================================== + +$inverse-button-default-background: transparent !default; +$inverse-button-default-color: $inverse-global-emphasis-color !default; +$inverse-button-default-hover-background: transparent !default; +$inverse-button-default-hover-color: $inverse-global-emphasis-color !default; +$inverse-button-default-active-background: transparent !default; +$inverse-button-default-active-color: $inverse-global-emphasis-color !default; + +$inverse-button-text-color: $inverse-global-emphasis-color !default; +$inverse-button-text-hover-color: $inverse-global-emphasis-color !default; + + + + + +// @mixin hook-inverse-button-primary(){} +// @mixin hook-inverse-button-primary-hover(){} +// @mixin hook-inverse-button-primary-active(){} + +// @mixin hook-inverse-button-secondary(){} +// @mixin hook-inverse-button-secondary-hover(){} +// @mixin hook-inverse-button-secondary-active(){} + + +// @mixin hook-inverse-button-text-hover(){} +// @mixin hook-inverse-button-text-disabled(){} + +// @mixin hook-inverse-button-link(){} \ No newline at end of file diff --git a/_sass/uikit/theme/card.scss b/_sass/uikit/theme/card.scss new file mode 100644 index 0000000..9e8fe2b --- /dev/null +++ b/_sass/uikit/theme/card.scss @@ -0,0 +1,125 @@ +// +// Component: Card +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$card-hover-background: $global-background !default; + +$card-default-background: $global-background !default; +$card-default-hover-background: $card-default-background !default; + +$card-primary-hover-background: $card-primary-background !default; + +$card-secondary-hover-background: $card-secondary-background !default; + +// +// New +// + +$card-hover-box-shadow: $global-large-box-shadow !default; + +$card-default-box-shadow: $global-medium-box-shadow !default; +$card-default-hover-box-shadow: $global-large-box-shadow !default; + +$card-default-header-border-width: $global-border-width !default; +$card-default-header-border: $global-border !default; + +$card-default-footer-border-width: $global-border-width !default; +$card-default-footer-border: $global-border !default; + +$card-primary-box-shadow: $global-medium-box-shadow !default; +$card-primary-hover-box-shadow: $global-large-box-shadow !default; + +$card-secondary-box-shadow: $global-medium-box-shadow !default; +$card-secondary-hover-box-shadow: $global-large-box-shadow !default; + + +// Component +// ======================================================================== + + + + +// Sections +// ======================================================================== + +// @mixin hook-card-body(){} + +// @mixin hook-card-header(){} + +// @mixin hook-card-footer(){} + + +// Media +// ======================================================================== + +// @mixin hook-card-media(){} + +// @mixin hook-card-media-top(){} + +// @mixin hook-card-media-bottom(){} + +// @mixin hook-card-media-left(){} + +// @mixin hook-card-media-right(){} + + +// Title +// ======================================================================== + +// @mixin hook-card-title(){} + + +// Badge +// ======================================================================== + +// @mixin hook-card-badge(){} + + +// Hover modifier +// ======================================================================== + + + + +// Style modifiers +// ======================================================================== + + + +// @mixin hook-card-default-title(){} + + + + + + + +// +// Primary +// + + + +// @mixin hook-card-primary-title(){} + + + +// +// Secondary +// + + + +// @mixin hook-card-secondary-title(){} + + + + +// Miscellaneous +// ======================================================================== + diff --git a/_sass/uikit/theme/close.scss b/_sass/uikit/theme/close.scss new file mode 100644 index 0000000..f076294 --- /dev/null +++ b/_sass/uikit/theme/close.scss @@ -0,0 +1,29 @@ +// +// Component: Close +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + + + +// @mixin hook-close-hover(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-close-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-close(){} +// @mixin hook-inverse-close-hover(){} \ No newline at end of file diff --git a/_sass/uikit/theme/column.scss b/_sass/uikit/theme/column.scss new file mode 100644 index 0000000..80be850 --- /dev/null +++ b/_sass/uikit/theme/column.scss @@ -0,0 +1,14 @@ +// +// Component: Column +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-column-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/comment.scss b/_sass/uikit/theme/comment.scss new file mode 100644 index 0000000..a486c59 --- /dev/null +++ b/_sass/uikit/theme/comment.scss @@ -0,0 +1,69 @@ +// +// Component: Comment +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$comment-primary-padding: $global-gutter !default; +$comment-primary-background: $global-muted-background !default; + + +// Component +// ======================================================================== + +// @mixin hook-comment(){} + + +// Sections +// ======================================================================== + +// @mixin hook-comment-body(){} + +// @mixin hook-comment-header(){} + + +// Title +// ======================================================================== + +// @mixin hook-comment-title(){} + + +// Meta +// ======================================================================== + +// @mixin hook-comment-meta(){} + + +// Avatar +// ======================================================================== + +// @mixin hook-comment-avatar(){} + + +// List +// ======================================================================== + +// @mixin hook-comment-list-adjacent(){} + +// @mixin hook-comment-list-sub(){} + +// @mixin hook-comment-list-sub-adjacent(){} + + +// Style modifier +// ======================================================================== + + + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-comment-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/container.scss b/_sass/uikit/theme/container.scss new file mode 100644 index 0000000..ba77ded --- /dev/null +++ b/_sass/uikit/theme/container.scss @@ -0,0 +1,14 @@ +// +// Component: Container +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-container-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/countdown.scss b/_sass/uikit/theme/countdown.scss new file mode 100644 index 0000000..01f1761 --- /dev/null +++ b/_sass/uikit/theme/countdown.scss @@ -0,0 +1,53 @@ +// +// Component: Countdown +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-countdown(){} + + +// Item +// ======================================================================== + +// @mixin hook-countdown-item(){} + + +// Number +// ======================================================================== + +// @mixin hook-countdown-number(){} + + +// Separator +// ======================================================================== + +// @mixin hook-countdown-separator(){} + + +// Label +// ======================================================================== + +// @mixin hook-countdown-label(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-countdown-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-countdown-item(){} +// @mixin hook-inverse-countdown-number(){} +// @mixin hook-inverse-countdown-separator(){} +// @mixin hook-inverse-countdown-label(){} diff --git a/_sass/uikit/theme/description-list.scss b/_sass/uikit/theme/description-list.scss new file mode 100644 index 0000000..8f836d6 --- /dev/null +++ b/_sass/uikit/theme/description-list.scss @@ -0,0 +1,32 @@ +// +// Component: Description list +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$description-list-term-font-size: $global-small-font-size !default; +$description-list-term-font-weight: normal !default; +$description-list-term-text-transform: uppercase !default; + + +// Component +// ======================================================================== + + + +// @mixin hook-description-list-description(){} + + +// Style modifier +// ======================================================================== + +// @mixin hook-description-list-divider-term(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-description-list-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/divider.scss b/_sass/uikit/theme/divider.scss new file mode 100644 index 0000000..59e2c9c --- /dev/null +++ b/_sass/uikit/theme/divider.scss @@ -0,0 +1,41 @@ +// +// Component: Divider +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Icon +// ======================================================================== + +// @mixin hook-divider-icon(){} + +// @mixin hook-divider-icon-line(){} + +// @mixin hook-divider-icon-line-left(){} + +// @mixin hook-divider-icon-line-right(){} + + +// Small +// ======================================================================== + +// @mixin hook-divider-small(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-divider-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-divider-icon(){} +// @mixin hook-inverse-divider-icon-line(){} + +// @mixin hook-inverse-divider-small(){} \ No newline at end of file diff --git a/_sass/uikit/theme/dotnav.scss b/_sass/uikit/theme/dotnav.scss new file mode 100644 index 0000000..1bc8359 --- /dev/null +++ b/_sass/uikit/theme/dotnav.scss @@ -0,0 +1,52 @@ +// +// Component: Dotnav +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$dotnav-item-background: transparent !default; + +// +// New +// + +$dotnav-item-border-width: 1px !default; + +$dotnav-item-border: rgba($global-color, 0.4) !default; +$dotnav-item-hover-border: transparent !default; +$dotnav-item-onclick-border: transparent !default; +$dotnav-item-active-border: transparent !default; + + +// Component +// ======================================================================== + +// @mixin hook-dotnav(){} + + + + + + + + + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-dotnav-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-dotnav-item-background: transparent !default; + +// @mixin hook-inverse-dotnav(){} + + + diff --git a/_sass/uikit/theme/drop.scss b/_sass/uikit/theme/drop.scss new file mode 100644 index 0000000..6940984 --- /dev/null +++ b/_sass/uikit/theme/drop.scss @@ -0,0 +1,14 @@ +// +// Component: Drop +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-drop-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/dropdown.scss b/_sass/uikit/theme/dropdown.scss new file mode 100644 index 0000000..c5aa02e --- /dev/null +++ b/_sass/uikit/theme/dropdown.scss @@ -0,0 +1,45 @@ +// +// Component: Dropdown +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$dropdown-padding: 25px !default; +$dropdown-background: $global-background !default; + +// +// New +// + +$dropdown-nav-font-size: $global-small-font-size !default; + +$dropdown-box-shadow: 0 5px 12px rgba(0,0,0,0.15) !default; + + +// Component +// ======================================================================== + + + + +// Nav +// ======================================================================== + + + +// @mixin hook-dropdown-nav-item(){} + +// @mixin hook-dropdown-nav-item-hover(){} + +// @mixin hook-dropdown-nav-header(){} + +// @mixin hook-dropdown-nav-divider(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-dropdown-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/form-range.scss b/_sass/uikit/theme/form-range.scss new file mode 100644 index 0000000..ca424f3 --- /dev/null +++ b/_sass/uikit/theme/form-range.scss @@ -0,0 +1,45 @@ +// +// Component: Form Range +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$form-range-thumb-background: $global-background !default; + +// +// New +// + +$form-range-thumb-border-width: $global-border-width !default; +$form-range-thumb-border: darken($global-border, 10%) !default; + +$form-range-track-border-radius: 500px !default; + + +// Component +// ======================================================================== + +// @mixin hook-form-range(){} + + +// Thumb +// ======================================================================== + + + + +// Track +// ======================================================================== + + + +// @mixin hook-form-range-track-focus(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-form-range-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/form.scss b/_sass/uikit/theme/form.scss new file mode 100644 index 0000000..ef80695 --- /dev/null +++ b/_sass/uikit/theme/form.scss @@ -0,0 +1,131 @@ +// +// Component: Form +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$form-line-height: $form-height - (2* $form-border-width) !default; + +$form-background: $global-background !default; +$form-focus-background: $global-background !default; + +$form-small-line-height: $form-small-height - (2* $form-border-width) !default; +$form-large-line-height: $form-large-height - (2* $form-border-width) !default; + +$form-radio-background: transparent !default; + +$form-stacked-margin-bottom: 5px !default; + +// +// New +// + +$form-border-width: $global-border-width !default; +$form-border: $global-border !default; + +$form-focus-border: $global-primary-background !default; + +$form-disabled-border: $global-border !default; + +$form-danger-border: $global-danger-background !default; +$form-success-border: $global-success-background !default; + +$form-blank-focus-border: $global-border !default; +$form-blank-focus-border-style: dashed !default; + +$form-radio-border-width: $global-border-width !default; +$form-radio-border: darken($global-border, 10%) !default; + +$form-radio-focus-border: $global-primary-background !default; + +$form-radio-checked-border: transparent !default; + +$form-radio-disabled-border: $global-border !default; + +$form-label-color: $global-emphasis-color !default; +$form-label-font-size: $global-small-font-size !default; + + +// Component +// ======================================================================== + + + +// @mixin hook-form-single-line(){} + +// @mixin hook-form-multi-line(){} + + + + + + +// Style modifiers +// ======================================================================== + + + + + + + + + + +// Radio and checkbox +// ======================================================================== + + + + + + + +// @mixin hook-form-radio-checked-focus(){} + + + + +// Legend +// ======================================================================== + +// @mixin hook-form-legend(){} + + +// Label +// ======================================================================== + + + + +// Layout +// ======================================================================== + +// @mixin hook-form-stacked-label(){} + +// @mixin hook-form-horizontal-label(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-form-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-form-label-color: $inverse-global-emphasis-color !default; + + + + + + + + +// @mixin hook-inverse-form-radio-checked-focus(){} + diff --git a/_sass/uikit/theme/grid.scss b/_sass/uikit/theme/grid.scss new file mode 100644 index 0000000..adc18ad --- /dev/null +++ b/_sass/uikit/theme/grid.scss @@ -0,0 +1,14 @@ +// +// Component: Grid +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-grid-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/heading.scss b/_sass/uikit/theme/heading.scss new file mode 100644 index 0000000..c6409f0 --- /dev/null +++ b/_sass/uikit/theme/heading.scss @@ -0,0 +1,59 @@ +// +// Component: Heading +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Primary +// ======================================================================== + +// @mixin hook-heading-primary(){} + + +// Hero +// ======================================================================== + +// @mixin hook-heading-hero(){} + + +// Divider +// ======================================================================== + +// @mixin hook-heading-divider(){} + + +// Bullet +// ======================================================================== + +// @mixin hook-heading-bullet(){} + + +// Line +// ======================================================================== + +// @mixin hook-heading-line(){} + + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-heading-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-heading-primary(){} + +// @mixin hook-inverse-heading-hero(){} + +// @mixin hook-inverse-heading-divider(){} + +// @mixin hook-inverse-heading-bullet(){} + +// @mixin hook-inverse-heading-line(){} diff --git a/_sass/uikit/theme/icon.scss b/_sass/uikit/theme/icon.scss new file mode 100644 index 0000000..b81c79a --- /dev/null +++ b/_sass/uikit/theme/icon.scss @@ -0,0 +1,50 @@ +// +// Component: Icon +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Style modifiers +// ======================================================================== + +// +// Link +// + +// @mixin hook-icon-link(){} + +// @mixin hook-icon-link-hover(){} + +// @mixin hook-icon-link-active(){} + +// +// Button +// + + + +// @mixin hook-icon-button-hover(){} + +// @mixin hook-icon-button-active(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-icon-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-icon-link(){} +// @mixin hook-inverse-icon-link-hover(){} +// @mixin hook-inverse-icon-link-active(){} + +// @mixin hook-inverse-icon-button(){} +// @mixin hook-inverse-icon-button-hover(){} +// @mixin hook-inverse-icon-button-active(){} \ No newline at end of file diff --git a/_sass/uikit/theme/iconnav.scss b/_sass/uikit/theme/iconnav.scss new file mode 100644 index 0000000..94b4bbf --- /dev/null +++ b/_sass/uikit/theme/iconnav.scss @@ -0,0 +1,34 @@ +// +// Component: Iconnav +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-iconnav(){} + +// @mixin hook-iconnav-item(){} + +// @mixin hook-iconnav-item-hover(){} + +// @mixin hook-iconnav-item-active(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-iconnav-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-iconnav-item(){} +// @mixin hook-inverse-iconnav-item-hover(){} +// @mixin hook-inverse-iconnav-item-active(){} \ No newline at end of file diff --git a/_sass/uikit/theme/inverse.scss b/_sass/uikit/theme/inverse.scss new file mode 100644 index 0000000..75a5a3b --- /dev/null +++ b/_sass/uikit/theme/inverse.scss @@ -0,0 +1,14 @@ +// +// Component: Inverse +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-inverse(){} \ No newline at end of file diff --git a/_sass/uikit/theme/label.scss b/_sass/uikit/theme/label.scss new file mode 100644 index 0000000..ff09ac9 --- /dev/null +++ b/_sass/uikit/theme/label.scss @@ -0,0 +1,43 @@ +// +// Component: Label +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$label-border-radius: 2px !default; +$label-text-transform: uppercase !default; + + +// Component +// ======================================================================== + + + + +// Color modifiers +// ======================================================================== + +// @mixin hook-label-success(){} + +// @mixin hook-label-warning(){} + +// @mixin hook-label-danger(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-label-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-label(){} \ No newline at end of file diff --git a/_sass/uikit/theme/lightbox.scss b/_sass/uikit/theme/lightbox.scss new file mode 100644 index 0000000..caabc62 --- /dev/null +++ b/_sass/uikit/theme/lightbox.scss @@ -0,0 +1,48 @@ +// +// Component: Lightbox +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-lightbox(){} + + +// Item +// ======================================================================== + +// @mixin hook-lightbox-item(){} + + +// Toolbar +// ======================================================================== + +// @mixin hook-lightbox-toolbar(){} + + +// Toolbar Icon +// ======================================================================== + +// @mixin hook-lightbox-toolbar-icon(){} + +// @mixin hook-lightbox-toolbar-icon-hover(){} + + +// Button +// ======================================================================== + +// @mixin hook-lightbox-button(){} + +// @mixin hook-lightbox-button-hover(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-lightbox-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/link.scss b/_sass/uikit/theme/link.scss new file mode 100644 index 0000000..0658b58 --- /dev/null +++ b/_sass/uikit/theme/link.scss @@ -0,0 +1,55 @@ +// +// Component: Link +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Muted +// ======================================================================== + +// @mixin hook-link-muted(){} + +// @mixin hook-link-muted-hover(){} + + +// Text +// ======================================================================== + +// @mixin hook-link-text(){} + +// @mixin hook-link-text-hover(){} + + +// Heading +// ======================================================================== + +// @mixin hook-link-heading(){} + +// @mixin hook-link-heading-hover(){} + + +// Reset +// ======================================================================== + +// @mixin hook-link-reset(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-link-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-link-muted(){} +// @mixin hook-inverse-link-muted-hover(){} + +// @mixin hook-inverse-link-text-hover(){} + +// @mixin hook-inverse-link-heading-hover(){} diff --git a/_sass/uikit/theme/list.scss b/_sass/uikit/theme/list.scss new file mode 100644 index 0000000..67e3c72 --- /dev/null +++ b/_sass/uikit/theme/list.scss @@ -0,0 +1,39 @@ +// +// Component: List +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$list-striped-border-width: $global-border-width !default; +$list-striped-border: $global-border !default; + + +// Style modifiers +// ======================================================================== + +// @mixin hook-list-divider(){} + + + +// @mixin hook-list-bullet(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-list-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-list-divider(){} + +// @mixin hook-inverse-list-bullet(){} \ No newline at end of file diff --git a/_sass/uikit/theme/margin.scss b/_sass/uikit/theme/margin.scss new file mode 100644 index 0000000..a2cdb5e --- /dev/null +++ b/_sass/uikit/theme/margin.scss @@ -0,0 +1,14 @@ +// +// Component: Margin +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-margin-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/marker.scss b/_sass/uikit/theme/marker.scss new file mode 100644 index 0000000..1e4fd5f --- /dev/null +++ b/_sass/uikit/theme/marker.scss @@ -0,0 +1,29 @@ +// +// Component: Marker +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + + + +// @mixin hook-marker-hover(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-marker-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-marker(){} +// @mixin hook-inverse-marker-hover(){} diff --git a/_sass/uikit/theme/modal.scss b/_sass/uikit/theme/modal.scss new file mode 100644 index 0000000..adc2135 --- /dev/null +++ b/_sass/uikit/theme/modal.scss @@ -0,0 +1,84 @@ +// +// Component: Modal +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$modal-header-background: $modal-dialog-background !default; +$modal-footer-background: $modal-dialog-background !default; + +// +// New +// + +$modal-header-border-width: $global-border-width !default; +$modal-header-border: $global-border !default; + +$modal-footer-border-width: $global-border-width !default; +$modal-footer-border: $global-border !default; + +$modal-close-full-padding: $global-margin !default; +$modal-close-full-background: $modal-dialog-background !default; + + +// Component +// ======================================================================== + +// @mixin hook-modal(){} + + +// Dialog +// ======================================================================== + +// @mixin hook-modal-dialog(){} + + +// Full +// ======================================================================== + +// @mixin hook-modal-full(){} + + +// Sections +// ======================================================================== + + + +// @mixin hook-modal-body(){} + + + + +// Title +// ======================================================================== + +// @mixin hook-modal-title(){} + + +// Close +// ======================================================================== + +// @mixin hook-modal-close(){} + +// @mixin hook-modal-close-hover(){} + +// @mixin hook-modal-close-default(){} + +// @mixin hook-modal-close-default-hover(){} + +// @mixin hook-modal-close-outside(){} + +// @mixin hook-modal-close-outside-hover(){} + + + +// @mixin hook-modal-close-full-hover(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-modal-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/nav.scss b/_sass/uikit/theme/nav.scss new file mode 100644 index 0000000..3138498 --- /dev/null +++ b/_sass/uikit/theme/nav.scss @@ -0,0 +1,94 @@ +// +// Component: Nav +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$nav-default-font-size: $global-small-font-size !default; + + +// Sublists +// ======================================================================== + +// @mixin hook-nav-sub(){} + + +// Parent icon modifier +// ======================================================================== + +// @mixin hook-nav-parent-icon(){} + + +// Header +// ======================================================================== + +// @mixin hook-nav-header(){} + + +// Divider +// ======================================================================== + +// @mixin hook-nav-divider(){} + + +// Default style modifier +// ======================================================================== + + + +// @mixin hook-nav-default-item(){} + +// @mixin hook-nav-default-item-hover(){} + +// @mixin hook-nav-default-item-active(){} + +// @mixin hook-nav-default-header(){} + +// @mixin hook-nav-default-divider(){} + + +// Primary style modifier +// ======================================================================== + +// @mixin hook-nav-primary(){} + +// @mixin hook-nav-primary-item(){} + +// @mixin hook-nav-primary-item-hover(){} + +// @mixin hook-nav-primary-item-active(){} + +// @mixin hook-nav-primary-header(){} + +// @mixin hook-nav-primary-divider(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-nav-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-nav-parent-icon(){} + +// @mixin hook-inverse-nav-default-item(){} +// @mixin hook-inverse-nav-default-item-hover(){} +// @mixin hook-inverse-nav-default-item-active(){} +// @mixin hook-inverse-nav-default-header(){} +// @mixin hook-inverse-nav-default-divider(){} + +// @mixin hook-inverse-nav-primary-item(){} +// @mixin hook-inverse-nav-primary-item-hover(){} +// @mixin hook-inverse-nav-primary-item-active(){} +// @mixin hook-inverse-nav-primary-header(){} +// @mixin hook-inverse-nav-primary-divider(){} \ No newline at end of file diff --git a/_sass/uikit/theme/navbar.scss b/_sass/uikit/theme/navbar.scss new file mode 100644 index 0000000..2a6f237 --- /dev/null +++ b/_sass/uikit/theme/navbar.scss @@ -0,0 +1,136 @@ +// +// Component: Navbar +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$navbar-nav-item-font-size: $global-small-font-size !default; + +$navbar-dropdown-margin: 15px !default; +$navbar-dropdown-padding: 25px !default; +$navbar-dropdown-background: $global-background !default; +$navbar-dropdown-grid-gutter-horizontal: ($navbar-dropdown-padding * 2) !default; + +// +// New +// + +$navbar-nav-item-text-transform: uppercase !default; + +$navbar-dropdown-nav-font-size: $global-small-font-size !default; + +$navbar-dropdown-box-shadow: 0 5px 12px rgba(0,0,0,0.15) !default; + +$navbar-dropbar-box-shadow: 0 5px 7px rgba(0, 0, 0, 0.05) !default; + +$navbar-dropdown-grid-divider-border-width: $global-border-width !default; +$navbar-dropdown-grid-divider-border: $navbar-dropdown-nav-divider-border !default; + + +// Component +// ======================================================================== + +// @mixin hook-navbar(){} + + +// Container +// ======================================================================== + +// @mixin hook-navbar-container(){} + + +// Nav +// ======================================================================== + + + +// @mixin hook-navbar-nav-item-hover(){} + +// @mixin hook-navbar-nav-item-onclick(){} + +// @mixin hook-navbar-nav-item-active(){} + + +// Item +// ======================================================================== + +// @mixin hook-navbar-item(){} + + +// Toggle +// ======================================================================== + +// @mixin hook-navbar-toggle(){} + +// @mixin hook-navbar-toggle-hover(){} + +// @mixin hook-navbar-toggle-icon(){} + +// @mixin hook-navbar-toggle-icon-hover(){} + + +// Subtitle +// ======================================================================== + +// @mixin hook-navbar-subtitle(){} + + +// Style modifiers +// ======================================================================== + +// @mixin hook-navbar-transparent(){} + +// @mixin hook-navbar-sticky(){} + + +// Dropdown +// ======================================================================== + + + + + + +// Dropdown nav +// ======================================================================== + + + +// @mixin hook-navbar-dropdown-nav-item(){} + +// @mixin hook-navbar-dropdown-nav-item-hover(){} + +// @mixin hook-navbar-dropdown-nav-header(){} + +// @mixin hook-navbar-dropdown-nav-divider(){} + + +// Dropbar +// ======================================================================== + +// @mixin hook-navbar-dropbar(){} + + + + +// Miscellaneous +// ======================================================================== + + + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-navbar-nav-item(){} +// @mixin hook-inverse-navbar-nav-item-hover(){} +// @mixin hook-inverse-navbar-nav-item-onclick(){} +// @mixin hook-inverse-navbar-nav-item-active(){} + +// @mixin hook-inverse-navbar-item(){} + +// @mixin hook-inverse-navbar-toggle(){} +// @mixin hook-inverse-navbar-toggle-hover(){} \ No newline at end of file diff --git a/_sass/uikit/theme/notification.scss b/_sass/uikit/theme/notification.scss new file mode 100644 index 0000000..57d5b55 --- /dev/null +++ b/_sass/uikit/theme/notification.scss @@ -0,0 +1,44 @@ +// +// Component: Notification +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-notification(){} + + +// Message +// ======================================================================== + +// @mixin hook-notification-message(){} + + +// Close +// ======================================================================== + +// @mixin hook-notification-close(){} + + +// Style modifiers +// ======================================================================== + +// @mixin hook-notification-primary(){} + +// @mixin hook-notification-success(){} + +// @mixin hook-notification-warning(){} + +// @mixin hook-notification-danger(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-notification-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/offcanvas.scss b/_sass/uikit/theme/offcanvas.scss new file mode 100644 index 0000000..283078e --- /dev/null +++ b/_sass/uikit/theme/offcanvas.scss @@ -0,0 +1,32 @@ +// +// Component: Off-canvas +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Bar +// ======================================================================== + +// @mixin hook-offcanvas-bar(){} + + +// Close +// ======================================================================== + +// @mixin hook-offcanvas-close(){} + + +// Overlay +// ======================================================================== + +// @mixin hook-offcanvas-overlay(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-offcanvas-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/overlay.scss b/_sass/uikit/theme/overlay.scss new file mode 100644 index 0000000..68cda45 --- /dev/null +++ b/_sass/uikit/theme/overlay.scss @@ -0,0 +1,33 @@ +// +// Component: Overlay +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-overlay(){} + +// Icon +// ======================================================================== + +// @mixin hook-overlay-icon(){} + + +// Style modifiers +// ======================================================================== + +// @mixin hook-overlay-default(){} + +// @mixin hook-overlay-primary(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-overlay-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/padding.scss b/_sass/uikit/theme/padding.scss new file mode 100644 index 0000000..f0737b8 --- /dev/null +++ b/_sass/uikit/theme/padding.scss @@ -0,0 +1,14 @@ +// +// Component: Padding +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-padding-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/pagination.scss b/_sass/uikit/theme/pagination.scss new file mode 100644 index 0000000..a777e0c --- /dev/null +++ b/_sass/uikit/theme/pagination.scss @@ -0,0 +1,41 @@ +// +// Component: Pagination +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-pagination(){} + + +// Items +// ======================================================================== + + + +// @mixin hook-pagination-item-hover(){} + +// @mixin hook-pagination-item-active(){} + +// @mixin hook-pagination-item-disabled(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-pagination-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-pagination-item(){} +// @mixin hook-inverse-pagination-item-hover(){} +// @mixin hook-inverse-pagination-item-active(){} +// @mixin hook-inverse-pagination-item-disabled(){} \ No newline at end of file diff --git a/_sass/uikit/theme/placeholder.scss b/_sass/uikit/theme/placeholder.scss new file mode 100644 index 0000000..4ab662c --- /dev/null +++ b/_sass/uikit/theme/placeholder.scss @@ -0,0 +1,29 @@ +// +// Component: Placeholder +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$placeholder-background: transparent !default; + +// +// New +// + +$placeholder-border-width: $global-border-width !default; +$placeholder-border: $global-border !default; + + +// Component +// ======================================================================== + + + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-placeholder-misc(){} diff --git a/_sass/uikit/theme/position.scss b/_sass/uikit/theme/position.scss new file mode 100644 index 0000000..fc69520 --- /dev/null +++ b/_sass/uikit/theme/position.scss @@ -0,0 +1,14 @@ +// +// Component: Position +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-position-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/progress.scss b/_sass/uikit/theme/progress.scss new file mode 100644 index 0000000..9ca100a --- /dev/null +++ b/_sass/uikit/theme/progress.scss @@ -0,0 +1,24 @@ +// +// Component: Progress +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$progress-border-radius: 500px !default; + + +// Component +// ======================================================================== + + + +// @mixin hook-progress-bar(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-progress-misc(){} diff --git a/_sass/uikit/theme/search.scss b/_sass/uikit/theme/search.scss new file mode 100644 index 0000000..f9e710e --- /dev/null +++ b/_sass/uikit/theme/search.scss @@ -0,0 +1,73 @@ +// +// Component: Search +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$search-default-background: transparent !default; + +// +// New +// + +$search-default-border-width: $global-border-width !default; +$search-default-border: $global-border !default; + + +// Component +// ======================================================================== + +// @mixin hook-search-input(){} + + +// Default modifiers +// ======================================================================== + + + + +// Navbar modifiers +// ======================================================================== + +// @mixin hook-search-navbar-input(){} + +// @mixin hook-search-default-input-focus(){} + + +// Large modifiers +// ======================================================================== + +// @mixin hook-search-large-input(){} + + +// Toggle +// ======================================================================== + +// @mixin hook-search-toggle(){} + +// @mixin hook-search-toggle-hover(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-search-misc(){} + + +// Inverse +// ======================================================================== + +$inverse-search-default-background: transparent !default; + + +// @mixin hook-inverse-search-default-input-focus(){} + +// @mixin hook-inverse-search-navbar-input(){} + +// @mixin hook-inverse-search-large-input(){} + +// @mixin hook-inverse-search-toggle(){} +// @mixin hook-inverse-search-toggle-hover(){} \ No newline at end of file diff --git a/_sass/uikit/theme/section.scss b/_sass/uikit/theme/section.scss new file mode 100644 index 0000000..6d7f761 --- /dev/null +++ b/_sass/uikit/theme/section.scss @@ -0,0 +1,32 @@ +// +// Component: Section +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-section(){} + + +// Style modifiers +// ======================================================================== + +// @mixin hook-section-default(){} + +// @mixin hook-section-muted(){} + +// @mixin hook-section-primary(){} + +// @mixin hook-section-secondary(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-section-misc(){} diff --git a/_sass/uikit/theme/slidenav.scss b/_sass/uikit/theme/slidenav.scss new file mode 100644 index 0000000..c1654e7 --- /dev/null +++ b/_sass/uikit/theme/slidenav.scss @@ -0,0 +1,52 @@ +// +// Component: Slidenav +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + + + +// @mixin hook-slidenav-hover(){} + +// @mixin hook-slidenav-active(){} + + +// Icon modifier +// ======================================================================== + +// @mixin hook-slidenav-previous(){} + +// @mixin hook-slidenav-next(){} + + +// Size modifier +// ======================================================================== + +// @mixin hook-slidenav-large(){} + + +// Container +// ======================================================================== + +// @mixin hook-slidenav-container(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-icon-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-slidenav(){} +// @mixin hook-inverse-slidenav-hover(){} +// @mixin hook-inverse-slidenav-active(){} \ No newline at end of file diff --git a/_sass/uikit/theme/sortable.scss b/_sass/uikit/theme/sortable.scss new file mode 100644 index 0000000..3ab18c3 --- /dev/null +++ b/_sass/uikit/theme/sortable.scss @@ -0,0 +1,38 @@ +// +// Component: Sortable +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-sortable(){} + + +// Drag +// ======================================================================== + +// @mixin hook-sortable-drag(){} + + +// Placeholder +// ======================================================================== + +// @mixin hook-sortable-placeholder(){} + + +// Empty +// ======================================================================== + +// @mixin hook-sortable-empty(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-sortable-misc(){} diff --git a/_sass/uikit/theme/spinner.scss b/_sass/uikit/theme/spinner.scss new file mode 100644 index 0000000..d70e10f --- /dev/null +++ b/_sass/uikit/theme/spinner.scss @@ -0,0 +1,14 @@ +// +// Component: Spinner +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-spinner-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/sticky.scss b/_sass/uikit/theme/sticky.scss new file mode 100644 index 0000000..94e5ee6 --- /dev/null +++ b/_sass/uikit/theme/sticky.scss @@ -0,0 +1,14 @@ +// +// Component: Sticky +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-sticky-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/subnav.scss b/_sass/uikit/theme/subnav.scss new file mode 100644 index 0000000..f4d1c7f --- /dev/null +++ b/_sass/uikit/theme/subnav.scss @@ -0,0 +1,74 @@ +// +// Component: Subnav +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$subnav-item-font-size: $global-small-font-size !default; +$subnav-item-text-transform: uppercase !default; + + +// Component +// ======================================================================== + +// @mixin hook-subnav(){} + + + +// @mixin hook-subnav-item-hover(){} + +// @mixin hook-subnav-item-active(){} + + +// Divider modifier +// ======================================================================== + +// @mixin hook-subnav-divider(){} + + +// Pill modifier +// ======================================================================== + +// @mixin hook-subnav-pill-item(){} + +// @mixin hook-subnav-pill-item-hover(){} + +// @mixin hook-subnav-pill-item-onclick(){} + +// @mixin hook-subnav-pill-item-active(){} + + +// Disabled +// ======================================================================== + +// @mixin hook-subnav-item-disabled(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-subnav-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-subnav-item(){} +// @mixin hook-inverse-subnav-item-hover(){} +// @mixin hook-inverse-subnav-item-active(){} + +// @mixin hook-inverse-subnav-divider(){} + +// @mixin hook-inverse-subnav-pill-item(){} +// @mixin hook-inverse-subnav-pill-item-hover(){} +// @mixin hook-inverse-subnav-pill-item-onclick(){} +// @mixin hook-inverse-subnav-pill-item-active(){} + +// @mixin hook-inverse-subnav-item-disabled(){} diff --git a/_sass/uikit/theme/tab.scss b/_sass/uikit/theme/tab.scss new file mode 100644 index 0000000..51c4ba2 --- /dev/null +++ b/_sass/uikit/theme/tab.scss @@ -0,0 +1,74 @@ +// +// Component: Tab +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$tab-border-width: $global-border-width !default; +$tab-border: $global-border !default; + +$tab-item-border-width: $global-border-width !default; +$tab-item-font-size: $global-small-font-size !default; +$tab-item-text-transform: uppercase !default; + +$tab-item-active-border: $global-primary-background !default; + + +// Component +// ======================================================================== + + + + +// Items +// ======================================================================== + + + +// @mixin hook-tab-item-hover(){} + + + +// @mixin hook-tab-item-disabled(){} + + +// Position modifiers +// ======================================================================== + + + + + + + + + + + + + + +// Miscellaneous +// ======================================================================== + + + + +// Inverse +// ======================================================================== + +$inverse-tab-border: $inverse-global-border !default; + + + +// @mixin hook-inverse-tab-item(){} +// @mixin hook-inverse-tab-item-hover(){} + +// @mixin hook-inverse-tab-item-disabled(){} \ No newline at end of file diff --git a/_sass/uikit/theme/table.scss b/_sass/uikit/theme/table.scss new file mode 100644 index 0000000..d6a6607 --- /dev/null +++ b/_sass/uikit/theme/table.scss @@ -0,0 +1,68 @@ +// +// Component: Table +// +// ======================================================================== + + +// Variables +// ======================================================================== + +$table-header-cell-font-size: $global-small-font-size !default; +$table-header-cell-font-weight: normal !default; +$table-header-cell-color: $global-muted-color !default; + +// +// New +// + +$table-striped-border-width: $global-border-width !default; +$table-striped-border: $global-border !default; + + +// Component +// ======================================================================== + + + +// @mixin hook-table-cell(){} + +// @mixin hook-table-footer(){} + +// @mixin hook-table-caption(){} + +// @mixin hook-table-row-active(){} + + +// Style modifiers +// ======================================================================== + +// @mixin hook-table-divider(){} + + + +// @mixin hook-table-hover(){} + + +// Size modifier +// ======================================================================== + +// @mixin hook-table-small(){} + +// @mixin hook-table-large(){} + + +// Miscellaneous +// ======================================================================== + + + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-table-header-cell(){} +// @mixin hook-inverse-table-caption(){} +// @mixin hook-inverse-table-row-active(){} +// @mixin hook-inverse-table-divider(){} + +// @mixin hook-inverse-table-hover(){} \ No newline at end of file diff --git a/_sass/uikit/theme/text.scss b/_sass/uikit/theme/text.scss new file mode 100644 index 0000000..b6e35c4 --- /dev/null +++ b/_sass/uikit/theme/text.scss @@ -0,0 +1,50 @@ +// +// Component: Text +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$text-meta-link-color: $text-meta-color !default; +$text-meta-link-hover-color: $global-color !default; + + +// Style modifiers +// ======================================================================== + +// @mixin hook-text-lead(){} + + + + +// Size modifiers +// ======================================================================== + +// @mixin hook-text-small(){} + +// @mixin hook-text-large(){} + + +// Background modifier +// ======================================================================== + +// @mixin hook-text-background(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-text-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-text-lead(){} +// @mixin hook-inverse-text-meta(){} diff --git a/_sass/uikit/theme/thumbnav.scss b/_sass/uikit/theme/thumbnav.scss new file mode 100644 index 0000000..7f26c38 --- /dev/null +++ b/_sass/uikit/theme/thumbnav.scss @@ -0,0 +1,42 @@ +// +// Component: Thumbnav +// +// ======================================================================== + + +// Variables +// ======================================================================== + +// +// New +// + +$thumbnav-item-background: rgba($global-background, 0.4) !default; +$thumbnav-item-hover-background: transparent !default; +$thumbnav-item-active-background: transparent !default; + + +// Component +// ======================================================================== + +// @mixin hook-thumbnav(){} + + + + + + + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-thumbnav-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-thumbnav-item(){} +// @mixin hook-inverse-thumbnav-item-hover(){} +// @mixin hook-inverse-thumbnav-item-active(){} \ No newline at end of file diff --git a/_sass/uikit/theme/tile.scss b/_sass/uikit/theme/tile.scss new file mode 100644 index 0000000..2d043a6 --- /dev/null +++ b/_sass/uikit/theme/tile.scss @@ -0,0 +1,32 @@ +// +// Component: Tile +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-tile(){} + + +// Style modifiers +// ======================================================================== + +// @mixin hook-tile-default(){} + +// @mixin hook-tile-muted(){} + +// @mixin hook-tile-primary(){} + +// @mixin hook-tile-secondary(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-tile-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/tooltip.scss b/_sass/uikit/theme/tooltip.scss new file mode 100644 index 0000000..5115139 --- /dev/null +++ b/_sass/uikit/theme/tooltip.scss @@ -0,0 +1,20 @@ +// +// Component: Tooltip +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + +// @mixin hook-tooltip(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-tooltip-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/totop.scss b/_sass/uikit/theme/totop.scss new file mode 100644 index 0000000..feb7165 --- /dev/null +++ b/_sass/uikit/theme/totop.scss @@ -0,0 +1,32 @@ +// +// Component: Totop +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Component +// ======================================================================== + + + +// @mixin hook-totop-hover(){} + +// @mixin hook-totop-active(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-icon-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-totop(){} +// @mixin hook-inverse-totop-hover(){} +// @mixin hook-inverse-totop-active(){} \ No newline at end of file diff --git a/_sass/uikit/theme/transition.scss b/_sass/uikit/theme/transition.scss new file mode 100644 index 0000000..fd7bded --- /dev/null +++ b/_sass/uikit/theme/transition.scss @@ -0,0 +1,14 @@ +// +// Component: Transition +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-transition-misc(){} \ No newline at end of file diff --git a/_sass/uikit/theme/utility.scss b/_sass/uikit/theme/utility.scss new file mode 100644 index 0000000..ae24e15 --- /dev/null +++ b/_sass/uikit/theme/utility.scss @@ -0,0 +1,57 @@ +// +// Component: Utility +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Panel +// ======================================================================== + +// @mixin hook-panel-scrollable(){} + + +// Box-shadow bottom +// ======================================================================== + +// @mixin hook-box-shadow-bottom(){} + + +// Drop cap +// ======================================================================== + + + + +// Leader +// ======================================================================== + +// @mixin hook-leader(){} + + +// Logo +// ======================================================================== + +// @mixin hook-logo(){} + +// @mixin hook-logo-hover(){} + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-utility-misc(){} + + +// Inverse +// ======================================================================== + +// @mixin hook-inverse-dropcap(){} + +// @mixin hook-inverse-leader(){} + +// @mixin hook-inverse-logo(){} +// @mixin hook-inverse-logo-hover(){} \ No newline at end of file diff --git a/_sass/uikit/theme/variables.scss b/_sass/uikit/theme/variables.scss new file mode 100644 index 0000000..d74b3a9 --- /dev/null +++ b/_sass/uikit/theme/variables.scss @@ -0,0 +1,36 @@ +// +// Component: Variables +// +// ======================================================================== + + +// Global variables +// ======================================================================== + +// +// Typography +// + +// +// Colors +// + +// +// Backgrounds +// + +// +// Borders +// + +// +// Spacings +// + +// +// Controls +// + +// +// Z-index +// \ No newline at end of file diff --git a/_sass/uikit/theme/width.scss b/_sass/uikit/theme/width.scss new file mode 100644 index 0000000..b67a795 --- /dev/null +++ b/_sass/uikit/theme/width.scss @@ -0,0 +1,14 @@ +// +// Component: Width +// +// ======================================================================== + + +// Variables +// ======================================================================== + + +// Miscellaneous +// ======================================================================== + +// @mixin hook-width-misc(){} \ No newline at end of file diff --git a/_sass/uikit/uikit-theme.scss b/_sass/uikit/uikit-theme.scss new file mode 100644 index 0000000..13dbd02 --- /dev/null +++ b/_sass/uikit/uikit-theme.scss @@ -0,0 +1,9 @@ +// +// Theme +// + +@import "theme/_import.scss"; + +@import "components/_import.scss"; + + diff --git a/_sass/uikit/uikit.scss b/_sass/uikit/uikit.scss new file mode 100644 index 0000000..6624823 --- /dev/null +++ b/_sass/uikit/uikit.scss @@ -0,0 +1,5 @@ +// +// Core +// + +@import "components/_import.scss"; \ No newline at end of file diff --git a/_sass/uikit/variables-theme.scss b/_sass/uikit/variables-theme.scss new file mode 100644 index 0000000..ce2d097 --- /dev/null +++ b/_sass/uikit/variables-theme.scss @@ -0,0 +1,1093 @@ +$global-margin: 20px !default; +$accordion-item-margin-top: $global-margin !default; +$global-medium-font-size: 1.25rem !default; +$accordion-title-font-size: $global-medium-font-size !default; +$accordion-title-line-height: 1.4 !default; +$global-emphasis-color: #000000 !default; +$accordion-title-color: $global-emphasis-color !default; +$global-color: #666 !default; +$accordion-title-hover-color: $global-color !default; +$accordion-content-margin-top: $global-margin !default; +$global-inverse-color: #fff !default; +$inverse-global-emphasis-color: $global-inverse-color !default; +$inverse-accordion-title-color: $inverse-global-emphasis-color !default; +$inverse-global-inverse-color: $global-color !default; +$inverse-accordion-title-hover-color: $inverse-global-inverse-color !default; +$global-gutter: 30px !default; +$align-margin-horizontal: $global-gutter !default; +$align-margin-vertical: $global-gutter !default; +$global-medium-gutter: 40px !default; +$align-margin-horizontal-l: $global-medium-gutter !default; +$alert-margin-vertical: $global-margin !default; +$global-small-gutter: 15px !default; +$alert-padding: $global-small-gutter !default; +$alert-padding-right: $alert-padding + 14px !default; +$global-muted-background: #f8f8f8 !default; +$alert-background: $global-muted-background !default; +$alert-color: $global-color !default; +$alert-close-top: $alert-padding + 5px !default; +$alert-close-right: $alert-padding !default; +$global-primary-background: #1e87f0 !default; +$alert-primary-background: lighten(mix(white, $global-primary-background, 40%), 20%) !default; +$alert-primary-color: $global-primary-background !default; +$global-success-background: #32d296 !default; +$alert-success-background: lighten(mix(white, $global-success-background, 40%), 25%) !default; +$alert-success-color: $global-success-background !default; +$global-warning-background: #faa05a !default; +$alert-warning-background: lighten(mix(white, $global-warning-background, 45%), 15%) !default; +$alert-warning-color: $global-warning-background !default; +$global-danger-background: #f0506e !default; +$alert-danger-background: lighten(mix(white, $global-danger-background, 40%), 20%) !default; +$alert-danger-color: $global-danger-background !default; +$global-large-margin: 70px !default; +$article-margin-top: $global-large-margin !default; +$global-xxlarge-font-size: 2.625rem !default; +$article-title-font-size: $global-xxlarge-font-size !default; +$article-title-line-height: 1.2 !default; +$global-small-font-size: 0.875rem !default; +$article-meta-font-size: $global-small-font-size !default; +$article-meta-line-height: 1.4 !default; +$global-muted-color: #999 !default; +$article-meta-color: $global-muted-color !default; +$inverse-global-muted-color: rgba($global-inverse-color, 0.5) !default; +$inverse-article-meta-color: $inverse-global-muted-color !default; +$animation-duration: 0.5s !default; +$animation-fade-duration: 0.8s !default; +$animation-kenburns-duration: 15s !default; +$animation-fast-duration: 0.1s !default; +$animation-slide-small-translate: 10px !default; +$animation-slide-medium-translate: 50px !default; +$global-background: #fff !default; +$background-default-background: $global-background !default; +$background-muted-background: $global-muted-background !default; +$background-primary-background: $global-primary-background !default; +$global-secondary-background: #222 !default; +$background-secondary-background: $global-secondary-background !default; +$badge-size: 22px !default; +$badge-padding-vertical: 0 !default; +$badge-padding-horizontal: 5px !default; +$badge-border-radius: 500px !default; +$badge-background: $global-primary-background !default; +$badge-color: $global-inverse-color !default; +$badge-font-size: $global-small-font-size !default; +$badge-hover-color: $global-inverse-color !default; +$inverse-global-primary-background: $global-inverse-color !default; +$inverse-badge-background: $inverse-global-primary-background !default; +$inverse-badge-color: $inverse-global-inverse-color !default; +$inverse-badge-hover-color: $inverse-global-inverse-color !default; +$base-body-background: $global-background !default; +$global-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !default; +$base-body-font-family: $global-font-family !default; +$base-body-font-weight: normal !default; +$global-font-size: 16px !default; +$base-body-font-size: $global-font-size !default; +$global-line-height: 1.5 !default; +$base-body-line-height: $global-line-height !default; +$base-body-color: $global-color !default; +$global-link-color: #1e87f0 !default; +$base-link-color: $global-link-color !default; +$base-link-text-decoration: none !default; +$global-link-hover-color: #0f6ecd !default; +$base-link-hover-color: $global-link-hover-color !default; +$base-link-hover-text-decoration: underline !default; +$base-strong-font-weight: bolder !default; +$base-code-font-size: $global-small-font-size !default; +$base-code-font-family: Consolas, monaco, monospace !default; +$base-code-color: $global-danger-background !default; +$base-em-color: $global-danger-background !default; +$base-ins-background: #ffd !default; +$base-ins-color: $global-color !default; +$base-mark-background: #ffd !default; +$base-mark-color: $global-color !default; +$base-quote-font-style: italic !default; +$base-small-font-size: 80% !default; +$base-margin-vertical: $global-margin !default; +$base-heading-font-family: $global-font-family !default; +$base-heading-font-weight: normal !default; +$base-heading-color: $global-emphasis-color !default; +$base-heading-text-transform: none !default; +$global-medium-margin: 40px !default; +$base-heading-margin-top: $global-medium-margin !default; +$base-h1-font-size: $global-xxlarge-font-size !default; +$base-h1-line-height: 1.2 !default; +$global-xlarge-font-size: 2rem !default; +$base-h2-font-size: $global-xlarge-font-size !default; +$base-h2-line-height: 1.3 !default; +$global-large-font-size: 1.5rem !default; +$base-h3-font-size: $global-large-font-size !default; +$base-h3-line-height: 1.4 !default; +$base-h4-font-size: $global-medium-font-size !default; +$base-h4-line-height: 1.4 !default; +$base-h5-font-size: $global-font-size !default; +$base-h5-line-height: 1.4 !default; +$base-h6-font-size: $global-small-font-size !default; +$base-h6-line-height: 1.4 !default; +$base-list-padding-left: 30px !default; +$base-hr-margin-vertical: $global-margin !default; +$global-border-width: 1px !default; +$base-hr-border-width: $global-border-width !default; +$global-border: #e5e5e5 !default; +$base-hr-border: $global-border !default; +$base-blockquote-font-size: $global-medium-font-size !default; +$base-blockquote-line-height: 1.5 !default; +$base-blockquote-font-style: italic !default; +$base-blockquote-margin-vertical: $global-margin !default; +$global-small-margin: 10px !default; +$base-blockquote-footer-margin-top: $global-small-margin !default; +$base-blockquote-footer-font-size: $global-small-font-size !default; +$base-blockquote-footer-line-height: 1.5 !default; +$base-pre-font-size: $global-small-font-size !default; +$base-pre-line-height: 1.5 !default; +$base-pre-font-family: $base-code-font-family !default; +$base-pre-color: $global-color !default; +$base-selection-background: #39f !default; +$base-selection-color: $global-inverse-color !default; +$inverse-global-color: rgba($global-inverse-color, 0.7) !default; +$inverse-base-color: $inverse-global-color !default; +$inverse-base-link-color: $inverse-global-emphasis-color !default; +$inverse-base-link-hover-color: $inverse-global-emphasis-color !default; +$inverse-base-code-color: $inverse-global-color !default; +$inverse-base-em-color: $inverse-global-emphasis-color !default; +$inverse-base-heading-color: $inverse-global-emphasis-color !default; +$inverse-global-border: rgba($global-inverse-color, 0.2) !default; +$inverse-base-hr-border: $inverse-global-border !default; +$breadcrumb-item-font-size: $global-small-font-size !default; +$breadcrumb-item-color: $global-muted-color !default; +$breadcrumb-item-hover-color: $global-color !default; +$breadcrumb-item-hover-text-decoration: none !default; +$breadcrumb-item-active-color: $global-color !default; +$breadcrumb-divider: "/" !default; +$breadcrumb-divider-margin-horizontal: 20px !default; +$breadcrumb-divider-color: $global-muted-color !default; +$inverse-breadcrumb-item-color: $inverse-global-muted-color !default; +$inverse-breadcrumb-item-hover-color: $inverse-global-color !default; +$inverse-breadcrumb-item-active-color: $inverse-global-color !default; +$inverse-breadcrumb-divider-color: $inverse-global-muted-color !default; +$global-control-height: 40px !default; +$button-border-width: $global-border-width !default; +$button-line-height: $global-control-height - ($button-border-width * 2) !default; +$global-control-small-height: 30px !default; +$button-small-line-height: $global-control-small-height - ($button-border-width * 2) !default; +$global-control-large-height: 55px !default; +$button-large-line-height: $global-control-large-height - ($button-border-width * 2) !default; +$button-font-size: $global-small-font-size !default; +$button-small-font-size: $global-small-font-size !default; +$button-large-font-size: $global-small-font-size !default; +$button-padding-horizontal: $global-gutter !default; +$button-small-padding-horizontal: $global-small-gutter !default; +$button-large-padding-horizontal: $global-medium-gutter !default; +$button-default-background: transparent !default; +$button-default-color: $global-emphasis-color !default; +$button-default-hover-background: transparent !default; +$button-default-hover-color: $global-emphasis-color !default; +$button-default-active-background: transparent !default; +$button-default-active-color: $global-emphasis-color !default; +$button-primary-background: $global-primary-background !default; +$button-primary-color: $global-inverse-color !default; +$button-primary-hover-background: darken($button-primary-background, 5%) !default; +$button-primary-hover-color: $global-inverse-color !default; +$button-primary-active-background: darken($button-primary-background, 10%) !default; +$button-primary-active-color: $global-inverse-color !default; +$button-secondary-background: $global-secondary-background !default; +$button-secondary-color: $global-inverse-color !default; +$button-secondary-hover-background: darken($button-secondary-background, 5%) !default; +$button-secondary-hover-color: $global-inverse-color !default; +$button-secondary-active-background: darken($button-secondary-background, 10%) !default; +$button-secondary-active-color: $global-inverse-color !default; +$button-danger-background: $global-danger-background !default; +$button-danger-color: $global-inverse-color !default; +$button-danger-hover-background: darken($button-danger-background, 5%) !default; +$button-danger-hover-color: $global-inverse-color !default; +$button-danger-active-background: darken($button-danger-background, 10%) !default; +$button-danger-active-color: $global-inverse-color !default; +$button-disabled-background: transparent !default; +$button-disabled-color: $global-muted-color !default; +$button-text-line-height: $global-line-height !default; +$button-text-color: $global-emphasis-color !default; +$button-text-hover-color: $global-emphasis-color !default; +$button-text-disabled-color: $global-muted-color !default; +$button-link-line-height: $global-line-height !default; +$button-link-color: $global-link-color !default; +$button-link-hover-color: $global-link-hover-color !default; +$button-link-hover-text-decoration: underline !default; +$button-link-disabled-color: $global-muted-color !default; +$inverse-button-default-background: transparent !default; +$inverse-button-default-color: $inverse-global-emphasis-color !default; +$inverse-button-default-hover-background: transparent !default; +$inverse-button-default-hover-color: $inverse-global-emphasis-color !default; +$inverse-button-default-active-background: transparent !default; +$inverse-button-default-active-color: $inverse-global-emphasis-color !default; +$inverse-button-primary-background: $inverse-global-primary-background !default; +$inverse-button-primary-color: $inverse-global-inverse-color !default; +$inverse-button-primary-hover-background: darken($inverse-button-primary-background, 5%) !default; +$inverse-button-primary-hover-color: $inverse-global-inverse-color !default; +$inverse-button-primary-active-background: darken($inverse-button-primary-background, 10%) !default; +$inverse-button-primary-active-color: $inverse-global-inverse-color !default; +$inverse-button-secondary-background: $inverse-global-primary-background !default; +$inverse-button-secondary-color: $inverse-global-inverse-color !default; +$inverse-button-secondary-hover-background: darken($inverse-button-secondary-background, 5%) !default; +$inverse-button-secondary-hover-color: $inverse-global-inverse-color !default; +$inverse-button-secondary-active-background: darken($inverse-button-secondary-background, 10%) !default; +$inverse-button-secondary-active-color: $inverse-global-inverse-color !default; +$inverse-button-text-color: $inverse-global-emphasis-color !default; +$inverse-button-text-hover-color: $inverse-global-emphasis-color !default; +$inverse-button-text-disabled-color: $inverse-global-muted-color !default; +$inverse-button-link-color: $inverse-global-muted-color !default; +$inverse-button-link-hover-color: $inverse-global-color !default; +$card-body-padding-horizontal: $global-gutter !default; +$card-body-padding-vertical: $global-gutter !default; +$card-body-padding-horizontal-l: $global-medium-gutter !default; +$card-body-padding-vertical-l: $global-medium-gutter !default; +$card-header-padding-horizontal: $global-gutter !default; +$card-header-padding-vertical: round($global-gutter / 2) !default; +$card-header-padding-horizontal-l: $global-medium-gutter !default; +$card-header-padding-vertical-l: round($global-medium-gutter / 2) !default; +$card-footer-padding-horizontal: $global-gutter !default; +$card-footer-padding-vertical: ($global-gutter / 2) !default; +$card-footer-padding-horizontal-l: $global-medium-gutter !default; +$card-footer-padding-vertical-l: round($global-medium-gutter / 2) !default; +$card-title-font-size: $global-large-font-size !default; +$card-title-line-height: 1.4 !default; +$card-badge-top: $global-gutter !default; +$card-badge-right: $card-badge-top !default; +$card-hover-background: $global-background !default; +$card-default-background: $global-background !default; +$card-default-color: $global-color !default; +$card-default-title-color: $global-emphasis-color !default; +$card-default-hover-background: $card-default-background !default; +$card-primary-background: $global-primary-background !default; +$card-primary-color: $global-inverse-color !default; +$card-primary-title-color: $card-primary-color !default; +$card-primary-hover-background: $card-primary-background !default; +$card-primary-color-mode: light !default; +$card-secondary-background: $global-secondary-background !default; +$card-secondary-color: $global-inverse-color !default; +$card-secondary-title-color: $card-secondary-color !default; +$card-secondary-hover-background: $card-secondary-background !default; +$card-secondary-color-mode: light !default; +$card-small-body-padding-horizontal: $global-margin !default; +$card-small-body-padding-vertical: $global-margin !default; +$card-small-header-padding-horizontal: $global-margin !default; +$card-small-header-padding-vertical: round($global-margin / 1.5) !default; +$card-small-footer-padding-horizontal: $global-margin !default; +$card-small-footer-padding-vertical: round($global-margin / 1.5) !default; +$global-large-gutter: 70px !default; +$card-large-body-padding-horizontal-l: $global-large-gutter !default; +$card-large-body-padding-vertical-l: $global-large-gutter !default; +$card-large-header-padding-horizontal-l: $global-large-gutter !default; +$card-large-header-padding-vertical-l: round($global-large-gutter / 2) !default; +$card-large-footer-padding-horizontal-l: $global-large-gutter !default; +$card-large-footer-padding-vertical-l: round($global-large-gutter / 2) !default; +$close-color: $global-muted-color !default; +$close-hover-color: $global-color !default; +$inverse-close-color: $inverse-global-muted-color !default; +$inverse-close-hover-color: $inverse-global-color !default; +$column-gutter: $global-gutter !default; +$column-gutter-l: $global-medium-gutter !default; +$column-divider-rule-color: $global-border !default; +$column-divider-rule-width: 1px !default; +$inverse-column-divider-rule-color: $inverse-global-border !default; +$comment-header-margin-bottom: $global-margin !default; +$comment-title-font-size: $global-medium-font-size !default; +$comment-title-line-height: 1.4 !default; +$comment-meta-font-size: $global-small-font-size !default; +$comment-meta-line-height: 1.4 !default; +$comment-meta-color: $global-muted-color !default; +$comment-list-margin-top: $global-large-margin !default; +$comment-list-padding-left: 30px !default; +$comment-list-padding-left-m: 100px !default; +$container-max-width: 1124px !default; +$container-small-max-width: 900px !default; +$container-large-max-width: 1600px !default; +$container-padding-horizontal: 15px !default; +$container-padding-horizontal-s: $global-gutter !default; +$container-padding-horizontal-m: $global-medium-gutter !default; +$countdown-item-line-height: 70px !default; +$countdown-number-font-size: 2rem !default; +$countdown-number-font-size-s: 4rem !default; +$countdown-number-font-size-m: 6rem !default; +$countdown-separator-font-size: 1rem !default; +$countdown-separator-font-size-s: 2rem !default; +$countdown-separator-font-size-m: 3rem !default; +$description-list-term-color: $global-emphasis-color !default; +$description-list-term-margin-top: $global-margin !default; +$description-list-divider-term-margin-top: $global-margin !default; +$description-list-divider-term-border-width: $global-border-width !default; +$description-list-divider-term-border: $global-border !default; +$divider-margin-vertical: $global-margin !default; +$divider-icon-width: 50px !default; +$divider-icon-height: 20px !default; +$divider-icon-color: $global-border !default; +$divider-icon-line-top: 50% !default; +$divider-icon-line-width: 100% !default; +$divider-icon-line-border-width: $global-border-width !default; +$divider-icon-line-border: $global-border !default; +$internal-divider-icon-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22none%22%20stroke%3D%22#000%22%20stroke-width%3D%222%22%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%227%22%20%2F%3E%0A%3C%2Fsvg%3E%0A" !default; +$divider-small-width: 100px !default; +$divider-small-border-width: $global-border-width !default; +$divider-small-border: $global-border !default; +$inverse-divider-icon-color: $inverse-global-border !default; +$inverse-divider-icon-line-border: $inverse-global-border !default; +$inverse-divider-small-border: $inverse-global-border !default; +$dotnav-margin-horizontal: 12px !default; +$dotnav-margin-vertical: $dotnav-margin-horizontal !default; +$dotnav-item-width: 10px !default; +$dotnav-item-height: $dotnav-item-width !default; +$dotnav-item-border-radius: 50% !default; +$dotnav-item-background: transparent !default; +$dotnav-item-hover-background: rgba($global-color, 0.6) !default; +$dotnav-item-onclick-background: rgba($global-color, 0.2) !default; +$dotnav-item-active-background: rgba($global-color, 0.6) !default; +$inverse-dotnav-item-background: transparent !default; +$inverse-dotnav-item-hover-background: rgba($inverse-global-color, 0.9) !default; +$inverse-dotnav-item-onclick-background: rgba($inverse-global-color, 0.5) !default; +$inverse-dotnav-item-active-background: rgba($inverse-global-color, 0.9) !default; +$global-z-index: 1000 !default; +$drop-z-index: $global-z-index + 20 !default; +$drop-width: 300px !default; +$drop-margin: $global-margin !default; +$dropdown-z-index: $global-z-index + 20 !default; +$dropdown-min-width: 200px !default; +$dropdown-padding: 25px !default; +$dropdown-background: $global-background !default; +$dropdown-color: $global-color !default; +$dropdown-margin: $global-small-margin !default; +$dropdown-nav-item-color: $global-muted-color !default; +$dropdown-nav-item-hover-color: $global-color !default; +$dropdown-nav-header-color: $global-emphasis-color !default; +$dropdown-nav-divider-border-width: $global-border-width !default; +$dropdown-nav-divider-border: $global-border !default; +$dropdown-nav-sublist-item-color: $global-muted-color !default; +$dropdown-nav-sublist-item-hover-color: $global-color !default; +$form-range-thumb-height: 15px !default; +$form-range-thumb-border-radius: 500px !default; +$form-range-thumb-background: $global-background !default; +$form-range-track-height: 3px !default; +$form-range-track-background: darken($global-muted-background, 5%) !default; +$form-range-track-focus-background: darken($global-muted-background, 15%) !default; +$form-height: $global-control-height !default; +$form-border-width: $global-border-width !default; +$form-line-height: $form-height - (2* $form-border-width) !default; +$form-padding-horizontal: 10px !default; +$form-padding-vertical: 4px !default; +$form-background: $global-background !default; +$form-color: $global-color !default; +$form-focus-background: $global-background !default; +$form-focus-color: $global-color !default; +$form-disabled-background: $global-muted-background !default; +$form-disabled-color: $global-muted-color !default; +$form-placeholder-color: $global-muted-color !default; +$form-small-height: $global-control-small-height !default; +$form-small-padding-horizontal: 8px !default; +$form-small-line-height: $form-small-height - (2* $form-border-width) !default; +$form-small-font-size: $global-small-font-size !default; +$form-large-height: $global-control-large-height !default; +$form-large-padding-horizontal: 12px !default; +$form-large-line-height: $form-large-height - (2* $form-border-width) !default; +$form-large-font-size: $global-medium-font-size !default; +$form-danger-color: $global-danger-background !default; +$form-success-color: $global-success-background !default; +$form-width-xsmall: 50px !default; +$form-width-small: 130px !default; +$form-width-medium: 200px !default; +$form-width-large: 500px !default; +$form-select-padding-right: 20px !default; +$form-select-icon-color: $global-color !default; +$form-select-disabled-icon-color: $global-muted-color !default; +$form-radio-size: 16px !default; +$form-radio-margin-top: -4px !default; +$form-radio-background: transparent !default; +$form-radio-checked-background: $global-primary-background !default; +$form-radio-checked-icon-color: $global-inverse-color !default; +$form-radio-checked-focus-background: darken($global-primary-background, 10%) !default; +$form-radio-disabled-background: $global-muted-background !default; +$form-radio-disabled-icon-color: $global-muted-color !default; +$form-legend-font-size: $global-large-font-size !default; +$form-legend-line-height: 1.4 !default; +$form-stacked-margin-bottom: 5px !default; +$form-horizontal-label-width: 200px !default; +$form-horizontal-label-margin-top: 7px !default; +$form-horizontal-controls-margin-left: 215px !default; +$form-horizontal-controls-text-padding-top: 7px !default; +$form-icon-width: $form-height !default; +$form-icon-font-size: $global-font-size !default; +$form-icon-color: $global-muted-color !default; +$form-icon-hover-color: $global-color !default; +$internal-form-select-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22#000%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22#000%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A" !default; +$internal-form-radio-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22#000%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$internal-form-checkbox-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22#000%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A" !default; +$internal-form-checkbox-indeterminate-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22#000%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$inverse-global-muted-background: rgba($global-inverse-color, 0.1) !default; +$inverse-form-background: $inverse-global-muted-background !default; +$inverse-form-color: $inverse-global-color !default; +$inverse-form-focus-background: $inverse-global-muted-background !default; +$inverse-form-focus-color: $inverse-global-color !default; +$inverse-form-placeholder-color: $inverse-global-muted-color !default; +$inverse-form-select-icon-color: $inverse-global-color !default; +$inverse-form-radio-background: darken($inverse-global-muted-background, 5%) !default; +$inverse-form-radio-checked-background: $inverse-global-primary-background !default; +$inverse-form-radio-checked-icon-color: $inverse-global-inverse-color !default; +$inverse-form-radio-checked-focus-background: darken($inverse-global-primary-background, 10%) !default; +$grid-gutter-horizontal: $global-gutter !default; +$grid-gutter-vertical: $grid-gutter-horizontal !default; +$grid-gutter-horizontal-l: $global-medium-gutter !default; +$grid-gutter-vertical-l: $grid-gutter-horizontal-l !default; +$grid-small-gutter-horizontal: $global-small-gutter !default; +$grid-small-gutter-vertical: $grid-small-gutter-horizontal !default; +$grid-medium-gutter-horizontal: $global-gutter !default; +$grid-medium-gutter-vertical: $grid-medium-gutter-horizontal !default; +$grid-large-gutter-horizontal: $global-medium-gutter !default; +$grid-large-gutter-vertical: $grid-large-gutter-horizontal !default; +$grid-large-gutter-horizontal-l: $global-large-gutter !default; +$grid-large-gutter-vertical-l: $grid-large-gutter-horizontal-l !default; +$grid-divider-border-width: $global-border-width !default; +$grid-divider-border: $global-border !default; +$inverse-grid-divider-border: $inverse-global-border !default; +$heading-primary-font-size: $global-xxlarge-font-size !default; +$heading-primary-line-height: 1.2 !default; +$heading-primary-font-size-m: 3.75rem !default; +$heading-primary-line-height-m: 1.1 !default; +$heading-hero-font-size: 4rem !default; +$heading-hero-line-height: 1.1 !default; +$heading-hero-font-size-s: 6rem !default; +$heading-hero-line-height-s: 1 !default; +$heading-hero-font-size-m: 8rem !default; +$heading-hero-line-height-m: 1 !default; +$heading-divider-padding-bottom: 10px !default; +$heading-divider-border-width: $global-border-width !default; +$heading-divider-border: $global-border !default; +$heading-bullet-top: unquote('calc(-0.1 * 1em)') !default; +$heading-bullet-height: 0.9em !default; +$heading-bullet-margin-right: 10px !default; +$heading-bullet-border-width: 5px !default; +$heading-bullet-border: $global-border !default; +$heading-line-top: 50% !default; +$heading-line-border-width: $global-border-width !default; +$heading-line-height: $heading-line-border-width !default; +$heading-line-width: 2000px !default; +$heading-line-border: $global-border !default; +$heading-line-margin-horizontal: 0.6em !default; +$inverse-heading-divider-border: $inverse-global-border !default; +$inverse-heading-bullet-border: $inverse-global-border !default; +$inverse-heading-line-border: $inverse-global-border !default; +$icon-image-size: 20px !default; +$icon-link-color: $global-muted-color !default; +$icon-link-hover-color: $global-color !default; +$icon-link-active-color: darken($global-color, 5%) !default; +$icon-button-size: 36px !default; +$icon-button-border-radius: 500px !default; +$icon-button-background: $global-muted-background !default; +$icon-button-color: $global-muted-color !default; +$icon-button-hover-background: darken($icon-button-background, 5%) !default; +$icon-button-hover-color: $global-color !default; +$icon-button-active-background: darken($icon-button-background, 10%) !default; +$icon-button-active-color: $global-color !default; +$inverse-icon-link-color: $inverse-global-muted-color !default; +$inverse-icon-link-hover-color: $inverse-global-color !default; +$inverse-icon-link-active-color: $inverse-global-color !default; +$inverse-icon-button-background: $inverse-global-muted-background !default; +$inverse-icon-button-color: $inverse-global-muted-color !default; +$inverse-icon-button-hover-background: darken($inverse-icon-button-background, 5%) !default; +$inverse-icon-button-hover-color: $inverse-global-color !default; +$inverse-icon-button-active-background: darken($inverse-icon-button-background, 10%) !default; +$inverse-icon-button-active-color: $inverse-global-color !default; +$iconnav-margin-horizontal: $global-small-margin !default; +$iconnav-margin-vertical: $iconnav-margin-horizontal !default; +$iconnav-item-color: $global-muted-color !default; +$iconnav-item-hover-color: $global-color !default; +$iconnav-item-active-color: $global-color !default; +$inverse-iconnav-item-color: $inverse-global-muted-color !default; +$inverse-iconnav-item-hover-color: $inverse-global-color !default; +$inverse-iconnav-item-active-color: $inverse-global-color !default; +$inverse-global-color-mode: light !default; +$label-padding-vertical: 0 !default; +$label-padding-horizontal: $global-small-margin !default; +$label-background: $global-primary-background !default; +$label-line-height: $global-line-height !default; +$label-font-size: $global-small-font-size !default; +$label-color: $global-inverse-color !default; +$label-success-background: $global-success-background !default; +$label-success-color: $global-inverse-color !default; +$label-warning-background: $global-warning-background !default; +$label-warning-color: $global-inverse-color !default; +$label-danger-background: $global-danger-background !default; +$label-danger-color: $global-inverse-color !default; +$inverse-label-background: $inverse-global-primary-background !default; +$inverse-label-color: $inverse-global-inverse-color !default; +$lightbox-z-index: $global-z-index + 10 !default; +$lightbox-background: #000 !default; +$lightbox-item-color: rgba(255,255,255,0.7) !default; +$lightbox-toolbar-padding-vertical: 10px !default; +$lightbox-toolbar-padding-horizontal: 10px !default; +$lightbox-toolbar-background: rgba(0,0,0,0.3) !default; +$lightbox-toolbar-color: rgba(255,255,255,0.7) !default; +$lightbox-toolbar-icon-padding: 5px !default; +$lightbox-toolbar-icon-color: rgba(255,255,255,0.7) !default; +$lightbox-toolbar-icon-hover-color: #fff !default; +$lightbox-button-size: 50px !default; +$lightbox-button-background: $lightbox-toolbar-background !default; +$lightbox-button-color: rgba(255,255,255,0.7) !default; +$lightbox-button-hover-color: #fff !default; +$link-muted-color: $global-muted-color !default; +$link-muted-hover-color: $global-color !default; +$link-text-hover-color: $global-muted-color !default; +$link-heading-hover-color: $global-primary-background !default; +$link-heading-hover-text-decoration: none !default; +$inverse-link-muted-color: $inverse-global-muted-color !default; +$inverse-link-muted-hover-color: $inverse-global-color !default; +$inverse-link-text-hover-color: $inverse-global-muted-color !default; +$inverse-link-heading-hover-color: $inverse-global-primary-background !default; +$list-margin-top: $global-small-margin !default; +$list-nested-padding-left: $global-gutter !default; +$list-divider-margin-top: $global-small-margin !default; +$list-divider-border-width: $global-border-width !default; +$list-divider-border: $global-border !default; +$list-striped-padding-vertical: $global-small-margin !default; +$list-striped-padding-horizontal: $global-small-margin !default; +$list-striped-background: $global-muted-background !default; +$list-bullet-width: ($global-line-height * 1em) !default; +$list-bullet-height: $list-bullet-width !default; +$list-bullet-margin-right: $global-small-margin !default; +$list-bullet-icon-color: $global-color !default; +$list-large-margin-top: $global-margin !default; +$list-large-divider-margin-top: $global-margin !default; +$list-large-striped-padding-vertical: $global-margin !default; +$list-large-striped-padding-horizontal: $global-small-margin !default; +$internal-list-bullet-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%226%22%20height%3D%226%22%20viewBox%3D%220%200%206%206%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22#000%22%20cx%3D%223%22%20cy%3D%223%22%20r%3D%223%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$inverse-list-divider-border: $inverse-global-border !default; +$inverse-list-striped-background: $inverse-global-muted-background !default; +$inverse-list-bullet-icon-color: $inverse-global-color !default; +$margin-margin: $global-margin !default; +$margin-small-margin: $global-small-margin !default; +$margin-medium-margin: $global-medium-margin !default; +$margin-large-margin: $global-medium-margin !default; +$margin-large-margin-l: $global-large-margin !default; +$margin-xlarge-margin: $global-large-margin !default; +$global-xlarge-margin: 140px !default; +$margin-xlarge-margin-l: $global-xlarge-margin !default; +$marker-padding: 5px !default; +$marker-background: $global-secondary-background !default; +$marker-color: $global-inverse-color !default; +$marker-hover-color: $global-inverse-color !default; +$inverse-marker-background: $global-muted-background !default; +$inverse-marker-color: $global-color !default; +$inverse-marker-hover-color: $global-color !default; +$modal-z-index: $global-z-index + 10 !default; +$modal-background: rgba(0,0,0,0.6) !default; +$modal-padding-horizontal: 15px !default; +$modal-padding-horizontal-s: $global-gutter !default; +$modal-padding-horizontal-m: $global-medium-gutter !default; +$modal-padding-vertical: $modal-padding-horizontal !default; +$modal-padding-vertical-s: 50px !default; +$modal-dialog-width: 600px !default; +$modal-dialog-background: $global-background !default; +$modal-container-width: 1200px !default; +$modal-body-padding-horizontal: $global-gutter !default; +$modal-body-padding-vertical: $global-gutter !default; +$modal-header-padding-horizontal: $global-gutter !default; +$modal-header-padding-vertical: ($modal-header-padding-horizontal / 2) !default; +$modal-header-background: $modal-dialog-background !default; +$modal-footer-padding-horizontal: $global-gutter !default; +$modal-footer-padding-vertical: ($modal-footer-padding-horizontal / 2) !default; +$modal-footer-background: $modal-dialog-background !default; +$modal-title-font-size: $global-xlarge-font-size !default; +$modal-title-line-height: 1.3 !default; +$modal-close-position: $global-small-margin !default; +$modal-close-padding: 5px !default; +$modal-close-outside-position: 0 !default; +$modal-close-outside-translate: 100% !default; +$modal-close-outside-color: lighten($global-inverse-color, 20%) !default; +$modal-close-outside-hover-color: $global-inverse-color !default; +$nav-item-padding-vertical: 5px !default; +$nav-item-padding-horizontal: 0 !default; +$nav-sublist-padding-vertical: 5px !default; +$nav-sublist-padding-left: 15px !default; +$nav-sublist-deeper-padding-left: 15px !default; +$nav-sublist-item-padding-vertical: 2px !default; +$nav-parent-icon-width: ($global-line-height * 1em) !default; +$nav-parent-icon-height: $nav-parent-icon-width !default; +$nav-parent-icon-color: $global-color !default; +$nav-header-padding-vertical: $nav-item-padding-vertical !default; +$nav-header-padding-horizontal: $nav-item-padding-horizontal !default; +$nav-header-font-size: $global-small-font-size !default; +$nav-header-text-transform: uppercase !default; +$nav-header-margin-top: $global-margin !default; +$nav-divider-margin-vertical: 5px !default; +$nav-divider-margin-horizontal: 0 !default; +$nav-default-item-color: $global-muted-color !default; +$nav-default-item-hover-color: $global-color !default; +$nav-default-item-active-color: $global-emphasis-color !default; +$nav-default-header-color: $global-emphasis-color !default; +$nav-default-divider-border-width: $global-border-width !default; +$nav-default-divider-border: $global-border !default; +$nav-default-sublist-item-color: $global-muted-color !default; +$nav-default-sublist-item-hover-color: $global-color !default; +$nav-primary-item-font-size: $global-large-font-size !default; +$nav-primary-item-line-height: $global-line-height !default; +$nav-primary-item-color: $global-muted-color !default; +$nav-primary-item-hover-color: $global-color !default; +$nav-primary-item-active-color: $global-emphasis-color !default; +$nav-primary-header-color: $global-emphasis-color !default; +$nav-primary-divider-border-width: $global-border-width !default; +$nav-primary-divider-border: $global-border !default; +$nav-primary-sublist-item-color: $global-muted-color !default; +$nav-primary-sublist-item-hover-color: $global-color !default; +$internal-nav-parent-close-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22#000%22%20stroke-width%3D%221.1%22%20points%3D%2210%201%204%207%2010%2013%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$internal-nav-parent-open-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22#000%22%20stroke-width%3D%221.1%22%20points%3D%221%204%207%2010%2013%204%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$inverse-nav-parent-icon-color: $inverse-global-color !default; +$inverse-nav-default-item-color: $inverse-global-muted-color !default; +$inverse-nav-default-item-hover-color: $inverse-global-color !default; +$inverse-nav-default-item-active-color: $inverse-global-emphasis-color !default; +$inverse-nav-default-header-color: $inverse-global-emphasis-color !default; +$inverse-nav-default-divider-border: $inverse-global-border !default; +$inverse-nav-default-sublist-item-color: $inverse-global-muted-color !default; +$inverse-nav-default-sublist-item-hover-color: $inverse-global-color !default; +$inverse-nav-primary-item-color: $inverse-global-muted-color !default; +$inverse-nav-primary-item-hover-color: $inverse-global-color !default; +$inverse-nav-primary-item-active-color: $inverse-global-emphasis-color !default; +$inverse-nav-primary-header-color: $inverse-global-emphasis-color !default; +$inverse-nav-primary-divider-border: $inverse-global-border !default; +$inverse-nav-primary-sublist-item-color: $inverse-global-muted-color !default; +$inverse-nav-primary-sublist-item-hover-color: $inverse-global-color !default; +$navbar-background: $global-muted-background !default; +$navbar-color-mode: none !default; +$navbar-nav-item-height: 80px !default; +$navbar-nav-item-padding-horizontal: 15px !default; +$navbar-nav-item-color: $global-muted-color !default; +$navbar-nav-item-font-size: $global-small-font-size !default; +$navbar-nav-item-font-family: $global-font-family !default; +$navbar-nav-item-hover-color: $global-color !default; +$navbar-nav-item-onclick-color: $global-emphasis-color !default; +$navbar-nav-item-active-color: $global-emphasis-color !default; +$navbar-item-color: $global-color !default; +$navbar-toggle-color: $global-muted-color !default; +$navbar-toggle-hover-color: $global-color !default; +$navbar-subtitle-font-size: $global-small-font-size !default; +$navbar-dropdown-z-index: $global-z-index + 20 !default; +$navbar-dropdown-width: 200px !default; +$navbar-dropdown-margin: 15px !default; +$navbar-dropdown-padding: 25px !default; +$navbar-dropdown-background: $global-background !default; +$navbar-dropdown-color: $global-color !default; +$navbar-dropdown-grid-gutter-horizontal: ($navbar-dropdown-padding * 2) !default; +$navbar-dropdown-grid-gutter-vertical: $navbar-dropdown-grid-gutter-horizontal !default; +$navbar-dropdown-dropbar-margin-top: 0 !default; +$navbar-dropdown-dropbar-margin-bottom: $navbar-dropdown-dropbar-margin-top !default; +$navbar-dropdown-nav-item-color: $global-muted-color !default; +$navbar-dropdown-nav-item-hover-color: $global-color !default; +$navbar-dropdown-nav-item-active-color: $global-emphasis-color !default; +$navbar-dropdown-nav-header-color: $global-emphasis-color !default; +$navbar-dropdown-nav-divider-border-width: $global-border-width !default; +$navbar-dropdown-nav-divider-border: $global-border !default; +$navbar-dropdown-nav-sublist-item-color: $global-muted-color !default; +$navbar-dropdown-nav-sublist-item-hover-color: $global-color !default; +$navbar-dropbar-background: $navbar-dropdown-background !default; +$navbar-dropbar-z-index: $global-z-index - 20 !default; +$inverse-navbar-nav-item-color: $inverse-global-muted-color !default; +$inverse-navbar-nav-item-hover-color: $inverse-global-color !default; +$inverse-navbar-nav-item-onclick-color: $inverse-global-emphasis-color !default; +$inverse-navbar-nav-item-active-color: $inverse-global-emphasis-color !default; +$inverse-navbar-item-color: $inverse-global-color !default; +$inverse-navbar-toggle-color: $inverse-global-muted-color !default; +$inverse-navbar-toggle-hover-color: $inverse-global-color !default; +$notification-position: 10px !default; +$notification-z-index: $global-z-index + 40 !default; +$notification-width: 350px !default; +$notification-message-margin-bottom: 10px !default; +$notification-message-padding: $global-small-gutter !default; +$notification-message-background: $global-muted-background !default; +$notification-message-color: $global-color !default; +$notification-message-font-size: $global-medium-font-size !default; +$notification-message-line-height: 1.4 !default; +$notification-close-top: $notification-message-padding + 5px !default; +$notification-close-right: $notification-message-padding !default; +$notification-message-primary-color: $global-primary-background !default; +$notification-message-success-color: $global-success-background !default; +$notification-message-warning-color: $global-warning-background !default; +$notification-message-danger-color: $global-danger-background !default; +$offcanvas-z-index: $global-z-index !default; +$offcanvas-bar-width: 270px !default; +$offcanvas-bar-padding-vertical: $global-margin !default; +$offcanvas-bar-padding-horizontal: $global-margin !default; +$offcanvas-bar-background: $global-secondary-background !default; +$offcanvas-bar-color-mode: light !default; +$offcanvas-bar-width-m: 350px !default; +$offcanvas-bar-padding-vertical-m: $global-medium-gutter !default; +$offcanvas-bar-padding-horizontal-m: $global-medium-gutter !default; +$offcanvas-close-position: 20px !default; +$offcanvas-close-padding: 5px !default; +$offcanvas-overlay-background: rgba(0,0,0,0.1) !default; +$overlay-padding-horizontal: $global-gutter !default; +$overlay-padding-vertical: $global-gutter !default; +$overlay-default-background: rgba($global-background, 0.8) !default; +$overlay-primary-background: rgba($global-secondary-background, 0.8) !default; +$overlay-primary-color-mode: light !default; +$padding-padding: $global-gutter !default; +$padding-padding-l: $global-medium-gutter !default; +$padding-small-padding: $global-small-gutter !default; +$padding-large-padding: $global-gutter !default; +$padding-large-padding-l: $global-large-gutter !default; +$pagination-margin-horizontal: 20px !default; +$pagination-item-color: $global-muted-color !default; +$pagination-item-hover-color: $global-color !default; +$pagination-item-hover-text-decoration: none !default; +$pagination-item-active-color: $global-color !default; +$pagination-item-disabled-color: $global-muted-color !default; +$inverse-pagination-item-color: $inverse-global-muted-color !default; +$inverse-pagination-item-hover-color: $inverse-global-color !default; +$inverse-pagination-item-active-color: $inverse-global-color !default; +$inverse-pagination-item-disabled-color: $inverse-global-muted-color !default; +$placeholder-margin-vertical: $global-margin !default; +$placeholder-padding-vertical: $global-gutter !default; +$placeholder-padding-horizontal: $global-gutter !default; +$placeholder-background: transparent !default; +$position-small-margin: $global-small-gutter !default; +$position-medium-margin: $global-gutter !default; +$position-large-margin: $global-gutter !default; +$position-large-margin-l: 50px !default; +$progress-height: 15px !default; +$progress-margin-vertical: $global-margin !default; +$progress-background: $global-muted-background !default; +$progress-bar-background: $global-primary-background !default; +$search-color: $global-color !default; +$search-placeholder-color: $global-muted-color !default; +$search-icon-color: $global-muted-color !default; +$search-default-width: 180px !default; +$search-default-height: $global-control-height !default; +$search-default-padding-horizontal: 6px !default; +$search-default-background: transparent !default; +$search-default-focus-background: $search-default-background !default; +$search-default-icon-width: $global-control-height !default; +$search-navbar-width: 400px !default; +$search-navbar-height: 40px !default; +$search-navbar-background: transparent !default; +$search-navbar-font-size: $global-large-font-size !default; +$search-navbar-icon-width: 40px !default; +$search-large-width: 500px !default; +$search-large-height: 80px !default; +$search-large-background: transparent !default; +$search-large-font-size: $global-xxlarge-font-size !default; +$search-large-icon-width: 80px !default; +$search-toggle-color: $global-muted-color !default; +$search-toggle-hover-color: $global-color !default; +$inverse-search-color: $inverse-global-color !default; +$inverse-search-placeholder-color: $inverse-global-muted-color !default; +$inverse-search-icon-color: $inverse-global-muted-color !default; +$inverse-search-default-background: transparent !default; +$inverse-search-default-focus-background: $inverse-search-default-background !default; +$inverse-search-navbar-background: transparent !default; +$inverse-search-large-background: transparent !default; +$inverse-search-toggle-color: $inverse-global-muted-color !default; +$inverse-search-toggle-hover-color: $inverse-global-color !default; +$section-padding-vertical: $global-medium-margin !default; +$section-padding-vertical-m: $global-large-margin !default; +$section-xsmall-padding-vertical: $global-margin !default; +$section-small-padding-vertical: $global-medium-margin !default; +$section-large-padding-vertical: $global-large-margin !default; +$section-large-padding-vertical-m: $global-xlarge-margin !default; +$section-xlarge-padding-vertical: $global-xlarge-margin !default; +$section-xlarge-padding-vertical-m: ($global-large-margin + $global-xlarge-margin) !default; +$section-default-background: $global-background !default; +$section-muted-background: $global-muted-background !default; +$section-primary-background: $global-primary-background !default; +$section-primary-color-mode: light !default; +$section-secondary-background: $global-secondary-background !default; +$section-secondary-color-mode: light !default; +$slidenav-padding-vertical: 5px !default; +$slidenav-padding-horizontal: 10px !default; +$slidenav-color: rgba($global-color, 0.5) !default; +$slidenav-hover-color: rgba($global-color, 0.9) !default; +$slidenav-active-color: rgba($global-color, 0.5) !default; +$slidenav-large-padding-vertical: 10px !default; +$slidenav-large-padding-horizontal: $slidenav-large-padding-vertical !default; +$inverse-slidenav-color: rgba($inverse-global-color, 0.7) !default; +$inverse-slidenav-hover-color: rgba($inverse-global-color, 0.95) !default; +$inverse-slidenav-active-color: rgba($inverse-global-color, 0.7) !default; +$sortable-dragged-z-index: $global-z-index + 50 !default; +$sortable-placeholder-opacity: 0 !default; +$sortable-empty-height: 50px !default; +$spinner-size: 30px !default; +$spinner-stroke-width: 1 !default; +$spinner-radius: floor(($spinner-size - $spinner-stroke-width) / 2) !default; +$spinner-circumference: round(2 * 3.141 * $spinner-radius) !default; +$spinner-duration: 1.4s !default; +$sticky-z-index: $global-z-index - 20 !default; +$sticky-animation-duration: 0.2s !default; +$sticky-reverse-animation-duration: 0.2s !default; +$subnav-margin-horizontal: 20px !default; +$subnav-item-color: $global-muted-color !default; +$subnav-item-hover-color: $global-color !default; +$subnav-item-hover-text-decoration: none !default; +$subnav-item-active-color: $global-emphasis-color !default; +$subnav-divider-margin-horizontal: $subnav-margin-horizontal !default; +$subnav-divider-border-height: 1.5em !default; +$subnav-divider-border-width: $global-border-width !default; +$subnav-divider-border: $global-border !default; +$subnav-pill-item-padding-vertical: 5px !default; +$subnav-pill-item-padding-horizontal: 10px !default; +$subnav-pill-item-background: transparent !default; +$subnav-pill-item-color: $subnav-item-color !default; +$subnav-pill-item-hover-background: $global-muted-background !default; +$subnav-pill-item-hover-color: $global-color !default; +$subnav-pill-item-onclick-background: $subnav-pill-item-hover-background !default; +$subnav-pill-item-onclick-color: $subnav-pill-item-hover-color !default; +$subnav-pill-item-active-background: $global-primary-background !default; +$subnav-pill-item-active-color: $global-inverse-color !default; +$subnav-item-disabled-color: $global-muted-color !default; +$inverse-subnav-item-color: $inverse-global-muted-color !default; +$inverse-subnav-item-hover-color: $inverse-global-color !default; +$inverse-subnav-item-active-color: $inverse-global-emphasis-color !default; +$inverse-subnav-divider-border: $inverse-global-border !default; +$inverse-subnav-pill-item-background: transparent !default; +$inverse-subnav-pill-item-color: $inverse-global-muted-color !default; +$inverse-subnav-pill-item-hover-background: $inverse-global-muted-background !default; +$inverse-subnav-pill-item-hover-color: $inverse-global-color !default; +$inverse-subnav-pill-item-onclick-background: $inverse-subnav-pill-item-hover-background !default; +$inverse-subnav-pill-item-onclick-color: $inverse-subnav-pill-item-hover-color !default; +$inverse-subnav-pill-item-active-background: $inverse-global-primary-background !default; +$inverse-subnav-pill-item-active-color: $inverse-global-inverse-color !default; +$inverse-subnav-item-disabled-color: $inverse-global-muted-color !default; +$tab-margin-horizontal: 20px !default; +$tab-item-padding-horizontal: 10px !default; +$tab-item-padding-vertical: 5px !default; +$tab-item-color: $global-muted-color !default; +$tab-item-hover-color: $global-color !default; +$tab-item-hover-text-decoration: none !default; +$tab-item-active-color: $global-emphasis-color !default; +$tab-item-disabled-color: $global-muted-color !default; +$inverse-tab-item-color: $inverse-global-muted-color !default; +$inverse-tab-item-hover-color: $inverse-global-color !default; +$inverse-tab-item-active-color: $inverse-global-emphasis-color !default; +$inverse-tab-item-disabled-color: $inverse-global-muted-color !default; +$table-margin-vertical: $global-margin !default; +$table-cell-padding-vertical: 16px !default; +$table-cell-padding-horizontal: 12px !default; +$table-header-cell-font-size: $global-small-font-size !default; +$table-header-cell-font-weight: normal !default; +$table-header-cell-color: $global-muted-color !default; +$table-footer-font-size: $global-small-font-size !default; +$table-caption-font-size: $global-small-font-size !default; +$table-caption-color: $global-muted-color !default; +$table-row-active-background: #ffd !default; +$table-divider-border-width: $global-border-width !default; +$table-divider-border: $global-border !default; +$table-striped-row-background: $global-muted-background !default; +$table-hover-row-background: $table-row-active-background !default; +$table-small-cell-padding-vertical: 10px !default; +$table-small-cell-padding-horizontal: 12px !default; +$table-large-cell-padding-vertical: 22px !default; +$table-large-cell-padding-horizontal: 12px !default; +$table-expand-min-width: 150px !default; +$inverse-table-header-cell-color: $inverse-global-color !default; +$inverse-table-caption-color: $inverse-global-muted-color !default; +$inverse-table-row-active-background: fade-out($inverse-global-muted-background, 0.02) !default; +$inverse-table-divider-border: $inverse-global-border !default; +$inverse-table-striped-row-background: $inverse-global-muted-background !default; +$inverse-table-hover-row-background: $inverse-table-row-active-background !default; +$text-lead-font-size: $global-large-font-size !default; +$text-lead-line-height: 1.5 !default; +$text-lead-color: $global-emphasis-color !default; +$text-meta-font-size: $global-small-font-size !default; +$text-meta-line-height: 1.4 !default; +$text-meta-color: $global-muted-color !default; +$text-small-font-size: $global-small-font-size !default; +$text-small-line-height: 1.5 !default; +$text-large-font-size: $global-large-font-size !default; +$text-large-line-height: 1.5 !default; +$text-bold-font-weight: bolder !default; +$text-muted-color: $global-muted-color !default; +$text-primary-color: $global-primary-background !default; +$text-success-color: $global-success-background !default; +$text-warning-color: $global-warning-background !default; +$text-danger-color: $global-danger-background !default; +$text-background-color: $global-primary-background !default; +$inverse-text-lead-color: $inverse-global-color !default; +$inverse-text-meta-color: $inverse-global-muted-color !default; +$inverse-text-muted-color: $inverse-global-muted-color !default; +$inverse-text-primary-color: $inverse-global-color !default; +$thumbnav-margin-horizontal: 15px !default; +$thumbnav-margin-vertical: $thumbnav-margin-horizontal !default; +$tile-padding-horizontal: 15px !default; +$tile-padding-horizontal-s: $global-gutter !default; +$tile-padding-horizontal-m: $global-medium-gutter !default; +$tile-padding-vertical: $global-medium-margin !default; +$tile-padding-vertical-m: $global-large-margin !default; +$tile-xsmall-padding-vertical: $global-margin !default; +$tile-small-padding-vertical: $global-medium-margin !default; +$tile-large-padding-vertical: $global-large-margin !default; +$tile-large-padding-vertical-m: $global-xlarge-margin !default; +$tile-xlarge-padding-vertical: $global-xlarge-margin !default; +$tile-xlarge-padding-vertical-m: ($global-large-margin + $global-xlarge-margin) !default; +$tile-default-background: $global-background !default; +$tile-muted-background: $global-muted-background !default; +$tile-primary-background: $global-primary-background !default; +$tile-primary-color-mode: light !default; +$tile-secondary-background: $global-secondary-background !default; +$tile-secondary-color-mode: light !default; +$tooltip-z-index: $global-z-index + 30 !default; +$tooltip-max-width: 200px !default; +$tooltip-padding-vertical: 3px !default; +$tooltip-padding-horizontal: 6px !default; +$tooltip-background: #666 !default; +$tooltip-border-radius: 2px !default; +$tooltip-color: $global-inverse-color !default; +$tooltip-font-size: 12px !default; +$tooltip-margin: 10px !default; +$totop-padding: 5px !default; +$totop-color: $global-muted-color !default; +$totop-hover-color: $global-color !default; +$totop-active-color: $global-emphasis-color !default; +$inverse-totop-color: $inverse-global-muted-color !default; +$inverse-totop-hover-color: $inverse-global-color !default; +$inverse-totop-active-color: $inverse-global-emphasis-color !default; +$transition-duration: 0.3s !default; +$transition-scale: 1.1 !default; +$transition-slide-small-translate: 10px !default; +$transition-slide-medium-translate: 50px !default; +$transition-slow-duration: 0.7s !default; +$panel-scrollable-height: 170px !default; +$panel-scrollable-padding: 10px !default; +$panel-scrollable-border-width: $global-border-width !default; +$panel-scrollable-border: $global-border !default; +$height-small-height: 150px !default; +$height-medium-height: 300px !default; +$height-large-height: 450px !default; +$border-rounded-border-radius: 5px !default; +$box-shadow-duration: 0.1s !default; +$box-shadow-bottom-height: 30px !default; +$box-shadow-bottom-border-radius: 100% !default; +$box-shadow-bottom-background: #444 !default; +$box-shadow-bottom-blur: 20px !default; +$dropcap-margin-right: 10px !default; +$dropcap-font-size: (($global-line-height * 3) * 1em) !default; +$leader-fill-content: '.' !default; +$leader-fill-margin-left: $global-small-gutter !default; +$logo-font-size: $global-large-font-size !default; +$logo-font-family: $global-font-family !default; +$logo-color: $global-color !default; +$logo-hover-color: $global-color !default; +$dragover-box-shadow: 0 0 20px rgba(100,100,100,0.3) !default; +$inverse-logo-color: $inverse-global-color !default; +$inverse-logo-hover-color: $inverse-global-color !default; +$breakpoint-small: 640px !default; +$breakpoint-medium: 960px !default; +$breakpoint-large: 1200px !default; +$breakpoint-xlarge: 1600px !default; +$breakpoint-xsmall-max: ($breakpoint-small - 1) !default; +$breakpoint-small-max: ($breakpoint-medium - 1) !default; +$breakpoint-medium-max: ($breakpoint-large - 1) !default; +$breakpoint-large-max: ($breakpoint-xlarge - 1) !default; +$global-small-box-shadow: 0 2px 8px rgba(0,0,0,0.08) !default; +$global-medium-box-shadow: 0 5px 15px rgba(0,0,0,0.08) !default; +$global-large-box-shadow: 0 14px 25px rgba(0,0,0,0.16) !default; +$global-xlarge-box-shadow: 0 28px 50px rgba(0,0,0,0.16) !default; +$width-small-width: 150px !default; +$width-medium-width: 300px !default; +$width-large-width: 450px !default; +$width-xlarge-width: 600px !default; +$width-xxlarge-width: 750px !default; +$accordion-icon-color: $global-color !default; +$internal-accordion-open-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22#000%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$internal-accordion-close-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22#000%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%20%20%20%20%3Crect%20fill%3D%22#000%22%20width%3D%221%22%20height%3D%2213%22%20x%3D%226%22%20y%3D%220%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$alert-close-opacity: 0.4 !default; +$alert-close-hover-opacity: 0.8 !default; +$article-meta-link-color: $article-meta-color !default; +$article-meta-link-hover-color: $global-color !default; +$base-code-padding-horizontal: 6px !default; +$base-code-padding-vertical: 2px !default; +$base-code-background: $global-muted-background !default; +$base-blockquote-color: $global-emphasis-color !default; +$base-blockquote-footer-color: $global-color !default; +$base-pre-padding: 10px !default; +$base-pre-background: $global-background !default; +$base-pre-border-width: $global-border-width !default; +$base-pre-border: $global-border !default; +$base-pre-border-radius: 3px !default; +$inverse-base-blockquote-color: $inverse-global-emphasis-color !default; +$inverse-base-blockquote-footer-color: $inverse-global-color !default; +$button-text-transform: uppercase !default; +$button-default-border: $global-border !default; +$button-default-hover-border: darken($global-border, 20%) !default; +$button-default-active-border: darken($global-border, 30%) !default; +$button-disabled-border: $global-border !default; +$button-text-border-width: $global-border-width !default; +$button-text-border: $button-text-hover-color !default; +$card-hover-box-shadow: $global-large-box-shadow !default; +$card-default-box-shadow: $global-medium-box-shadow !default; +$card-default-hover-box-shadow: $global-large-box-shadow !default; +$card-default-header-border-width: $global-border-width !default; +$card-default-header-border: $global-border !default; +$card-default-footer-border-width: $global-border-width !default; +$card-default-footer-border: $global-border !default; +$card-primary-box-shadow: $global-medium-box-shadow !default; +$card-primary-hover-box-shadow: $global-large-box-shadow !default; +$card-secondary-box-shadow: $global-medium-box-shadow !default; +$card-secondary-hover-box-shadow: $global-large-box-shadow !default; +$comment-primary-padding: $global-gutter !default; +$comment-primary-background: $global-muted-background !default; +$description-list-term-font-size: $global-small-font-size !default; +$description-list-term-font-weight: normal !default; +$description-list-term-text-transform: uppercase !default; +$dotnav-item-border-width: 1px !default; +$dotnav-item-border: rgba($global-color, 0.4) !default; +$dotnav-item-hover-border: transparent !default; +$dotnav-item-onclick-border: transparent !default; +$dotnav-item-active-border: transparent !default; +$dropdown-nav-font-size: $global-small-font-size !default; +$dropdown-box-shadow: 0 5px 12px rgba(0,0,0,0.15) !default; +$form-range-thumb-border-width: $global-border-width !default; +$form-range-thumb-border: darken($global-border, 10%) !default; +$form-range-track-border-radius: 500px !default; +$form-border: $global-border !default; +$form-focus-border: $global-primary-background !default; +$form-disabled-border: $global-border !default; +$form-danger-border: $global-danger-background !default; +$form-success-border: $global-success-background !default; +$form-blank-focus-border: $global-border !default; +$form-blank-focus-border-style: dashed !default; +$form-radio-border-width: $global-border-width !default; +$form-radio-border: darken($global-border, 10%) !default; +$form-radio-focus-border: $global-primary-background !default; +$form-radio-checked-border: transparent !default; +$form-radio-disabled-border: $global-border !default; +$form-label-color: $global-emphasis-color !default; +$form-label-font-size: $global-small-font-size !default; +$inverse-form-label-color: $inverse-global-emphasis-color !default; +$label-border-radius: 2px !default; +$label-text-transform: uppercase !default; +$list-striped-border-width: $global-border-width !default; +$list-striped-border: $global-border !default; +$modal-header-border-width: $global-border-width !default; +$modal-header-border: $global-border !default; +$modal-footer-border-width: $global-border-width !default; +$modal-footer-border: $global-border !default; +$modal-close-full-padding: $global-margin !default; +$modal-close-full-background: $modal-dialog-background !default; +$nav-default-font-size: $global-small-font-size !default; +$navbar-nav-item-text-transform: uppercase !default; +$navbar-dropdown-nav-font-size: $global-small-font-size !default; +$navbar-dropdown-box-shadow: 0 5px 12px rgba(0,0,0,0.15) !default; +$navbar-dropbar-box-shadow: 0 5px 7px rgba(0, 0, 0, 0.05) !default; +$navbar-dropdown-grid-divider-border-width: $global-border-width !default; +$navbar-dropdown-grid-divider-border: $navbar-dropdown-nav-divider-border !default; +$placeholder-border-width: $global-border-width !default; +$placeholder-border: $global-border !default; +$progress-border-radius: 500px !default; +$search-default-border-width: $global-border-width !default; +$search-default-border: $global-border !default; +$subnav-item-font-size: $global-small-font-size !default; +$subnav-item-text-transform: uppercase !default; +$tab-border-width: $global-border-width !default; +$tab-border: $global-border !default; +$tab-item-border-width: $global-border-width !default; +$tab-item-font-size: $global-small-font-size !default; +$tab-item-text-transform: uppercase !default; +$tab-item-active-border: $global-primary-background !default; +$inverse-tab-border: $inverse-global-border !default; +$table-striped-border-width: $global-border-width !default; +$table-striped-border: $global-border !default; +$text-meta-link-color: $text-meta-color !default; +$text-meta-link-hover-color: $global-color !default; +$thumbnav-item-background: rgba($global-background, 0.4) !default; +$thumbnav-item-hover-background: transparent !default; +$thumbnav-item-active-background: transparent !default; \ No newline at end of file diff --git a/_sass/uikit/variables.scss b/_sass/uikit/variables.scss new file mode 100644 index 0000000..1054fcd --- /dev/null +++ b/_sass/uikit/variables.scss @@ -0,0 +1,986 @@ +$global-margin: 20px !default; +$accordion-item-margin-top: $global-margin !default; +$global-medium-font-size: 1.25rem !default; +$accordion-title-font-size: $global-medium-font-size !default; +$accordion-title-line-height: 1.4 !default; +$global-emphasis-color: #000000 !default; +$accordion-title-color: $global-emphasis-color !default; +$global-color: #666 !default; +$accordion-title-hover-color: $global-color !default; +$accordion-content-margin-top: $global-margin !default; +$global-inverse-color: #fff !default; +$inverse-global-emphasis-color: $global-inverse-color !default; +$inverse-accordion-title-color: $inverse-global-emphasis-color !default; +$inverse-global-inverse-color: $global-color !default; +$inverse-accordion-title-hover-color: $inverse-global-inverse-color !default; +$global-gutter: 30px !default; +$align-margin-horizontal: $global-gutter !default; +$align-margin-vertical: $global-gutter !default; +$global-medium-gutter: 40px !default; +$align-margin-horizontal-l: $global-medium-gutter !default; +$alert-margin-vertical: $global-margin !default; +$global-small-gutter: 15px !default; +$alert-padding: $global-small-gutter !default; +$alert-padding-right: $alert-padding + 14px !default; +$global-muted-background: #f8f8f8 !default; +$alert-background: $global-muted-background !default; +$alert-color: $global-color !default; +$alert-close-top: $alert-padding + 5px !default; +$alert-close-right: $alert-padding !default; +$global-primary-background: #1e87f0 !default; +$alert-primary-background: lighten(mix(white, $global-primary-background, 40%), 20%) !default; +$alert-primary-color: $global-primary-background !default; +$global-success-background: #32d296 !default; +$alert-success-background: lighten(mix(white, $global-success-background, 40%), 25%) !default; +$alert-success-color: $global-success-background !default; +$global-warning-background: #faa05a !default; +$alert-warning-background: lighten(mix(white, $global-warning-background, 45%), 15%) !default; +$alert-warning-color: $global-warning-background !default; +$global-danger-background: #f0506e !default; +$alert-danger-background: lighten(mix(white, $global-danger-background, 40%), 20%) !default; +$alert-danger-color: $global-danger-background !default; +$global-large-margin: 70px !default; +$article-margin-top: $global-large-margin !default; +$global-xxlarge-font-size: 2.625rem !default; +$article-title-font-size: $global-xxlarge-font-size !default; +$article-title-line-height: 1.2 !default; +$global-small-font-size: 0.875rem !default; +$article-meta-font-size: $global-small-font-size !default; +$article-meta-line-height: 1.4 !default; +$global-muted-color: #999 !default; +$article-meta-color: $global-muted-color !default; +$inverse-global-muted-color: rgba($global-inverse-color, 0.5) !default; +$inverse-article-meta-color: $inverse-global-muted-color !default; +$animation-duration: 0.5s !default; +$animation-fade-duration: 0.8s !default; +$animation-kenburns-duration: 15s !default; +$animation-fast-duration: 0.1s !default; +$animation-slide-small-translate: 10px !default; +$animation-slide-medium-translate: 50px !default; +$global-background: #fff !default; +$background-default-background: $global-background !default; +$background-muted-background: $global-muted-background !default; +$background-primary-background: $global-primary-background !default; +$global-secondary-background: #222 !default; +$background-secondary-background: $global-secondary-background !default; +$badge-size: 22px !default; +$badge-padding-vertical: 0 !default; +$badge-padding-horizontal: 5px !default; +$badge-border-radius: 500px !default; +$badge-background: $global-primary-background !default; +$badge-color: $global-inverse-color !default; +$badge-font-size: $global-small-font-size !default; +$badge-hover-color: $global-inverse-color !default; +$inverse-global-primary-background: $global-inverse-color !default; +$inverse-badge-background: $inverse-global-primary-background !default; +$inverse-badge-color: $inverse-global-inverse-color !default; +$inverse-badge-hover-color: $inverse-global-inverse-color !default; +$base-body-background: $global-background !default; +$global-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !default; +$base-body-font-family: $global-font-family !default; +$base-body-font-weight: normal !default; +$global-font-size: 16px !default; +$base-body-font-size: $global-font-size !default; +$global-line-height: 1.5 !default; +$base-body-line-height: $global-line-height !default; +$base-body-color: $global-color !default; +$global-link-color: #1e87f0 !default; +$base-link-color: $global-link-color !default; +$base-link-text-decoration: none !default; +$global-link-hover-color: #0f6ecd !default; +$base-link-hover-color: $global-link-hover-color !default; +$base-link-hover-text-decoration: underline !default; +$base-strong-font-weight: bolder !default; +$base-code-font-size: $global-small-font-size !default; +$base-code-font-family: Consolas, monaco, monospace !default; +$base-code-color: $global-danger-background !default; +$base-em-color: $global-danger-background !default; +$base-ins-background: #ffd !default; +$base-ins-color: $global-color !default; +$base-mark-background: #ffd !default; +$base-mark-color: $global-color !default; +$base-quote-font-style: italic !default; +$base-small-font-size: 80% !default; +$base-margin-vertical: $global-margin !default; +$base-heading-font-family: $global-font-family !default; +$base-heading-font-weight: normal !default; +$base-heading-color: $global-emphasis-color !default; +$base-heading-text-transform: none !default; +$global-medium-margin: 40px !default; +$base-heading-margin-top: $global-medium-margin !default; +$base-h1-font-size: $global-xxlarge-font-size !default; +$base-h1-line-height: 1.2 !default; +$global-xlarge-font-size: 2rem !default; +$base-h2-font-size: $global-xlarge-font-size !default; +$base-h2-line-height: 1.3 !default; +$global-large-font-size: 1.5rem !default; +$base-h3-font-size: $global-large-font-size !default; +$base-h3-line-height: 1.4 !default; +$base-h4-font-size: $global-medium-font-size !default; +$base-h4-line-height: 1.4 !default; +$base-h5-font-size: $global-font-size !default; +$base-h5-line-height: 1.4 !default; +$base-h6-font-size: $global-small-font-size !default; +$base-h6-line-height: 1.4 !default; +$base-list-padding-left: 30px !default; +$base-hr-margin-vertical: $global-margin !default; +$global-border-width: 1px !default; +$base-hr-border-width: $global-border-width !default; +$global-border: #e5e5e5 !default; +$base-hr-border: $global-border !default; +$base-blockquote-font-size: $global-medium-font-size !default; +$base-blockquote-line-height: 1.5 !default; +$base-blockquote-font-style: italic !default; +$base-blockquote-margin-vertical: $global-margin !default; +$global-small-margin: 10px !default; +$base-blockquote-footer-margin-top: $global-small-margin !default; +$base-blockquote-footer-font-size: $global-small-font-size !default; +$base-blockquote-footer-line-height: 1.5 !default; +$base-pre-font-size: $global-small-font-size !default; +$base-pre-line-height: 1.5 !default; +$base-pre-font-family: $base-code-font-family !default; +$base-pre-color: $global-color !default; +$base-selection-background: #39f !default; +$base-selection-color: $global-inverse-color !default; +$inverse-global-color: rgba($global-inverse-color, 0.7) !default; +$inverse-base-color: $inverse-global-color !default; +$inverse-base-link-color: $inverse-global-emphasis-color !default; +$inverse-base-link-hover-color: $inverse-global-emphasis-color !default; +$inverse-base-code-color: $inverse-global-color !default; +$inverse-base-em-color: $inverse-global-emphasis-color !default; +$inverse-base-heading-color: $inverse-global-emphasis-color !default; +$inverse-global-border: rgba($global-inverse-color, 0.2) !default; +$inverse-base-hr-border: $inverse-global-border !default; +$breadcrumb-item-font-size: $global-small-font-size !default; +$breadcrumb-item-color: $global-muted-color !default; +$breadcrumb-item-hover-color: $global-color !default; +$breadcrumb-item-hover-text-decoration: none !default; +$breadcrumb-item-active-color: $global-color !default; +$breadcrumb-divider: "/" !default; +$breadcrumb-divider-margin-horizontal: 20px !default; +$breadcrumb-divider-color: $global-muted-color !default; +$inverse-breadcrumb-item-color: $inverse-global-muted-color !default; +$inverse-breadcrumb-item-hover-color: $inverse-global-color !default; +$inverse-breadcrumb-item-active-color: $inverse-global-color !default; +$inverse-breadcrumb-divider-color: $inverse-global-muted-color !default; +$global-control-height: 40px !default; +$button-line-height: $global-control-height !default; +$global-control-small-height: 30px !default; +$button-small-line-height: $global-control-small-height !default; +$global-control-large-height: 55px !default; +$button-large-line-height: $global-control-large-height !default; +$button-font-size: $global-font-size !default; +$button-small-font-size: $global-small-font-size !default; +$button-large-font-size: $global-medium-font-size !default; +$button-padding-horizontal: $global-gutter !default; +$button-small-padding-horizontal: $global-small-gutter !default; +$button-large-padding-horizontal: $global-medium-gutter !default; +$button-default-background: $global-muted-background !default; +$button-default-color: $global-emphasis-color !default; +$button-default-hover-background: darken($button-default-background, 5%) !default; +$button-default-hover-color: $global-emphasis-color !default; +$button-default-active-background: darken($button-default-background, 10%) !default; +$button-default-active-color: $global-emphasis-color !default; +$button-primary-background: $global-primary-background !default; +$button-primary-color: $global-inverse-color !default; +$button-primary-hover-background: darken($button-primary-background, 5%) !default; +$button-primary-hover-color: $global-inverse-color !default; +$button-primary-active-background: darken($button-primary-background, 10%) !default; +$button-primary-active-color: $global-inverse-color !default; +$button-secondary-background: $global-secondary-background !default; +$button-secondary-color: $global-inverse-color !default; +$button-secondary-hover-background: darken($button-secondary-background, 5%) !default; +$button-secondary-hover-color: $global-inverse-color !default; +$button-secondary-active-background: darken($button-secondary-background, 10%) !default; +$button-secondary-active-color: $global-inverse-color !default; +$button-danger-background: $global-danger-background !default; +$button-danger-color: $global-inverse-color !default; +$button-danger-hover-background: darken($button-danger-background, 5%) !default; +$button-danger-hover-color: $global-inverse-color !default; +$button-danger-active-background: darken($button-danger-background, 10%) !default; +$button-danger-active-color: $global-inverse-color !default; +$button-disabled-background: $global-muted-background !default; +$button-disabled-color: $global-muted-color !default; +$button-text-line-height: $global-line-height !default; +$button-text-color: $global-muted-color !default; +$button-text-hover-color: $global-color !default; +$button-text-disabled-color: $global-muted-color !default; +$button-link-line-height: $global-line-height !default; +$button-link-color: $global-link-color !default; +$button-link-hover-color: $global-link-hover-color !default; +$button-link-hover-text-decoration: underline !default; +$button-link-disabled-color: $global-muted-color !default; +$inverse-button-default-background: $inverse-global-primary-background !default; +$inverse-button-default-color: $inverse-global-inverse-color !default; +$inverse-button-default-hover-background: darken($inverse-button-default-background, 5%) !default; +$inverse-button-default-hover-color: $inverse-global-inverse-color !default; +$inverse-button-default-active-background: darken($inverse-button-default-background, 10%) !default; +$inverse-button-default-active-color: $inverse-global-inverse-color !default; +$inverse-button-primary-background: $inverse-global-primary-background !default; +$inverse-button-primary-color: $inverse-global-inverse-color !default; +$inverse-button-primary-hover-background: darken($inverse-button-primary-background, 5%) !default; +$inverse-button-primary-hover-color: $inverse-global-inverse-color !default; +$inverse-button-primary-active-background: darken($inverse-button-primary-background, 10%) !default; +$inverse-button-primary-active-color: $inverse-global-inverse-color !default; +$inverse-button-secondary-background: $inverse-global-primary-background !default; +$inverse-button-secondary-color: $inverse-global-inverse-color !default; +$inverse-button-secondary-hover-background: darken($inverse-button-secondary-background, 5%) !default; +$inverse-button-secondary-hover-color: $inverse-global-inverse-color !default; +$inverse-button-secondary-active-background: darken($inverse-button-secondary-background, 10%) !default; +$inverse-button-secondary-active-color: $inverse-global-inverse-color !default; +$inverse-button-text-color: $inverse-global-muted-color !default; +$inverse-button-text-hover-color: $inverse-global-color !default; +$inverse-button-text-disabled-color: $inverse-global-muted-color !default; +$inverse-button-link-color: $inverse-global-muted-color !default; +$inverse-button-link-hover-color: $inverse-global-color !default; +$card-body-padding-horizontal: $global-gutter !default; +$card-body-padding-vertical: $global-gutter !default; +$card-body-padding-horizontal-l: $global-medium-gutter !default; +$card-body-padding-vertical-l: $global-medium-gutter !default; +$card-header-padding-horizontal: $global-gutter !default; +$card-header-padding-vertical: round($global-gutter / 2) !default; +$card-header-padding-horizontal-l: $global-medium-gutter !default; +$card-header-padding-vertical-l: round($global-medium-gutter / 2) !default; +$card-footer-padding-horizontal: $global-gutter !default; +$card-footer-padding-vertical: ($global-gutter / 2) !default; +$card-footer-padding-horizontal-l: $global-medium-gutter !default; +$card-footer-padding-vertical-l: round($global-medium-gutter / 2) !default; +$card-title-font-size: $global-large-font-size !default; +$card-title-line-height: 1.4 !default; +$card-badge-top: $global-gutter !default; +$card-badge-right: $card-badge-top !default; +$card-hover-background: $global-muted-background !default; +$card-default-background: $global-muted-background !default; +$card-default-color: $global-color !default; +$card-default-title-color: $global-emphasis-color !default; +$card-default-hover-background: darken($card-default-background, 5%) !default; +$card-primary-background: $global-primary-background !default; +$card-primary-color: $global-inverse-color !default; +$card-primary-title-color: $card-primary-color !default; +$card-primary-hover-background: darken($card-primary-background, 5%) !default; +$card-primary-color-mode: light !default; +$card-secondary-background: $global-secondary-background !default; +$card-secondary-color: $global-inverse-color !default; +$card-secondary-title-color: $card-secondary-color !default; +$card-secondary-hover-background: darken($card-secondary-background, 5%) !default; +$card-secondary-color-mode: light !default; +$card-small-body-padding-horizontal: $global-margin !default; +$card-small-body-padding-vertical: $global-margin !default; +$card-small-header-padding-horizontal: $global-margin !default; +$card-small-header-padding-vertical: round($global-margin / 1.5) !default; +$card-small-footer-padding-horizontal: $global-margin !default; +$card-small-footer-padding-vertical: round($global-margin / 1.5) !default; +$global-large-gutter: 70px !default; +$card-large-body-padding-horizontal-l: $global-large-gutter !default; +$card-large-body-padding-vertical-l: $global-large-gutter !default; +$card-large-header-padding-horizontal-l: $global-large-gutter !default; +$card-large-header-padding-vertical-l: round($global-large-gutter / 2) !default; +$card-large-footer-padding-horizontal-l: $global-large-gutter !default; +$card-large-footer-padding-vertical-l: round($global-large-gutter / 2) !default; +$close-color: $global-muted-color !default; +$close-hover-color: $global-color !default; +$inverse-close-color: $inverse-global-muted-color !default; +$inverse-close-hover-color: $inverse-global-color !default; +$column-gutter: $global-gutter !default; +$column-gutter-l: $global-medium-gutter !default; +$column-divider-rule-color: $global-border !default; +$column-divider-rule-width: 1px !default; +$inverse-column-divider-rule-color: $inverse-global-border !default; +$comment-header-margin-bottom: $global-margin !default; +$comment-title-font-size: $global-medium-font-size !default; +$comment-title-line-height: 1.4 !default; +$comment-meta-font-size: $global-small-font-size !default; +$comment-meta-line-height: 1.4 !default; +$comment-meta-color: $global-muted-color !default; +$comment-list-margin-top: $global-large-margin !default; +$comment-list-padding-left: 30px !default; +$comment-list-padding-left-m: 100px !default; +$container-max-width: 1124px !default; +$container-small-max-width: 900px !default; +$container-large-max-width: 1600px !default; +$container-padding-horizontal: 15px !default; +$container-padding-horizontal-s: $global-gutter !default; +$container-padding-horizontal-m: $global-medium-gutter !default; +$countdown-item-line-height: 70px !default; +$countdown-number-font-size: 2rem !default; +$countdown-number-font-size-s: 4rem !default; +$countdown-number-font-size-m: 6rem !default; +$countdown-separator-font-size: 1rem !default; +$countdown-separator-font-size-s: 2rem !default; +$countdown-separator-font-size-m: 3rem !default; +$description-list-term-color: $global-emphasis-color !default; +$description-list-term-margin-top: $global-margin !default; +$description-list-divider-term-margin-top: $global-margin !default; +$description-list-divider-term-border-width: $global-border-width !default; +$description-list-divider-term-border: $global-border !default; +$divider-margin-vertical: $global-margin !default; +$divider-icon-width: 50px !default; +$divider-icon-height: 20px !default; +$divider-icon-color: $global-border !default; +$divider-icon-line-top: 50% !default; +$divider-icon-line-width: 100% !default; +$divider-icon-line-border-width: $global-border-width !default; +$divider-icon-line-border: $global-border !default; +$internal-divider-icon-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22none%22%20stroke%3D%22#000%22%20stroke-width%3D%222%22%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%227%22%20%2F%3E%0A%3C%2Fsvg%3E%0A" !default; +$divider-small-width: 100px !default; +$divider-small-border-width: $global-border-width !default; +$divider-small-border: $global-border !default; +$inverse-divider-icon-color: $inverse-global-border !default; +$inverse-divider-icon-line-border: $inverse-global-border !default; +$inverse-divider-small-border: $inverse-global-border !default; +$dotnav-margin-horizontal: 12px !default; +$dotnav-margin-vertical: $dotnav-margin-horizontal !default; +$dotnav-item-width: 10px !default; +$dotnav-item-height: $dotnav-item-width !default; +$dotnav-item-border-radius: 50% !default; +$dotnav-item-background: rgba($global-color, 0.2) !default; +$dotnav-item-hover-background: rgba($global-color, 0.6) !default; +$dotnav-item-onclick-background: rgba($global-color, 0.2) !default; +$dotnav-item-active-background: rgba($global-color, 0.6) !default; +$inverse-dotnav-item-background: rgba($inverse-global-color, 0.5) !default; +$inverse-dotnav-item-hover-background: rgba($inverse-global-color, 0.9) !default; +$inverse-dotnav-item-onclick-background: rgba($inverse-global-color, 0.5) !default; +$inverse-dotnav-item-active-background: rgba($inverse-global-color, 0.9) !default; +$global-z-index: 1000 !default; +$drop-z-index: $global-z-index + 20 !default; +$drop-width: 300px !default; +$drop-margin: $global-margin !default; +$dropdown-z-index: $global-z-index + 20 !default; +$dropdown-min-width: 200px !default; +$dropdown-padding: 15px !default; +$dropdown-background: $global-muted-background !default; +$dropdown-color: $global-color !default; +$dropdown-margin: $global-small-margin !default; +$dropdown-nav-item-color: $global-muted-color !default; +$dropdown-nav-item-hover-color: $global-color !default; +$dropdown-nav-header-color: $global-emphasis-color !default; +$dropdown-nav-divider-border-width: $global-border-width !default; +$dropdown-nav-divider-border: $global-border !default; +$dropdown-nav-sublist-item-color: $global-muted-color !default; +$dropdown-nav-sublist-item-hover-color: $global-color !default; +$form-range-thumb-height: 15px !default; +$form-range-thumb-border-radius: 500px !default; +$form-range-thumb-background: $global-color !default; +$form-range-track-height: 3px !default; +$form-range-track-background: darken($global-muted-background, 5%) !default; +$form-range-track-focus-background: darken($global-muted-background, 15%) !default; +$form-height: $global-control-height !default; +$form-line-height: $form-height !default; +$form-padding-horizontal: 10px !default; +$form-padding-vertical: 4px !default; +$form-background: $global-muted-background !default; +$form-color: $global-color !default; +$form-focus-background: $global-muted-background !default; +$form-focus-color: $global-color !default; +$form-disabled-background: $global-muted-background !default; +$form-disabled-color: $global-muted-color !default; +$form-placeholder-color: $global-muted-color !default; +$form-small-height: $global-control-small-height !default; +$form-small-padding-horizontal: 8px !default; +$form-small-line-height: $form-small-height !default; +$form-small-font-size: $global-small-font-size !default; +$form-large-height: $global-control-large-height !default; +$form-large-padding-horizontal: 12px !default; +$form-large-line-height: $form-large-height !default; +$form-large-font-size: $global-medium-font-size !default; +$form-danger-color: $global-danger-background !default; +$form-success-color: $global-success-background !default; +$form-width-xsmall: 50px !default; +$form-width-small: 130px !default; +$form-width-medium: 200px !default; +$form-width-large: 500px !default; +$form-select-padding-right: 20px !default; +$form-select-icon-color: $global-color !default; +$form-select-disabled-icon-color: $global-muted-color !default; +$form-radio-size: 16px !default; +$form-radio-margin-top: -4px !default; +$form-radio-background: darken($global-muted-background, 5%) !default; +$form-radio-checked-background: $global-primary-background !default; +$form-radio-checked-icon-color: $global-inverse-color !default; +$form-radio-checked-focus-background: darken($global-primary-background, 10%) !default; +$form-radio-disabled-background: $global-muted-background !default; +$form-radio-disabled-icon-color: $global-muted-color !default; +$form-legend-font-size: $global-large-font-size !default; +$form-legend-line-height: 1.4 !default; +$form-stacked-margin-bottom: $global-small-margin !default; +$form-horizontal-label-width: 200px !default; +$form-horizontal-label-margin-top: 7px !default; +$form-horizontal-controls-margin-left: 215px !default; +$form-horizontal-controls-text-padding-top: 7px !default; +$form-icon-width: $form-height !default; +$form-icon-font-size: $global-font-size !default; +$form-icon-color: $global-muted-color !default; +$form-icon-hover-color: $global-color !default; +$internal-form-select-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22#000%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22#000%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A" !default; +$internal-form-radio-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22#000%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$internal-form-checkbox-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22#000%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A" !default; +$internal-form-checkbox-indeterminate-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22#000%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$inverse-global-muted-background: rgba($global-inverse-color, 0.1) !default; +$inverse-form-background: $inverse-global-muted-background !default; +$inverse-form-color: $inverse-global-color !default; +$inverse-form-focus-background: $inverse-global-muted-background !default; +$inverse-form-focus-color: $inverse-global-color !default; +$inverse-form-placeholder-color: $inverse-global-muted-color !default; +$inverse-form-select-icon-color: $inverse-global-color !default; +$inverse-form-radio-background: darken($inverse-global-muted-background, 5%) !default; +$inverse-form-radio-checked-background: $inverse-global-primary-background !default; +$inverse-form-radio-checked-icon-color: $inverse-global-inverse-color !default; +$inverse-form-radio-checked-focus-background: darken($inverse-global-primary-background, 10%) !default; +$grid-gutter-horizontal: $global-gutter !default; +$grid-gutter-vertical: $grid-gutter-horizontal !default; +$grid-gutter-horizontal-l: $global-medium-gutter !default; +$grid-gutter-vertical-l: $grid-gutter-horizontal-l !default; +$grid-small-gutter-horizontal: $global-small-gutter !default; +$grid-small-gutter-vertical: $grid-small-gutter-horizontal !default; +$grid-medium-gutter-horizontal: $global-gutter !default; +$grid-medium-gutter-vertical: $grid-medium-gutter-horizontal !default; +$grid-large-gutter-horizontal: $global-medium-gutter !default; +$grid-large-gutter-vertical: $grid-large-gutter-horizontal !default; +$grid-large-gutter-horizontal-l: $global-large-gutter !default; +$grid-large-gutter-vertical-l: $grid-large-gutter-horizontal-l !default; +$grid-divider-border-width: $global-border-width !default; +$grid-divider-border: $global-border !default; +$inverse-grid-divider-border: $inverse-global-border !default; +$heading-primary-font-size: $global-xxlarge-font-size !default; +$heading-primary-line-height: 1.2 !default; +$heading-primary-font-size-m: 3.75rem !default; +$heading-primary-line-height-m: 1.1 !default; +$heading-hero-font-size: 4rem !default; +$heading-hero-line-height: 1.1 !default; +$heading-hero-font-size-s: 6rem !default; +$heading-hero-line-height-s: 1 !default; +$heading-hero-font-size-m: 8rem !default; +$heading-hero-line-height-m: 1 !default; +$heading-divider-padding-bottom: 10px !default; +$heading-divider-border-width: $global-border-width !default; +$heading-divider-border: $global-border !default; +$heading-bullet-top: unquote('calc(-0.1 * 1em)') !default; +$heading-bullet-height: 0.9em !default; +$heading-bullet-margin-right: 10px !default; +$heading-bullet-border-width: 5px !default; +$heading-bullet-border: $global-border !default; +$heading-line-top: 50% !default; +$heading-line-border-width: $global-border-width !default; +$heading-line-height: $heading-line-border-width !default; +$heading-line-width: 2000px !default; +$heading-line-border: $global-border !default; +$heading-line-margin-horizontal: 0.6em !default; +$inverse-heading-divider-border: $inverse-global-border !default; +$inverse-heading-bullet-border: $inverse-global-border !default; +$inverse-heading-line-border: $inverse-global-border !default; +$icon-image-size: 20px !default; +$icon-link-color: $global-muted-color !default; +$icon-link-hover-color: $global-color !default; +$icon-link-active-color: darken($global-color, 5%) !default; +$icon-button-size: 36px !default; +$icon-button-border-radius: 500px !default; +$icon-button-background: $global-muted-background !default; +$icon-button-color: $global-muted-color !default; +$icon-button-hover-background: darken($icon-button-background, 5%) !default; +$icon-button-hover-color: $global-color !default; +$icon-button-active-background: darken($icon-button-background, 10%) !default; +$icon-button-active-color: $global-color !default; +$inverse-icon-link-color: $inverse-global-muted-color !default; +$inverse-icon-link-hover-color: $inverse-global-color !default; +$inverse-icon-link-active-color: $inverse-global-color !default; +$inverse-icon-button-background: $inverse-global-muted-background !default; +$inverse-icon-button-color: $inverse-global-muted-color !default; +$inverse-icon-button-hover-background: darken($inverse-icon-button-background, 5%) !default; +$inverse-icon-button-hover-color: $inverse-global-color !default; +$inverse-icon-button-active-background: darken($inverse-icon-button-background, 10%) !default; +$inverse-icon-button-active-color: $inverse-global-color !default; +$iconnav-margin-horizontal: $global-small-margin !default; +$iconnav-margin-vertical: $iconnav-margin-horizontal !default; +$iconnav-item-color: $global-muted-color !default; +$iconnav-item-hover-color: $global-color !default; +$iconnav-item-active-color: $global-color !default; +$inverse-iconnav-item-color: $inverse-global-muted-color !default; +$inverse-iconnav-item-hover-color: $inverse-global-color !default; +$inverse-iconnav-item-active-color: $inverse-global-color !default; +$inverse-global-color-mode: light !default; +$label-padding-vertical: 0 !default; +$label-padding-horizontal: $global-small-margin !default; +$label-background: $global-primary-background !default; +$label-line-height: $global-line-height !default; +$label-font-size: $global-small-font-size !default; +$label-color: $global-inverse-color !default; +$label-success-background: $global-success-background !default; +$label-success-color: $global-inverse-color !default; +$label-warning-background: $global-warning-background !default; +$label-warning-color: $global-inverse-color !default; +$label-danger-background: $global-danger-background !default; +$label-danger-color: $global-inverse-color !default; +$inverse-label-background: $inverse-global-primary-background !default; +$inverse-label-color: $inverse-global-inverse-color !default; +$lightbox-z-index: $global-z-index + 10 !default; +$lightbox-background: #000 !default; +$lightbox-item-color: rgba(255,255,255,0.7) !default; +$lightbox-toolbar-padding-vertical: 10px !default; +$lightbox-toolbar-padding-horizontal: 10px !default; +$lightbox-toolbar-background: rgba(0,0,0,0.3) !default; +$lightbox-toolbar-color: rgba(255,255,255,0.7) !default; +$lightbox-toolbar-icon-padding: 5px !default; +$lightbox-toolbar-icon-color: rgba(255,255,255,0.7) !default; +$lightbox-toolbar-icon-hover-color: #fff !default; +$lightbox-button-size: 50px !default; +$lightbox-button-background: $lightbox-toolbar-background !default; +$lightbox-button-color: rgba(255,255,255,0.7) !default; +$lightbox-button-hover-color: #fff !default; +$link-muted-color: $global-muted-color !default; +$link-muted-hover-color: $global-color !default; +$link-text-hover-color: $global-muted-color !default; +$link-heading-hover-color: $global-primary-background !default; +$link-heading-hover-text-decoration: none !default; +$inverse-link-muted-color: $inverse-global-muted-color !default; +$inverse-link-muted-hover-color: $inverse-global-color !default; +$inverse-link-text-hover-color: $inverse-global-muted-color !default; +$inverse-link-heading-hover-color: $inverse-global-primary-background !default; +$list-margin-top: $global-small-margin !default; +$list-nested-padding-left: $global-gutter !default; +$list-divider-margin-top: $global-small-margin !default; +$list-divider-border-width: $global-border-width !default; +$list-divider-border: $global-border !default; +$list-striped-padding-vertical: $global-small-margin !default; +$list-striped-padding-horizontal: $global-small-margin !default; +$list-striped-background: $global-muted-background !default; +$list-bullet-width: ($global-line-height * 1em) !default; +$list-bullet-height: $list-bullet-width !default; +$list-bullet-margin-right: $global-small-margin !default; +$list-bullet-icon-color: $global-color !default; +$list-large-margin-top: $global-margin !default; +$list-large-divider-margin-top: $global-margin !default; +$list-large-striped-padding-vertical: $global-margin !default; +$list-large-striped-padding-horizontal: $global-small-margin !default; +$internal-list-bullet-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%226%22%20height%3D%226%22%20viewBox%3D%220%200%206%206%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22#000%22%20cx%3D%223%22%20cy%3D%223%22%20r%3D%223%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$inverse-list-divider-border: $inverse-global-border !default; +$inverse-list-striped-background: $inverse-global-muted-background !default; +$inverse-list-bullet-icon-color: $inverse-global-color !default; +$margin-margin: $global-margin !default; +$margin-small-margin: $global-small-margin !default; +$margin-medium-margin: $global-medium-margin !default; +$margin-large-margin: $global-medium-margin !default; +$margin-large-margin-l: $global-large-margin !default; +$margin-xlarge-margin: $global-large-margin !default; +$global-xlarge-margin: 140px !default; +$margin-xlarge-margin-l: $global-xlarge-margin !default; +$marker-padding: 5px !default; +$marker-background: $global-secondary-background !default; +$marker-color: $global-inverse-color !default; +$marker-hover-color: $global-inverse-color !default; +$inverse-marker-background: $global-muted-background !default; +$inverse-marker-color: $global-color !default; +$inverse-marker-hover-color: $global-color !default; +$modal-z-index: $global-z-index + 10 !default; +$modal-background: rgba(0,0,0,0.6) !default; +$modal-padding-horizontal: 15px !default; +$modal-padding-horizontal-s: $global-gutter !default; +$modal-padding-horizontal-m: $global-medium-gutter !default; +$modal-padding-vertical: $modal-padding-horizontal !default; +$modal-padding-vertical-s: 50px !default; +$modal-dialog-width: 600px !default; +$modal-dialog-background: $global-background !default; +$modal-container-width: 1200px !default; +$modal-body-padding-horizontal: $global-gutter !default; +$modal-body-padding-vertical: $global-gutter !default; +$modal-header-padding-horizontal: $global-gutter !default; +$modal-header-padding-vertical: ($modal-header-padding-horizontal / 2) !default; +$modal-header-background: $global-muted-background !default; +$modal-footer-padding-horizontal: $global-gutter !default; +$modal-footer-padding-vertical: ($modal-footer-padding-horizontal / 2) !default; +$modal-footer-background: $global-muted-background !default; +$modal-title-font-size: $global-xlarge-font-size !default; +$modal-title-line-height: 1.3 !default; +$modal-close-position: $global-small-margin !default; +$modal-close-padding: 5px !default; +$modal-close-outside-position: 0 !default; +$modal-close-outside-translate: 100% !default; +$modal-close-outside-color: lighten($global-inverse-color, 20%) !default; +$modal-close-outside-hover-color: $global-inverse-color !default; +$nav-item-padding-vertical: 5px !default; +$nav-item-padding-horizontal: 0 !default; +$nav-sublist-padding-vertical: 5px !default; +$nav-sublist-padding-left: 15px !default; +$nav-sublist-deeper-padding-left: 15px !default; +$nav-sublist-item-padding-vertical: 2px !default; +$nav-parent-icon-width: ($global-line-height * 1em) !default; +$nav-parent-icon-height: $nav-parent-icon-width !default; +$nav-parent-icon-color: $global-color !default; +$nav-header-padding-vertical: $nav-item-padding-vertical !default; +$nav-header-padding-horizontal: $nav-item-padding-horizontal !default; +$nav-header-font-size: $global-small-font-size !default; +$nav-header-text-transform: uppercase !default; +$nav-header-margin-top: $global-margin !default; +$nav-divider-margin-vertical: 5px !default; +$nav-divider-margin-horizontal: 0 !default; +$nav-default-item-color: $global-muted-color !default; +$nav-default-item-hover-color: $global-color !default; +$nav-default-item-active-color: $global-emphasis-color !default; +$nav-default-header-color: $global-emphasis-color !default; +$nav-default-divider-border-width: $global-border-width !default; +$nav-default-divider-border: $global-border !default; +$nav-default-sublist-item-color: $global-muted-color !default; +$nav-default-sublist-item-hover-color: $global-color !default; +$nav-primary-item-font-size: $global-large-font-size !default; +$nav-primary-item-line-height: $global-line-height !default; +$nav-primary-item-color: $global-muted-color !default; +$nav-primary-item-hover-color: $global-color !default; +$nav-primary-item-active-color: $global-emphasis-color !default; +$nav-primary-header-color: $global-emphasis-color !default; +$nav-primary-divider-border-width: $global-border-width !default; +$nav-primary-divider-border: $global-border !default; +$nav-primary-sublist-item-color: $global-muted-color !default; +$nav-primary-sublist-item-hover-color: $global-color !default; +$internal-nav-parent-close-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22#000%22%20stroke-width%3D%221.1%22%20points%3D%2210%201%204%207%2010%2013%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$internal-nav-parent-open-image: "data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22#000%22%20stroke-width%3D%221.1%22%20points%3D%221%204%207%2010%2013%204%22%20%2F%3E%0A%3C%2Fsvg%3E" !default; +$inverse-nav-parent-icon-color: $inverse-global-color !default; +$inverse-nav-default-item-color: $inverse-global-muted-color !default; +$inverse-nav-default-item-hover-color: $inverse-global-color !default; +$inverse-nav-default-item-active-color: $inverse-global-emphasis-color !default; +$inverse-nav-default-header-color: $inverse-global-emphasis-color !default; +$inverse-nav-default-divider-border: $inverse-global-border !default; +$inverse-nav-default-sublist-item-color: $inverse-global-muted-color !default; +$inverse-nav-default-sublist-item-hover-color: $inverse-global-color !default; +$inverse-nav-primary-item-color: $inverse-global-muted-color !default; +$inverse-nav-primary-item-hover-color: $inverse-global-color !default; +$inverse-nav-primary-item-active-color: $inverse-global-emphasis-color !default; +$inverse-nav-primary-header-color: $inverse-global-emphasis-color !default; +$inverse-nav-primary-divider-border: $inverse-global-border !default; +$inverse-nav-primary-sublist-item-color: $inverse-global-muted-color !default; +$inverse-nav-primary-sublist-item-hover-color: $inverse-global-color !default; +$navbar-background: $global-muted-background !default; +$navbar-color-mode: none !default; +$navbar-nav-item-height: 80px !default; +$navbar-nav-item-padding-horizontal: 15px !default; +$navbar-nav-item-color: $global-muted-color !default; +$navbar-nav-item-font-size: $global-font-size !default; +$navbar-nav-item-font-family: $global-font-family !default; +$navbar-nav-item-hover-color: $global-color !default; +$navbar-nav-item-onclick-color: $global-emphasis-color !default; +$navbar-nav-item-active-color: $global-emphasis-color !default; +$navbar-item-color: $global-color !default; +$navbar-toggle-color: $global-muted-color !default; +$navbar-toggle-hover-color: $global-color !default; +$navbar-subtitle-font-size: $global-small-font-size !default; +$navbar-dropdown-z-index: $global-z-index + 20 !default; +$navbar-dropdown-width: 200px !default; +$navbar-dropdown-margin: 0 !default; +$navbar-dropdown-padding: 15px !default; +$navbar-dropdown-background: $global-muted-background !default; +$navbar-dropdown-color: $global-color !default; +$navbar-dropdown-grid-gutter-horizontal: $global-gutter !default; +$navbar-dropdown-grid-gutter-vertical: $navbar-dropdown-grid-gutter-horizontal !default; +$navbar-dropdown-dropbar-margin-top: 0 !default; +$navbar-dropdown-dropbar-margin-bottom: $navbar-dropdown-dropbar-margin-top !default; +$navbar-dropdown-nav-item-color: $global-muted-color !default; +$navbar-dropdown-nav-item-hover-color: $global-color !default; +$navbar-dropdown-nav-item-active-color: $global-emphasis-color !default; +$navbar-dropdown-nav-header-color: $global-emphasis-color !default; +$navbar-dropdown-nav-divider-border-width: $global-border-width !default; +$navbar-dropdown-nav-divider-border: $global-border !default; +$navbar-dropdown-nav-sublist-item-color: $global-muted-color !default; +$navbar-dropdown-nav-sublist-item-hover-color: $global-color !default; +$navbar-dropbar-background: $navbar-dropdown-background !default; +$navbar-dropbar-z-index: $global-z-index - 20 !default; +$inverse-navbar-nav-item-color: $inverse-global-muted-color !default; +$inverse-navbar-nav-item-hover-color: $inverse-global-color !default; +$inverse-navbar-nav-item-onclick-color: $inverse-global-emphasis-color !default; +$inverse-navbar-nav-item-active-color: $inverse-global-emphasis-color !default; +$inverse-navbar-item-color: $inverse-global-color !default; +$inverse-navbar-toggle-color: $inverse-global-muted-color !default; +$inverse-navbar-toggle-hover-color: $inverse-global-color !default; +$notification-position: 10px !default; +$notification-z-index: $global-z-index + 40 !default; +$notification-width: 350px !default; +$notification-message-margin-bottom: 10px !default; +$notification-message-padding: $global-small-gutter !default; +$notification-message-background: $global-muted-background !default; +$notification-message-color: $global-color !default; +$notification-message-font-size: $global-medium-font-size !default; +$notification-message-line-height: 1.4 !default; +$notification-close-top: $notification-message-padding + 5px !default; +$notification-close-right: $notification-message-padding !default; +$notification-message-primary-color: $global-primary-background !default; +$notification-message-success-color: $global-success-background !default; +$notification-message-warning-color: $global-warning-background !default; +$notification-message-danger-color: $global-danger-background !default; +$offcanvas-z-index: $global-z-index !default; +$offcanvas-bar-width: 270px !default; +$offcanvas-bar-padding-vertical: $global-margin !default; +$offcanvas-bar-padding-horizontal: $global-margin !default; +$offcanvas-bar-background: $global-secondary-background !default; +$offcanvas-bar-color-mode: light !default; +$offcanvas-bar-width-m: 350px !default; +$offcanvas-bar-padding-vertical-m: $global-medium-gutter !default; +$offcanvas-bar-padding-horizontal-m: $global-medium-gutter !default; +$offcanvas-close-position: 20px !default; +$offcanvas-close-padding: 5px !default; +$offcanvas-overlay-background: rgba(0,0,0,0.1) !default; +$overlay-padding-horizontal: $global-gutter !default; +$overlay-padding-vertical: $global-gutter !default; +$overlay-default-background: rgba($global-background, 0.8) !default; +$overlay-primary-background: rgba($global-secondary-background, 0.8) !default; +$overlay-primary-color-mode: light !default; +$padding-padding: $global-gutter !default; +$padding-padding-l: $global-medium-gutter !default; +$padding-small-padding: $global-small-gutter !default; +$padding-large-padding: $global-gutter !default; +$padding-large-padding-l: $global-large-gutter !default; +$pagination-margin-horizontal: 20px !default; +$pagination-item-color: $global-muted-color !default; +$pagination-item-hover-color: $global-color !default; +$pagination-item-hover-text-decoration: none !default; +$pagination-item-active-color: $global-color !default; +$pagination-item-disabled-color: $global-muted-color !default; +$inverse-pagination-item-color: $inverse-global-muted-color !default; +$inverse-pagination-item-hover-color: $inverse-global-color !default; +$inverse-pagination-item-active-color: $inverse-global-color !default; +$inverse-pagination-item-disabled-color: $inverse-global-muted-color !default; +$placeholder-margin-vertical: $global-margin !default; +$placeholder-padding-vertical: $global-gutter !default; +$placeholder-padding-horizontal: $global-gutter !default; +$placeholder-background: $global-muted-background !default; +$position-small-margin: $global-small-gutter !default; +$position-medium-margin: $global-gutter !default; +$position-large-margin: $global-gutter !default; +$position-large-margin-l: 50px !default; +$progress-height: 15px !default; +$progress-margin-vertical: $global-margin !default; +$progress-background: $global-muted-background !default; +$progress-bar-background: $global-primary-background !default; +$search-color: $global-color !default; +$search-placeholder-color: $global-muted-color !default; +$search-icon-color: $global-muted-color !default; +$search-default-width: 180px !default; +$search-default-height: $global-control-height !default; +$search-default-padding-horizontal: 6px !default; +$search-default-background: $global-muted-background !default; +$search-default-focus-background: $search-default-background !default; +$search-default-icon-width: $global-control-height !default; +$search-navbar-width: 400px !default; +$search-navbar-height: 40px !default; +$search-navbar-background: transparent !default; +$search-navbar-font-size: $global-large-font-size !default; +$search-navbar-icon-width: 40px !default; +$search-large-width: 500px !default; +$search-large-height: 80px !default; +$search-large-background: transparent !default; +$search-large-font-size: $global-xxlarge-font-size !default; +$search-large-icon-width: 80px !default; +$search-toggle-color: $global-muted-color !default; +$search-toggle-hover-color: $global-color !default; +$inverse-search-color: $inverse-global-color !default; +$inverse-search-placeholder-color: $inverse-global-muted-color !default; +$inverse-search-icon-color: $inverse-global-muted-color !default; +$inverse-search-default-background: $inverse-global-muted-background !default; +$inverse-search-default-focus-background: $inverse-search-default-background !default; +$inverse-search-navbar-background: transparent !default; +$inverse-search-large-background: transparent !default; +$inverse-search-toggle-color: $inverse-global-muted-color !default; +$inverse-search-toggle-hover-color: $inverse-global-color !default; +$section-padding-vertical: $global-medium-margin !default; +$section-padding-vertical-m: $global-large-margin !default; +$section-xsmall-padding-vertical: $global-margin !default; +$section-small-padding-vertical: $global-medium-margin !default; +$section-large-padding-vertical: $global-large-margin !default; +$section-large-padding-vertical-m: $global-xlarge-margin !default; +$section-xlarge-padding-vertical: $global-xlarge-margin !default; +$section-xlarge-padding-vertical-m: ($global-large-margin + $global-xlarge-margin) !default; +$section-default-background: $global-background !default; +$section-muted-background: $global-muted-background !default; +$section-primary-background: $global-primary-background !default; +$section-primary-color-mode: light !default; +$section-secondary-background: $global-secondary-background !default; +$section-secondary-color-mode: light !default; +$slidenav-padding-vertical: 5px !default; +$slidenav-padding-horizontal: 10px !default; +$slidenav-color: rgba($global-color, 0.5) !default; +$slidenav-hover-color: rgba($global-color, 0.9) !default; +$slidenav-active-color: rgba($global-color, 0.5) !default; +$slidenav-large-padding-vertical: 10px !default; +$slidenav-large-padding-horizontal: $slidenav-large-padding-vertical !default; +$inverse-slidenav-color: rgba($inverse-global-color, 0.7) !default; +$inverse-slidenav-hover-color: rgba($inverse-global-color, 0.95) !default; +$inverse-slidenav-active-color: rgba($inverse-global-color, 0.7) !default; +$sortable-dragged-z-index: $global-z-index + 50 !default; +$sortable-placeholder-opacity: 0 !default; +$sortable-empty-height: 50px !default; +$spinner-size: 30px !default; +$spinner-stroke-width: 1 !default; +$spinner-radius: floor(($spinner-size - $spinner-stroke-width) / 2) !default; +$spinner-circumference: round(2 * 3.141 * $spinner-radius) !default; +$spinner-duration: 1.4s !default; +$sticky-z-index: $global-z-index - 20 !default; +$sticky-animation-duration: 0.2s !default; +$sticky-reverse-animation-duration: 0.2s !default; +$subnav-margin-horizontal: 20px !default; +$subnav-item-color: $global-muted-color !default; +$subnav-item-hover-color: $global-color !default; +$subnav-item-hover-text-decoration: none !default; +$subnav-item-active-color: $global-emphasis-color !default; +$subnav-divider-margin-horizontal: $subnav-margin-horizontal !default; +$subnav-divider-border-height: 1.5em !default; +$subnav-divider-border-width: $global-border-width !default; +$subnav-divider-border: $global-border !default; +$subnav-pill-item-padding-vertical: 5px !default; +$subnav-pill-item-padding-horizontal: 10px !default; +$subnav-pill-item-background: transparent !default; +$subnav-pill-item-color: $subnav-item-color !default; +$subnav-pill-item-hover-background: $global-muted-background !default; +$subnav-pill-item-hover-color: $global-color !default; +$subnav-pill-item-onclick-background: $subnav-pill-item-hover-background !default; +$subnav-pill-item-onclick-color: $subnav-pill-item-hover-color !default; +$subnav-pill-item-active-background: $global-primary-background !default; +$subnav-pill-item-active-color: $global-inverse-color !default; +$subnav-item-disabled-color: $global-muted-color !default; +$inverse-subnav-item-color: $inverse-global-muted-color !default; +$inverse-subnav-item-hover-color: $inverse-global-color !default; +$inverse-subnav-item-active-color: $inverse-global-emphasis-color !default; +$inverse-subnav-divider-border: $inverse-global-border !default; +$inverse-subnav-pill-item-background: transparent !default; +$inverse-subnav-pill-item-color: $inverse-global-muted-color !default; +$inverse-subnav-pill-item-hover-background: $inverse-global-muted-background !default; +$inverse-subnav-pill-item-hover-color: $inverse-global-color !default; +$inverse-subnav-pill-item-onclick-background: $inverse-subnav-pill-item-hover-background !default; +$inverse-subnav-pill-item-onclick-color: $inverse-subnav-pill-item-hover-color !default; +$inverse-subnav-pill-item-active-background: $inverse-global-primary-background !default; +$inverse-subnav-pill-item-active-color: $inverse-global-inverse-color !default; +$inverse-subnav-item-disabled-color: $inverse-global-muted-color !default; +$tab-margin-horizontal: 20px !default; +$tab-item-padding-horizontal: 10px !default; +$tab-item-padding-vertical: 5px !default; +$tab-item-color: $global-muted-color !default; +$tab-item-hover-color: $global-color !default; +$tab-item-hover-text-decoration: none !default; +$tab-item-active-color: $global-emphasis-color !default; +$tab-item-disabled-color: $global-muted-color !default; +$inverse-tab-item-color: $inverse-global-muted-color !default; +$inverse-tab-item-hover-color: $inverse-global-color !default; +$inverse-tab-item-active-color: $inverse-global-emphasis-color !default; +$inverse-tab-item-disabled-color: $inverse-global-muted-color !default; +$table-margin-vertical: $global-margin !default; +$table-cell-padding-vertical: 16px !default; +$table-cell-padding-horizontal: 12px !default; +$table-header-cell-font-size: $global-font-size !default; +$table-header-cell-font-weight: bold !default; +$table-header-cell-color: $global-color !default; +$table-footer-font-size: $global-small-font-size !default; +$table-caption-font-size: $global-small-font-size !default; +$table-caption-color: $global-muted-color !default; +$table-row-active-background: #ffd !default; +$table-divider-border-width: $global-border-width !default; +$table-divider-border: $global-border !default; +$table-striped-row-background: $global-muted-background !default; +$table-hover-row-background: $table-row-active-background !default; +$table-small-cell-padding-vertical: 10px !default; +$table-small-cell-padding-horizontal: 12px !default; +$table-large-cell-padding-vertical: 22px !default; +$table-large-cell-padding-horizontal: 12px !default; +$table-expand-min-width: 150px !default; +$inverse-table-header-cell-color: $inverse-global-color !default; +$inverse-table-caption-color: $inverse-global-muted-color !default; +$inverse-table-row-active-background: fade-out($inverse-global-muted-background, 0.02) !default; +$inverse-table-divider-border: $inverse-global-border !default; +$inverse-table-striped-row-background: $inverse-global-muted-background !default; +$inverse-table-hover-row-background: $inverse-table-row-active-background !default; +$text-lead-font-size: $global-large-font-size !default; +$text-lead-line-height: 1.5 !default; +$text-lead-color: $global-emphasis-color !default; +$text-meta-font-size: $global-small-font-size !default; +$text-meta-line-height: 1.4 !default; +$text-meta-color: $global-muted-color !default; +$text-small-font-size: $global-small-font-size !default; +$text-small-line-height: 1.5 !default; +$text-large-font-size: $global-large-font-size !default; +$text-large-line-height: 1.5 !default; +$text-bold-font-weight: bolder !default; +$text-muted-color: $global-muted-color !default; +$text-primary-color: $global-primary-background !default; +$text-success-color: $global-success-background !default; +$text-warning-color: $global-warning-background !default; +$text-danger-color: $global-danger-background !default; +$text-background-color: $global-primary-background !default; +$inverse-text-lead-color: $inverse-global-color !default; +$inverse-text-meta-color: $inverse-global-muted-color !default; +$inverse-text-muted-color: $inverse-global-muted-color !default; +$inverse-text-primary-color: $inverse-global-color !default; +$thumbnav-margin-horizontal: 15px !default; +$thumbnav-margin-vertical: $thumbnav-margin-horizontal !default; +$tile-padding-horizontal: 15px !default; +$tile-padding-horizontal-s: $global-gutter !default; +$tile-padding-horizontal-m: $global-medium-gutter !default; +$tile-padding-vertical: $global-medium-margin !default; +$tile-padding-vertical-m: $global-large-margin !default; +$tile-xsmall-padding-vertical: $global-margin !default; +$tile-small-padding-vertical: $global-medium-margin !default; +$tile-large-padding-vertical: $global-large-margin !default; +$tile-large-padding-vertical-m: $global-xlarge-margin !default; +$tile-xlarge-padding-vertical: $global-xlarge-margin !default; +$tile-xlarge-padding-vertical-m: ($global-large-margin + $global-xlarge-margin) !default; +$tile-default-background: $global-background !default; +$tile-muted-background: $global-muted-background !default; +$tile-primary-background: $global-primary-background !default; +$tile-primary-color-mode: light !default; +$tile-secondary-background: $global-secondary-background !default; +$tile-secondary-color-mode: light !default; +$tooltip-z-index: $global-z-index + 30 !default; +$tooltip-max-width: 200px !default; +$tooltip-padding-vertical: 3px !default; +$tooltip-padding-horizontal: 6px !default; +$tooltip-background: #666 !default; +$tooltip-border-radius: 2px !default; +$tooltip-color: $global-inverse-color !default; +$tooltip-font-size: 12px !default; +$tooltip-margin: 10px !default; +$totop-padding: 5px !default; +$totop-color: $global-muted-color !default; +$totop-hover-color: $global-color !default; +$totop-active-color: $global-emphasis-color !default; +$inverse-totop-color: $inverse-global-muted-color !default; +$inverse-totop-hover-color: $inverse-global-color !default; +$inverse-totop-active-color: $inverse-global-emphasis-color !default; +$transition-duration: 0.3s !default; +$transition-scale: 1.1 !default; +$transition-slide-small-translate: 10px !default; +$transition-slide-medium-translate: 50px !default; +$transition-slow-duration: 0.7s !default; +$panel-scrollable-height: 170px !default; +$panel-scrollable-padding: 10px !default; +$panel-scrollable-border-width: $global-border-width !default; +$panel-scrollable-border: $global-border !default; +$height-small-height: 150px !default; +$height-medium-height: 300px !default; +$height-large-height: 450px !default; +$border-rounded-border-radius: 5px !default; +$box-shadow-duration: 0.1s !default; +$box-shadow-bottom-height: 30px !default; +$box-shadow-bottom-border-radius: 100% !default; +$box-shadow-bottom-background: #444 !default; +$box-shadow-bottom-blur: 20px !default; +$dropcap-margin-right: 10px !default; +$dropcap-font-size: (($global-line-height * 3) * 1em) !default; +$leader-fill-content: '.' !default; +$leader-fill-margin-left: $global-small-gutter !default; +$logo-font-size: $global-large-font-size !default; +$logo-font-family: $global-font-family !default; +$logo-color: $global-color !default; +$logo-hover-color: $global-color !default; +$dragover-box-shadow: 0 0 20px rgba(100,100,100,0.3) !default; +$inverse-logo-color: $inverse-global-color !default; +$inverse-logo-hover-color: $inverse-global-color !default; +$breakpoint-small: 640px !default; +$breakpoint-medium: 960px !default; +$breakpoint-large: 1200px !default; +$breakpoint-xlarge: 1600px !default; +$breakpoint-xsmall-max: ($breakpoint-small - 1) !default; +$breakpoint-small-max: ($breakpoint-medium - 1) !default; +$breakpoint-medium-max: ($breakpoint-large - 1) !default; +$breakpoint-large-max: ($breakpoint-xlarge - 1) !default; +$global-small-box-shadow: 0 2px 8px rgba(0,0,0,0.08) !default; +$global-medium-box-shadow: 0 5px 15px rgba(0,0,0,0.08) !default; +$global-large-box-shadow: 0 14px 25px rgba(0,0,0,0.16) !default; +$global-xlarge-box-shadow: 0 28px 50px rgba(0,0,0,0.16) !default; +$width-small-width: 150px !default; +$width-medium-width: 300px !default; +$width-large-width: 450px !default; +$width-xlarge-width: 600px !default; +$width-xxlarge-width: 750px !default; \ No newline at end of file diff --git a/_site/404.html b/_site/404.html new file mode 100644 index 0000000..b84aea7 --- /dev/null +++ b/_site/404.html @@ -0,0 +1,568 @@ + + + + + + + + +404 not found | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + not found... + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/A-glimpse-on-the-future-of-Bitcoin-UX-4129cca9ece6/index.html b/_site/A-glimpse-on-the-future-of-Bitcoin-UX-4129cca9ece6/index.html new file mode 100644 index 0000000..cf477c1 --- /dev/null +++ b/_site/A-glimpse-on-the-future-of-Bitcoin-UX-4129cca9ece6/index.html @@ -0,0 +1,815 @@ + + + + + + + + +A glimpse on the future of Bitcoin UX | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ +

A glimpse on the future of Bitcoin UX

+ + + +
+

Hi there, I’m Nuno from Bluewallet, a Bitcoin wallet. I’m a UX and Product Designer. And for the last couple of years Bitcoin has been a daily passion, an obsession, and the most exciting thing I’ve come across, since I first connected to the internet.

+ +

Usually when I start talking about Bitcoin with my friends, the conversation always goes along the lines of:

+ +

Them: “ohh, you are on that shit, have you made some money yet? What about Ripple…?” (lol…).

+ +

Me: “It’s not about that, you see, bitcoin is a protocol where you can build things on top of.”

+ +

Them: “Really…!? I’m not following”

+ +

Me: “Heya, imagine the internet, and services like gmail, facebook and so on. But the internet of money!”

+ +

… Crickets***…!

+ +

Explaining Bitcoin to your friends is not that simple. The tech is at a very early stage and still has flawed concepts all over the place.

+ +

For example:

+ +
    +
  • Wallets that don’t keep Coins, but Keys instead.
  • +
  • Addresses that are numbers and letters that no one can read.
  • +
+ +

Early this year, after some time of studying Bitcoin daily, I started looking for open source projects to collaborate on. Long story short, Igor Korsakov, an experienced bitcoin developer found me. After some discussions we were a team building what we think will be the next generation of a bitcoin wallet. Later this year, Marcos Rodriguez found our project on Github and immediately joined the team.

+ +

Ok, fu** we are a team of 3 people, how amazing is that??!!

+ +

It is pretty cool, but trying to build a wallet with a remote team that has never worked together is not easier than explaining what bitcoin is to your friends. Truth is, most wallets suck and the best examples out there are not really there yet or even close to what the technology allows. For sure what the user experience should be, or will be in the future, doesn’t exist yet, and there’s no one who can tell you what it will look like.

+ +
    +
  • What should a wallet be?
  • +
  • What will a wallet be in 10 years?
  • +
  • Should a wallet display fiat currencies?
  • +
  • Should an address be a wallet?
  • +
  • Should we encrypt everything?
  • +
  • Is touch ID secure?
  • +
  • Is the lightning network ready anytime soon?
  • +
  • How do we get rid of QR codes?
  • +
  • How do we get rid of addresses?
  • +
  • Should a user run their own node?
  • +
  • Can you add a node inside a phone?
  • +
  • Should we allow people to buy Bitcoin? Oh shit how do you do that?
  • +
+ +

The amount of uncertainty, questions without answers, flawed concepts on the protocol, for sure, don’t help. But having an idea of the direction we should go to, certainly helps. That is what I’m going to try to write about, a glimpse on how I see the UX on Bitcoin will go in the future.

+ +

Where we are at the moment.

+ +

We just started, and after hacking our wallet in React Native (props to Igor), we are now redesigning the main experience and trying to step up the game on what the basic expectations from a user should be for a Bitcoin wallet.

+ +

Our first Prototype in Production

+ +

+ +

I remember that Igor was not really happy when we were talking about it, and I said something like “looks like a prototype, it’s not there yet…” :D

+ +

What we are working on at the moment

+ +

After the first iteration and having something working in production that we can get feedback and learn from, we are working on the UI and what the main navigation should be.

+ +

Wallets need to step up their game on basic things: like GUI quality, navigation that falls in what users expect from an app and their mental models, etc.

+ +

Here’s a little preview on how we plan to do just that.

+ +

+ +

+ +

So pretty much, a lot of catching up is going on a the moment. But we are slowly working on this every day. We will get there!

+ +

Also, our lightning solution is right around the corner. Stay tuned for some awesomeness!

+ +

What the future can brings us - Part 1

+ +

After showing you a bit of the short term future, I’m going to ramble about where can we go from here. Most likely in some years I’m going to be so ashamed of this article that I may find myself crying alone in the dark. Nevertheless the future belongs to the dreamers :D

+ +

There was this sentence I read somewhere that completely changed the way I understood Bitcoin. Someone saying “the wallet is the interface, it’s where the users will interact with the network. The wallet is the browser!”.

+ +

This completely changed my perspective of Bitcoin. If there’s an interface for the users, then people will be able to build services on top of it. People will build banks, mortgage services, loans services. You can pay for your bills, top up your phone, send money to your friends. This is a game changer.

+ +

The way we transfer, keep and secure our personal value will never be the same.

+ +

So let’s see how can a first, next generation wallet do that…

+ +

+ +

In this concept (just a concept) we are seeing a wallet that features a marketplace. Imagine an app (a wallet) that provides the ability for other services to live and be built on top of it. Think about Messenger apps or wechat mini-programs. Where developers have APIs and pre-made Interfaces to create their services on.

+ +

A kind of eco-system like this would also solve the common question for wallet builders, “how will you make money from a wallet?”.

+ +

Now we have an answer. No problem, you can thank me later :)

+ +

At this point you also may be asking yourself. “But this already exists out there?!” Well kind of… There are literally billions of people without access to a bank. Bitcoin brings that access to everyone on the planet. Imagine having a bank account on your pocket, now you (and the rest of people) can have an entire bank!

+ +

What the future can brings us — Part 2

+ +

Another inherent problem of the Bitcoin protocol concerns identity. For sure privacy will be the next big thing, and many projects are working on that. But people are not numbers, Bitcoin will be more social than ever! It’s a network in the end of the day…

+ +

The ability to send money to your friends, pay for your food delivery to your local restaurant, or buy from your favourite shop needs to be easy to do. And, most probably it will be conversational too.

+ +

QR codes will die, and addresses will be something users won’t interact with.

+ +

+ +

At the end of the day, it’s about people and not about the tech. This example aims to exemplify that. Users, services, brands and humans will directly interact with Bitcoin everyday.

+ +

Some final thoughts

+ +

This won’t be built in a few days or even in a couple of years. This is a long journey, and the opportunity of a lifetime to build products that will change the future as we know it. Personal and business interactions with value, personal sovereignty and money education are the next revolution!

+ +

The most exciting thing since the internet.

+ +

We are a team of 3, trying to bring Bitcoin to the people. How can you help?

+ +
    +
  • Are you a developer? Here is the place.
  • +
  • Not a developer, join our beta access and help us test and bug fix.
  • +
  • Are you a VC. Damn!! Working full time on this would make things easier for sure. Drop me a line (n@bluewallet.io).
  • +
+ +

Thank you for reading and any feedback, comments, thoughts and violent reactions. I’m all yours, see you around!

+ + +
+ +
+ +
+
+
+ +
+
+ +

A new Bitcoin wallet for Android-Announcing Bluewallet

+

It’s here! It took us a while. But the Android version of Next →

+ +
+
+
+ + +
+

Related Posts

+ + + + + + +
+ + + +
+ + + +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/A-new-Bitcoin-wallet-for-Android-Announcing-Bluewallet-9c716b0e1266/index.html b/_site/A-new-Bitcoin-wallet-for-Android-Announcing-Bluewallet-9c716b0e1266/index.html new file mode 100644 index 0000000..f8844c9 --- /dev/null +++ b/_site/A-new-Bitcoin-wallet-for-Android-Announcing-Bluewallet-9c716b0e1266/index.html @@ -0,0 +1,791 @@ + + + + + + + + +A new Bitcoin wallet for Android-Announcing Bluewallet | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ +

A new Bitcoin wallet for Android-Announcing Bluewallet

+ + + +
+

It’s here! It took us a while. But the Android version of Blue Wallet is live on play store. With full featured and more exciting new things ahead.

+ +

Download it here for Android

+ +

+undefined

+ +

What is Blue Wallet?

+ +

Blue Wallet is an open source project. A Bitcoin wallet built by bitcoiners, by community members, by hodlers, by bitcoin maximalists, and by hodlers of last resort. Call us whatever you want. 😎

+ +

But quite simply just by 3 guys who deeply care about bringing bitcoin to the masses. Hi there! We are Igor Korsakov, Marcos Rodriguez and Nuno Coelho. 👋

+ +

Why are we building this?

+ +

We were deeply frustrated with the current status of mobile wallet development on Bitcoin. Most of the wallets out there became a shitcoin horror show. Onboarding users to pure speculative useless tokens, where the creators are making money while the normal user is being introduced to scams, frauds on top of being directed to the least interesting aspect of the technology. Wasting time, creating frustration, and thereby resulting to a slow adoption.

+ +

We are on a mission to fix that.

+ +

We want to bring to the community a wallet focused on the users and their usage. Notice the overuse of the use word…

+ +

We plan to do that by focusing our efforts on two main pillars: Security and User Experience.

+ +

Let’s take a look on what our MVP (minimum viable product) looks like.

+ +

1 — Security by design

+ +

Open Source
+Blue Wallet is built on a public repo, up-to-date, and available on the Blue Wallet GitHub. This means that any user can build it and run it on his own, without any custodial dependencies. Verify the code and contribute to the wallet development. Blue Wallet is made with ReactNative and Distributed under MIT licensed.

+ +

Plausible deniability +A custom made feature thinking about your personal security. Blue Wallet allows you to define a different password which will decrypt a fake wallet set up for any situation you are forced to disclose your access or when you don’t want to or you can’t show your real wallet.

+ +

Full encryption +Blue Wallet can encrypt everything with an additional password. Biometric security (touch ID, Face ID) is not secure enough, and because this we’ve given you the option to have an additional password to protect and encrypt your wallet instead.

+ +

SegWit
+SegWit supported in P2SH-compatibility mode. Segwit was a massive upgrade to the Bitcoin Protocol released in 2017. You will find all wallets with SegWit enabled by default. Find more about SegWit here.

+ +

HD wallets +The Hierarchical Deterministic (HD) key creation and transfer protocol (BIP32), which allows creating child keys from parent keys in a hierarchy. The HD Wallets will generate you different public keys for each transactions.

+ +

2 — Focus on your experience

+ +

Be in control +Your private keys never leave your device**. You are in full control of your private keys. You can, at any moment, generate backups and export/import your wallets, with full control of what to do with your private keys.

+ +

Watch-only wallets +Watch-only wallets allow you to keep an eye on your cold storage without touching your private key. Easily import your address or xpub and watch it from your app without ever touching it.

+ +

Flexible fees +Starting from 1 Satoshi. You define, with full flexibility, the amount you want to add to your transaction. Blue Wallet also provides you a fee estimation to give you an idea how much to add to your transaction to be included on the next block.

+ +

Replace-By-Fee +If you would like to speed up a transaction, Blue Wallet allows to do just that by supporting RBF. Speed-up transactions by increasing the fee (BIP125).

+ +

Export TXHEX +You can get your transaction HEX (TXHEX) without broadcasting it, and only do it with the relay of your choice.

+ +

Multiple wallet support +Blue Wallet aims to support maximum wallet standards. Currently supported: BIP44 (HD), BIP49 (HD SegWit), BIP39 Breadwallet-compatible (m/0’/0/0), Legacy single-address, SegWit single-address (P2SH). You can have as many wallets in a single app at the same time.

+ +

What’s coming next?

+ +

Ok, all of that is cool. But the future is cooler. Let’s take a look at what is coming next.

+ +

So we compiled a list of 4 main focus areas that we are working on at the moment and for the near future. And of course, our backlog and our roadmap are all open for everyone to see and contribute to if anybody should want to do just that.

+ +

Lightning Wallets +Wallets with support for the Lightning Network Protocol. It will bring you unfairly cheap and fast transactions.

+ +

Batch TX +Ability to pay multiple addresses with a single transaction. Save on fees and optimize blockspace usage.

+ +

MultiSig TX +Add security to your funds. Each transactions requires M of N signatures (with keys stored on different physical devices with Blue Wallet).

+ +

Plug your node +Plug your own Bitcoin Core node for a maximum sovereignty.

+ +

Download it here for Android

+ +

We are a team of 3, trying to bring Bitcoin to the people. Do you want to help?

+ +
    +
  • Are you a developer? Here is the place.
  • +
  • Not a developer? Join our telegram group and help us test and bug fix.
  • +
  • Are you investing in Bitcoin projects? Drop me a line (n@bluewallet.io).
  • +
+ +

Thank you for reading and for any feedback, comments, thoughts and even violent reactions you might want to share with us. I’m all yours… See you around!

+ +

Check out our previous article on the future of Bitcoin UX

+ + +
+ +
+ +
+
+
+ +

A glimpse on the future of Bitcoin UX

+

Hi there, I’m Nuno from ← Previous

+ +
+
+ +

BlueWallet brings zero-configuration Lightning payments to iOS and Android

+

BlueWallet has just released support for the Lightning Network. Being a 2nd layer sc...

+ + +
+
+
+ + +
+

Related Posts

+ + + + + + +
+ + + +
+ + + +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/Bitcoin-Wallet-for-Desktop-v5-5-6-4f2172406155/index.html b/_site/Bitcoin-Wallet-for-Desktop-v5-5-6-4f2172406155/index.html new file mode 100644 index 0000000..51d100e --- /dev/null +++ b/_site/Bitcoin-Wallet-for-Desktop-v5-5-6-4f2172406155/index.html @@ -0,0 +1,750 @@ + + + + + + + + +Bitcoin Wallet for Desktop - v5.5.6 | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ +

Bitcoin Wallet for Desktop - v5.5.6

+ + + +
+

+ +

BlueWallet for Desktop is out on the mac store 

+ +

This is the first Bitcoin-only wallet available on the mac store for millions of users. And, a huge effort from the team to bring to the Bitcoin community our first desktop product.

+ +

Check it out here

+ +

It is kind of a big deal. With a desktop product, we can start to think about things mobile doesn’t really allow us to do, like shipping a wallet with a full bitcoin node, and all the privacy gains that comes with it. Which I bet some of you will appreciate.

+ +

For now it is only available for macOS, but we expect to increase the compatibility with other platforms as we go.

+ +

Let’s see what we can do from start with it, shall we.

+ +

HWW integration Easily connect to your hardware wallet through watch-only and PSBTs support.

+ +

Plausible Deniability Create multiple storages or fake ones in case of a forced disclosure.

+ +

Multiple Wallets Support for different wallet types. Like Bip84/49/44, electrum, legacy, etc.

+ +

+ +

Full node Full node connection through ElectrumX, Electrs or Electrum Personal Server.

+ +

Transactions control Easily Batch, Bump or Cancel transactions. With RBF and CPFP.

+ +

Notifications With push notifications for pending and confirmed transactions.

+ +

+ +

And many other features available right from the start.

+ +

Give it a try, send feedback. Let’s build the revolution together :)

+ +

We are a Bitcoin collective of developers and designers trying to help on how to bring Bitcoin to the people and the people to Bitcoin. Through beautifully crafted open source software.

+ +

How can you help?

+ +
    +
  • Are you a developer? Here is the place.
  • +
  • Not a developer. Give us a review on the app stores, that helps immensely. Join our beta access and help us test and bug fix. Provide feedback.
  • +
  • Are you a Bitcoin OG or investor and you believe in what we are building? Drop me a line (n@bluewallet.io).
  • +
+ +

Thank you for reading and any feedback, comments, thoughts and violent reactions, I’m all yours. See you around!

+ + +
+ +
+ +
+
+
+ +

v5.5.2 - Ground Control

+

+ +
+ + +
+
+ +
+
+
+ + +
+

Related Posts

+ + + + + + +
+ + + +
+ + + +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/BlueWallet-brings-zero-configuration-Lightning-payments-to-iOS-and-Android-30137a69f071/index.html b/_site/BlueWallet-brings-zero-configuration-Lightning-payments-to-iOS-and-Android-30137a69f071/index.html new file mode 100644 index 0000000..cefab3e --- /dev/null +++ b/_site/BlueWallet-brings-zero-configuration-Lightning-payments-to-iOS-and-Android-30137a69f071/index.html @@ -0,0 +1,767 @@ + + + + + + + + +BlueWallet brings zero-configuration Lightning payments to iOS and Android | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ +

BlueWallet brings zero-configuration Lightning payments to iOS and Android

+ + + +
+

BlueWallet has just released support for the Lightning Network. Being a 2nd layer scaling solution, Lightning promises low-fees and instant payments. But as a drawback brings a lot of complexities and unfamiliarities to unsuspecting users.

+ +

Completely aligned with Bitcoin’s “be your own bank” for sovereign individuals, Lightning requires users to run their own Lightning nodes (besides their own Bitcoin node), open and manage state channels with other nodes (this is what makes a network), maintain liquidity (both incoming and outgoing) in channels, and basically, do a hard ‘node operator’ work. This is the cost of independence from financial institutions.

+ +

Our approach to Lightning is different.

+ +

We decided to hide the complexity of running a node under the hood and take over the work of hub operator.

+ +

This makes the user experience smooth, bringing Lightning payments to anyone who is at least remotely acquainted with cryptocurrencies and mobile wallets.

+ +

We called it LndHub, an opensource wrapper around LND. This is “3rd layer solution” (as we jokingly call it; of course this is not real 3rd layer).

+ +

+ +

This is how it works: the user sends his bitcoins to a dedicated top-up address, and this balance is added to his account on LndHub. Then, the user can use this balance to pay Lightning invoices. But under the hood, it’s actually LndHub who pays the invoice, deducting the user’s account balance. It works the same way when the user wants to receive a Lightning payment — it’s LndHub who creates Lightning invoice and actually receives coins on one of its channels.

+ +

+ +

This has its drawbacks. Basically, user transfers his funds in custody to a 3rd party (and we all know that trusted 3rd parties are security holes, thanks to Nick Szabo). But how much of a problem is that? Let’s think a bit about it. Trust is minimized to an absolute minimum required to carry its duties. On the other hand, Lightning is expected for day-to-day use, and how much the average user usually has in his pocket for daily expenses? Probably, $50 for groceries and coffee? A fair tradeoff risking those for an exchange of usability.

+ +

Of course, on-chain Bitcoins private keys should be in full user’s control. Not your keys — not your coins, as they say. We are thinking of it as “savings” account (as opposed to Lightning — “current” account).

+ +

Other drawbacks include centralisation of the network. Given lots of users start using LndHub, amount of funds and liquidity it holds will also grow, turning LndHub into a major Hub on the network. This was anticipated in the dawn of Lightning development, and we don’t see a problem with that. Network still remains open, and is free to morph and mutate as per current economic reality.

+ +

Luckily, LndHub is completely opensource, which means any tech-savvy user can deploy his own instance of LndHub and use it with his wallet. This instance can even be shared with the party, such as friends and family: each member will have his own independent balance and transaction history. Should be pretty convenient for someone to onboard more people to the Lightning party. Just install lnd, bitcoind, lndhub and in your wallet settings put a link to your hub. Share the link with your friends and help them config their wallets. Done!

+ +

+ +

This also mitigates effects of hub centralization, letting the user maintain control over his on-chain and off-chain funds.

+ +

To sum this up, here’s a quick pros and cons list:

+ +

Pros:

+ +
    +
  • Improves user experience, allowing to onboard more users
  • +
  • Completely removes technicalities, like opening and maintaining channels and liquidity (both incoming and outgoing)t
  • +
  • Improves chances of successful payment routing
  • +
  • Receiving payments is a breeze (lndhub and lnd are 100% online, no need for Watchtowers)
  • +
  • Single LndHub (if self-hosted) can help share lightning experience with many users (think friends and family)
  • +
+ +

Cons:

+ +
    +
  • Funds are held by a 3rd party (but only small amounts for everyday use). Mitigated by opensourcing LndHub.
  • +
  • Minor network centralization
  • +
  • Less private. Hub operator knows who paid whom. Luckily, trust is minimized as Hub doesn’t know who is on sending and who is on receiving end, and what is being paid for. And again, LndHub is opensource for people needing extra privacy.
  • +
+ +

What next?

+ +

You can give it a try with BlueWallet mobile app (iOS and Android), check out code for LndHub or BlueWallet (both are opensource and MIT licensed), and let us know what you think! Of course, there might be bugs, so be careful and please report them. LndHub API spec is also open, so you can build your own product on top of it.

+ +

For bonus cypherpunk points you can build wallet binaries yourself and plugnplay your own bitcoind/lnd/lndhub!

+ +

Handy links

+ + + + +
+ +
+ +
+
+
+ +

A new Bitcoin wallet for Android-Announcing Bluewallet

+

It’s here! It took us a while. But the Android version of ← Previous

+ +
+
+ +

BlueWallet introduces Lapp Browser and Lapp Marketplace

+

+ +
+ + +
+
+
+ + +
+

Related Posts

+ + + + + + +
+ + + +
+ + + +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/BlueWallet-introduces-Lapp-Browser-and-Lapp-Marketplace-eed36721d853/index.html b/_site/BlueWallet-introduces-Lapp-Browser-and-Lapp-Marketplace-eed36721d853/index.html new file mode 100644 index 0000000..feb5050 --- /dev/null +++ b/_site/BlueWallet-introduces-Lapp-Browser-and-Lapp-Marketplace-eed36721d853/index.html @@ -0,0 +1,750 @@ + + + + + + + + +BlueWallet introduces Lapp Browser and Lapp Marketplace | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ +

BlueWallet introduces Lapp Browser and Lapp Marketplace

+ + + +
+

+ +

+ +

What is Lightning-powered App (Lapp)? In general, this is any application which works with Lightning network. In our case, this is any web-page that can receive payments or pay you back (not only that but more on that later).

+ +

Since BlueWallet added Lightning integration, our users made thousands of payments, and we have some stats and insights to share (which we will in further blog posts), but for now, we want to bring closer users and real business. We want to make it easier for regular people to discover great goods and services, allow them to interact with Lapps, pay and get paid easily.

+ +

+ +

Its been one year since Lightning network mainnet launch, and it’s time to take it seriously.

+ +

Thus, the very first thing to meet & greet users on the Lapp Browser will be a Lapp Marketplace — a simple collection of Lapps worth of your attention.

+ +

How does it work?

+ +

In the essence, Lapp Browser is a webview that navigates to Lightning-enabled webpages. The webview has javascript code injected, which bridges user’s Lightning wallet with the Lapp, allowing a more smooth interaction. The interaction part itself can evolve a lot in the future to be and feel more native, more integrated, etc.

+ +

BlueWallet partially conforms to webln specification (which is still in early alpha), so any Lapp that implements that spec will integrate with the wallet more naturally. Ideally, paying and getting paid in Lapp will be within one button tap (not a hustle of switching between apps and copypasting bolt11 strings).

+ +

+ +

Why are we doing this?

+ +

There’s no way to know what the future of wallets will be.

+ +

Imagine a world where you have full control of your money. Bitcoin is the main currency online and offline. You open your wallet app where you are able to easily pay your bills, send money to your family, buy stuff online, topup your phone, etc.

+ +

This is the world we want to live in. And this experiment is a first step to start learning how can we build this on top of the Lightning Network.

+ +

+ +

Whats next

+ +

Lots of work to be done. At the moment very few Lapps implement webln spec. Although this spec is still in alpha stage, it feels like a way to go. For example, every Dapp supports web3 specs, so developers might want to build their next Lapp considering webln compatibility. Except for frictionless send and receive, this spec also drafts providing identity to Lapp (so Lapp can seamlessly create an account and authorize you; no personal information leaked though, only anonymous public key is shared), and also mechanisms to sign messages with your identity, and verify other people signatures. Please, give this spec some love.

+ +

Disclaimer

+ +

BlueWallet’s Lightning integration is custodial by default, but you can easily connect it with your own LND instance for the same experience (everything we do is opensource).

+ +

Be warned, there might be bugs (please report them). Actually, with this release we’ve hit a sort of “beta” jackpot: Lapp browser is in beta, Lightning integration is in beta, and BlueWallet itself is still in beta. Don’t use it for large amounts! Be reckless, but not too reckless.

+ +

Handy links

+ + + + +
+ +
+ +
+
+
+ +

BlueWallet brings zero-configuration Lightning payments to iOS and Android

+

BlueWallet has just released support for the Lightning Network. Being a 2nd layer sc...

+ + +
+
+ +

v4.0.2 is out on android and iOS

+

update on bluewallet.io

+ +
+ + +
+
+
+ + +
+

Related Posts

+ + + + + + +
+ + + +
+ + + +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/Bluewallet-4-2-0-d31c7c4487fa/index.html b/_site/Bluewallet-4-2-0-d31c7c4487fa/index.html new file mode 100644 index 0000000..a470b01 --- /dev/null +++ b/_site/Bluewallet-4-2-0-d31c7c4487fa/index.html @@ -0,0 +1,728 @@ + + + + + + + + +Bluewallet 4.2.0 | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ +

Bluewallet 4.2.0

+ + + +
+

4.2.0 is out for iOS and android. With a massive update! 🤯

+ +

New

+
    +
  • Plug your full node (Electrum/BIP84) 😎
  • +
  • Bump sent Tx (RBF/BIP84) 🤓
  • +
  • Cancel sent Tx (RBF/BIP84) 😮
  • +
  • Bump received Tx (CPFP/BIP84) 🤠
  • +
  • Hungarian translation and HUF currency 🇭🇺
  • +
+ +

+undefined

+ +

Fixed

+
    +
  • Receive address offline
  • +
  • Wait for connection before fetching or broadcast
  • +
  • iOS App crashes when scaning QR Code
  • +
  • Amount when scanning was not displayed
  • +
  • Lightning transaction details
  • +
  • Import wallet with custom lndhub
  • +
  • Swedish translation updates
  • +
+ +

Keep your apps updated! Thank you 🙏

+ +

Bitcoin Wallet — Bluewallet

+ + +
+ +
+ +
+
+
+ +

v4.0.2 is out on android and iOS

+

update on bluewallet.io

+ +
+ + +
+
+ +

Bluewallet v.4.4.1  — Bitcoin wallet

+ + + +
+
+
+ + +
+

Related Posts

+ + + + + + +
+ + + +
+ + + +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/Bluewallet-v-4-4-1-Bitcoin-wallet-65705e8a8784/index.html b/_site/Bluewallet-v-4-4-1-Bitcoin-wallet-65705e8a8784/index.html new file mode 100644 index 0000000..ffb5d1f --- /dev/null +++ b/_site/Bluewallet-v-4-4-1-Bitcoin-wallet-65705e8a8784/index.html @@ -0,0 +1,777 @@ + + + + + + + + +Bluewallet v.4.4.1  — Bitcoin wallet | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ +

Bluewallet v.4.4.1  — Bitcoin wallet

+ + + +
+

Bluewallet v.4.4.1, mobile Bitcoin wallet for iOS and android is out and there are some cool new features that you should know about. Mainly the ability to send all funds, the ability to have a bit more privacy by allow you to hide your balances and the super cool “Scan to receive”, a new functionality available for Lightning based on lnurl spec.

+ +

What is new

+ +

Send MAX (BIP84 & BIP49)

+ +

The ability to Send MAX, one of the most requested features appears when you tap on the amount. The keyboard goes up, you can see your total balance and you can tap on it to select the total amount. That simple.

+ +

Particularly useful if you want to migrate your wallets to Bech32 wallets ;)

+ +

+undefined

+ +

Scan to receive (lnurl spec) by @fiatjaf

+ +

lnurl is a protocol for communication between Lightning wallets and third-party services. It simplifies complicated common flows into standard subprotocols carried on between the user wallet and the service over simple HTTP JSON calls.

+ +

Basically it goes like this:

+ +
    +
  1. The wallet reads a QR code;
  2. +
  3. If it has the lnurl prefix it is decoded and the the resulting URL is called;
  4. +
  5. From the server response for that URL the wallet knows what subprotocol it should proceed with;
  6. +
  7. In the case of lnurl-withdraw, for example, the server response will contain some parameters (min/max, default description) for the invoice that will be generated in the user wallet;
  8. +
  9. The wallet proceeds with the subprotocol. In the case of lnurl-withdraw, for example, it will display an invoice generation window prefilled with the parameters returned by the server, and, upon confirmation by the user, send the invoice back to the server, which will pay it.
  10. +
+ +

+undefined

+ +

Source

+ +

Supported by: BlueWallet, Bitcoin Lightning Wallet and @lntxbot

+ +

Can be used on: Kriptode, Lightning Gifts and @lntxbot

+ +

Allow user to hide their balance

+ +

The ability to hide your balance is a small privacy improvement. With it you now don’t need to be afraid of opening your wallet in public or over the shoulder kind of situations for instance.

+ +

+undefined

+ +

Other noticeable improvements on this release

+ +
    +
  • WatchApp Complication
  • +
  • New TX status screen
  • +
  • Share QR along with address
  • +
  • KRW currency support
  • +
  • iOS Handoff for tx and wallets
  • +
+ +

What was fixed

+ +
    +
  • Crash on ManageFunds
  • +
  • Don’t allow more than one leading zero
  • +
  • Wallet selector on send view
  • +
  • Data is stored in OS secure keystore
  • +
  • Broken Lightning scheme handling
  • +
  • QR Correctness for watch app
  • +
  • Tap to copy preimage
  • +
  • Show last saved exchange rate
  • +
+ +

Keep Building! And keep that feedback coming. Free Open Source Software! Thank you all :)

+ +

We are always available by email bluewallet@bluewallet.io or on the usual channels.

+ + + + +
+ +
+ +
+
+
+ +

Bluewallet 4.2.0

+

4.2.0 is out for iOS and android. With a massive update! 🤯

+ +
+ + +
+
+ +

Marketplace removed from iOS app

+

+ +
+ + +
+
+
+ + +
+

Related Posts

+ + + + + + +
+ + + +
+ + + +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/CNAME b/_site/CNAME new file mode 100644 index 0000000..64a5de7 --- /dev/null +++ b/_site/CNAME @@ -0,0 +1 @@ +hungry-pare-adf179.netlify.com \ No newline at end of file diff --git a/_site/LICENSE b/_site/LICENSE new file mode 100644 index 0000000..883a4d5 --- /dev/null +++ b/_site/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Dan Urbanowicz + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/_site/Marketplace-removed-from-iOS-app-5630a5c7d2e4/index.html b/_site/Marketplace-removed-from-iOS-app-5630a5c7d2e4/index.html new file mode 100644 index 0000000..64eee3a --- /dev/null +++ b/_site/Marketplace-removed-from-iOS-app-5630a5c7d2e4/index.html @@ -0,0 +1,724 @@ + + + + + + + + +Marketplace removed from iOS app | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ +

Marketplace removed from iOS app

+ + + +
+

+ +

Last week we got a call from an Apple employee. That call was about removing our “marketplace” feature.

+ +

Apparently it is not permitted to have 3rd party not embedded code for payments in the Apple app store when presented in form of store or store-like interface. This is point 4.7 on the review guidelines for the other teams this issue may concern.

+ +

This is obviously terrible news 😢

+ +

Terrible news for all the indie devs that we are supporting, promoting, and sending traffic to. Now will have one less source of traffic to count on.

+ +

And, it means Apple doesn’t have or provide a solution for wallets to work with lapps/dapps. Which, taking into consideration their monopoly, is something they should provide solutions on. It also reveals a lack of adaptation to new trends and making it difficult for innovation to happen in their eco-system.

+ +

A wallet is, at the end-of-day, more like a browser or a gateway type of interface than a “wallet itself”. It is a way for users to interact with the Bitcoin network and with Bitcoin related services. Bitcoin is here to stay. Bitcoin won’t change. Apple should adapt and provide solutions for wallet developers to work with Bitcoin services.

+ +

The “Marketplace” feature consists of two elements, a Lightning and Bitcoin enabled services directory and a “Lapp Browser”, that interacts and understands Bitcoin features through protocols like the WebLN.

+ +

For all the developers using Bluewallet Lapp browser, the Lapp Browser will still be available and can be easily deeplinked to provide a better experience for direct send/receive.

+ +

Example:
+lapp://openlappbrowser?url=your_urlencoded_link_here

+ +

We will think of something else and find new solutions. Any suggestion is very welcome. For now, we are extremely sad to announce that the Marketplace feature was removed from the iOS (not on android) version.

+ +

Big thanks for all the support we have received. Keep the feedback and ideas coming. We will keep building!

+ +

If you wanna hangout here is our group. ✌️

+ + +
+ +
+ +
+
+
+ +

Bluewallet v.4.4.1  — Bitcoin wallet

+ + + +
+
+ +

November updates — Price extension, Onchain refill and more

+

We have been busy building, that’s a good way to be busy and we haven’t update the b...

+ + +
+
+
+ + +
+

Related Posts

+ + + + + + +
+ + + +
+ + + +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/November-updates-Price-extension-Onchain-refill-and-more-8b832423a050/index.html b/_site/November-updates-Price-extension-Onchain-refill-and-more-8b832423a050/index.html new file mode 100644 index 0000000..6ad9a1b --- /dev/null +++ b/_site/November-updates-Price-extension-Onchain-refill-and-more-8b832423a050/index.html @@ -0,0 +1,769 @@ + + + + + + + + +November updates — Price extension, Onchain refill and more | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ +

November updates — Price extension, Onchain refill and more

+ + + +
+

We have been busy building, that’s a good way to be busy and we haven’t update the blog in awhile, so here it is, an update on the latest releases 😃

+ +

We’ve release to production versions 4.5.2, 4.6.0, 4.7.0, 4.7.1 and 4.8.0. These versions include minor new features, bug fixes and user experience improvements. Lots of polishing and small tweaks to make bluewallet more solid and a better free open source product for the community.

+ +

+ +

New features

+ +
    +
  • Today Price Extension
  • +
  • Quick Actions
  • +
  • Send max option on advanced menu
  • +
  • Onchain refill view for Lightning
  • +
  • Amount and description to the success screen on Lightning
  • +
  • Optional biometrics unlock
  • +
  • Cryptoadvance HW wallet support (for BIP84) via PSBT and QR codes
  • +
  • Default into wallet on launch
  • +
  • Reintroduce the Lapp browser on iOS
  • +
  • Better initial HD rescan
  • +
  • New nemonic backup screen
  • +
+ +

+ +

Removed features

+ +

With the feedback sometimes features got to go, which is fine. See you! 👋

+ +
    +
  • Auto brightness
  • +
+ +

Fixed bugs

+ +

A huge amount of bugs squashed, thanks to all the feedback and issues opened!

+ +
    +
  • Allow textfield to be visible above keyboard
  • +
  • Lapp browser when typing URL without https scheme
  • +
  • Layout for small devices
  • +
  • Don’t allow zero invoices to enable create invoice button
  • +
  • Change create button on Receive LN payment should be create invoice
  • +
  • Update for watch
  • +
  • Electrum connection
  • +
  • LApp marketplace address is now editable
  • +
  • Single address watch-only wallet Receive button crash
  • +
  • NaN when sending onchain
  • +
  • Zero on send success screen
  • +
  • Time shown for top-most transaction
  • +
  • Issue with scanQrWif
  • +
  • Typo on NL language
  • +
  • Better wallet export QR readability
  • +
  • RBF tx memo porting
  • +
  • White screen on boot
  • +
  • Lightning wallet was not shown on Watch app
  • +
  • Crash on PSBT tx broadcast (when using with hardware wallet)
  • +
+ +

We are a small team of Bitcoin users trying to help on how to bring Bitcoin to the people and the people to Bitcoin, through beautifully crafted open source software. How can you help?

+ +
    +
  • Are you a developer? Here is the place.
  • +
  • Not a developer. Give us a review on the app stores, that helps immensely. Join our beta access and help us test and bug fix. Provide feedback.
  • +
  • Are you a Bitcoin OG investor and you believe in what we are building? Drop me a line (n@bluewallet.io).
  • +
+ +

Thank you for reading and any feedback, comments, thoughts and violent reactions, I’m all yours. See you around!

+ + +
+ +
+ +
+
+
+ +

Marketplace removed from iOS app

+

+ +
+ + +
+
+ +

Work in Progress — Building a Bitcoin wallet

+

Olá! 👋

+ +
+ + +
+
+
+ + +
+

Related Posts

+ + + + + + +
+ + + +
+ + + +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/Preparing-for-war-how-was-2019-and-a-glimpse-of-the-future-72637ffe58eb/index.html b/_site/Preparing-for-war-how-was-2019-and-a-glimpse-of-the-future-72637ffe58eb/index.html new file mode 100644 index 0000000..1483ad5 --- /dev/null +++ b/_site/Preparing-for-war-how-was-2019-and-a-glimpse-of-the-future-72637ffe58eb/index.html @@ -0,0 +1,776 @@ + + + + + + + + +Preparing for war — how was 2019 and a glimpse of the future | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ +

Preparing for war — how was 2019 and a glimpse of the future

+ + + +
+

Preparing for war — how was 2019 and a glimpse of the future

+ +

2019 was a great year for BlueWallet. Although it is a new wallet and still in its infancy, we did get some some media coverage, we did get some recognition from industry experts and we did get some users to remind us how much we suck and how much better it can still be. All that, working on the project on our free time in a pure open source fashion.

+ +

This year blew away our wildest expectations on what we thought we could achieve. To give you a bit of perspective, at this time last year we were releasing the android version of the app and our Lightning wallets feature right before Christmas. And probably, at that time, most of you hadn’t really heard about Blue.

+ +

Talking about Lightning. While the Lightning Network slowly matures, and after doing our part to put it on the spotlight and bringing the attention it actually deserved. We decided to take a step back and work on the layer that really matters. The base layer.

+ +

In the core, BlueWallet is (and always was) a non-custodial on-chain bitcoin wallet, born out of the frustration and ashes of the 2017 Bull market. When fees were high and the majority of wallets still had not implemented segwit and flexible fees. Paying $20 in fees for a transaction because your wallet’s fee estimation was broken? That was a real deal back then.

+ +

The very first release of BlueWallet fixed exactly that: segwit, flexible fees (starting from 1 sat/byte), and RBF (replace-by-fee).

+ +

During the next cycle of adoption (this is how I like to call the bull-run) I expect to see exactly the same thing we saw in 2017: with that many people discovering the advantages of Bitcoin and making their first happy transactions. The block space will again be an extremely scarce commodity.

+ +

After another block reward halving, a more mature fee market will develop, and we will witness a natural competition for block space. This is why I think it is important to prepare for that in advance: your bitcoin wallet app (as a customer-facing software) should be the one to act in your best interests, trying to save as much pennies on transactions as possible and, at the same time, give you the full control you need and should have.

+ +

In preparation for that, at BlueWallet we implemented:

+ +
    +
  • CPFP — Bump transaction (child-pays-for-parent) — a technique that allows you to spend incoming transaction that is unconfirmed by sending it to your another address, but with the total fees higher than the original transaction. This helps if it takes forever for your incoming transaction to confirm on the blockchain.
  • +
  • RBF — Bump transaction (replace-by-fee) — if you sent a transaction and it’s still unconfirmed you can replace it with the one with higher fees, making it more attractive for miners to mine, thus, speeding up the confirmation.
  • +
  • RBF — Cancel transaction — a technique similar to regular RBF, but where the replacement transaction’s output is the address you control, thus, paying yourself, effectively cancelling the transaction.
  • +
  • Batch send — when creating a transaction add as many payees as you want. This helps to save on fees when having to pay multiple destinations. Making a nice UI/UX on this one was a challenge.
  • +
  • Flexible fees (starting from 1 sat per byte) and fee recommendations fetched from a real up-to-date bitcoin node.
  • +
  • Finally, from now on, we are promoting BIP84 Native SegWit wallets as the default wallet when users create a new wallet. We were warned and actually advised against that, as that triggers a stream of complaints from users who can’t withdraw coins from exchanges because exchanges still don’t recognize ‘bc1……’ addresses. But it’s time. Really. Users should take their complaints to obsolete exchanges. Native segwit will allow saving on fees even more.
  • +
+ +

I like to repeat that BlueWallet is preparing for war, and this war will be for block space. Once another billion of Earth inhabitants realize the benefits of hard, censorship-resistant and non-confiscatable money.

+ +

If this is the kind of fight you want to be part of, protecting the Bitcoin user interests over miners and corporate players, you know where to go. And you are much welcomed!

+ +

+ +

That was not the only features we were busy with. Among many, some new and also remarkable features:

+ +
    +
  • Connect to your own Bitcoin Node through Electrum server for maximum self-sovereignty, no SPVs, full node fashion.
  • +
  • Watch-only ZPUB wallets. Just scan the QR code with a ZPUB or input a ZPUB into the text field directly. XPUB and YPUB are supported as well.
  • +
  • With recent transition to PSBT under the hood, we added a workflow to have your transaction signed on your hardware wallet in a pure air-gapped fashion. Just mark your watch-only ZPUB wallet as working with an external HW wallet, then create a transaction and feed the QR code with the unsigned PSBT to your hardware wallet. Sign it on hardware wallet, scan it back to BlueWallet and broadcast it to the network. You have just conveniently made a transaction on your mobile device, while keeping your private keys on a secure hardware wallet, truly air-gapped! This is still in beta and only the CryptoAdvance device is 100% supported, but we will work on testing and polishing the integration with other hardware wallets.
  • +
+ +

We still have a lot of work to do:

+ +
    +
  • Ongoing integration with HodlHodl. Non-custodial fiat-to-btc trading is an important bitcoin infrastructure project. It’s a hedge against all regulated exchanges going bad with AML/KYC.
  • +
  • When LND will be stable enough we will include it as part of the wallet, allowing users to switch their lightning wallets into non-custodial mode, and gradually make it the default mode. But custodial lightning brought some unexpected benefits, such as practically unlimited incoming capacity, instant on, zero onchain footprint. It makes sense to maintain both and explore possible synergies here.
  • +
  • Multisig wallets are hard to tackle, mostly UI/UX wise. A proper joining ceremony is a hard task to design. The ceremony of creating a transaction and inviting all participants to sign it, can also be a challenge.
  • +
  • To reach maximum security, it makes sense to use only multisig wallets with all keys residing on your own devices, preferably hardware wallets from different manufacturers. Designing, implementing and testing this flow is not easy.
  • +
  • Sign message with your wallet/verify. I strongly feel that your private keys should help you with authentication on 3rd-party services, but what’s the proper way to do that we do not know, yet.
  • +
  • Provide-UTXO — when creating a transaction, supply UTXO to use in form of JSON document. This allows using the wallet on a completely offline/air-gapped device, provided you carry with you your up-to-date UTXO set. Then you sign it, broadcast via SMS/pigeons/whatever and congrats! You can transact even from a desert island.
  • +
  • Choose UTXO / UTXO spend strategies — when creating a transaction, choose which UTXO (or UTXO strategy) you want to use. For example, you could strive for the smallest fees (use higher-value outputs first), optimize for amounts used (sum of input amounts are close to total output amounts — might produce dust output), or you could consolidate (use all available inputs — yes this completely destroys privacy but helps to prepare for a period of high fees) etc.
  • +
  • Coinjoin — a proper coins mix service with other peers is tricky, but we might attempt it.
  • +
  • RBF-Service. A trustless server that broadcasts your replacement transactions with higher fees if previous transaction wasn’t confirmed in a timeframe you specified. You can start with 1 sat/byte transaction and gradually increase fee until it’s confirmed in a reasonable time (with the smallest fee possible). Automatically. This is only an idea at the moment.
  • +
  • NFC. Users will be able to ‘tap-to-share’ their receive address to other users, and other NFC-capable devices. This will eliminate the requirement for users to have to fiddle with their device’s display brightness, and having to move around their camera view in order to scan a QR Code. This feature will also be useful for our upcoming BTCPayServer integration.
  • +
  • Push notifications have been set aside for too long, but they will be eventually done.
  • +
+ +

And some other more experimental consumer ideas that we are already sharing with the community and putting it out there. The list doesn’t end there, but one needs to keep some secrets as well :) Feel free to bring your ideas on!

+ +

Just some statistics of the year:

+ +
    +
  • 32 production releases
  • +
  • 738 commits
  • +
  • 27 contributors
  • +
+ +

A special thanks to all the contributors, you guys rock! 🤘

+ +

To summarize, we are preparing for war! It will be a war about block space, it will be a war about providing the users with the right tools to fight against corporate interests trying to take advantage of Bitcoin. Join us, we promise it won’t be a boring one!

+ +

https://github.com/bluewallet/bluewallet

+ +

Cheers!

+ + +
+ +
+ +
+
+
+ +

Work in Progress — Building a Bitcoin wallet

+

Olá! 👋

+ +
+ + +
+
+ +

v5.0.0 — Coldcard wallet support

+

Olá! 👋

+ +
+ + +
+
+
+ + +
+

Related Posts

+ + + + + + +
+ + + +
+ + + +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/Work-in-Progress-Building-a-Bitcoin-wallet-e81ca6db82d7/index.html b/_site/Work-in-Progress-Building-a-Bitcoin-wallet-e81ca6db82d7/index.html new file mode 100644 index 0000000..dac0158 --- /dev/null +++ b/_site/Work-in-Progress-Building-a-Bitcoin-wallet-e81ca6db82d7/index.html @@ -0,0 +1,786 @@ + + + + + + + + +Work in Progress — Building a Bitcoin wallet | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ +

Work in Progress — Building a Bitcoin wallet

+ + + +
+

Olá! 👋

+ +

Thought it would be cool to share what people are working on at the Bluewallet project.

+ +

Usually there’s not much visibility on open source projects, unless, of course, you are part of the mailing list, IRC channels or chat groups of the project. So a WIP (work in progress) Post seems like a nice idea. It’s a way to have the community aware, updated, and given a chance to say something. Best to have feelings and violent reactions shared now, than after something is done.😃

+ +

We will approach this as a “Now” and “Next.

+ +

Now being what we are working on now and should be hitting production at any moment.

+ +

Next being what we will be working on and will come sooner than later.

+ +

What’s coming up Now?

+ +

Bech32 — Native SegWit as the default wallet

+ +

+ +

Bluewallet supports many address types. During 2019, we invested most of our time improving and testing our Bech32 wallets. They are now a powerful open financial systems available to anyone for free. And here’s what you can do with them:

+ +
    +
  • Full fee control
  • +
  • Save up to 50% in fees
  • +
  • Bump your transactions
  • +
  • Cancel your transactions
  • +
  • Batch multiple transactions
  • +
+ +

It seems that the time has come, and as Bitcoin Core also made bech32 the default type on the latest release, there’s no reason for us to not do so as well.

+ +

What’s coming Next?

+ +

BTCPay Server integration

+ +

+undefined

+ +

BTCPay has become the Swiss Army knife of the Bitcoin tech stack. From developing applications, running nodes, to integrating with hardware wallets, etc.

+ +

It seems obvious to us that bringing this eco-system to Bluewallet, where BTCPay users can have an open source native mobile app to interact with their applications, can be the cherry on top of the proverbial cake.

+ +

It solves a real problem - where today, users have their wallets on web frontends, which is something not that secure to do. At the same time, we can work on a native experience to improve the User Experience for the end user, who are, in this case, the merchants and store payees.

+ +

This opens interesting scenarios, where people would be able to hack cool things. For instance, it could be to explore NFC (Near Field Communication) solutions to develop open source cards/points-of-sale, and so much more on top of BTCPay and native mobile environments and everything they can bring.

+ +

How and where can you help or know more?

+ + + +

+undefined

+ +

Hodl Hodl integration

+ +

There’s this saying on the wallets world, “You either die a hero or you live long enough to become an exchange” 😆

+ +

Bluewallet doesn’t really want to be an exchange. So integrating with Hold Hodl, where they focus on the exchange technology, so Blue can just focus on the wallet technology, seems like the perfect plan.

+ +

Only the future will tell, but I’m super excited about this one. P2P marketplaces definitely bring a lot of value and they are a huge escape tunnel from the regulated world.

+ +

Why Hodl Hodl?

+ +

No-KYC exchange, non-custodial, P2P transactions, kick-ass multi-sig tech, Lightning on exchanges pioneers, bad-ass group of people. Organizers of the arguably best Bitcoin conference :)

+ +

Still at a very early stage, so this is what we can show at the moment. But pretty sure this one will blow many people’s minds.

+ +

+undefined +undefined

+ +

We are a small team of Bitcoin users trying to help on bringing Bitcoin to the people and the people to Bitcoin — through beautifully crafted open source software.

+ +
    +
  • Are you a user? Give us a review on the app stores. That helps immensely.
  • +
  • Join our beta access and help us test and bug fix. Provide feedback.
  • +
  • Are you a developer? Here is the place.
  • +
  • Are you a Bitcoin OG investor and you believe in what we are building? Drop me a line (n@bluewallet.io).
  • +
+ +

Thank you for reading and any feedback, comments, thoughts and violent reactions, I’m all yours. See you around!

+ + +
+ +
+ +
+
+
+ +

November updates — Price extension, Onchain refill and more

+

We have been busy building, that’s a good way to be busy and we haven’t update the b...

+ + +
+
+ +

Preparing for war — how was 2019 and a glimpse of the future

+

Preparing for war — how was 2019 and a glimpse of the future

+ +
+ + +
+
+
+ + +
+

Related Posts

+ + + + + + +
+ + + +
+ + + +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/about/index.html b/_site/about/index.html new file mode 100644 index 0000000..b93f3cd --- /dev/null +++ b/_site/about/index.html @@ -0,0 +1,642 @@ + + + + + + + + +BlueWallet - Bitcoin wallet | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+ +
+
+
+

About

+

The BlueWallet project born out of the ashes of the 2017 bull-run. With the frustration of not finding a wallet for our Bitcoin needs. Where we could have a Bitcoin only wallet and full control of the transactions. At the time, there wasn't a single Bitcoin wallet available for iOS that was bitcoin-only, supported Segwit and where we could have fee control. So we decided to build it.

+
+

Our commitment is to build the best Bitcoin wallet we can. With strong focus on open source fundations, self-sovereign principles, decentralization and the Cypherpunk's Manifesto. We will iterate slowly, we will not build it in one day, but we will get there.

+
+
+
+
+

Who are we

+

We are a collective of developers and designers focused on bringing tools to self-sovereignity, personal property security and privacy.


+

Reach out, we will appreciate your feedback.

+ + + +
+
+
+
+

Contact us

+
    +
  • bluewallet@bluewallet.io
  • +
+
+
+ +
+ +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/admin/config.yml b/_site/admin/config.yml new file mode 100644 index 0000000..8cb6a75 --- /dev/null +++ b/_site/admin/config.yml @@ -0,0 +1,54 @@ +# Everything you need to know about configuring the CMS can be found here:- +# https://www.netlifycms.org/docs/configuration-options/ + +backend: + name: git-gateway # Netlify’s Git Gateway connects to Git provider’s API + branch: master # Branch to update (master by default) + +media_folder: "assets/img/uploads" # Folder where user uploaded files should go + +publish_mode: editorial_workflow # Enable drafts + +collections: # A list of collections the CMS should be able to edit + # POSTS + - name: "post" # Used in routes, ie.: /admin/collections/:slug/edit + label: "Post" # Used in the UI, ie.: "New Post" + folder: "_posts" # The path to the folder where the documents are stored + sort: "date:desc" # Default is title:asc + create: true # Allow users to create new documents in this collection + slug: "{{year}}-{{month}}-{{day}}-{{slug}}" + fields: # The fields each document in this collection have + - {label: "Layout", name: "layout", widget: "hidden", default: "post"} + - {label: "Title", name: "title", widget: "string", tagname: "h1"} + - {label: "Publish Date", name: "date", widget: "datetime", format: "YYYY-MM-DD HH:mm:ss"} + - {label: "Intro Paragraph", name: "intro_paragraph", widget: "markdown", required: false} + - {label: "Body", name: "body", widget: "markdown", required: false} + - {label: "Categories", name: "categories", widget: "string", required: false} + # PAGES + - name: "page" + label: "Page" + folder: "/" + sort: "title:asc" + create: false + slug: "{{slug}}" + fields: + - {label: "Layout", name: "layout", widget: "hidden", default: "page"} + - {label: "Title", name: "title", widget: "string", tagname: "h1"} + - {label: "Permalink", name: "permalink", widget: "hidden"} + - {label: "Section", name: "section", widget: "hidden", default: "{{name}}"} + - {label: "Intro Paragraph", name: "intro_paragraph", widget: "markdown", required: false} + - {label: "Body", name: "body", widget: "markdown", required: false} + +# DOCS + - name: "docs" + label: "Docs" + folder: "_docs" + sort: "title:asc" + create: false + slug: "{{slug}}" + fields: + - {label: "Layout", name: "layout", widget: "hidden", default: "page"} + - {label: "Title", name: "title", widget: "string", tagname: "h1"} + - {label: "Permalink", name: "permalink", widget: "hidden"} + - {label: "Section", name: "section", widget: "hidden", default: "{{name}}"} + - {label: "Body", name: "body", widget: "markdown", required: false} \ No newline at end of file diff --git a/_site/admin/index.html b/_site/admin/index.html new file mode 100644 index 0000000..36e24bd --- /dev/null +++ b/_site/admin/index.html @@ -0,0 +1,12 @@ + + + + + + Content Manager + + + + + + diff --git a/_site/all_features.yml b/_site/all_features.yml new file mode 100644 index 0000000..ae82355 --- /dev/null +++ b/_site/all_features.yml @@ -0,0 +1,11 @@ +title: Payjoin + desc: Payjoin or Pay-to-endpoint, it's a feature that allows to break common chain analysis heuristics, where to participants build a transaction together. + +title: Plug-in your Bitcoin node + desc: Ability to plug-in your own Bitcoin Full node through Electrum Personal Server (EPS), ElectrumX or Electrs. Don't trust, verify for a maximum sovereignty. + +title: Offline mode + desc: In case you don't have internet connection, BlueWallet will allow you to generate wallets or addresses to be able to receive offline. + +title: Custom entropy + desc: Ability to manually generate entropy for wallet creation with Coins and Dices. This is an advanced feature, use with caution. diff --git a/_site/assets/css/main.css b/_site/assets/css/main.css new file mode 100644 index 0000000..71d3dbe --- /dev/null +++ b/_site/assets/css/main.css @@ -0,0 +1 @@ +.merda{height:598px}@media (max-width: 767px){.merda{margin-bottom:60px !important}}.uk-navbar{padding:26px 0}.uk-navbar a{font-weight:700}.uk-heading-primary{margin-bottom:24px}.uk-navbar-dropdown{width:260px !important}.uk-navbar-dropdown-nav li{font-size:1rem;padding:4px 16px}.uk-navbar-dropdown-nav li:hover{border-radius:6px;background:#F2F4F7}.uk-nav-divider:hover{background:transparent !important}.bounce{transition:all 0.5s ease}.bounce:active{transform:scale(0.97)}@media (max-width: 767px){.bounce{max-width:200px}}.poster{max-width:300px;height:611px;position:relative;border-radius:42px;margin:0 auto 60px auto;padding:0}@media (min-width: 768px){.poster{width:300px;height:611px;position:absolute;top:40%;left:50%;margin:-250px 0 0 -160px;border-radius:42px;box-shadow:0 45px 100px rgba(0,0,0,0.4);overflow:hidden;flex:auto;align-self:center;justify-content:center;padding:0;background-color:#1C1C1D}}@media (min-width: 768px){.poster .shine{position:absolute;top:0;left:0;right:0;bottom:0;z-index:100}}.poster .layer-4{position:absolute;top:0px;left:-5px;right:-3px;bottom:-10px;background-size:100% auto;background-repeat:no-repeat;background-position:0 0;-webkit-transition:0.1s;transition:0.1s;background-image:url("https://ncoelho.github.io/jekyll-netlify-boilerplate//uploads//bluewallet.png")}.uk-card:hover{transition:all 0.2s ease}.people img{max-width:80px}.newsletter{padding:12px;border:1px solid #A5B7CA;position:relative;display:block;overflow:hidden;transition:all 0.4s ease}@media (max-width: 767px){.newsletter{margin-bottom:32px !important}}.newsletter input.email{height:50px;border:0;width:100%;font-size:16px;font-weight:500;color:#7E91AE}.newsletter input.email::placeholder{color:#7E91AE}.newsletter input.email:active,.newsletter input.email:focus{outline:none}.newsletter input.mc-button{height:50px;border:0;background:#0070FF;border-radius:6px;padding:0 32px;color:#ffffff;font-size:16px;display:inline-block;font-weight:600;position:absolute;right:12px;top:12px}@media (max-width: 767px){.newsletter input.mc-button{right:6px;padding:0 8px;font-size:13px}}.socialinks{font-size:19px;font-weight:600}.socialinks a{padding:12px 16px !important;color:#637082;display:inline-block;border-radius:6px;transition:all 0.3s ease}.socialinks a:hover{background:#F2F4F7;text-decoration:none;color:#637082}.imghere{width:100%;max-width:600px;height:50%;margin:72px auto 0 auto}.imghere .localtrader{max-width:440px;width:100%}.watch-demo img{max-width:580px;width:100%}.videoWrapper{position:relative;padding-bottom:56.25%;height:0}.features{background:#F1F4F6;border-radius:8px;display:block;box-shadow:0 3px 10px 0 rgba(0,0,0,0.1)}.features img{max-width:350px;width:100%}.features .special{max-width:490px;width:100%}.flex{display:flex}@media (max-width: 960px){.first-mobile{order:1}.second-mobile{order:2}}.videoWrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:16px}.explain img{max-width:160px}.reasons{background:#F2F4F7}.uk-badge{border-radius:500px;background:#0070FF;padding:13px 20px;display:inline-block;color:#ffffff !important;font-weight:bold}/*! system-font.css v2.0.2 | CC0-1.0 License | github.com/jonathantneal/system-font-css */@font-face{font-family:system-ui;font-style:normal;font-weight:300;src:local(".SFNSText-Light"),local(".HelveticaNeueDeskInterface-Light"),local(".LucidaGrandeUI"),local("Segoe UI Light"),local("Ubuntu Light"),local("Roboto-Light"),local("DroidSans"),local("Tahoma")}@font-face{font-family:system-ui;font-style:italic;font-weight:300;src:local(".SFNSText-LightItalic"),local(".HelveticaNeueDeskInterface-Italic"),local(".LucidaGrandeUI"),local("Segoe UI Light Italic"),local("Ubuntu Light Italic"),local("Roboto-LightItalic"),local("DroidSans"),local("Tahoma")}@font-face{font-family:system-ui;font-style:normal;font-weight:400;src:local(".SFNSText-Regular"),local(".HelveticaNeueDeskInterface-Regular"),local(".LucidaGrandeUI"),local("Segoe UI"),local("Ubuntu"),local("Roboto-Regular"),local("DroidSans"),local("Tahoma")}@font-face{font-family:system-ui;font-style:italic;font-weight:400;src:local(".SFNSText-Italic"),local(".HelveticaNeueDeskInterface-Italic"),local(".LucidaGrandeUI"),local("Segoe UI Italic"),local("Ubuntu Italic"),local("Roboto-Italic"),local("DroidSans"),local("Tahoma")}@font-face{font-family:system-ui;font-style:normal;font-weight:500;src:local(".SFNSText-Medium"),local(".HelveticaNeueDeskInterface-MediumP4"),local(".LucidaGrandeUI"),local("Segoe UI Semibold"),local("Ubuntu Medium"),local("Roboto-Medium"),local("DroidSans-Bold"),local("Tahoma Bold")}@font-face{font-family:system-ui;font-style:italic;font-weight:500;src:local(".SFNSText-MediumItalic"),local(".HelveticaNeueDeskInterface-MediumItalicP4"),local(".LucidaGrandeUI"),local("Segoe UI Semibold Italic"),local("Ubuntu Medium Italic"),local("Roboto-MediumItalic"),local("DroidSans-Bold"),local("Tahoma Bold")}@font-face{font-family:system-ui;font-style:normal;font-weight:700;src:local(".SFNSText-Bold"),local(".HelveticaNeueDeskInterface-Bold"),local(".LucidaGrandeUI"),local("Segoe UI Bold"),local("Ubuntu Bold"),local("Roboto-Bold"),local("DroidSans-Bold"),local("Tahoma Bold")}@font-face{font-family:system-ui;font-style:italic;font-weight:700;src:local(".SFNSText-BoldItalic"),local(".HelveticaNeueDeskInterface-BoldItalic"),local(".LucidaGrandeUI"),local("Segoe UI Bold Italic"),local("Ubuntu Bold Italic"),local("Roboto-BoldItalic"),local("DroidSans-Bold"),local("Tahoma Bold")}html{font-family:system-ui;font-size:16px;font-weight:normal;line-height:1.5;-webkit-text-size-adjust:100%;background:#fff;color:#323247;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}body{margin:0}a{-webkit-text-decoration-skip:objects}a:active,a:hover{outline:none}a,.uk-link{color:#323247;text-decoration:none;cursor:pointer}a:hover,.uk-link:hover{color:#323247;text-decoration:underline}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}:not(pre)>code,:not(pre)>kbd,:not(pre)>samp{font-family:Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;font-size:.875rem;color:#0069f0;white-space:nowrap;padding:2px 6px;background:#f8f8f8}em{color:#f0506e}ins{background:#ffd;color:#323247;text-decoration:none}mark{background:#ffd;color:#323247}q{font-style:italic}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}audio,canvas,iframe,img,svg,video{vertical-align:middle}audio,canvas,img,video{max-width:100%;height:auto;box-sizing:border-box}svg:not(:root){overflow:hidden}p,ul,ol,dl,pre,address,fieldset,figure{margin:0 0 20px 0}*+p,*+ul,*+ol,*+dl,*+pre,*+address,*+fieldset,*+figure{margin-top:20px}h1,.uk-h1,h2,.uk-h2,h3,.uk-h3,h4,.uk-h4,h5,.uk-h5,h6,.uk-h6{margin:0 0 20px 0;font-family:system-ui;font-weight:bold;color:#000;text-transform:none}*+h1,*+.uk-h1,*+h2,*+.uk-h2,*+h3,*+.uk-h3,*+h4,*+.uk-h4,*+h5,*+.uk-h5,*+h6,*+.uk-h6{margin-top:50px}h1,.uk-h1{font-size:2rem;line-height:1.2}h2,.uk-h2{font-size:1.6875rem;line-height:1.4}h3,.uk-h3{font-size:1.375rem;line-height:1.4}h4,.uk-h4{font-size:1.125rem;line-height:1.4}h5,.uk-h5{font-size:16px;line-height:1.4}h6,.uk-h6{font-size:.875rem;line-height:1.4}ul,ol{padding-left:30px}ul>li>ul,ul>li>ol,ol>li>ol,ol>li>ul{margin:0}dt{font-weight:bold}dd{margin-left:0}hr,.uk-hr{box-sizing:content-box;height:0;overflow:visible;text-align:inherit;margin:0 0 20px 0;border:0;border-top:1px solid #e5e5e5}*+hr,*+.uk-hr{margin-top:20px}address{font-style:normal}blockquote{margin:0 0 20px 0;font-size:1.125rem;line-height:1.5;font-style:italic;color:#000}*+blockquote{margin-top:20px}blockquote p:last-of-type{margin-bottom:0}blockquote footer{margin-top:10px;font-size:.875rem;line-height:1.5;color:#323247}blockquote footer::before{content:"— "}pre{font:.875rem / 1.65 Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;color:#0069f0;-moz-tab-size:4;tab-size:4;overflow:auto;padding:10px;border:1px solid #e5e5e5;border-radius:3px;background:#fff}pre code{font-family:Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif}::-moz-selection{background:#39f;color:#fff;text-shadow:none}::selection{background:#39f;color:#fff;text-shadow:none}details,main{display:block}summary{display:list-item}template{display:none}iframe{border:0}a,area,button,input,label,select,summary,textarea{touch-action:manipulation}.var-media-s::before{content:"640px"}.var-media-m::before{content:"960px"}.var-media-l::before{content:"1200px"}.var-media-xl::before{content:"1600px"}input[type="submit" i]{-webkit-appearance:none}.link-primary a:not(.lightbox):not(.uk-inline):not(.uk-link-muted):not(.uk-slidenav){transition:all 100ms cubic-bezier(0.4, 0, 0.2, 1);border-bottom:1px solid #0070FF;color:#0070FF}.link-primary a:not(.lightbox):not(.uk-inline):not(.uk-link-muted):not(.uk-slidenav):hover{border-bottom-color:#80b8ff;text-decoration:none}.link-secondary a:not(.lightbox):not(.uk-inline):not(.uk-link-muted):not(.uk-slidenav):hover{border-bottom:1px solid #323247;text-decoration:none}a.uk-link-muted,.uk-link-muted a{color:#6B7990}a.uk-link-muted:hover,.uk-link-muted a:hover{color:#323247}a.uk-link-text:not(:hover),.uk-link-text a:not(:hover){color:inherit}a.uk-link-text:hover,.uk-link-text a:hover{color:#6B7990}a.uk-link-heading:not(:hover),.uk-link-heading a:not(:hover){color:inherit}a.uk-link-heading:hover,.uk-link-heading a:hover{color:#0070FF;text-decoration:none}a.uk-link-reset,a.uk-link-reset:hover,.uk-link-reset a,.uk-link-reset a:hover{color:inherit !important;text-decoration:none !important}.uk-heading-primary{font-size:1.8rem;line-height:1.2}@media (min-width: 960px){.uk-heading-primary{font-size:3.8rem;line-height:1.1}}.uk-heading-hero{font-size:2.5rem;line-height:1.1}@media (min-width: 640px){.uk-heading-hero{font-size:2.5rem;line-height:1}}@media (min-width: 960px){.uk-heading-hero{font-size:5rem;line-height:1}}.uk-heading-divider{padding-bottom:10px;border-bottom:1px solid #e5e5e5}.uk-heading-bullet{position:relative}.uk-heading-bullet::before{content:"";display:inline-block;position:relative;top:calc(-0.1 * 1em);vertical-align:middle;height:.9em;margin-right:10px;border-left:5px solid #e5e5e5}.uk-heading-line{overflow:hidden}.uk-heading-line>*{display:inline-block;position:relative}.uk-heading-line>::before,.uk-heading-line>::after{content:"";position:absolute;top:calc(50% - (1px / 2));width:2000px;border-bottom:1px solid #e5e5e5}.uk-heading-line>::before{right:100%;margin-right:.6em}.uk-heading-line>::after{left:100%;margin-left:.6em}[class*='uk-divider']{border:none;margin-bottom:20px}*+[class*='uk-divider']{margin-top:20px}.uk-divider-icon{position:relative;height:20px;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22none%22%20stroke%3D%22%23e5e5e5%22%20stroke-width%3D%222%22%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%227%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");background-repeat:no-repeat;background-position:50% 50%}.uk-divider-icon::before,.uk-divider-icon::after{content:"";position:absolute;top:50%;max-width:calc(50% - (50px / 2));border-bottom:1px solid #e5e5e5}.uk-divider-icon::before{right:calc(50% + (50px / 2));width:100%}.uk-divider-icon::after{left:calc(50% + (50px / 2));width:100%}.uk-divider-small{line-height:0}.uk-divider-small::after{content:"";display:inline-block;width:100px;max-width:100%;border-top:1px solid #e5e5e5;vertical-align:top}.uk-list{padding:0;list-style:none}.uk-list>li::before,.uk-list>li::after{content:"";display:table}.uk-list>li::after{clear:both}.uk-list>li>:last-child{margin-bottom:0}.uk-list ul{margin:0;padding-left:30px;list-style:none}.uk-list>li:nth-child(n+2),.uk-list>li>ul{margin-top:10px}.uk-list-divider>li:nth-child(n+2){margin-top:10px;padding-top:10px;border-top:1px solid #e5e5e5}.uk-list-striped>li{padding:10px 10px}.uk-list-striped>li:nth-of-type(odd){border-top:1px solid #e5e5e5;border-bottom:1px solid #e5e5e5}.uk-list-striped>li:nth-of-type(odd){background:#f8f8f8}.uk-list-striped>li:nth-child(n+2){margin-top:0}.uk-list-bullet>li{position:relative;padding-left:calc(1.5em + 10px)}.uk-list-bullet>li::before{content:"";position:absolute;top:0;left:0;width:1.5em;height:1.5em;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%226%22%20height%3D%226%22%20viewBox%3D%220%200%206%206%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23323247%22%20cx%3D%223%22%20cy%3D%223%22%20r%3D%223%22%20%2F%3E%0A%3C%2Fsvg%3E");background-repeat:no-repeat;background-position:50% 50%;float:left}.uk-list-large>li:nth-child(n+2),.uk-list-large>li>ul{margin-top:20px}.uk-list-large.uk-list-divider>li:nth-child(n+2){margin-top:20px;padding-top:20px}.uk-list-large.uk-list-striped>li{padding:20px 10px}.uk-list-large.uk-list-striped>li:nth-of-type(odd){border-top:1px solid #e5e5e5;border-bottom:1px solid #e5e5e5}.uk-list-large.uk-list-striped>li:nth-child(n+2){margin-top:0}.uk-list{margin:0}.uk-table{border-collapse:collapse;border-spacing:0;width:100%;margin-bottom:20px}*+.uk-table{margin-top:20px}.uk-table th{padding:16px 12px;text-align:left;vertical-align:bottom;font-size:.875rem;font-weight:normal;color:#6B7990;text-transform:uppercase}.uk-table td{padding:16px 12px;vertical-align:top}.uk-table td>:last-child{margin-bottom:0}.uk-table tfoot{font-size:.875rem}.uk-table caption{font-size:.875rem;text-align:left;color:#6B7990}.uk-table>tr.uk-active,.uk-table tbody tr.uk-active{background:#ffd}.uk-table-middle,.uk-table-middle td{vertical-align:middle !important}.uk-table-divider>tr:not(:first-child),.uk-table-divider>:not(:first-child)>tr,.uk-table-divider>:first-child>tr:not(:first-child){border-top:1px solid #ebecee}.uk-table-striped>tr:nth-of-type(odd),.uk-table-striped tbody tr:nth-of-type(odd){background:#f8f8f8;border-top:1px solid #e5e5e5;border-bottom:1px solid #e5e5e5}.uk-table-hover>tr:hover,.uk-table-hover tbody tr:hover{background:#ffd}.uk-table-small th,.uk-table-small td{padding:10px 12px}.uk-table-large th,.uk-table-large td{padding:22px 12px}.uk-table-justify th:first-child,.uk-table-justify td:first-child{padding-left:0}.uk-table-justify th:last-child,.uk-table-justify td:last-child{padding-right:0}.uk-table-shrink{width:1px}.uk-table-expand{min-width:150px}.uk-table-link{padding:0 !important}.uk-table-link>a{display:block;padding:16px 12px}.uk-table-small .uk-table-link>a{padding:10px 12px}@media (max-width: 959px){.uk-table-responsive,.uk-table-responsive tbody,.uk-table-responsive th,.uk-table-responsive td,.uk-table-responsive tr{display:block}.uk-table-responsive thead{display:none}.uk-table-responsive th,.uk-table-responsive td{width:auto !important;max-width:none !important;min-width:0 !important;overflow:visible !important;white-space:normal !important}.uk-table-responsive th:not(:first-child):not(.uk-table-link),.uk-table-responsive td:not(:first-child):not(.uk-table-link),.uk-table-responsive .uk-table-link:not(:first-child)>a{padding-top:5px !important}.uk-table-responsive th:not(:last-child):not(.uk-table-link),.uk-table-responsive td:not(:last-child):not(.uk-table-link),.uk-table-responsive .uk-table-link:not(:last-child)>a{padding-bottom:5px !important}.uk-table-justify.uk-table-responsive th,.uk-table-justify.uk-table-responsive td{padding-left:0;padding-right:0}}table{font-size:.875rem;border-collapse:collapse;border-spacing:0;width:100%;margin-bottom:40px}table>tr:not(:first-child),table>:not(:first-child)>tr,table>:first-child>tr:not(:first-child){border-top:1px solid #ebecee}table tbody tr{transition:background-color .1s linear}table th,table td{padding:10px 12px}table td{vertical-align:top}table th{text-align:left;vertical-align:bottom}table th:first-child,table td:first-child{padding-left:0}table th:last-child,table td:last-child{padding-right:0}.uk-icon{margin:0;border:none;border-radius:0;overflow:visible;font:inherit;color:inherit;text-transform:none;padding:0;background-color:transparent;display:inline-block;fill:currentcolor;line-height:0}button.uk-icon:not(:disabled){cursor:pointer}.uk-icon::-moz-focus-inner{border:0;padding:0}.uk-icon [fill*='#']:not(.uk-preserve),.uk-icon [FILL*='#']:not(.uk-preserve){fill:currentcolor}.uk-icon [stroke*='#']:not(.uk-preserve),.uk-icon [STROKE*='#']:not(.uk-preserve){stroke:currentcolor}.uk-icon>*{transform:translate(0, 0)}.uk-icon-image{width:20px;height:20px;background-position:50% 50%;background-repeat:no-repeat;background-size:contain;vertical-align:middle}.uk-icon-link{color:#6B7990}.uk-icon-link:hover,.uk-icon-link:focus{color:#323247;outline:none}.uk-icon-link:active,.uk-active>.uk-icon-link{color:#272738}.uk-icon-button{box-sizing:border-box;width:36px;height:36px;border-radius:500px;background:#f8f8f8;color:#6B7990;vertical-align:middle;display:inline-flex;justify-content:center;align-items:center;transition:0.1s ease-in-out;transition-property:color,background-color}.uk-icon-button:hover,.uk-icon-button:focus{background-color:#ebebeb;color:#323247;outline:none}.uk-icon-button:active,.uk-active>.uk-icon-button{background-color:#dfdfdf;color:#323247}.uk-input,.uk-select,.uk-textarea,.uk-radio,.uk-checkbox{box-sizing:border-box;margin:0;border-radius:0;font:inherit}.uk-input{overflow:visible}.uk-select{text-transform:none}.uk-select optgroup{font:inherit;font-weight:bold}.uk-textarea{overflow:auto}.uk-input[type="search"]::-webkit-search-cancel-button,.uk-input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}.uk-input[type="number"]::-webkit-inner-spin-button,.uk-input[type="number"]::-webkit-outer-spin-button{height:auto}.uk-input::-moz-placeholder,.uk-textarea::-moz-placeholder{opacity:1}.uk-radio:not(:disabled),.uk-checkbox:not(:disabled){cursor:pointer}.uk-fieldset{border:none;margin:0;padding:0}.uk-input,.uk-textarea{-webkit-appearance:none}.uk-input,.uk-select,.uk-textarea{max-width:100%;width:100%;border:0 none;padding:0 10px;background:#fff;color:#323247;border:solid 1px #e5e5e5}.uk-input,.uk-select:not([multiple]):not([size]){height:40px;vertical-align:middle;display:inline-block}.uk-input:not(input),.uk-select:not(select){line-height:38px}.uk-select[multiple],.uk-select[size],.uk-textarea{padding-top:4px;padding-bottom:4px;vertical-align:top}.uk-input:focus,.uk-select:focus,.uk-textarea:focus{outline:none;background-color:#fff;color:#323247;border-color:#0070FF}.uk-input:disabled,.uk-select:disabled,.uk-textarea:disabled{background-color:#f8f8f8;color:#6B7990;border-color:#e5e5e5}.uk-input:-ms-input-placeholder{color:#6B7990 !important}.uk-input::placeholder{color:#6B7990}.uk-textarea:-ms-input-placeholder{color:#6B7990 !important}.uk-textarea::placeholder{color:#6B7990}.uk-form-small{font-size:.875rem}.uk-form-small:not(textarea):not([multiple]):not([size]){height:30px;padding-left:8px;padding-right:8px}.uk-form-small:not(select):not(input):not(textarea){line-height:28px}.uk-form-large{font-size:1.125rem}.uk-form-large:not(textarea):not([multiple]):not([size]){height:55px;padding-left:12px;padding-right:12px}.uk-form-large:not(select):not(input):not(textarea){line-height:53px}.uk-form-danger,.uk-form-danger:focus{color:#f0506e;border-color:#f0506e}.uk-form-success,.uk-form-success:focus{color:#403e56;border-color:#403e56}.uk-form-blank{background:none;border-color:transparent}.uk-form-blank:focus{border-color:#e5e5e5;border-style:dashed}input.uk-form-width-xsmall{width:50px}select.uk-form-width-xsmall{width:75px}.uk-form-width-small{width:130px}.uk-form-width-medium{width:200px}.uk-form-width-large{width:500px}.uk-select:not([multiple]):not([size]){-webkit-appearance:none;-moz-appearance:none;padding-right:20px;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23323247%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23323247%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");background-repeat:no-repeat;background-position:100% 50%}.uk-select:not([multiple]):not([size])::-ms-expand{display:none}.uk-select:not([multiple]):not([size]):disabled{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%236B7990%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%236B7990%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A")}.uk-radio,.uk-checkbox{display:inline-block;height:16px;width:16px;overflow:hidden;margin-top:-4px;vertical-align:middle;-webkit-appearance:none;-moz-appearance:none;background-color:transparent;background-repeat:no-repeat;background-position:50% 50%;border:1px solid #ccc;transition:0.2s ease-in-out;transition-property:background-color, border}.uk-radio{border-radius:50%}.uk-radio:focus,.uk-checkbox:focus{outline:none;border-color:#0070FF}.uk-radio:checked,.uk-checkbox:checked,.uk-checkbox:indeterminate{background-color:#0070FF;border-color:transparent}.uk-radio:checked:focus,.uk-checkbox:checked:focus,.uk-checkbox:indeterminate:focus{background-color:#005acc}.uk-radio:checked{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23fff%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-checkbox:checked{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23fff%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A")}.uk-checkbox:indeterminate{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23fff%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-radio:disabled,.uk-checkbox:disabled{background-color:#f8f8f8;border-color:#e5e5e5}.uk-radio:disabled:checked{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%236B7990%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-checkbox:disabled:checked{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%236B7990%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A")}.uk-checkbox:disabled:indeterminate{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%236B7990%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-legend{width:100%;color:inherit;padding:0;font-size:1.375rem;line-height:1.4}.uk-form-custom{display:inline-block;position:relative;max-width:100%;vertical-align:middle}.uk-form-custom select,.uk-form-custom input[type="file"]{position:absolute;top:0;z-index:1;width:100%;height:100%;left:0;-webkit-appearance:none;opacity:0;cursor:pointer}.uk-form-custom input[type="file"]{font-size:500px;overflow:hidden}.uk-form-label{color:#000;font-size:.875rem}.uk-form-stacked .uk-form-label{display:block;margin-bottom:5px}@media (max-width: 959px){.uk-form-horizontal .uk-form-label{display:block;margin-bottom:5px}}@media (min-width: 960px){.uk-form-horizontal .uk-form-label{width:200px;margin-top:7px;float:left}.uk-form-horizontal .uk-form-controls{margin-left:215px}.uk-form-horizontal .uk-form-controls-text{padding-top:7px}}.uk-form-icon{position:absolute;top:0;bottom:0;left:0;width:40px;display:inline-flex;justify-content:center;align-items:center;color:#6B7990}.uk-form-icon:hover{color:#323247}.uk-form-icon:not(a):not(button):not(input){pointer-events:none}.uk-form-icon:not(.uk-form-icon-flip)+.uk-input{padding-left:40px !important}.uk-form-icon-flip{right:0;left:auto}.uk-form-icon-flip+.uk-input{padding-right:40px !important}.uk-button{margin:0;border:none;border-radius:0;overflow:visible;font:inherit;color:inherit;text-transform:none;display:inline-block;box-sizing:border-box;padding:0 30px;vertical-align:middle;font-size:.875rem;line-height:38px;text-align:center;text-decoration:none;border-radius:30px}.uk-button:not(:disabled){cursor:pointer}.uk-button::-moz-focus-inner{border:0;padding:0}.uk-button:hover{text-decoration:none}.uk-button:focus{outline:none}.uk-button-default{background-color:transparent;color:#1D282E;border:1px solid #1D282E}.uk-button-default:hover,.uk-button-default:focus{background-color:#1D282E;color:#fff;border-color:#1D282E}.uk-button-default:active,.uk-button-default.uk-active{background-color:#1D282E;color:#fff;border-color:#1D282E}.uk-button-primary{background-color:#0070FF;color:#fff;border:1px solid transparent}.uk-button-primary:hover,.uk-button-primary:focus{background-color:#0065e6;color:#fff}.uk-button-primary:active,.uk-button-primary.uk-active{background-color:#005acc;color:#fff}.uk-button-secondary{background-color:#1D282E;color:#fff;border:1px solid transparent}.uk-button-secondary:hover,.uk-button-secondary:focus{background-color:#131a1e;color:#fff}.uk-button-secondary:active,.uk-button-secondary.uk-active{background-color:#090d0f;color:#fff}.uk-button-danger{background-color:#f0506e;color:#fff;border:1px solid transparent}.uk-button-danger:hover,.uk-button-danger:focus{background-color:#ee395b;color:#fff}.uk-button-danger:active,.uk-button-danger.uk-active{background-color:#ec2147;color:#fff}.uk-button-default:disabled,.uk-button-primary:disabled,.uk-button-secondary:disabled,.uk-button-danger:disabled{background-color:transparent;color:#6B7990;border-color:#e5e5e5}.uk-button-small{padding:0 15px;line-height:28px;font-size:.875rem}.uk-button-large{padding:0 40px;line-height:53px;font-size:.875rem}.uk-button-text{padding:0;line-height:1.5;background:none;color:#000;position:relative}.uk-button-text::before{content:"";position:absolute;bottom:0;left:0;right:100%;border-bottom:1px solid #000;transition:right 0.3s ease-out}.uk-button-text:hover,.uk-button-text:focus{color:#000}.uk-button-text:hover::before,.uk-button-text:focus::before{right:0}.uk-button-text:disabled{color:#6B7990}.uk-button-text:disabled::before{display:none}.uk-button-link{padding:0;line-height:1.5;background:none;color:#1e87f0}.uk-button-link:hover,.uk-button-link:focus{color:#0f6ecd;text-decoration:underline}.uk-button-link:disabled{color:#6B7990;text-decoration:none}.uk-button-group{display:inline-flex;vertical-align:middle;position:relative}.uk-button-warning{background-color:#fbc418;color:#fff;border:1px solid transparent}.uk-button-warning:hover,.uk-button-warning:focus{background-color:#ebb304;color:#fff}.uk-button-warning:active,.uk-button-warning.uk-active{background-color:#ebb304;color:#fff}.uk-button-success{background-color:#403e56;color:#fff;border:1px solid transparent}.uk-button-success:hover,.uk-button-success:focus{background-color:#353347;color:#fff}.uk-button-success:active,.uk-button-success.uk-active{background-color:#353347;color:#fff}.uk-button-primary-outline{background-color:transparent;color:#0070FF;border:1px solid #0070FF}.uk-button-primary-outline:hover,.uk-button-primary-outline:focus{background-color:#0070FF;color:#fff;border:1px solid #0070FF}.uk-button-primary-outline:active,.uk-button-primary-outline.uk-active{background-color:#0070FF;color:#fff;border:1px solid #0070FF}.uk-button-danger-outline{background-color:transparent;color:#f0506e;border:1px solid #f0506e}.uk-button-danger-outline:hover,.uk-button-danger-outline:focus{background-color:#f0506e;color:#fff;border:1px solid #f0506e}.uk-button-danger-outline:active,.uk-button-danger-outline.uk-active{background-color:#f0506e;color:#fff;border:1px solid #f0506e}.uk-button-success-outline{background-color:transparent;color:#403e56;border:1px solid #403e56}.uk-button-success-outline:hover,.uk-button-success-outline:focus{background-color:#403e56;color:#fff;border:1px solid #403e56}.uk-button-success-outline:active,.uk-button-success-outline.uk-active{background-color:#403e56;color:#fff;border:1px solid #403e56}.uk-button-warning-outline{background-color:transparent;color:#fbc418;border:1px solid #fbc418}.uk-button-warning-outline:hover,.uk-button-warning-outline:focus{background-color:#fbc418;color:#fff;border:1px solid #fbc418}.uk-button-warning-outline:active,.uk-button-warning-outline.uk-active{background-color:#fbc418;color:#fff;border:1px solid #fbc418}.uk-section{box-sizing:border-box;padding-top:40px;padding-bottom:40px}@media (min-width: 960px){.uk-section{padding-top:60px;padding-bottom:60px}}.uk-section::before,.uk-section::after{content:"";display:table}.uk-section::after{clear:both}.uk-section>:last-child{margin-bottom:0}.uk-section-xsmall{padding-top:20px;padding-bottom:20px}.uk-section-small{padding-top:40px;padding-bottom:40px}.uk-section-large{padding-top:70px;padding-bottom:70px}@media (min-width: 960px){.uk-section-large{padding-top:140px;padding-bottom:140px}}.uk-section-xlarge{padding-top:140px;padding-bottom:140px}@media (min-width: 960px){.uk-section-xlarge{padding-top:210px;padding-bottom:210px}}.uk-section-default{background:#fff}.uk-section-muted{background:#f8f8f8}.uk-section-primary{background:#0070FF}.uk-section-secondary{background:#1D282E}.uk-container{box-sizing:content-box;max-width:1124px;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px}@media (min-width: 640px){.uk-container{padding-left:30px;padding-right:30px}}@media (min-width: 960px){.uk-container{padding-left:40px;padding-right:40px}}.uk-container::before,.uk-container::after{content:"";display:table}.uk-container::after{clear:both}.uk-container>:last-child{margin-bottom:0}.uk-container .uk-container{padding-left:0;padding-right:0}.uk-container-small{max-width:900px}.uk-container-large{max-width:1600px}.uk-container-expand{max-width:none}.uk-grid{display:flex;flex-wrap:wrap;margin:0;padding:0;list-style:none}.uk-grid>*{margin:0}.uk-grid>*>:last-child{margin-bottom:0}.uk-grid{margin-left:-30px}.uk-grid>*{padding-left:30px}.uk-grid+.uk-grid,.uk-grid>.uk-grid-margin,*+.uk-grid-margin{margin-top:30px}@media (min-width: 1200px){.uk-grid{margin-left:-40px}.uk-grid>*{padding-left:40px}.uk-grid+.uk-grid,.uk-grid>.uk-grid-margin,*+.uk-grid-margin{margin-top:40px}}.uk-grid-small{margin-left:-15px}.uk-grid-small>*{padding-left:15px}.uk-grid+.uk-grid-small,.uk-grid-small>.uk-grid-margin,*+.uk-grid-margin-small{margin-top:15px}.uk-grid-medium{margin-left:-30px}.uk-grid-medium>*{padding-left:30px}.uk-grid+.uk-grid-medium,.uk-grid-medium>.uk-grid-margin,*+.uk-grid-margin-medium{margin-top:30px}.uk-grid-large{margin-left:-40px}.uk-grid-large>*{padding-left:40px}.uk-grid+.uk-grid-large,.uk-grid-large>.uk-grid-margin,*+.uk-grid-margin-large{margin-top:40px}@media (min-width: 1200px){.uk-grid-large{margin-left:-70px}.uk-grid-large>*{padding-left:70px}.uk-grid+.uk-grid-large,.uk-grid-large>.uk-grid-margin,*+.uk-grid-margin-large{margin-top:70px}}.uk-grid-collapse{margin-left:0}.uk-grid-collapse>*{padding-left:0}.uk-grid+.uk-grid-collapse,.uk-grid-collapse>.uk-grid-margin{margin-top:0}.uk-grid-divider>*{position:relative}.uk-grid-divider>:not(.uk-first-column)::before{content:"";position:absolute;top:0;bottom:0;border-left:1px solid #e5e5e5}.uk-grid-divider.uk-grid-stack>.uk-grid-margin::before{content:"";position:absolute;left:0;right:0;border-top:1px solid #e5e5e5}.uk-grid-divider{margin-left:-60px}.uk-grid-divider>*{padding-left:60px}.uk-grid-divider>:not(.uk-first-column)::before{left:30px}.uk-grid-divider.uk-grid-stack>.uk-grid-margin{margin-top:60px}.uk-grid-divider.uk-grid-stack>.uk-grid-margin::before{top:-30px;left:60px}@media (min-width: 1200px){.uk-grid-divider{margin-left:-80px}.uk-grid-divider>*{padding-left:80px}.uk-grid-divider>:not(.uk-first-column)::before{left:40px}.uk-grid-divider.uk-grid-stack>.uk-grid-margin{margin-top:80px}.uk-grid-divider.uk-grid-stack>.uk-grid-margin::before{top:-40px;left:80px}}.uk-grid-divider.uk-grid-small{margin-left:-30px}.uk-grid-divider.uk-grid-small>*{padding-left:30px}.uk-grid-divider.uk-grid-small>:not(.uk-first-column)::before{left:15px}.uk-grid-divider.uk-grid-small.uk-grid-stack>.uk-grid-margin{margin-top:30px}.uk-grid-divider.uk-grid-small.uk-grid-stack>.uk-grid-margin::before{top:-15px;left:30px}.uk-grid-divider.uk-grid-medium{margin-left:-60px}.uk-grid-divider.uk-grid-medium>*{padding-left:60px}.uk-grid-divider.uk-grid-medium>:not(.uk-first-column)::before{left:30px}.uk-grid-divider.uk-grid-medium.uk-grid-stack>.uk-grid-margin{margin-top:60px}.uk-grid-divider.uk-grid-medium.uk-grid-stack>.uk-grid-margin::before{top:-30px;left:60px}.uk-grid-divider.uk-grid-large{margin-left:-80px}.uk-grid-divider.uk-grid-large>*{padding-left:80px}.uk-grid-divider.uk-grid-large>:not(.uk-first-column)::before{left:40px}.uk-grid-divider.uk-grid-large.uk-grid-stack>.uk-grid-margin{margin-top:80px}.uk-grid-divider.uk-grid-large.uk-grid-stack>.uk-grid-margin::before{top:-40px;left:80px}@media (min-width: 1200px){.uk-grid-divider.uk-grid-large{margin-left:-140px}.uk-grid-divider.uk-grid-large>*{padding-left:140px}.uk-grid-divider.uk-grid-large>:not(.uk-first-column)::before{left:70px}.uk-grid-divider.uk-grid-large.uk-grid-stack>.uk-grid-margin{margin-top:140px}.uk-grid-divider.uk-grid-large.uk-grid-stack>.uk-grid-margin::before{top:-70px;left:140px}}.uk-grid-match>*,.uk-grid-item-match{display:flex;flex-wrap:wrap}.uk-grid-match>*>:not([class*='uk-width']),.uk-grid-item-match>:not([class*='uk-width']){box-sizing:border-box;width:100%;flex:auto}.uk-tile{position:relative;box-sizing:border-box;padding-left:15px;padding-right:15px;padding-top:40px;padding-bottom:40px}@media (min-width: 640px){.uk-tile{padding-left:30px;padding-right:30px}}@media (min-width: 960px){.uk-tile{padding-left:40px;padding-right:40px;padding-top:70px;padding-bottom:70px}}.uk-tile::before,.uk-tile::after{content:"";display:table}.uk-tile::after{clear:both}.uk-tile>:last-child{margin-bottom:0}.uk-tile-xsmall{padding-top:20px;padding-bottom:20px}.uk-tile-small{padding-top:40px;padding-bottom:40px}.uk-tile-large{padding-top:70px;padding-bottom:70px}@media (min-width: 960px){.uk-tile-large{padding-top:140px;padding-bottom:140px}}.uk-tile-xlarge{padding-top:140px;padding-bottom:140px}@media (min-width: 960px){.uk-tile-xlarge{padding-top:210px;padding-bottom:210px}}.uk-tile-default{background:#fff}.uk-tile-muted{background:#f8f8f8}.uk-tile-primary{background:#0070FF}.uk-tile-secondary{background:#1D282E}.uk-card{position:relative;box-sizing:border-box;transition:box-shadow 0.1s ease-in-out}.uk-card-body{padding:30px 30px}.uk-card-body>p{font-size:.875rem}.uk-card-body>span{color:#0070FF}.uk-card-header{padding:15px 30px}.uk-card-footer{padding:15px 30px}@media (min-width: 1200px){.uk-card-body{padding:32px 40px}.uk-card-header{padding:20px 40px}.uk-card-footer{padding:20px 40px}}.uk-card-body::before,.uk-card-body::after,.uk-card-header::before,.uk-card-header::after,.uk-card-footer::before,.uk-card-footer::after{content:"";display:table}.uk-card-body::after,.uk-card-header::after,.uk-card-footer::after{clear:both}.uk-card-body>:last-child,.uk-card-header>:last-child,.uk-card-footer>:last-child{margin-bottom:0}.uk-card-title{font-size:1.375rem;line-height:1.4}.uk-card-badge{position:absolute;top:30px;right:30px;z-index:1}.uk-card-badge:first-child+*{margin-top:0}.uk-card-hover:not(.uk-card-default):not(.uk-card-primary):not(.uk-card-secondary):hover{background:#fff;box-shadow:0 10px 35px rgba(0,0,0,0.12)}.uk-card-default{background:#fff;color:#6B7990;box-shadow:0 5px 15px rgba(0,0,0,0.08)}.uk-card-default .uk-card-title{color:#323247}.uk-card-default.uk-card-hover:hover{background-color:#fff;box-shadow:0 10px 35px rgba(0,0,0,0.12)}.uk-card-default .uk-card-header{border-bottom:1px solid #e5e5e5}.uk-card-default .uk-card-footer{border-top:1px solid #e5e5e5}.uk-card-primary{background:#0070FF;color:#fff;box-shadow:0 5px 15px rgba(0,0,0,0.08)}.uk-card-primary .uk-card-title{color:#fff}.uk-card-primary.uk-card-hover:hover{background-color:#0070FF;box-shadow:0 10px 35px rgba(0,0,0,0.12)}.uk-card-secondary{background:#1D282E;color:#fff;box-shadow:0 5px 15px rgba(0,0,0,0.08)}.uk-card-secondary .uk-card-title{color:#fff}.uk-card-secondary.uk-card-hover:hover{background-color:#1D282E;box-shadow:0 10px 35px rgba(0,0,0,0.12)}.uk-card-small.uk-card-body,.uk-card-small .uk-card-body{padding:25px 25px}.uk-card-small .uk-card-header{padding:13px 20px}.uk-card-small .uk-card-footer{padding:13px 20px}@media (min-width: 1200px){.uk-card-large.uk-card-body,.uk-card-large .uk-card-body{padding:70px 70px}.uk-card-large .uk-card-header{padding:35px 70px}.uk-card-large .uk-card-footer{padding:35px 70px}}.uk-position-cover{z-index:1}.card-category h3:nth-child(2n){margin-top:0 !important}.card-post .uk-card-header{padding-top:40px;padding-bottom:0;border-bottom:none}.card-post .uk-card-header .avatar{width:40px}.card-post .uk-card-body{padding-top:20px;padding-bottom:20px}.card-post .uk-card-footer{padding-bottom:36px;padding-top:0;border-top:none}.uk-close{color:#6B7990;transition:0.1s ease-in-out;transition-property:color, opacity}.uk-close:hover,.uk-close:focus{color:#323247;outline:none}.uk-totop{padding:5px;color:#6B7990;transition:color 0.1s ease-in-out}.uk-totop:hover,.uk-totop:focus{color:#323247;outline:none}.uk-totop:active{color:#000}.uk-alert{position:relative;margin-bottom:20px;padding:15px 29px 15px 15px;background:#f8f8f8;color:#323247;border-radius:5px}*+.uk-alert{margin-top:20px}.uk-alert>:last-child{margin-bottom:0}.uk-alert-close{position:absolute;top:20px;right:15px;color:inherit;opacity:.4}.uk-alert-close:first-child+*{margin-top:0}.uk-alert-close:hover,.uk-alert-close:focus{color:inherit;opacity:.8}.uk-alert-primary{background:#cce2ff;color:#0070FF}.uk-alert-success{background:#d0cfd5;color:#403e56}.uk-alert-warning{background:#fef2cb;color:#fbc418}.uk-alert-danger{background:#fef4f6;color:#f0506e}.uk-alert h1,.uk-alert h2,.uk-alert h3,.uk-alert h4,.uk-alert h5,.uk-alert h6{color:inherit}.uk-alert a:not([class]){color:inherit !important;border-bottom-color:inherit !important}.uk-alert a:not([class]):hover{color:inherit !important;border-bottom-color:inherit !important}.uk-label{display:inline-block;padding:2px 10px;background:#0070FF;line-height:1.5;font-size:.8125rem;color:#fff;vertical-align:middle;white-space:nowrap;font-weight:500;border-radius:20px}.uk-label-success{background-color:#403e56;color:#fff}.uk-label-warning{background-color:#fbc418;color:#fff}.uk-label-danger{background-color:#f0506e;color:#fff}.uk-overlay{padding:30px 30px}.uk-overlay>:last-child{margin-bottom:0}.uk-overlay-default{background:rgba(255,255,255,0.8)}.uk-overlay-primary{background:rgba(29,40,46,0.8)}.uk-article::before,.uk-article::after{content:"";display:table}.uk-article::after{clear:both}.uk-article>:last-child{margin-bottom:0}.uk-article+.uk-article{margin-top:70px}.uk-article-title{font-size:2.125rem;line-height:1.4;margin-bottom:20px}.uk-article-meta{font-size:.8125rem;line-height:1.4;color:#6B7990}.uk-article-meta a{color:#6B7990}.uk-article-meta a:hover{color:#0070FF}.uk-article-meta .avatar{margin-right:15px;max-width:36px}.article-content{line-height:1.8}.article-content .side-note{border:0 solid #d2d6dc;padding:.75rem;background-color:#f9fafb;border-radius:.375rem;border-width:1px;margin-bottom:.75rem;font-size:.875rem;line-height:1.25rem;box-shadow:0 1px 2px 0 rgba(0,0,0,0.05)}.article-content figure img,.article-content .uk-slideshow-items{border:solid 1px #EEF1F4;box-shadow:0 5px 15px rgba(0,0,0,0.08);border-radius:6px}.article-content figure.phone-screenshot-image{margin:40px auto;max-width:350px}.article-content figure img+div .uk-overlay-icon{color:rgba(255,255,255,0)}.article-content figure img:hover+div .uk-overlay-icon{color:#fff}.article-content figure figcaption{margin-left:0}.article-content figure figcaption span{padding-right:20px;margin-bottom:-43px;margin-top:20px;border-right:solid 2px #6B7990;font-style:italic;font-size:0.8rem;line-height:1.8}.article-content blockquote{border-left:solid 2px #6B7990;padding-left:20px;line-height:1.7}.article-content figure,.article-content .uk-slideshow{margin-top:40px;margin-bottom:40px}.article-content figure figcaption{margin-bottom:72px}.article-content ul:not(#markdown-toc):not(#markdown-toc ul):not(.uk-slideshow-items),.article-content .uk-alert{margin-bottom:40px}.article-content table{margin-top:28px;margin-bottom:40px}.article-content pre,.article-content blockquote{margin-top:28px;margin-bottom:40px}.avatar{border-radius:50%}.paginate-post .uk-text-small{line-height:1.75}.uk-search{display:inline-block;position:relative;max-width:100%;margin:0}.uk-search-input::-webkit-search-cancel-button,.uk-search-input::-webkit-search-decoration{-webkit-appearance:none}.uk-search-input::-moz-placeholder{opacity:1}.uk-search-input{box-sizing:border-box;margin:0;border-radius:0;font:inherit;overflow:visible;-webkit-appearance:none;vertical-align:middle;width:100%;border:none;color:#323247}.uk-search-input:focus{outline:none}.uk-search-input:-ms-input-placeholder{color:#6e747c !important}.uk-search-input::placeholder{color:#6e747c}.uk-search-icon:focus{outline:none}.uk-search .uk-search-icon{position:absolute;top:0;bottom:0;left:0;display:inline-flex;justify-content:center;align-items:center;color:#6e747c}.uk-search .uk-search-icon:hover{color:#6e747c}.uk-search .uk-search-icon:not(a):not(button):not(input){pointer-events:none}.uk-search .uk-search-icon-flip{right:0;left:auto}.uk-search-default{width:180px}.uk-search-default .uk-search-input{height:40px;padding-left:6px;padding-right:6px;background:#fff;border:1px solid #EEF1F4}.uk-search-default .uk-search-input:focus{background-color:#fff}.uk-search-default .uk-search-icon{width:40px}.uk-search-default .uk-search-icon:not(.uk-search-icon-flip)+.uk-search-input{padding-left:40px}.uk-search-default .uk-search-icon-flip+.uk-search-input{padding-right:40px}.uk-search-navbar{width:400px}.uk-search-navbar .uk-search-input{height:40px;background:transparent;font-size:1.375rem}.uk-search-navbar .uk-search-icon{width:40px}.uk-search-navbar .uk-search-icon:not(.uk-search-icon-flip)+.uk-search-input{padding-left:40px}.uk-search-navbar .uk-search-icon-flip+.uk-search-input{padding-right:40px}.uk-search-large{width:500px}.uk-search-large .uk-search-input{height:80px;background:transparent;font-size:2rem}.uk-search-large .uk-search-icon{width:80px}.uk-search-large .uk-search-icon:not(.uk-search-icon-flip)+.uk-search-input{padding-left:80px}.uk-search-large .uk-search-icon-flip+.uk-search-input{padding-right:80px}.uk-search-toggle{color:#6B7990}.uk-search-toggle:hover,.uk-search-toggle:focus{color:#323247}.uk-nav,.uk-nav ul{margin:0;padding:0;list-style:none}.uk-nav li>a{display:block;text-decoration:none}.uk-nav li>a:focus{outline:none}.uk-nav>li>a{padding:5px 0}ul.uk-nav-sub{padding:5px 0 5px 15px}.uk-nav-sub ul{padding-left:15px}.uk-nav-sub a{padding:2px 0}.uk-nav-parent-icon>.uk-parent>a::after{content:"";width:1.5em;height:1.5em;float:right;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22%23323247%22%20stroke-width%3D%221.1%22%20points%3D%2210%201%204%207%2010%2013%22%20%2F%3E%0A%3C%2Fsvg%3E");background-repeat:no-repeat;background-position:50% 50%}.uk-nav-parent-icon>.uk-parent.uk-open>a::after{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22%23323247%22%20stroke-width%3D%221.1%22%20points%3D%221%204%207%2010%2013%204%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-nav-header{padding:5px 0;text-transform:uppercase;font-size:.875rem}.uk-nav-header:not(:first-child){margin-top:20px}.uk-nav-divider{margin:5px 0}.uk-nav-default{font-size:.875rem}.uk-nav-default>li>a{color:#6B7990}.uk-nav-default>li>a:hover,.uk-nav-default>li>a:focus{color:#323247}.uk-nav-default>li.uk-active>a{color:#000}.uk-nav-default .uk-nav-header{color:#000}.uk-nav-default .uk-nav-divider{border-top:1px solid #e5e5e5}.uk-nav-default .uk-nav-sub a{color:#6B7990}.uk-nav-default .uk-nav-sub a:hover,.uk-nav-default .uk-nav-sub a:focus{color:#323247}.uk-nav-primary>li>a{font-size:1.375rem;line-height:1.5;color:#6B7990}.uk-nav-primary>li>a:hover,.uk-nav-primary>li>a:focus{color:#323247}.uk-nav-primary>li.uk-active>a{color:#000}.uk-nav-primary .uk-nav-header{color:#000}.uk-nav-primary .uk-nav-divider{border-top:1px solid #e5e5e5}.uk-nav-primary .uk-nav-sub a{color:#6B7990}.uk-nav-primary .uk-nav-sub a:hover,.uk-nav-primary .uk-nav-sub a:focus{color:#323247}.uk-nav-center{text-align:center}.uk-nav-center .uk-nav-sub,.uk-nav-center .uk-nav-sub ul{padding-left:0}.uk-nav-center.uk-nav-parent-icon>.uk-parent>a::after{position:absolute}.uk-navbar{display:flex;position:relative;font-weight:500}.uk-navbar .uk-drop{width:360px}.uk-navbar .uk-search-navbar .uk-search-input{height:50px;font-size:1.0625rem;padding-left:1.1875rem;background:#fff}.uk-navbar-container:not(.uk-navbar-transparent){background:#fff}.uk-navbar-container>::before,.uk-navbar-container>::after{display:none !important}.uk-navbar-left,.uk-navbar-right,.uk-navbar-center,.uk-navbar-center-left>*,.uk-navbar-center-right>*{display:flex;align-items:center}.uk-navbar-right{margin-left:auto}.uk-navbar-center:only-child{margin-left:auto;margin-right:auto;position:relative}.uk-navbar-center:not(:only-child){position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);z-index:990}.uk-navbar-center:not(:only-child) .uk-navbar-nav>li>a,.uk-navbar-center:not(:only-child) .uk-navbar-item,.uk-navbar-center:not(:only-child) .uk-navbar-toggle{white-space:nowrap}.uk-navbar-center-left,.uk-navbar-center-right{position:absolute;top:0}.uk-navbar-center-left{right:100%}.uk-navbar-center-right{left:100%}[class*='uk-navbar-center-'] .uk-navbar-nav>li>a,[class*='uk-navbar-center-'] .uk-navbar-item,[class*='uk-navbar-center-'] .uk-navbar-toggle{white-space:nowrap}.uk-navbar-nav{display:flex;margin:0;padding:0;list-style:none}.uk-navbar-left,.uk-navbar-right,.uk-navbar-center:only-child{flex-wrap:wrap}.uk-navbar-nav>li>a,.uk-navbar-item,.uk-navbar-toggle{display:flex;justify-content:center;align-items:center;box-sizing:border-box;height:80px;padding:0 15px;font-size:1rem;font-family:system-ui;text-decoration:none}.uk-navbar-nav>li>a{color:#323247;text-transform:none;transition:0.1s ease-in-out;transition-property:color, background-color}.uk-navbar-nav>li:hover>a,.uk-navbar-nav>li>a:focus,.uk-navbar-nav>li>a.uk-open{color:#0070FF;outline:none}.uk-navbar-nav>li>a:active{color:#000}.uk-navbar-nav>li.uk-active>a{color:#0070FF}.uk-navbar-item{color:#323247}.uk-navbar-toggle{color:#323247}.uk-navbar-toggle:hover,.uk-navbar-toggle:focus,.uk-navbar-toggle.uk-open{color:#0070FF;outline:none;text-decoration:none}.uk-navbar-subtitle{font-size:.875rem}.uk-navbar-sticky{border-bottom:solid 1px #EEF1F4}.uk-navbar-dropdown{display:none;position:absolute;z-index:1020;box-sizing:border-box;width:200px;padding:25px;background:#fff;color:#323247;box-shadow:0 5px 12px rgba(0,0,0,0.15)}.uk-navbar-dropdown.uk-open{display:block}[class*='uk-navbar-dropdown-top']{margin-top:-1px}[class*='uk-navbar-dropdown-bottom']{margin-top:1px}[class*='uk-navbar-dropdown-left']{margin-left:-1px}[class*='uk-navbar-dropdown-right']{margin-left:1px}.uk-navbar-dropdown-grid{margin-left:-50px}.uk-navbar-dropdown-grid>*{padding-left:50px}.uk-navbar-dropdown-grid>.uk-grid-margin{margin-top:50px}.uk-navbar-dropdown-stack .uk-navbar-dropdown-grid>*{width:100% !important}.uk-navbar-dropdown-width-2:not(.uk-navbar-dropdown-stack){width:400px}.uk-navbar-dropdown-width-3:not(.uk-navbar-dropdown-stack){width:600px}.uk-navbar-dropdown-width-4:not(.uk-navbar-dropdown-stack){width:800px}.uk-navbar-dropdown-width-5:not(.uk-navbar-dropdown-stack){width:1000px}.uk-navbar-dropdown-dropbar{margin-top:0;margin-bottom:0;box-shadow:none}.uk-navbar-dropdown-nav{font-size:.875rem}.uk-navbar-dropdown-nav>li>a{color:#323247}.uk-navbar-dropdown-nav>li>a:hover,.uk-navbar-dropdown-nav>li>a:focus{color:#0070FF}.uk-navbar-dropdown-nav>li.uk-active>a{color:#0070FF}.uk-navbar-dropdown-nav .uk-nav-header{color:#000}.uk-navbar-dropdown-nav .uk-nav-divider{border-top:1px solid #e5e5e5}.uk-navbar-dropdown-nav .uk-nav-sub a{color:#6B7990}.uk-navbar-dropdown-nav .uk-nav-sub a:hover,.uk-navbar-dropdown-nav .uk-nav-sub a:focus{color:#323247}.uk-navbar-dropbar{background:#fff}.uk-navbar-dropbar-slide{position:absolute;z-index:980;left:0;right:0;box-shadow:0 5px 7px rgba(0,0,0,0.05)}.uk-navbar-item .uk-button{padding:0 22px;line-height:34px}.uk-navbar-container>.uk-container .uk-navbar-left{margin-left:-15px}.uk-navbar-container>.uk-container .uk-navbar-right{margin-right:-15px}.uk-subnav{display:flex;flex-wrap:wrap;margin-left:-20px;padding:0;list-style:none}.uk-subnav>*{flex:none;padding-left:20px;position:relative}.uk-subnav>*>:first-child{display:block;color:#6B7990;font-size:.875rem;text-transform:none;transition:0.1s ease-in-out;transition-property:color, background-color}.uk-subnav>*>a:hover,.uk-subnav>*>a:focus{color:#323247;text-decoration:none;outline:none}.uk-subnav>.uk-active>a{color:#323247}.uk-subnav-divider>*{display:flex;align-items:center}.uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before{content:"";height:1.5em;margin-left:0px;margin-right:20px;border-left:1px solid #e5e5e5}.uk-subnav-pill>*>:first-child{padding:5px 10px;background:transparent;color:#6B7990}.uk-subnav-pill>*>a:hover,.uk-subnav-pill>*>a:focus{background-color:#f8f8f8;color:#323247}.uk-subnav-pill>*>a:active{background-color:#f8f8f8;color:#323247}.uk-subnav-pill>.uk-active>a{background-color:#0070FF;color:#fff}.uk-subnav>.uk-disabled>a{color:#6B7990}.uk-pagination{display:flex;flex-wrap:wrap;margin-left:-20px;padding:0;list-style:none}.uk-pagination>*{flex:none;padding-left:20px;position:relative}.uk-pagination>*>*{display:block;color:#323247;transition:color 0.1s ease-in-out}.uk-pagination>*>:hover,.uk-pagination>*>:focus{color:#323247;text-decoration:none}.uk-pagination>.uk-active>*{color:#323247}.uk-pagination>.uk-disabled>*{color:#6B7990}.uk-slidenav{padding:5px 10px;color:rgba(50,50,71,0.5);transition:color 0.1s ease-in-out}.uk-slidenav:hover,.uk-slidenav:focus{color:rgba(50,50,71,0.9);outline:none}.uk-slidenav:active{color:rgba(50,50,71,0.5)}.uk-slidenav-large{padding:10px 10px}.uk-slidenav-container{display:flex}.uk-accordion{padding:0;list-style:none}.uk-accordion>:nth-child(n+2){margin-top:16px}.uk-accordion-title{display:block;font-size:1.125rem;line-height:1.4;color:#0070FF;overflow:hidden;border:solid 1px #ebecee;border-radius:6px;padding:20px;font-weight:500}.uk-accordion-title::after{content:"";width:1.4em;height:1.4em;float:right;background-image:url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline fill='none' stroke='%230070FF' stroke-width='1.03' points='16 7 10 13 4 7' /%3E%3C/svg%3E");background-repeat:no-repeat;background-position:50% 50%;background-color:#fff;border-radius:20px}.uk-open>.uk-accordion-title::after{background-image:url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline fill='none' stroke='%230070FF' stroke-width='1.03' points='4 13 10 7 16 13' /%3E%3C/svg%3E")}.uk-accordion-title:hover,.uk-accordion-title:focus{color:#0070FF;text-decoration:none;outline:none}.uk-accordion-content{margin-top:16px;padding:20px}.uk-accordion-content::before,.uk-accordion-content::after{content:"";display:table}.uk-accordion-content::after{clear:both}.uk-accordion-content>:last-child{margin-bottom:0}.uk-drop{display:none;position:absolute;z-index:1020;box-sizing:border-box;width:300px}.uk-drop.uk-open{display:block}[class*='uk-drop-top']{margin-top:-20px}[class*='uk-drop-bottom']{margin-top:20px}[class*='uk-drop-left']{margin-left:-20px}[class*='uk-drop-right']{margin-left:20px}.uk-drop-stack .uk-drop-grid>*{width:100% !important}.uk-dropdown{display:none;position:absolute;z-index:1020;box-sizing:border-box;min-width:200px;padding:25px;background:#fff;color:#323247;box-shadow:0 5px 12px rgba(0,0,0,0.15)}.uk-dropdown.uk-open{display:block}.uk-dropdown-nav{white-space:nowrap;font-size:.875rem}.uk-dropdown-nav>li>a{color:#6B7990}.uk-dropdown-nav>li>a:hover,.uk-dropdown-nav>li>a:focus,.uk-dropdown-nav>li.uk-active>a{color:#323247}.uk-dropdown-nav .uk-nav-header{color:#000}.uk-dropdown-nav .uk-nav-divider{border-top:1px solid #e5e5e5}.uk-dropdown-nav .uk-nav-sub a{color:#6B7990}.uk-dropdown-nav .uk-nav-sub a:hover,.uk-dropdown-nav .uk-nav-sub a:focus{color:#323247}[class*='uk-dropdown-top']{margin-top:-10px}[class*='uk-dropdown-bottom']{margin-top:10px}[class*='uk-dropdown-left']{margin-left:-10px}[class*='uk-dropdown-right']{margin-left:10px}.uk-dropdown-stack .uk-dropdown-grid>*{width:100% !important}.uk-lightbox{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1010;background:#000;opacity:0;transition:opacity 0.15s linear}.uk-lightbox.uk-open{display:block;opacity:1}.uk-lightbox-page{overflow:hidden}.uk-lightbox-items>*{position:absolute;top:0;right:0;bottom:0;left:0;display:none;justify-content:center;align-items:center;color:rgba(255,255,255,0.7);will-change:transform, opacity}.uk-lightbox-items>*>*{max-width:100vw;max-height:100vh}.uk-lightbox-items>*>:not(iframe){width:auto;height:auto}.uk-lightbox-items>.uk-active{display:flex}.uk-lightbox-toolbar{padding:10px 10px;background:rgba(0,0,0,0.3);color:rgba(255,255,255,0.7)}.uk-lightbox-toolbar *{color:rgba(255,255,255,0.7)}.uk-lightbox-toolbar-icon{padding:5px;color:rgba(255,255,255,0.7)}.uk-lightbox-toolbar-icon:hover{color:#fff}.uk-lightbox-button{box-sizing:border-box;width:50px;height:50px;background:rgba(0,0,0,0.3);color:rgba(255,255,255,0.7);display:inline-flex;justify-content:center;align-items:center}.uk-lightbox-button:hover{color:#fff}.uk-lightbox-iframe{width:80%;height:80%}.uk-slideshow{-webkit-tap-highlight-color:transparent}.uk-slideshow-items{position:relative;z-index:0;margin:0;padding:0;list-style:none;overflow:hidden;-webkit-touch-callout:none}.uk-slideshow-items>*{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;will-change:transform, opacity;touch-action:pan-y}.uk-slideshow-items>:not(.uk-active){display:none}.uk-slider{-webkit-tap-highlight-color:transparent}.uk-slider-container{overflow:hidden}.uk-slider-items{will-change:transform;position:relative}.uk-slider-items:not(.uk-grid){display:flex;margin:0;padding:0;list-style:none;-webkit-touch-callout:none}.uk-slider-items.uk-grid{flex-wrap:nowrap}.uk-slider-items>*{flex:none;position:relative;touch-action:pan-y}.uk-sticky-fixed{z-index:980;box-sizing:border-box;margin:0 !important;-webkit-backface-visibility:hidden;backface-visibility:hidden}.uk-sticky[class*='uk-animation-']{animation-duration:.2s}.uk-sticky.uk-animation-reverse{animation-duration:.2s}.uk-offcanvas{display:none;position:fixed;top:0;bottom:0;left:0;z-index:1000}.uk-offcanvas-flip .uk-offcanvas{right:0;left:auto}.uk-offcanvas-bar{position:absolute;top:0;bottom:0;left:0;box-sizing:border-box;width:320px;padding:20px 20px;background:#fff;overflow-y:auto;-webkit-overflow-scrolling:touch;transform:translateX(-100%);font-weight:500}@media (min-width: 960px){.uk-offcanvas-bar{width:350px;padding:40px 40px}}.uk-offcanvas-flip .uk-offcanvas-bar{left:auto;right:0;transform:translateX(100%)}.uk-open>.uk-offcanvas-bar{transform:translateX(0)}.uk-offcanvas-bar-animation{transition:transform 0.3s ease-out}.uk-offcanvas-reveal{position:absolute;top:0;bottom:0;left:0;width:0;overflow:hidden;transition:width 0.3s ease-out}.uk-offcanvas-reveal .uk-offcanvas-bar{transform:translateX(0)}.uk-open>.uk-offcanvas-reveal{width:320px}@media (min-width: 960px){.uk-open>.uk-offcanvas-reveal{width:350px}}.uk-offcanvas-flip .uk-offcanvas-reveal{right:0;left:auto}.uk-offcanvas-close{position:absolute;z-index:1000;top:20px;right:20px;padding:5px}.uk-offcanvas-overlay{width:100vw;touch-action:none}.uk-offcanvas-overlay::before{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background:rgba(0,0,0,0.1);opacity:0;transition:opacity 0.15s linear}.uk-offcanvas-overlay.uk-open::before{opacity:1}.uk-offcanvas-page,.uk-offcanvas-container{overflow-x:hidden}.uk-offcanvas-container-overlay{overflow:hidden}.uk-offcanvas-container .uk-offcanvas-content{position:relative;left:0;transition:left 0.3s ease-out;-webkit-overflow-scrolling:touch}.uk-offcanvas-overlay .uk-offcanvas-content{overflow-y:hidden}:not(.uk-offcanvas-flip)>.uk-offcanvas-content-animation{left:320px}.uk-offcanvas-flip>.uk-offcanvas-content-animation{left:-320px}@media (min-width: 960px){:not(.uk-offcanvas-flip)>.uk-offcanvas-content-animation{left:350px}.uk-offcanvas-flip>.uk-offcanvas-content-animation{left:-350px}}[class*='uk-animation-']{animation-duration:.5s;animation-timing-function:ease-out;animation-fill-mode:both}.uk-animation-reverse{animation-direction:reverse;animation-timing-function:ease-in}.uk-animation-fade{animation-name:uk-fade;animation-duration:.8s;animation-timing-function:linear}.uk-animation-scale-up{animation-name:uk-fade-scale-02}.uk-animation-scale-down{animation-name:uk-fade-scale-18}.uk-animation-slide-top{animation-name:uk-fade-top}.uk-animation-slide-bottom{animation-name:uk-fade-bottom}.uk-animation-slide-left{animation-name:uk-fade-left}.uk-animation-slide-right{animation-name:uk-fade-right}.uk-animation-slide-top-small{animation-name:uk-fade-top-small}.uk-animation-slide-bottom-small{animation-name:uk-fade-bottom-small}.uk-animation-slide-left-small{animation-name:uk-fade-left-small}.uk-animation-slide-right-small{animation-name:uk-fade-right-small}.uk-animation-slide-top-medium{animation-name:uk-fade-top-medium}.uk-animation-slide-bottom-medium{animation-name:uk-fade-bottom-medium}.uk-animation-slide-left-medium{animation-name:uk-fade-left-medium}.uk-animation-slide-right-medium{animation-name:uk-fade-right-medium}.uk-animation-kenburns{animation-name:uk-scale-kenburns;animation-duration:15s}.uk-animation-shake{animation-name:uk-shake}.uk-animation-fast{animation-duration:.1s}.uk-animation-toggle:not(:hover):not(.uk-hover) [class*='uk-animation-']{animation-name:none}@keyframes uk-fade{0%{opacity:0}100%{opacity:1}}@keyframes uk-fade-top{0%{opacity:0;transform:translateY(-100%)}100%{opacity:1;transform:translateY(0)}}@keyframes uk-fade-bottom{0%{opacity:0;transform:translateY(100%)}100%{opacity:1;transform:translateY(0)}}@keyframes uk-fade-left{0%{opacity:0;transform:translateX(-100%)}100%{opacity:1;transform:translateX(0)}}@keyframes uk-fade-right{0%{opacity:0;transform:translateX(100%)}100%{opacity:1;transform:translateX(0)}}@keyframes uk-fade-top-small{0%{opacity:0;transform:translateY(-10px)}100%{opacity:1;transform:translateY(0)}}@keyframes uk-fade-bottom-small{0%{opacity:0;transform:translateY(10px)}100%{opacity:1;transform:translateY(0)}}@keyframes uk-fade-left-small{0%{opacity:0;transform:translateX(-10px)}100%{opacity:1;transform:translateX(0)}}@keyframes uk-fade-right-small{0%{opacity:0;transform:translateX(10px)}100%{opacity:1;transform:translateX(0)}}@keyframes uk-fade-top-medium{0%{opacity:0;transform:translateY(-50px)}100%{opacity:1;transform:translateY(0)}}@keyframes uk-fade-bottom-medium{0%{opacity:0;transform:translateY(50px)}100%{opacity:1;transform:translateY(0)}}@keyframes uk-fade-left-medium{0%{opacity:0;transform:translateX(-50px)}100%{opacity:1;transform:translateX(0)}}@keyframes uk-fade-right-medium{0%{opacity:0;transform:translateX(50px)}100%{opacity:1;transform:translateX(0)}}@keyframes uk-fade-scale-02{0%{opacity:0;transform:scale(0.2)}100%{opacity:1;transform:scale(1)}}@keyframes uk-fade-scale-18{0%{opacity:0;transform:scale(1.8)}100%{opacity:1;transform:scale(1)}}@keyframes uk-scale-kenburns{0%{transform:scale(1)}100%{transform:scale(1.2)}}@keyframes uk-shake{0%, 100%{transform:translateX(0)}10%{transform:translateX(-9px)}20%{transform:translateX(8px)}30%{transform:translateX(-7px)}40%{transform:translateX(6px)}50%{transform:translateX(-5px)}60%{transform:translateX(4px)}70%{transform:translateX(-3px)}80%{transform:translateX(2px)}90%{transform:translateX(-1px)}}[class*='uk-child-width']>*{box-sizing:border-box;width:100%}.uk-child-width-1-2>*{width:50%}.uk-child-width-1-3>*{width:calc(100% * 1 / 3.001)}.uk-child-width-1-4>*{width:25%}.uk-child-width-1-5>*{width:20%}.uk-child-width-1-6>*{width:calc(100% * 1 / 6.001)}.uk-child-width-auto>*{width:auto}.uk-child-width-expand>*{width:1px}.uk-child-width-expand>:not([class*='uk-width']){flex:1;min-width:0;flex-basis:1px}@media (min-width: 640px){.uk-child-width-1-1\@s>*{width:100%}.uk-child-width-1-2\@s>*{width:50%}.uk-child-width-1-3\@s>*{width:calc(100% * 1 / 3.001)}.uk-child-width-1-4\@s>*{width:25%}.uk-child-width-1-5\@s>*{width:20%}.uk-child-width-1-6\@s>*{width:calc(100% * 1 / 6.001)}.uk-child-width-auto\@s>*{width:auto}.uk-child-width-expand\@s>*{width:1px}.uk-child-width-expand\@s>:not([class*='uk-width']){flex:1;min-width:0;flex-basis:1px}}@media (min-width: 960px){.uk-child-width-1-1\@m>*{width:100%}.uk-child-width-1-2\@m>*{width:50%}.uk-child-width-1-3\@m>*{width:calc(100% * 1 / 3.001)}.uk-child-width-1-4\@m>*{width:25%}.uk-child-width-1-5\@m>*{width:20%}.uk-child-width-1-6\@m>*{width:calc(100% * 1 / 6.001)}.uk-child-width-auto\@m>*{width:auto}.uk-child-width-expand\@m>*{width:1px}.uk-child-width-expand\@m>:not([class*='uk-width']){flex:1;min-width:0;flex-basis:1px}}@media (min-width: 1200px){.uk-child-width-1-1\@l>*{width:100%}.uk-child-width-1-2\@l>*{width:50%}.uk-child-width-1-3\@l>*{width:calc(100% * 1 / 3.001)}.uk-child-width-1-4\@l>*{width:25%}.uk-child-width-1-5\@l>*{width:20%}.uk-child-width-1-6\@l>*{width:calc(100% * 1 / 6.001)}.uk-child-width-auto\@l>*{width:auto}.uk-child-width-expand\@l>*{width:1px}.uk-child-width-expand\@l>:not([class*='uk-width']){flex:1;min-width:0;flex-basis:1px}}@media (min-width: 1600px){.uk-child-width-1-1\@xl>*{width:100%}.uk-child-width-1-2\@xl>*{width:50%}.uk-child-width-1-3\@xl>*{width:calc(100% * 1 / 3.001)}.uk-child-width-1-4\@xl>*{width:25%}.uk-child-width-1-5\@xl>*{width:20%}.uk-child-width-1-6\@xl>*{width:calc(100% * 1 / 6.001)}.uk-child-width-auto\@xl>*{width:auto}.uk-child-width-expand\@xl>*{width:1px}.uk-child-width-expand\@xl>:not([class*='uk-width']){flex:1;min-width:0;flex-basis:1px}}[class*='uk-width']{box-sizing:border-box;width:100%;max-width:100%}.uk-width-1-2{width:50%}.uk-width-1-3{width:calc(100% * 1 / 3.001)}.uk-width-2-3{width:calc(100% * 2 / 3.001)}.uk-width-1-4{width:25%}.uk-width-3-4{width:75%}.uk-width-1-5{width:20%}.uk-width-2-5{width:40%}.uk-width-3-5{width:60%}.uk-width-4-5{width:80%}.uk-width-1-6{width:calc(100% * 1 / 6.001)}.uk-width-5-6{width:calc(100% * 5 / 6.001)}.uk-width-small{width:150px}.uk-width-medium{width:300px}.uk-width-large{width:450px}.uk-width-xlarge{width:600px}.uk-width-xxlarge{width:750px}.uk-width-auto{width:auto}.uk-width-expand{width:1px;flex:1;min-width:0;flex-basis:1px}@media (min-width: 640px){.uk-width-1-1\@s{width:100%}.uk-width-1-2\@s{width:50%}.uk-width-1-3\@s{width:calc(100% * 1 / 3.001)}.uk-width-2-3\@s{width:calc(100% * 2 / 3.001)}.uk-width-1-4\@s{width:25%}.uk-width-3-4\@s{width:75%}.uk-width-1-5\@s{width:20%}.uk-width-2-5\@s{width:40%}.uk-width-3-5\@s{width:60%}.uk-width-4-5\@s{width:80%}.uk-width-1-6\@s{width:calc(100% * 1 / 6.001)}.uk-width-5-6\@s{width:calc(100% * 5 / 6.001)}.uk-width-small\@s{width:150px}.uk-width-medium\@s{width:300px}.uk-width-large\@s{width:450px}.uk-width-xlarge\@s{width:600px}.uk-width-xxlarge\@s{width:750px}.uk-width-auto\@s{width:auto}.uk-width-expand\@s{width:1px;flex:1;min-width:0;flex-basis:1px}}@media (min-width: 960px){.uk-width-1-1\@m{width:100%}.uk-width-1-2\@m{width:50%}.uk-width-1-3\@m{width:calc(100% * 1 / 3.001)}.uk-width-2-3\@m{width:calc(100% * 2 / 3.001)}.uk-width-1-4\@m{width:25%}.uk-width-3-4\@m{width:75%}.uk-width-1-5\@m{width:20%}.uk-width-2-5\@m{width:40%}.uk-width-3-5\@m{width:60%}.uk-width-4-5\@m{width:80%}.uk-width-1-6\@m{width:calc(100% * 1 / 6.001)}.uk-width-5-6\@m{width:calc(100% * 5 / 6.001)}.uk-width-small\@m{width:150px}.uk-width-medium\@m{width:300px}.uk-width-large\@m{width:450px}.uk-width-xlarge\@m{width:600px}.uk-width-xxlarge\@m{width:750px}.uk-width-auto\@m{width:auto}.uk-width-expand\@m{width:1px;flex:1;min-width:0;flex-basis:1px}}@media (min-width: 1200px){.uk-width-1-1\@l{width:100%}.uk-width-1-2\@l{width:50%}.uk-width-1-3\@l{width:calc(100% * 1 / 3.001)}.uk-width-2-3\@l{width:calc(100% * 2 / 3.001)}.uk-width-1-4\@l{width:25%}.uk-width-3-4\@l{width:75%}.uk-width-1-5\@l{width:20%}.uk-width-2-5\@l{width:40%}.uk-width-3-5\@l{width:60%}.uk-width-4-5\@l{width:80%}.uk-width-1-6\@l{width:calc(100% * 1 / 6.001)}.uk-width-5-6\@l{width:calc(100% * 5 / 6.001)}.uk-width-small\@l{width:150px}.uk-width-medium\@l{width:300px}.uk-width-large\@l{width:450px}.uk-width-xlarge\@l{width:600px}.uk-width-xxlarge\@l{width:750px}.uk-width-auto\@l{width:auto}.uk-width-expand\@l{width:1px;flex:1;min-width:0;flex-basis:1px}}@media (min-width: 1600px){.uk-width-1-1\@xl{width:100%}.uk-width-1-2\@xl{width:50%}.uk-width-1-3\@xl{width:calc(100% * 1 / 3.001)}.uk-width-2-3\@xl{width:calc(100% * 2 / 3.001)}.uk-width-1-4\@xl{width:25%}.uk-width-3-4\@xl{width:75%}.uk-width-1-5\@xl{width:20%}.uk-width-2-5\@xl{width:40%}.uk-width-3-5\@xl{width:60%}.uk-width-4-5\@xl{width:80%}.uk-width-1-6\@xl{width:calc(100% * 1 / 6.001)}.uk-width-5-6\@xl{width:calc(100% * 5 / 6.001)}.uk-width-small\@xl{width:150px}.uk-width-medium\@xl{width:300px}.uk-width-large\@xl{width:450px}.uk-width-xlarge\@xl{width:600px}.uk-width-xxlarge\@xl{width:750px}.uk-width-auto\@xl{width:auto}.uk-width-expand\@xl{width:1px;flex:1;min-width:0;flex-basis:1px}}.uk-text-lead{font-size:1.125rem;line-height:1.5;color:#6B7990}.uk-text-meta{font-size:.875rem;line-height:1.4;color:#6B7990}.uk-text-meta a{color:#6B7990}.uk-text-meta a:hover{color:#323247;text-decoration:none}.uk-text-small{font-size:.875rem;line-height:1.5}.uk-text-large{font-size:1.375rem;line-height:1.5}.uk-text-bold{font-weight:bolder}.uk-text-uppercase{text-transform:uppercase !important}.uk-text-capitalize{text-transform:capitalize !important}.uk-text-lowercase{text-transform:lowercase !important}.uk-text-muted{color:#6B7990 !important}.uk-text-primary{color:#0070FF !important}.uk-text-success{color:#403e56 !important}.uk-text-warning{color:#fbc418 !important}.uk-text-danger{color:#f0506e !important}.uk-text-background{-webkit-background-clip:text;-webkit-text-fill-color:transparent;display:inline-block;color:#0070FF !important}@supports (-webkit-background-clip: text){.uk-text-background{background-color:#0070FF}}.uk-text-left{text-align:left !important}.uk-text-right{text-align:right !important}.uk-text-center{text-align:center !important}.uk-text-justify{text-align:justify !important}@media (min-width: 640px){.uk-text-left\@s{text-align:left !important}.uk-text-right\@s{text-align:right !important}.uk-text-center\@s{text-align:center !important}}@media (min-width: 960px){.uk-text-left\@m{text-align:left !important}.uk-text-right\@m{text-align:right !important}.uk-text-center\@m{text-align:center !important}}@media (min-width: 1200px){.uk-text-left\@l{text-align:left !important}.uk-text-right\@l{text-align:right !important}.uk-text-center\@l{text-align:center !important}}@media (min-width: 1600px){.uk-text-left\@xl{text-align:left !important}.uk-text-right\@xl{text-align:right !important}.uk-text-center\@xl{text-align:center !important}}.uk-text-top{vertical-align:top !important}.uk-text-middle{vertical-align:middle !important}.uk-text-bottom{vertical-align:bottom !important}.uk-text-baseline{vertical-align:baseline !important}.uk-text-nowrap{white-space:nowrap}.uk-text-truncate{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}th.uk-text-truncate,td.uk-text-truncate{max-width:0}.uk-text-break{overflow-wrap:break-word;word-wrap:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}th.uk-text-break,td.uk-text-break{word-break:break-all}[class*='uk-column-']{column-gap:30px}@media (min-width: 1200px){[class*='uk-column-']{column-gap:40px}}[class*='uk-column-'] img{transform:translate3d(0, 0, 0)}.uk-column-divider{column-rule:1px solid #e5e5e5;column-gap:60px}@media (min-width: 1200px){.uk-column-divider{column-gap:80px}}.uk-column-1-2{column-count:2}.uk-column-1-3{column-count:3}.uk-column-1-4{column-count:4}.uk-column-1-5{column-count:5}.uk-column-1-6{column-count:6}@media (min-width: 640px){.uk-column-1-2\@s{column-count:2}.uk-column-1-3\@s{column-count:3}.uk-column-1-4\@s{column-count:4}.uk-column-1-5\@s{column-count:5}.uk-column-1-6\@s{column-count:6}}@media (min-width: 960px){.uk-column-1-2\@m{column-count:2}.uk-column-1-3\@m{column-count:3}.uk-column-1-4\@m{column-count:4}.uk-column-1-5\@m{column-count:5}.uk-column-1-6\@m{column-count:6}}@media (min-width: 1200px){.uk-column-1-2\@l{column-count:2}.uk-column-1-3\@l{column-count:3}.uk-column-1-4\@l{column-count:4}.uk-column-1-5\@l{column-count:5}.uk-column-1-6\@l{column-count:6}}@media (min-width: 1600px){.uk-column-1-2\@xl{column-count:2}.uk-column-1-3\@xl{column-count:3}.uk-column-1-4\@xl{column-count:4}.uk-column-1-5\@xl{column-count:5}.uk-column-1-6\@xl{column-count:6}}.uk-column-span{column-span:all}.uk-cover{max-width:none;position:absolute;left:50%;top:50%;transform:translate(-50%, -50%)}iframe.uk-cover{pointer-events:none}.uk-cover-container{overflow:hidden;position:relative}.uk-background-default{background-color:#fff}.uk-background-muted{background-color:#f8f8f8}.uk-background-primary{background-color:#0070FF}.uk-background-secondary{background-color:#1D282E}.uk-background-cover,.uk-background-contain{background-position:50% 50%;background-repeat:no-repeat}.uk-background-cover{background-size:cover}.uk-background-contain{background-size:contain}.uk-background-top-left{background-position:0 0}.uk-background-top-center{background-position:50% 0}.uk-background-top-right{background-position:100% 0}.uk-background-center-left{background-position:0 50%}.uk-background-center-center{background-position:50% 50%}.uk-background-center-right{background-position:100% 50%}.uk-background-bottom-left{background-position:0 100%}.uk-background-bottom-center{background-position:50% 100%}.uk-background-bottom-right{background-position:100% 100%}.uk-background-norepeat{background-repeat:no-repeat}.uk-background-fixed{background-attachment:fixed}@media (pointer: coarse){.uk-background-fixed{background-attachment:scroll}}@media (max-width: 639px){.uk-background-image\@s{background-image:none !important}}@media (max-width: 959px){.uk-background-image\@m{background-image:none !important}}@media (max-width: 1199px){.uk-background-image\@l{background-image:none !important}}@media (max-width: 1599px){.uk-background-image\@xl{background-image:none !important}}.uk-background-blend-multiply{background-blend-mode:multiply}.uk-background-blend-screen{background-blend-mode:screen}.uk-background-blend-overlay{background-blend-mode:overlay}.uk-background-blend-darken{background-blend-mode:darken}.uk-background-blend-lighten{background-blend-mode:lighten}.uk-background-blend-color-dodge{background-blend-mode:color-dodge}.uk-background-blend-color-burn{background-blend-mode:color-burn}.uk-background-blend-hard-light{background-blend-mode:hard-light}.uk-background-blend-soft-light{background-blend-mode:soft-light}.uk-background-blend-difference{background-blend-mode:difference}.uk-background-blend-exclusion{background-blend-mode:exclusion}.uk-background-blend-hue{background-blend-mode:hue}.uk-background-blend-saturation{background-blend-mode:saturation}.uk-background-blend-color{background-blend-mode:color}.uk-background-blend-luminosity{background-blend-mode:luminosity}[class*='uk-align']{display:block;margin-bottom:30px}*+[class*='uk-align']{margin-top:30px}.uk-align-center{margin-left:auto;margin-right:auto}.uk-align-left{margin-top:0;margin-right:30px;float:left}.uk-align-right{margin-top:0;margin-left:30px;float:right}@media (min-width: 640px){.uk-align-left\@s{margin-top:0;margin-right:30px;float:left}.uk-align-right\@s{margin-top:0;margin-left:30px;float:right}}@media (min-width: 960px){.uk-align-left\@m{margin-top:0;margin-right:30px;float:left}.uk-align-right\@m{margin-top:0;margin-left:30px;float:right}}@media (min-width: 1200px){.uk-align-left\@l{margin-top:0;float:left}.uk-align-right\@l{margin-top:0;float:right}.uk-align-left,.uk-align-left\@s,.uk-align-left\@m,.uk-align-left\@l{margin-right:40px}.uk-align-right,.uk-align-right\@s,.uk-align-right\@m,.uk-align-right\@l{margin-left:40px}}@media (min-width: 1600px){.uk-align-left\@xl{margin-top:0;margin-right:40px;float:left}.uk-align-right\@xl{margin-top:0;margin-left:40px;float:right}}.uk-panel{position:relative;box-sizing:border-box}.uk-panel::before,.uk-panel::after{content:"";display:table}.uk-panel::after{clear:both}.uk-panel>:last-child{margin-bottom:0}.uk-panel-scrollable{height:170px;padding:10px;border:1px solid #e5e5e5;overflow:auto;-webkit-overflow-scrolling:touch;resize:both}.uk-clearfix::before{content:"";display:table-cell}.uk-clearfix::after{content:"";display:table;clear:both}.uk-float-left{float:left}.uk-float-right{float:right}[class*='uk-float-']{max-width:100%}.uk-overflow-hidden{overflow:hidden}.uk-overflow-auto{overflow:auto;-webkit-overflow-scrolling:touch}.uk-overflow-auto>:last-child{margin-bottom:0}.uk-resize{resize:both}.uk-resize-vertical{resize:vertical}.uk-display-block{display:block !important}.uk-display-inline{display:inline !important}.uk-display-inline-block{display:inline-block !important}[class*='uk-inline']{display:inline-block;position:relative;max-width:100%;vertical-align:middle;-webkit-backface-visibility:hidden}.uk-inline-clip{overflow:hidden}[class*='uk-height']{box-sizing:border-box}.uk-height-1-1{height:100%}.uk-height-viewport{min-height:100vh}.uk-height-small{height:150px}.uk-height-medium{height:300px}.uk-height-large{height:450px}.uk-height-max-small{max-height:150px}.uk-height-max-medium{max-height:300px}.uk-height-max-large{max-height:450px}.uk-preserve-width,.uk-preserve-width audio,.uk-preserve-width canvas,.uk-preserve-width img,.uk-preserve-width svg,.uk-preserve-width video{max-width:none}.uk-responsive-width,.uk-responsive-height{box-sizing:border-box}.uk-responsive-width{max-width:100% !important;height:auto}.uk-responsive-height{max-height:100%;width:auto;max-width:none}.uk-border-circle{border-radius:50%}.uk-border-rounded{border-radius:5px}.uk-inline-clip[class*='uk-border-']{-webkit-transform:translateZ(0)}.uk-box-shadow-small{box-shadow:0 2px 8px rgba(0,0,0,0.08)}.uk-box-shadow-medium{box-shadow:0 5px 15px rgba(0,0,0,0.08)}.uk-box-shadow-large{box-shadow:0 10px 35px rgba(0,0,0,0.12)}.uk-box-shadow-xlarge{box-shadow:0 28px 50px rgba(0,0,0,0.16)}[class*='uk-box-shadow-hover']{transition:box-shadow .1s ease-in-out}.uk-box-shadow-hover-small:hover{box-shadow:0 2px 8px rgba(0,0,0,0.08)}.uk-box-shadow-hover-medium:hover{box-shadow:0 5px 15px rgba(0,0,0,0.08)}.uk-box-shadow-hover-large:hover{box-shadow:0 10px 35px rgba(0,0,0,0.12)}.uk-box-shadow-hover-xlarge:hover{box-shadow:0 28px 50px rgba(0,0,0,0.16)}@supports (filter: blur(0)){.uk-box-shadow-bottom{display:inline-block;position:relative;max-width:100%;vertical-align:middle}.uk-box-shadow-bottom::before{content:'';position:absolute;bottom:-30px;left:0;right:0;height:30px;border-radius:100%;background:#444;filter:blur(20px)}.uk-box-shadow-bottom>*{position:relative}}.uk-dropcap::first-letter,.uk-dropcap>p:first-of-type::first-letter{display:block;margin-right:10px;float:left;font-size:4.5em;line-height:1;margin-bottom:-2px}.uk-leader{overflow:hidden}.uk-leader-fill::after{display:inline-block;margin-left:15px;width:0;content:attr(data-fill);white-space:nowrap}.uk-leader-fill.uk-leader-hide::after{display:none}.var-leader-fill:before{content:"."}.uk-logo{max-width:150px;font-size:1.5rem;font-family:system-ui;color:#323247;text-decoration:none;font-weight:700}.uk-logo:hover,.uk-logo:focus{color:#323247;outline:none;text-decoration:none}.uk-logo-inverse{display:none}.uk-svg,.uk-svg:not(.uk-preserve) [fill*='#']:not(.uk-preserve),.uk-svg:not(.uk-preserve) [FILL*='#']:not(.uk-preserve){fill:currentcolor}.uk-svg:not(.uk-preserve) [stroke*='#']:not(.uk-preserve),.uk-svg:not(.uk-preserve) [STROKE*='#']:not(.uk-preserve){stroke:currentcolor}.uk-svg{transform:translate(0, 0)}.uk-disabled{pointer-events:none}.uk-drag,.uk-drag *{cursor:move}.uk-drag iframe{pointer-events:none}.uk-dragover{box-shadow:0 0 20px rgba(100,100,100,0.3)}.uk-blend-multiply{mix-blend-mode:multiply}.uk-blend-screen{mix-blend-mode:screen}.uk-blend-overlay{mix-blend-mode:overlay}.uk-blend-darken{mix-blend-mode:darken}.uk-blend-lighten{mix-blend-mode:lighten}.uk-blend-color-dodge{mix-blend-mode:color-dodge}.uk-blend-color-burn{mix-blend-mode:color-burn}.uk-blend-hard-light{mix-blend-mode:hard-light}.uk-blend-soft-light{mix-blend-mode:soft-light}.uk-blend-difference{mix-blend-mode:difference}.uk-blend-exclusion{mix-blend-mode:exclusion}.uk-blend-hue{mix-blend-mode:hue}.uk-blend-saturation{mix-blend-mode:saturation}.uk-blend-color{mix-blend-mode:color}.uk-blend-luminosity{mix-blend-mode:luminosity}.uk-transform-center{transform:translate(-50%, -50%)}.uk-transform-origin-top-left{transform-origin:0 0}.uk-transform-origin-top-center{transform-origin:50% 0}.uk-transform-origin-top-right{transform-origin:100% 0}.uk-transform-origin-center-left{transform-origin:0 50%}.uk-transform-origin-center-right{transform-origin:100% 50%}.uk-transform-origin-bottom-left{transform-origin:0 100%}.uk-transform-origin-bottom-center{transform-origin:50% 100%}.uk-transform-origin-bottom-right{transform-origin:100% 100%}.border-xlight{border:solid 1px #EEF1F4}.border-light{border:solid 1px #ebecee}.border{border:solid 1px #e5e5e5}.border-radius-medium{border-radius:6px}.border-radius-large{border-radius:16px}.remove-underline,.remove-underline:hover{text-decoration:none}.uk-container.uk-container-xsmall{max-width:700px}.hvr-forward{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;-webkit-transition-duration:0.3s;transition-duration:0.3s;-webkit-transition-property:transform;transition-property:transform}.hvr-forward:active,.hvr-forward:focus,.hvr-forward:hover{-webkit-transform:translateX(6px);transform:translateX(6px)}.hvr-back{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px transparent;-webkit-transition-duration:0.3s;transition-duration:0.3s;-webkit-transition-property:transform;transition-property:transform}.hvr-back:hover,.hvr-back:focus,.hvr-back:active{-webkit-transform:translateX(-6px);transform:translateX(-6px)}.social-networks{margin-top:70px}.container-xxsmall{max-width:560px}.sidebar-fixed-width{width:260px}.sidebar-docs{width:220px;padding-right:40px;top:112px;bottom:70px;overflow-y:scroll;overflow-x:hidden}.sidebar-docs>h5{margin:15px 0 0}.sidebar-docs>h5:first-child{margin-top:17px}@media (min-width: 1200px){.sidebar-fixed-width{width:360px}.sidebar-docs{width:290px;padding-right:70px}}ul.doc-nav{padding-left:14px;margin-top:5px}.doc-nav>li.uk-active>a{position:relative}.doc-nav>li.uk-active>a:before{content:"";position:absolute;top:15px;left:-14px;width:7px;border-top:1px solid #0070FF}.hero-image{margin-top:-28px;margin-bottom:30px}.hero-image img{max-height:220px}.uk-section .uk-h1{margin-bottom:12px}.uk-section .uk-text-lead{margin:0}.section-hero{z-index:10}.section-hero .hero-search{margin:60px auto 0 auto}.section-hero .hero-search .uk-search-input{height:80px;border-radius:50px;font-size:1.25rem;font-style:normal;padding-left:36px}.section-hero .hero-search .uk-search-input:focus{background:#ffffff}.section-hero .hero-search .uk-search-icon{width:70px}.section-hero .hero-search .uk-search-icon svg{width:31px;height:auto}.section-hero .uk-text-lead{font-size:1.25rem;color:#686c7b}@media (min-width: 640px){.section-videos div[class^="uk-child-width-1-1"] .uk-card{padding-top:70px;padding-bottom:70px}}@media (min-width: 960px){.section-videos div[class^="uk-child-width-1-1"] .uk-card{padding-top:110px;padding-bottom:110px}}.section-featured .uk-accordion>:nth-child(n+2){margin-top:16px}.section-featured a{display:block;font-size:1.125rem;overflow:hidden;border:solid 1px #ebecee;border-radius:6px;padding:20px;font-weight:500;color:#0070FF}.section-featured a::after{content:"";width:1.4em;height:1.4em;float:right;background-image:url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline fill='none' stroke='%230070FF' stroke-width='1.03' points='7 4 13 10 7 16' /%3E%3C/svg%3E%0A");background-repeat:no-repeat;background-position:50% 50%;background-color:#fff;border-radius:20px}.section-featured a:hover{text-decoration:none;color:#0070FF}.section-team .uk-slider-items li{opacity:.7}.section-team .uk-slider-items li.uk-active{opacity:1}.section-team .uk-grid>div{width:128px}.section-team .uk-card img{max-width:86px}#markdown-toc{padding:0 0 0 20px;border-left:solid 2px #d9dde0;list-style:none;margin-bottom:40px}#markdown-toc>li>:last-child{margin-bottom:0}#markdown-toc ul{margin:0;padding-left:20px;list-style:none}#markdown-toc>li:nth-child(n+2),#markdown-toc>li>ul{margin-top:5px}.article-content .no_toc{margin-top:0;margin-bottom:20px}#search-hero-results,#search-navbar-results{margin:10px 0 0 0;box-shadow:0 5px 15px rgba(0,0,0,0.08);border-radius:6px;background:#fff}#search-hero-results li,#search-navbar-results li{margin:0;line-height:1.4;border-left:solid 1px #EEF1F4;border-right:solid 1px #EEF1F4}#search-hero-results li:first-child,#search-navbar-results li:first-child{border-top-left-radius:6px;border-top-right-radius:6px;border-top:solid 1px #EEF1F4}#search-hero-results li:last-child,#search-navbar-results li:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-bottom:solid 1px #EEF1F4}#search-hero-results li a,#search-navbar-results li a{display:block}#search-hero-results li a:hover,#search-navbar-results li a:hover{text-decoration:none}#search-hero-results li:first-child{padding-top:5px}#search-hero-results li:last-child{padding-bottom:5px}#search-hero-results li a{padding:18px 36px}#search-hero-results li.no-results{padding:18px 36px}#search-navbar-results li:first-child{padding-top:2px}#search-navbar-results li:last-child{padding-bottom:2px}#search-navbar-results li a{padding:14px 17px}#search-navbar-results li.no-results{padding:14px 17px}@media (min-width: 640px){.tm-timeline{box-sizing:border-box;position:relative}.tm-timeline *{box-sizing:border-box}.tm-timeline:before{content:'';position:absolute;top:0;left:calc(30% - 2px);bottom:0;width:4px;background:#0070FF}.tm-timeline:after{content:"";display:table;clear:both}.tm-timeline-entry{clear:both;text-align:left;position:relative}.tm-timeline-entry+.tm-timeline-entry{margin-top:70px}.tm-timeline-entry:after{display:block;content:"";clear:both}.tm-timeline-entry .tm-timeline-time{float:left;width:30%;padding-right:70px;text-align:right;position:relative}.tm-timeline-entry .tm-timeline-time:before{content:'';position:absolute;width:20px;height:20px;border:4px solid #0070FF;background-color:#fff;border-radius:100%;top:0;right:-14px;z-index:99}.tm-timeline-entry .tm-timeline-time h5{margin:3px 0 0}.tm-timeline-entry .tm-timeline-body{float:right;width:70%;padding-left:70px;margin-top:-2px}.tm-timeline-entry .tm-timeline-body h3{margin:0 0 15px}.tm-timeline-entry .tm-timeline-body h3 span{padding:1px 7px}}.uk-flex{display:flex}.uk-flex-inline{display:inline-flex}.uk-flex::before,.uk-flex::after,.uk-flex-inline::before,.uk-flex-inline::after{display:none}.uk-flex-left{justify-content:flex-start}.uk-flex-center{justify-content:center}.uk-flex-right{justify-content:flex-end}.uk-flex-between{justify-content:space-between}.uk-flex-around{justify-content:space-around}@media (min-width: 640px){.uk-flex-left\@s{justify-content:flex-start}.uk-flex-center\@s{justify-content:center}.uk-flex-right\@s{justify-content:flex-end}.uk-flex-between\@s{justify-content:space-between}.uk-flex-around\@s{justify-content:space-around}}@media (min-width: 960px){.uk-flex-left\@m{justify-content:flex-start}.uk-flex-center\@m{justify-content:center}.uk-flex-right\@m{justify-content:flex-end}.uk-flex-between\@m{justify-content:space-between}.uk-flex-around\@m{justify-content:space-around}}@media (min-width: 1200px){.uk-flex-left\@l{justify-content:flex-start}.uk-flex-center\@l{justify-content:center}.uk-flex-right\@l{justify-content:flex-end}.uk-flex-between\@l{justify-content:space-between}.uk-flex-around\@l{justify-content:space-around}}@media (min-width: 1600px){.uk-flex-left\@xl{justify-content:flex-start}.uk-flex-center\@xl{justify-content:center}.uk-flex-right\@xl{justify-content:flex-end}.uk-flex-between\@xl{justify-content:space-between}.uk-flex-around\@xl{justify-content:space-around}}.uk-flex-stretch{align-items:stretch}.uk-flex-top{align-items:flex-start}.uk-flex-middle{align-items:center}.uk-flex-bottom{align-items:flex-end}.uk-flex-row{flex-direction:row}.uk-flex-row-reverse{flex-direction:row-reverse}.uk-flex-column{flex-direction:column}.uk-flex-column-reverse{flex-direction:column-reverse}.uk-flex-nowrap{flex-wrap:nowrap}.uk-flex-wrap{flex-wrap:wrap}.uk-flex-wrap-reverse{flex-wrap:wrap-reverse}.uk-flex-wrap-stretch{align-content:stretch}.uk-flex-wrap-top{align-content:flex-start}.uk-flex-wrap-middle{align-content:center}.uk-flex-wrap-bottom{align-content:flex-end}.uk-flex-wrap-between{align-content:space-between}.uk-flex-wrap-around{align-content:space-around}.uk-flex-first{order:-1}.uk-flex-last{order:99}@media (min-width: 640px){.uk-flex-first\@s{order:-1}.uk-flex-last\@s{order:99}}@media (min-width: 960px){.uk-flex-first\@m{order:-1}.uk-flex-last\@m{order:99}}@media (min-width: 1200px){.uk-flex-first\@l{order:-1}.uk-flex-last\@l{order:99}}@media (min-width: 1600px){.uk-flex-first\@xl{order:-1}.uk-flex-last\@xl{order:99}}.uk-flex-none{flex:none}.uk-flex-auto{flex:auto}.uk-flex-1{flex:1}.uk-margin{margin-bottom:20px}*+.uk-margin{margin-top:20px !important}.uk-margin-top{margin-top:20px !important}.uk-margin-bottom{margin-bottom:20px !important}.uk-margin-left{margin-left:20px !important}.uk-margin-right{margin-right:20px !important}.uk-margin-small{margin-bottom:10px}*+.uk-margin-small{margin-top:10px !important}.uk-margin-small-top{margin-top:10px !important}.uk-margin-small-bottom{margin-bottom:10px !important}.uk-margin-small-left{margin-left:10px !important}.uk-margin-small-right{margin-right:10px !important}.uk-margin-medium{margin-bottom:40px}*+.uk-margin-medium{margin-top:40px !important}.uk-margin-medium-top{margin-top:40px !important}.uk-margin-medium-bottom{margin-bottom:40px !important}.uk-margin-medium-left{margin-left:40px !important}.uk-margin-medium-right{margin-right:40px !important}.uk-margin-large{margin-bottom:40px}*+.uk-margin-large{margin-top:40px !important}.uk-margin-large-top{margin-top:40px !important}.uk-margin-large-bottom{margin-bottom:40px !important}.uk-margin-large-left{margin-left:40px !important}.uk-margin-large-right{margin-right:40px !important}@media (min-width: 1200px){.uk-margin-large{margin-bottom:70px}*+.uk-margin-large{margin-top:70px !important}.uk-margin-large-top{margin-top:70px !important}.uk-margin-large-bottom{margin-bottom:70px !important}.uk-margin-large-left{margin-left:70px !important}.uk-margin-large-right{margin-right:70px !important}}.uk-margin-xlarge{margin-bottom:70px}*+.uk-margin-xlarge{margin-top:70px !important}.uk-margin-xlarge-top{margin-top:70px !important}.uk-margin-xlarge-bottom{margin-bottom:70px !important}.uk-margin-xlarge-left{margin-left:70px !important}.uk-margin-xlarge-right{margin-right:70px !important}@media (min-width: 1200px){.uk-margin-xlarge{margin-bottom:140px}*+.uk-margin-xlarge{margin-top:140px !important}.uk-margin-xlarge-top{margin-top:140px !important}.uk-margin-xlarge-bottom{margin-bottom:140px !important}.uk-margin-xlarge-left{margin-left:140px !important}.uk-margin-xlarge-right{margin-right:140px !important}}.uk-margin-remove{margin:0 !important}.uk-margin-remove-top{margin-top:0 !important}.uk-margin-remove-bottom{margin-bottom:0 !important}.uk-margin-remove-left{margin-left:0 !important}.uk-margin-remove-right{margin-right:0 !important}.uk-margin-remove-vertical{margin-top:0 !important;margin-bottom:0 !important}.uk-margin-remove-adjacent+*{margin-top:0 !important}.uk-margin-auto{margin-left:auto !important;margin-right:auto !important}.uk-margin-auto-top{margin-top:auto !important}.uk-margin-auto-bottom{margin-bottom:auto !important}.uk-margin-auto-left{margin-left:auto !important}.uk-margin-auto-right{margin-right:auto !important}.uk-margin-auto-vertical{margin-top:auto !important;margin-bottom:auto !important}.uk-padding{padding:30px}@media (min-width: 1200px){.uk-padding{padding:40px}}.uk-padding-small{padding:15px}.uk-padding-large{padding:30px}@media (min-width: 1200px){.uk-padding-large{padding:70px}}.uk-padding-remove{padding:0 !important}.uk-padding-remove-top{padding-top:0 !important}.uk-padding-remove-bottom{padding-bottom:0 !important}.uk-padding-remove-left{padding-left:0 !important}.uk-padding-remove-right{padding-right:0 !important}.uk-padding-remove-vertical{padding-top:0 !important;padding-bottom:0 !important}.uk-padding-remove-horizontal{padding-left:0 !important;padding-right:0 !important}[class*='uk-position-top'],[class*='uk-position-bottom'],[class*='uk-position-left'],[class*='uk-position-right'],[class*='uk-position-center']{position:absolute !important}.uk-position-top{top:0;left:0;right:0}.uk-position-bottom{bottom:0;left:0;right:0}.uk-position-left{top:0;bottom:0;left:0}.uk-position-right{top:0;bottom:0;right:0}.uk-position-top-left{top:0;left:0}.uk-position-top-right{top:0;right:0}.uk-position-bottom-left{bottom:0;left:0}.uk-position-bottom-right{bottom:0;right:0}.uk-position-center{top:50%;left:50%;transform:translate(-50%, -50%);display:table;width:-moz-max-content;max-width:100%;box-sizing:border-box}[class*='uk-position-center-left'],[class*='uk-position-center-right']{top:50%;transform:translateY(-50%)}.uk-position-center-left{left:0}.uk-position-center-right{right:0}.uk-position-center-left-out{right:100%;width:max-content}.uk-position-center-right-out{left:100%;width:max-content}.uk-position-top-center,.uk-position-bottom-center{left:50%;transform:translateX(-50%);display:table;width:-moz-max-content;max-width:100%;box-sizing:border-box}.uk-position-top-center{top:0}.uk-position-bottom-center{bottom:0}.uk-position-cover{position:absolute;top:0;bottom:0;left:0;right:0}.uk-position-relative{position:relative !important}.uk-position-absolute{position:absolute !important}.uk-position-fixed{position:fixed !important}.uk-position-z-index{z-index:1}.uk-position-small{margin:15px}.uk-position-small.uk-position-center{transform:translate(-50%, -50%) translate(-15px, -15px)}.uk-position-small[class*='uk-position-center-left'],.uk-position-small[class*='uk-position-center-right']{transform:translateY(-50%) translateY(-15px)}.uk-position-small.uk-position-top-center,.uk-position-small.uk-position-bottom-center{transform:translateX(-50%) translateX(-15px)}.uk-position-medium{margin:30px}.uk-position-medium.uk-position-center{transform:translate(-50%, -50%) translate(-30px, -30px)}.uk-position-medium[class*='uk-position-center-left'],.uk-position-medium[class*='uk-position-center-right']{transform:translateY(-50%) translateY(-30px)}.uk-position-medium.uk-position-top-center,.uk-position-medium.uk-position-bottom-center{transform:translateX(-50%) translateX(-30px)}.uk-position-large{margin:30px}.uk-position-large.uk-position-center{transform:translate(-50%, -50%) translate(-30px, -30px)}.uk-position-large[class*='uk-position-center-left'],.uk-position-large[class*='uk-position-center-right']{transform:translateY(-50%) translateY(-30px)}.uk-position-large.uk-position-top-center,.uk-position-large.uk-position-bottom-center{transform:translateX(-50%) translateX(-30px)}@media (min-width: 1200px){.uk-position-large{margin:50px}.uk-position-large.uk-position-center{transform:translate(-50%, -50%) translate(-50px, -50px)}.uk-position-large[class*='uk-position-center-left'],.uk-position-large[class*='uk-position-center-right']{transform:translateY(-50%) translateY(-50px)}.uk-position-large.uk-position-top-center,.uk-position-large.uk-position-bottom-center{transform:translateX(-50%) translateX(-50px)}}.uk-transition-fade,[class*='uk-transition-scale'],[class*='uk-transition-slide']{transition:.3s ease-out;transition-property:opacity, transform, filter}.uk-transition-toggle:focus{outline:none}.uk-transition-fade{opacity:0}.uk-transition-toggle:hover [class*='uk-transition-fade'],.uk-transition-toggle.uk-hover [class*='uk-transition-fade'],.uk-transition-toggle:focus [class*='uk-transition-fade'],.uk-transition-active.uk-active [class*='uk-transition-fade']{opacity:1}[class*='uk-transition-scale']{opacity:0}.uk-transition-scale-up{transform:scale3d(1, 1, 1)}.uk-transition-scale-down{transform:scale3d(1.1, 1.1, 1)}.uk-transition-toggle:hover .uk-transition-scale-up,.uk-transition-toggle.uk-hover .uk-transition-scale-up,.uk-transition-toggle:focus .uk-transition-scale-up,.uk-transition-active.uk-active .uk-transition-scale-up{opacity:1;transform:scale3d(1.1, 1.1, 1)}.uk-transition-toggle:hover .uk-transition-scale-down,.uk-transition-toggle.uk-hover .uk-transition-scale-down,.uk-transition-toggle:focus .uk-transition-scale-down,.uk-transition-active.uk-active .uk-transition-scale-down{opacity:1;transform:scale3d(1, 1, 1)}[class*='uk-transition-slide']{opacity:0}.uk-transition-slide-top{transform:translateY(-100%)}.uk-transition-slide-bottom{transform:translateY(100%)}.uk-transition-slide-left{transform:translateX(-100%)}.uk-transition-slide-right{transform:translateX(100%)}.uk-transition-slide-top-small{transform:translateY(-10px)}.uk-transition-slide-bottom-small{transform:translateY(10px)}.uk-transition-slide-left-small{transform:translateX(-10px)}.uk-transition-slide-right-small{transform:translateX(10px)}.uk-transition-slide-top-medium{transform:translateY(-50px)}.uk-transition-slide-bottom-medium{transform:translateY(50px)}.uk-transition-slide-left-medium{transform:translateX(-50px)}.uk-transition-slide-right-medium{transform:translateX(50px)}.uk-transition-toggle:hover [class*='uk-transition-slide'],.uk-transition-toggle.uk-hover [class*='uk-transition-slide'],.uk-transition-toggle:focus [class*='uk-transition-slide'],.uk-transition-active.uk-active [class*='uk-transition-slide']{opacity:1;transform:translateX(0) translateY(0)}.uk-transition-opaque{opacity:1}.uk-transition-slow{transition-duration:.7s}[hidden],.uk-hidden{display:none !important}@media (min-width: 640px){.uk-hidden\@s{display:none !important}}@media (min-width: 960px){.uk-hidden\@m{display:none !important}}@media (min-width: 1200px){.uk-hidden\@l{display:none !important}}@media (min-width: 1600px){.uk-hidden\@xl{display:none !important}}@media (max-width: 639px){.uk-visible\@s{display:none !important}}@media (max-width: 959px){.uk-visible\@m{display:none !important}}@media (max-width: 1199px){.uk-visible\@l{display:none !important}}@media (max-width: 1599px){.uk-visible\@xl{display:none !important}}.uk-invisible{visibility:hidden !important}.uk-visible-toggle:not(:hover):not(.uk-hover) .uk-hidden-hover:not(:focus){position:absolute !important;width:0 !important;height:0 !important;padding:0 !important;margin:0 !important;overflow:hidden !important}.uk-visible-toggle:not(:hover):not(.uk-hover) .uk-invisible-hover:not(:focus){opacity:0 !important}@media (pointer: coarse){.uk-hidden-touch{display:none !important}}.uk-hidden-notouch{display:none !important}@media (pointer: coarse){.uk-hidden-notouch{display:block !important}}.uk-light,.uk-section-primary:not(.uk-preserve-color),.uk-section-secondary:not(.uk-preserve-color),.uk-tile-primary:not(.uk-preserve-color),.uk-tile-secondary:not(.uk-preserve-color),.uk-card-primary.uk-card-body,.uk-card-primary>:not([class*='uk-card-media']),.uk-card-secondary.uk-card-body,.uk-card-secondary>:not([class*='uk-card-media']),.uk-overlay-primary{color:rgba(255,255,255,0.7)}.uk-light a,.uk-section-primary:not(.uk-preserve-color) a,.uk-section-secondary:not(.uk-preserve-color) a,.uk-tile-primary:not(.uk-preserve-color) a,.uk-tile-secondary:not(.uk-preserve-color) a,.uk-card-primary.uk-card-body a,.uk-card-primary>:not([class*='uk-card-media']) a,.uk-card-secondary.uk-card-body a,.uk-card-secondary>:not([class*='uk-card-media']) a,.uk-overlay-primary a,.uk-light .uk-link,.uk-section-primary:not(.uk-preserve-color) .uk-link,.uk-section-secondary:not(.uk-preserve-color) .uk-link,.uk-tile-primary:not(.uk-preserve-color) .uk-link,.uk-tile-secondary:not(.uk-preserve-color) .uk-link,.uk-card-primary.uk-card-body .uk-link,.uk-card-primary>:not([class*='uk-card-media']) .uk-link,.uk-card-secondary.uk-card-body .uk-link,.uk-card-secondary>:not([class*='uk-card-media']) .uk-link,.uk-overlay-primary .uk-link{color:#fff}.uk-light a:hover,.uk-section-primary:not(.uk-preserve-color) a:hover,.uk-section-secondary:not(.uk-preserve-color) a:hover,.uk-tile-primary:not(.uk-preserve-color) a:hover,.uk-tile-secondary:not(.uk-preserve-color) a:hover,.uk-card-primary.uk-card-body a:hover,.uk-card-primary>:not([class*='uk-card-media']) a:hover,.uk-card-secondary.uk-card-body a:hover,.uk-card-secondary>:not([class*='uk-card-media']) a:hover,.uk-overlay-primary a:hover,.uk-light .uk-link:hover,.uk-section-primary:not(.uk-preserve-color) .uk-link:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-link:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-link:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-link:hover,.uk-card-primary.uk-card-body .uk-link:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-link:hover,.uk-card-secondary.uk-card-body .uk-link:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-link:hover,.uk-overlay-primary .uk-link:hover{color:#fff}.uk-light :not(pre)>code,.uk-section-primary:not(.uk-preserve-color) :not(pre)>code,.uk-section-secondary:not(.uk-preserve-color) :not(pre)>code,.uk-tile-primary:not(.uk-preserve-color) :not(pre)>code,.uk-tile-secondary:not(.uk-preserve-color) :not(pre)>code,.uk-card-primary.uk-card-body :not(pre)>code,.uk-card-primary>:not([class*='uk-card-media']) :not(pre)>code,.uk-card-secondary.uk-card-body :not(pre)>code,.uk-card-secondary>:not([class*='uk-card-media']) :not(pre)>code,.uk-overlay-primary :not(pre)>code,.uk-light :not(pre)>kbd,.uk-section-primary:not(.uk-preserve-color) :not(pre)>kbd,.uk-section-secondary:not(.uk-preserve-color) :not(pre)>kbd,.uk-tile-primary:not(.uk-preserve-color) :not(pre)>kbd,.uk-tile-secondary:not(.uk-preserve-color) :not(pre)>kbd,.uk-card-primary.uk-card-body :not(pre)>kbd,.uk-card-primary>:not([class*='uk-card-media']) :not(pre)>kbd,.uk-card-secondary.uk-card-body :not(pre)>kbd,.uk-card-secondary>:not([class*='uk-card-media']) :not(pre)>kbd,.uk-overlay-primary :not(pre)>kbd,.uk-light :not(pre)>samp,.uk-section-primary:not(.uk-preserve-color) :not(pre)>samp,.uk-section-secondary:not(.uk-preserve-color) :not(pre)>samp,.uk-tile-primary:not(.uk-preserve-color) :not(pre)>samp,.uk-tile-secondary:not(.uk-preserve-color) :not(pre)>samp,.uk-card-primary.uk-card-body :not(pre)>samp,.uk-card-primary>:not([class*='uk-card-media']) :not(pre)>samp,.uk-card-secondary.uk-card-body :not(pre)>samp,.uk-card-secondary>:not([class*='uk-card-media']) :not(pre)>samp,.uk-overlay-primary :not(pre)>samp{color:rgba(255,255,255,0.7);background:rgba(255,255,255,0.1)}.uk-light em,.uk-section-primary:not(.uk-preserve-color) em,.uk-section-secondary:not(.uk-preserve-color) em,.uk-tile-primary:not(.uk-preserve-color) em,.uk-tile-secondary:not(.uk-preserve-color) em,.uk-card-primary.uk-card-body em,.uk-card-primary>:not([class*='uk-card-media']) em,.uk-card-secondary.uk-card-body em,.uk-card-secondary>:not([class*='uk-card-media']) em,.uk-overlay-primary em{color:#fff}.uk-light h1,.uk-section-primary:not(.uk-preserve-color) h1,.uk-section-secondary:not(.uk-preserve-color) h1,.uk-tile-primary:not(.uk-preserve-color) h1,.uk-tile-secondary:not(.uk-preserve-color) h1,.uk-card-primary.uk-card-body h1,.uk-card-primary>:not([class*='uk-card-media']) h1,.uk-card-secondary.uk-card-body h1,.uk-card-secondary>:not([class*='uk-card-media']) h1,.uk-overlay-primary h1,.uk-light .uk-h1,.uk-section-primary:not(.uk-preserve-color) .uk-h1,.uk-section-secondary:not(.uk-preserve-color) .uk-h1,.uk-tile-primary:not(.uk-preserve-color) .uk-h1,.uk-tile-secondary:not(.uk-preserve-color) .uk-h1,.uk-card-primary.uk-card-body .uk-h1,.uk-card-primary>:not([class*='uk-card-media']) .uk-h1,.uk-card-secondary.uk-card-body .uk-h1,.uk-card-secondary>:not([class*='uk-card-media']) .uk-h1,.uk-overlay-primary .uk-h1,.uk-light h2,.uk-section-primary:not(.uk-preserve-color) h2,.uk-section-secondary:not(.uk-preserve-color) h2,.uk-tile-primary:not(.uk-preserve-color) h2,.uk-tile-secondary:not(.uk-preserve-color) h2,.uk-card-primary.uk-card-body h2,.uk-card-primary>:not([class*='uk-card-media']) h2,.uk-card-secondary.uk-card-body h2,.uk-card-secondary>:not([class*='uk-card-media']) h2,.uk-overlay-primary h2,.uk-light .uk-h2,.uk-section-primary:not(.uk-preserve-color) .uk-h2,.uk-section-secondary:not(.uk-preserve-color) .uk-h2,.uk-tile-primary:not(.uk-preserve-color) .uk-h2,.uk-tile-secondary:not(.uk-preserve-color) .uk-h2,.uk-card-primary.uk-card-body .uk-h2,.uk-card-primary>:not([class*='uk-card-media']) .uk-h2,.uk-card-secondary.uk-card-body .uk-h2,.uk-card-secondary>:not([class*='uk-card-media']) .uk-h2,.uk-overlay-primary .uk-h2,.uk-light h3,.uk-section-primary:not(.uk-preserve-color) h3,.uk-section-secondary:not(.uk-preserve-color) h3,.uk-tile-primary:not(.uk-preserve-color) h3,.uk-tile-secondary:not(.uk-preserve-color) h3,.uk-card-primary.uk-card-body h3,.uk-card-primary>:not([class*='uk-card-media']) h3,.uk-card-secondary.uk-card-body h3,.uk-card-secondary>:not([class*='uk-card-media']) h3,.uk-overlay-primary h3,.uk-light .uk-h3,.uk-section-primary:not(.uk-preserve-color) .uk-h3,.uk-section-secondary:not(.uk-preserve-color) .uk-h3,.uk-tile-primary:not(.uk-preserve-color) .uk-h3,.uk-tile-secondary:not(.uk-preserve-color) .uk-h3,.uk-card-primary.uk-card-body .uk-h3,.uk-card-primary>:not([class*='uk-card-media']) .uk-h3,.uk-card-secondary.uk-card-body .uk-h3,.uk-card-secondary>:not([class*='uk-card-media']) .uk-h3,.uk-overlay-primary .uk-h3,.uk-light h4,.uk-section-primary:not(.uk-preserve-color) h4,.uk-section-secondary:not(.uk-preserve-color) h4,.uk-tile-primary:not(.uk-preserve-color) h4,.uk-tile-secondary:not(.uk-preserve-color) h4,.uk-card-primary.uk-card-body h4,.uk-card-primary>:not([class*='uk-card-media']) h4,.uk-card-secondary.uk-card-body h4,.uk-card-secondary>:not([class*='uk-card-media']) h4,.uk-overlay-primary h4,.uk-light .uk-h4,.uk-section-primary:not(.uk-preserve-color) .uk-h4,.uk-section-secondary:not(.uk-preserve-color) .uk-h4,.uk-tile-primary:not(.uk-preserve-color) .uk-h4,.uk-tile-secondary:not(.uk-preserve-color) .uk-h4,.uk-card-primary.uk-card-body .uk-h4,.uk-card-primary>:not([class*='uk-card-media']) .uk-h4,.uk-card-secondary.uk-card-body .uk-h4,.uk-card-secondary>:not([class*='uk-card-media']) .uk-h4,.uk-overlay-primary .uk-h4,.uk-light h5,.uk-section-primary:not(.uk-preserve-color) h5,.uk-section-secondary:not(.uk-preserve-color) h5,.uk-tile-primary:not(.uk-preserve-color) h5,.uk-tile-secondary:not(.uk-preserve-color) h5,.uk-card-primary.uk-card-body h5,.uk-card-primary>:not([class*='uk-card-media']) h5,.uk-card-secondary.uk-card-body h5,.uk-card-secondary>:not([class*='uk-card-media']) h5,.uk-overlay-primary h5,.uk-light .uk-h5,.uk-section-primary:not(.uk-preserve-color) .uk-h5,.uk-section-secondary:not(.uk-preserve-color) .uk-h5,.uk-tile-primary:not(.uk-preserve-color) .uk-h5,.uk-tile-secondary:not(.uk-preserve-color) .uk-h5,.uk-card-primary.uk-card-body .uk-h5,.uk-card-primary>:not([class*='uk-card-media']) .uk-h5,.uk-card-secondary.uk-card-body .uk-h5,.uk-card-secondary>:not([class*='uk-card-media']) .uk-h5,.uk-overlay-primary .uk-h5,.uk-light h6,.uk-section-primary:not(.uk-preserve-color) h6,.uk-section-secondary:not(.uk-preserve-color) h6,.uk-tile-primary:not(.uk-preserve-color) h6,.uk-tile-secondary:not(.uk-preserve-color) h6,.uk-card-primary.uk-card-body h6,.uk-card-primary>:not([class*='uk-card-media']) h6,.uk-card-secondary.uk-card-body h6,.uk-card-secondary>:not([class*='uk-card-media']) h6,.uk-overlay-primary h6,.uk-light .uk-h6,.uk-section-primary:not(.uk-preserve-color) .uk-h6,.uk-section-secondary:not(.uk-preserve-color) .uk-h6,.uk-tile-primary:not(.uk-preserve-color) .uk-h6,.uk-tile-secondary:not(.uk-preserve-color) .uk-h6,.uk-card-primary.uk-card-body .uk-h6,.uk-card-primary>:not([class*='uk-card-media']) .uk-h6,.uk-card-secondary.uk-card-body .uk-h6,.uk-card-secondary>:not([class*='uk-card-media']) .uk-h6,.uk-overlay-primary .uk-h6{color:#fff}.uk-light blockquote,.uk-section-primary:not(.uk-preserve-color) blockquote,.uk-section-secondary:not(.uk-preserve-color) blockquote,.uk-tile-primary:not(.uk-preserve-color) blockquote,.uk-tile-secondary:not(.uk-preserve-color) blockquote,.uk-card-primary.uk-card-body blockquote,.uk-card-primary>:not([class*='uk-card-media']) blockquote,.uk-card-secondary.uk-card-body blockquote,.uk-card-secondary>:not([class*='uk-card-media']) blockquote,.uk-overlay-primary blockquote{color:#fff}.uk-light blockquote footer,.uk-section-primary:not(.uk-preserve-color) blockquote footer,.uk-section-secondary:not(.uk-preserve-color) blockquote footer,.uk-tile-primary:not(.uk-preserve-color) blockquote footer,.uk-tile-secondary:not(.uk-preserve-color) blockquote footer,.uk-card-primary.uk-card-body blockquote footer,.uk-card-primary>:not([class*='uk-card-media']) blockquote footer,.uk-card-secondary.uk-card-body blockquote footer,.uk-card-secondary>:not([class*='uk-card-media']) blockquote footer,.uk-overlay-primary blockquote footer{color:rgba(255,255,255,0.7)}.uk-light hr,.uk-section-primary:not(.uk-preserve-color) hr,.uk-section-secondary:not(.uk-preserve-color) hr,.uk-tile-primary:not(.uk-preserve-color) hr,.uk-tile-secondary:not(.uk-preserve-color) hr,.uk-card-primary.uk-card-body hr,.uk-card-primary>:not([class*='uk-card-media']) hr,.uk-card-secondary.uk-card-body hr,.uk-card-secondary>:not([class*='uk-card-media']) hr,.uk-overlay-primary hr,.uk-light .uk-hr,.uk-section-primary:not(.uk-preserve-color) .uk-hr,.uk-section-secondary:not(.uk-preserve-color) .uk-hr,.uk-tile-primary:not(.uk-preserve-color) .uk-hr,.uk-tile-secondary:not(.uk-preserve-color) .uk-hr,.uk-card-primary.uk-card-body .uk-hr,.uk-card-primary>:not([class*='uk-card-media']) .uk-hr,.uk-card-secondary.uk-card-body .uk-hr,.uk-card-secondary>:not([class*='uk-card-media']) .uk-hr,.uk-overlay-primary .uk-hr{border-top-color:rgba(255,255,255,0.2)}.uk-light a.uk-link-muted,.uk-section-primary:not(.uk-preserve-color) a.uk-link-muted,.uk-section-secondary:not(.uk-preserve-color) a.uk-link-muted,.uk-tile-primary:not(.uk-preserve-color) a.uk-link-muted,.uk-tile-secondary:not(.uk-preserve-color) a.uk-link-muted,.uk-card-primary.uk-card-body a.uk-link-muted,.uk-card-primary>:not([class*='uk-card-media']) a.uk-link-muted,.uk-card-secondary.uk-card-body a.uk-link-muted,.uk-card-secondary>:not([class*='uk-card-media']) a.uk-link-muted,.uk-overlay-primary a.uk-link-muted,.uk-light .uk-link-muted a,.uk-section-primary:not(.uk-preserve-color) .uk-link-muted a,.uk-section-secondary:not(.uk-preserve-color) .uk-link-muted a,.uk-tile-primary:not(.uk-preserve-color) .uk-link-muted a,.uk-tile-secondary:not(.uk-preserve-color) .uk-link-muted a,.uk-card-primary.uk-card-body .uk-link-muted a,.uk-card-primary>:not([class*='uk-card-media']) .uk-link-muted a,.uk-card-secondary.uk-card-body .uk-link-muted a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-link-muted a,.uk-overlay-primary .uk-link-muted a{color:rgba(255,255,255,0.5)}.uk-light a.uk-link-muted:hover,.uk-section-primary:not(.uk-preserve-color) a.uk-link-muted:hover,.uk-section-secondary:not(.uk-preserve-color) a.uk-link-muted:hover,.uk-tile-primary:not(.uk-preserve-color) a.uk-link-muted:hover,.uk-tile-secondary:not(.uk-preserve-color) a.uk-link-muted:hover,.uk-card-primary.uk-card-body a.uk-link-muted:hover,.uk-card-primary>:not([class*='uk-card-media']) a.uk-link-muted:hover,.uk-card-secondary.uk-card-body a.uk-link-muted:hover,.uk-card-secondary>:not([class*='uk-card-media']) a.uk-link-muted:hover,.uk-overlay-primary a.uk-link-muted:hover,.uk-light .uk-link-muted a:hover,.uk-section-primary:not(.uk-preserve-color) .uk-link-muted a:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-link-muted a:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-link-muted a:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-link-muted a:hover,.uk-card-primary.uk-card-body .uk-link-muted a:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-link-muted a:hover,.uk-card-secondary.uk-card-body .uk-link-muted a:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-link-muted a:hover,.uk-overlay-primary .uk-link-muted a:hover{color:rgba(255,255,255,0.7)}.uk-light a.uk-link-text:hover,.uk-section-primary:not(.uk-preserve-color) a.uk-link-text:hover,.uk-section-secondary:not(.uk-preserve-color) a.uk-link-text:hover,.uk-tile-primary:not(.uk-preserve-color) a.uk-link-text:hover,.uk-tile-secondary:not(.uk-preserve-color) a.uk-link-text:hover,.uk-card-primary.uk-card-body a.uk-link-text:hover,.uk-card-primary>:not([class*='uk-card-media']) a.uk-link-text:hover,.uk-card-secondary.uk-card-body a.uk-link-text:hover,.uk-card-secondary>:not([class*='uk-card-media']) a.uk-link-text:hover,.uk-overlay-primary a.uk-link-text:hover,.uk-light .uk-link-text a:hover,.uk-section-primary:not(.uk-preserve-color) .uk-link-text a:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-link-text a:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-link-text a:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-link-text a:hover,.uk-card-primary.uk-card-body .uk-link-text a:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-link-text a:hover,.uk-card-secondary.uk-card-body .uk-link-text a:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-link-text a:hover,.uk-overlay-primary .uk-link-text a:hover{color:rgba(255,255,255,0.5)}.uk-light a.uk-link-heading:hover,.uk-section-primary:not(.uk-preserve-color) a.uk-link-heading:hover,.uk-section-secondary:not(.uk-preserve-color) a.uk-link-heading:hover,.uk-tile-primary:not(.uk-preserve-color) a.uk-link-heading:hover,.uk-tile-secondary:not(.uk-preserve-color) a.uk-link-heading:hover,.uk-card-primary.uk-card-body a.uk-link-heading:hover,.uk-card-primary>:not([class*='uk-card-media']) a.uk-link-heading:hover,.uk-card-secondary.uk-card-body a.uk-link-heading:hover,.uk-card-secondary>:not([class*='uk-card-media']) a.uk-link-heading:hover,.uk-overlay-primary a.uk-link-heading:hover,.uk-light .uk-link-heading a:hover,.uk-section-primary:not(.uk-preserve-color) .uk-link-heading a:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-link-heading a:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-link-heading a:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-link-heading a:hover,.uk-card-primary.uk-card-body .uk-link-heading a:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-link-heading a:hover,.uk-card-secondary.uk-card-body .uk-link-heading a:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-link-heading a:hover,.uk-overlay-primary .uk-link-heading a:hover{color:#fff}.uk-light .uk-heading-divider,.uk-section-primary:not(.uk-preserve-color) .uk-heading-divider,.uk-section-secondary:not(.uk-preserve-color) .uk-heading-divider,.uk-tile-primary:not(.uk-preserve-color) .uk-heading-divider,.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-divider,.uk-card-primary.uk-card-body .uk-heading-divider,.uk-card-primary>:not([class*='uk-card-media']) .uk-heading-divider,.uk-card-secondary.uk-card-body .uk-heading-divider,.uk-card-secondary>:not([class*='uk-card-media']) .uk-heading-divider,.uk-overlay-primary .uk-heading-divider{border-bottom-color:rgba(255,255,255,0.2)}.uk-light .uk-heading-bullet::before,.uk-section-primary:not(.uk-preserve-color) .uk-heading-bullet::before,.uk-section-secondary:not(.uk-preserve-color) .uk-heading-bullet::before,.uk-tile-primary:not(.uk-preserve-color) .uk-heading-bullet::before,.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-bullet::before,.uk-card-primary.uk-card-body .uk-heading-bullet::before,.uk-card-primary>:not([class*='uk-card-media']) .uk-heading-bullet::before,.uk-card-secondary.uk-card-body .uk-heading-bullet::before,.uk-card-secondary>:not([class*='uk-card-media']) .uk-heading-bullet::before,.uk-overlay-primary .uk-heading-bullet::before{border-left-color:rgba(255,255,255,0.2)}.uk-light .uk-heading-line>::before,.uk-section-primary:not(.uk-preserve-color) .uk-heading-line>::before,.uk-section-secondary:not(.uk-preserve-color) .uk-heading-line>::before,.uk-tile-primary:not(.uk-preserve-color) .uk-heading-line>::before,.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-line>::before,.uk-card-primary.uk-card-body .uk-heading-line>::before,.uk-card-primary>:not([class*='uk-card-media']) .uk-heading-line>::before,.uk-card-secondary.uk-card-body .uk-heading-line>::before,.uk-card-secondary>:not([class*='uk-card-media']) .uk-heading-line>::before,.uk-overlay-primary .uk-heading-line>::before,.uk-light .uk-heading-line>::after,.uk-section-primary:not(.uk-preserve-color) .uk-heading-line>::after,.uk-section-secondary:not(.uk-preserve-color) .uk-heading-line>::after,.uk-tile-primary:not(.uk-preserve-color) .uk-heading-line>::after,.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-line>::after,.uk-card-primary.uk-card-body .uk-heading-line>::after,.uk-card-primary>:not([class*='uk-card-media']) .uk-heading-line>::after,.uk-card-secondary.uk-card-body .uk-heading-line>::after,.uk-card-secondary>:not([class*='uk-card-media']) .uk-heading-line>::after,.uk-overlay-primary .uk-heading-line>::after{border-bottom-color:rgba(255,255,255,0.2)}.uk-light .uk-divider-icon,.uk-section-primary:not(.uk-preserve-color) .uk-divider-icon,.uk-section-secondary:not(.uk-preserve-color) .uk-divider-icon,.uk-tile-primary:not(.uk-preserve-color) .uk-divider-icon,.uk-tile-secondary:not(.uk-preserve-color) .uk-divider-icon,.uk-card-primary.uk-card-body .uk-divider-icon,.uk-card-primary>:not([class*='uk-card-media']) .uk-divider-icon,.uk-card-secondary.uk-card-body .uk-divider-icon,.uk-card-secondary>:not([class*='uk-card-media']) .uk-divider-icon,.uk-overlay-primary .uk-divider-icon{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22none%22%20stroke%3D%22rgba(255,255,255,0.2)%22%20stroke-width%3D%222%22%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%227%22%20%2F%3E%0A%3C%2Fsvg%3E%0A")}.uk-light .uk-divider-icon::before,.uk-section-primary:not(.uk-preserve-color) .uk-divider-icon::before,.uk-section-secondary:not(.uk-preserve-color) .uk-divider-icon::before,.uk-tile-primary:not(.uk-preserve-color) .uk-divider-icon::before,.uk-tile-secondary:not(.uk-preserve-color) .uk-divider-icon::before,.uk-card-primary.uk-card-body .uk-divider-icon::before,.uk-card-primary>:not([class*='uk-card-media']) .uk-divider-icon::before,.uk-card-secondary.uk-card-body .uk-divider-icon::before,.uk-card-secondary>:not([class*='uk-card-media']) .uk-divider-icon::before,.uk-overlay-primary .uk-divider-icon::before,.uk-light .uk-divider-icon::after,.uk-section-primary:not(.uk-preserve-color) .uk-divider-icon::after,.uk-section-secondary:not(.uk-preserve-color) .uk-divider-icon::after,.uk-tile-primary:not(.uk-preserve-color) .uk-divider-icon::after,.uk-tile-secondary:not(.uk-preserve-color) .uk-divider-icon::after,.uk-card-primary.uk-card-body .uk-divider-icon::after,.uk-card-primary>:not([class*='uk-card-media']) .uk-divider-icon::after,.uk-card-secondary.uk-card-body .uk-divider-icon::after,.uk-card-secondary>:not([class*='uk-card-media']) .uk-divider-icon::after,.uk-overlay-primary .uk-divider-icon::after{border-bottom-color:rgba(255,255,255,0.2)}.uk-light .uk-divider-small::after,.uk-section-primary:not(.uk-preserve-color) .uk-divider-small::after,.uk-section-secondary:not(.uk-preserve-color) .uk-divider-small::after,.uk-tile-primary:not(.uk-preserve-color) .uk-divider-small::after,.uk-tile-secondary:not(.uk-preserve-color) .uk-divider-small::after,.uk-card-primary.uk-card-body .uk-divider-small::after,.uk-card-primary>:not([class*='uk-card-media']) .uk-divider-small::after,.uk-card-secondary.uk-card-body .uk-divider-small::after,.uk-card-secondary>:not([class*='uk-card-media']) .uk-divider-small::after,.uk-overlay-primary .uk-divider-small::after{border-top-color:rgba(255,255,255,0.2)}.uk-light .uk-list-divider>li:nth-child(n+2),.uk-section-primary:not(.uk-preserve-color) .uk-list-divider>li:nth-child(n+2),.uk-section-secondary:not(.uk-preserve-color) .uk-list-divider>li:nth-child(n+2),.uk-tile-primary:not(.uk-preserve-color) .uk-list-divider>li:nth-child(n+2),.uk-tile-secondary:not(.uk-preserve-color) .uk-list-divider>li:nth-child(n+2),.uk-card-primary.uk-card-body .uk-list-divider>li:nth-child(n+2),.uk-card-primary>:not([class*='uk-card-media']) .uk-list-divider>li:nth-child(n+2),.uk-card-secondary.uk-card-body .uk-list-divider>li:nth-child(n+2),.uk-card-secondary>:not([class*='uk-card-media']) .uk-list-divider>li:nth-child(n+2),.uk-overlay-primary .uk-list-divider>li:nth-child(n+2){border-top-color:rgba(255,255,255,0.2)}.uk-light .uk-list-striped>li:nth-of-type(odd),.uk-section-primary:not(.uk-preserve-color) .uk-list-striped>li:nth-of-type(odd),.uk-section-secondary:not(.uk-preserve-color) .uk-list-striped>li:nth-of-type(odd),.uk-tile-primary:not(.uk-preserve-color) .uk-list-striped>li:nth-of-type(odd),.uk-tile-secondary:not(.uk-preserve-color) .uk-list-striped>li:nth-of-type(odd),.uk-card-primary.uk-card-body .uk-list-striped>li:nth-of-type(odd),.uk-card-primary>:not([class*='uk-card-media']) .uk-list-striped>li:nth-of-type(odd),.uk-card-secondary.uk-card-body .uk-list-striped>li:nth-of-type(odd),.uk-card-secondary>:not([class*='uk-card-media']) .uk-list-striped>li:nth-of-type(odd),.uk-overlay-primary .uk-list-striped>li:nth-of-type(odd){border-top-color:rgba(255,255,255,0.2);border-bottom-color:rgba(255,255,255,0.2)}.uk-light .uk-list-striped>li:nth-of-type(odd),.uk-section-primary:not(.uk-preserve-color) .uk-list-striped>li:nth-of-type(odd),.uk-section-secondary:not(.uk-preserve-color) .uk-list-striped>li:nth-of-type(odd),.uk-tile-primary:not(.uk-preserve-color) .uk-list-striped>li:nth-of-type(odd),.uk-tile-secondary:not(.uk-preserve-color) .uk-list-striped>li:nth-of-type(odd),.uk-card-primary.uk-card-body .uk-list-striped>li:nth-of-type(odd),.uk-card-primary>:not([class*='uk-card-media']) .uk-list-striped>li:nth-of-type(odd),.uk-card-secondary.uk-card-body .uk-list-striped>li:nth-of-type(odd),.uk-card-secondary>:not([class*='uk-card-media']) .uk-list-striped>li:nth-of-type(odd),.uk-overlay-primary .uk-list-striped>li:nth-of-type(odd){background-color:rgba(255,255,255,0.1)}.uk-light .uk-list-bullet>li::before,.uk-section-primary:not(.uk-preserve-color) .uk-list-bullet>li::before,.uk-section-secondary:not(.uk-preserve-color) .uk-list-bullet>li::before,.uk-tile-primary:not(.uk-preserve-color) .uk-list-bullet>li::before,.uk-tile-secondary:not(.uk-preserve-color) .uk-list-bullet>li::before,.uk-card-primary.uk-card-body .uk-list-bullet>li::before,.uk-card-primary>:not([class*='uk-card-media']) .uk-list-bullet>li::before,.uk-card-secondary.uk-card-body .uk-list-bullet>li::before,.uk-card-secondary>:not([class*='uk-card-media']) .uk-list-bullet>li::before,.uk-overlay-primary .uk-list-bullet>li::before{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%226%22%20height%3D%226%22%20viewBox%3D%220%200%206%206%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22rgba(255,255,255,0.7)%22%20cx%3D%223%22%20cy%3D%223%22%20r%3D%223%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-light .uk-icon-link,.uk-section-primary:not(.uk-preserve-color) .uk-icon-link,.uk-section-secondary:not(.uk-preserve-color) .uk-icon-link,.uk-tile-primary:not(.uk-preserve-color) .uk-icon-link,.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-link,.uk-card-primary.uk-card-body .uk-icon-link,.uk-card-primary>:not([class*='uk-card-media']) .uk-icon-link,.uk-card-secondary.uk-card-body .uk-icon-link,.uk-card-secondary>:not([class*='uk-card-media']) .uk-icon-link,.uk-overlay-primary .uk-icon-link{color:rgba(255,255,255,0.5)}.uk-light .uk-icon-link:hover,.uk-section-primary:not(.uk-preserve-color) .uk-icon-link:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-icon-link:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-icon-link:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-link:hover,.uk-card-primary.uk-card-body .uk-icon-link:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-icon-link:hover,.uk-card-secondary.uk-card-body .uk-icon-link:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-icon-link:hover,.uk-overlay-primary .uk-icon-link:hover,.uk-light .uk-icon-link:focus,.uk-section-primary:not(.uk-preserve-color) .uk-icon-link:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-icon-link:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-icon-link:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-link:focus,.uk-card-primary.uk-card-body .uk-icon-link:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-icon-link:focus,.uk-card-secondary.uk-card-body .uk-icon-link:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-icon-link:focus,.uk-overlay-primary .uk-icon-link:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-icon-link:active,.uk-section-primary:not(.uk-preserve-color) .uk-icon-link:active,.uk-section-secondary:not(.uk-preserve-color) .uk-icon-link:active,.uk-tile-primary:not(.uk-preserve-color) .uk-icon-link:active,.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-link:active,.uk-card-primary.uk-card-body .uk-icon-link:active,.uk-card-primary>:not([class*='uk-card-media']) .uk-icon-link:active,.uk-card-secondary.uk-card-body .uk-icon-link:active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-icon-link:active,.uk-overlay-primary .uk-icon-link:active,.uk-light .uk-active>.uk-icon-link,.uk-section-primary:not(.uk-preserve-color) .uk-active>.uk-icon-link,.uk-section-secondary:not(.uk-preserve-color) .uk-active>.uk-icon-link,.uk-tile-primary:not(.uk-preserve-color) .uk-active>.uk-icon-link,.uk-tile-secondary:not(.uk-preserve-color) .uk-active>.uk-icon-link,.uk-card-primary.uk-card-body .uk-active>.uk-icon-link,.uk-card-primary>:not([class*='uk-card-media']) .uk-active>.uk-icon-link,.uk-card-secondary.uk-card-body .uk-active>.uk-icon-link,.uk-card-secondary>:not([class*='uk-card-media']) .uk-active>.uk-icon-link,.uk-overlay-primary .uk-active>.uk-icon-link{color:rgba(255,255,255,0.7)}.uk-light .uk-icon-button,.uk-section-primary:not(.uk-preserve-color) .uk-icon-button,.uk-section-secondary:not(.uk-preserve-color) .uk-icon-button,.uk-tile-primary:not(.uk-preserve-color) .uk-icon-button,.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-button,.uk-card-primary.uk-card-body .uk-icon-button,.uk-card-primary>:not([class*='uk-card-media']) .uk-icon-button,.uk-card-secondary.uk-card-body .uk-icon-button,.uk-card-secondary>:not([class*='uk-card-media']) .uk-icon-button,.uk-overlay-primary .uk-icon-button{background-color:rgba(255,255,255,0.1);color:rgba(255,255,255,0.5)}.uk-light .uk-icon-button:hover,.uk-section-primary:not(.uk-preserve-color) .uk-icon-button:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-icon-button:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-icon-button:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-button:hover,.uk-card-primary.uk-card-body .uk-icon-button:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-icon-button:hover,.uk-card-secondary.uk-card-body .uk-icon-button:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-icon-button:hover,.uk-overlay-primary .uk-icon-button:hover,.uk-light .uk-icon-button:focus,.uk-section-primary:not(.uk-preserve-color) .uk-icon-button:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-icon-button:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-icon-button:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-button:focus,.uk-card-primary.uk-card-body .uk-icon-button:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-icon-button:focus,.uk-card-secondary.uk-card-body .uk-icon-button:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-icon-button:focus,.uk-overlay-primary .uk-icon-button:focus{background-color:rgba(242,242,242,0.1);color:rgba(255,255,255,0.7)}.uk-light .uk-icon-button:active,.uk-section-primary:not(.uk-preserve-color) .uk-icon-button:active,.uk-section-secondary:not(.uk-preserve-color) .uk-icon-button:active,.uk-tile-primary:not(.uk-preserve-color) .uk-icon-button:active,.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-button:active,.uk-card-primary.uk-card-body .uk-icon-button:active,.uk-card-primary>:not([class*='uk-card-media']) .uk-icon-button:active,.uk-card-secondary.uk-card-body .uk-icon-button:active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-icon-button:active,.uk-overlay-primary .uk-icon-button:active{background-color:rgba(230,230,230,0.1);color:rgba(255,255,255,0.7)}.uk-light .uk-input,.uk-section-primary:not(.uk-preserve-color) .uk-input,.uk-section-secondary:not(.uk-preserve-color) .uk-input,.uk-tile-primary:not(.uk-preserve-color) .uk-input,.uk-tile-secondary:not(.uk-preserve-color) .uk-input,.uk-card-primary.uk-card-body .uk-input,.uk-card-primary>:not([class*='uk-card-media']) .uk-input,.uk-card-secondary.uk-card-body .uk-input,.uk-card-secondary>:not([class*='uk-card-media']) .uk-input,.uk-overlay-primary .uk-input,.uk-light .uk-select,.uk-section-primary:not(.uk-preserve-color) .uk-select,.uk-section-secondary:not(.uk-preserve-color) .uk-select,.uk-tile-primary:not(.uk-preserve-color) .uk-select,.uk-tile-secondary:not(.uk-preserve-color) .uk-select,.uk-card-primary.uk-card-body .uk-select,.uk-card-primary>:not([class*='uk-card-media']) .uk-select,.uk-card-secondary.uk-card-body .uk-select,.uk-card-secondary>:not([class*='uk-card-media']) .uk-select,.uk-overlay-primary .uk-select,.uk-light .uk-textarea,.uk-section-primary:not(.uk-preserve-color) .uk-textarea,.uk-section-secondary:not(.uk-preserve-color) .uk-textarea,.uk-tile-primary:not(.uk-preserve-color) .uk-textarea,.uk-tile-secondary:not(.uk-preserve-color) .uk-textarea,.uk-card-primary.uk-card-body .uk-textarea,.uk-card-primary>:not([class*='uk-card-media']) .uk-textarea,.uk-card-secondary.uk-card-body .uk-textarea,.uk-card-secondary>:not([class*='uk-card-media']) .uk-textarea,.uk-overlay-primary .uk-textarea{background-color:rgba(255,255,255,0.1);color:rgba(255,255,255,0.7);background-clip:padding-box;border-color:rgba(255,255,255,0.2)}.uk-light .uk-input:focus,.uk-section-primary:not(.uk-preserve-color) .uk-input:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-input:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-input:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-input:focus,.uk-card-primary.uk-card-body .uk-input:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-input:focus,.uk-card-secondary.uk-card-body .uk-input:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-input:focus,.uk-overlay-primary .uk-input:focus,.uk-light .uk-select:focus,.uk-section-primary:not(.uk-preserve-color) .uk-select:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-select:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-select:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-select:focus,.uk-card-primary.uk-card-body .uk-select:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-select:focus,.uk-card-secondary.uk-card-body .uk-select:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-select:focus,.uk-overlay-primary .uk-select:focus,.uk-light .uk-textarea:focus,.uk-section-primary:not(.uk-preserve-color) .uk-textarea:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-textarea:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-textarea:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-textarea:focus,.uk-card-primary.uk-card-body .uk-textarea:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-textarea:focus,.uk-card-secondary.uk-card-body .uk-textarea:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-textarea:focus,.uk-overlay-primary .uk-textarea:focus{background-color:rgba(255,255,255,0.1);color:rgba(255,255,255,0.7);border-color:rgba(255,255,255,0.7)}.uk-light .uk-input:-ms-input-placeholder,.uk-section-primary:not(.uk-preserve-color) .uk-input:-ms-input-placeholder,.uk-section-secondary:not(.uk-preserve-color) .uk-input:-ms-input-placeholder,.uk-tile-primary:not(.uk-preserve-color) .uk-input:-ms-input-placeholder,.uk-tile-secondary:not(.uk-preserve-color) .uk-input:-ms-input-placeholder,.uk-card-primary.uk-card-body .uk-input:-ms-input-placeholder,.uk-card-primary>:not([class*='uk-card-media']) .uk-input:-ms-input-placeholder,.uk-card-secondary.uk-card-body .uk-input:-ms-input-placeholder,.uk-card-secondary>:not([class*='uk-card-media']) .uk-input:-ms-input-placeholder,.uk-overlay-primary .uk-input:-ms-input-placeholder{color:rgba(255,255,255,0.5) !important}.uk-light .uk-input::placeholder,.uk-section-primary:not(.uk-preserve-color) .uk-input::placeholder,.uk-section-secondary:not(.uk-preserve-color) .uk-input::placeholder,.uk-tile-primary:not(.uk-preserve-color) .uk-input::placeholder,.uk-tile-secondary:not(.uk-preserve-color) .uk-input::placeholder,.uk-card-primary.uk-card-body .uk-input::placeholder,.uk-card-primary>:not([class*='uk-card-media']) .uk-input::placeholder,.uk-card-secondary.uk-card-body .uk-input::placeholder,.uk-card-secondary>:not([class*='uk-card-media']) .uk-input::placeholder,.uk-overlay-primary .uk-input::placeholder{color:rgba(255,255,255,0.5)}.uk-light .uk-textarea:-ms-input-placeholder,.uk-section-primary:not(.uk-preserve-color) .uk-textarea:-ms-input-placeholder,.uk-section-secondary:not(.uk-preserve-color) .uk-textarea:-ms-input-placeholder,.uk-tile-primary:not(.uk-preserve-color) .uk-textarea:-ms-input-placeholder,.uk-tile-secondary:not(.uk-preserve-color) .uk-textarea:-ms-input-placeholder,.uk-card-primary.uk-card-body .uk-textarea:-ms-input-placeholder,.uk-card-primary>:not([class*='uk-card-media']) .uk-textarea:-ms-input-placeholder,.uk-card-secondary.uk-card-body .uk-textarea:-ms-input-placeholder,.uk-card-secondary>:not([class*='uk-card-media']) .uk-textarea:-ms-input-placeholder,.uk-overlay-primary .uk-textarea:-ms-input-placeholder{color:rgba(255,255,255,0.5) !important}.uk-light .uk-textarea::placeholder,.uk-section-primary:not(.uk-preserve-color) .uk-textarea::placeholder,.uk-section-secondary:not(.uk-preserve-color) .uk-textarea::placeholder,.uk-tile-primary:not(.uk-preserve-color) .uk-textarea::placeholder,.uk-tile-secondary:not(.uk-preserve-color) .uk-textarea::placeholder,.uk-card-primary.uk-card-body .uk-textarea::placeholder,.uk-card-primary>:not([class*='uk-card-media']) .uk-textarea::placeholder,.uk-card-secondary.uk-card-body .uk-textarea::placeholder,.uk-card-secondary>:not([class*='uk-card-media']) .uk-textarea::placeholder,.uk-overlay-primary .uk-textarea::placeholder{color:rgba(255,255,255,0.5)}.uk-light .uk-select:not([multiple]):not([size]),.uk-section-primary:not(.uk-preserve-color) .uk-select:not([multiple]):not([size]),.uk-section-secondary:not(.uk-preserve-color) .uk-select:not([multiple]):not([size]),.uk-tile-primary:not(.uk-preserve-color) .uk-select:not([multiple]):not([size]),.uk-tile-secondary:not(.uk-preserve-color) .uk-select:not([multiple]):not([size]),.uk-card-primary.uk-card-body .uk-select:not([multiple]):not([size]),.uk-card-primary>:not([class*='uk-card-media']) .uk-select:not([multiple]):not([size]),.uk-card-secondary.uk-card-body .uk-select:not([multiple]):not([size]),.uk-card-secondary>:not([class*='uk-card-media']) .uk-select:not([multiple]):not([size]),.uk-overlay-primary .uk-select:not([multiple]):not([size]){background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22rgba(255,255,255,0.7)%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22rgba(255,255,255,0.7)%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A")}.uk-light .uk-radio,.uk-section-primary:not(.uk-preserve-color) .uk-radio,.uk-section-secondary:not(.uk-preserve-color) .uk-radio,.uk-tile-primary:not(.uk-preserve-color) .uk-radio,.uk-tile-secondary:not(.uk-preserve-color) .uk-radio,.uk-card-primary.uk-card-body .uk-radio,.uk-card-primary>:not([class*='uk-card-media']) .uk-radio,.uk-card-secondary.uk-card-body .uk-radio,.uk-card-secondary>:not([class*='uk-card-media']) .uk-radio,.uk-overlay-primary .uk-radio,.uk-light .uk-checkbox,.uk-section-primary:not(.uk-preserve-color) .uk-checkbox,.uk-section-secondary:not(.uk-preserve-color) .uk-checkbox,.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox,.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox,.uk-card-primary.uk-card-body .uk-checkbox,.uk-card-primary>:not([class*='uk-card-media']) .uk-checkbox,.uk-card-secondary.uk-card-body .uk-checkbox,.uk-card-secondary>:not([class*='uk-card-media']) .uk-checkbox,.uk-overlay-primary .uk-checkbox{background-color:rgba(242,242,242,0.1);border-color:rgba(255,255,255,0.2)}.uk-light .uk-radio:focus,.uk-section-primary:not(.uk-preserve-color) .uk-radio:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-radio:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-radio:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-radio:focus,.uk-card-primary.uk-card-body .uk-radio:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-radio:focus,.uk-card-secondary.uk-card-body .uk-radio:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-radio:focus,.uk-overlay-primary .uk-radio:focus,.uk-light .uk-checkbox:focus,.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-checkbox:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:focus,.uk-card-primary.uk-card-body .uk-checkbox:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-checkbox:focus,.uk-card-secondary.uk-card-body .uk-checkbox:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-checkbox:focus,.uk-overlay-primary .uk-checkbox:focus{border-color:rgba(255,255,255,0.7)}.uk-light .uk-radio:checked,.uk-section-primary:not(.uk-preserve-color) .uk-radio:checked,.uk-section-secondary:not(.uk-preserve-color) .uk-radio:checked,.uk-tile-primary:not(.uk-preserve-color) .uk-radio:checked,.uk-tile-secondary:not(.uk-preserve-color) .uk-radio:checked,.uk-card-primary.uk-card-body .uk-radio:checked,.uk-card-primary>:not([class*='uk-card-media']) .uk-radio:checked,.uk-card-secondary.uk-card-body .uk-radio:checked,.uk-card-secondary>:not([class*='uk-card-media']) .uk-radio:checked,.uk-overlay-primary .uk-radio:checked,.uk-light .uk-checkbox:checked,.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:checked,.uk-section-secondary:not(.uk-preserve-color) .uk-checkbox:checked,.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:checked,.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:checked,.uk-card-primary.uk-card-body .uk-checkbox:checked,.uk-card-primary>:not([class*='uk-card-media']) .uk-checkbox:checked,.uk-card-secondary.uk-card-body .uk-checkbox:checked,.uk-card-secondary>:not([class*='uk-card-media']) .uk-checkbox:checked,.uk-overlay-primary .uk-checkbox:checked,.uk-light .uk-checkbox:indeterminate,.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate,.uk-section-secondary:not(.uk-preserve-color) .uk-checkbox:indeterminate,.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate,.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:indeterminate,.uk-card-primary.uk-card-body .uk-checkbox:indeterminate,.uk-card-primary>:not([class*='uk-card-media']) .uk-checkbox:indeterminate,.uk-card-secondary.uk-card-body .uk-checkbox:indeterminate,.uk-card-secondary>:not([class*='uk-card-media']) .uk-checkbox:indeterminate,.uk-overlay-primary .uk-checkbox:indeterminate{background-color:#fff;border-color:rgba(255,255,255,0.7)}.uk-light .uk-radio:checked:focus,.uk-section-primary:not(.uk-preserve-color) .uk-radio:checked:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-radio:checked:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-radio:checked:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-radio:checked:focus,.uk-card-primary.uk-card-body .uk-radio:checked:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-radio:checked:focus,.uk-card-secondary.uk-card-body .uk-radio:checked:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-radio:checked:focus,.uk-overlay-primary .uk-radio:checked:focus,.uk-light .uk-checkbox:checked:focus,.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:checked:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-checkbox:checked:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:checked:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:checked:focus,.uk-card-primary.uk-card-body .uk-checkbox:checked:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-checkbox:checked:focus,.uk-card-secondary.uk-card-body .uk-checkbox:checked:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-checkbox:checked:focus,.uk-overlay-primary .uk-checkbox:checked:focus,.uk-light .uk-checkbox:indeterminate:focus,.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-checkbox:indeterminate:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:indeterminate:focus,.uk-card-primary.uk-card-body .uk-checkbox:indeterminate:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-checkbox:indeterminate:focus,.uk-card-secondary.uk-card-body .uk-checkbox:indeterminate:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-checkbox:indeterminate:focus,.uk-overlay-primary .uk-checkbox:indeterminate:focus{background-color:#e6e6e6}.uk-light .uk-radio:checked,.uk-section-primary:not(.uk-preserve-color) .uk-radio:checked,.uk-section-secondary:not(.uk-preserve-color) .uk-radio:checked,.uk-tile-primary:not(.uk-preserve-color) .uk-radio:checked,.uk-tile-secondary:not(.uk-preserve-color) .uk-radio:checked,.uk-card-primary.uk-card-body .uk-radio:checked,.uk-card-primary>:not([class*='uk-card-media']) .uk-radio:checked,.uk-card-secondary.uk-card-body .uk-radio:checked,.uk-card-secondary>:not([class*='uk-card-media']) .uk-radio:checked,.uk-overlay-primary .uk-radio:checked{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23323247%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-light .uk-checkbox:checked,.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:checked,.uk-section-secondary:not(.uk-preserve-color) .uk-checkbox:checked,.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:checked,.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:checked,.uk-card-primary.uk-card-body .uk-checkbox:checked,.uk-card-primary>:not([class*='uk-card-media']) .uk-checkbox:checked,.uk-card-secondary.uk-card-body .uk-checkbox:checked,.uk-card-secondary>:not([class*='uk-card-media']) .uk-checkbox:checked,.uk-overlay-primary .uk-checkbox:checked{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23323247%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A")}.uk-light .uk-checkbox:indeterminate,.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate,.uk-section-secondary:not(.uk-preserve-color) .uk-checkbox:indeterminate,.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate,.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:indeterminate,.uk-card-primary.uk-card-body .uk-checkbox:indeterminate,.uk-card-primary>:not([class*='uk-card-media']) .uk-checkbox:indeterminate,.uk-card-secondary.uk-card-body .uk-checkbox:indeterminate,.uk-card-secondary>:not([class*='uk-card-media']) .uk-checkbox:indeterminate,.uk-overlay-primary .uk-checkbox:indeterminate{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23323247%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-light .uk-form-label,.uk-section-primary:not(.uk-preserve-color) .uk-form-label,.uk-section-secondary:not(.uk-preserve-color) .uk-form-label,.uk-tile-primary:not(.uk-preserve-color) .uk-form-label,.uk-tile-secondary:not(.uk-preserve-color) .uk-form-label,.uk-card-primary.uk-card-body .uk-form-label,.uk-card-primary>:not([class*='uk-card-media']) .uk-form-label,.uk-card-secondary.uk-card-body .uk-form-label,.uk-card-secondary>:not([class*='uk-card-media']) .uk-form-label,.uk-overlay-primary .uk-form-label{color:#fff}.uk-light .uk-button-default,.uk-section-primary:not(.uk-preserve-color) .uk-button-default,.uk-section-secondary:not(.uk-preserve-color) .uk-button-default,.uk-tile-primary:not(.uk-preserve-color) .uk-button-default,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-default,.uk-card-primary.uk-card-body .uk-button-default,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-default,.uk-card-secondary.uk-card-body .uk-button-default,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-default,.uk-overlay-primary .uk-button-default{background-color:transparent;color:#fff;border-color:rgba(255,255,255,0.7)}.uk-light .uk-button-default:hover,.uk-section-primary:not(.uk-preserve-color) .uk-button-default:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-button-default:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-button-default:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-default:hover,.uk-card-primary.uk-card-body .uk-button-default:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-default:hover,.uk-card-secondary.uk-card-body .uk-button-default:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-default:hover,.uk-overlay-primary .uk-button-default:hover,.uk-light .uk-button-default:focus,.uk-section-primary:not(.uk-preserve-color) .uk-button-default:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-button-default:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-button-default:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-default:focus,.uk-card-primary.uk-card-body .uk-button-default:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-default:focus,.uk-card-secondary.uk-card-body .uk-button-default:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-default:focus,.uk-overlay-primary .uk-button-default:focus{background-color:transparent;color:#fff;border-color:#fff}.uk-light .uk-button-default:active,.uk-section-primary:not(.uk-preserve-color) .uk-button-default:active,.uk-section-secondary:not(.uk-preserve-color) .uk-button-default:active,.uk-tile-primary:not(.uk-preserve-color) .uk-button-default:active,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-default:active,.uk-card-primary.uk-card-body .uk-button-default:active,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-default:active,.uk-card-secondary.uk-card-body .uk-button-default:active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-default:active,.uk-overlay-primary .uk-button-default:active,.uk-light .uk-button-default.uk-active,.uk-section-primary:not(.uk-preserve-color) .uk-button-default.uk-active,.uk-section-secondary:not(.uk-preserve-color) .uk-button-default.uk-active,.uk-tile-primary:not(.uk-preserve-color) .uk-button-default.uk-active,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-default.uk-active,.uk-card-primary.uk-card-body .uk-button-default.uk-active,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-default.uk-active,.uk-card-secondary.uk-card-body .uk-button-default.uk-active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-default.uk-active,.uk-overlay-primary .uk-button-default.uk-active{background-color:transparent;color:#fff;border-color:#fff}.uk-light .uk-button-primary,.uk-section-primary:not(.uk-preserve-color) .uk-button-primary,.uk-section-secondary:not(.uk-preserve-color) .uk-button-primary,.uk-tile-primary:not(.uk-preserve-color) .uk-button-primary,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-primary,.uk-card-primary.uk-card-body .uk-button-primary,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-primary,.uk-card-secondary.uk-card-body .uk-button-primary,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-primary,.uk-overlay-primary .uk-button-primary{background-color:#fff;color:#323247}.uk-light .uk-button-primary:hover,.uk-section-primary:not(.uk-preserve-color) .uk-button-primary:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-button-primary:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-button-primary:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-primary:hover,.uk-card-primary.uk-card-body .uk-button-primary:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-primary:hover,.uk-card-secondary.uk-card-body .uk-button-primary:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-primary:hover,.uk-overlay-primary .uk-button-primary:hover,.uk-light .uk-button-primary:focus,.uk-section-primary:not(.uk-preserve-color) .uk-button-primary:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-button-primary:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-button-primary:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-primary:focus,.uk-card-primary.uk-card-body .uk-button-primary:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-primary:focus,.uk-card-secondary.uk-card-body .uk-button-primary:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-primary:focus,.uk-overlay-primary .uk-button-primary:focus{background-color:#f2f2f2;color:#323247}.uk-light .uk-button-primary:active,.uk-section-primary:not(.uk-preserve-color) .uk-button-primary:active,.uk-section-secondary:not(.uk-preserve-color) .uk-button-primary:active,.uk-tile-primary:not(.uk-preserve-color) .uk-button-primary:active,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-primary:active,.uk-card-primary.uk-card-body .uk-button-primary:active,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-primary:active,.uk-card-secondary.uk-card-body .uk-button-primary:active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-primary:active,.uk-overlay-primary .uk-button-primary:active,.uk-light .uk-button-primary.uk-active,.uk-section-primary:not(.uk-preserve-color) .uk-button-primary.uk-active,.uk-section-secondary:not(.uk-preserve-color) .uk-button-primary.uk-active,.uk-tile-primary:not(.uk-preserve-color) .uk-button-primary.uk-active,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-primary.uk-active,.uk-card-primary.uk-card-body .uk-button-primary.uk-active,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-primary.uk-active,.uk-card-secondary.uk-card-body .uk-button-primary.uk-active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-primary.uk-active,.uk-overlay-primary .uk-button-primary.uk-active{background-color:#e6e6e6;color:#323247}.uk-light .uk-button-secondary,.uk-section-primary:not(.uk-preserve-color) .uk-button-secondary,.uk-section-secondary:not(.uk-preserve-color) .uk-button-secondary,.uk-tile-primary:not(.uk-preserve-color) .uk-button-secondary,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-secondary,.uk-card-primary.uk-card-body .uk-button-secondary,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-secondary,.uk-card-secondary.uk-card-body .uk-button-secondary,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-secondary,.uk-overlay-primary .uk-button-secondary{background-color:#fff;color:#323247}.uk-light .uk-button-secondary:hover,.uk-section-primary:not(.uk-preserve-color) .uk-button-secondary:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-button-secondary:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-button-secondary:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-secondary:hover,.uk-card-primary.uk-card-body .uk-button-secondary:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-secondary:hover,.uk-card-secondary.uk-card-body .uk-button-secondary:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-secondary:hover,.uk-overlay-primary .uk-button-secondary:hover,.uk-light .uk-button-secondary:focus,.uk-section-primary:not(.uk-preserve-color) .uk-button-secondary:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-button-secondary:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-button-secondary:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-secondary:focus,.uk-card-primary.uk-card-body .uk-button-secondary:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-secondary:focus,.uk-card-secondary.uk-card-body .uk-button-secondary:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-secondary:focus,.uk-overlay-primary .uk-button-secondary:focus{background-color:#f2f2f2;color:#323247}.uk-light .uk-button-secondary:active,.uk-section-primary:not(.uk-preserve-color) .uk-button-secondary:active,.uk-section-secondary:not(.uk-preserve-color) .uk-button-secondary:active,.uk-tile-primary:not(.uk-preserve-color) .uk-button-secondary:active,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-secondary:active,.uk-card-primary.uk-card-body .uk-button-secondary:active,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-secondary:active,.uk-card-secondary.uk-card-body .uk-button-secondary:active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-secondary:active,.uk-overlay-primary .uk-button-secondary:active,.uk-light .uk-button-secondary.uk-active,.uk-section-primary:not(.uk-preserve-color) .uk-button-secondary.uk-active,.uk-section-secondary:not(.uk-preserve-color) .uk-button-secondary.uk-active,.uk-tile-primary:not(.uk-preserve-color) .uk-button-secondary.uk-active,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-secondary.uk-active,.uk-card-primary.uk-card-body .uk-button-secondary.uk-active,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-secondary.uk-active,.uk-card-secondary.uk-card-body .uk-button-secondary.uk-active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-secondary.uk-active,.uk-overlay-primary .uk-button-secondary.uk-active{background-color:#e6e6e6;color:#323247}.uk-light .uk-button-text,.uk-section-primary:not(.uk-preserve-color) .uk-button-text,.uk-section-secondary:not(.uk-preserve-color) .uk-button-text,.uk-tile-primary:not(.uk-preserve-color) .uk-button-text,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-text,.uk-card-primary.uk-card-body .uk-button-text,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-text,.uk-card-secondary.uk-card-body .uk-button-text,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-text,.uk-overlay-primary .uk-button-text{color:#fff}.uk-light .uk-button-text::before,.uk-section-primary:not(.uk-preserve-color) .uk-button-text::before,.uk-section-secondary:not(.uk-preserve-color) .uk-button-text::before,.uk-tile-primary:not(.uk-preserve-color) .uk-button-text::before,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-text::before,.uk-card-primary.uk-card-body .uk-button-text::before,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-text::before,.uk-card-secondary.uk-card-body .uk-button-text::before,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-text::before,.uk-overlay-primary .uk-button-text::before{border-bottom-color:#fff}.uk-light .uk-button-text:hover,.uk-section-primary:not(.uk-preserve-color) .uk-button-text:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-button-text:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-button-text:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-text:hover,.uk-card-primary.uk-card-body .uk-button-text:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-text:hover,.uk-card-secondary.uk-card-body .uk-button-text:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-text:hover,.uk-overlay-primary .uk-button-text:hover,.uk-light .uk-button-text:focus,.uk-section-primary:not(.uk-preserve-color) .uk-button-text:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-button-text:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-button-text:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-text:focus,.uk-card-primary.uk-card-body .uk-button-text:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-text:focus,.uk-card-secondary.uk-card-body .uk-button-text:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-text:focus,.uk-overlay-primary .uk-button-text:focus{color:#fff}.uk-light .uk-button-text:disabled,.uk-section-primary:not(.uk-preserve-color) .uk-button-text:disabled,.uk-section-secondary:not(.uk-preserve-color) .uk-button-text:disabled,.uk-tile-primary:not(.uk-preserve-color) .uk-button-text:disabled,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-text:disabled,.uk-card-primary.uk-card-body .uk-button-text:disabled,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-text:disabled,.uk-card-secondary.uk-card-body .uk-button-text:disabled,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-text:disabled,.uk-overlay-primary .uk-button-text:disabled{color:rgba(255,255,255,0.5)}.uk-light .uk-button-link,.uk-section-primary:not(.uk-preserve-color) .uk-button-link,.uk-section-secondary:not(.uk-preserve-color) .uk-button-link,.uk-tile-primary:not(.uk-preserve-color) .uk-button-link,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-link,.uk-card-primary.uk-card-body .uk-button-link,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-link,.uk-card-secondary.uk-card-body .uk-button-link,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-link,.uk-overlay-primary .uk-button-link{color:rgba(255,255,255,0.5)}.uk-light .uk-button-link:hover,.uk-section-primary:not(.uk-preserve-color) .uk-button-link:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-button-link:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-button-link:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-link:hover,.uk-card-primary.uk-card-body .uk-button-link:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-link:hover,.uk-card-secondary.uk-card-body .uk-button-link:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-link:hover,.uk-overlay-primary .uk-button-link:hover,.uk-light .uk-button-link:focus,.uk-section-primary:not(.uk-preserve-color) .uk-button-link:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-button-link:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-button-link:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-link:focus,.uk-card-primary.uk-card-body .uk-button-link:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-link:focus,.uk-card-secondary.uk-card-body .uk-button-link:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-link:focus,.uk-overlay-primary .uk-button-link:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-grid-divider>:not(.uk-first-column)::before,.uk-section-primary:not(.uk-preserve-color) .uk-grid-divider>:not(.uk-first-column)::before,.uk-section-secondary:not(.uk-preserve-color) .uk-grid-divider>:not(.uk-first-column)::before,.uk-tile-primary:not(.uk-preserve-color) .uk-grid-divider>:not(.uk-first-column)::before,.uk-tile-secondary:not(.uk-preserve-color) .uk-grid-divider>:not(.uk-first-column)::before,.uk-card-primary.uk-card-body .uk-grid-divider>:not(.uk-first-column)::before,.uk-card-primary>:not([class*='uk-card-media']) .uk-grid-divider>:not(.uk-first-column)::before,.uk-card-secondary.uk-card-body .uk-grid-divider>:not(.uk-first-column)::before,.uk-card-secondary>:not([class*='uk-card-media']) .uk-grid-divider>:not(.uk-first-column)::before,.uk-overlay-primary .uk-grid-divider>:not(.uk-first-column)::before{border-left-color:rgba(255,255,255,0.2)}.uk-light .uk-grid-divider.uk-grid-stack>.uk-grid-margin::before,.uk-section-primary:not(.uk-preserve-color) .uk-grid-divider.uk-grid-stack>.uk-grid-margin::before,.uk-section-secondary:not(.uk-preserve-color) .uk-grid-divider.uk-grid-stack>.uk-grid-margin::before,.uk-tile-primary:not(.uk-preserve-color) .uk-grid-divider.uk-grid-stack>.uk-grid-margin::before,.uk-tile-secondary:not(.uk-preserve-color) .uk-grid-divider.uk-grid-stack>.uk-grid-margin::before,.uk-card-primary.uk-card-body .uk-grid-divider.uk-grid-stack>.uk-grid-margin::before,.uk-card-primary>:not([class*='uk-card-media']) .uk-grid-divider.uk-grid-stack>.uk-grid-margin::before,.uk-card-secondary.uk-card-body .uk-grid-divider.uk-grid-stack>.uk-grid-margin::before,.uk-card-secondary>:not([class*='uk-card-media']) .uk-grid-divider.uk-grid-stack>.uk-grid-margin::before,.uk-overlay-primary .uk-grid-divider.uk-grid-stack>.uk-grid-margin::before{border-top-color:rgba(255,255,255,0.2)}.uk-light .uk-close,.uk-section-primary:not(.uk-preserve-color) .uk-close,.uk-section-secondary:not(.uk-preserve-color) .uk-close,.uk-tile-primary:not(.uk-preserve-color) .uk-close,.uk-tile-secondary:not(.uk-preserve-color) .uk-close,.uk-card-primary.uk-card-body .uk-close,.uk-card-primary>:not([class*='uk-card-media']) .uk-close,.uk-card-secondary.uk-card-body .uk-close,.uk-card-secondary>:not([class*='uk-card-media']) .uk-close,.uk-overlay-primary .uk-close{color:rgba(255,255,255,0.5)}.uk-light .uk-close:hover,.uk-section-primary:not(.uk-preserve-color) .uk-close:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-close:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-close:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-close:hover,.uk-card-primary.uk-card-body .uk-close:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-close:hover,.uk-card-secondary.uk-card-body .uk-close:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-close:hover,.uk-overlay-primary .uk-close:hover,.uk-light .uk-close:focus,.uk-section-primary:not(.uk-preserve-color) .uk-close:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-close:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-close:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-close:focus,.uk-card-primary.uk-card-body .uk-close:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-close:focus,.uk-card-secondary.uk-card-body .uk-close:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-close:focus,.uk-overlay-primary .uk-close:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-totop,.uk-section-primary:not(.uk-preserve-color) .uk-totop,.uk-section-secondary:not(.uk-preserve-color) .uk-totop,.uk-tile-primary:not(.uk-preserve-color) .uk-totop,.uk-tile-secondary:not(.uk-preserve-color) .uk-totop,.uk-card-primary.uk-card-body .uk-totop,.uk-card-primary>:not([class*='uk-card-media']) .uk-totop,.uk-card-secondary.uk-card-body .uk-totop,.uk-card-secondary>:not([class*='uk-card-media']) .uk-totop,.uk-overlay-primary .uk-totop{color:rgba(255,255,255,0.5)}.uk-light .uk-totop:hover,.uk-section-primary:not(.uk-preserve-color) .uk-totop:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-totop:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-totop:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-totop:hover,.uk-card-primary.uk-card-body .uk-totop:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-totop:hover,.uk-card-secondary.uk-card-body .uk-totop:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-totop:hover,.uk-overlay-primary .uk-totop:hover,.uk-light .uk-totop:focus,.uk-section-primary:not(.uk-preserve-color) .uk-totop:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-totop:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-totop:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-totop:focus,.uk-card-primary.uk-card-body .uk-totop:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-totop:focus,.uk-card-secondary.uk-card-body .uk-totop:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-totop:focus,.uk-overlay-primary .uk-totop:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-totop:active,.uk-section-primary:not(.uk-preserve-color) .uk-totop:active,.uk-section-secondary:not(.uk-preserve-color) .uk-totop:active,.uk-tile-primary:not(.uk-preserve-color) .uk-totop:active,.uk-tile-secondary:not(.uk-preserve-color) .uk-totop:active,.uk-card-primary.uk-card-body .uk-totop:active,.uk-card-primary>:not([class*='uk-card-media']) .uk-totop:active,.uk-card-secondary.uk-card-body .uk-totop:active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-totop:active,.uk-overlay-primary .uk-totop:active{color:#fff}.uk-light .uk-badge,.uk-section-primary:not(.uk-preserve-color) .uk-badge,.uk-section-secondary:not(.uk-preserve-color) .uk-badge,.uk-tile-primary:not(.uk-preserve-color) .uk-badge,.uk-tile-secondary:not(.uk-preserve-color) .uk-badge,.uk-card-primary.uk-card-body .uk-badge,.uk-card-primary>:not([class*='uk-card-media']) .uk-badge,.uk-card-secondary.uk-card-body .uk-badge,.uk-card-secondary>:not([class*='uk-card-media']) .uk-badge,.uk-overlay-primary .uk-badge{background-color:#fff;color:#323247}.uk-light .uk-badge:hover,.uk-section-primary:not(.uk-preserve-color) .uk-badge:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-badge:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-badge:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-badge:hover,.uk-card-primary.uk-card-body .uk-badge:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-badge:hover,.uk-card-secondary.uk-card-body .uk-badge:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-badge:hover,.uk-overlay-primary .uk-badge:hover,.uk-light .uk-badge:focus,.uk-section-primary:not(.uk-preserve-color) .uk-badge:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-badge:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-badge:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-badge:focus,.uk-card-primary.uk-card-body .uk-badge:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-badge:focus,.uk-card-secondary.uk-card-body .uk-badge:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-badge:focus,.uk-overlay-primary .uk-badge:focus{color:#323247}.uk-light .uk-label,.uk-section-primary:not(.uk-preserve-color) .uk-label,.uk-section-secondary:not(.uk-preserve-color) .uk-label,.uk-tile-primary:not(.uk-preserve-color) .uk-label,.uk-tile-secondary:not(.uk-preserve-color) .uk-label,.uk-card-primary.uk-card-body .uk-label,.uk-card-primary>:not([class*='uk-card-media']) .uk-label,.uk-card-secondary.uk-card-body .uk-label,.uk-card-secondary>:not([class*='uk-card-media']) .uk-label,.uk-overlay-primary .uk-label{background-color:#fff;color:#323247}.uk-light .uk-article-meta,.uk-section-primary:not(.uk-preserve-color) .uk-article-meta,.uk-section-secondary:not(.uk-preserve-color) .uk-article-meta,.uk-tile-primary:not(.uk-preserve-color) .uk-article-meta,.uk-tile-secondary:not(.uk-preserve-color) .uk-article-meta,.uk-card-primary.uk-card-body .uk-article-meta,.uk-card-primary>:not([class*='uk-card-media']) .uk-article-meta,.uk-card-secondary.uk-card-body .uk-article-meta,.uk-card-secondary>:not([class*='uk-card-media']) .uk-article-meta,.uk-overlay-primary .uk-article-meta{color:rgba(255,255,255,0.5)}.uk-light .uk-search-input,.uk-section-primary:not(.uk-preserve-color) .uk-search-input,.uk-section-secondary:not(.uk-preserve-color) .uk-search-input,.uk-tile-primary:not(.uk-preserve-color) .uk-search-input,.uk-tile-secondary:not(.uk-preserve-color) .uk-search-input,.uk-card-primary.uk-card-body .uk-search-input,.uk-card-primary>:not([class*='uk-card-media']) .uk-search-input,.uk-card-secondary.uk-card-body .uk-search-input,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search-input,.uk-overlay-primary .uk-search-input{color:rgba(255,255,255,0.7)}.uk-light .uk-search-input:-ms-input-placeholder,.uk-section-primary:not(.uk-preserve-color) .uk-search-input:-ms-input-placeholder,.uk-section-secondary:not(.uk-preserve-color) .uk-search-input:-ms-input-placeholder,.uk-tile-primary:not(.uk-preserve-color) .uk-search-input:-ms-input-placeholder,.uk-tile-secondary:not(.uk-preserve-color) .uk-search-input:-ms-input-placeholder,.uk-card-primary.uk-card-body .uk-search-input:-ms-input-placeholder,.uk-card-primary>:not([class*='uk-card-media']) .uk-search-input:-ms-input-placeholder,.uk-card-secondary.uk-card-body .uk-search-input:-ms-input-placeholder,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search-input:-ms-input-placeholder,.uk-overlay-primary .uk-search-input:-ms-input-placeholder{color:rgba(255,255,255,0.5) !important}.uk-light .uk-search-input::placeholder,.uk-section-primary:not(.uk-preserve-color) .uk-search-input::placeholder,.uk-section-secondary:not(.uk-preserve-color) .uk-search-input::placeholder,.uk-tile-primary:not(.uk-preserve-color) .uk-search-input::placeholder,.uk-tile-secondary:not(.uk-preserve-color) .uk-search-input::placeholder,.uk-card-primary.uk-card-body .uk-search-input::placeholder,.uk-card-primary>:not([class*='uk-card-media']) .uk-search-input::placeholder,.uk-card-secondary.uk-card-body .uk-search-input::placeholder,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search-input::placeholder,.uk-overlay-primary .uk-search-input::placeholder{color:rgba(255,255,255,0.5)}.uk-light .uk-search .uk-search-icon,.uk-section-primary:not(.uk-preserve-color) .uk-search .uk-search-icon,.uk-section-secondary:not(.uk-preserve-color) .uk-search .uk-search-icon,.uk-tile-primary:not(.uk-preserve-color) .uk-search .uk-search-icon,.uk-tile-secondary:not(.uk-preserve-color) .uk-search .uk-search-icon,.uk-card-primary.uk-card-body .uk-search .uk-search-icon,.uk-card-primary>:not([class*='uk-card-media']) .uk-search .uk-search-icon,.uk-card-secondary.uk-card-body .uk-search .uk-search-icon,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search .uk-search-icon,.uk-overlay-primary .uk-search .uk-search-icon{color:rgba(255,255,255,0.5)}.uk-light .uk-search .uk-search-icon:hover,.uk-section-primary:not(.uk-preserve-color) .uk-search .uk-search-icon:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-search .uk-search-icon:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-search .uk-search-icon:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-search .uk-search-icon:hover,.uk-card-primary.uk-card-body .uk-search .uk-search-icon:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-search .uk-search-icon:hover,.uk-card-secondary.uk-card-body .uk-search .uk-search-icon:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search .uk-search-icon:hover,.uk-overlay-primary .uk-search .uk-search-icon:hover{color:rgba(255,255,255,0.5)}.uk-light .uk-search-default .uk-search-input,.uk-section-primary:not(.uk-preserve-color) .uk-search-default .uk-search-input,.uk-section-secondary:not(.uk-preserve-color) .uk-search-default .uk-search-input,.uk-tile-primary:not(.uk-preserve-color) .uk-search-default .uk-search-input,.uk-tile-secondary:not(.uk-preserve-color) .uk-search-default .uk-search-input,.uk-card-primary.uk-card-body .uk-search-default .uk-search-input,.uk-card-primary>:not([class*='uk-card-media']) .uk-search-default .uk-search-input,.uk-card-secondary.uk-card-body .uk-search-default .uk-search-input,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search-default .uk-search-input,.uk-overlay-primary .uk-search-default .uk-search-input{background-color:transparent;border-color:rgba(255,255,255,0.2)}.uk-light .uk-search-default .uk-search-input:focus,.uk-section-primary:not(.uk-preserve-color) .uk-search-default .uk-search-input:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-search-default .uk-search-input:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-search-default .uk-search-input:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-search-default .uk-search-input:focus,.uk-card-primary.uk-card-body .uk-search-default .uk-search-input:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-search-default .uk-search-input:focus,.uk-card-secondary.uk-card-body .uk-search-default .uk-search-input:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search-default .uk-search-input:focus,.uk-overlay-primary .uk-search-default .uk-search-input:focus{background-color:transparent}.uk-light .uk-search-navbar .uk-search-input,.uk-section-primary:not(.uk-preserve-color) .uk-search-navbar .uk-search-input,.uk-section-secondary:not(.uk-preserve-color) .uk-search-navbar .uk-search-input,.uk-tile-primary:not(.uk-preserve-color) .uk-search-navbar .uk-search-input,.uk-tile-secondary:not(.uk-preserve-color) .uk-search-navbar .uk-search-input,.uk-card-primary.uk-card-body .uk-search-navbar .uk-search-input,.uk-card-primary>:not([class*='uk-card-media']) .uk-search-navbar .uk-search-input,.uk-card-secondary.uk-card-body .uk-search-navbar .uk-search-input,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search-navbar .uk-search-input,.uk-overlay-primary .uk-search-navbar .uk-search-input{background-color:transparent}.uk-light .uk-search-large .uk-search-input,.uk-section-primary:not(.uk-preserve-color) .uk-search-large .uk-search-input,.uk-section-secondary:not(.uk-preserve-color) .uk-search-large .uk-search-input,.uk-tile-primary:not(.uk-preserve-color) .uk-search-large .uk-search-input,.uk-tile-secondary:not(.uk-preserve-color) .uk-search-large .uk-search-input,.uk-card-primary.uk-card-body .uk-search-large .uk-search-input,.uk-card-primary>:not([class*='uk-card-media']) .uk-search-large .uk-search-input,.uk-card-secondary.uk-card-body .uk-search-large .uk-search-input,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search-large .uk-search-input,.uk-overlay-primary .uk-search-large .uk-search-input{background-color:transparent}.uk-light .uk-search-toggle,.uk-section-primary:not(.uk-preserve-color) .uk-search-toggle,.uk-section-secondary:not(.uk-preserve-color) .uk-search-toggle,.uk-tile-primary:not(.uk-preserve-color) .uk-search-toggle,.uk-tile-secondary:not(.uk-preserve-color) .uk-search-toggle,.uk-card-primary.uk-card-body .uk-search-toggle,.uk-card-primary>:not([class*='uk-card-media']) .uk-search-toggle,.uk-card-secondary.uk-card-body .uk-search-toggle,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search-toggle,.uk-overlay-primary .uk-search-toggle{color:rgba(255,255,255,0.5)}.uk-light .uk-search-toggle:hover,.uk-section-primary:not(.uk-preserve-color) .uk-search-toggle:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-search-toggle:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-search-toggle:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-search-toggle:hover,.uk-card-primary.uk-card-body .uk-search-toggle:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-search-toggle:hover,.uk-card-secondary.uk-card-body .uk-search-toggle:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search-toggle:hover,.uk-overlay-primary .uk-search-toggle:hover,.uk-light .uk-search-toggle:focus,.uk-section-primary:not(.uk-preserve-color) .uk-search-toggle:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-search-toggle:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-search-toggle:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-search-toggle:focus,.uk-card-primary.uk-card-body .uk-search-toggle:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-search-toggle:focus,.uk-card-secondary.uk-card-body .uk-search-toggle:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search-toggle:focus,.uk-overlay-primary .uk-search-toggle:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-nav-parent-icon>.uk-parent>a::after,.uk-section-primary:not(.uk-preserve-color) .uk-nav-parent-icon>.uk-parent>a::after,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-parent-icon>.uk-parent>a::after,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-parent-icon>.uk-parent>a::after,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-parent-icon>.uk-parent>a::after,.uk-card-primary.uk-card-body .uk-nav-parent-icon>.uk-parent>a::after,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-parent-icon>.uk-parent>a::after,.uk-card-secondary.uk-card-body .uk-nav-parent-icon>.uk-parent>a::after,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-parent-icon>.uk-parent>a::after,.uk-overlay-primary .uk-nav-parent-icon>.uk-parent>a::after{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22rgba(255,255,255,0.7)%22%20stroke-width%3D%221.1%22%20points%3D%2210%201%204%207%2010%2013%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-light .uk-nav-parent-icon>.uk-parent.uk-open>a::after,.uk-section-primary:not(.uk-preserve-color) .uk-nav-parent-icon>.uk-parent.uk-open>a::after,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-parent-icon>.uk-parent.uk-open>a::after,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-parent-icon>.uk-parent.uk-open>a::after,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-parent-icon>.uk-parent.uk-open>a::after,.uk-card-primary.uk-card-body .uk-nav-parent-icon>.uk-parent.uk-open>a::after,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-parent-icon>.uk-parent.uk-open>a::after,.uk-card-secondary.uk-card-body .uk-nav-parent-icon>.uk-parent.uk-open>a::after,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-parent-icon>.uk-parent.uk-open>a::after,.uk-overlay-primary .uk-nav-parent-icon>.uk-parent.uk-open>a::after{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22rgba(255,255,255,0.7)%22%20stroke-width%3D%221.1%22%20points%3D%221%204%207%2010%2013%204%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-light .uk-nav-default>li>a,.uk-section-primary:not(.uk-preserve-color) .uk-nav-default>li>a,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-default>li>a,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default>li>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default>li>a,.uk-card-primary.uk-card-body .uk-nav-default>li>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-default>li>a,.uk-card-secondary.uk-card-body .uk-nav-default>li>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-default>li>a,.uk-overlay-primary .uk-nav-default>li>a{color:rgba(255,255,255,0.5)}.uk-light .uk-nav-default>li>a:hover,.uk-section-primary:not(.uk-preserve-color) .uk-nav-default>li>a:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-default>li>a:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default>li>a:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default>li>a:hover,.uk-card-primary.uk-card-body .uk-nav-default>li>a:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-default>li>a:hover,.uk-card-secondary.uk-card-body .uk-nav-default>li>a:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-default>li>a:hover,.uk-overlay-primary .uk-nav-default>li>a:hover,.uk-light .uk-nav-default>li>a:focus,.uk-section-primary:not(.uk-preserve-color) .uk-nav-default>li>a:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-default>li>a:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default>li>a:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default>li>a:focus,.uk-card-primary.uk-card-body .uk-nav-default>li>a:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-default>li>a:focus,.uk-card-secondary.uk-card-body .uk-nav-default>li>a:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-default>li>a:focus,.uk-overlay-primary .uk-nav-default>li>a:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-nav-default>li.uk-active>a,.uk-section-primary:not(.uk-preserve-color) .uk-nav-default>li.uk-active>a,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-default>li.uk-active>a,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default>li.uk-active>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default>li.uk-active>a,.uk-card-primary.uk-card-body .uk-nav-default>li.uk-active>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-default>li.uk-active>a,.uk-card-secondary.uk-card-body .uk-nav-default>li.uk-active>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-default>li.uk-active>a,.uk-overlay-primary .uk-nav-default>li.uk-active>a{color:#fff}.uk-light .uk-nav-default .uk-nav-header,.uk-section-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-header,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-header,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-header,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-header,.uk-card-primary.uk-card-body .uk-nav-default .uk-nav-header,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-default .uk-nav-header,.uk-card-secondary.uk-card-body .uk-nav-default .uk-nav-header,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-default .uk-nav-header,.uk-overlay-primary .uk-nav-default .uk-nav-header{color:#fff}.uk-light .uk-nav-default .uk-nav-divider,.uk-section-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-divider,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-divider,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-divider,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-divider,.uk-card-primary.uk-card-body .uk-nav-default .uk-nav-divider,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-default .uk-nav-divider,.uk-card-secondary.uk-card-body .uk-nav-default .uk-nav-divider,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-default .uk-nav-divider,.uk-overlay-primary .uk-nav-default .uk-nav-divider{border-top-color:rgba(255,255,255,0.2)}.uk-light .uk-nav-default .uk-nav-sub a,.uk-section-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a,.uk-card-primary.uk-card-body .uk-nav-default .uk-nav-sub a,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-default .uk-nav-sub a,.uk-card-secondary.uk-card-body .uk-nav-default .uk-nav-sub a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-default .uk-nav-sub a,.uk-overlay-primary .uk-nav-default .uk-nav-sub a{color:rgba(255,255,255,0.5)}.uk-light .uk-nav-default .uk-nav-sub a:hover,.uk-section-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:hover,.uk-card-primary.uk-card-body .uk-nav-default .uk-nav-sub a:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-default .uk-nav-sub a:hover,.uk-card-secondary.uk-card-body .uk-nav-default .uk-nav-sub a:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-default .uk-nav-sub a:hover,.uk-overlay-primary .uk-nav-default .uk-nav-sub a:hover,.uk-light .uk-nav-default .uk-nav-sub a:focus,.uk-section-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:focus,.uk-card-primary.uk-card-body .uk-nav-default .uk-nav-sub a:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-default .uk-nav-sub a:focus,.uk-card-secondary.uk-card-body .uk-nav-default .uk-nav-sub a:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-default .uk-nav-sub a:focus,.uk-overlay-primary .uk-nav-default .uk-nav-sub a:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-nav-primary>li>a,.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary>li>a,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary>li>a,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary>li>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary>li>a,.uk-card-primary.uk-card-body .uk-nav-primary>li>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-primary>li>a,.uk-card-secondary.uk-card-body .uk-nav-primary>li>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-primary>li>a,.uk-overlay-primary .uk-nav-primary>li>a{color:rgba(255,255,255,0.5)}.uk-light .uk-nav-primary>li>a:hover,.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary>li>a:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary>li>a:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary>li>a:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary>li>a:hover,.uk-card-primary.uk-card-body .uk-nav-primary>li>a:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-primary>li>a:hover,.uk-card-secondary.uk-card-body .uk-nav-primary>li>a:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-primary>li>a:hover,.uk-overlay-primary .uk-nav-primary>li>a:hover,.uk-light .uk-nav-primary>li>a:focus,.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary>li>a:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary>li>a:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary>li>a:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary>li>a:focus,.uk-card-primary.uk-card-body .uk-nav-primary>li>a:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-primary>li>a:focus,.uk-card-secondary.uk-card-body .uk-nav-primary>li>a:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-primary>li>a:focus,.uk-overlay-primary .uk-nav-primary>li>a:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-nav-primary>li.uk-active>a,.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary>li.uk-active>a,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary>li.uk-active>a,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary>li.uk-active>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary>li.uk-active>a,.uk-card-primary.uk-card-body .uk-nav-primary>li.uk-active>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-primary>li.uk-active>a,.uk-card-secondary.uk-card-body .uk-nav-primary>li.uk-active>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-primary>li.uk-active>a,.uk-overlay-primary .uk-nav-primary>li.uk-active>a{color:#fff}.uk-light .uk-nav-primary .uk-nav-header,.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-header,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-header,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-header,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-header,.uk-card-primary.uk-card-body .uk-nav-primary .uk-nav-header,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-primary .uk-nav-header,.uk-card-secondary.uk-card-body .uk-nav-primary .uk-nav-header,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-primary .uk-nav-header,.uk-overlay-primary .uk-nav-primary .uk-nav-header{color:#fff}.uk-light .uk-nav-primary .uk-nav-divider,.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-divider,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-divider,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-divider,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-divider,.uk-card-primary.uk-card-body .uk-nav-primary .uk-nav-divider,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-primary .uk-nav-divider,.uk-card-secondary.uk-card-body .uk-nav-primary .uk-nav-divider,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-primary .uk-nav-divider,.uk-overlay-primary .uk-nav-primary .uk-nav-divider{border-top-color:rgba(255,255,255,0.2)}.uk-light .uk-nav-primary .uk-nav-sub a,.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a,.uk-card-primary.uk-card-body .uk-nav-primary .uk-nav-sub a,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-primary .uk-nav-sub a,.uk-card-secondary.uk-card-body .uk-nav-primary .uk-nav-sub a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-primary .uk-nav-sub a,.uk-overlay-primary .uk-nav-primary .uk-nav-sub a{color:rgba(255,255,255,0.5)}.uk-light .uk-nav-primary .uk-nav-sub a:hover,.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:hover,.uk-card-primary.uk-card-body .uk-nav-primary .uk-nav-sub a:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-primary .uk-nav-sub a:hover,.uk-card-secondary.uk-card-body .uk-nav-primary .uk-nav-sub a:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-primary .uk-nav-sub a:hover,.uk-overlay-primary .uk-nav-primary .uk-nav-sub a:hover,.uk-light .uk-nav-primary .uk-nav-sub a:focus,.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:focus,.uk-card-primary.uk-card-body .uk-nav-primary .uk-nav-sub a:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-primary .uk-nav-sub a:focus,.uk-card-secondary.uk-card-body .uk-nav-primary .uk-nav-sub a:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-primary .uk-nav-sub a:focus,.uk-overlay-primary .uk-nav-primary .uk-nav-sub a:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-navbar-nav>li>a,.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a,.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a,.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a,.uk-card-primary.uk-card-body .uk-navbar-nav>li>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a,.uk-card-secondary.uk-card-body .uk-navbar-nav>li>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a,.uk-overlay-primary .uk-navbar-nav>li>a{color:rgba(255,255,255,0.5)}.uk-light .uk-navbar-nav>li:hover>a,.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li:hover>a,.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li:hover>a,.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav>li:hover>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav>li:hover>a,.uk-card-primary.uk-card-body .uk-navbar-nav>li:hover>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li:hover>a,.uk-card-secondary.uk-card-body .uk-navbar-nav>li:hover>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li:hover>a,.uk-overlay-primary .uk-navbar-nav>li:hover>a,.uk-light .uk-navbar-nav>li>a:focus,.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a:focus,.uk-card-primary.uk-card-body .uk-navbar-nav>li>a:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a:focus,.uk-card-secondary.uk-card-body .uk-navbar-nav>li>a:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a:focus,.uk-overlay-primary .uk-navbar-nav>li>a:focus,.uk-light .uk-navbar-nav>li>a.uk-open,.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a.uk-open,.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a.uk-open,.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a.uk-open,.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a.uk-open,.uk-card-primary.uk-card-body .uk-navbar-nav>li>a.uk-open,.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a.uk-open,.uk-card-secondary.uk-card-body .uk-navbar-nav>li>a.uk-open,.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a.uk-open,.uk-overlay-primary .uk-navbar-nav>li>a.uk-open{color:rgba(255,255,255,0.7)}.uk-light .uk-navbar-nav>li>a:active,.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a:active,.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a:active,.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a:active,.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a:active,.uk-card-primary.uk-card-body .uk-navbar-nav>li>a:active,.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a:active,.uk-card-secondary.uk-card-body .uk-navbar-nav>li>a:active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a:active,.uk-overlay-primary .uk-navbar-nav>li>a:active{color:#fff}.uk-light .uk-navbar-nav>li.uk-active>a,.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li.uk-active>a,.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li.uk-active>a,.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav>li.uk-active>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav>li.uk-active>a,.uk-card-primary.uk-card-body .uk-navbar-nav>li.uk-active>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li.uk-active>a,.uk-card-secondary.uk-card-body .uk-navbar-nav>li.uk-active>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li.uk-active>a,.uk-overlay-primary .uk-navbar-nav>li.uk-active>a{color:#fff}.uk-light .uk-navbar-item,.uk-section-primary:not(.uk-preserve-color) .uk-navbar-item,.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-item,.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-item,.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-item,.uk-card-primary.uk-card-body .uk-navbar-item,.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-item,.uk-card-secondary.uk-card-body .uk-navbar-item,.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-item,.uk-overlay-primary .uk-navbar-item{color:rgba(255,255,255,0.7)}.uk-light .uk-navbar-toggle,.uk-section-primary:not(.uk-preserve-color) .uk-navbar-toggle,.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-toggle,.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-toggle,.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-toggle,.uk-card-primary.uk-card-body .uk-navbar-toggle,.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-toggle,.uk-card-secondary.uk-card-body .uk-navbar-toggle,.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-toggle,.uk-overlay-primary .uk-navbar-toggle{color:rgba(255,255,255,0.5)}.uk-light .uk-navbar-toggle:hover,.uk-section-primary:not(.uk-preserve-color) .uk-navbar-toggle:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-toggle:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-toggle:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-toggle:hover,.uk-card-primary.uk-card-body .uk-navbar-toggle:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-toggle:hover,.uk-card-secondary.uk-card-body .uk-navbar-toggle:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-toggle:hover,.uk-overlay-primary .uk-navbar-toggle:hover,.uk-light .uk-navbar-toggle:focus,.uk-section-primary:not(.uk-preserve-color) .uk-navbar-toggle:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-toggle:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-toggle:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-toggle:focus,.uk-card-primary.uk-card-body .uk-navbar-toggle:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-toggle:focus,.uk-card-secondary.uk-card-body .uk-navbar-toggle:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-toggle:focus,.uk-overlay-primary .uk-navbar-toggle:focus,.uk-light .uk-navbar-toggle.uk-open,.uk-section-primary:not(.uk-preserve-color) .uk-navbar-toggle.uk-open,.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-toggle.uk-open,.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-toggle.uk-open,.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-toggle.uk-open,.uk-card-primary.uk-card-body .uk-navbar-toggle.uk-open,.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-toggle.uk-open,.uk-card-secondary.uk-card-body .uk-navbar-toggle.uk-open,.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-toggle.uk-open,.uk-overlay-primary .uk-navbar-toggle.uk-open{color:rgba(255,255,255,0.7)}.uk-light .uk-subnav>*>:first-child,.uk-section-primary:not(.uk-preserve-color) .uk-subnav>*>:first-child,.uk-section-secondary:not(.uk-preserve-color) .uk-subnav>*>:first-child,.uk-tile-primary:not(.uk-preserve-color) .uk-subnav>*>:first-child,.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav>*>:first-child,.uk-card-primary.uk-card-body .uk-subnav>*>:first-child,.uk-card-primary>:not([class*='uk-card-media']) .uk-subnav>*>:first-child,.uk-card-secondary.uk-card-body .uk-subnav>*>:first-child,.uk-card-secondary>:not([class*='uk-card-media']) .uk-subnav>*>:first-child,.uk-overlay-primary .uk-subnav>*>:first-child{color:rgba(255,255,255,0.5)}.uk-light .uk-subnav>*>a:hover,.uk-section-primary:not(.uk-preserve-color) .uk-subnav>*>a:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-subnav>*>a:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-subnav>*>a:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav>*>a:hover,.uk-card-primary.uk-card-body .uk-subnav>*>a:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-subnav>*>a:hover,.uk-card-secondary.uk-card-body .uk-subnav>*>a:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-subnav>*>a:hover,.uk-overlay-primary .uk-subnav>*>a:hover,.uk-light .uk-subnav>*>a:focus,.uk-section-primary:not(.uk-preserve-color) .uk-subnav>*>a:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-subnav>*>a:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-subnav>*>a:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav>*>a:focus,.uk-card-primary.uk-card-body .uk-subnav>*>a:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-subnav>*>a:focus,.uk-card-secondary.uk-card-body .uk-subnav>*>a:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-subnav>*>a:focus,.uk-overlay-primary .uk-subnav>*>a:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-subnav>.uk-active>a,.uk-section-primary:not(.uk-preserve-color) .uk-subnav>.uk-active>a,.uk-section-secondary:not(.uk-preserve-color) .uk-subnav>.uk-active>a,.uk-tile-primary:not(.uk-preserve-color) .uk-subnav>.uk-active>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav>.uk-active>a,.uk-card-primary.uk-card-body .uk-subnav>.uk-active>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-subnav>.uk-active>a,.uk-card-secondary.uk-card-body .uk-subnav>.uk-active>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-subnav>.uk-active>a,.uk-overlay-primary .uk-subnav>.uk-active>a{color:#fff}.uk-light .uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before,.uk-section-primary:not(.uk-preserve-color) .uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before,.uk-section-secondary:not(.uk-preserve-color) .uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before,.uk-tile-primary:not(.uk-preserve-color) .uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before,.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before,.uk-card-primary.uk-card-body .uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before,.uk-card-primary>:not([class*='uk-card-media']) .uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before,.uk-card-secondary.uk-card-body .uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before,.uk-card-secondary>:not([class*='uk-card-media']) .uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before,.uk-overlay-primary .uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before{border-left-color:rgba(255,255,255,0.2)}.uk-light .uk-subnav-pill>*>:first-child,.uk-section-primary:not(.uk-preserve-color) .uk-subnav-pill>*>:first-child,.uk-section-secondary:not(.uk-preserve-color) .uk-subnav-pill>*>:first-child,.uk-tile-primary:not(.uk-preserve-color) .uk-subnav-pill>*>:first-child,.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-pill>*>:first-child,.uk-card-primary.uk-card-body .uk-subnav-pill>*>:first-child,.uk-card-primary>:not([class*='uk-card-media']) .uk-subnav-pill>*>:first-child,.uk-card-secondary.uk-card-body .uk-subnav-pill>*>:first-child,.uk-card-secondary>:not([class*='uk-card-media']) .uk-subnav-pill>*>:first-child,.uk-overlay-primary .uk-subnav-pill>*>:first-child{background-color:transparent;color:rgba(255,255,255,0.5)}.uk-light .uk-subnav-pill>*>a:hover,.uk-section-primary:not(.uk-preserve-color) .uk-subnav-pill>*>a:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-subnav-pill>*>a:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-subnav-pill>*>a:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-pill>*>a:hover,.uk-card-primary.uk-card-body .uk-subnav-pill>*>a:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-subnav-pill>*>a:hover,.uk-card-secondary.uk-card-body .uk-subnav-pill>*>a:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-subnav-pill>*>a:hover,.uk-overlay-primary .uk-subnav-pill>*>a:hover,.uk-light .uk-subnav-pill>*>a:focus,.uk-section-primary:not(.uk-preserve-color) .uk-subnav-pill>*>a:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-subnav-pill>*>a:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-subnav-pill>*>a:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-pill>*>a:focus,.uk-card-primary.uk-card-body .uk-subnav-pill>*>a:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-subnav-pill>*>a:focus,.uk-card-secondary.uk-card-body .uk-subnav-pill>*>a:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-subnav-pill>*>a:focus,.uk-overlay-primary .uk-subnav-pill>*>a:focus{background-color:rgba(255,255,255,0.1);color:rgba(255,255,255,0.7)}.uk-light .uk-subnav-pill>*>a:active,.uk-section-primary:not(.uk-preserve-color) .uk-subnav-pill>*>a:active,.uk-section-secondary:not(.uk-preserve-color) .uk-subnav-pill>*>a:active,.uk-tile-primary:not(.uk-preserve-color) .uk-subnav-pill>*>a:active,.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-pill>*>a:active,.uk-card-primary.uk-card-body .uk-subnav-pill>*>a:active,.uk-card-primary>:not([class*='uk-card-media']) .uk-subnav-pill>*>a:active,.uk-card-secondary.uk-card-body .uk-subnav-pill>*>a:active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-subnav-pill>*>a:active,.uk-overlay-primary .uk-subnav-pill>*>a:active{background-color:rgba(255,255,255,0.1);color:rgba(255,255,255,0.7)}.uk-light .uk-subnav-pill>.uk-active>a,.uk-section-primary:not(.uk-preserve-color) .uk-subnav-pill>.uk-active>a,.uk-section-secondary:not(.uk-preserve-color) .uk-subnav-pill>.uk-active>a,.uk-tile-primary:not(.uk-preserve-color) .uk-subnav-pill>.uk-active>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-pill>.uk-active>a,.uk-card-primary.uk-card-body .uk-subnav-pill>.uk-active>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-subnav-pill>.uk-active>a,.uk-card-secondary.uk-card-body .uk-subnav-pill>.uk-active>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-subnav-pill>.uk-active>a,.uk-overlay-primary .uk-subnav-pill>.uk-active>a{background-color:#fff;color:#323247}.uk-light .uk-subnav>.uk-disabled>a,.uk-section-primary:not(.uk-preserve-color) .uk-subnav>.uk-disabled>a,.uk-section-secondary:not(.uk-preserve-color) .uk-subnav>.uk-disabled>a,.uk-tile-primary:not(.uk-preserve-color) .uk-subnav>.uk-disabled>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav>.uk-disabled>a,.uk-card-primary.uk-card-body .uk-subnav>.uk-disabled>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-subnav>.uk-disabled>a,.uk-card-secondary.uk-card-body .uk-subnav>.uk-disabled>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-subnav>.uk-disabled>a,.uk-overlay-primary .uk-subnav>.uk-disabled>a{color:rgba(255,255,255,0.5)}.uk-light .uk-breadcrumb>*>*,.uk-section-primary:not(.uk-preserve-color) .uk-breadcrumb>*>*,.uk-section-secondary:not(.uk-preserve-color) .uk-breadcrumb>*>*,.uk-tile-primary:not(.uk-preserve-color) .uk-breadcrumb>*>*,.uk-tile-secondary:not(.uk-preserve-color) .uk-breadcrumb>*>*,.uk-card-primary.uk-card-body .uk-breadcrumb>*>*,.uk-card-primary>:not([class*='uk-card-media']) .uk-breadcrumb>*>*,.uk-card-secondary.uk-card-body .uk-breadcrumb>*>*,.uk-card-secondary>:not([class*='uk-card-media']) .uk-breadcrumb>*>*,.uk-overlay-primary .uk-breadcrumb>*>*{color:rgba(255,255,255,0.5)}.uk-light .uk-breadcrumb>*>:hover,.uk-section-primary:not(.uk-preserve-color) .uk-breadcrumb>*>:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-breadcrumb>*>:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-breadcrumb>*>:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-breadcrumb>*>:hover,.uk-card-primary.uk-card-body .uk-breadcrumb>*>:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-breadcrumb>*>:hover,.uk-card-secondary.uk-card-body .uk-breadcrumb>*>:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-breadcrumb>*>:hover,.uk-overlay-primary .uk-breadcrumb>*>:hover,.uk-light .uk-breadcrumb>*>:focus,.uk-section-primary:not(.uk-preserve-color) .uk-breadcrumb>*>:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-breadcrumb>*>:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-breadcrumb>*>:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-breadcrumb>*>:focus,.uk-card-primary.uk-card-body .uk-breadcrumb>*>:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-breadcrumb>*>:focus,.uk-card-secondary.uk-card-body .uk-breadcrumb>*>:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-breadcrumb>*>:focus,.uk-overlay-primary .uk-breadcrumb>*>:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-breadcrumb>:last-child>*,.uk-section-primary:not(.uk-preserve-color) .uk-breadcrumb>:last-child>*,.uk-section-secondary:not(.uk-preserve-color) .uk-breadcrumb>:last-child>*,.uk-tile-primary:not(.uk-preserve-color) .uk-breadcrumb>:last-child>*,.uk-tile-secondary:not(.uk-preserve-color) .uk-breadcrumb>:last-child>*,.uk-card-primary.uk-card-body .uk-breadcrumb>:last-child>*,.uk-card-primary>:not([class*='uk-card-media']) .uk-breadcrumb>:last-child>*,.uk-card-secondary.uk-card-body .uk-breadcrumb>:last-child>*,.uk-card-secondary>:not([class*='uk-card-media']) .uk-breadcrumb>:last-child>*,.uk-overlay-primary .uk-breadcrumb>:last-child>*{color:rgba(255,255,255,0.7)}.uk-light .uk-breadcrumb>:nth-child(n+2):not(.uk-first-column)::before,.uk-section-primary:not(.uk-preserve-color) .uk-breadcrumb>:nth-child(n+2):not(.uk-first-column)::before,.uk-section-secondary:not(.uk-preserve-color) .uk-breadcrumb>:nth-child(n+2):not(.uk-first-column)::before,.uk-tile-primary:not(.uk-preserve-color) .uk-breadcrumb>:nth-child(n+2):not(.uk-first-column)::before,.uk-tile-secondary:not(.uk-preserve-color) .uk-breadcrumb>:nth-child(n+2):not(.uk-first-column)::before,.uk-card-primary.uk-card-body .uk-breadcrumb>:nth-child(n+2):not(.uk-first-column)::before,.uk-card-primary>:not([class*='uk-card-media']) .uk-breadcrumb>:nth-child(n+2):not(.uk-first-column)::before,.uk-card-secondary.uk-card-body .uk-breadcrumb>:nth-child(n+2):not(.uk-first-column)::before,.uk-card-secondary>:not([class*='uk-card-media']) .uk-breadcrumb>:nth-child(n+2):not(.uk-first-column)::before,.uk-overlay-primary .uk-breadcrumb>:nth-child(n+2):not(.uk-first-column)::before{color:rgba(255,255,255,0.5)}.uk-light .uk-pagination>*>*,.uk-section-primary:not(.uk-preserve-color) .uk-pagination>*>*,.uk-section-secondary:not(.uk-preserve-color) .uk-pagination>*>*,.uk-tile-primary:not(.uk-preserve-color) .uk-pagination>*>*,.uk-tile-secondary:not(.uk-preserve-color) .uk-pagination>*>*,.uk-card-primary.uk-card-body .uk-pagination>*>*,.uk-card-primary>:not([class*='uk-card-media']) .uk-pagination>*>*,.uk-card-secondary.uk-card-body .uk-pagination>*>*,.uk-card-secondary>:not([class*='uk-card-media']) .uk-pagination>*>*,.uk-overlay-primary .uk-pagination>*>*{color:rgba(255,255,255,0.5)}.uk-light .uk-pagination>*>:hover,.uk-section-primary:not(.uk-preserve-color) .uk-pagination>*>:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-pagination>*>:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-pagination>*>:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-pagination>*>:hover,.uk-card-primary.uk-card-body .uk-pagination>*>:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-pagination>*>:hover,.uk-card-secondary.uk-card-body .uk-pagination>*>:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-pagination>*>:hover,.uk-overlay-primary .uk-pagination>*>:hover,.uk-light .uk-pagination>*>:focus,.uk-section-primary:not(.uk-preserve-color) .uk-pagination>*>:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-pagination>*>:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-pagination>*>:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-pagination>*>:focus,.uk-card-primary.uk-card-body .uk-pagination>*>:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-pagination>*>:focus,.uk-card-secondary.uk-card-body .uk-pagination>*>:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-pagination>*>:focus,.uk-overlay-primary .uk-pagination>*>:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-pagination>.uk-active>*,.uk-section-primary:not(.uk-preserve-color) .uk-pagination>.uk-active>*,.uk-section-secondary:not(.uk-preserve-color) .uk-pagination>.uk-active>*,.uk-tile-primary:not(.uk-preserve-color) .uk-pagination>.uk-active>*,.uk-tile-secondary:not(.uk-preserve-color) .uk-pagination>.uk-active>*,.uk-card-primary.uk-card-body .uk-pagination>.uk-active>*,.uk-card-primary>:not([class*='uk-card-media']) .uk-pagination>.uk-active>*,.uk-card-secondary.uk-card-body .uk-pagination>.uk-active>*,.uk-card-secondary>:not([class*='uk-card-media']) .uk-pagination>.uk-active>*,.uk-overlay-primary .uk-pagination>.uk-active>*{color:rgba(255,255,255,0.7)}.uk-light .uk-pagination>.uk-disabled>*,.uk-section-primary:not(.uk-preserve-color) .uk-pagination>.uk-disabled>*,.uk-section-secondary:not(.uk-preserve-color) .uk-pagination>.uk-disabled>*,.uk-tile-primary:not(.uk-preserve-color) .uk-pagination>.uk-disabled>*,.uk-tile-secondary:not(.uk-preserve-color) .uk-pagination>.uk-disabled>*,.uk-card-primary.uk-card-body .uk-pagination>.uk-disabled>*,.uk-card-primary>:not([class*='uk-card-media']) .uk-pagination>.uk-disabled>*,.uk-card-secondary.uk-card-body .uk-pagination>.uk-disabled>*,.uk-card-secondary>:not([class*='uk-card-media']) .uk-pagination>.uk-disabled>*,.uk-overlay-primary .uk-pagination>.uk-disabled>*{color:rgba(255,255,255,0.5)}.uk-light .uk-tab::before,.uk-section-primary:not(.uk-preserve-color) .uk-tab::before,.uk-section-secondary:not(.uk-preserve-color) .uk-tab::before,.uk-tile-primary:not(.uk-preserve-color) .uk-tab::before,.uk-tile-secondary:not(.uk-preserve-color) .uk-tab::before,.uk-card-primary.uk-card-body .uk-tab::before,.uk-card-primary>:not([class*='uk-card-media']) .uk-tab::before,.uk-card-secondary.uk-card-body .uk-tab::before,.uk-card-secondary>:not([class*='uk-card-media']) .uk-tab::before,.uk-overlay-primary .uk-tab::before{border-color:rgba(255,255,255,0.2)}.uk-light .uk-tab>*>a,.uk-section-primary:not(.uk-preserve-color) .uk-tab>*>a,.uk-section-secondary:not(.uk-preserve-color) .uk-tab>*>a,.uk-tile-primary:not(.uk-preserve-color) .uk-tab>*>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-tab>*>a,.uk-card-primary.uk-card-body .uk-tab>*>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-tab>*>a,.uk-card-secondary.uk-card-body .uk-tab>*>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-tab>*>a,.uk-overlay-primary .uk-tab>*>a{color:rgba(255,255,255,0.5)}.uk-light .uk-tab>*>a:hover,.uk-section-primary:not(.uk-preserve-color) .uk-tab>*>a:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-tab>*>a:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-tab>*>a:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-tab>*>a:hover,.uk-card-primary.uk-card-body .uk-tab>*>a:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-tab>*>a:hover,.uk-card-secondary.uk-card-body .uk-tab>*>a:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-tab>*>a:hover,.uk-overlay-primary .uk-tab>*>a:hover,.uk-light .uk-tab>*>a:focus,.uk-section-primary:not(.uk-preserve-color) .uk-tab>*>a:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-tab>*>a:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-tab>*>a:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-tab>*>a:focus,.uk-card-primary.uk-card-body .uk-tab>*>a:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-tab>*>a:focus,.uk-card-secondary.uk-card-body .uk-tab>*>a:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-tab>*>a:focus,.uk-overlay-primary .uk-tab>*>a:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-tab>.uk-active>a,.uk-section-primary:not(.uk-preserve-color) .uk-tab>.uk-active>a,.uk-section-secondary:not(.uk-preserve-color) .uk-tab>.uk-active>a,.uk-tile-primary:not(.uk-preserve-color) .uk-tab>.uk-active>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-tab>.uk-active>a,.uk-card-primary.uk-card-body .uk-tab>.uk-active>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-tab>.uk-active>a,.uk-card-secondary.uk-card-body .uk-tab>.uk-active>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-tab>.uk-active>a,.uk-overlay-primary .uk-tab>.uk-active>a{color:#fff;border-color:#fff}.uk-light .uk-tab>.uk-disabled>a,.uk-section-primary:not(.uk-preserve-color) .uk-tab>.uk-disabled>a,.uk-section-secondary:not(.uk-preserve-color) .uk-tab>.uk-disabled>a,.uk-tile-primary:not(.uk-preserve-color) .uk-tab>.uk-disabled>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-tab>.uk-disabled>a,.uk-card-primary.uk-card-body .uk-tab>.uk-disabled>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-tab>.uk-disabled>a,.uk-card-secondary.uk-card-body .uk-tab>.uk-disabled>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-tab>.uk-disabled>a,.uk-overlay-primary .uk-tab>.uk-disabled>a{color:rgba(255,255,255,0.5)}.uk-light .uk-slidenav,.uk-section-primary:not(.uk-preserve-color) .uk-slidenav,.uk-section-secondary:not(.uk-preserve-color) .uk-slidenav,.uk-tile-primary:not(.uk-preserve-color) .uk-slidenav,.uk-tile-secondary:not(.uk-preserve-color) .uk-slidenav,.uk-card-primary.uk-card-body .uk-slidenav,.uk-card-primary>:not([class*='uk-card-media']) .uk-slidenav,.uk-card-secondary.uk-card-body .uk-slidenav,.uk-card-secondary>:not([class*='uk-card-media']) .uk-slidenav,.uk-overlay-primary .uk-slidenav{color:rgba(255,255,255,0.7)}.uk-light .uk-slidenav:hover,.uk-section-primary:not(.uk-preserve-color) .uk-slidenav:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-slidenav:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-slidenav:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-slidenav:hover,.uk-card-primary.uk-card-body .uk-slidenav:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-slidenav:hover,.uk-card-secondary.uk-card-body .uk-slidenav:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-slidenav:hover,.uk-overlay-primary .uk-slidenav:hover,.uk-light .uk-slidenav:focus,.uk-section-primary:not(.uk-preserve-color) .uk-slidenav:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-slidenav:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-slidenav:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-slidenav:focus,.uk-card-primary.uk-card-body .uk-slidenav:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-slidenav:focus,.uk-card-secondary.uk-card-body .uk-slidenav:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-slidenav:focus,.uk-overlay-primary .uk-slidenav:focus{color:rgba(255,255,255,0.95)}.uk-light .uk-slidenav:active,.uk-section-primary:not(.uk-preserve-color) .uk-slidenav:active,.uk-section-secondary:not(.uk-preserve-color) .uk-slidenav:active,.uk-tile-primary:not(.uk-preserve-color) .uk-slidenav:active,.uk-tile-secondary:not(.uk-preserve-color) .uk-slidenav:active,.uk-card-primary.uk-card-body .uk-slidenav:active,.uk-card-primary>:not([class*='uk-card-media']) .uk-slidenav:active,.uk-card-secondary.uk-card-body .uk-slidenav:active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-slidenav:active,.uk-overlay-primary .uk-slidenav:active{color:rgba(255,255,255,0.7)}.uk-light .uk-dotnav>*>*,.uk-section-primary:not(.uk-preserve-color) .uk-dotnav>*>*,.uk-section-secondary:not(.uk-preserve-color) .uk-dotnav>*>*,.uk-tile-primary:not(.uk-preserve-color) .uk-dotnav>*>*,.uk-tile-secondary:not(.uk-preserve-color) .uk-dotnav>*>*,.uk-card-primary.uk-card-body .uk-dotnav>*>*,.uk-card-primary>:not([class*='uk-card-media']) .uk-dotnav>*>*,.uk-card-secondary.uk-card-body .uk-dotnav>*>*,.uk-card-secondary>:not([class*='uk-card-media']) .uk-dotnav>*>*,.uk-overlay-primary .uk-dotnav>*>*{background-color:transparent;border-color:rgba(255,255,255,0.9)}.uk-light .uk-dotnav>*>:hover,.uk-section-primary:not(.uk-preserve-color) .uk-dotnav>*>:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-dotnav>*>:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-dotnav>*>:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-dotnav>*>:hover,.uk-card-primary.uk-card-body .uk-dotnav>*>:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-dotnav>*>:hover,.uk-card-secondary.uk-card-body .uk-dotnav>*>:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-dotnav>*>:hover,.uk-overlay-primary .uk-dotnav>*>:hover,.uk-light .uk-dotnav>*>:focus,.uk-section-primary:not(.uk-preserve-color) .uk-dotnav>*>:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-dotnav>*>:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-dotnav>*>:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-dotnav>*>:focus,.uk-card-primary.uk-card-body .uk-dotnav>*>:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-dotnav>*>:focus,.uk-card-secondary.uk-card-body .uk-dotnav>*>:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-dotnav>*>:focus,.uk-overlay-primary .uk-dotnav>*>:focus{background-color:rgba(255,255,255,0.9);border-color:transparent}.uk-light .uk-dotnav>*>:active,.uk-section-primary:not(.uk-preserve-color) .uk-dotnav>*>:active,.uk-section-secondary:not(.uk-preserve-color) .uk-dotnav>*>:active,.uk-tile-primary:not(.uk-preserve-color) .uk-dotnav>*>:active,.uk-tile-secondary:not(.uk-preserve-color) .uk-dotnav>*>:active,.uk-card-primary.uk-card-body .uk-dotnav>*>:active,.uk-card-primary>:not([class*='uk-card-media']) .uk-dotnav>*>:active,.uk-card-secondary.uk-card-body .uk-dotnav>*>:active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-dotnav>*>:active,.uk-overlay-primary .uk-dotnav>*>:active{background-color:rgba(255,255,255,0.5);border-color:transparent}.uk-light .uk-dotnav>.uk-active>*,.uk-section-primary:not(.uk-preserve-color) .uk-dotnav>.uk-active>*,.uk-section-secondary:not(.uk-preserve-color) .uk-dotnav>.uk-active>*,.uk-tile-primary:not(.uk-preserve-color) .uk-dotnav>.uk-active>*,.uk-tile-secondary:not(.uk-preserve-color) .uk-dotnav>.uk-active>*,.uk-card-primary.uk-card-body .uk-dotnav>.uk-active>*,.uk-card-primary>:not([class*='uk-card-media']) .uk-dotnav>.uk-active>*,.uk-card-secondary.uk-card-body .uk-dotnav>.uk-active>*,.uk-card-secondary>:not([class*='uk-card-media']) .uk-dotnav>.uk-active>*,.uk-overlay-primary .uk-dotnav>.uk-active>*{background-color:rgba(255,255,255,0.9);border-color:transparent}.uk-light .uk-accordion-title::after,.uk-section-primary:not(.uk-preserve-color) .uk-accordion-title::after,.uk-section-secondary:not(.uk-preserve-color) .uk-accordion-title::after,.uk-tile-primary:not(.uk-preserve-color) .uk-accordion-title::after,.uk-tile-secondary:not(.uk-preserve-color) .uk-accordion-title::after,.uk-card-primary.uk-card-body .uk-accordion-title::after,.uk-card-primary>:not([class*='uk-card-media']) .uk-accordion-title::after,.uk-card-secondary.uk-card-body .uk-accordion-title::after,.uk-card-secondary>:not([class*='uk-card-media']) .uk-accordion-title::after,.uk-overlay-primary .uk-accordion-title::after{background-image:url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline fill='none' stroke='rgba(255,255,255,0.7)' stroke-width='1.03' points='16 7 10 13 4 7' /%3E%3C/svg%3E")}.uk-light .uk-open>.uk-accordion-title::after,.uk-section-primary:not(.uk-preserve-color) .uk-open>.uk-accordion-title::after,.uk-section-secondary:not(.uk-preserve-color) .uk-open>.uk-accordion-title::after,.uk-tile-primary:not(.uk-preserve-color) .uk-open>.uk-accordion-title::after,.uk-tile-secondary:not(.uk-preserve-color) .uk-open>.uk-accordion-title::after,.uk-card-primary.uk-card-body .uk-open>.uk-accordion-title::after,.uk-card-primary>:not([class*='uk-card-media']) .uk-open>.uk-accordion-title::after,.uk-card-secondary.uk-card-body .uk-open>.uk-accordion-title::after,.uk-card-secondary>:not([class*='uk-card-media']) .uk-open>.uk-accordion-title::after,.uk-overlay-primary .uk-open>.uk-accordion-title::after{background-image:url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline fill='none' stroke='rgba(255,255,255,0.7)' stroke-width='1.03' points='4 13 10 7 16 13' /%3E%3C/svg%3E")}.uk-light .uk-iconnav>*>a,.uk-section-primary:not(.uk-preserve-color) .uk-iconnav>*>a,.uk-section-secondary:not(.uk-preserve-color) .uk-iconnav>*>a,.uk-tile-primary:not(.uk-preserve-color) .uk-iconnav>*>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-iconnav>*>a,.uk-card-primary.uk-card-body .uk-iconnav>*>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-iconnav>*>a,.uk-card-secondary.uk-card-body .uk-iconnav>*>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-iconnav>*>a,.uk-overlay-primary .uk-iconnav>*>a{color:rgba(255,255,255,0.5)}.uk-light .uk-iconnav>*>a:hover,.uk-section-primary:not(.uk-preserve-color) .uk-iconnav>*>a:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-iconnav>*>a:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-iconnav>*>a:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-iconnav>*>a:hover,.uk-card-primary.uk-card-body .uk-iconnav>*>a:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-iconnav>*>a:hover,.uk-card-secondary.uk-card-body .uk-iconnav>*>a:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-iconnav>*>a:hover,.uk-overlay-primary .uk-iconnav>*>a:hover,.uk-light .uk-iconnav>*>a:focus,.uk-section-primary:not(.uk-preserve-color) .uk-iconnav>*>a:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-iconnav>*>a:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-iconnav>*>a:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-iconnav>*>a:focus,.uk-card-primary.uk-card-body .uk-iconnav>*>a:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-iconnav>*>a:focus,.uk-card-secondary.uk-card-body .uk-iconnav>*>a:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-iconnav>*>a:focus,.uk-overlay-primary .uk-iconnav>*>a:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-iconnav>.uk-active>a,.uk-section-primary:not(.uk-preserve-color) .uk-iconnav>.uk-active>a,.uk-section-secondary:not(.uk-preserve-color) .uk-iconnav>.uk-active>a,.uk-tile-primary:not(.uk-preserve-color) .uk-iconnav>.uk-active>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-iconnav>.uk-active>a,.uk-card-primary.uk-card-body .uk-iconnav>.uk-active>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-iconnav>.uk-active>a,.uk-card-secondary.uk-card-body .uk-iconnav>.uk-active>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-iconnav>.uk-active>a,.uk-overlay-primary .uk-iconnav>.uk-active>a{color:rgba(255,255,255,0.7)}.uk-light .uk-text-lead,.uk-section-primary:not(.uk-preserve-color) .uk-text-lead,.uk-section-secondary:not(.uk-preserve-color) .uk-text-lead,.uk-tile-primary:not(.uk-preserve-color) .uk-text-lead,.uk-tile-secondary:not(.uk-preserve-color) .uk-text-lead,.uk-card-primary.uk-card-body .uk-text-lead,.uk-card-primary>:not([class*='uk-card-media']) .uk-text-lead,.uk-card-secondary.uk-card-body .uk-text-lead,.uk-card-secondary>:not([class*='uk-card-media']) .uk-text-lead,.uk-overlay-primary .uk-text-lead{color:rgba(255,255,255,0.7)}.uk-light .uk-text-meta,.uk-section-primary:not(.uk-preserve-color) .uk-text-meta,.uk-section-secondary:not(.uk-preserve-color) .uk-text-meta,.uk-tile-primary:not(.uk-preserve-color) .uk-text-meta,.uk-tile-secondary:not(.uk-preserve-color) .uk-text-meta,.uk-card-primary.uk-card-body .uk-text-meta,.uk-card-primary>:not([class*='uk-card-media']) .uk-text-meta,.uk-card-secondary.uk-card-body .uk-text-meta,.uk-card-secondary>:not([class*='uk-card-media']) .uk-text-meta,.uk-overlay-primary .uk-text-meta{color:rgba(255,255,255,0.5)}.uk-light .uk-text-muted,.uk-section-primary:not(.uk-preserve-color) .uk-text-muted,.uk-section-secondary:not(.uk-preserve-color) .uk-text-muted,.uk-tile-primary:not(.uk-preserve-color) .uk-text-muted,.uk-tile-secondary:not(.uk-preserve-color) .uk-text-muted,.uk-card-primary.uk-card-body .uk-text-muted,.uk-card-primary>:not([class*='uk-card-media']) .uk-text-muted,.uk-card-secondary.uk-card-body .uk-text-muted,.uk-card-secondary>:not([class*='uk-card-media']) .uk-text-muted,.uk-overlay-primary .uk-text-muted{color:rgba(255,255,255,0.5) !important}.uk-light .uk-text-primary,.uk-section-primary:not(.uk-preserve-color) .uk-text-primary,.uk-section-secondary:not(.uk-preserve-color) .uk-text-primary,.uk-tile-primary:not(.uk-preserve-color) .uk-text-primary,.uk-tile-secondary:not(.uk-preserve-color) .uk-text-primary,.uk-card-primary.uk-card-body .uk-text-primary,.uk-card-primary>:not([class*='uk-card-media']) .uk-text-primary,.uk-card-secondary.uk-card-body .uk-text-primary,.uk-card-secondary>:not([class*='uk-card-media']) .uk-text-primary,.uk-overlay-primary .uk-text-primary{color:rgba(255,255,255,0.7) !important}.uk-light .uk-column-divider,.uk-section-primary:not(.uk-preserve-color) .uk-column-divider,.uk-section-secondary:not(.uk-preserve-color) .uk-column-divider,.uk-tile-primary:not(.uk-preserve-color) .uk-column-divider,.uk-tile-secondary:not(.uk-preserve-color) .uk-column-divider,.uk-card-primary.uk-card-body .uk-column-divider,.uk-card-primary>:not([class*='uk-card-media']) .uk-column-divider,.uk-card-secondary.uk-card-body .uk-column-divider,.uk-card-secondary>:not([class*='uk-card-media']) .uk-column-divider,.uk-overlay-primary .uk-column-divider{column-rule-color:rgba(255,255,255,0.2)}.uk-light .uk-logo,.uk-section-primary:not(.uk-preserve-color) .uk-logo,.uk-section-secondary:not(.uk-preserve-color) .uk-logo,.uk-tile-primary:not(.uk-preserve-color) .uk-logo,.uk-tile-secondary:not(.uk-preserve-color) .uk-logo,.uk-card-primary.uk-card-body .uk-logo,.uk-card-primary>:not([class*='uk-card-media']) .uk-logo,.uk-card-secondary.uk-card-body .uk-logo,.uk-card-secondary>:not([class*='uk-card-media']) .uk-logo,.uk-overlay-primary .uk-logo{color:rgba(255,255,255,0.7)}.uk-light .uk-logo:hover,.uk-section-primary:not(.uk-preserve-color) .uk-logo:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-logo:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-logo:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-logo:hover,.uk-card-primary.uk-card-body .uk-logo:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-logo:hover,.uk-card-secondary.uk-card-body .uk-logo:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-logo:hover,.uk-overlay-primary .uk-logo:hover,.uk-light .uk-logo:focus,.uk-section-primary:not(.uk-preserve-color) .uk-logo:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-logo:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-logo:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-logo:focus,.uk-card-primary.uk-card-body .uk-logo:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-logo:focus,.uk-card-secondary.uk-card-body .uk-logo:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-logo:focus,.uk-overlay-primary .uk-logo:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-logo>:not(.uk-logo-inverse):not(:only-of-type),.uk-section-primary:not(.uk-preserve-color) .uk-logo>:not(.uk-logo-inverse):not(:only-of-type),.uk-section-secondary:not(.uk-preserve-color) .uk-logo>:not(.uk-logo-inverse):not(:only-of-type),.uk-tile-primary:not(.uk-preserve-color) .uk-logo>:not(.uk-logo-inverse):not(:only-of-type),.uk-tile-secondary:not(.uk-preserve-color) .uk-logo>:not(.uk-logo-inverse):not(:only-of-type),.uk-card-primary.uk-card-body .uk-logo>:not(.uk-logo-inverse):not(:only-of-type),.uk-card-primary>:not([class*='uk-card-media']) .uk-logo>:not(.uk-logo-inverse):not(:only-of-type),.uk-card-secondary.uk-card-body .uk-logo>:not(.uk-logo-inverse):not(:only-of-type),.uk-card-secondary>:not([class*='uk-card-media']) .uk-logo>:not(.uk-logo-inverse):not(:only-of-type),.uk-overlay-primary .uk-logo>:not(.uk-logo-inverse):not(:only-of-type){display:none}.uk-light .uk-logo-inverse,.uk-section-primary:not(.uk-preserve-color) .uk-logo-inverse,.uk-section-secondary:not(.uk-preserve-color) .uk-logo-inverse,.uk-tile-primary:not(.uk-preserve-color) .uk-logo-inverse,.uk-tile-secondary:not(.uk-preserve-color) .uk-logo-inverse,.uk-card-primary.uk-card-body .uk-logo-inverse,.uk-card-primary>:not([class*='uk-card-media']) .uk-logo-inverse,.uk-card-secondary.uk-card-body .uk-logo-inverse,.uk-card-secondary>:not([class*='uk-card-media']) .uk-logo-inverse,.uk-overlay-primary .uk-logo-inverse{display:inline}@media print{*,*::before,*::after{background:transparent !important;color:black !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}pre.highlight{background-color:#fff;border:solid 1px #EEF1F4;box-shadow:0 5px 15px rgba(0,0,0,0.08);padding:30px;border-radius:6px}.highlight .hll{background-color:#ffc}.highlight .c{font-style:italic}.highlight .k{font-weight:bold}.highlight .cm{font-style:italic}.highlight .c1{font-style:italic}.highlight .cs{font-style:italic}.highlight .ge{font-style:italic}.highlight .gh{font-weight:bold}.highlight .gp{font-weight:bold}.highlight .gs{font-weight:bold}.highlight .gu{font-weight:bold}.highlight .kc{font-weight:bold}.highlight .kd{font-weight:bold}.highlight .kn{font-weight:bold}.highlight .kr{font-weight:bold}.highlight .s{font-style:italic}.highlight .nc{font-weight:bold}.highlight .ni{font-weight:bold}.highlight .ne{font-weight:bold}.highlight .nn{font-weight:bold}.highlight .nt{font-weight:bold}.highlight .ow{font-weight:bold}.highlight .sb{font-style:italic}.highlight .sc{font-style:italic}.highlight .sd{font-style:italic}.highlight .s2{font-style:italic}.highlight .se{font-weight:bold;font-style:italic}.highlight .sh{font-style:italic}.highlight .si{font-weight:bold;font-style:italic}.highlight .sx{font-style:italic}.highlight .sr{font-style:italic}.highlight .s1{font-style:italic}.highlight .ss{font-style:italic} diff --git a/_site/assets/img/location.svg b/_site/assets/img/location.svg new file mode 100644 index 0000000..e71e58b --- /dev/null +++ b/_site/assets/img/location.svg @@ -0,0 +1,13 @@ + + + + location-dark + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/_site/assets/img/uploads/1.png b/_site/assets/img/uploads/1.png new file mode 100644 index 0000000..d36ec1f Binary files /dev/null and b/_site/assets/img/uploads/1.png differ diff --git a/_site/assets/img/uploads/10.png b/_site/assets/img/uploads/10.png new file mode 100644 index 0000000..1fc8c69 Binary files /dev/null and b/_site/assets/img/uploads/10.png differ diff --git a/_site/assets/img/uploads/11.png b/_site/assets/img/uploads/11.png new file mode 100644 index 0000000..57fe607 Binary files /dev/null and b/_site/assets/img/uploads/11.png differ diff --git a/_site/assets/img/uploads/2.png b/_site/assets/img/uploads/2.png new file mode 100644 index 0000000..ce75dd3 Binary files /dev/null and b/_site/assets/img/uploads/2.png differ diff --git a/_site/assets/img/uploads/3.png b/_site/assets/img/uploads/3.png new file mode 100644 index 0000000..36f8419 Binary files /dev/null and b/_site/assets/img/uploads/3.png differ diff --git a/_site/assets/img/uploads/4.png b/_site/assets/img/uploads/4.png new file mode 100644 index 0000000..3b211d8 Binary files /dev/null and b/_site/assets/img/uploads/4.png differ diff --git a/_site/assets/img/uploads/5.png b/_site/assets/img/uploads/5.png new file mode 100644 index 0000000..3a71700 Binary files /dev/null and b/_site/assets/img/uploads/5.png differ diff --git a/_site/assets/img/uploads/6.png b/_site/assets/img/uploads/6.png new file mode 100644 index 0000000..3827e21 Binary files /dev/null and b/_site/assets/img/uploads/6.png differ diff --git a/_site/assets/img/uploads/7.png b/_site/assets/img/uploads/7.png new file mode 100644 index 0000000..355b6ef Binary files /dev/null and b/_site/assets/img/uploads/7.png differ diff --git a/_site/assets/img/uploads/8.png b/_site/assets/img/uploads/8.png new file mode 100644 index 0000000..904627c Binary files /dev/null and b/_site/assets/img/uploads/8.png differ diff --git a/_site/assets/img/uploads/9.png b/_site/assets/img/uploads/9.png new file mode 100644 index 0000000..4470e4d Binary files /dev/null and b/_site/assets/img/uploads/9.png differ diff --git a/_site/assets/img/uploads/screenshot-2019-08-21-at-16.57.46.png b/_site/assets/img/uploads/screenshot-2019-08-21-at-16.57.46.png new file mode 100644 index 0000000..6f75967 Binary files /dev/null and b/_site/assets/img/uploads/screenshot-2019-08-21-at-16.57.46.png differ diff --git a/_site/assets/img/uploads/screenshot-2019-08-21-at-16.57.54.png b/_site/assets/img/uploads/screenshot-2019-08-21-at-16.57.54.png new file mode 100644 index 0000000..fa0bd6c Binary files /dev/null and b/_site/assets/img/uploads/screenshot-2019-08-21-at-16.57.54.png differ diff --git a/_site/assets/js/custom.js b/_site/assets/js/custom.js new file mode 100644 index 0000000..8035531 --- /dev/null +++ b/_site/assets/js/custom.js @@ -0,0 +1 @@ +// Custom scripts \ No newline at end of file diff --git a/_site/assets/js/main.js b/_site/assets/js/main.js new file mode 100644 index 0000000..2de3236 --- /dev/null +++ b/_site/assets/js/main.js @@ -0,0 +1,9143 @@ +(function(global, factory) { + typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define("uikit", factory) : (global = global || self, + global.UIkit = factory()); +})(this, function() { + "use strict"; + function bind(fn, context) { + return function(a) { + var l = arguments.length; + return l ? l > 1 ? fn.apply(context, arguments) : fn.call(context, a) : fn.call(context); + }; + } + var objPrototype = Object.prototype; + var hasOwnProperty = objPrototype.hasOwnProperty; + function hasOwn(obj, key) { + return hasOwnProperty.call(obj, key); + } + var hyphenateCache = {}; + var hyphenateRe = /([a-z\d])([A-Z])/g; + function hyphenate(str) { + if (!(str in hyphenateCache)) { + hyphenateCache[str] = str.replace(hyphenateRe, "$1-$2").toLowerCase(); + } + return hyphenateCache[str]; + } + var camelizeRe = /-(\w)/g; + function camelize(str) { + return str.replace(camelizeRe, toUpper); + } + function toUpper(_, c) { + return c ? c.toUpperCase() : ""; + } + function ucfirst(str) { + return str.length ? toUpper(null, str.charAt(0)) + str.slice(1) : ""; + } + var strPrototype = String.prototype; + var startsWithFn = strPrototype.startsWith || function(search) { + return this.lastIndexOf(search, 0) === 0; + }; + function startsWith(str, search) { + return startsWithFn.call(str, search); + } + var endsWithFn = strPrototype.endsWith || function(search) { + return this.substr(-search.length) === search; + }; + function endsWith(str, search) { + return endsWithFn.call(str, search); + } + var includesFn = function(search) { + return ~this.indexOf(search); + }; + var includesStr = strPrototype.includes || includesFn; + var includesArray = Array.prototype.includes || includesFn; + function includes(obj, search) { + return obj && (isString(obj) ? includesStr : includesArray).call(obj, search); + } + var isArray = Array.isArray; + function isFunction(obj) { + return typeof obj === "function"; + } + function isObject(obj) { + return obj !== null && typeof obj === "object"; + } + function isPlainObject(obj) { + return isObject(obj) && Object.getPrototypeOf(obj) === objPrototype; + } + function isWindow(obj) { + return isObject(obj) && obj === obj.window; + } + function isDocument(obj) { + return isObject(obj) && obj.nodeType === 9; + } + function isJQuery(obj) { + return isObject(obj) && !!obj.jquery; + } + function isNode(obj) { + return obj instanceof Node || isObject(obj) && obj.nodeType >= 1; + } + var toString = objPrototype.toString; + function isNodeCollection(obj) { + return toString.call(obj).match(/^\[object (NodeList|HTMLCollection)\]$/); + } + function isBoolean(value) { + return typeof value === "boolean"; + } + function isString(value) { + return typeof value === "string"; + } + function isNumber(value) { + return typeof value === "number"; + } + function isNumeric(value) { + return isNumber(value) || isString(value) && !isNaN(value - parseFloat(value)); + } + function isUndefined(value) { + return value === void 0; + } + function toBoolean(value) { + return isBoolean(value) ? value : value === "true" || value === "1" || value === "" ? true : value === "false" || value === "0" ? false : value; + } + function toNumber(value) { + var number = Number(value); + return !isNaN(number) ? number : false; + } + function toFloat(value) { + return parseFloat(value) || 0; + } + function toNode(element) { + return isNode(element) || isWindow(element) || isDocument(element) ? element : isNodeCollection(element) || isJQuery(element) ? element[0] : isArray(element) ? toNode(element[0]) : null; + } + var arrayProto = Array.prototype; + function toNodes(element) { + return isNode(element) ? [ element ] : isNodeCollection(element) ? arrayProto.slice.call(element) : isArray(element) ? element.map(toNode).filter(Boolean) : isJQuery(element) ? element.toArray() : []; + } + function toList(value) { + return isArray(value) ? value : isString(value) ? value.split(/,(?![^(]*\))/).map(function(value) { + return isNumeric(value) ? toNumber(value) : toBoolean(value.trim()); + }) : [ value ]; + } + function toMs(time) { + return !time ? 0 : endsWith(time, "ms") ? toFloat(time) : toFloat(time) * 1e3; + } + function isEqual(value, other) { + return value === other || isObject(value) && isObject(other) && Object.keys(value).length === Object.keys(other).length && each(value, function(val, key) { + return val === other[key]; + }); + } + function swap(value, a, b) { + return value.replace(new RegExp(a + "|" + b, "mg"), function(match) { + return match === a ? b : a; + }); + } + var assign = Object.assign || function(target) { + var args = [], len = arguments.length - 1; + while (len-- > 0) args[len] = arguments[len + 1]; + target = Object(target); + for (var i = 0; i < args.length; i++) { + var source = args[i]; + if (source !== null) { + for (var key in source) { + if (hasOwn(source, key)) { + target[key] = source[key]; + } + } + } + } + return target; + }; + function each(obj, cb) { + for (var key in obj) { + if (false === cb(obj[key], key)) { + return false; + } + } + return true; + } + function sortBy(collection, prop) { + return collection.sort(function(ref, ref$1) { + var propA = ref[prop]; + if (propA === void 0) propA = 0; + var propB = ref$1[prop]; + if (propB === void 0) propB = 0; + return propA > propB ? 1 : propB > propA ? -1 : 0; + }); + } + function clamp(number, min, max) { + if (min === void 0) min = 0; + if (max === void 0) max = 1; + return Math.min(Math.max(toNumber(number) || 0, min), max); + } + function noop() {} + function intersectRect(r1, r2) { + return r1.left < r2.right && r1.right > r2.left && r1.top < r2.bottom && r1.bottom > r2.top; + } + function pointInRect(point, rect) { + return point.x <= rect.right && point.x >= rect.left && point.y <= rect.bottom && point.y >= rect.top; + } + var Dimensions = { + ratio: function(dimensions, prop, value) { + var obj; + var aProp = prop === "width" ? "height" : "width"; + return obj = {}, obj[aProp] = dimensions[prop] ? Math.round(value * dimensions[aProp] / dimensions[prop]) : dimensions[aProp], + obj[prop] = value, obj; + }, + contain: function(dimensions, maxDimensions) { + var this$1 = this; + dimensions = assign({}, dimensions); + each(dimensions, function(_, prop) { + return dimensions = dimensions[prop] > maxDimensions[prop] ? this$1.ratio(dimensions, prop, maxDimensions[prop]) : dimensions; + }); + return dimensions; + }, + cover: function(dimensions, maxDimensions) { + var this$1 = this; + dimensions = this.contain(dimensions, maxDimensions); + each(dimensions, function(_, prop) { + return dimensions = dimensions[prop] < maxDimensions[prop] ? this$1.ratio(dimensions, prop, maxDimensions[prop]) : dimensions; + }); + return dimensions; + } + }; + function attr(element, name, value) { + if (isObject(name)) { + for (var key in name) { + attr(element, key, name[key]); + } + return; + } + if (isUndefined(value)) { + element = toNode(element); + return element && element.getAttribute(name); + } else { + toNodes(element).forEach(function(element) { + if (isFunction(value)) { + value = value.call(element, attr(element, name)); + } + if (value === null) { + removeAttr(element, name); + } else { + element.setAttribute(name, value); + } + }); + } + } + function hasAttr(element, name) { + return toNodes(element).some(function(element) { + return element.hasAttribute(name); + }); + } + function removeAttr(element, name) { + element = toNodes(element); + name.split(" ").forEach(function(name) { + return element.forEach(function(element) { + return element.removeAttribute(name); + }); + }); + } + function data(element, attribute) { + for (var i = 0, attrs = [ attribute, "data-" + attribute ]; i < attrs.length; i++) { + if (hasAttr(element, attrs[i])) { + return attr(element, attrs[i]); + } + } + } + function query(selector, context) { + return toNode(selector) || find(selector, getContext(selector, context)); + } + function queryAll(selector, context) { + var nodes = toNodes(selector); + return nodes.length && nodes || findAll(selector, getContext(selector, context)); + } + function getContext(selector, context) { + if (context === void 0) context = document; + return isContextSelector(selector) || isDocument(context) ? context : context.ownerDocument; + } + function find(selector, context) { + return toNode(_query(selector, context, "querySelector")); + } + function findAll(selector, context) { + return toNodes(_query(selector, context, "querySelectorAll")); + } + function _query(selector, context, queryFn) { + if (context === void 0) context = document; + if (!selector || !isString(selector)) { + return null; + } + selector = selector.replace(contextSanitizeRe, "$1 *"); + var removes; + if (isContextSelector(selector)) { + removes = []; + selector = selector.split(",").map(function(selector, i) { + var ctx = context; + selector = selector.trim(); + if (selector[0] === "!") { + var selectors = selector.substr(1).trim().split(" "); + ctx = closest(context.parentNode, selectors[0]); + selector = selectors.slice(1).join(" ").trim(); + } + if (selector[0] === "-") { + var selectors$1 = selector.substr(1).trim().split(" "); + var prev = (ctx || context).previousElementSibling; + ctx = matches(prev, selector.substr(1)) ? prev : null; + selector = selectors$1.slice(1).join(" "); + } + if (!ctx) { + return null; + } + if (!ctx.id) { + ctx.id = "uk-" + Date.now() + i; + removes.push(function() { + return removeAttr(ctx, "id"); + }); + } + return "#" + escape(ctx.id) + " " + selector; + }).filter(Boolean).join(","); + context = document; + } + try { + return context[queryFn](selector); + } catch (e) { + return null; + } finally { + removes && removes.forEach(function(remove) { + return remove(); + }); + } + } + var contextSelectorRe = /(^|,)\s*[!>+~-]/; + var contextSanitizeRe = /([!>+~-])(?=\s+[!>+~-]|\s*$)/g; + function isContextSelector(selector) { + return isString(selector) && selector.match(contextSelectorRe); + } + var elProto = Element.prototype; + var matchesFn = elProto.matches || elProto.webkitMatchesSelector || elProto.msMatchesSelector; + function matches(element, selector) { + return toNodes(element).some(function(element) { + return matchesFn.call(element, selector); + }); + } + var closestFn = elProto.closest || function(selector) { + var ancestor = this; + do { + if (matches(ancestor, selector)) { + return ancestor; + } + ancestor = ancestor.parentNode; + } while (ancestor && ancestor.nodeType === 1); + }; + function closest(element, selector) { + if (startsWith(selector, ">")) { + selector = selector.slice(1); + } + return isNode(element) ? element.parentNode && closestFn.call(element, selector) : toNodes(element).map(function(element) { + return closest(element, selector); + }).filter(Boolean); + } + function parents(element, selector) { + var elements = []; + var parent = toNode(element).parentNode; + while (parent && parent.nodeType === 1) { + if (matches(parent, selector)) { + elements.push(parent); + } + parent = parent.parentNode; + } + return elements; + } + var escapeFn = window.CSS && CSS.escape || function(css) { + return css.replace(/([^\x7f-\uFFFF\w-])/g, function(match) { + return "\\" + match; + }); + }; + function escape(css) { + return isString(css) ? escapeFn.call(null, css) : ""; + } + var voidElements = { + area: true, + base: true, + br: true, + col: true, + embed: true, + hr: true, + img: true, + input: true, + keygen: true, + link: true, + menuitem: true, + meta: true, + param: true, + source: true, + track: true, + wbr: true + }; + function isVoidElement(element) { + return toNodes(element).some(function(element) { + return voidElements[element.tagName.toLowerCase()]; + }); + } + function isVisible(element) { + return toNodes(element).some(function(element) { + return element.offsetWidth || element.offsetHeight || element.getClientRects().length; + }); + } + var selInput = "input,select,textarea,button"; + function isInput(element) { + return toNodes(element).some(function(element) { + return matches(element, selInput); + }); + } + function filter(element, selector) { + return toNodes(element).filter(function(element) { + return matches(element, selector); + }); + } + function within(element, selector) { + return !isString(selector) ? element === selector || (isDocument(selector) ? selector.documentElement : toNode(selector)).contains(toNode(element)) : matches(element, selector) || closest(element, selector); + } + var isIE = /msie|trident/i.test(window.navigator.userAgent); + var isRtl = attr(document.documentElement, "dir") === "rtl"; + var hasTouchEvents = "ontouchstart" in window; + var hasPointerEvents = window.PointerEvent; + var hasTouch = hasTouchEvents || window.DocumentTouch && document instanceof DocumentTouch || navigator.maxTouchPoints; + var pointerDown = hasPointerEvents ? "pointerdown" : hasTouchEvents ? "touchstart" : "mousedown"; + var pointerMove = hasPointerEvents ? "pointermove" : hasTouchEvents ? "touchmove" : "mousemove"; + var pointerUp = hasPointerEvents ? "pointerup" : hasTouchEvents ? "touchend" : "mouseup"; + var pointerEnter = hasPointerEvents ? "pointerenter" : hasTouchEvents ? "" : "mouseenter"; + var pointerLeave = hasPointerEvents ? "pointerleave" : hasTouchEvents ? "" : "mouseleave"; + var pointerCancel = hasPointerEvents ? "pointercancel" : "touchcancel"; + function on() { + var args = [], len = arguments.length; + while (len--) args[len] = arguments[len]; + var ref = getArgs(args); + var targets = ref[0]; + var type = ref[1]; + var selector = ref[2]; + var listener = ref[3]; + var useCapture = ref[4]; + targets = toEventTargets(targets); + if (selector) { + listener = delegate(targets, selector, listener); + } + if (listener.length > 1) { + listener = detail(listener); + } + type.split(" ").forEach(function(type) { + return targets.forEach(function(target) { + return target.addEventListener(type, listener, useCapture); + }); + }); + return function() { + return off(targets, type, listener, useCapture); + }; + } + function off(targets, type, listener, useCapture) { + if (useCapture === void 0) useCapture = false; + targets = toEventTargets(targets); + type.split(" ").forEach(function(type) { + return targets.forEach(function(target) { + return target.removeEventListener(type, listener, useCapture); + }); + }); + } + function once() { + var args = [], len = arguments.length; + while (len--) args[len] = arguments[len]; + var ref = getArgs(args); + var element = ref[0]; + var type = ref[1]; + var selector = ref[2]; + var listener = ref[3]; + var useCapture = ref[4]; + var condition = ref[5]; + var off = on(element, type, selector, function(e) { + var result = !condition || condition(e); + if (result) { + off(); + listener(e, result); + } + }, useCapture); + return off; + } + function trigger(targets, event, detail) { + return toEventTargets(targets).reduce(function(notCanceled, target) { + return notCanceled && target.dispatchEvent(createEvent(event, true, true, detail)); + }, true); + } + function createEvent(e, bubbles, cancelable, detail) { + if (bubbles === void 0) bubbles = true; + if (cancelable === void 0) cancelable = false; + if (isString(e)) { + var event = document.createEvent("CustomEvent"); + event.initCustomEvent(e, bubbles, cancelable, detail); + e = event; + } + return e; + } + function getArgs(args) { + if (isFunction(args[2])) { + args.splice(2, 0, false); + } + return args; + } + function delegate(delegates, selector, listener) { + var this$1 = this; + return function(e) { + delegates.forEach(function(delegate) { + var current = selector[0] === ">" ? findAll(selector, delegate).reverse().filter(function(element) { + return within(e.target, element); + })[0] : closest(e.target, selector); + if (current) { + e.delegate = delegate; + e.current = current; + listener.call(this$1, e); + } + }); + }; + } + function detail(listener) { + return function(e) { + return isArray(e.detail) ? listener.apply(void 0, [ e ].concat(e.detail)) : listener(e); + }; + } + function isEventTarget(target) { + return target && "addEventListener" in target; + } + function toEventTarget(target) { + return isEventTarget(target) ? target : toNode(target); + } + function toEventTargets(target) { + return isArray(target) ? target.map(toEventTarget).filter(Boolean) : isString(target) ? findAll(target) : isEventTarget(target) ? [ target ] : toNodes(target); + } + function preventClick() { + var timer = setTimeout(once(document, "click", function(e) { + e.preventDefault(); + e.stopImmediatePropagation(); + clearTimeout(timer); + }, true)); + trigger(document, pointerCancel); + } + var Promise = "Promise" in window ? window.Promise : PromiseFn; + var Deferred = function() { + var this$1 = this; + this.promise = new Promise(function(resolve, reject) { + this$1.reject = reject; + this$1.resolve = resolve; + }); + }; + var RESOLVED = 0; + var REJECTED = 1; + var PENDING = 2; + var async = "setImmediate" in window ? setImmediate : setTimeout; + function PromiseFn(executor) { + this.state = PENDING; + this.value = undefined; + this.deferred = []; + var promise = this; + try { + executor(function(x) { + promise.resolve(x); + }, function(r) { + promise.reject(r); + }); + } catch (e) { + promise.reject(e); + } + } + PromiseFn.reject = function(r) { + return new PromiseFn(function(resolve, reject) { + reject(r); + }); + }; + PromiseFn.resolve = function(x) { + return new PromiseFn(function(resolve, reject) { + resolve(x); + }); + }; + PromiseFn.all = function all(iterable) { + return new PromiseFn(function(resolve, reject) { + var result = []; + var count = 0; + if (iterable.length === 0) { + resolve(result); + } + function resolver(i) { + return function(x) { + result[i] = x; + count += 1; + if (count === iterable.length) { + resolve(result); + } + }; + } + for (var i = 0; i < iterable.length; i += 1) { + PromiseFn.resolve(iterable[i]).then(resolver(i), reject); + } + }); + }; + PromiseFn.race = function race(iterable) { + return new PromiseFn(function(resolve, reject) { + for (var i = 0; i < iterable.length; i += 1) { + PromiseFn.resolve(iterable[i]).then(resolve, reject); + } + }); + }; + var p = PromiseFn.prototype; + p.resolve = function resolve(x) { + var promise = this; + if (promise.state === PENDING) { + if (x === promise) { + throw new TypeError("Promise settled with itself."); + } + var called = false; + try { + var then = x && x.then; + if (x !== null && isObject(x) && isFunction(then)) { + then.call(x, function(x) { + if (!called) { + promise.resolve(x); + } + called = true; + }, function(r) { + if (!called) { + promise.reject(r); + } + called = true; + }); + return; + } + } catch (e) { + if (!called) { + promise.reject(e); + } + return; + } + promise.state = RESOLVED; + promise.value = x; + promise.notify(); + } + }; + p.reject = function reject(reason) { + var promise = this; + if (promise.state === PENDING) { + if (reason === promise) { + throw new TypeError("Promise settled with itself."); + } + promise.state = REJECTED; + promise.value = reason; + promise.notify(); + } + }; + p.notify = function notify() { + var this$1 = this; + async(function() { + if (this$1.state !== PENDING) { + while (this$1.deferred.length) { + var ref = this$1.deferred.shift(); + var onResolved = ref[0]; + var onRejected = ref[1]; + var resolve = ref[2]; + var reject = ref[3]; + try { + if (this$1.state === RESOLVED) { + if (isFunction(onResolved)) { + resolve(onResolved.call(undefined, this$1.value)); + } else { + resolve(this$1.value); + } + } else if (this$1.state === REJECTED) { + if (isFunction(onRejected)) { + resolve(onRejected.call(undefined, this$1.value)); + } else { + reject(this$1.value); + } + } + } catch (e) { + reject(e); + } + } + } + }); + }; + p.then = function then(onResolved, onRejected) { + var this$1 = this; + return new PromiseFn(function(resolve, reject) { + this$1.deferred.push([ onResolved, onRejected, resolve, reject ]); + this$1.notify(); + }); + }; + p.catch = function(onRejected) { + return this.then(undefined, onRejected); + }; + function ajax(url, options) { + return new Promise(function(resolve, reject) { + var env = assign({ + data: null, + method: "GET", + headers: {}, + xhr: new XMLHttpRequest(), + beforeSend: noop, + responseType: "" + }, options); + env.beforeSend(env); + var xhr = env.xhr; + for (var prop in env) { + if (prop in xhr) { + try { + xhr[prop] = env[prop]; + } catch (e) {} + } + } + xhr.open(env.method.toUpperCase(), url); + for (var header in env.headers) { + xhr.setRequestHeader(header, env.headers[header]); + } + on(xhr, "load", function() { + if (xhr.status === 0 || xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) { + resolve(xhr); + } else { + reject(assign(Error(xhr.statusText), { + xhr: xhr, + status: xhr.status + })); + } + }); + on(xhr, "error", function() { + return reject(assign(Error("Network Error"), { + xhr: xhr + })); + }); + on(xhr, "timeout", function() { + return reject(assign(Error("Network Timeout"), { + xhr: xhr + })); + }); + xhr.send(env.data); + }); + } + function getImage(src, srcset, sizes) { + return new Promise(function(resolve, reject) { + var img = new Image(); + img.onerror = reject; + img.onload = function() { + return resolve(img); + }; + sizes && (img.sizes = sizes); + srcset && (img.srcset = srcset); + img.src = src; + }); + } + function ready(fn) { + if (document.readyState !== "loading") { + fn(); + return; + } + var unbind = on(document, "DOMContentLoaded", function() { + unbind(); + fn(); + }); + } + function index(element, ref) { + return ref ? toNodes(element).indexOf(toNode(ref)) : toNodes((element = toNode(element)) && element.parentNode.children).indexOf(element); + } + function getIndex(i, elements, current, finite) { + if (current === void 0) current = 0; + if (finite === void 0) finite = false; + elements = toNodes(elements); + var length = elements.length; + i = isNumeric(i) ? toNumber(i) : i === "next" ? current + 1 : i === "previous" ? current - 1 : index(elements, i); + if (finite) { + return clamp(i, 0, length - 1); + } + i %= length; + return i < 0 ? i + length : i; + } + function empty(element) { + element = $(element); + element.innerHTML = ""; + return element; + } + function html(parent, html) { + parent = $(parent); + return isUndefined(html) ? parent.innerHTML : append(parent.hasChildNodes() ? empty(parent) : parent, html); + } + function prepend(parent, element) { + parent = $(parent); + if (!parent.hasChildNodes()) { + return append(parent, element); + } else { + return insertNodes(element, function(element) { + return parent.insertBefore(element, parent.firstChild); + }); + } + } + function append(parent, element) { + parent = $(parent); + return insertNodes(element, function(element) { + return parent.appendChild(element); + }); + } + function before(ref, element) { + ref = $(ref); + return insertNodes(element, function(element) { + return ref.parentNode.insertBefore(element, ref); + }); + } + function after(ref, element) { + ref = $(ref); + return insertNodes(element, function(element) { + return ref.nextSibling ? before(ref.nextSibling, element) : append(ref.parentNode, element); + }); + } + function insertNodes(element, fn) { + element = isString(element) ? fragment(element) : element; + return element ? "length" in element ? toNodes(element).map(fn) : fn(element) : null; + } + function remove(element) { + toNodes(element).map(function(element) { + return element.parentNode && element.parentNode.removeChild(element); + }); + } + function wrapAll(element, structure) { + structure = toNode(before(element, structure)); + while (structure.firstChild) { + structure = structure.firstChild; + } + append(structure, element); + return structure; + } + function wrapInner(element, structure) { + return toNodes(toNodes(element).map(function(element) { + return element.hasChildNodes ? wrapAll(toNodes(element.childNodes), structure) : append(element, structure); + })); + } + function unwrap(element) { + toNodes(element).map(function(element) { + return element.parentNode; + }).filter(function(value, index, self) { + return self.indexOf(value) === index; + }).forEach(function(parent) { + before(parent, parent.childNodes); + remove(parent); + }); + } + var fragmentRe = /^\s*<(\w+|!)[^>]*>/; + var singleTagRe = /^<(\w+)\s*\/?>(?:<\/\1>)?$/; + function fragment(html) { + var matches$$1 = singleTagRe.exec(html); + if (matches$$1) { + return document.createElement(matches$$1[1]); + } + var container = document.createElement("div"); + if (fragmentRe.test(html)) { + container.insertAdjacentHTML("beforeend", html.trim()); + } else { + container.textContent = html; + } + return container.childNodes.length > 1 ? toNodes(container.childNodes) : container.firstChild; + } + function apply(node, fn) { + if (!node || node.nodeType !== 1) { + return; + } + fn(node); + node = node.firstElementChild; + while (node) { + apply(node, fn); + node = node.nextElementSibling; + } + } + function $(selector, context) { + return !isString(selector) ? toNode(selector) : isHtml(selector) ? toNode(fragment(selector)) : find(selector, context); + } + function $$(selector, context) { + return !isString(selector) ? toNodes(selector) : isHtml(selector) ? toNodes(fragment(selector)) : findAll(selector, context); + } + function isHtml(str) { + return str[0] === "<" || str.match(/^\s* 0) args[len] = arguments[len + 1]; + apply$1(element, args, "add"); + } + function removeClass(element) { + var args = [], len = arguments.length - 1; + while (len-- > 0) args[len] = arguments[len + 1]; + apply$1(element, args, "remove"); + } + function removeClasses(element, cls) { + attr(element, "class", function(value) { + return (value || "").replace(new RegExp("\\b" + cls + "\\b", "g"), ""); + }); + } + function replaceClass(element) { + var args = [], len = arguments.length - 1; + while (len-- > 0) args[len] = arguments[len + 1]; + args[0] && removeClass(element, args[0]); + args[1] && addClass(element, args[1]); + } + function hasClass(element, cls) { + return cls && toNodes(element).some(function(element) { + return element.classList.contains(cls.split(" ")[0]); + }); + } + function toggleClass(element) { + var args = [], len = arguments.length - 1; + while (len-- > 0) args[len] = arguments[len + 1]; + if (!args.length) { + return; + } + args = getArgs$1(args); + var force = !isString(args[args.length - 1]) ? args.pop() : []; + args = args.filter(Boolean); + toNodes(element).forEach(function(ref) { + var classList = ref.classList; + for (var i = 0; i < args.length; i++) { + supports.Force ? classList.toggle.apply(classList, [ args[i] ].concat(force)) : classList[(!isUndefined(force) ? force : !classList.contains(args[i])) ? "add" : "remove"](args[i]); + } + }); + } + function apply$1(element, args, fn) { + args = getArgs$1(args).filter(Boolean); + args.length && toNodes(element).forEach(function(ref) { + var classList = ref.classList; + supports.Multiple ? classList[fn].apply(classList, args) : args.forEach(function(cls) { + return classList[fn](cls); + }); + }); + } + function getArgs$1(args) { + return args.reduce(function(args, arg) { + return args.concat.call(args, isString(arg) && includes(arg, " ") ? arg.trim().split(" ") : arg); + }, []); + } + var supports = {}; + (function() { + var list = document.createElement("_").classList; + if (list) { + list.add("a", "b"); + list.toggle("c", false); + supports.Multiple = list.contains("b"); + supports.Force = !list.contains("c"); + } + list = null; + })(); + var cssNumber = { + "animation-iteration-count": true, + "column-count": true, + "fill-opacity": true, + "flex-grow": true, + "flex-shrink": true, + "font-weight": true, + "line-height": true, + opacity: true, + order: true, + orphans: true, + widows: true, + "z-index": true, + zoom: true + }; + function css(element, property, value) { + return toNodes(element).map(function(element) { + if (isString(property)) { + property = propName(property); + if (isUndefined(value)) { + return getStyle(element, property); + } else if (!value && !isNumber(value)) { + element.style.removeProperty(property); + } else { + element.style[property] = isNumeric(value) && !cssNumber[property] ? value + "px" : value; + } + } else if (isArray(property)) { + var styles = getStyles(element); + return property.reduce(function(props, property) { + props[property] = styles[propName(property)]; + return props; + }, {}); + } else if (isObject(property)) { + each(property, function(value, property) { + return css(element, property, value); + }); + } + return element; + })[0]; + } + function getStyles(element, pseudoElt) { + element = toNode(element); + return element.ownerDocument.defaultView.getComputedStyle(element, pseudoElt); + } + function getStyle(element, property, pseudoElt) { + return getStyles(element, pseudoElt)[property]; + } + var vars = {}; + function getCssVar(name) { + var docEl = document.documentElement; + if (!isIE) { + return getStyles(docEl).getPropertyValue("--uk-" + name); + } + if (!(name in vars)) { + var element = append(docEl, document.createElement("div")); + addClass(element, "uk-" + name); + vars[name] = getStyle(element, "content", ":before").replace(/^["'](.*)["']$/, "$1"); + remove(element); + } + return vars[name]; + } + var cssProps = {}; + function propName(name) { + var ret = cssProps[name]; + if (!ret) { + ret = cssProps[name] = vendorPropName(name) || name; + } + return ret; + } + var cssPrefixes = [ "webkit", "moz", "ms" ]; + var ref = document.createElement("_"); + var style = ref.style; + function vendorPropName(name) { + name = hyphenate(name); + if (name in style) { + return name; + } + var i = cssPrefixes.length, prefixedName; + while (i--) { + prefixedName = "-" + cssPrefixes[i] + "-" + name; + if (prefixedName in style) { + return prefixedName; + } + } + } + function transition(element, props, duration, timing) { + if (duration === void 0) duration = 400; + if (timing === void 0) timing = "linear"; + return Promise.all(toNodes(element).map(function(element) { + return new Promise(function(resolve, reject) { + for (var name in props) { + var value = css(element, name); + if (value === "") { + css(element, name, value); + } + } + var timer = setTimeout(function() { + return trigger(element, "transitionend"); + }, duration); + once(element, "transitionend transitioncanceled", function(ref) { + var type = ref.type; + clearTimeout(timer); + removeClass(element, "uk-transition"); + css(element, { + "transition-property": "", + "transition-duration": "", + "transition-timing-function": "" + }); + type === "transitioncanceled" ? reject() : resolve(); + }, false, function(ref) { + var target = ref.target; + return element === target; + }); + addClass(element, "uk-transition"); + css(element, assign({ + "transition-property": Object.keys(props).map(propName).join(","), + "transition-duration": duration + "ms", + "transition-timing-function": timing + }, props)); + }); + })); + } + var Transition = { + start: transition, + stop: function(element) { + trigger(element, "transitionend"); + return Promise.resolve(); + }, + cancel: function(element) { + trigger(element, "transitioncanceled"); + }, + inProgress: function(element) { + return hasClass(element, "uk-transition"); + } + }; + var animationPrefix = "uk-animation-"; + var clsCancelAnimation = "uk-cancel-animation"; + function animate(element, animation, duration, origin, out) { + var arguments$1 = arguments; + if (duration === void 0) duration = 200; + return Promise.all(toNodes(element).map(function(element) { + return new Promise(function(resolve, reject) { + if (hasClass(element, clsCancelAnimation)) { + requestAnimationFrame(function() { + return Promise.resolve().then(function() { + return animate.apply(void 0, arguments$1).then(resolve, reject); + }); + }); + return; + } + var cls = animation + " " + animationPrefix + (out ? "leave" : "enter"); + if (startsWith(animation, animationPrefix)) { + if (origin) { + cls += " uk-transform-origin-" + origin; + } + if (out) { + cls += " " + animationPrefix + "reverse"; + } + } + reset(); + once(element, "animationend animationcancel", function(ref) { + var type = ref.type; + var hasReset = false; + if (type === "animationcancel") { + reject(); + reset(); + } else { + resolve(); + Promise.resolve().then(function() { + hasReset = true; + reset(); + }); + } + requestAnimationFrame(function() { + if (!hasReset) { + addClass(element, clsCancelAnimation); + requestAnimationFrame(function() { + return removeClass(element, clsCancelAnimation); + }); + } + }); + }, false, function(ref) { + var target = ref.target; + return element === target; + }); + css(element, "animationDuration", duration + "ms"); + addClass(element, cls); + function reset() { + css(element, "animationDuration", ""); + removeClasses(element, animationPrefix + "\\S*"); + } + }); + })); + } + var inProgress = new RegExp(animationPrefix + "(enter|leave)"); + var Animation = { + in: function(element, animation, duration, origin) { + return animate(element, animation, duration, origin, false); + }, + out: function(element, animation, duration, origin) { + return animate(element, animation, duration, origin, true); + }, + inProgress: function(element) { + return inProgress.test(attr(element, "class")); + }, + cancel: function(element) { + trigger(element, "animationcancel"); + } + }; + var dirs = { + width: [ "x", "left", "right" ], + height: [ "y", "top", "bottom" ] + }; + function positionAt(element, target, elAttach, targetAttach, elOffset, targetOffset, flip, boundary) { + elAttach = getPos(elAttach); + targetAttach = getPos(targetAttach); + var flipped = { + element: elAttach, + target: targetAttach + }; + if (!element || !target) { + return flipped; + } + var dim = getDimensions(element); + var targetDim = getDimensions(target); + var position = targetDim; + moveTo(position, elAttach, dim, -1); + moveTo(position, targetAttach, targetDim, 1); + elOffset = getOffsets(elOffset, dim.width, dim.height); + targetOffset = getOffsets(targetOffset, targetDim.width, targetDim.height); + elOffset["x"] += targetOffset["x"]; + elOffset["y"] += targetOffset["y"]; + position.left += elOffset["x"]; + position.top += elOffset["y"]; + if (flip) { + var boundaries = [ getDimensions(window$1(element)) ]; + if (boundary) { + boundaries.unshift(getDimensions(boundary)); + } + each(dirs, function(ref, prop) { + var dir = ref[0]; + var align = ref[1]; + var alignFlip = ref[2]; + if (!(flip === true || includes(flip, dir))) { + return; + } + boundaries.some(function(boundary) { + var elemOffset = elAttach[dir] === align ? -dim[prop] : elAttach[dir] === alignFlip ? dim[prop] : 0; + var targetOffset = targetAttach[dir] === align ? targetDim[prop] : targetAttach[dir] === alignFlip ? -targetDim[prop] : 0; + if (position[align] < boundary[align] || position[align] + dim[prop] > boundary[alignFlip]) { + var centerOffset = dim[prop] / 2; + var centerTargetOffset = targetAttach[dir] === "center" ? -targetDim[prop] / 2 : 0; + return elAttach[dir] === "center" && (apply(centerOffset, centerTargetOffset) || apply(-centerOffset, -centerTargetOffset)) || apply(elemOffset, targetOffset); + } + function apply(elemOffset, targetOffset) { + var newVal = position[align] + elemOffset + targetOffset - elOffset[dir] * 2; + if (newVal >= boundary[align] && newVal + dim[prop] <= boundary[alignFlip]) { + position[align] = newVal; + [ "element", "target" ].forEach(function(el) { + flipped[el][dir] = !elemOffset ? flipped[el][dir] : flipped[el][dir] === dirs[prop][1] ? dirs[prop][2] : dirs[prop][1]; + }); + return true; + } + } + }); + }); + } + offset(element, position); + return flipped; + } + function offset(element, coordinates) { + element = toNode(element); + if (coordinates) { + var currentOffset = offset(element); + var pos = css(element, "position"); + [ "left", "top" ].forEach(function(prop) { + if (prop in coordinates) { + var value = css(element, prop); + css(element, prop, coordinates[prop] - currentOffset[prop] + toFloat(pos === "absolute" && value === "auto" ? position(element)[prop] : value)); + } + }); + return; + } + return getDimensions(element); + } + function getDimensions(element) { + element = toNode(element); + var ref = window$1(element); + var top = ref.pageYOffset; + var left = ref.pageXOffset; + if (isWindow(element)) { + var height = element.innerHeight; + var width = element.innerWidth; + return { + top: top, + left: left, + height: height, + width: width, + bottom: top + height, + right: left + width + }; + } + var style, hidden; + if (!isVisible(element)) { + style = attr(element, "style"); + hidden = attr(element, "hidden"); + attr(element, { + style: (style || "") + ";display:block !important;", + hidden: null + }); + } + var rect = element.getBoundingClientRect(); + if (!isUndefined(style)) { + attr(element, { + style: style, + hidden: hidden + }); + } + return { + height: rect.height, + width: rect.width, + top: rect.top + top, + left: rect.left + left, + bottom: rect.bottom + top, + right: rect.right + left + }; + } + function position(element) { + element = toNode(element); + var parent = element.offsetParent || docEl(element); + var parentOffset = offset(parent); + var ref = [ "top", "left" ].reduce(function(props, prop) { + var propName$$1 = ucfirst(prop); + props[prop] -= parentOffset[prop] + toFloat(css(element, "margin" + propName$$1)) + toFloat(css(parent, "border" + propName$$1 + "Width")); + return props; + }, offset(element)); + var top = ref.top; + var left = ref.left; + return { + top: top, + left: left + }; + } + var height = dimension("height"); + var width = dimension("width"); + function dimension(prop) { + var propName$$1 = ucfirst(prop); + return function(element, value) { + element = toNode(element); + if (isUndefined(value)) { + if (isWindow(element)) { + return element["inner" + propName$$1]; + } + if (isDocument(element)) { + var doc = element.documentElement; + return Math.max(doc["offset" + propName$$1], doc["scroll" + propName$$1]); + } + value = css(element, prop); + value = value === "auto" ? element["offset" + propName$$1] : toFloat(value) || 0; + return value - boxModelAdjust(prop, element); + } else { + css(element, prop, !value && value !== 0 ? "" : +value + boxModelAdjust(prop, element) + "px"); + } + }; + } + function boxModelAdjust(prop, element, sizing) { + if (sizing === void 0) sizing = "border-box"; + return css(element, "boxSizing") === sizing ? dirs[prop].slice(1).map(ucfirst).reduce(function(value, prop) { + return value + toFloat(css(element, "padding" + prop)) + toFloat(css(element, "border" + prop + "Width")); + }, 0) : 0; + } + function moveTo(position, attach, dim, factor) { + each(dirs, function(ref, prop) { + var dir = ref[0]; + var align = ref[1]; + var alignFlip = ref[2]; + if (attach[dir] === alignFlip) { + position[align] += dim[prop] * factor; + } else if (attach[dir] === "center") { + position[align] += dim[prop] * factor / 2; + } + }); + } + function getPos(pos) { + var x = /left|center|right/; + var y = /top|center|bottom/; + pos = (pos || "").split(" "); + if (pos.length === 1) { + pos = x.test(pos[0]) ? pos.concat([ "center" ]) : y.test(pos[0]) ? [ "center" ].concat(pos) : [ "center", "center" ]; + } + return { + x: x.test(pos[0]) ? pos[0] : "center", + y: y.test(pos[1]) ? pos[1] : "center" + }; + } + function getOffsets(offsets, width, height) { + var ref = (offsets || "").split(" "); + var x = ref[0]; + var y = ref[1]; + return { + x: x ? toFloat(x) * (endsWith(x, "%") ? width / 100 : 1) : 0, + y: y ? toFloat(y) * (endsWith(y, "%") ? height / 100 : 1) : 0 + }; + } + function flipPosition(pos) { + switch (pos) { + case "left": + return "right"; + + case "right": + return "left"; + + case "top": + return "bottom"; + + case "bottom": + return "top"; + + default: + return pos; + } + } + function isInView(element, topOffset, leftOffset) { + if (topOffset === void 0) topOffset = 0; + if (leftOffset === void 0) leftOffset = 0; + if (!isVisible(element)) { + return false; + } + element = toNode(element); + var win = window$1(element); + var client = element.getBoundingClientRect(); + var bounding = { + top: -topOffset, + left: -leftOffset, + bottom: topOffset + height(win), + right: leftOffset + width(win) + }; + return intersectRect(client, bounding) || pointInRect({ + x: client.left, + y: client.top + }, bounding); + } + function scrolledOver(element, heightOffset) { + if (heightOffset === void 0) heightOffset = 0; + if (!isVisible(element)) { + return 0; + } + element = toNode(element); + var win = window$1(element); + var doc = document$1(element); + var elHeight = element.offsetHeight + heightOffset; + var ref = offsetPosition(element); + var top = ref[0]; + var vp = height(win); + var vh = vp + Math.min(0, top - vp); + var diff = Math.max(0, vp - (height(doc) + heightOffset - (top + elHeight))); + return clamp((vh + win.pageYOffset - top) / ((vh + (elHeight - (diff < vp ? diff : 0))) / 100) / 100); + } + function scrollTop(element, top) { + element = toNode(element); + if (isWindow(element) || isDocument(element)) { + var ref = window$1(element); + var scrollTo = ref.scrollTo; + var pageXOffset = ref.pageXOffset; + scrollTo(pageXOffset, top); + } else { + element.scrollTop = top; + } + } + function offsetPosition(element) { + var offset = [ 0, 0 ]; + do { + offset[0] += element.offsetTop; + offset[1] += element.offsetLeft; + if (css(element, "position") === "fixed") { + var win = window$1(element); + offset[0] += win.pageYOffset; + offset[1] += win.pageXOffset; + return offset; + } + } while (element = element.offsetParent); + return offset; + } + function window$1(element) { + return isWindow(element) ? element : document$1(element).defaultView; + } + function document$1(element) { + return toNode(element).ownerDocument; + } + function docEl(element) { + return document$1(element).documentElement; + } + var fastdom = { + reads: [], + writes: [], + read: function(task) { + this.reads.push(task); + scheduleFlush(); + return task; + }, + write: function(task) { + this.writes.push(task); + scheduleFlush(); + return task; + }, + clear: function(task) { + return remove$1(this.reads, task) || remove$1(this.writes, task); + }, + flush: function() { + runTasks(this.reads); + runTasks(this.writes.splice(0, this.writes.length)); + this.scheduled = false; + if (this.reads.length || this.writes.length) { + scheduleFlush(); + } + } + }; + function scheduleFlush() { + if (!fastdom.scheduled) { + fastdom.scheduled = true; + requestAnimationFrame(fastdom.flush.bind(fastdom)); + } + } + function runTasks(tasks) { + var task; + while (task = tasks.shift()) { + task(); + } + } + function remove$1(array, item) { + var index = array.indexOf(item); + return !!~index && !!array.splice(index, 1); + } + function MouseTracker() {} + MouseTracker.prototype = { + positions: [], + position: null, + init: function() { + var this$1 = this; + this.positions = []; + this.position = null; + var ticking = false; + this.unbind = on(document, "mousemove", function(e) { + if (ticking) { + return; + } + setTimeout(function() { + var time = Date.now(); + var ref = this$1.positions; + var length = ref.length; + if (length && time - this$1.positions[length - 1].time > 100) { + this$1.positions.splice(0, length); + } + this$1.positions.push({ + time: time, + x: e.pageX, + y: e.pageY + }); + if (this$1.positions.length > 5) { + this$1.positions.shift(); + } + ticking = false; + }, 5); + ticking = true; + }); + }, + cancel: function() { + if (this.unbind) { + this.unbind(); + } + }, + movesTo: function(target) { + if (this.positions.length < 2) { + return false; + } + var p = offset(target); + var position$$1 = this.positions[this.positions.length - 1]; + var ref = this.positions; + var prevPos = ref[0]; + if (p.left <= position$$1.x && position$$1.x <= p.right && p.top <= position$$1.y && position$$1.y <= p.bottom) { + return false; + } + var points = [ [ { + x: p.left, + y: p.top + }, { + x: p.right, + y: p.bottom + } ], [ { + x: p.right, + y: p.top + }, { + x: p.left, + y: p.bottom + } ] ]; + if (p.right <= position$$1.x) ; else if (p.left >= position$$1.x) { + points[0].reverse(); + points[1].reverse(); + } else if (p.bottom <= position$$1.y) { + points[0].reverse(); + } else if (p.top >= position$$1.y) { + points[1].reverse(); + } + return !!points.reduce(function(result, point) { + return result + (slope(prevPos, point[0]) < slope(position$$1, point[0]) && slope(prevPos, point[1]) > slope(position$$1, point[1])); + }, 0); + } + }; + function slope(a, b) { + return (b.y - a.y) / (b.x - a.x); + } + var strats = {}; + strats.events = strats.created = strats.beforeConnect = strats.connected = strats.beforeDisconnect = strats.disconnected = strats.destroy = concatStrat; + strats.args = function(parentVal, childVal) { + return concatStrat(childVal || parentVal); + }; + strats.update = function(parentVal, childVal) { + return sortBy(concatStrat(parentVal, isFunction(childVal) ? { + read: childVal + } : childVal), "order"); + }; + strats.props = function(parentVal, childVal) { + if (isArray(childVal)) { + childVal = childVal.reduce(function(value, key) { + value[key] = String; + return value; + }, {}); + } + return strats.methods(parentVal, childVal); + }; + strats.computed = strats.methods = function(parentVal, childVal) { + return childVal ? parentVal ? assign({}, parentVal, childVal) : childVal : parentVal; + }; + strats.data = function(parentVal, childVal, vm) { + if (!vm) { + if (!childVal) { + return parentVal; + } + if (!parentVal) { + return childVal; + } + return function(vm) { + return mergeFnData(parentVal, childVal, vm); + }; + } + return mergeFnData(parentVal, childVal, vm); + }; + function mergeFnData(parentVal, childVal, vm) { + return strats.computed(isFunction(parentVal) ? parentVal.call(vm, vm) : parentVal, isFunction(childVal) ? childVal.call(vm, vm) : childVal); + } + function concatStrat(parentVal, childVal) { + parentVal = parentVal && !isArray(parentVal) ? [ parentVal ] : parentVal; + return childVal ? parentVal ? parentVal.concat(childVal) : isArray(childVal) ? childVal : [ childVal ] : parentVal; + } + function defaultStrat(parentVal, childVal) { + return isUndefined(childVal) ? parentVal : childVal; + } + function mergeOptions(parent, child, vm) { + var options = {}; + if (isFunction(child)) { + child = child.options; + } + if (child.extends) { + parent = mergeOptions(parent, child.extends, vm); + } + if (child.mixins) { + for (var i = 0, l = child.mixins.length; i < l; i++) { + parent = mergeOptions(parent, child.mixins[i], vm); + } + } + for (var key in parent) { + mergeKey(key); + } + for (var key$1 in child) { + if (!hasOwn(parent, key$1)) { + mergeKey(key$1); + } + } + function mergeKey(key) { + options[key] = (strats[key] || defaultStrat)(parent[key], child[key], vm); + } + return options; + } + function parseOptions(options, args) { + var obj; + if (args === void 0) args = []; + try { + return !options ? {} : startsWith(options, "{") ? JSON.parse(options) : args.length && !includes(options, ":") ? (obj = {}, + obj[args[0]] = options, obj) : options.split(";").reduce(function(options, option) { + var ref = option.split(/:(.*)/); + var key = ref[0]; + var value = ref[1]; + if (key && !isUndefined(value)) { + options[key.trim()] = value.trim(); + } + return options; + }, {}); + } catch (e) { + return {}; + } + } + var id = 0; + var Player = function(el) { + this.id = ++id; + this.el = toNode(el); + }; + Player.prototype.isVideo = function() { + return this.isYoutube() || this.isVimeo() || this.isHTML5(); + }; + Player.prototype.isHTML5 = function() { + return this.el.tagName === "VIDEO"; + }; + Player.prototype.isIFrame = function() { + return this.el.tagName === "IFRAME"; + }; + Player.prototype.isYoutube = function() { + return this.isIFrame() && !!this.el.src.match(/\/\/.*?youtube(-nocookie)?\.[a-z]+\/(watch\?v=[^&\s]+|embed)|youtu\.be\/.*/); + }; + Player.prototype.isVimeo = function() { + return this.isIFrame() && !!this.el.src.match(/vimeo\.com\/video\/.*/); + }; + Player.prototype.enableApi = function() { + var this$1 = this; + if (this.ready) { + return this.ready; + } + var youtube = this.isYoutube(); + var vimeo = this.isVimeo(); + var poller; + if (youtube || vimeo) { + return this.ready = new Promise(function(resolve) { + once(this$1.el, "load", function() { + if (youtube) { + var listener = function() { + return post(this$1.el, { + event: "listening", + id: this$1.id + }); + }; + poller = setInterval(listener, 100); + listener(); + } + }); + listen(function(data$$1) { + return youtube && data$$1.id === this$1.id && data$$1.event === "onReady" || vimeo && Number(data$$1.player_id) === this$1.id; + }).then(function() { + resolve(); + poller && clearInterval(poller); + }); + attr(this$1.el, "src", "" + this$1.el.src + (includes(this$1.el.src, "?") ? "&" : "?") + (youtube ? "enablejsapi=1" : "api=1&player_id=" + this$1.id)); + }); + } + return Promise.resolve(); + }; + Player.prototype.play = function() { + var this$1 = this; + if (!this.isVideo()) { + return; + } + if (this.isIFrame()) { + this.enableApi().then(function() { + return post(this$1.el, { + func: "playVideo", + method: "play" + }); + }); + } else if (this.isHTML5()) { + try { + var promise = this.el.play(); + if (promise) { + promise.catch(noop); + } + } catch (e) {} + } + }; + Player.prototype.pause = function() { + var this$1 = this; + if (!this.isVideo()) { + return; + } + if (this.isIFrame()) { + this.enableApi().then(function() { + return post(this$1.el, { + func: "pauseVideo", + method: "pause" + }); + }); + } else if (this.isHTML5()) { + this.el.pause(); + } + }; + Player.prototype.mute = function() { + var this$1 = this; + if (!this.isVideo()) { + return; + } + if (this.isIFrame()) { + this.enableApi().then(function() { + return post(this$1.el, { + func: "mute", + method: "setVolume", + value: 0 + }); + }); + } else if (this.isHTML5()) { + this.el.muted = true; + attr(this.el, "muted", ""); + } + }; + function post(el, cmd) { + try { + el.contentWindow.postMessage(JSON.stringify(assign({ + event: "command" + }, cmd)), "*"); + } catch (e) {} + } + function listen(cb) { + return new Promise(function(resolve) { + once(window, "message", function(_, data$$1) { + return resolve(data$$1); + }, false, function(ref) { + var data$$1 = ref.data; + if (!data$$1 || !isString(data$$1)) { + return; + } + try { + data$$1 = JSON.parse(data$$1); + } catch (e) { + return; + } + return data$$1 && cb(data$$1); + }); + }); + } + var IntersectionObserver = "IntersectionObserver" in window ? window.IntersectionObserver : function() { + function IntersectionObserverClass(callback, ref) { + var this$1 = this; + if (ref === void 0) ref = {}; + var rootMargin = ref.rootMargin; + if (rootMargin === void 0) rootMargin = "0 0"; + this.targets = []; + var ref$1 = (rootMargin || "0 0").split(" ").map(toFloat); + var offsetTop = ref$1[0]; + var offsetLeft = ref$1[1]; + this.offsetTop = offsetTop; + this.offsetLeft = offsetLeft; + var pending; + this.apply = function() { + if (pending) { + return; + } + pending = requestAnimationFrame(function() { + return setTimeout(function() { + var records = this$1.takeRecords(); + if (records.length) { + callback(records, this$1); + } + pending = false; + }); + }); + }; + this.off = on(window, "scroll resize load", this.apply, { + passive: true, + capture: true + }); + } + IntersectionObserverClass.prototype.takeRecords = function() { + var this$1 = this; + return this.targets.filter(function(entry) { + var inView = isInView(entry.target, this$1.offsetTop, this$1.offsetLeft); + if (entry.isIntersecting === null || inView ^ entry.isIntersecting) { + entry.isIntersecting = inView; + return true; + } + }); + }; + IntersectionObserverClass.prototype.observe = function(target) { + this.targets.push({ + target: target, + isIntersecting: null + }); + this.apply(); + }; + IntersectionObserverClass.prototype.disconnect = function() { + this.targets = []; + this.off(); + }; + return IntersectionObserverClass; + }(); + var touch = {}, swipeTimeout, touching; + on(document, pointerDown, function(e) { + if (touch.el) { + touch = {}; + } + var target = e.target; + var ref = getPos$1(e); + var x = ref.x; + var y = ref.y; + touch.el = "tagName" in target ? target : target.parentNode; + touch.x = x; + touch.y = y; + touching = isTouch(e); + }); + on(document, pointerUp, function(e) { + var ref = getPos$1(e); + var x = ref.x; + var y = ref.y; + if (touch.el && x && Math.abs(touch.x - x) > 100 || y && Math.abs(touch.y - y) > 100) { + swipeTimeout = setTimeout(function() { + if (touch.el) { + trigger(touch.el, "swipe"); + trigger(touch.el, "swipe" + swipeDirection(touch.x, touch.y, x, y)); + } + touch = {}; + }); + } else { + touch = {}; + } + setTimeout(function() { + return touching = false; + }); + }); + on(document, pointerCancel, cancelAll); + function isTouch(e) { + return e.pointerType === "touch" || e.touches || touching; + } + function getPos$1(e, prop) { + if (prop === void 0) prop = "client"; + var touches = e.touches; + var changedTouches = e.changedTouches; + var ref = touches && touches[0] || changedTouches && changedTouches[0] || e; + var x = ref[prop + "X"]; + var y = ref[prop + "Y"]; + return { + x: x, + y: y + }; + } + function swipeDirection(x1, y1, x2, y2) { + return Math.abs(x1 - x2) >= Math.abs(y1 - y2) ? x1 - x2 > 0 ? "Left" : "Right" : y1 - y2 > 0 ? "Up" : "Down"; + } + function cancelAll() { + swipeTimeout && clearTimeout(swipeTimeout); + swipeTimeout = null; + touch = {}; + } + var util = Object.freeze({ + ajax: ajax, + getImage: getImage, + transition: transition, + Transition: Transition, + animate: animate, + Animation: Animation, + attr: attr, + hasAttr: hasAttr, + removeAttr: removeAttr, + data: data, + addClass: addClass, + removeClass: removeClass, + removeClasses: removeClasses, + replaceClass: replaceClass, + hasClass: hasClass, + toggleClass: toggleClass, + positionAt: positionAt, + offset: offset, + position: position, + height: height, + width: width, + boxModelAdjust: boxModelAdjust, + flipPosition: flipPosition, + isInView: isInView, + scrolledOver: scrolledOver, + scrollTop: scrollTop, + offsetPosition: offsetPosition, + ready: ready, + index: index, + getIndex: getIndex, + empty: empty, + html: html, + prepend: prepend, + append: append, + before: before, + after: after, + remove: remove, + wrapAll: wrapAll, + wrapInner: wrapInner, + unwrap: unwrap, + fragment: fragment, + apply: apply, + $: $, + $$: $$, + isIE: isIE, + isRtl: isRtl, + hasTouch: hasTouch, + pointerDown: pointerDown, + pointerMove: pointerMove, + pointerUp: pointerUp, + pointerEnter: pointerEnter, + pointerLeave: pointerLeave, + pointerCancel: pointerCancel, + on: on, + off: off, + once: once, + trigger: trigger, + createEvent: createEvent, + toEventTargets: toEventTargets, + preventClick: preventClick, + fastdom: fastdom, + isVoidElement: isVoidElement, + isVisible: isVisible, + selInput: selInput, + isInput: isInput, + filter: filter, + within: within, + bind: bind, + hasOwn: hasOwn, + hyphenate: hyphenate, + camelize: camelize, + ucfirst: ucfirst, + startsWith: startsWith, + endsWith: endsWith, + includes: includes, + isArray: isArray, + isFunction: isFunction, + isObject: isObject, + isPlainObject: isPlainObject, + isWindow: isWindow, + isDocument: isDocument, + isJQuery: isJQuery, + isNode: isNode, + isNodeCollection: isNodeCollection, + isBoolean: isBoolean, + isString: isString, + isNumber: isNumber, + isNumeric: isNumeric, + isUndefined: isUndefined, + toBoolean: toBoolean, + toNumber: toNumber, + toFloat: toFloat, + toNode: toNode, + toNodes: toNodes, + toList: toList, + toMs: toMs, + isEqual: isEqual, + swap: swap, + assign: assign, + each: each, + sortBy: sortBy, + clamp: clamp, + noop: noop, + intersectRect: intersectRect, + pointInRect: pointInRect, + Dimensions: Dimensions, + MouseTracker: MouseTracker, + mergeOptions: mergeOptions, + parseOptions: parseOptions, + Player: Player, + Promise: Promise, + Deferred: Deferred, + IntersectionObserver: IntersectionObserver, + query: query, + queryAll: queryAll, + find: find, + findAll: findAll, + matches: matches, + closest: closest, + parents: parents, + escape: escape, + css: css, + getStyles: getStyles, + getStyle: getStyle, + getCssVar: getCssVar, + propName: propName, + isTouch: isTouch, + getPos: getPos$1 + }); + function componentAPI(UIkit) { + var DATA = UIkit.data; + var components = {}; + UIkit.component = function(name, options) { + if (!options) { + if (isPlainObject(components[name])) { + components[name] = UIkit.extend(components[name]); + } + return components[name]; + } + UIkit[name] = function(element, data$$1) { + var i = arguments.length, argsArray = Array(i); + while (i--) argsArray[i] = arguments[i]; + var component = UIkit.component(name); + if (isPlainObject(element)) { + return new component({ + data: element + }); + } + if (component.options.functional) { + return new component({ + data: [].concat(argsArray) + }); + } + return element && element.nodeType ? init(element) : $$(element).map(init)[0]; + function init(element) { + var instance = UIkit.getComponent(element, name); + if (instance) { + if (!data$$1) { + return instance; + } else { + instance.$destroy(); + } + } + return new component({ + el: element, + data: data$$1 + }); + } + }; + var opt = isPlainObject(options) ? assign({}, options) : options.options; + opt.name = name; + if (opt.install) { + opt.install(UIkit, opt, name); + } + if (UIkit._initialized && !opt.functional) { + var id = hyphenate(name); + fastdom.read(function() { + return UIkit[name]("[uk-" + id + "],[data-uk-" + id + "]"); + }); + } + return components[name] = isPlainObject(options) ? opt : options; + }; + UIkit.getComponents = function(element) { + return element && element[DATA] || {}; + }; + UIkit.getComponent = function(element, name) { + return UIkit.getComponents(element)[name]; + }; + UIkit.connect = function(node) { + if (node[DATA]) { + for (var name in node[DATA]) { + node[DATA][name]._callConnected(); + } + } + for (var i = 0; i < node.attributes.length; i++) { + var name$1 = getComponentName(node.attributes[i].name); + if (name$1 && name$1 in components) { + UIkit[name$1](node); + } + } + }; + UIkit.disconnect = function(node) { + for (var name in node[DATA]) { + node[DATA][name]._callDisconnected(); + } + }; + } + function getComponentName(attribute) { + return startsWith(attribute, "uk-") || startsWith(attribute, "data-uk-") ? camelize(attribute.replace("data-uk-", "").replace("uk-", "")) : false; + } + function boot(UIkit) { + var connect = UIkit.connect; + var disconnect = UIkit.disconnect; + if (!("MutationObserver" in window)) { + return; + } + if (document.body) { + init(); + } else { + new MutationObserver(function() { + if (document.body) { + this.disconnect(); + init(); + } + }).observe(document, { + childList: true, + subtree: true + }); + } + function init() { + apply$$1(document.body, connect); + fastdom.flush(); + new MutationObserver(function(mutations) { + return mutations.forEach(applyMutation); + }).observe(document, { + childList: true, + subtree: true, + characterData: true, + attributes: true + }); + UIkit._initialized = true; + } + function applyMutation(mutation) { + var target = mutation.target; + var type = mutation.type; + var update = type !== "attributes" ? applyChildList(mutation) : applyAttribute(mutation); + update && UIkit.update(target); + } + function applyAttribute(ref) { + var target = ref.target; + var attributeName = ref.attributeName; + if (attributeName === "href") { + return true; + } + var name = getComponentName(attributeName); + if (!name || !(name in UIkit)) { + return; + } + if (hasAttr(target, attributeName)) { + UIkit[name](target); + return true; + } + var component = UIkit.getComponent(target, name); + if (component) { + component.$destroy(); + return true; + } + } + function applyChildList(ref) { + var addedNodes = ref.addedNodes; + var removedNodes = ref.removedNodes; + for (var i = 0; i < addedNodes.length; i++) { + apply$$1(addedNodes[i], connect); + } + for (var i$1 = 0; i$1 < removedNodes.length; i$1++) { + apply$$1(removedNodes[i$1], disconnect); + } + return true; + } + function apply$$1(node, fn) { + if (node.nodeType !== 1 || hasAttr(node, "uk-no-boot")) { + return; + } + fn(node); + node = node.firstElementChild; + while (node) { + var next = node.nextElementSibling; + apply$$1(node, fn); + node = next; + } + } + } + function globalAPI(UIkit) { + var DATA = UIkit.data; + UIkit.use = function(plugin) { + if (plugin.installed) { + return; + } + plugin.call(null, this); + plugin.installed = true; + return this; + }; + UIkit.mixin = function(mixin, component) { + component = (isString(component) ? UIkit.component(component) : component) || this; + component.options = mergeOptions(component.options, mixin); + }; + UIkit.extend = function(options) { + options = options || {}; + var Super = this; + var Sub = function UIkitComponent(options) { + this._init(options); + }; + Sub.prototype = Object.create(Super.prototype); + Sub.prototype.constructor = Sub; + Sub.options = mergeOptions(Super.options, options); + Sub.super = Super; + Sub.extend = Super.extend; + return Sub; + }; + UIkit.update = function(element, e) { + element = element ? toNode(element) : document.body; + path(element, function(element) { + return update(element[DATA], e); + }); + apply(element, function(element) { + return update(element[DATA], e); + }); + }; + var container; + Object.defineProperty(UIkit, "container", { + get: function() { + return container || document.body; + }, + set: function(element) { + container = $(element); + } + }); + function update(data$$1, e) { + if (!data$$1) { + return; + } + for (var name in data$$1) { + if (data$$1[name]._connected) { + data$$1[name]._callUpdate(e); + } + } + } + function path(node, fn) { + if (node && node !== document.body && node.parentNode) { + path(node.parentNode, fn); + fn(node.parentNode); + } + } + } + function hooksAPI(UIkit) { + UIkit.prototype._callHook = function(hook) { + var this$1 = this; + var handlers = this.$options[hook]; + if (handlers) { + handlers.forEach(function(handler) { + return handler.call(this$1); + }); + } + }; + UIkit.prototype._callConnected = function() { + if (this._connected) { + return; + } + this._data = {}; + this._computeds = {}; + this._initProps(); + this._callHook("beforeConnect"); + this._connected = true; + this._initEvents(); + this._initObserver(); + this._callHook("connected"); + this._callUpdate(); + }; + UIkit.prototype._callDisconnected = function() { + if (!this._connected) { + return; + } + this._callHook("beforeDisconnect"); + if (this._observer) { + this._observer.disconnect(); + this._observer = null; + } + this._unbindEvents(); + this._callHook("disconnected"); + this._connected = false; + }; + UIkit.prototype._callUpdate = function(e) { + var this$1 = this; + if (e === void 0) e = "update"; + var type = e.type || e; + if (includes([ "update", "resize" ], type)) { + this._callWatches(); + } + var updates = this.$options.update; + var ref = this._frames; + var reads = ref.reads; + var writes = ref.writes; + if (!updates) { + return; + } + updates.forEach(function(ref, i) { + var read = ref.read; + var write = ref.write; + var events = ref.events; + if (type !== "update" && !includes(events, type)) { + return; + } + if (read && !includes(fastdom.reads, reads[i])) { + reads[i] = fastdom.read(function() { + var result = this$1._connected && read.call(this$1, this$1._data, type); + if (result === false && write) { + fastdom.clear(writes[i]); + } else if (isPlainObject(result)) { + assign(this$1._data, result); + } + }); + } + if (write && !includes(fastdom.writes, writes[i])) { + writes[i] = fastdom.write(function() { + return this$1._connected && write.call(this$1, this$1._data, type); + }); + } + }); + }; + } + function stateAPI(UIkit) { + var uid = 0; + UIkit.prototype._init = function(options) { + options = options || {}; + options.data = normalizeData(options, this.constructor.options); + this.$options = mergeOptions(this.constructor.options, options, this); + this.$el = null; + this.$props = {}; + this._frames = { + reads: {}, + writes: {} + }; + this._events = []; + this._uid = uid++; + this._initData(); + this._initMethods(); + this._initComputeds(); + this._callHook("created"); + if (options.el) { + this.$mount(options.el); + } + }; + UIkit.prototype._initData = function() { + var ref = this.$options; + var data$$1 = ref.data; + if (data$$1 === void 0) data$$1 = {}; + for (var key in data$$1) { + this.$props[key] = this[key] = data$$1[key]; + } + }; + UIkit.prototype._initMethods = function() { + var ref = this.$options; + var methods = ref.methods; + if (methods) { + for (var key in methods) { + this[key] = bind(methods[key], this); + } + } + }; + UIkit.prototype._initComputeds = function() { + var ref = this.$options; + var computed = ref.computed; + this._computeds = {}; + if (computed) { + for (var key in computed) { + registerComputed(this, key, computed[key]); + } + } + }; + UIkit.prototype._callWatches = function() { + var ref = this; + var computed = ref.$options.computed; + var _computeds = ref._computeds; + for (var key in _computeds) { + var value = _computeds[key]; + delete _computeds[key]; + if (computed[key].watch && !isEqual(value, this[key])) { + computed[key].watch.call(this, this[key], value); + } + } + }; + UIkit.prototype._initProps = function(props) { + var key; + props = props || getProps(this.$options, this.$name); + for (key in props) { + if (!isUndefined(props[key])) { + this.$props[key] = props[key]; + } + } + var exclude = [ this.$options.computed, this.$options.methods ]; + for (key in this.$props) { + if (key in props && notIn(exclude, key)) { + this[key] = this.$props[key]; + } + } + }; + UIkit.prototype._initEvents = function() { + var this$1 = this; + var ref = this.$options; + var events = ref.events; + if (events) { + events.forEach(function(event) { + if (!hasOwn(event, "handler")) { + for (var key in event) { + registerEvent(this$1, event[key], key); + } + } else { + registerEvent(this$1, event); + } + }); + } + }; + UIkit.prototype._unbindEvents = function() { + this._events.forEach(function(unbind) { + return unbind(); + }); + this._events = []; + }; + UIkit.prototype._initObserver = function() { + var this$1 = this; + var ref = this.$options; + var attrs = ref.attrs; + var props = ref.props; + var el = ref.el; + if (this._observer || !props || attrs === false) { + return; + } + attrs = isArray(attrs) ? attrs : Object.keys(props); + this._observer = new MutationObserver(function() { + var data$$1 = getProps(this$1.$options, this$1.$name); + if (attrs.some(function(key) { + return !isUndefined(data$$1[key]) && data$$1[key] !== this$1.$props[key]; + })) { + this$1.$reset(); + } + }); + var filter$$1 = attrs.map(function(key) { + return hyphenate(key); + }).concat(this.$name); + this._observer.observe(el, { + attributes: true, + attributeFilter: filter$$1.concat(filter$$1.map(function(key) { + return "data-" + key; + })) + }); + }; + function getProps(opts, name) { + var data$$1 = {}; + var args = opts.args; + if (args === void 0) args = []; + var props = opts.props; + if (props === void 0) props = {}; + var el = opts.el; + if (!props) { + return data$$1; + } + for (var key in props) { + var prop = hyphenate(key); + var value = data(el, prop); + if (!isUndefined(value)) { + value = props[key] === Boolean && value === "" ? true : coerce(props[key], value); + if (prop === "target" && (!value || startsWith(value, "_"))) { + continue; + } + data$$1[key] = value; + } + } + var options = parseOptions(data(el, name), args); + for (var key$1 in options) { + var prop$1 = camelize(key$1); + if (props[prop$1] !== undefined) { + data$$1[prop$1] = coerce(props[prop$1], options[key$1]); + } + } + return data$$1; + } + function registerComputed(component, key, cb) { + Object.defineProperty(component, key, { + enumerable: true, + get: function() { + var _computeds = component._computeds; + var $props = component.$props; + var $el = component.$el; + if (!hasOwn(_computeds, key)) { + _computeds[key] = (cb.get || cb).call(component, $props, $el); + } + return _computeds[key]; + }, + set: function(value) { + var _computeds = component._computeds; + _computeds[key] = cb.set ? cb.set.call(component, value) : value; + if (isUndefined(_computeds[key])) { + delete _computeds[key]; + } + } + }); + } + function registerEvent(component, event, key) { + if (!isPlainObject(event)) { + event = { + name: key, + handler: event + }; + } + var name = event.name; + var el = event.el; + var handler = event.handler; + var capture = event.capture; + var passive = event.passive; + var delegate = event.delegate; + var filter$$1 = event.filter; + var self = event.self; + el = isFunction(el) ? el.call(component) : el || component.$el; + if (isArray(el)) { + el.forEach(function(el) { + return registerEvent(component, assign({}, event, { + el: el + }), key); + }); + return; + } + if (!el || filter$$1 && !filter$$1.call(component)) { + return; + } + handler = detail(isString(handler) ? component[handler] : bind(handler, component)); + if (self) { + handler = selfFilter(handler); + } + component._events.push(on(el, name, !delegate ? null : isString(delegate) ? delegate : delegate.call(component), handler, isBoolean(passive) ? { + passive: passive, + capture: capture + } : capture)); + } + function selfFilter(handler) { + return function selfHandler(e) { + if (e.target === e.currentTarget || e.target === e.current) { + return handler.call(null, e); + } + }; + } + function notIn(options, key) { + return options.every(function(arr) { + return !arr || !hasOwn(arr, key); + }); + } + function detail(listener) { + return function(e) { + return isArray(e.detail) ? listener.apply(void 0, [ e ].concat(e.detail)) : listener(e); + }; + } + function coerce(type, value) { + if (type === Boolean) { + return toBoolean(value); + } else if (type === Number) { + return toNumber(value); + } else if (type === "list") { + return toList(value); + } + return type ? type(value) : value; + } + function normalizeData(ref, ref$1) { + var data$$1 = ref.data; + var el = ref.el; + var args = ref$1.args; + var props = ref$1.props; + if (props === void 0) props = {}; + data$$1 = isArray(data$$1) ? args && args.length ? data$$1.slice(0, args.length).reduce(function(data$$1, value, index$$1) { + if (isPlainObject(value)) { + assign(data$$1, value); + } else { + data$$1[args[index$$1]] = value; + } + return data$$1; + }, {}) : undefined : data$$1; + if (data$$1) { + for (var key in data$$1) { + if (isUndefined(data$$1[key])) { + delete data$$1[key]; + } else { + data$$1[key] = props[key] ? coerce(props[key], data$$1[key], el) : data$$1[key]; + } + } + } + return data$$1; + } + } + function instanceAPI(UIkit) { + var DATA = UIkit.data; + UIkit.prototype.$mount = function(el) { + var ref = this.$options; + var name = ref.name; + if (!el[DATA]) { + el[DATA] = {}; + } + if (el[DATA][name]) { + return; + } + el[DATA][name] = this; + this.$el = this.$options.el = this.$options.el || el; + if (within(el, document)) { + this._callConnected(); + } + }; + UIkit.prototype.$emit = function(e) { + this._callUpdate(e); + }; + UIkit.prototype.$reset = function() { + this._callDisconnected(); + this._callConnected(); + }; + UIkit.prototype.$destroy = function(removeEl) { + if (removeEl === void 0) removeEl = false; + var ref = this.$options; + var el = ref.el; + var name = ref.name; + if (el) { + this._callDisconnected(); + } + this._callHook("destroy"); + if (!el || !el[DATA]) { + return; + } + delete el[DATA][name]; + if (!Object.keys(el[DATA]).length) { + delete el[DATA]; + } + if (removeEl) { + remove(this.$el); + } + }; + UIkit.prototype.$create = function(component, element, data$$1) { + return UIkit[component](element, data$$1); + }; + UIkit.prototype.$update = UIkit.update; + UIkit.prototype.$getComponent = UIkit.getComponent; + var names = {}; + Object.defineProperties(UIkit.prototype, { + $container: Object.getOwnPropertyDescriptor(UIkit, "container"), + $name: { + get: function() { + var ref = this.$options; + var name = ref.name; + if (!names[name]) { + names[name] = UIkit.prefix + hyphenate(name); + } + return names[name]; + } + } + }); + } + var UIkit = function(options) { + this._init(options); + }; + UIkit.util = util; + UIkit.data = "__uikit__"; + UIkit.prefix = "uk-"; + UIkit.options = {}; + globalAPI(UIkit); + hooksAPI(UIkit); + stateAPI(UIkit); + componentAPI(UIkit); + instanceAPI(UIkit); + var Class = { + connected: function() { + !hasClass(this.$el, this.$name) && addClass(this.$el, this.$name); + } + }; + var Togglable = { + props: { + cls: Boolean, + animation: "list", + duration: Number, + origin: String, + transition: String, + queued: Boolean + }, + data: { + cls: false, + animation: [ false ], + duration: 200, + origin: false, + transition: "linear", + queued: false, + initProps: { + overflow: "", + height: "", + paddingTop: "", + paddingBottom: "", + marginTop: "", + marginBottom: "" + }, + hideProps: { + overflow: "hidden", + height: 0, + paddingTop: 0, + paddingBottom: 0, + marginTop: 0, + marginBottom: 0 + } + }, + computed: { + hasAnimation: function(ref) { + var animation = ref.animation; + return !!animation[0]; + }, + hasTransition: function(ref) { + var animation = ref.animation; + return this.hasAnimation && animation[0] === true; + } + }, + methods: { + toggleElement: function(targets, show, animate$$1) { + var this$1 = this; + return new Promise(function(resolve) { + targets = toNodes(targets); + var all = function(targets) { + return Promise.all(targets.map(function(el) { + return this$1._toggleElement(el, show, animate$$1); + })); + }; + var toggled = targets.filter(function(el) { + return this$1.isToggled(el); + }); + var untoggled = targets.filter(function(el) { + return !includes(toggled, el); + }); + var p; + if (!this$1.queued || !isUndefined(animate$$1) || !isUndefined(show) || !this$1.hasAnimation || targets.length < 2) { + p = all(untoggled.concat(toggled)); + } else { + var body = document.body; + var scroll = body.scrollTop; + var el = toggled[0]; + var inProgress = Animation.inProgress(el) && hasClass(el, "uk-animation-leave") || Transition.inProgress(el) && el.style.height === "0px"; + p = all(toggled); + if (!inProgress) { + p = p.then(function() { + var p = all(untoggled); + body.scrollTop = scroll; + return p; + }); + } + } + p.then(resolve, noop); + }); + }, + toggleNow: function(targets, show) { + var this$1 = this; + return new Promise(function(resolve) { + return Promise.all(toNodes(targets).map(function(el) { + return this$1._toggleElement(el, show, false); + })).then(resolve, noop); + }); + }, + isToggled: function(el) { + var nodes = toNodes(el || this.$el); + return this.cls ? hasClass(nodes, this.cls.split(" ")[0]) : !hasAttr(nodes, "hidden"); + }, + updateAria: function(el) { + if (this.cls === false) { + attr(el, "aria-hidden", !this.isToggled(el)); + } + }, + _toggleElement: function(el, show, animate$$1) { + var this$1 = this; + show = isBoolean(show) ? show : Animation.inProgress(el) ? hasClass(el, "uk-animation-leave") : Transition.inProgress(el) ? el.style.height === "0px" : !this.isToggled(el); + if (!trigger(el, "before" + (show ? "show" : "hide"), [ this ])) { + return Promise.reject(); + } + var promise = (isFunction(animate$$1) ? animate$$1 : animate$$1 === false || !this.hasAnimation ? this._toggle : this.hasTransition ? toggleHeight(this) : toggleAnimation(this))(el, show); + trigger(el, show ? "show" : "hide", [ this ]); + var final = function() { + trigger(el, show ? "shown" : "hidden", [ this$1 ]); + this$1.$update(el); + }; + return promise ? promise.then(final) : Promise.resolve(final()); + }, + _toggle: function(el, toggled) { + if (!el) { + return; + } + toggled = Boolean(toggled); + var changed; + if (this.cls) { + changed = includes(this.cls, " ") || toggled !== hasClass(el, this.cls); + changed && toggleClass(el, this.cls, includes(this.cls, " ") ? undefined : toggled); + } else { + changed = toggled === hasAttr(el, "hidden"); + changed && attr(el, "hidden", !toggled ? "" : null); + } + $$("[autofocus]", el).some(function(el) { + return isVisible(el) ? el.focus() || true : el.blur(); + }); + this.updateAria(el); + changed && this.$update(el); + } + } + }; + function toggleHeight(ref) { + var isToggled = ref.isToggled; + var duration = ref.duration; + var initProps = ref.initProps; + var hideProps = ref.hideProps; + var transition$$1 = ref.transition; + var _toggle = ref._toggle; + return function(el, show) { + var inProgress = Transition.inProgress(el); + var inner = el.hasChildNodes ? toFloat(css(el.firstElementChild, "marginTop")) + toFloat(css(el.lastElementChild, "marginBottom")) : 0; + var currentHeight = isVisible(el) ? height(el) + (inProgress ? 0 : inner) : 0; + Transition.cancel(el); + if (!isToggled(el)) { + _toggle(el, true); + } + height(el, ""); + fastdom.flush(); + var endHeight = height(el) + (inProgress ? 0 : inner); + height(el, currentHeight); + return (show ? Transition.start(el, assign({}, initProps, { + overflow: "hidden", + height: endHeight + }), Math.round(duration * (1 - currentHeight / endHeight)), transition$$1) : Transition.start(el, hideProps, Math.round(duration * (currentHeight / endHeight)), transition$$1).then(function() { + return _toggle(el, false); + })).then(function() { + return css(el, initProps); + }); + }; + } + function toggleAnimation(ref) { + var animation = ref.animation; + var duration = ref.duration; + var origin = ref.origin; + var _toggle = ref._toggle; + return function(el, show) { + Animation.cancel(el); + if (show) { + _toggle(el, true); + return Animation.in(el, animation[0], duration, origin); + } + return Animation.out(el, animation[1] || animation[0], duration, origin).then(function() { + return _toggle(el, false); + }); + }; + } + var Accordion = { + mixins: [ Class, Togglable ], + props: { + targets: String, + active: null, + collapsible: Boolean, + multiple: Boolean, + toggle: String, + content: String, + transition: String + }, + data: { + targets: "> *", + active: false, + animation: [ true ], + collapsible: true, + multiple: false, + clsOpen: "uk-open", + toggle: "> .uk-accordion-title", + content: "> .uk-accordion-content", + transition: "ease" + }, + computed: { + items: function(ref, $el) { + var targets = ref.targets; + return $$(targets, $el); + } + }, + events: [ { + name: "click", + delegate: function() { + return this.targets + " " + this.$props.toggle; + }, + handler: function(e) { + e.preventDefault(); + this.toggle(index($$(this.targets + " " + this.$props.toggle, this.$el), e.current)); + } + } ], + connected: function() { + if (this.active === false) { + return; + } + var active = this.items[Number(this.active)]; + if (active && !hasClass(active, this.clsOpen)) { + this.toggle(active, false); + } + }, + update: function() { + var this$1 = this; + this.items.forEach(function(el) { + return this$1._toggle($(this$1.content, el), hasClass(el, this$1.clsOpen)); + }); + var active = !this.collapsible && !hasClass(this.items, this.clsOpen) && this.items[0]; + if (active) { + this.toggle(active, false); + } + }, + methods: { + toggle: function(item, animate$$1) { + var this$1 = this; + var index$$1 = getIndex(item, this.items); + var active = filter(this.items, "." + this.clsOpen); + item = this.items[index$$1]; + item && [ item ].concat(!this.multiple && !includes(active, item) && active || []).forEach(function(el) { + var isItem = el === item; + var state = isItem && !hasClass(el, this$1.clsOpen); + if (!state && isItem && !this$1.collapsible && active.length < 2) { + return; + } + toggleClass(el, this$1.clsOpen, state); + var content = el._wrapper ? el._wrapper.firstElementChild : $(this$1.content, el); + if (!el._wrapper) { + el._wrapper = wrapAll(content, "
"); + attr(el._wrapper, "hidden", state ? "" : null); + } + this$1._toggle(content, true); + this$1.toggleElement(el._wrapper, state, animate$$1).then(function() { + if (hasClass(el, this$1.clsOpen) !== state) { + return; + } + if (!state) { + this$1._toggle(content, false); + } + el._wrapper = null; + unwrap(content); + }); + }); + } + } + }; + var Alert = { + mixins: [ Class, Togglable ], + args: "animation", + props: { + close: String + }, + data: { + animation: [ true ], + selClose: ".uk-alert-close", + duration: 150, + hideProps: assign({ + opacity: 0 + }, Togglable.data.hideProps) + }, + events: [ { + name: "click", + delegate: function() { + return this.selClose; + }, + handler: function(e) { + e.preventDefault(); + this.close(); + } + } ], + methods: { + close: function() { + var this$1 = this; + this.toggleElement(this.$el).then(function() { + return this$1.$destroy(true); + }); + } + } + }; + function Core(UIkit) { + ready(function() { + UIkit.update(); + on(window, "load resize", function() { + return UIkit.update(null, "resize"); + }); + on(document, "loadedmetadata load", function(ref) { + var target = ref.target; + return UIkit.update(target, "resize"); + }, true); + var pending; + on(window, "scroll", function(e) { + if (pending) { + return; + } + pending = true; + fastdom.write(function() { + return pending = false; + }); + var target = e.target; + UIkit.update(target.nodeType !== 1 ? document.body : target, e.type); + }, { + passive: true, + capture: true + }); + var started = 0; + on(document, "animationstart", function(ref) { + var target = ref.target; + if ((css(target, "animationName") || "").match(/^uk-.*(left|right)/)) { + started++; + css(document.body, "overflowX", "hidden"); + setTimeout(function() { + if (!--started) { + css(document.body, "overflowX", ""); + } + }, toMs(css(target, "animationDuration")) + 100); + } + }, true); + }); + } + var Video = { + args: "autoplay", + props: { + automute: Boolean, + autoplay: Boolean + }, + data: { + automute: false, + autoplay: true + }, + computed: { + inView: function(ref) { + var autoplay = ref.autoplay; + return autoplay === "inview"; + } + }, + connected: function() { + if (this.inView && !hasAttr(this.$el, "preload")) { + this.$el.preload = "none"; + } + this.player = new Player(this.$el); + if (this.automute) { + this.player.mute(); + } + }, + update: { + read: function() { + return !this.player ? false : { + visible: isVisible(this.$el) && css(this.$el, "visibility") !== "hidden", + inView: this.inView && isInView(this.$el) + }; + }, + write: function(ref) { + var visible = ref.visible; + var inView = ref.inView; + if (!visible || this.inView && !inView) { + this.player.pause(); + } else if (this.autoplay === true || this.inView && inView) { + this.player.play(); + } + }, + events: [ "resize", "scroll" ] + } + }; + var Cover = { + mixins: [ Class, Video ], + props: { + width: Number, + height: Number + }, + data: { + automute: true + }, + update: { + read: function() { + var el = this.$el; + if (!isVisible(el)) { + return false; + } + var ref = el.parentNode; + var height$$1 = ref.offsetHeight; + var width$$1 = ref.offsetWidth; + return { + height: height$$1, + width: width$$1 + }; + }, + write: function(ref) { + var height$$1 = ref.height; + var width$$1 = ref.width; + var el = this.$el; + var elWidth = this.width || el.naturalWidth || el.videoWidth || el.clientWidth; + var elHeight = this.height || el.naturalHeight || el.videoHeight || el.clientHeight; + if (!elWidth || !elHeight) { + return; + } + css(el, Dimensions.cover({ + width: elWidth, + height: elHeight + }, { + width: width$$1 + (width$$1 % 2 ? 1 : 0), + height: height$$1 + (height$$1 % 2 ? 1 : 0) + })); + }, + events: [ "resize" ] + } + }; + var Position = { + props: { + pos: String, + offset: null, + flip: Boolean, + clsPos: String + }, + data: { + pos: "bottom-" + (!isRtl ? "left" : "right"), + flip: true, + offset: false, + clsPos: "" + }, + computed: { + pos: function(ref) { + var pos = ref.pos; + return (pos + (!includes(pos, "-") ? "-center" : "")).split("-"); + }, + dir: function() { + return this.pos[0]; + }, + align: function() { + return this.pos[1]; + } + }, + methods: { + positionAt: function(element, target, boundary) { + removeClasses(element, this.clsPos + "-(top|bottom|left|right)(-[a-z]+)?"); + css(element, { + top: "", + left: "" + }); + var node; + var ref = this; + var offset$$1 = ref.offset; + var axis = this.getAxis(); + if (!isNumeric(offset$$1)) { + node = $(offset$$1); + offset$$1 = node ? offset(node)[axis === "x" ? "left" : "top"] - offset(target)[axis === "x" ? "right" : "bottom"] : 0; + } + var ref$1 = positionAt(element, target, axis === "x" ? flipPosition(this.dir) + " " + this.align : this.align + " " + flipPosition(this.dir), axis === "x" ? this.dir + " " + this.align : this.align + " " + this.dir, axis === "x" ? "" + (this.dir === "left" ? -offset$$1 : offset$$1) : " " + (this.dir === "top" ? -offset$$1 : offset$$1), null, this.flip, boundary).target; + var x = ref$1.x; + var y = ref$1.y; + this.dir = axis === "x" ? x : y; + this.align = axis === "x" ? y : x; + toggleClass(element, this.clsPos + "-" + this.dir + "-" + this.align, this.offset === false); + }, + getAxis: function() { + return this.dir === "top" || this.dir === "bottom" ? "y" : "x"; + } + } + }; + var active; + var Drop = { + mixins: [ Position, Togglable ], + args: "pos", + props: { + mode: "list", + toggle: Boolean, + boundary: Boolean, + boundaryAlign: Boolean, + delayShow: Number, + delayHide: Number, + clsDrop: String + }, + data: { + mode: [ "click", "hover" ], + toggle: "- *", + boundary: window, + boundaryAlign: false, + delayShow: 0, + delayHide: 800, + clsDrop: false, + hoverIdle: 200, + animation: [ "uk-animation-fade" ], + cls: "uk-open" + }, + computed: { + boundary: function(ref, $el) { + var boundary = ref.boundary; + return query(boundary, $el); + }, + clsDrop: function(ref) { + var clsDrop = ref.clsDrop; + return clsDrop || "uk-" + this.$options.name; + }, + clsPos: function() { + return this.clsDrop; + } + }, + created: function() { + this.tracker = new MouseTracker(); + }, + connected: function() { + addClass(this.$el, this.clsDrop); + var ref = this.$props; + var toggle = ref.toggle; + this.toggle = toggle && this.$create("toggle", query(toggle, this.$el), { + target: this.$el, + mode: this.mode + }); + !this.toggle && trigger(this.$el, "updatearia"); + }, + events: [ { + name: "click", + delegate: function() { + return "." + this.clsDrop + "-close"; + }, + handler: function(e) { + e.preventDefault(); + this.hide(false); + } + }, { + name: "click", + delegate: function() { + return 'a[href^="#"]'; + }, + handler: function(e) { + if (e.defaultPrevented) { + return; + } + var id = e.target.hash; + if (!id) { + e.preventDefault(); + } + if (!id || !within(id, this.$el)) { + this.hide(false); + } + } + }, { + name: "beforescroll", + handler: function() { + this.hide(false); + } + }, { + name: "toggle", + self: true, + handler: function(e, toggle) { + e.preventDefault(); + if (this.isToggled()) { + this.hide(false); + } else { + this.show(toggle, false); + } + } + }, { + name: pointerEnter, + filter: function() { + return includes(this.mode, "hover"); + }, + handler: function(e) { + if (isTouch(e)) { + return; + } + if (active && active !== this && active.toggle && includes(active.toggle.mode, "hover") && !within(e.target, active.toggle.$el) && !pointInRect({ + x: e.pageX, + y: e.pageY + }, offset(active.$el))) { + active.hide(false); + } + e.preventDefault(); + this.show(this.toggle); + } + }, { + name: "toggleshow", + handler: function(e, toggle) { + if (toggle && !includes(toggle.target, this.$el)) { + return; + } + e.preventDefault(); + this.show(toggle || this.toggle); + } + }, { + name: "togglehide " + pointerLeave, + handler: function(e, toggle) { + if (isTouch(e) || toggle && !includes(toggle.target, this.$el)) { + return; + } + e.preventDefault(); + if (this.toggle && includes(this.toggle.mode, "hover")) { + this.hide(); + } + } + }, { + name: "beforeshow", + self: true, + handler: function() { + this.clearTimers(); + Animation.cancel(this.$el); + this.position(); + } + }, { + name: "show", + self: true, + handler: function() { + this.tracker.init(); + trigger(this.$el, "updatearia"); + registerEvent(); + } + }, { + name: "beforehide", + self: true, + handler: function() { + this.clearTimers(); + } + }, { + name: "hide", + handler: function(ref) { + var target = ref.target; + if (this.$el !== target) { + active = active === null && within(target, this.$el) && this.isToggled() ? this : active; + return; + } + active = this.isActive() ? null : active; + trigger(this.$el, "updatearia"); + this.tracker.cancel(); + } + }, { + name: "updatearia", + self: true, + handler: function(e, toggle) { + e.preventDefault(); + this.updateAria(this.$el); + if (toggle || this.toggle) { + attr((toggle || this.toggle).$el, "aria-expanded", this.isToggled() ? "true" : "false"); + toggleClass(this.toggle.$el, this.cls, this.isToggled()); + } + } + } ], + update: { + write: function() { + if (this.isToggled() && !Animation.inProgress(this.$el)) { + this.position(); + } + }, + events: [ "resize" ] + }, + methods: { + show: function(toggle, delay) { + var this$1 = this; + if (delay === void 0) delay = true; + var show = function() { + return !this$1.isToggled() && this$1.toggleElement(this$1.$el, true); + }; + var tryShow = function() { + this$1.toggle = toggle || this$1.toggle; + this$1.clearTimers(); + if (this$1.isActive()) { + return; + } else if (delay && active && active !== this$1 && active.isDelaying) { + this$1.showTimer = setTimeout(this$1.show, 10); + return; + } else if (this$1.isParentOf(active)) { + if (active.hideTimer) { + active.hide(false); + } else { + return; + } + } else if (active && this$1.isChildOf(active)) { + active.clearTimers(); + } else if (active && !this$1.isChildOf(active) && !this$1.isParentOf(active)) { + var prev; + while (active && active !== prev && !this$1.isChildOf(active)) { + prev = active; + active.hide(false); + } + } + if (delay && this$1.delayShow) { + this$1.showTimer = setTimeout(show, this$1.delayShow); + } else { + show(); + } + active = this$1; + }; + if (toggle && this.toggle && toggle.$el !== this.toggle.$el) { + once(this.$el, "hide", tryShow); + this.hide(false); + } else { + tryShow(); + } + }, + hide: function(delay) { + var this$1 = this; + if (delay === void 0) delay = true; + var hide = function() { + return this$1.toggleNow(this$1.$el, false); + }; + this.clearTimers(); + this.isDelaying = this.tracker.movesTo(this.$el); + if (delay && this.isDelaying) { + this.hideTimer = setTimeout(this.hide, this.hoverIdle); + } else if (delay && this.delayHide) { + this.hideTimer = setTimeout(hide, this.delayHide); + } else { + hide(); + } + }, + clearTimers: function() { + clearTimeout(this.showTimer); + clearTimeout(this.hideTimer); + this.showTimer = null; + this.hideTimer = null; + this.isDelaying = false; + }, + isActive: function() { + return active === this; + }, + isChildOf: function(drop) { + return drop && drop !== this && within(this.$el, drop.$el); + }, + isParentOf: function(drop) { + return drop && drop !== this && within(drop.$el, this.$el); + }, + position: function() { + removeClasses(this.$el, this.clsDrop + "-(stack|boundary)"); + css(this.$el, { + top: "", + left: "", + display: "block" + }); + toggleClass(this.$el, this.clsDrop + "-boundary", this.boundaryAlign); + var boundary = offset(this.boundary); + var alignTo = this.boundaryAlign ? boundary : offset(this.toggle.$el); + if (this.align === "justify") { + var prop = this.getAxis() === "y" ? "width" : "height"; + css(this.$el, prop, alignTo[prop]); + } else if (this.$el.offsetWidth > Math.max(boundary.right - alignTo.left, alignTo.right - boundary.left)) { + addClass(this.$el, this.clsDrop + "-stack"); + } + this.positionAt(this.$el, this.boundaryAlign ? this.boundary : this.toggle.$el, this.boundary); + css(this.$el, "display", ""); + } + } + }; + var registered; + function registerEvent() { + if (registered) { + return; + } + registered = true; + on(document, pointerUp, function(ref) { + var target = ref.target; + var defaultPrevented = ref.defaultPrevented; + var prev; + if (defaultPrevented) { + return; + } + while (active && active !== prev && !within(target, active.$el) && !(active.toggle && within(target, active.toggle.$el))) { + prev = active; + active.hide(false); + } + }); + } + var Dropdown = { + extends: Drop + }; + var FormCustom = { + mixins: [ Class ], + args: "target", + props: { + target: Boolean + }, + data: { + target: false + }, + computed: { + input: function(_, $el) { + return $(selInput, $el); + }, + state: function() { + return this.input.nextElementSibling; + }, + target: function(ref, $el) { + var target = ref.target; + return target && (target === true && this.input.parentNode === $el && this.input.nextElementSibling || query(target, $el)); + } + }, + update: function() { + var ref = this; + var target = ref.target; + var input = ref.input; + if (!target) { + return; + } + var option; + var prop = isInput(target) ? "value" : "textContent"; + var prev = target[prop]; + var value = input.files && input.files[0] ? input.files[0].name : matches(input, "select") && (option = $$("option", input).filter(function(el) { + return el.selected; + })[0]) ? option.textContent : input.value; + if (prev !== value) { + target[prop] = value; + } + }, + events: { + change: function() { + this.$emit(); + } + } + }; + var Gif = { + update: { + read: function(data$$1) { + var inview = isInView(this.$el); + if (!inview || data$$1.isInView === inview) { + return false; + } + data$$1.isInView = inview; + }, + write: function() { + this.$el.src = this.$el.src; + }, + events: [ "scroll", "resize" ] + } + }; + var Margin = { + props: { + margin: String, + firstColumn: Boolean + }, + data: { + margin: "uk-margin-small-top", + firstColumn: "uk-first-column" + }, + update: { + read: function(data$$1) { + var items = this.$el.children; + var rows = [ [] ]; + if (!items.length || !isVisible(this.$el)) { + return data$$1.rows = rows; + } + data$$1.rows = getRows(items); + data$$1.stacks = !data$$1.rows.some(function(row) { + return row.length > 1; + }); + }, + write: function(ref) { + var this$1 = this; + var rows = ref.rows; + rows.forEach(function(row, i) { + return row.forEach(function(el, j) { + toggleClass(el, this$1.margin, i !== 0); + toggleClass(el, this$1.firstColumn, j === 0); + }); + }); + }, + events: [ "resize" ] + } + }; + function getRows(items) { + var rows = [ [] ]; + for (var i = 0; i < items.length; i++) { + var el = items[i]; + var dim = getOffset(el); + if (!dim.height) { + continue; + } + for (var j = rows.length - 1; j >= 0; j--) { + var row = rows[j]; + if (!row[0]) { + row.push(el); + break; + } + var leftDim = void 0; + if (row[0].offsetParent === el.offsetParent) { + leftDim = getOffset(row[0]); + } else { + dim = getOffset(el, true); + leftDim = getOffset(row[0], true); + } + if (dim.top >= leftDim.bottom - 1) { + rows.push([ el ]); + break; + } + if (dim.bottom > leftDim.top) { + if (dim.left < leftDim.left && !isRtl) { + row.unshift(el); + break; + } + row.push(el); + break; + } + if (j === 0) { + rows.unshift([ el ]); + break; + } + } + } + return rows; + } + function getOffset(element, offset$$1) { + var assign$$1; + if (offset$$1 === void 0) offset$$1 = false; + var offsetTop = element.offsetTop; + var offsetLeft = element.offsetLeft; + var offsetHeight = element.offsetHeight; + if (offset$$1) { + assign$$1 = offsetPosition(element), offsetTop = assign$$1[0], offsetLeft = assign$$1[1]; + } + return { + top: offsetTop, + left: offsetLeft, + height: offsetHeight, + bottom: offsetTop + offsetHeight + }; + } + var Grid = { + extends: Margin, + mixins: [ Class ], + name: "grid", + props: { + masonry: Boolean, + parallax: Number + }, + data: { + margin: "uk-grid-margin", + clsStack: "uk-grid-stack", + masonry: false, + parallax: 0 + }, + computed: { + length: function(_, $el) { + return $el.children.length; + }, + parallax: function(ref) { + var parallax = ref.parallax; + return parallax && this.length ? Math.abs(parallax) : ""; + } + }, + connected: function() { + this.masonry && addClass(this.$el, "uk-flex-top uk-flex-wrap-top"); + }, + update: [ { + read: function(ref) { + var rows = ref.rows; + if (this.masonry || this.parallax) { + rows = rows.map(function(elements) { + return sortBy(elements, "offsetLeft"); + }); + if (isRtl) { + rows.map(function(row) { + return row.reverse(); + }); + } + } + var transitionInProgress = rows.some(function(elements) { + return elements.some(Transition.inProgress); + }); + var translates = false; + var elHeight = ""; + if (this.masonry && this.length) { + var height$$1 = 0; + translates = rows.reduce(function(translates, row, i) { + translates[i] = row.map(function(_, j) { + return i === 0 ? 0 : toFloat(translates[i - 1][j]) + (height$$1 - toFloat(rows[i - 1][j] && rows[i - 1][j].offsetHeight)); + }); + height$$1 = row.reduce(function(height$$1, el) { + return Math.max(height$$1, el.offsetHeight); + }, 0); + return translates; + }, []); + elHeight = maxColumnHeight(rows) + getMarginTop(this.$el, this.margin) * (rows.length - 1); + } + return { + rows: rows, + translates: translates, + height: !transitionInProgress ? elHeight : false + }; + }, + write: function(ref) { + var stacks = ref.stacks; + var height$$1 = ref.height; + toggleClass(this.$el, this.clsStack, stacks); + css(this.$el, "paddingBottom", this.parallax); + height$$1 !== false && css(this.$el, "height", height$$1); + }, + events: [ "resize" ] + }, { + read: function(ref) { + var height$$1 = ref.height; + return { + scrolled: this.parallax ? scrolledOver(this.$el, height$$1 ? height$$1 - height(this.$el) : 0) * this.parallax : false + }; + }, + write: function(ref) { + var rows = ref.rows; + var scrolled = ref.scrolled; + var translates = ref.translates; + if (scrolled === false && !translates) { + return; + } + rows.forEach(function(row, i) { + return row.forEach(function(el, j) { + return css(el, "transform", !scrolled && !translates ? "" : "translateY(" + ((translates && -translates[i][j]) + (scrolled ? j % 2 ? scrolled : scrolled / 8 : 0)) + "px)"); + }); + }); + }, + events: [ "scroll", "resize" ] + } ] + }; + function getMarginTop(root, cls) { + var nodes = toNodes(root.children); + var ref = nodes.filter(function(el) { + return hasClass(el, cls); + }); + var node = ref[0]; + return toFloat(node ? css(node, "marginTop") : css(nodes[0], "paddingLeft")); + } + function maxColumnHeight(rows) { + return Math.max.apply(Math, rows.reduce(function(sum, row) { + row.forEach(function(el, i) { + return sum[i] = (sum[i] || 0) + el.offsetHeight; + }); + return sum; + }, [])); + } + var FlexBug = isIE ? { + data: { + selMinHeight: false, + forceHeight: false + }, + computed: { + elements: function(ref, $el) { + var selMinHeight = ref.selMinHeight; + return selMinHeight ? $$(selMinHeight, $el) : [ $el ]; + } + }, + update: [ { + read: function() { + css(this.elements, "height", ""); + }, + order: -5, + events: [ "resize" ] + }, { + write: function() { + var this$1 = this; + this.elements.forEach(function(el) { + var height$$1 = toFloat(css(el, "minHeight")); + if (height$$1 && (this$1.forceHeight || Math.round(height$$1 + boxModelAdjust("height", el, "content-box")) >= el.offsetHeight)) { + css(el, "height", height$$1); + } + }); + }, + order: 5, + events: [ "resize" ] + } ] + } : {}; + var HeightMatch = { + mixins: [ FlexBug ], + args: "target", + props: { + target: String, + row: Boolean + }, + data: { + target: "> *", + row: true, + forceHeight: true + }, + computed: { + elements: function(ref, $el) { + var target = ref.target; + return $$(target, $el); + } + }, + update: { + read: function() { + return { + rows: (this.row ? getRows(this.elements) : [ this.elements ]).map(match) + }; + }, + write: function(ref) { + var rows = ref.rows; + rows.forEach(function(ref) { + var heights = ref.heights; + var elements = ref.elements; + return elements.forEach(function(el, i) { + return css(el, "minHeight", heights[i]); + }); + }); + }, + events: [ "resize" ] + } + }; + function match(elements) { + var assign$$1; + if (elements.length < 2) { + return { + heights: [ "" ], + elements: elements + }; + } + var ref = getHeights(elements); + var heights = ref.heights; + var max = ref.max; + var hasMinHeight = elements.some(function(el) { + return el.style.minHeight; + }); + var hasShrunk = elements.some(function(el, i) { + return !el.style.minHeight && heights[i] < max; + }); + if (hasMinHeight && hasShrunk) { + css(elements, "minHeight", ""); + assign$$1 = getHeights(elements), heights = assign$$1.heights, max = assign$$1.max; + } + heights = elements.map(function(el, i) { + return heights[i] === max && toFloat(el.style.minHeight).toFixed(2) !== max.toFixed(2) ? "" : max; + }); + return { + heights: heights, + elements: elements + }; + } + function getHeights(elements) { + var heights = elements.map(function(el) { + return offset(el).height - boxModelAdjust("height", el, "content-box"); + }); + var max = Math.max.apply(null, heights); + return { + heights: heights, + max: max + }; + } + var HeightViewport = { + mixins: [ FlexBug ], + props: { + expand: Boolean, + offsetTop: Boolean, + offsetBottom: Boolean, + minHeight: Number + }, + data: { + expand: false, + offsetTop: false, + offsetBottom: false, + minHeight: 0 + }, + update: { + read: function() { + var minHeight = ""; + var box = boxModelAdjust("height", this.$el, "content-box"); + if (this.expand) { + minHeight = height(window) - (offsetHeight(document.documentElement) - offsetHeight(this.$el)) - box || ""; + } else { + minHeight = "calc(100vh"; + if (this.offsetTop) { + var ref = offset(this.$el); + var top = ref.top; + minHeight += top < height(window) / 2 ? " - " + top + "px" : ""; + } + if (this.offsetBottom === true) { + minHeight += " - " + offsetHeight(this.$el.nextElementSibling) + "px"; + } else if (isNumeric(this.offsetBottom)) { + minHeight += " - " + this.offsetBottom + "vh"; + } else if (this.offsetBottom && endsWith(this.offsetBottom, "px")) { + minHeight += " - " + toFloat(this.offsetBottom) + "px"; + } else if (isString(this.offsetBottom)) { + minHeight += " - " + offsetHeight(query(this.offsetBottom, this.$el)) + "px"; + } + minHeight += (box ? " - " + box + "px" : "") + ")"; + } + return { + minHeight: minHeight + }; + }, + write: function(ref) { + var minHeight = ref.minHeight; + css(this.$el, { + minHeight: minHeight + }); + if (this.minHeight && toFloat(css(this.$el, "minHeight")) < this.minHeight) { + css(this.$el, "minHeight", this.minHeight); + } + }, + events: [ "resize" ] + } + }; + function offsetHeight(el) { + return el && el.offsetHeight || 0; + } + var svgs = {}; + var SVG = { + args: "src", + props: { + id: String, + icon: String, + src: String, + style: String, + width: Number, + height: Number, + ratio: Number, + class: String + }, + data: { + ratio: 1, + id: false, + exclude: [ "ratio", "src", "icon" ], + class: "" + }, + connected: function() { + var this$1 = this; + var assign$$1; + this.class += " uk-svg"; + if (!this.icon && includes(this.src, "#")) { + var parts = this.src.split("#"); + if (parts.length > 1) { + assign$$1 = parts, this.src = assign$$1[0], this.icon = assign$$1[1]; + } + } + this.svg = this.getSvg().then(function(svg) { + var el; + if (isString(svg)) { + if (this$1.icon && includes(svg, "/g; + var symbols = {}; + function parseSymbols(svg, icon) { + if (!symbols[svg]) { + symbols[svg] = {}; + var match; + while (match = symbolRe.exec(svg)) { + symbols[svg][match[3]] = '"; + } + symbolRe.lastIndex = 0; + } + return symbols[svg][icon]; + } + var closeIcon = ''; + var closeLarge = ''; + var marker = ''; + var navbarToggleIcon = ''; + var overlayIcon = ''; + var paginationNext = ''; + var paginationPrevious = ''; + var searchIcon = ''; + var searchLarge = ''; + var searchNavbar = ''; + var slidenavNext = ''; + var slidenavNextLarge = ''; + var slidenavPrevious = ''; + var slidenavPreviousLarge = ''; + var spinner = ''; + var totop = ''; + var parsed = {}; + var icons = { + spinner: spinner, + totop: totop, + marker: marker, + "close-icon": closeIcon, + "close-large": closeLarge, + "navbar-toggle-icon": navbarToggleIcon, + "overlay-icon": overlayIcon, + "pagination-next": paginationNext, + "pagination-previous": paginationPrevious, + "search-icon": searchIcon, + "search-large": searchLarge, + "search-navbar": searchNavbar, + "slidenav-next": slidenavNext, + "slidenav-next-large": slidenavNextLarge, + "slidenav-previous": slidenavPrevious, + "slidenav-previous-large": slidenavPreviousLarge + }; + var Icon = { + install: install, + attrs: [ "icon", "ratio" ], + mixins: [ Class, SVG ], + args: "icon", + props: [ "icon" ], + data: { + exclude: [ "id", "style", "class", "src", "icon", "ratio" ] + }, + isIcon: true, + connected: function() { + addClass(this.$el, "uk-icon"); + }, + methods: { + getSvg: function() { + var icon = getIcon(applyRtl(this.icon)); + if (!icon) { + return Promise.reject("Icon not found."); + } + return Promise.resolve(icon); + } + } + }; + var IconComponent = { + extends: Icon, + data: function(vm) { + return { + icon: hyphenate(vm.constructor.options.name) + }; + } + }; + var Slidenav = { + extends: IconComponent, + connected: function() { + addClass(this.$el, "uk-slidenav"); + }, + computed: { + icon: function(ref, $el) { + var icon = ref.icon; + return hasClass($el, "uk-slidenav-large") ? icon + "-large" : icon; + } + } + }; + var Search = { + extends: IconComponent, + computed: { + icon: function(ref, $el) { + var icon = ref.icon; + return hasClass($el, "uk-search-icon") && parents($el, ".uk-search-large").length ? "search-large" : parents($el, ".uk-search-navbar").length ? "search-navbar" : icon; + } + } + }; + var Close = { + extends: IconComponent, + computed: { + icon: function() { + return "close-" + (hasClass(this.$el, "uk-close-large") ? "large" : "icon"); + } + } + }; + var Spinner = { + extends: IconComponent, + connected: function() { + var this$1 = this; + this.svg.then(function(svg) { + return this$1.ratio !== 1 && css($("circle", svg), "strokeWidth", 1 / this$1.ratio); + }, noop); + } + }; + function install(UIkit) { + UIkit.icon.add = function(name, svg) { + var obj; + var added = isString(name) ? (obj = {}, obj[name] = svg, obj) : name; + each(added, function(svg, name) { + icons[name] = svg; + delete parsed[name]; + }); + if (UIkit._initialized) { + apply(document.body, function(el) { + return each(UIkit.getComponents(el), function(cmp) { + cmp.$options.isIcon && cmp.icon in added && cmp.$reset(); + }); + }); + } + }; + } + function getIcon(icon) { + if (!icons[icon]) { + return null; + } + if (!parsed[icon]) { + parsed[icon] = $(icons[icon].trim()); + } + return parsed[icon]; + } + function applyRtl(icon) { + return isRtl ? swap(swap(icon, "left", "right"), "previous", "next") : icon; + } + var Img = { + props: { + dataSrc: String, + dataSrcset: Boolean, + sizes: String, + width: Number, + height: Number, + offsetTop: String, + offsetLeft: String, + target: String + }, + data: { + dataSrc: "", + dataSrcset: false, + sizes: false, + width: false, + height: false, + offsetTop: "50vh", + offsetLeft: 0, + target: false + }, + computed: { + cacheKey: function(ref) { + var dataSrc = ref.dataSrc; + return this.$name + "." + dataSrc; + }, + width: function(ref) { + var width$$1 = ref.width; + var dataWidth = ref.dataWidth; + return width$$1 || dataWidth; + }, + height: function(ref) { + var height$$1 = ref.height; + var dataHeight = ref.dataHeight; + return height$$1 || dataHeight; + }, + sizes: function(ref) { + var sizes = ref.sizes; + var dataSizes = ref.dataSizes; + return sizes || dataSizes; + }, + isImg: function(_, $el) { + return isImg($el); + }, + target: { + get: function(ref) { + var target = ref.target; + return [ this.$el ].concat(queryAll(target, this.$el)); + }, + watch: function() { + this.observe(); + } + }, + offsetTop: function(ref) { + var offsetTop = ref.offsetTop; + return toPx(offsetTop, "height"); + }, + offsetLeft: function(ref) { + var offsetLeft = ref.offsetLeft; + return toPx(offsetLeft, "width"); + } + }, + connected: function() { + if (storage[this.cacheKey]) { + setSrcAttrs(this.$el, storage[this.cacheKey] || this.dataSrc, this.dataSrcset, this.sizes); + } else if (this.isImg && this.width && this.height) { + setSrcAttrs(this.$el, getPlaceholderImage(this.width, this.height, this.sizes)); + } + this.observer = new IntersectionObserver(this.load, { + rootMargin: this.offsetTop + "px " + this.offsetLeft + "px" + }); + requestAnimationFrame(this.observe); + }, + disconnected: function() { + this.observer.disconnect(); + }, + update: { + read: function(ref) { + var this$1 = this; + var image = ref.image; + if (!image && document.readyState === "complete") { + this.load(this.observer.takeRecords()); + } + if (this.isImg) { + return false; + } + image && image.then(function(img) { + return img && img.currentSrc !== "" && setSrcAttrs(this$1.$el, currentSrc(img)); + }); + }, + write: function(data$$1) { + if (this.dataSrcset && window.devicePixelRatio !== 1) { + var bgSize = css(this.$el, "backgroundSize"); + if (bgSize.match(/^(auto\s?)+$/) || toFloat(bgSize) === data$$1.bgSize) { + data$$1.bgSize = getSourceSize(this.dataSrcset, this.sizes); + css(this.$el, "backgroundSize", data$$1.bgSize + "px"); + } + } + }, + events: [ "resize" ] + }, + methods: { + load: function(entries) { + var this$1 = this; + if (!entries.some(function(entry) { + return entry.isIntersecting; + })) { + return; + } + this._data.image = getImage(this.dataSrc, this.dataSrcset, this.sizes).then(function(img) { + setSrcAttrs(this$1.$el, currentSrc(img), img.srcset, img.sizes); + storage[this$1.cacheKey] = currentSrc(img); + return img; + }, noop); + this.observer.disconnect(); + }, + observe: function() { + var this$1 = this; + if (!this._data.image && this._connected) { + this.target.forEach(function(el) { + return this$1.observer.observe(el); + }); + } + } + } + }; + function setSrcAttrs(el, src, srcset, sizes) { + if (isImg(el)) { + sizes && (el.sizes = sizes); + srcset && (el.srcset = srcset); + src && (el.src = src); + } else if (src) { + var change = !includes(el.style.backgroundImage, src); + if (change) { + css(el, "backgroundImage", "url(" + escape(src) + ")"); + trigger(el, createEvent("load", false)); + } + } + } + function getPlaceholderImage(width$$1, height$$1, sizes) { + var assign$$1; + if (sizes) { + assign$$1 = Dimensions.ratio({ + width: width$$1, + height: height$$1 + }, "width", toPx(sizesToPixel(sizes))), width$$1 = assign$$1.width, height$$1 = assign$$1.height; + } + return 'data:image/svg+xml;utf8,'; + } + var sizesRe = /\s*(.*?)\s*(\w+|calc\(.*?\))\s*(?:,|$)/g; + function sizesToPixel(sizes) { + var matches$$1; + sizesRe.lastIndex = 0; + while (matches$$1 = sizesRe.exec(sizes)) { + if (!matches$$1[1] || window.matchMedia(matches$$1[1]).matches) { + matches$$1 = evaluateSize(matches$$1[2]); + break; + } + } + return matches$$1 || "100vw"; + } + var sizeRe = /\d+(?:\w+|%)/g; + var additionRe = /[+-]?(\d+)/g; + function evaluateSize(size) { + return startsWith(size, "calc") ? size.substring(5, size.length - 1).replace(sizeRe, function(size) { + return toPx(size); + }).replace(/ /g, "").match(additionRe).reduce(function(a, b) { + return a + +b; + }, 0) : size; + } + function toPx(value, property, element) { + if (property === void 0) property = "width"; + if (element === void 0) element = window; + return isNumeric(value) ? +value : endsWith(value, "vw") ? percent(element, "width", value) : endsWith(value, "vh") ? percent(element, "height", value) : endsWith(value, "%") ? percent(element, property, value) : toFloat(value); + } + var srcSetRe = /\s+\d+w\s*(?:,|$)/g; + function getSourceSize(srcset, sizes) { + var srcSize = toPx(sizesToPixel(sizes)); + var descriptors = (srcset.match(srcSetRe) || []).map(toFloat).sort(function(a, b) { + return a - b; + }); + return descriptors.filter(function(size) { + return size >= srcSize; + })[0] || descriptors.pop() || ""; + } + var dimensions = { + height: height, + width: width + }; + function percent(element, property, value) { + return dimensions[property](element) * toFloat(value) / 100; + } + function isImg(el) { + return el.tagName === "IMG"; + } + function currentSrc(el) { + return el.currentSrc || el.src; + } + var key = "__test__"; + var storage; + try { + storage = window.sessionStorage || {}; + storage[key] = 1; + delete storage[key]; + } catch (e) { + storage = {}; + } + var Media = { + props: { + media: Boolean + }, + data: { + media: false + }, + computed: { + matchMedia: function() { + var media = toMedia(this.media); + return !media || window.matchMedia(media).matches; + } + } + }; + function toMedia(value) { + if (isString(value)) { + if (value[0] === "@") { + var name = "breakpoint-" + value.substr(1); + value = toFloat(getCssVar(name)); + } else if (isNaN(value)) { + return value; + } + } + return value && !isNaN(value) ? "(min-width: " + value + "px)" : false; + } + var Leader = { + mixins: [ Class, Media ], + props: { + fill: String + }, + data: { + fill: "", + clsWrapper: "uk-leader-fill", + clsHide: "uk-leader-hide", + attrFill: "data-fill" + }, + computed: { + fill: function(ref) { + var fill = ref.fill; + return fill || getCssVar("leader-fill-content"); + } + }, + connected: function() { + var assign$$1; + assign$$1 = wrapInner(this.$el, ''), this.wrapper = assign$$1[0]; + }, + disconnected: function() { + unwrap(this.wrapper.childNodes); + }, + update: { + read: function(ref) { + var changed = ref.changed; + var width$$1 = ref.width; + var prev = width$$1; + width$$1 = Math.floor(this.$el.offsetWidth / 2); + return { + width: width$$1, + changed: changed || prev !== width$$1, + hide: !this.matchMedia + }; + }, + write: function(data$$1) { + toggleClass(this.wrapper, this.clsHide, data$$1.hide); + if (data$$1.changed) { + data$$1.changed = false; + attr(this.wrapper, this.attrFill, new Array(data$$1.width).join(this.fill)); + } + }, + events: [ "resize" ] + } + }; + var Container = { + props: { + container: Boolean + }, + data: { + container: true + }, + computed: { + container: function(ref) { + var container = ref.container; + return container === true && this.$container || container && $(container); + } + } + }; + var active$1; + var Modal = { + mixins: [ Class, Container, Togglable ], + props: { + selPanel: String, + selClose: String, + escClose: Boolean, + bgClose: Boolean, + stack: Boolean + }, + data: { + cls: "uk-open", + escClose: true, + bgClose: true, + overlay: true, + stack: false + }, + computed: { + panel: function(ref, $el) { + var selPanel = ref.selPanel; + return $(selPanel, $el); + }, + transitionElement: function() { + return this.panel; + }, + bgClose: function(ref) { + var bgClose = ref.bgClose; + return bgClose && this.panel; + } + }, + beforeDisconnect: function() { + if (this.isToggled()) { + this.toggleNow(this.$el, false); + } + }, + events: [ { + name: "click", + delegate: function() { + return this.selClose; + }, + handler: function(e) { + e.preventDefault(); + this.hide(); + } + }, { + name: "toggle", + self: true, + handler: function(e) { + if (e.defaultPrevented) { + return; + } + e.preventDefault(); + this.toggle(); + } + }, { + name: "beforeshow", + self: true, + handler: function(e) { + var prev = active$1 && active$1 !== this && active$1; + active$1 = this; + if (prev) { + if (this.stack) { + this.prev = prev; + } else { + active$1 = prev; + if (prev.isToggled()) { + prev.hide().then(this.show); + } else { + once(prev.$el, "beforeshow hidden", this.show, false, function(ref) { + var target = ref.target; + var type = ref.type; + return type === "hidden" && target === prev.$el; + }); + } + e.preventDefault(); + } + return; + } + registerEvents(); + } + }, { + name: "show", + self: true, + handler: function() { + if (!hasClass(document.documentElement, this.clsPage)) { + this.scrollbarWidth = width(window) - width(document); + css(document.body, "overflowY", this.scrollbarWidth && this.overlay ? "scroll" : ""); + } + addClass(document.documentElement, this.clsPage); + } + }, { + name: "hide", + self: true, + handler: function() { + if (!active$1 || active$1 === this && !this.prev) { + deregisterEvents(); + } + } + }, { + name: "hidden", + self: true, + handler: function() { + var found; + var ref = this; + var prev = ref.prev; + active$1 = active$1 && active$1 !== this && active$1 || prev; + if (!active$1) { + css(document.body, "overflowY", ""); + } else { + while (prev) { + if (prev.clsPage === this.clsPage) { + found = true; + break; + } + prev = prev.prev; + } + } + if (!found) { + removeClass(document.documentElement, this.clsPage); + } + } + } ], + methods: { + toggle: function() { + return this.isToggled() ? this.hide() : this.show(); + }, + show: function() { + var this$1 = this; + if (this.isToggled()) { + return Promise.resolve(); + } + if (this.container && this.$el.parentNode !== this.container) { + append(this.container, this.$el); + return new Promise(function(resolve) { + return requestAnimationFrame(function() { + return this$1.show().then(resolve); + }); + }); + } + return this.toggleElement(this.$el, true, animate$1(this)); + }, + hide: function() { + return this.isToggled() ? this.toggleElement(this.$el, false, animate$1(this)) : Promise.resolve(); + }, + getActive: function() { + return active$1; + } + } + }; + var events; + function registerEvents() { + if (events) { + return; + } + events = [ on(document, pointerUp, function(ref) { + var target = ref.target; + var defaultPrevented = ref.defaultPrevented; + if (active$1 && active$1.bgClose && !defaultPrevented && (!active$1.overlay || within(target, active$1.$el)) && !within(target, active$1.panel)) { + active$1.hide(); + } + }), on(document, "keydown", function(e) { + if (e.keyCode === 27 && active$1 && active$1.escClose) { + e.preventDefault(); + active$1.hide(); + } + }) ]; + } + function deregisterEvents() { + events && events.forEach(function(unbind) { + return unbind(); + }); + events = null; + } + function animate$1(ref) { + var transitionElement = ref.transitionElement; + var _toggle = ref._toggle; + return function(el, show) { + return new Promise(function(resolve, reject) { + return once(el, "show hide", function() { + el._reject && el._reject(); + el._reject = reject; + _toggle(el, show); + if (toMs(css(transitionElement, "transitionDuration"))) { + once(transitionElement, "transitionend", resolve, false, function(e) { + return e.target === transitionElement; + }); + } else { + resolve(); + } + }); + }); + }; + } + var Modal$1 = { + install: install$1, + mixins: [ Modal ], + data: { + clsPage: "uk-modal-page", + selPanel: ".uk-modal-dialog", + selClose: ".uk-modal-close, .uk-modal-close-default, .uk-modal-close-outside, .uk-modal-close-full" + }, + events: [ { + name: "show", + self: true, + handler: function() { + if (hasClass(this.panel, "uk-margin-auto-vertical")) { + addClass(this.$el, "uk-flex"); + } else { + css(this.$el, "display", "block"); + } + height(this.$el); + } + }, { + name: "hidden", + self: true, + handler: function() { + css(this.$el, "display", ""); + removeClass(this.$el, "uk-flex"); + } + } ] + }; + function install$1(UIkit) { + UIkit.modal.dialog = function(content, options) { + var dialog = UIkit.modal('
' + content + "
", options); + dialog.show(); + on(dialog.$el, "hidden", function(ref) { + var target = ref.target; + var currentTarget = ref.currentTarget; + if (target === currentTarget) { + Promise.resolve(function() { + return dialog.$destroy(true); + }); + } + }); + return dialog; + }; + UIkit.modal.alert = function(message, options) { + options = assign({ + bgClose: false, + escClose: false, + labels: UIkit.modal.labels + }, options); + return new Promise(function(resolve) { + return on(UIkit.modal.dialog('
' + (isString(message) ? message : html(message)) + '
", options).$el, "hide", resolve); + }); + }; + UIkit.modal.confirm = function(message, options) { + options = assign({ + bgClose: false, + escClose: true, + labels: UIkit.modal.labels + }, options); + return new Promise(function(resolve, reject) { + var confirm = UIkit.modal.dialog('
' + (isString(message) ? message : html(message)) + '
", options); + var resolved = false; + on(confirm.$el, "submit", "form", function(e) { + e.preventDefault(); + resolve(); + resolved = true; + confirm.hide(); + }); + on(confirm.$el, "hide", function() { + if (!resolved) { + reject(); + } + }); + }); + }; + UIkit.modal.prompt = function(message, value, options) { + options = assign({ + bgClose: false, + escClose: true, + labels: UIkit.modal.labels + }, options); + return new Promise(function(resolve) { + var prompt = UIkit.modal.dialog('
", options), input = $("input", prompt.$el); + input.value = value; + var resolved = false; + on(prompt.$el, "submit", "form", function(e) { + e.preventDefault(); + resolve(input.value); + resolved = true; + prompt.hide(); + }); + on(prompt.$el, "hide", function() { + if (!resolved) { + resolve(null); + } + }); + }); + }; + UIkit.modal.labels = { + ok: "Ok", + cancel: "Cancel" + }; + } + var Nav = { + extends: Accordion, + data: { + targets: "> .uk-parent", + toggle: "> a", + content: "> ul" + } + }; + var Navbar = { + mixins: [ Class, FlexBug ], + props: { + dropdown: String, + mode: "list", + align: String, + offset: Number, + boundary: Boolean, + boundaryAlign: Boolean, + clsDrop: String, + delayShow: Number, + delayHide: Number, + dropbar: Boolean, + dropbarMode: String, + dropbarAnchor: Boolean, + duration: Number + }, + data: { + dropdown: ".uk-navbar-nav > li", + align: !isRtl ? "left" : "right", + clsDrop: "uk-navbar-dropdown", + mode: undefined, + offset: undefined, + delayShow: undefined, + delayHide: undefined, + boundaryAlign: undefined, + flip: "x", + boundary: true, + dropbar: false, + dropbarMode: "slide", + dropbarAnchor: false, + duration: 200, + forceHeight: true, + selMinHeight: ".uk-navbar-nav > li > a, .uk-navbar-item, .uk-navbar-toggle" + }, + computed: { + boundary: function(ref, $el) { + var boundary = ref.boundary; + var boundaryAlign = ref.boundaryAlign; + return boundary === true || boundaryAlign ? $el : boundary; + }, + dropbarAnchor: function(ref, $el) { + var dropbarAnchor = ref.dropbarAnchor; + return query(dropbarAnchor, $el); + }, + pos: function(ref) { + var align = ref.align; + return "bottom-" + align; + }, + dropdowns: function(ref, $el) { + var dropdown = ref.dropdown; + var clsDrop = ref.clsDrop; + return $$(dropdown + " ." + clsDrop, $el); + } + }, + beforeConnect: function() { + var ref = this.$props; + var dropbar = ref.dropbar; + this.dropbar = dropbar && (query(dropbar, this.$el) || $("+ .uk-navbar-dropbar", this.$el) || $("
")); + if (this.dropbar) { + addClass(this.dropbar, "uk-navbar-dropbar"); + if (this.dropbarMode === "slide") { + addClass(this.dropbar, "uk-navbar-dropbar-slide"); + } + } + }, + disconnected: function() { + this.dropbar && remove(this.dropbar); + }, + update: function() { + var this$1 = this; + this.$create("drop", this.dropdowns.filter(function(el) { + return !this$1.getDropdown(el); + }), assign({}, this.$props, { + boundary: this.boundary, + pos: this.pos, + offset: this.dropbar || this.offset + })); + }, + events: [ { + name: "mouseover", + delegate: function() { + return this.dropdown; + }, + handler: function(ref) { + var current = ref.current; + var active = this.getActive(); + if (active && active.toggle && !within(active.toggle.$el, current) && !active.tracker.movesTo(active.$el)) { + active.hide(false); + } + } + }, { + name: "mouseleave", + el: function() { + return this.dropbar; + }, + handler: function() { + var active = this.getActive(); + if (active && !matches(this.dropbar, ":hover")) { + active.hide(); + } + } + }, { + name: "beforeshow", + capture: true, + filter: function() { + return this.dropbar; + }, + handler: function() { + if (!this.dropbar.parentNode) { + after(this.dropbarAnchor || this.$el, this.dropbar); + } + } + }, { + name: "show", + capture: true, + filter: function() { + return this.dropbar; + }, + handler: function(_, drop) { + var $el = drop.$el; + var dir = drop.dir; + this.clsDrop && addClass($el, this.clsDrop + "-dropbar"); + if (dir === "bottom") { + this.transitionTo($el.offsetHeight + toFloat(css($el, "marginTop")) + toFloat(css($el, "marginBottom")), $el); + } + } + }, { + name: "beforehide", + filter: function() { + return this.dropbar; + }, + handler: function(e, ref) { + var $el = ref.$el; + var active = this.getActive(); + if (matches(this.dropbar, ":hover") && active && active.$el === $el) { + e.preventDefault(); + } + } + }, { + name: "hide", + filter: function() { + return this.dropbar; + }, + handler: function(_, ref) { + var $el = ref.$el; + var active = this.getActive(); + if (!active || active && active.$el === $el) { + this.transitionTo(0); + } + } + } ], + methods: { + getActive: function() { + var ref = this.dropdowns.map(this.getDropdown).filter(function(drop) { + return drop && drop.isActive(); + }); + var active = ref[0]; + return active && includes(active.mode, "hover") && within(active.toggle.$el, this.$el) && active; + }, + transitionTo: function(newHeight, el) { + var this$1 = this; + var ref = this; + var dropbar = ref.dropbar; + var oldHeight = isVisible(dropbar) ? height(dropbar) : 0; + el = oldHeight < newHeight && el; + css(el, "clip", "rect(0," + el.offsetWidth + "px," + oldHeight + "px,0)"); + height(dropbar, oldHeight); + Transition.cancel([ el, dropbar ]); + return Promise.all([ Transition.start(dropbar, { + height: newHeight + }, this.duration), Transition.start(el, { + clip: "rect(0," + el.offsetWidth + "px," + newHeight + "px,0)" + }, this.duration) ]).catch(noop).then(function() { + css(el, { + clip: "" + }); + this$1.$update(dropbar); + }); + }, + getDropdown: function(el) { + return this.$getComponent(el, "drop") || this.$getComponent(el, "dropdown"); + } + } + }; + var Offcanvas = { + mixins: [ Modal ], + args: "mode", + props: { + mode: String, + flip: Boolean, + overlay: Boolean + }, + data: { + mode: "slide", + flip: false, + overlay: false, + clsPage: "uk-offcanvas-page", + clsContainer: "uk-offcanvas-container", + selPanel: ".uk-offcanvas-bar", + clsFlip: "uk-offcanvas-flip", + clsContainerAnimation: "uk-offcanvas-container-animation", + clsSidebarAnimation: "uk-offcanvas-bar-animation", + clsMode: "uk-offcanvas", + clsOverlay: "uk-offcanvas-overlay", + selClose: ".uk-offcanvas-close" + }, + computed: { + clsFlip: function(ref) { + var flip = ref.flip; + var clsFlip = ref.clsFlip; + return flip ? clsFlip : ""; + }, + clsOverlay: function(ref) { + var overlay = ref.overlay; + var clsOverlay = ref.clsOverlay; + return overlay ? clsOverlay : ""; + }, + clsMode: function(ref) { + var mode = ref.mode; + var clsMode = ref.clsMode; + return clsMode + "-" + mode; + }, + clsSidebarAnimation: function(ref) { + var mode = ref.mode; + var clsSidebarAnimation = ref.clsSidebarAnimation; + return mode === "none" || mode === "reveal" ? "" : clsSidebarAnimation; + }, + clsContainerAnimation: function(ref) { + var mode = ref.mode; + var clsContainerAnimation = ref.clsContainerAnimation; + return mode !== "push" && mode !== "reveal" ? "" : clsContainerAnimation; + }, + transitionElement: function(ref) { + var mode = ref.mode; + return mode === "reveal" ? this.panel.parentNode : this.panel; + } + }, + events: [ { + name: "click", + delegate: function() { + return 'a[href^="#"]'; + }, + handler: function(ref) { + var current = ref.current; + if (current.hash && $(current.hash, document.body)) { + this.hide(); + } + } + }, { + name: "touchstart", + el: function() { + return this.panel; + }, + handler: function(ref) { + var targetTouches = ref.targetTouches; + if (targetTouches.length === 1) { + this.clientY = targetTouches[0].clientY; + } + } + }, { + name: "touchmove", + self: true, + passive: false, + filter: function() { + return this.overlay; + }, + handler: function(e) { + e.preventDefault(); + } + }, { + name: "touchmove", + passive: false, + el: function() { + return this.panel; + }, + handler: function(e) { + if (e.targetTouches.length !== 1) { + return; + } + var clientY = event.targetTouches[0].clientY - this.clientY; + var ref = this.panel; + var scrollTop$$1 = ref.scrollTop; + var scrollHeight = ref.scrollHeight; + var clientHeight = ref.clientHeight; + if (clientHeight >= scrollHeight || scrollTop$$1 === 0 && clientY > 0 || scrollHeight - scrollTop$$1 <= clientHeight && clientY < 0) { + e.preventDefault(); + } + } + }, { + name: "show", + self: true, + handler: function() { + if (this.mode === "reveal" && !hasClass(this.panel.parentNode, this.clsMode)) { + wrapAll(this.panel, "
"); + addClass(this.panel.parentNode, this.clsMode); + } + css(document.documentElement, "overflowY", this.overlay ? "hidden" : ""); + addClass(document.body, this.clsContainer, this.clsFlip); + css(this.$el, "display", "block"); + addClass(this.$el, this.clsOverlay); + addClass(this.panel, this.clsSidebarAnimation, this.mode !== "reveal" ? this.clsMode : ""); + height(document.body); + addClass(document.body, this.clsContainerAnimation); + this.clsContainerAnimation && suppressUserScale(); + } + }, { + name: "hide", + self: true, + handler: function() { + removeClass(document.body, this.clsContainerAnimation); + var active = this.getActive(); + if (this.mode === "none" || active && active !== this && active !== this.prev) { + trigger(this.panel, "transitionend"); + } + } + }, { + name: "hidden", + self: true, + handler: function() { + this.clsContainerAnimation && resumeUserScale(); + if (this.mode === "reveal") { + unwrap(this.panel); + } + removeClass(this.panel, this.clsSidebarAnimation, this.clsMode); + removeClass(this.$el, this.clsOverlay); + css(this.$el, "display", ""); + removeClass(document.body, this.clsContainer, this.clsFlip); + css(document.documentElement, "overflowY", ""); + } + }, { + name: "swipeLeft swipeRight", + handler: function(e) { + if (this.isToggled() && isTouch(e) && e.type === "swipeLeft" ^ this.flip) { + this.hide(); + } + } + } ] + }; + function suppressUserScale() { + getViewport().content += ",user-scalable=0"; + } + function resumeUserScale() { + var viewport = getViewport(); + viewport.content = viewport.content.replace(/,user-scalable=0$/, ""); + } + function getViewport() { + return $('meta[name="viewport"]', document.head) || append(document.head, ''); + } + var OverflowAuto = { + mixins: [ Class ], + props: { + selContainer: String, + selContent: String + }, + data: { + selContainer: ".uk-modal", + selContent: ".uk-modal-dialog" + }, + computed: { + container: function(ref, $el) { + var selContainer = ref.selContainer; + return closest($el, selContainer); + }, + content: function(ref, $el) { + var selContent = ref.selContent; + return closest($el, selContent); + } + }, + connected: function() { + css(this.$el, "minHeight", 150); + }, + update: { + read: function() { + if (!this.content || !this.container) { + return false; + } + return { + current: toFloat(css(this.$el, "maxHeight")), + max: Math.max(150, height(this.container) - (offset(this.content).height - height(this.$el))) + }; + }, + write: function(ref) { + var current = ref.current; + var max = ref.max; + css(this.$el, "maxHeight", max); + if (Math.round(current) !== Math.round(max)) { + trigger(this.$el, "resize"); + } + }, + events: [ "resize" ] + } + }; + var Responsive = { + props: [ "width", "height" ], + connected: function() { + addClass(this.$el, "uk-responsive-width"); + }, + update: { + read: function() { + return isVisible(this.$el) && this.width && this.height ? { + width: width(this.$el.parentNode), + height: this.height + } : false; + }, + write: function(dim) { + height(this.$el, Dimensions.contain({ + height: this.height, + width: this.width + }, dim).height); + }, + events: [ "resize" ] + } + }; + var Scroll = { + props: { + duration: Number, + offset: Number + }, + data: { + duration: 1e3, + offset: 0 + }, + methods: { + scrollTo: function(el) { + var this$1 = this; + el = el && $(el) || document.body; + var docHeight = height(document); + var winHeight = height(window); + var target = offset(el).top - this.offset; + if (target + winHeight > docHeight) { + target = docHeight - winHeight; + } + if (!trigger(this.$el, "beforescroll", [ this, el ])) { + return; + } + var start = Date.now(); + var startY = window.pageYOffset; + var step = function() { + var currentY = startY + (target - startY) * ease(clamp((Date.now() - start) / this$1.duration)); + scrollTop(window, currentY); + if (currentY !== target) { + requestAnimationFrame(step); + } else { + trigger(this$1.$el, "scrolled", [ this$1, el ]); + } + }; + step(); + } + }, + events: { + click: function(e) { + if (e.defaultPrevented) { + return; + } + e.preventDefault(); + this.scrollTo(escape(decodeURIComponent(this.$el.hash)).substr(1)); + } + } + }; + function ease(k) { + return .5 * (1 - Math.cos(Math.PI * k)); + } + var Scrollspy = { + args: "cls", + props: { + cls: "list", + target: String, + hidden: Boolean, + offsetTop: Number, + offsetLeft: Number, + repeat: Boolean, + delay: Number + }, + data: function() { + return { + cls: [], + target: false, + hidden: true, + offsetTop: 0, + offsetLeft: 0, + repeat: false, + delay: 0, + inViewClass: "uk-scrollspy-inview" + }; + }, + computed: { + elements: function(ref, $el) { + var target = ref.target; + return target ? $$(target, $el) : [ $el ]; + } + }, + update: [ { + write: function() { + if (this.hidden) { + css(filter(this.elements, ":not(." + this.inViewClass + ")"), "visibility", "hidden"); + } + } + }, { + read: function(els) { + var this$1 = this; + if (!els.update) { + return; + } + this.elements.forEach(function(el, i) { + var elData = els[i]; + if (!elData || elData.el !== el) { + var cls = data(el, "uk-scrollspy-class"); + elData = { + el: el, + toggles: cls && cls.split(",") || this$1.cls + }; + } + elData.show = isInView(el, this$1.offsetTop, this$1.offsetLeft); + els[i] = elData; + }); + }, + write: function(els) { + var this$1 = this; + if (!els.update) { + this.$emit(); + return els.update = true; + } + this.elements.forEach(function(el, i) { + var elData = els[i]; + var cls = elData.toggles[i] || elData.toggles[0]; + if (elData.show && !elData.inview && !elData.queued) { + var show = function() { + css(el, "visibility", ""); + addClass(el, this$1.inViewClass); + toggleClass(el, cls); + trigger(el, "inview"); + this$1.$update(el); + elData.inview = true; + elData.abort && elData.abort(); + }; + if (this$1.delay) { + elData.queued = true; + els.promise = (els.promise || Promise.resolve()).then(function() { + return !elData.inview && new Promise(function(resolve) { + var timer = setTimeout(function() { + show(); + resolve(); + }, els.promise || this$1.elements.length === 1 ? this$1.delay : 0); + elData.abort = function() { + clearTimeout(timer); + resolve(); + elData.queued = false; + }; + }); + }); + } else { + show(); + } + } else if (!elData.show && (elData.inview || elData.queued) && this$1.repeat) { + elData.abort && elData.abort(); + if (!elData.inview) { + return; + } + css(el, "visibility", this$1.hidden ? "hidden" : ""); + removeClass(el, this$1.inViewClass); + toggleClass(el, cls); + trigger(el, "outview"); + this$1.$update(el); + elData.inview = false; + } + }); + }, + events: [ "scroll", "resize" ] + } ] + }; + var ScrollspyNav = { + props: { + cls: String, + closest: String, + scroll: Boolean, + overflow: Boolean, + offset: Number + }, + data: { + cls: "uk-active", + closest: false, + scroll: false, + overflow: true, + offset: 0 + }, + computed: { + links: function(_, $el) { + return $$('a[href^="#"]', $el).filter(function(el) { + return el.hash; + }); + }, + elements: function(ref) { + var selector = ref.closest; + return closest(this.links, selector || "*"); + }, + targets: function() { + return $$(this.links.map(function(el) { + return el.hash; + }).join(",")); + } + }, + update: [ { + read: function() { + if (this.scroll) { + this.$create("scroll", this.links, { + offset: this.offset || 0 + }); + } + } + }, { + read: function(data$$1) { + var this$1 = this; + var scroll = window.pageYOffset + this.offset + 1; + var max = height(document) - height(window) + this.offset; + data$$1.active = false; + this.targets.every(function(el, i) { + var ref = offset(el); + var top = ref.top; + var last = i + 1 === this$1.targets.length; + if (!this$1.overflow && (i === 0 && top > scroll || last && top + el.offsetTop < scroll)) { + return false; + } + if (!last && offset(this$1.targets[i + 1]).top <= scroll) { + return true; + } + if (scroll >= max) { + for (var j = this$1.targets.length - 1; j > i; j--) { + if (isInView(this$1.targets[j])) { + el = this$1.targets[j]; + break; + } + } + } + return !(data$$1.active = $(filter(this$1.links, '[href="#' + el.id + '"]'))); + }); + }, + write: function(ref) { + var active = ref.active; + this.links.forEach(function(el) { + return el.blur(); + }); + removeClass(this.elements, this.cls); + if (active) { + trigger(this.$el, "active", [ active, addClass(this.closest ? closest(active, this.closest) : active, this.cls) ]); + } + }, + events: [ "scroll", "resize" ] + } ] + }; + var Sticky = { + mixins: [ Class, Media ], + props: { + top: null, + bottom: Boolean, + offset: Number, + animation: String, + clsActive: String, + clsInactive: String, + clsFixed: String, + clsBelow: String, + selTarget: String, + widthElement: Boolean, + showOnUp: Boolean, + targetOffset: Number + }, + data: { + top: 0, + bottom: false, + offset: 0, + animation: "", + clsActive: "uk-active", + clsInactive: "", + clsFixed: "uk-sticky-fixed", + clsBelow: "uk-sticky-below", + selTarget: "", + widthElement: false, + showOnUp: false, + targetOffset: false + }, + computed: { + selTarget: function(ref, $el) { + var selTarget = ref.selTarget; + return selTarget && $(selTarget, $el) || $el; + }, + widthElement: function(ref, $el) { + var widthElement = ref.widthElement; + return query(widthElement, $el) || this.placeholder; + }, + isActive: { + get: function() { + return hasClass(this.selTarget, this.clsActive); + }, + set: function(value) { + if (value && !this.isActive) { + replaceClass(this.selTarget, this.clsInactive, this.clsActive); + trigger(this.$el, "active"); + } else if (!value && !hasClass(this.selTarget, this.clsInactive)) { + replaceClass(this.selTarget, this.clsActive, this.clsInactive); + trigger(this.$el, "inactive"); + } + } + } + }, + connected: function() { + this.placeholder = $("+ .uk-sticky-placeholder", this.$el) || $('
'); + this.isFixed = false; + this.isActive = false; + }, + disconnected: function() { + if (this.isFixed) { + this.hide(); + removeClass(this.selTarget, this.clsInactive); + } + remove(this.placeholder); + this.placeholder = null; + this.widthElement = null; + }, + events: [ { + name: "load hashchange popstate", + el: window, + handler: function() { + var this$1 = this; + if (!(this.targetOffset !== false && location.hash && window.pageYOffset > 0)) { + return; + } + var target = $(location.hash); + if (target) { + fastdom.read(function() { + var ref = offset(target); + var top = ref.top; + var elTop = offset(this$1.$el).top; + var elHeight = this$1.$el.offsetHeight; + if (this$1.isFixed && elTop + elHeight >= top && elTop <= top + target.offsetHeight) { + scrollTop(window, top - elHeight - (isNumeric(this$1.targetOffset) ? this$1.targetOffset : 0) - this$1.offset); + } + }); + } + } + } ], + update: [ { + read: function(ref, type) { + var height$$1 = ref.height; + if (this.isActive && type !== "update") { + this.hide(); + height$$1 = this.$el.offsetHeight; + this.show(); + } + height$$1 = !this.isActive ? this.$el.offsetHeight : height$$1; + this.topOffset = offset(this.isFixed ? this.placeholder : this.$el).top; + this.bottomOffset = this.topOffset + height$$1; + var bottom = parseProp("bottom", this); + this.top = Math.max(toFloat(parseProp("top", this)), this.topOffset) - this.offset; + this.bottom = bottom && bottom - height$$1; + this.inactive = !this.matchMedia; + return { + lastScroll: false, + height: height$$1, + margins: css(this.$el, [ "marginTop", "marginBottom", "marginLeft", "marginRight" ]) + }; + }, + write: function(ref) { + var height$$1 = ref.height; + var margins = ref.margins; + var ref$1 = this; + var placeholder = ref$1.placeholder; + css(placeholder, assign({ + height: height$$1 + }, margins)); + if (!within(placeholder, document)) { + after(this.$el, placeholder); + attr(placeholder, "hidden", ""); + } + this.isActive = this.isActive; + }, + events: [ "resize" ] + }, { + read: function(ref) { + var scroll = ref.scroll; + if (scroll === void 0) scroll = 0; + this.width = (isVisible(this.widthElement) ? this.widthElement : this.$el).offsetWidth; + this.scroll = window.pageYOffset; + return { + dir: scroll <= this.scroll ? "down" : "up", + scroll: this.scroll, + visible: isVisible(this.$el), + top: offsetPosition(this.placeholder)[0] + }; + }, + write: function(data$$1, type) { + var this$1 = this; + var initTimestamp = data$$1.initTimestamp; + if (initTimestamp === void 0) initTimestamp = 0; + var dir = data$$1.dir; + var lastDir = data$$1.lastDir; + var lastScroll = data$$1.lastScroll; + var scroll = data$$1.scroll; + var top = data$$1.top; + var visible = data$$1.visible; + var now = performance.now(); + data$$1.lastScroll = scroll; + if (scroll < 0 || scroll === lastScroll || !visible || this.disabled || this.showOnUp && type !== "scroll") { + return; + } + if (now - initTimestamp > 300 || dir !== lastDir) { + data$$1.initScroll = scroll; + data$$1.initTimestamp = now; + } + data$$1.lastDir = dir; + if (this.showOnUp && Math.abs(data$$1.initScroll - scroll) <= 30 && Math.abs(lastScroll - scroll) <= 10) { + return; + } + if (this.inactive || scroll < this.top || this.showOnUp && (scroll <= this.top || dir === "down" || dir === "up" && !this.isFixed && scroll <= this.bottomOffset)) { + if (!this.isFixed) { + if (Animation.inProgress(this.$el) && top > scroll) { + Animation.cancel(this.$el); + this.hide(); + } + return; + } + this.isFixed = false; + if (this.animation && scroll > this.topOffset) { + Animation.cancel(this.$el); + Animation.out(this.$el, this.animation).then(function() { + return this$1.hide(); + }, noop); + } else { + this.hide(); + } + } else if (this.isFixed) { + this.update(); + } else if (this.animation) { + Animation.cancel(this.$el); + this.show(); + Animation.in(this.$el, this.animation).catch(noop); + } else { + this.show(); + } + }, + events: [ "resize", "scroll" ] + } ], + methods: { + show: function() { + this.isFixed = true; + this.update(); + attr(this.placeholder, "hidden", null); + }, + hide: function() { + this.isActive = false; + removeClass(this.$el, this.clsFixed, this.clsBelow); + css(this.$el, { + position: "", + top: "", + width: "" + }); + attr(this.placeholder, "hidden", ""); + }, + update: function() { + var active = this.top !== 0 || this.scroll > this.top; + var top = Math.max(0, this.offset); + if (this.bottom && this.scroll > this.bottom - this.offset) { + top = this.bottom - this.scroll; + } + css(this.$el, { + position: "fixed", + top: top + "px", + width: this.width + }); + this.isActive = active; + toggleClass(this.$el, this.clsBelow, this.scroll > this.bottomOffset); + addClass(this.$el, this.clsFixed); + } + } + }; + function parseProp(prop, ref) { + var $props = ref.$props; + var $el = ref.$el; + var propOffset = ref[prop + "Offset"]; + var value = $props[prop]; + if (!value) { + return; + } + if (isNumeric(value)) { + return propOffset + toFloat(value); + } else if (isString(value) && value.match(/^-?\d+vh$/)) { + return height(window) * toFloat(value) / 100; + } else { + var el = value === true ? $el.parentNode : query(value, $el); + if (el) { + return offset(el).top + el.offsetHeight; + } + } + } + var Switcher = { + mixins: [ Togglable ], + args: "connect", + props: { + connect: String, + toggle: String, + active: Number, + swiping: Boolean + }, + data: { + connect: "~.uk-switcher", + toggle: "> * > :first-child", + active: 0, + swiping: true, + cls: "uk-active", + clsContainer: "uk-switcher", + attrItem: "uk-switcher-item", + queued: true + }, + computed: { + connects: function(ref, $el) { + var connect = ref.connect; + return queryAll(connect, $el); + }, + toggles: function(ref, $el) { + var toggle = ref.toggle; + return $$(toggle, $el); + } + }, + events: [ { + name: "click", + delegate: function() { + return this.toggle + ":not(.uk-disabled)"; + }, + handler: function(e) { + e.preventDefault(); + this.show(toNodes(this.$el.children).filter(function(el) { + return within(e.current, el); + })[0]); + } + }, { + name: "click", + el: function() { + return this.connects; + }, + delegate: function() { + return "[" + this.attrItem + "],[data-" + this.attrItem + "]"; + }, + handler: function(e) { + e.preventDefault(); + this.show(data(e.current, this.attrItem)); + } + }, { + name: "swipeRight swipeLeft", + filter: function() { + return this.swiping; + }, + el: function() { + return this.connects; + }, + handler: function(e) { + if (!isTouch(e)) { + return; + } + e.preventDefault(); + if (!window.getSelection().toString()) { + this.show(e.type === "swipeLeft" ? "next" : "previous"); + } + } + } ], + update: function() { + var this$1 = this; + this.connects.forEach(function(list) { + return this$1.updateAria(list.children); + }); + var ref = this.$el; + var children = ref.children; + this.show(filter(children, "." + this.cls)[0] || children[this.active] || children[0]); + }, + methods: { + index: function() { + return !!this.connects.length && index(filter(this.connects[0].children, "." + this.cls)[0]); + }, + show: function(item) { + var this$1 = this; + var ref = this.$el; + var children = ref.children; + var length = children.length; + var prev = this.index(); + var hasPrev = prev >= 0; + var dir = item === "previous" ? -1 : 1; + var toggle, active, next = getIndex(item, children, prev); + for (var i = 0; i < length; i++, next = (next + dir + length) % length) { + if (!matches(this.toggles[next], ".uk-disabled *, .uk-disabled, [disabled]")) { + toggle = this.toggles[next]; + active = children[next]; + break; + } + } + if (!active || prev >= 0 && hasClass(active, this.cls) || prev === next) { + return; + } + removeClass(children, this.cls); + addClass(active, this.cls); + attr(this.toggles, "aria-expanded", false); + attr(toggle, "aria-expanded", true); + this.connects.forEach(function(list) { + if (!hasPrev) { + this$1.toggleNow(list.children[next]); + } else { + this$1.toggleElement([ list.children[prev], list.children[next] ]); + } + }); + } + } + }; + var Tab = { + mixins: [ Class ], + extends: Switcher, + props: { + media: Boolean + }, + data: { + media: 960, + attrItem: "uk-tab-item" + }, + connected: function() { + var cls = hasClass(this.$el, "uk-tab-left") ? "uk-tab-left" : hasClass(this.$el, "uk-tab-right") ? "uk-tab-right" : false; + if (cls) { + this.$create("toggle", this.$el, { + cls: cls, + mode: "media", + media: this.media + }); + } + } + }; + var Toggle = { + mixins: [ Media, Togglable ], + args: "target", + props: { + href: String, + target: null, + mode: "list" + }, + data: { + href: false, + target: false, + mode: "click", + queued: true + }, + computed: { + target: function(ref, $el) { + var href = ref.href; + var target = ref.target; + target = queryAll(target || href, $el); + return target.length && target || [ $el ]; + } + }, + connected: function() { + trigger(this.target, "updatearia", [ this ]); + }, + events: [ { + name: pointerEnter + " " + pointerLeave, + filter: function() { + return includes(this.mode, "hover"); + }, + handler: function(e) { + if (!isTouch(e)) { + this.toggle("toggle" + (e.type === pointerEnter ? "show" : "hide")); + } + } + }, { + name: "click", + filter: function() { + return includes(this.mode, "click") || hasTouch && includes(this.mode, "hover"); + }, + handler: function(e) { + if (!isTouch(e) && !includes(this.mode, "click")) { + return; + } + var link; + if (closest(e.target, 'a[href="#"], a[href=""], button') || (link = closest(e.target, "a[href]")) && (this.cls || !isVisible(this.target) || link.hash && matches(this.target, link.hash))) { + e.preventDefault(); + } + this.toggle(); + } + } ], + update: { + write: function() { + if (!includes(this.mode, "media") || !this.media) { + return; + } + var toggled = this.isToggled(this.target); + if (this.matchMedia ? !toggled : toggled) { + this.toggle(); + } + }, + events: [ "resize" ] + }, + methods: { + toggle: function(type) { + if (trigger(this.target, type || "toggle", [ this ])) { + this.toggleElement(this.target); + } + } + } + }; + function core(UIkit) { + UIkit.component("accordion", Accordion); + UIkit.component("alert", Alert); + UIkit.component("cover", Cover); + UIkit.component("drop", Drop); + UIkit.component("dropdown", Dropdown); + UIkit.component("formCustom", FormCustom); + UIkit.component("gif", Gif); + UIkit.component("grid", Grid); + UIkit.component("heightMatch", HeightMatch); + UIkit.component("heightViewport", HeightViewport); + UIkit.component("icon", Icon); + UIkit.component("img", Img); + UIkit.component("leader", Leader); + UIkit.component("margin", Margin); + UIkit.component("modal", Modal$1); + UIkit.component("nav", Nav); + UIkit.component("navbar", Navbar); + UIkit.component("offcanvas", Offcanvas); + UIkit.component("overflowAuto", OverflowAuto); + UIkit.component("responsive", Responsive); + UIkit.component("scroll", Scroll); + UIkit.component("scrollspy", Scrollspy); + UIkit.component("scrollspyNav", ScrollspyNav); + UIkit.component("sticky", Sticky); + UIkit.component("svg", SVG); + UIkit.component("switcher", Switcher); + UIkit.component("tab", Tab); + UIkit.component("toggle", Toggle); + UIkit.component("video", Video); + UIkit.component("close", Close); + UIkit.component("marker", IconComponent); + UIkit.component("navbarToggleIcon", IconComponent); + UIkit.component("overlayIcon", IconComponent); + UIkit.component("paginationNext", IconComponent); + UIkit.component("paginationPrevious", IconComponent); + UIkit.component("searchIcon", Search); + UIkit.component("slidenavNext", Slidenav); + UIkit.component("slidenavPrevious", Slidenav); + UIkit.component("spinner", Spinner); + UIkit.component("totop", IconComponent); + UIkit.use(Core); + } + UIkit.version = "3.0.3"; + core(UIkit); + var Countdown = { + mixins: [ Class ], + props: { + date: String, + clsWrapper: String + }, + data: { + date: "", + clsWrapper: ".uk-countdown-%unit%" + }, + computed: { + date: function(ref) { + var date = ref.date; + return Date.parse(date); + }, + days: function(ref, $el) { + var clsWrapper = ref.clsWrapper; + return $(clsWrapper.replace("%unit%", "days"), $el); + }, + hours: function(ref, $el) { + var clsWrapper = ref.clsWrapper; + return $(clsWrapper.replace("%unit%", "hours"), $el); + }, + minutes: function(ref, $el) { + var clsWrapper = ref.clsWrapper; + return $(clsWrapper.replace("%unit%", "minutes"), $el); + }, + seconds: function(ref, $el) { + var clsWrapper = ref.clsWrapper; + return $(clsWrapper.replace("%unit%", "seconds"), $el); + }, + units: function() { + var this$1 = this; + return [ "days", "hours", "minutes", "seconds" ].filter(function(unit) { + return this$1[unit]; + }); + } + }, + connected: function() { + this.start(); + }, + disconnected: function() { + var this$1 = this; + this.stop(); + this.units.forEach(function(unit) { + return empty(this$1[unit]); + }); + }, + events: [ { + name: "visibilitychange", + el: document, + handler: function() { + if (document.hidden) { + this.stop(); + } else { + this.start(); + } + } + } ], + update: { + write: function() { + var this$1 = this; + var timespan = getTimeSpan(this.date); + if (timespan.total <= 0) { + this.stop(); + timespan.days = timespan.hours = timespan.minutes = timespan.seconds = 0; + } + this.units.forEach(function(unit) { + var digits = String(Math.floor(timespan[unit])); + digits = digits.length < 2 ? "0" + digits : digits; + var el = this$1[unit]; + if (el.textContent !== digits) { + digits = digits.split(""); + if (digits.length !== el.children.length) { + html(el, digits.map(function() { + return ""; + }).join("")); + } + digits.forEach(function(digit, i) { + return el.children[i].textContent = digit; + }); + } + }); + } + }, + methods: { + start: function() { + var this$1 = this; + this.stop(); + if (this.date && this.units.length) { + this.$emit(); + this.timer = setInterval(function() { + return this$1.$emit(); + }, 1e3); + } + }, + stop: function() { + if (this.timer) { + clearInterval(this.timer); + this.timer = null; + } + } + } + }; + function getTimeSpan(date) { + var total = date - Date.now(); + return { + total: total, + seconds: total / 1e3 % 60, + minutes: total / 1e3 / 60 % 60, + hours: total / 1e3 / 60 / 60 % 24, + days: total / 1e3 / 60 / 60 / 24 + }; + } + var targetClass = "uk-animation-target"; + var Animate = { + props: { + animation: Number + }, + data: { + animation: 150 + }, + computed: { + target: function() { + return this.$el; + } + }, + methods: { + animate: function(action) { + var this$1 = this; + addStyle(); + var children = toNodes(this.target.children); + var propsFrom = children.map(function(el) { + return getProps(el, true); + }); + var oldHeight = height(this.target); + var oldScrollY = window.pageYOffset; + action(); + Transition.cancel(this.target); + children.forEach(Transition.cancel); + reset(this.target); + this.$update(this.target); + fastdom.flush(); + var newHeight = height(this.target); + children = children.concat(toNodes(this.target.children).filter(function(el) { + return !includes(children, el); + })); + var propsTo = children.map(function(el, i) { + return el.parentNode && i in propsFrom ? propsFrom[i] ? isVisible(el) ? getPositionWithMargin(el) : { + opacity: 0 + } : { + opacity: isVisible(el) ? 1 : 0 + } : false; + }); + propsFrom = propsTo.map(function(props, i) { + var from = children[i].parentNode === this$1.target ? propsFrom[i] || getProps(children[i]) : false; + if (from) { + if (!props) { + delete from.opacity; + } else if (!("opacity" in props)) { + var opacity = from.opacity; + if (opacity % 1) { + props.opacity = 1; + } else { + delete from.opacity; + } + } + } + return from; + }); + addClass(this.target, targetClass); + children.forEach(function(el, i) { + return propsFrom[i] && css(el, propsFrom[i]); + }); + css(this.target, "height", oldHeight); + scrollTop(window, oldScrollY); + return Promise.all(children.map(function(el, i) { + return propsFrom[i] && propsTo[i] ? Transition.start(el, propsTo[i], this$1.animation, "ease") : Promise.resolve(); + }).concat(Transition.start(this.target, { + height: newHeight + }, this.animation, "ease"))).then(function() { + children.forEach(function(el, i) { + return css(el, { + display: propsTo[i].opacity === 0 ? "none" : "", + zIndex: "" + }); + }); + reset(this$1.target); + this$1.$update(this$1.target); + fastdom.flush(); + }, noop); + } + } + }; + function getProps(el, opacity) { + var zIndex = css(el, "zIndex"); + return isVisible(el) ? assign({ + display: "", + opacity: opacity ? css(el, "opacity") : "0", + pointerEvents: "none", + position: "absolute", + zIndex: zIndex === "auto" ? index(el) : zIndex + }, getPositionWithMargin(el)) : false; + } + function reset(el) { + css(el.children, { + height: "", + left: "", + opacity: "", + pointerEvents: "", + position: "", + top: "", + width: "" + }); + removeClass(el, targetClass); + css(el, "height", ""); + } + function getPositionWithMargin(el) { + var ref = el.getBoundingClientRect(); + var height$$1 = ref.height; + var width$$1 = ref.width; + var ref$1 = position(el); + var top = ref$1.top; + var left = ref$1.left; + top += toFloat(css(el, "marginTop")); + return { + top: top, + left: left, + height: height$$1, + width: width$$1 + }; + } + var style$1; + function addStyle() { + if (!style$1) { + style$1 = append(document.head, " + + +
+ + + diff --git a/_site/changelog-posts/index.html b/_site/changelog-posts/index.html new file mode 100644 index 0000000..18f561f --- /dev/null +++ b/_site/changelog-posts/index.html @@ -0,0 +1,743 @@ + + + + + + + + +Changelog posts | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Changelog posts

+ +
+ + +
+ + + +
+
+
+

🚀 April Updates

+
+ + + +
+
+ + + +
+
+

April comes with a whole bunch of updates across our stack, the main focus for this month in regards to what was released is around:

+ +

Further improving system, and allowing you to compare your results against wide averages for deflection rates +Improvements to our tool to give you and your team more control +And various other new features, updates, and bug fixes along the way.

+ +

Added

+
    +
  • Some scheduled changelogs, tweets, and slack messages queued up this weekend and were not published on time. We fixed the issue and all delayed publications should be out.
  • +
  • We now prioritize keywords over title and body so customers can more effectively influence search results
  • +
  • Support form in the Assistant is now protected with reCaptcha to reduce spam reinitializeOnUrlChange added to the JavaScript API to improve support for pages with turbolinks
  • +
+ +

Fixed

+
    +
  • Fixed an issue with the sync autolinker only interlinking selectively.
  • +
  • Fixed up an issue with prematurely logging out users
  • +
+ +
+
+ +
+
+
+

February Updates

+
+ + + +
+
+ + + +
+
+

February updates across our stack, the main focus for this month in regards to what was released is around:

+ +

Migrating all companies to new access control +Migrating all companies using ticket deflection to the new system +Further improving system, and allowing you to compare your results against wide averages for deflection rates

+ +

Changed

+
    +
  • Better support for using applying additional filters to posts_tax_query for categories for custom WordPress syncs
  • +
  • Reporting fine-tuning for speed improvements (up to 60% improvement in latency)
  • +
  • Search engine upgraded. Bringing with it enhancements and bug fixes.
  • +
  • Replaced login / registration pre-app screens with a cleaner design
  • +
+ +

Fixed

+
    +
  • Fixed an issue with the sync autolinker only interlinking selectively.
  • +
  • Fixed up an issue with prematurely logging out users
  • +
+ +
+
+ +
+
+
+

🚧 January Updates v1.0.5

+
+ + + +
+
+ + + +
+
+

Create your own labels, set text and color:

+ +

Added

+ +

Changed

+ +

Deprecated

+ +

Removed

+ +

Fixed

+ +

Security

+ +

Unreleased

+
+
+ +
+
+
+

November Update

+
+ + + +
+
+ + + +
+
+
+

Fixed

+ +
<head>
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <link rel="stylesheet" href="/assets/css/main.css">
+  <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
+  <script src="/assets/js/main.js"></script>
+</head>
+
+
+
+ + +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/changelog-timeline/index.html b/_site/changelog-timeline/index.html new file mode 100644 index 0000000..b07f4ae --- /dev/null +++ b/_site/changelog-timeline/index.html @@ -0,0 +1,670 @@ + + + + + + + + +Changelog timeline | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+ +
+

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.

+ +
+ +
+
+
Oct 21, 2017
+
+
+

Version 1.0.0STABLE

+
    + +
  • Added Slideshow component
  • + +
  • Added style support for radio and minusbox in Firefox
  • + +
  • Removed class from Section component
  • + +
  • Allow fullscreen mode for videos in Lightbox
  • + +
  • Fixed responsive images in modal for IE11
  • + +
  • Fix Grid and Margin component for cells with no height
  • + +
  • Larger horizontal padding for form input and textarea
  • + +
+
+
+ +
+
+
Sep 01, 2017
+
+
+

Version 1.0.0BETA 1

+
    + +
  • Allow fullscreen mode for YouTube videos in Lightbox
  • + +
  • Fix icons not displaying if connected in rapid succession
  • + +
  • Fix scrollbar jumping in Switcher
  • + +
+
+
+ +
+
+
Aug 15, 2017
+
+
+

Version 0.6.0

+
    + +
  • Added style support for radio and checkbox in Firefox
  • + +
  • Removed class from Section component
  • + +
  • Add workaround to mitigate the duplicating icons issue
  • + +
  • Fixed responsive images in modal for IE11
  • + +
+
+
+ +
+
+
Oct 21, 2017
+
+
+

Version 0.5.0

+
    + +
  • Media options now support any valid media query syntax
  • + +
  • Added style support for radio and checkbox in Firefox
  • + +
  • Fix whitespace trimming in dist
  • + +
+
+
+ +
+ + +
+ +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/contact/index.html b/_site/contact/index.html new file mode 100644 index 0000000..cfa9df0 --- /dev/null +++ b/_site/contact/index.html @@ -0,0 +1,624 @@ + + + + + + + + +Got Any Questions | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+ +
+
Morbi varius in accumsan blandit, elit ligula velit, luctus mattis ante nulla nulla.
+ +

Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.

+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+
+ + + + + +
+
+ + +
+ +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/desktop-bitcoin-wallet.html b/_site/desktop-bitcoin-wallet.html new file mode 100644 index 0000000..664e210 --- /dev/null +++ b/_site/desktop-bitcoin-wallet.html @@ -0,0 +1,630 @@ + + + + + + + + +Desktop Bitcoin Wallet - Bitcoin and Lightning wallet for Desktop, macOS, Linux and Windows | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+

BlueWallet for MacOS

+

Desktop Wallet

+ + download bitcoin wallet for desktop + + +

Direct download available with .dmg or Homebrew

+ +
+ download bitcoin wallet for desktop +
+
+
+ +
+
+

Features

+
+
+
+

HWW integration

+

Easily connect to your hardware wallet through watch-only and PSBTs support.

+
+
+
+
+

Plausible Deniability

+

Create multiple storages or fake ones in case of a forced disclosure.

+
+
+
+
+

Multiple Wallets

+

Support for different wallet types. Like Bip84/49/44, electrum, legacy, etc.

+
+
+
+
+

Full node

+

Full node connection through ElectrumX, Electrs or Electrum Personal Server.

+
+
+
+
+

Transactions control

+

Easily Bump, Cancel or do Batch transactions. With RBF and CPFP.

+
+
+
+
+

Notifications

+

With push notifications for pending and confirmed transactions.

+
+
+
+
+
+ + + + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/docs/alerts/index.html b/_site/docs/alerts/index.html new file mode 100644 index 0000000..6f384db --- /dev/null +++ b/_site/docs/alerts/index.html @@ -0,0 +1,832 @@ + + + + + + + + +Adding alerts to content | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Adding alerts to content

+ +

Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis.

+ +
+

There are four alert styles:

+ +
+

Cras at dolor eget urna varius faucibus tempus in elit.

+
+ +
+

Cras at dolor eget urna varius faucibus tempus in elit.

+
+ +
+

Cras at dolor eget urna varius faucibus tempus in elit.

+
+ +
+

Cras at dolor eget urna varius faucibus tempus in elit.

+
+ +

Add alerts to a post using the following includes:

+ +
{% include alert.html style="primary" text="Cras at dolor eget urna varius faucibus tempus in elit." %}
+
+{% include alert.html style="success" text="Cras at dolor eget urna varius faucibus tempus in elit." %}
+
+{% include alert.html style="warning" text="Cras at dolor eget urna varius faucibus tempus in elit." %}
+
+{% include alert.html style="danger" text="Cras at dolor eget urna varius faucibus tempus in elit." %}
+
+ + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/analytics/index.html b/_site/docs/analytics/index.html new file mode 100644 index 0000000..38a7f10 --- /dev/null +++ b/_site/docs/analytics/index.html @@ -0,0 +1,993 @@ + + + + + + + + +Google Analytics | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Google Analytics

+ + + +
+

To enable Google Anaytics, add the following lines to your Jekyll site:

+ +
  google_analytics: UA-NNNNNNNN-N
+
+ +

Google Analytics will only appear in production, i.e., JEKYLL_ENV=production

+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/backup-wallet/index.html b/_site/docs/backup-wallet/index.html new file mode 100644 index 0000000..a9e8707 --- /dev/null +++ b/_site/docs/backup-wallet/index.html @@ -0,0 +1,908 @@ + + + + + + + + +How to backup/export a wallet | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

How to backup/export a wallet

+ +

Access to private keys and recover of wallets

+ +
+

To backup or export your wallet is pretty simple. This backup is the “key”, usually a mnemonic (set of 24 words) or just a “text” that will give you access to your wallet if you lose your device, uninstall the app, etc. In short, if something wrong happens and you want/need to get access to your wallet again.

+ +

Things to know

+

On bluewallet every wallet has its own backup and there’s no global backup for all wallets that you can create, this is something you need to do individually for each wallet. We advise to backup all wallets.

+ +

Where to do it

+

Inside your wallet you are going to find on the top right an options menu. Usually with the 3 dots icon. After you tap there you will be taken to the wallet options screen, where you will find the “backup/export” option.

+ +
+
+
+ +
+
+
+ + +
+ + + +
+ + + + + + + + + + + + + + + +
+
+
+ + + + +
How to create a Lightning wallet
+ + +
+
+ + + + +
How to recover your wallet
+ + +
+
+
+ + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/batching/index.html b/_site/docs/batching/index.html new file mode 100644 index 0000000..af45730 --- /dev/null +++ b/_site/docs/batching/index.html @@ -0,0 +1,913 @@ + + + + + + + + +Send to many or Batching | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Send to many or Batching

+ + + +
+

This feature allows you to send multiple transactions in one batch. This is useful if you have two or more transactions that you want to make and spend less fees. All the transaction will be batched in a single transaction fee, making it less expensive for the sender and also they will spend less space on the blockchain. So a win-win for the bitcoin network and for the users.

+ +
+
+

Batching demo

+

Send to multiple recipients

+
+ +
+
+
+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + +
Adding manual entropy
+ + +
+
+ + + + +
Vaults - spending
+ + +
+
+
+ + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/boxes/index.html b/_site/docs/boxes/index.html new file mode 100644 index 0000000..94dec80 --- /dev/null +++ b/_site/docs/boxes/index.html @@ -0,0 +1,822 @@ + + + + + + + + +Category boxes section | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Category boxes section

+ +

Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis.

+ +
+

Home page category boxes are added in _data/navigation_boxes.yml, e.g.:

+
- title: Getting Started
+  desc: Get your account up and running in just few easy steps
+  icon: settings
+  doc: usage
+
+- title: Account and Billing
+  desc: Managing your account, creating new users and exporting data
+  icon: credit-card
+  doc: drafts
+
+ +

All available icons can be found here.

+ +

Add boxes section to a page using the following include:

+ +
{% include boxes.html columns="3" title="Browse Topics" subtitle="Chose an option that you need help with or search above" %}
+
+ + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/changelog/index.html b/_site/docs/changelog/index.html new file mode 100644 index 0000000..0cfbc86 --- /dev/null +++ b/_site/docs/changelog/index.html @@ -0,0 +1,847 @@ + + + + + + + + +Creating a changelog | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Creating a changelog

+ +

Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis.

+ +
+

Theme comes with two different changelogs, timeline and post style.

+ +

Timeline style changelog

+ +

Timeline changelog can be added to a page using an include and its data is pulled from a _data/changelog.yml data file. This changelog is suitable for simple lists of changes.

+ +

Add changelog to a page using the following include:

+ +
{% include changelog.html %}
+
+ +

Changelog enties are added in _data/changelog.yml:

+ +
- title: Version 0.6.0
+  label:
+  date: Aug 15, 2017
+  list:
+  - Added style support for radio and checkbox in Firefox
+  - Removed class from Section component
+
+ +

Post style changelog

+ +

This changelog is suitable for changelog entries with more content beyond simple lists adding text and media.

+ +

Post styled changelog is displayed by setting layout: changelog in page YAML Front Matter:

+ +
---
+layout: changelog
+title: Changelog
+permalink: /changelog/
+---
+
+ +

Changelog enties are added by creating posts in _changelog:

+ +
---
+title: January Updates
+date: 2019-01-22
+---
+
+{% include tag.html tag="added" %}
+- Some scheduled changelogs, tweets, and slack messages queued up this weekend and were not published on time. We fixed the issue and all delayed publications should be out.
+- We now prioritize keywords over title and body so customers can more effectively influence search results
+latency)
+- Search engine upgraded. Bringing with it enhancements and bug fixes.
+- Replaced login / registration pre-app screens with a cleaner design
+
+{% include tag.html tag="fixed" %}
+- Fixed an issue with the sync autolinker only interlinking selectively.
+- Fixed up an issue with prematurely logging out users
+
+ +

Tags can be modified in _data/tags.yml:

+
added:
+  text: Added
+  color: "#3778ff"
+
+changed:
+  text: Changed
+  color: "#3aaa55"
+
+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/cobo-vault/index.html b/_site/docs/cobo-vault/index.html new file mode 100644 index 0000000..11839f2 --- /dev/null +++ b/_site/docs/cobo-vault/index.html @@ -0,0 +1,926 @@ + + + + + + + + +Cobo Vault | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Cobo Vault

+ +

Air-gapped offline transaction with BlueWallet and Cobo Vault

+ +
+

BlueWallet features Cobo Vault hardware wallet support.

+ +

With one of the first of its kind Air-gapped, PSBT with animated QR codes support.

+ +
+
+ +
+
+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + +
Coldcard - Watch-only
+ + +
+
+ + + + +
Use the Local Trader
+ + +
+
+
+ + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/coldcard-dropbox/index.html b/_site/docs/coldcard-dropbox/index.html new file mode 100644 index 0000000..7c7205e --- /dev/null +++ b/_site/docs/coldcard-dropbox/index.html @@ -0,0 +1,1025 @@ + + + + + + + + +Coldcard - Cloud | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Coldcard - Cloud

+ +

Coldcard with Bluewallet - Using Dropbox

+ +
+
+
+ +
+
+ +

In this video you will see the usage of PSBT, watch-only wallets. And how to send transactions offline with your Coldcard and Bluewallet. Using dropbox on this example.

+ +
    +
  • Start the Coldcard device, go to AdvancedMicroSD CardExport WalletElectrum Wallet.
  • +
  • Put the SD card into Coldcard. Choose Native Segwit. It should create wallet skeleton file on SD card.
  • +
  • Put the SD card into the PC and move the created wallet skeleton file onto the Dropbox folder.
  • +
  • Grab the iPhone, launch BlueWallet, tap Create a walletImport walletscan QR or import from filetap file icon and choose your wallet skeleton file. It should import your Coldcard wallet as watch-only.
  • +
  • Create a transaction from this watch-only wallet, when prompted - export it to a file and save it in Dropbox folder.
  • +
  • Put the SD card back into the PC, and move the transaction file from Dropbox folder to the SD card.
  • +
  • Put the SD card into the Coldcard, go to Ready To Sign and proceed with signing the transaction.
  • +
  • Put the SD card into the PC. There should be 2 new files: a file with tge transaction hex that is ready to broadcast (*-final.txn), and a signed transaction file (*-signed.psbt).Let us finish the transaction on iPhone, so move signed transaction file to Dropbox.
  • +
  • On the iPhone, tap Open Signed Transaction, and choose the signed transaction file from your Dropbox. - Tap Send now!
  • +
+ +

PS: Take in consideration that we used dropbox on this example, but anything will work, File system, iCloud, Bluetooth, AirDrop, box.com, direct lightning to sd card adapter, etc

+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + +
Coldcard
+ + +
+
+ + + + +
Coldcard - Watch-only
+ + +
+
+
+ + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/coldcard-watch/index.html b/_site/docs/coldcard-watch/index.html new file mode 100644 index 0000000..682b8bf --- /dev/null +++ b/_site/docs/coldcard-watch/index.html @@ -0,0 +1,1013 @@ + + + + + + + + +Coldcard - Watch-only | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Coldcard - Watch-only

+ +

See your real time Bitcoin balance stored on your ColdCard hardware wallet anytime from your BlueWallet app

+ +
+
+
+ +
+
+ + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + +
Coldcard - Cloud
+ + +
+
+ + + + +
Cobo Vault
+ + +
+
+
+ + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/coldcard/index.html b/_site/docs/coldcard/index.html new file mode 100644 index 0000000..caa2c34 --- /dev/null +++ b/_site/docs/coldcard/index.html @@ -0,0 +1,1028 @@ + + + + + + + + +Coldcard | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Coldcard

+ +

Coldcard with Bluewallet - Lightning SD card

+ +
+
+
+ +
+
+ +

In this video you will see the usage of PSBT, watch-only wallets. And how to send transactions offline with your Coldcard and Bluewallet.

+ +

Using a Lightning to SD adaptor

+ +
    +
  • Start the Coldcard device, go to AdvancedMicroSD CardExport WalletElectrum Wallet. Put the SD card into Coldcard. Choose Native Segwit. It should create the wallet skeleton file on SD card.
  • +
  • Put the SD card into the adaptor, go to the import wallets screen and choose your file.
  • +
  • Create a transaction from this watch-only wallet, when prompted - export it to a file and save it in your folder.
  • +
  • Put the SD card into the Coldcard, go to “Ready To Sign” and proceed with signing the transaction.
  • +
  • Put the SD card into the adaptor. There should be 2 new files: +
      +
    • a file with the transaction hex that is ready to broadcast +(*-final.txn)
    • +
    • a signed transaction file +(*-signed.psbt)
    • +
    • Choose the signed transaction file +('*-signed.psbt)
    • +
    +
  • +
  • Tap send! You are done :)
  • +
+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + +
Vaults - spending
+ + +
+
+ + + + +
Coldcard - Cloud
+ + +
+
+
+ + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/comments/index.html b/_site/docs/comments/index.html new file mode 100644 index 0000000..c2be3de --- /dev/null +++ b/_site/docs/comments/index.html @@ -0,0 +1,996 @@ + + + + + + + + +Enabling comments (via Disqus) | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Enabling comments (via Disqus)

+ +

Disqus is a third party service that can be used to comment on blog posts. This document covers adding Disqus to a Jekyll blog

+ +
+

Optionally, if you have a Disqus account, you can tell Jekyll to use it to show a comments section below each post. To enable it, add the following lines to your Jekyll site:

+ +
disqus:
+    shortname: my_disqus_shortname
+
+ +

You can find out more about Disqus’ shortnames here.

+ +

Comments are enabled by default and will only appear in production, i.e., JEKYLL_ENV=production. If you don’t want to display comments for a particular post you can disable them by adding comments: false to that post’s YAML Front Matter.

+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/contact/index.html b/_site/docs/contact/index.html new file mode 100644 index 0000000..907be6e --- /dev/null +++ b/_site/docs/contact/index.html @@ -0,0 +1,790 @@ + + + + + + + + +Contact form (via FormSpree) | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Contact form (via FormSpree)

+ +

This document covers the setup and options of theme feature described in the doc title

+ +
+

Submit the form and confirm your email address at FormSpree. Then add the following include to a page, replacing the email address:

+ +
{% include formspree.html email="my_name@gmail.com" redirect="/thanks/" name="true" subject="true" %}
+
+ + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/create-bitcoin-wallet/index.html b/_site/docs/create-bitcoin-wallet/index.html new file mode 100644 index 0000000..8c1dff1 --- /dev/null +++ b/_site/docs/create-bitcoin-wallet/index.html @@ -0,0 +1,881 @@ + + + + + + + + +How to create a Bitcoin wallet | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

How to create a Bitcoin wallet

+ + + +
+

Creating a Bitcoin wallet on BlueWallet is easy.

+ +

You can either click on the “Add now” button or the “+” icon in the top right corner

+ +
+ + BlueWallet's first page +
+ +
+
+ +
+ +

That will take you to the “add wallet” screen.

+ +

Adding a new wallet

+ +

In the “add wallet” screen, you can choose between a Bitcoin wallet and a Lightning wallet.

+ +
+ + Add bitcoin wallet page +
+ +
+
+ +
+ +

For Bitcoin, click on the Bitcoin button. (If you want to create a Lightning wallet, see this guide.)

+ +

You may also name your wallet, or leave the default name.

+ +
+ +

Advanced options

+ +

If you have “Advanced mode” enabled in general settings, +you’ll see more options for creating the wallet.

+ +
+ + Add Bitcoin wallet with advanced options +
+ +
+
+ +
+ +

Wallet type

+ +

The first group of options is for the wallet type:

+ +
HD SegWit (BIP84 Bech32 Native)
+ +

???

+ +
SegWit (P2SH)
+ +

???

+ +
HD SegWit (BIP49 PS2H)
+ +

???

+ +

Manual entropy

+ +

BlueWallet supports manual entropy. See here for more details.

+ +

When you’re ready, you can click on “Create” to make your new wallet.

+ +

Importing a wallet

+ +

Instead of creating a new wallet, you can chose to import a wallet from another source or a wallet that you’ve previously created on BlueWallet.

+ +

Click on “Import wallet” to open the import screen.

+ +
+ + Import wallet +
+ +
+
+ +
+ +

In this text area you can post your: mnemonic, private key or WIF.

+ +

Mnemonic

+ +

???

+ +

Private key

+ +

???

+ +

WIF

+ +

???

+ +

??? What else can the user import

+ +

After you’ve entered your import source in the text area, click “Import” to create an imported wallet.

+ +

Scanning or importing a file

+ +

What is this feature for??? What can you scan? What type of file can you import?

+
+ + +
+ + + +
+ + + + + + + + + +
+
+
+ + + + +
Help and documentation
+ + +
+
+ + + + +
How to create a Lightning wallet
+ + +
+
+
+ + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/create-lightning-wallet/index.html b/_site/docs/create-lightning-wallet/index.html new file mode 100644 index 0000000..e5264b5 --- /dev/null +++ b/_site/docs/create-lightning-wallet/index.html @@ -0,0 +1,841 @@ + + + + + + + + +How to create a Lightning wallet | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

How to create a Lightning wallet

+ + + +
+

Creating a Lightning wallet on BlueWallet is easy.

+ +

You can either click on the “Add now” button or the “+” icon in the top right corner

+ +
+ + BlueWallet's first page +
+ +
+
+ +
+ +

That will take you to the “add wallet” screen.

+ +

Adding a new wallet

+ +

In the “add wallet” screen, you can choose between a Bitcoin wallet and a Lightning wallet.

+ +
+ + Add Lightning wallet +
+ +
+
+ +
+ +

For Lightning, click on the Lightning button. (If you want to create a Bitcoin wallet, see this guide.)

+ +

You may also name your wallet, or leave the default name.

+ +
+ +

Advanced options

+ +

If you have “Advanced mode” enabled in general settings, +you’ll see one more option for creating the wallet.

+ +
+ + Add Lightning wallet with advanced options +
+ +
+
+ +
+ +

Connecting to your own LNDHub

+ +

Lightning functionality in BlueWallet is powered by LNDHub, an open source service that we created for this purpose. We host our own instance of this service and BlueWallet connects to it by default. However, for more privacy you can host your own instance and connect to it.

+ +

To do that, you can add the address of your node in the specified text field.

+ +

Provide entropy

+ +

Is the “Provide entropy” feature applicable to Lightning wallets???

+ +
+ +

When you’re ready, you can click on “Create” to make your new wallet.

+ +

Importing a wallet

+ +

??? is it possible to import a Lightning wallet?

+ + +
+ + + +
+ + + + + + + + + + + + +
+
+
+ + + + +
How to create a Bitcoin wallet
+ + +
+
+ + + + +
How to backup/export a wallet
+ + +
+
+
+ + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/cta/index.html b/_site/docs/cta/index.html new file mode 100644 index 0000000..a8e9aa9 --- /dev/null +++ b/_site/docs/cta/index.html @@ -0,0 +1,807 @@ + + + + + + + + +Call to action section | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Call to action section

+ +

Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis.

+ +
+

To add the following to a page:

+ +
{% include cta.html title="Didn't find an answer?" button_text="Contact Us" button_url="/contact/" subtitle="Get in touch with us for details on setup and additional custom services pricing" %}
+
+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/customize/index.html b/_site/docs/customize/index.html new file mode 100644 index 0000000..582f952 --- /dev/null +++ b/_site/docs/customize/index.html @@ -0,0 +1,1002 @@ + + + + + + + + +Customization | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Customization

+ +

Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis.

+ +
+

To modify the primary color, open /_sass/theme/variables.scss and replace the color values e.g.:

+ +
$global-primary-background:                   #05c896;
+
+ +

Further style customisation can be done in the following files:

+
/_sass/theme/mixins.scss
+/_sass/theme/variables.scss
+/assets/css/main.scss
+
+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/development/index.html b/_site/docs/development/index.html new file mode 100644 index 0000000..60328e8 --- /dev/null +++ b/_site/docs/development/index.html @@ -0,0 +1,1015 @@ + + + + + + + + +Development | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Development

+ +

Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis.

+ +
+

Build process

+

Install UIkit font end framework dependency via Npm:

+
npm install
+
+

Enable live browser reload with the following:

+
bundle exec jekyll s --livereload
+
+ +

Use the following commands to compile js scripts:

+
npm run dev
+
+

Compile and minify:

+
npm run build
+
+ +

Hooks

+

There are four hook inlude files that simplify adding content or scripts in the theme locations:

+
    +
  • _includes/hook-head.html
  • +
  • _includes/hook-pre-closing-body.html
  • +
  • _includes/hook-pre-closing-body-doc.html
  • +
  • _includes/hook-post-content-doc.html
  • +
+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/docs/index.html b/_site/docs/docs/index.html new file mode 100644 index 0000000..202b7e0 --- /dev/null +++ b/_site/docs/docs/index.html @@ -0,0 +1,768 @@ + + + + + + + + +Creating docs posts | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Creating docs posts

+ +

Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis.

+ +
+

Create new doc post entries in _docs folder, similar to creating posts, but with following front matter settings:

+ +
---
+title: Category hosting Setting up new domain and page
+subtitle: This is optional doc subtitle
+tags: [featured, development]
+author: peter
+---
+
+ +

Sidebar navigation on docs post can edited in _data/navigation_docs.yml:

+ +
- title: Getting Started    # Section title
+  docs:
+  - home                    # Doc file name from _docs folder
+  - quickstart
+  - installation
+  - windows
+
+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/faq/index.html b/_site/docs/faq/index.html new file mode 100644 index 0000000..1cf15df --- /dev/null +++ b/_site/docs/faq/index.html @@ -0,0 +1,816 @@ + + + + + + + + +Frequently asked questions section | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Frequently asked questions section

+ +

Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis.

+ +
+

Create FAQ post in _faqs folder (categories are optional):

+
---
+title: Do you provide customer support?
+categories: [presale]
+---
+
+ +

To add the following to a page:

+ +
{% include faqs.html multiple="true" title="Frequently asked questions" category="presale" subtitle="Find quicke answers to frequent pre-sale questions asked by customers" %}
+
+ +

Specifying category is optional, if not defined all FAQ posts will be displayed. To display multiple FAQs at the same time without one collapsing when the other one is opened, add the multiple="true" attribute.

+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/featured/index.html b/_site/docs/featured/index.html new file mode 100644 index 0000000..2156d60 --- /dev/null +++ b/_site/docs/featured/index.html @@ -0,0 +1,802 @@ + + + + + + + + +Fearured docs section | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Fearured docs section

+ +

Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis.

+ +
+

Then add the following to a page to display featured docs:

+ +
{% include featured.html tag="featured" title="Popular Articles" subtitle="Selected featured articles to get you started fast in Jekyll" %}
+
+ +

All docs with a featured tag will be displayed:

+
tags: [featured]
+
+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/footer/index.html b/_site/docs/footer/index.html new file mode 100644 index 0000000..0dc7611 --- /dev/null +++ b/_site/docs/footer/index.html @@ -0,0 +1,758 @@ + + + + + + + + +Footer options | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Footer options

+ +

This document covers the setup and options of theme feature described in the doc title

+ +
+

Edit copyright notice in _config.yml:

+
footer:
+    copyright:
+
+ +

Set in the navigation links in _data/navigation_footer.yml:

+
- title: About
+  url: /about/
+
+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/hero/index.html b/_site/docs/hero/index.html new file mode 100644 index 0000000..7416d58 --- /dev/null +++ b/_site/docs/hero/index.html @@ -0,0 +1,806 @@ + + + + + + + + +Hero page header | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Hero page header

+ +

Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis.

+ +
+

To add a hero header to a page add the following to a YAML Front Matter:

+ +
---
+layout: page
+width: expand
+hero:
+    title: How can we help you?
+    subtitle: Search or browse in depth articles and videos
+    image: knowledge.svg
+    search: true
+---
+
+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/installation/index.html b/_site/docs/installation/index.html new file mode 100644 index 0000000..e033ec7 --- /dev/null +++ b/_site/docs/installation/index.html @@ -0,0 +1,759 @@ + + + + + + + + +Theme installation | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Theme installation

+ +

This document covers the setup and options of theme feature described in the doc title

+ +
+

Install the dependencies with Bundler:

+ +
bundle install
+
+ +

Run the following to generate your site:

+
bundle exec jekyll serve
+
+ +

You can find more on Deployment Methods page on Jekyll website.

+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/intro/index.html b/_site/docs/intro/index.html new file mode 100644 index 0000000..fbcebbe --- /dev/null +++ b/_site/docs/intro/index.html @@ -0,0 +1,799 @@ + + + + + + + + +Help and documentation | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Help and documentation

+ + + +
+

Contact support for any doubts bluewallet@bluewallet.io

+ +
+
+ + +

Frequently asked questions

+ + + +

Find quick answers to frequent questions asked by customers

+ + + + +
    + +
  • + Not enough balance +
    When this error appears it means the app already nows upfront that you don't have enough balance, usually because of the fees the service will charge on your transaction. +
    +
  • + +
  • + Not enough confirmed inputs +
    When this error appears it means that you still have one onchain transaction ongoing. Duo to limitations bluewallet supports only one transaction in simultaneous. +
    +
  • + +
  • + Balance is not updating +
    When this happens is usually because the wallet is not updating automatically for some reason. + +The wallet provides a way to manually refresh. Go inside the wallet you want to update and do a "pull-to-refresh", drag the view down to activate the refresh mechanism. + +
    +
    + +
    +
    +
  • + +
  • + Refill is taking too much time +
    When this happens is usually because the Lightning wallet is not updating automatically for some reason. + +The wallet provides a way to manually refresh. Go inside the wallet you want to update and do a "pull-to-refresh", drag the view down to activate the refresh mechanism. + +
    +
    + +
    +
  • + +
  • + Payment in transit +
    This state happens when your payment was sent to the network, but it didn't get a response back. So bluewallet doesn't know what happen, if it failed, if it succeed, etc. + +This payment usually enters in a "limbo" state that can go from 24h up to some days. + +Bluewallet will try every day to see if it can get a status of the payment. + +The payment gets unlock and available on your wallet again, when the timeout from the channels on each node it passed finished. + +Usually the timeout on each node is 24h, so imagine your payment had 3 hops and passed through 3 nodes, You will need to wait 62h to recover your funds. + +This is the worst known case at the moment on the network.
    +
  • + +
+ +
+
+ + +
+ + + +
+ + + + + + +
+
+
+ + +
+
+ + + + +
How to create a Bitcoin wallet
+ + +
+
+
+ + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/lndhub-macos/index.html b/_site/docs/lndhub-macos/index.html new file mode 100644 index 0000000..757e477 --- /dev/null +++ b/_site/docs/lndhub-macos/index.html @@ -0,0 +1,1173 @@ + + + + + + + + +LNDHub on Mac OSX | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

LNDHub on Mac OSX

+ +

Coldcard with Bluewallet - Lightning SD card

+ +
+

Requirements:

+ + + +

Let’s create a self-sovereign mobile lightning wallet using nothing but a Mac, a mobile phone and some software supplied by the fantastic open source community!

+ +

+ +

Step 1 — LND

+ +

1A — Download and set up Pierre Rochard’s NodeLauncher.

+ +

lightning-power-users/node-launcher

+ +

Setup guide here:

+ +

Easiest Bitcoin Lightning Guide

+ +

+ +

Launch Bitcoin and LND

+ +

1B— “Launch Bitcoin” to begin syncing with Bitcoin (12–72 hours).

+ +

1C — “Launch LND” to start syncing LND (2–6 hours)

+ +

1D — “Create” LND Wallet

+ +

Step 2— LndHub

+ +

LndHub is the open-source wrapper for LND provided by BlueWallet.

+ +

BlueWallet/LndHubWrapper 

+ +

2A — Set up the LNDHub

+ +

git clone git@github.com:BlueWallet/LndHub.git\ +cd LndHub

+ +

2B— Copy in the LND Macaroon admin.macaroonto the LndHub directory. Quick find from NodeLauncher, “Show Macroons”:

+ +

+ +

Click “Show Macaroons”

+ +

2C — Copy in the tls.cert file. Quick find by Nodelauncher “Advanced” menu, then “Show lnd.conf

+ +

+ +

Click “Show lnd.conf”

+ +

+ +

Copy this file into LndHub folder

+ +

2D — Edit the LndHub config.js file to add bitcoin RPC credentials

+ +

sudo nano config.js

+ +
    +
  • Change bitcoind.rpc login:password to match the rpcuser & rpcpassword in your bitcoin.conf (use Nodelauncher Advanced menu to locate this file, and then a text editor to open)
  • +
  • Change all the IP addresses from 1.1.1.1 to 127.0.0.1
  • +
  • Change to what is specified on your NodeLauncher pane (usually 10010 )
  • +
  • Change the redis port from 12914 to 6379
  • +
+ +

let config = {bitcoind: {rpc: ‘http://:@127.0.0.1:8332',},redis: {port: 6379,host: '127.0.0.1',family: 4,password: 'password',db: 0,},lnd: {url: '127.0.0.1:',password: '',},};if (process.env.CONFIG) {console.log('using config from env');config = JSON.parse(process.env.CONFIG);}module.exports = config;Step 3— Redis

+ +

Redis is the datastore for LndHub.

+ +

3A —Install Redis, then create the working directory inside the LndHub folder

+ +

brew install redis\ +sudo mkdir redis

+ +

3B — Edit the redis.conf file

+ +

sudo nano /usr/local/etc/redis.conf

+ +

Change the supervision supervised systemd :

+ +

+ +

Change the working directory to dir /Users/<user>/LndHub/redis :

+ +

+ +

Get stuck? Additional tutorial here: https://medium.com/@petehouston/install-and-config-redis-on-mac-os-x-via-homebrew-eb8df9a4f298

+ +

Step 4— Deploy with NPM and Babel

+ +

Finalise LndHub configuration and deploy. Ensure you are back in your main LndHub directory (/User//LndHub)

+ +

4A — Install Node, and then check versions

+ +

brew install nodenode -v\ +npm -v

+ +

4B — Install node modules

+ +

npm config set prefix ‘~/.npm-global’\ +export PATH=~/.npm-global/bin:$PATH\ +npm install

+ +

4C — Compile babeljs

+ +

npm install -g babel-cli\ +mkdir buildbabel ./ –out-dir ./build –copy-files –ignore node_modules

+ +

4D — Run LndHub

+ +

node build/index.js

+ +

Check for 'BOOTING UP' 'Listening on port 3000'

+ +

Head to http://127.0.0.1:3000/ to now see LndHub running.

+ +

Step 5— Port Forward

+ +

Since LndHub is running locally, we need to forward external ports.

+ +

5A — Head to 192.168.0.1 in your browser, and enter your router username and password. Google it if you don’t know, but normally admin:password

+ +

5B — Find your computer’s MAC and IP address (displayed in “devices” or “overview”). Also can use ifconfig to get MAC and ipconfig getifaddr en0to get local IP in terminal.

+ +

5C — Navigate to “Games and Services” to find “Port Forwarding” and add your LndHub as a forwarded port on 3000. My local IP was 192.168.0.13

+ +

+ +

5C — Navigate to “LAN” and then locate the “DHCP Reservation Lease” pane. Bind your Local IP to your MAC Address:

+ +

+ +

All this is doing is forwarding external requests on port 3000 direct to your local IP and directly to your Mac’s Address.

+ +

Now find your external IP address (google “what’s my IP” if you don’t know), and add port 3000 in your browser:

+ +

[http://:3000/](http://144.132.69.213:3000/)

+ +

+ +

LndHub Running!

+ +

Step 6— Connect to BlueWallet

+ +

Now head to BlueWallet and add the above url to in Lightning Settings. You are self-sovereign!

+ +

+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + +
LNDhub on VPS with Ubuntu
+ + +
+
+ + + + +
LNDhub with raspibolt
+ + +
+
+
+ + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/lndhub-raspibolt/index.html b/_site/docs/lndhub-raspibolt/index.html new file mode 100644 index 0000000..e418490 --- /dev/null +++ b/_site/docs/lndhub-raspibolt/index.html @@ -0,0 +1,1323 @@ + + + + + + + + +LNDhub with raspibolt | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

LNDhub with raspibolt

+ +

Coldcard with Bluewallet - Lightning SD card

+ +
+

Install Redis

+ +

Login as “admin”

+ +

Download Redis

+ +
$ cd /home/admin/download
+$ rm -rf /home/admin/download/*
+$ wget http://download.redis.io/releases/redis-5.0.3.tar.gz
+$ tar xzf redis-5.0.3.tar.gz
+$ cd redis-5.0.3/
+
+ +

Make & install

+ +
$ make
+$ sudo make install
+
+ +

Create the working directory for Redis. We will create it on the external hard disk

+ +
$ sudo mkdir /mnt/hdd/redis
+
+
+ +

Create the redis user

+ +
$ sudo adduser --system --group --no-create-home redis
+$ sudo chown redis:redis /mnt/hdd/redis
+$ sudo chmod 770 /mnt/hdd/redis
+
+ +

Make a directory for the redis.conf file & copy the default conf file to it.

+ +
$ sudo mkdir /etc/redis
+$ sudo cp redis.conf /etc/redis
+
+ +

Edit the redis.conf to change the supervised & dir options.

+ +
$ nano /etc/redis/redis.conf
+# If you run Redis from upstart or systemd, Redis can interact with your
+# supervision tree. Options:
+#   supervised no      - no supervision interaction
+#   supervised upstart - signal upstart by putting Redis into SIGSTOP mode
+#   supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
+#   supervised auto    - detect upstart or systemd method based on
+#                        UPSTART_JOB or NOTIFY_SOCKET environment variables
+# Note: these supervision methods only signal "process is ready."
+#       They do not enable continuous liveness pings back to your supervisor.
+supervised systemd
+
+ +

Find supervised no and change it to supervised systemd

+ +
# If you run Redis from upstart or systemd, Redis can interact with your
+# supervision tree. Options:
+#   supervised no      - no supervision interaction
+#   supervised upstart - signal upstart by putting Redis into SIGSTOP mode
+#   supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
+#   supervised auto    - detect upstart or systemd method based on
+#                        UPSTART_JOB or NOTIFY_SOCKET environment variables
+# Note: these supervision methods only signal "process is ready."
+#       They do not enable continuous liveness pings back to your supervisor.
+supervised systemd
+
+ +

Find dir and set it to /mnt/hdd/redis

+ +
# The working directory.
+#
+# The DB will be written inside this directory, with the filename specified
+# above using the 'dbfilename' configuration directive.
+#
+# The Append Only File will also be created inside this directory.
+#
+# Note that you must specify a directory here, not a file name.
+dir /mnt/hdd/redis
+
+ +

Autostart Redis

+ +

Setup Redis to start automatically on system startup. Edit the system service config for redis

+ +
$ sudo nano /etc/systemd/system/redis.service
+
+
+ +
[Unit]
+Description=Redis In-Memory Data Store
+After=network.target
+
+[Service]
+User=redis
+Group=redis
+ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
+ExecStop=/usr/local/bin/redis-cli shutdown
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
+
+
+ +

Start up redis via the systemctl and test the status

+ +
$ sudo systemctl start redis
+$ sudo systemctl status redis
+
+ +

Test redis is running

+ +
$ redis-cli
+127.0.0.1:6379> ping
+PONG
+127.0.0.1:6379> exit
+
+ +

Enable the service

+ +
$ sudo systemctl enable redis
+
+ +

Clean up

+ +
$ rm -rf /home/admin/download/*
+
+
+ +

Install Node

+ +

Download Node

+ +
$ cd /home/admin/download
+$ wget https://nodejs.org/dist/v10.15.1/node-v10.15.1-linux-armv7l.tar.xz
+
+ +

Extract to usr/local/lib

+ +
$ sudo mkdir /usr/local/lib/nodejs/node-v10.15.1
+$ sudo tar -xf node-v10.15.1-linux-armv7l.tar.xz -C /usr/local/lib/nodejs/node-v10.15.1
+
+ +

Link node version into /usr/local/bin

+ +
$ sudo ln -s /usr/local/lib/nodejs/node-v10.15.1/bin/node /usr/local/bin/node
+$ sudo ln -s /usr/local/lib/nodejs/node-v10.15.1/bin/npm /usr/local/bin/npm
+
+ +

Test node & npm is linked correctly

+ +
$ node -v
+$ npm -v
+
+ +

Clean up

+ +
$ rm -rf /home/admin/download/*
+
+ +

Port Forwarding and Uncomplicated Firewall

+ +

We need to open up port 3000 on the router and allow access through ufw. Follow the steps as you have done previously opening the port forwarding on your router. Add a new port forwarding configuration with the following settings:

+ +

Application nameExternal portInternal portInternal IP addressProtocol (TCP or UDP)LndHub 3000 3000 YOUR:NODE:IP:ADDR TCP 

+ +

Allowing access in ufw

+ +
$ sudo su
+$ ufw allow 3000 comment 'allow LndHub'
+$ ufw reload
+$ exit
+
+ +

Unlock LND

+ +

Make sure your lnd node is unlocked before running LndHub

+ +
$ lncli unlock
+
+ +

Install LndHub

+ +

Switch user to bitcoin

+ +
$ su - bitcoin
+
+
+ +

Clone the LndHub repository

+ +
$ git clone https://github.com/BlueWallet/LndHub
+
+ +

Copy the tls.cert and admin.macaroon files into LndHub

+ +
$ cp .lnd/data/chain/bitcoin/mainnet/admin.macaroon LndHub/
+$ cp .lnd/tls.cert LndHub/
+
+ +

Edit the LndHub config.js file to add bitcoin RPC credentials

+ +
$ cd LndHub/
+$ nano config.js
+
+ +

Edit the config.js file

+ +
    +
  • Change bitcoind.rpc login:password to match the rpcuser & rpcpassword in your bitcoin.conf. Your rpcpassword may need to be URL encoded if it contains special characters. You can use an online service like https://meyerweb.com/eric/tools/dencoder/ to encode it (it does not send your rpcpassword anywhere).
  • +
  • Change all the IP addresses from 1.1.1.1 to 127.0.0.1
  • +
  • Change the redis port from 12914 to 6379
  • +
+ +
let config = {
+  bitcoind: {
+    rpc: 'http://rpcuser:rpcpassword@127.0.0.1:8332',
+  },
+  redis: {
+    port: 6379,
+    host: '127.0.0.1',
+    family: 4,
+    db: 0,
+  },
+  lnd: {
+    url: '127.0.0.1:10009',
+  },
+};
+
+ +

Install required node modules

+ +
$ npm config set prefix '~/.npm-global'
+$ export PATH=~/.npm-global/bin:$PATH
+$ npm install
+
+ +

Compile babeljs

+ +
$ npm install -g babel-cli
+$ mkdir build
+$ babel ./ --out-dir ./build --copy-files --ignore node_modules
+
+ +

Run LndHub

+ +
$ node build/index.js
+
+ +

Check for 'BOOTING UP' 'Listening on port 3000'

+ +

Autostart LndHub

+ +

Setup LndHub to start automatically on system startup. Switch back to the “admin” user or login as “admin”

+ +
$ exit
+
+ +

Edit the system service config for LndHub

+ +
$ sudo nano /etc/systemd/system/lndhub.service
+
+ +
[Unit]
+Description=LndHub Wrapper for Lightning Daemon
+Wants=lnd.service
+After=lnd.service
+
+[Service]
+WorkingDirectory=/home/bitcoin/LndHub
+ExecStart=/usr/local/bin/node build/index.js
+
+User=bitcoin
+Group=bitcoin
+Type=simple
+KillMode=process
+LimitNOFILE=128000
+TimeoutSec=240
+Restart=always
+RestartSec=60
+
+[Install]
+WantedBy=multi-user.target
+
+ +

Start up LndHub via the systemctl

+ +
$ sudo systemctl enable lndhub
+$ sudo systemctl start lndhub
+
+ +

Check the lndhub log file for 'BOOTING UP' 'Listening on port 3000'

+ +
$ sudo journalctl -f -u lndhub
+
+ +

LndHub should now be ready to use in the BlueWallet, but first

+ + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + +
LNDHub on Mac OSX
+ + +
+
+ + +
+
+
+ + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/lndhub-ubuntu/index.html b/_site/docs/lndhub-ubuntu/index.html new file mode 100644 index 0000000..916856b --- /dev/null +++ b/_site/docs/lndhub-ubuntu/index.html @@ -0,0 +1,1258 @@ + + + + + + + + +LNDhub on VPS with Ubuntu | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

LNDhub on VPS with Ubuntu

+ +

Coldcard with Bluewallet - Lightning SD card

+ +
+

To avoid rewriting things already well explained in other tutorials, I leave here a link to set up your Bitcoin&Lightning node on Ubuntu 16.04, if you already have one you can jump to Step 1.\ +You can follow this or other guides as long as LND is the implementation of choice for Lightning, we will apply the necessary changes to configurations files in the next steps. If you are starting from scratch, I suggest to execute this on a VPS, for example a Digital Ocean’s droplet.

+ +

Step 1: Install Redis

+ +

LndHub uses Redis as database, install it with

+ +
$ sudo apt update
+$ sudo apt install redis-server
+
+ +

and edit two important settings in

+ +
$ sudo nano /etc/redis/redis.conf
+
+
+ +

changing the line about supervised from supervised no to supervised systemd

+ +
# If you run Redis from upstart or systemd, Redis can interact with your
+# supervision tree. Options:
+#   supervised no      - no supervision interaction
+#   supervised upstart - signal upstart by putting Redis into SIGSTOP mode
+#   supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
+#   supervised auto    - detect upstart or systemd method based on
+#                        UPSTART_JOB or NOTIFY_SOCKET environment variables
+# Note: these supervision methods only signal "process is ready."
+#       They do not enable continuous liveness pings back to your supervisor.
+supervised systemd
+
+ +

and the line appendonly no to appendonly yes to enable disk persistance.

+ +
# AOF and RDB persistence can be enabled at the same time without problems.
+# If the AOF is enabled on startup Redis will load the AOF, that is the file
+# with the better durability guarantees.
+#
+# Please check http://redis.io/topics/persistence for more information.
+
+appendonly yes
+
+# The name of the append only file (default: "appendonly.aof")
+
+appendfilename "appendonly.aof"
+
+# The fsync() call tells the Operating System to actually write data on disk
+
+ +

Step 2: Redis autostart

+ +

Setup Redis to start automatically after a system restart. Open the file

+ +
$ sudo nano /etc/systemd/system/redis.service
+
+
+ +

and paste the following script inside.

+ +
[Unit]
+Description=Redis In-Memory Data Store
+After=network.target
+
+[Service]
+User=redis
+Group=redis
+ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
+ExecStop=/usr/bin/redis-cli shutdown
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
+
+ +

Now start and enable it with systemctl.

+ +
$ sudo systemctl start redis
+$ sudo systemctl enable redis
+
+ +

Step 3: Bitcoin&LND configuration files

+ +

Since bitcoin.conf and lnd.conf are often topic of discussion, here I paste my files that are currently working with Bitcoin v0.17.1 and LND v0.5.1-beta, except for passwords of course.

+ +
$ sudo nano .bitcoin/bitcoin.conf
+
+
+ +
server=1
+txindex=1
+daemon=1
+externalip=104.248.248.9
+maxconnections=10
+rpcuser=user
+rpcpassword=password
+minrelaytxfee=0.00000000
+incrementalrelayfee=0.00000010
+zmqpubrawblock=tcp://127.0.0.1:28332
+zmqpubrawtx=tcp://127.0.0.1:28333
+rpcport=8332
+
+
+ +
$ sudo nano .lnd/lnd.conf
+
+
+ +
[Application Options]
+; set external IP if not using NAT
+externalip=104.248.248.9
+; set node alias (seen in explorers)
+alias=HIVENLABSLN1
+restlisten=localhost:8080
+
+[Bitcoin]
+bitcoin.active=1
+bitcoin.mainnet=1
+bitcoin.node=bitcoind
+
+[Bitcoind]
+bitcoind.rpcuser=user
+bitcoind.rpcpass=password
+bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332
+bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333
+
+
+ +

Note: external IP field is to be changed according to your VPS IP.

+ +

Step 4: Download and configure LndHub

+ +

You are now ready to get and install LndHub, start copying the github repository with

+ +
$ git clone https://github.com/BlueWallet/LndHub
+
+
+ +

and copy admin.macaroon and tls.cert in root folder of LndHub.

+ +
$ cp .lnd/data/chain/bitcoin/mainnet/admin.macaroon LndHub/
+$ cp .lnd/tls.cert LndHub/
+
+ +

Now you need to set the config file of LndHub. As for bitcoind and lnd I leave you here my version.

+ +
$ sudo nano LndHub/config.js
+
+
+ +
let config = {
+  bitcoind: {
+    rpc: 'http://user:password@127.0.0.1:8332',
+  },
+  redis: {
+    port: 6379,
+    host: '127.0.0.1',
+    family: 4,
+    db: 0,
+  },
+  lnd: {
+    url: '127.0.0.1:10009',
+  },
+};
+
+if (process.env.CONFIG) {
+  console.log('using config from env');
+  config = JSON.parse(process.env.CONFIG);
+}
+
+module.exports = config;
+
+
+ +

Step 5: Install LndHub

+ +

Node is required to install and run LndHub, install it with the following command.

+ +
$ sudo apt install nodejs npm
+
+
+ +

Enter the LndHub folder and install node modules.

+ +
$ cd LndHub
+$ npm install
+
+ +

Compile babeljs

+ +
$ npm install -g babel-cli
+$ mkdir build
+$ babel ./ --out-dir ./build --copy-files --ignore node_modules
+
+ +

and, finally, run it.

+ +
$ node build/index.js 
+
+
+ +

Step 6: LndHub autostart

+ +

Setup LndHub to start automatically after a system restart. Open the file

+ +
$ sudo nano /etc/systemd/system/lndhub.service
+
+
+ +

and paste the following script inside.

+ +
[Unit]
+Description=LndHub Wrapper for Lightning Daemon
+Wants=lnd.service
+After=lnd.service
+
+[Service]
+WorkingDirectory=/LndHub
+ExecStart=/usr/bin/node build/index.js
+
+Type=simple
+KillMode=process
+LimitNOFILE=128000
+TimeoutSec=240
+Restart=always
+RestartSec=60
+
+[Install]
+WantedBy=multi-user.target
+
+ +

Now start and enable it with systemctl.

+ +
$ sudo systemctl enable lndhub
+$ sudo systemctl start lndhub
+
+ +

You should now see the LndHub default page at this address: http://vps-ip-address:3000/

+ +

Step 7: Link Bluewallet to your node

+ +

Open the Bluewallet app on your smartphone, go to settings (top-right corner) -> Lightning Settings and add your node URL http://vps-ip-address:3000/.\ +There is no confirmation message when you click Save at the moment, v3.7.2 on iOS, so don’t worry if you don’t see any feedback. The first test you can do is create a new Lightning wallet and generate an invoice, and if no error is returned, it’s all correctly configured.\ +Your bank is born, let’s take a moment to think about what you achieved here: you can now pay in BTC from your smartphone instantly with Lightning, everywhere in the world, and you can let somebody who trusts you join your node and create their account linked with your hub just downloading an app.

+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + +
Use the Local Trader
+ + +
+
+ + + + +
LNDHub on Mac OSX
+ + +
+
+
+ + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/local-trader/index.html b/_site/docs/local-trader/index.html new file mode 100644 index 0000000..a818511 --- /dev/null +++ b/_site/docs/local-trader/index.html @@ -0,0 +1,927 @@ + + + + + + + + +Use the Local Trader | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Use the Local Trader

+ + + +
+
+
+
+ +
+
+
+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + +
Cobo Vault
+ + +
+
+ + + + +
LNDhub on VPS with Ubuntu
+ + +
+
+
+ + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/manual-entropy/index.html b/_site/docs/manual-entropy/index.html new file mode 100644 index 0000000..04f3e0d --- /dev/null +++ b/_site/docs/manual-entropy/index.html @@ -0,0 +1,832 @@ + + + + + + + + +Adding manual entropy | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Adding manual entropy

+ + + +
+

BlueWallet supports manual entropy.

+ +

To use this feature, go to:

+ +

SettingsGeneral then toggle on Advanced mode.

+ +

Now when you go back to the “add wallet” screen, you will see the option to add manual entropy.

+ +
+ + Add manual entropy +
+ +
+
+ +
+ +

This option is available for both Bitcoin and Lightning wallets.

+ +

You can choose to provide a custom source of entropy for your wallet, either by a coin flip, 6-sided dice roll, or 20-sided dice roll.

+ +

Supported sources of entropy

+ +

6-sided dice roll

+ +
+ + 6-sided dice roll manual entropy +
+ +
+
+ +
+ +

20-sided dice roll

+ +
+ + 20-sided dice roll manual entropy +
+ +
+
+ +
+ +

Coin flip

+ +
+ + Coin flip manual entropy +
+ +
+
+ +
+ +

When you’re done entering your entropy, click “Save” to go back to the “add wallet” screen.

+ +

You should see a note at the bottom of the screen informing you that your saved entropy is being used:

+ +
+ + Manual entropy is used +
+ +
+
+ +
+ +

If you didn’t provide all the 256 bits of entropy, BlueWallet will use the system’s random number generator to obtain the remaining bytes. In that case you’ll see a message like this:

+ +
+ + Incomplete manual entropy +
+ +
+
+ +
+ + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + +
How to recover your wallet
+ + +
+
+ + + + +
Send to many or Batching
+ + +
+
+
+ + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/media/index.html b/_site/docs/media/index.html new file mode 100644 index 0000000..d646dbb --- /dev/null +++ b/_site/docs/media/index.html @@ -0,0 +1,825 @@ + + + + + + + + +Adding media to post and doc content | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Adding media to post and doc content

+ +

Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis.

+ +
+

Adding images

+

To add an image to a post or page use the following codes: +Local image from /uploads/ directory:

+ +
{% include image.html img="girl.jpg" alt="Alt for image" caption="Girl on a rock" %}
+
+ +

External wide image with lightbox:

+ +
{% include image.html img="https://source.unsplash.com/TT-ROxWj9nA.jpg" lightbox="true" alt="Alt for image" caption="Image in lightbox" %}
+
+ +

Uploads folder location can be changed in _config.yml.

+ +

Slideshow

+ +
{% include slideshow.html gallery="slideshow-1" %}
+
+ +

The gallery attribute refers to a folder inside your uploads folder, all images in slideshow-1 folder will be displyed in slideshow. Uploads folder location can be changed in _config.yml.

+ +

Responsive Videos

+

Embed local videos:

+
<video controls playsinline uk-video="automute: true">
+    <source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4" type="video/mp4">
+    <source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.ogv" type="video/ogg">
+</video>
+
+

Embed YouTube videos:

+
<iframe src="http://www.youtube.com/embed/YE7VzlLtp-4?autoplay=0&amp;showinfo=0&amp;rel=0&amp;modestbranding=1&amp;playsinline=1" width="600" height="340" frameborder="0" allowfullscreen uk-responsive uk-video="automute: true"></iframe>
+
+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/multisig-spend/index.html b/_site/docs/multisig-spend/index.html new file mode 100644 index 0000000..b78f02d --- /dev/null +++ b/_site/docs/multisig-spend/index.html @@ -0,0 +1,885 @@ + + + + + + + + +Vaults - spending | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Vaults - spending

+ +

Air gapped offline transactions from a Multisig Vault

+ +
+

BlueWallet’s Bitcoin Multisig wallet Vaults feature. Where 2 BlueWallet apps are signing transactions offline and airgapped.

+ +
+
+ +
+
+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + +
Send to many or Batching
+ + +
+
+ + + + +
Coldcard
+ + +
+
+
+ + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/navigation/index.html b/_site/docs/navigation/index.html new file mode 100644 index 0000000..8b7c63f --- /dev/null +++ b/_site/docs/navigation/index.html @@ -0,0 +1,802 @@ + + + + + + + + +Navigation bar | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Navigation bar

+ +

This document covers the setup and options of theme feature described in the doc title

+ +
+

Set in the main navigation links in _data/navigation_header.yml:

+ +
  - title: About
+    url: /about/
+
+ +

To add a button to navigation use:

+
  - title: Contact
+    url: /contact/
+    button: success
+
+ +

All available buttons:

+
  - title: Changelog
+    url: /contact/
+    button: default
+
+  - title: Contact
+    url: /contact/
+    button: primary
+
+  - title: Changelog
+    url: /contact/
+    button: secondary
+
+  - title: Contact
+    url: /contact/
+    button: danger
+
+  - title: Changelog
+    url: /contact/
+    button: success
+
+  - title: Contact
+    url: /contact/
+    button: warning
+
+  - title: Changelog
+    url: /contact/
+    button: primary-outline
+
+  - title: Contact
+    url: /contact/
+    button: danger-outline
+
+  - title: Changelog
+    url: /contact/
+    button: success-outline
+
+  - title: Contact
+    url: /contact/
+    button: warning-outline
+
+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/pages/index.html b/_site/docs/pages/index.html new file mode 100644 index 0000000..43fde10 --- /dev/null +++ b/_site/docs/pages/index.html @@ -0,0 +1,1036 @@ + + + + + + + + +Updating your billing credit card | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Updating your billing credit card

+ +

Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis.

+ +
+

Sections in this article

+ +

Musce libero nunc, dignissim quis turpis quis, semper vehicula dolor. Suspendisse tincidunt consequat quam, ac posuere leo dapibus id. Cras fringilla convallis elit, at eleifend mi interam.

+ +

Nulla non sollicitudin. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit.

+ +

Image Lightbox Example

+

Nunc porta malesuada porta. Etiam tristique vestibulum dolor at ultricies. Proin hendrerit sapien sed erat fermentum, at commodo velit consectetur.

+ +
+ + Alt for image +
+ +
+
+
Image in lightbox
+
+ +

Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna, et dapibus turpis.

+ +

Example Of Code Block

+

In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;

+ +
<head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <link rel="stylesheet" href="/assets/css/main.css">
+  <link rel="shortcut icon" type="image/png" href="/assets/img/favicon.png" >
+  <script src="/assets/js/main.js"></script>
+</head>
+
+ +

Text and Quote

+

Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis. Phasellus at massa sit amet ante semper fermentum sed eget lectus. Quisque id dictum magna turpis.

+ +
+

Etiam vestibulum risus vel arcu elementum eleifend. Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet

+
+ +

In accumsan lacus ac neque maximus dictum. Phasellus eleifend leo id mattis bibendum. Curabitur et purus turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;

+ +

Etiam in fermentum mi. Sed et tempor felis, eu aliquet nisi. Nam eget ullamcorper arcu. Nunc porttitor nisl a dolor blandit, eget consequat sem maximus. Phasellus lacinia quam porta orci malesuada, vel tincidunt.

+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/posts/index.html b/_site/docs/posts/index.html new file mode 100644 index 0000000..85e5a38 --- /dev/null +++ b/_site/docs/posts/index.html @@ -0,0 +1,1025 @@ + + + + + + + + +Creating your first post in Jekyll | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Creating your first post in Jekyll

+ +

Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis.

+ +
+

To create a new post, you can create a new markdown file inside the _posts directory by following the recommended file naming format:

+
YEAR-MONTH-DAY-title.MARKUP
+
+

Where YEAR is a four-digit number, MONTH and DAY are both two-digit numbers, and MARKUP is the file extension representing the format used in the file. For example, the following are examples of valid post filenames:

+ +
2011-12-31-new-years-eve-is-awesome.md
+2012-09-12-how-to-write-a-blog.md
+
+ +

Post requires front matter, everything in between the first and second — are part of the YAML Front Matter, and everything after the second — will be rendered with Markdown and show up as “Content”. +The following is a post file with different configurations you can add as example:

+ +
---
+layout: post
+title: How To Travel On Low Budget
+---
+
+ +

You can rebuild the site in many different ways, but the most common way is to run bundle exec jekyll serve, which launches a web server and auto-regenerates your site when a file is updated.

+ +

To keep things more organized, add post images to /assets/posts/ directory, and add theme images to /assets/img/ directory.

+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/recover-wallet/index.html b/_site/docs/recover-wallet/index.html new file mode 100644 index 0000000..e2ca453 --- /dev/null +++ b/_site/docs/recover-wallet/index.html @@ -0,0 +1,901 @@ + + + + + + + + +How to recover your wallet | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

How to recover your wallet

+ +

Recover your wallet on external software

+ +
+

BlueWallet provides 12 or 24 word mnemonic seeds for onchain Segwit wallets. These are standard BIP44, BIP49 and BIP84 addresses with the following derivation paths:

+ +

BIP44

+ +
+

m/44'

+
+ +

BIP49

+ +
+

m/49'

+
+ +

BIP84

+ +
+

m/84'/0'/0''

+
+ +

You can use Electrum wallet on desktop (electrum.org) to recover this wallets at any moment.

+ +
    +
  1. Choose Restore wallet.
  2. +
  3. “I already have a seed”
  4. +
  5. Options > bip39
  6. +
  7. Enter seed
  8. +
+ +

+ +

+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + +
+
+
+ + + + +
How to backup/export a wallet
+ + +
+
+ + + + +
Adding manual entropy
+ + +
+
+
+ + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/setup/index.html b/_site/docs/setup/index.html new file mode 100644 index 0000000..241a8f5 --- /dev/null +++ b/_site/docs/setup/index.html @@ -0,0 +1,778 @@ + + + + + + + + +Basic theme setup | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Basic theme setup

+ +

This document covers the setup and options of theme feature described in the doc title

+ +
+

Site and author details

+

Add your site and author details in _config.yml:

+ +
title:              Docs
+description:        Documentation Jekyll theme.
+lang:               en
+
+# Site subpath, e.g. /blog
+baseurl:            ""
+
+# Permalink URLs structure, for permalink style options see: https://jekyllrb.com/docs/permalinks/
+permalink:          /:title/
+
+# Site base hostname & protocol, e.g. http://example.com
+url:                "https://docs.jekyll.plus"
+
+# Site logo # e.g. logo.png, upload logo image file to /uploads/ folder
+logo:      
+
+# Default author settings
+author:
+    name:           Pete Seth
+    title:          Lead Developer  
+    avatar:         avatar-tom.png
+
+ +

Update favicon

+ +

You can find the current favicon (favicon.png) inside the theme /uploads/ directory, just replace it with your new favicon.

+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/sources/index.html b/_site/docs/sources/index.html new file mode 100644 index 0000000..cf6c118 --- /dev/null +++ b/_site/docs/sources/index.html @@ -0,0 +1,998 @@ + + + + + + + + +Sources and credits | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ + + + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/support/index.html b/_site/docs/support/index.html new file mode 100644 index 0000000..8fbe715 --- /dev/null +++ b/_site/docs/support/index.html @@ -0,0 +1,993 @@ + + + + + + + + +Contacting support | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Contacting support

+ +

Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis.

+ +
+

Customer support is provided through our Envato item page contact form for up to six months from the purchase date and is provided Monday to Friday during the business week. We aim to answer all support requests daily, most are handled within 24h.

+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/team/index.html b/_site/docs/team/index.html new file mode 100644 index 0000000..a580cad --- /dev/null +++ b/_site/docs/team/index.html @@ -0,0 +1,800 @@ + + + + + + + + +Team members section | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Team members section

+ +

Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis.

+ +
+

To add the following to a page:

+ +
{% include team.html authors="evan, john, sara, alex, tom, daniel" title="We are here to help" subtitle="Our team is just an email away ready to answer your questions" %}
+
+ +

Specifying authors is optional, if not defined all authors will be displayed form _config.yml file.

+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/toc/index.html b/_site/docs/toc/index.html new file mode 100644 index 0000000..17dc2d4 --- /dev/null +++ b/_site/docs/toc/index.html @@ -0,0 +1,801 @@ + + + + + + + + +Adding table of contents to docs | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Adding table of contents to docs

+ +

Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis.

+ +
+

Add the following code at the top of the post:

+
#### Sections in this article
+{:.no_toc}
+* TOC
+{:toc}
+
+

{:.no_toc} exludes #### Sections in this article title from indexing in table of contents

+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/translation/index.html b/_site/docs/translation/index.html new file mode 100644 index 0000000..f4dadb7 --- /dev/null +++ b/_site/docs/translation/index.html @@ -0,0 +1,989 @@ + + + + + + + + +Translation | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Translation

+ +

Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis.

+ +
+

Set your language code in _config.yml:

+
lang: en
+
+

Theme strings can be translated in _data/translation.yml, copy the current English translation and paste it bellow the Eglish translation, then replace en with you language code that you set in _config.yml and translate the strings.

+ +
en:
+  previous:                   "Previous"
+  next:                       "Next"
+  related_docs:               "Related Docs"
+  related_posts:              "Related Posts"
+  read_more:                  "Read more"
+  written_by:                 "Written by"
+  share_twitter:              "Share on Twitter"
+  share_facebook:             "Share on Facebook"
+  search_placeholder:         "Search for answers"
+  search_no_results:          "No results found"
+  mobile_nav_docs:            "Docs"
+  mobile_nav_site:            "Menu"
+  contact_name:               "Name"
+  contact_email:              "Email"
+  contact_subject:            "Subject"
+  contact_message:            "Message"
+  contact_send:               "Send"
+
+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/docs/videos/index.html b/_site/docs/videos/index.html new file mode 100644 index 0000000..982d0f3 --- /dev/null +++ b/_site/docs/videos/index.html @@ -0,0 +1,813 @@ + + + + + + + + +Video lightbox boxes section | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + + + +
+ +
+ + + +  Documentation + + + +

Video lightbox boxes section

+ +

Cras at dolor eget urna varius faucibus tempus in elit. Cras a dui imperdiet, tempus metus quis, pharetra turpis.

+ +
+

Add videos in _data/videos.yml:

+
- title: Jekyll Introduction
+  desc: Overview of the most popular static generator
+  url: https://youtu.be/T1itpPvFWHI
+
+- title: Creating a post
+  desc: Lean how to publish your first post in Jekyll
+  url: https://youtu.be/gsYqPL9EFwQ
+
+

Video sources can be YouTube, Vimeo or local:

+
video.mp4
+https://www.youtube.com/watch?v=YE7VzlLtp-4
+https://vimeo.com/1084537
+
+ +

Then add the following to a page to display video lightbox boxes:

+ +
{% include videos.html columns="2" title="Video Tutorials" subtitle="Watch screencasts to get you started fast with Jekyll" %}
+
+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/_site/features.html b/_site/features.html new file mode 100644 index 0000000..4aa8313 --- /dev/null +++ b/_site/features.html @@ -0,0 +1,1011 @@ + + + + + + + + +Features - Bitcoin wallet for iOS and Android | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+

Radically Simple 👩‍🎤 Extremely Powerful

+

A freedom and self-sovereign tool, disguised as a cute little Blue app on your pocket

+
+ +
+
+
+
+
+

Multiple Wallets

+

With a multiple wallet architecture to allow maximum flexibility.
BlueWallet aims to support the highest wallet standards. +Besides Bitcoin Wallets, Watch-only, Multisig Vaults and Lightning. Blue can import most wallet standards including Electrum and Bread wallets.

+
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+
+
+

Watch-only

+

Watch-only wallets allows you to keep an eye on your cold storage or paper wallet without touching your private key. Easily import your public address, xpub or ypub and watch it from your app without moving anything.

+
+ +
+ +
+
+
+
+

Multisig Vault

+

The most secure Bitcoin technology. Multisig is like a vault, where multiple keys are needed to spend Bitcoin. +Recommended for cold storage and large amounts.

+
+
+
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+
+
+
+
+ lightning wallet +
+

Lightning Wallets

+

with zero configuration. You can use our hosted Lightning wallets or connect to your own node. Allows you to seamlessly use the Lightning Network, without the need to open channels, be online or operate and mantain a node.

+
+
+
+
+
+ fee estimation +
+

Fee & Transactions control

+

Provides you a fee estimation targeting confirmations in 10m, 3h or 1 day. With real time calculation on how much to spend. Ability to Bump and Cancel sent transactions with "Replace-by-fee" (RBF) or with "Child-pays-for-parent" (CPFP).

+
+
+
+
+
+ +
+
+
+ +
+
+
+
+
+
+ +

Plausible deniability

+

A feature thinking about your personal security. BlueWallet allows you to define a different password which will decrypt a "fake" wallet set up. For any situation where you are forced to disclose your access or for when you don't wantto show your real wallet.

+
+ lightning wallet +
+
+
+
+
+
+
+ +
+
+
+ +
+
+
+
+
+
+ lightning wallet +
+

Notifications

+

We have developed Ground Control. A push notification service for bitcoin wallets that allows you to have mobile and desktop push notifications or to run your own push notification server.

+
+
+
+
+
+ fee estimation +
+

Recover wallets

+

A “magical form” where you can try to import whatever you got. It will do its best to understand the format and import your wallet into your BlueWallet app.

+
+
+
+
+
+ fee estimation +
+

Batch Transactions

+

Send multiple transactions in one batch. This is useful if you more than one transaction and you want to spend less fees. All your transactions will be batched in a single transaction fee, making it less expensive.

+
+
+
+
+
+ +
+
+
+ +
+
+
+

Plus so much more

+
+
+ + +
+
+ +

Payjoin

+ + +

Payjoin or Pay-to-endpoint, it's a feature that allows to break common chain analysis heuristics, where to participants build a transaction together.

+ +
+
+ + +
+
+ +

Plug-in your Bitcoin node

+ + +

Ability to plug-in your own Bitcoin Full node through Electrum Personal Server (EPS), ElectrumX or Electrs. Don't trust, verify for a maximum sovereignty.

+ +
+
+ + +
+
+ +

Offline mode

+ + +

In case you don't have internet connection, BlueWallet will allow you to generate wallets or addresses to be able to receive offline.

+ +
+
+ + +
+
+ +

Custom entropy

+ + +

Ability to manually generate entropy for wallet creation with Coins and Dices. This is an advanced feature, use with caution.

+ +
+
+ + +
+
+ +

Coldcard support

+ + +

Connect to your Coldcard wallet with ease. Support for PSBT and Watch-only wallets. Allows for receiving and sending transactions by signing them offline.

+ +
+
+ + +
+
+ +

CoboVault support

+ + +

Support for Cobo Vault hardware wallet. With one of the first of its kind Air-gapped, PSBT with animated QR codes support.

+ +
+
+ + +
+
+ +

Hardware Wallets

+ + +

Ability to connect and work with Hardware Wallets that support PSBT. After importing your wallet on watch-only mode, go to the wallet options and turn on "hardware wallet" mode.

+ +
+
+ + +
+
+ +

PSBT

+ + +

Support for PSBT - Partially Signed Bitcoin Transactions, BIP 174. Under the hood transactions on BlueWallet are using and constructed by the PSBT standard.

+ +
+
+ + +
+
+ +

Broadcast Transaction

+ + +

Ability to broadcast a transaction that was previsously signed on BlueWallet or elsewhere.

+ +
+
+ + +
+
+ +

Multiple Storage

+ + +

Besides having one storage for all your wallets, you can have multiple encrypted storages, that can be accessed by different passwords. This is useful in case you don't want to have all your wallets in the same storage, or you have other family members or employees accessing or using the app.

+ +
+
+ + +
+
+ +

Full encryption

+ + +

On top of the phone multi-layer encryption, blue wallet can encrypt everything with an added password. Biometric security (touch ID, Face ID) is not safe, so you will have an additional password to encrypt your wallet instead.

+ +
+
+ + +
+
+ +

Your keys (bip39)

+ + +

On your Bitcoin wallet your Private keys (Seed) never leave your device. You can at any moment generate backups and export/import your wallets, with full control of what to do with your private keys.

+ +
+
+ + +
+
+ +

HD wallets

+ + +

The Hierarchical Deterministic (HD) key creation and transfer protocol (BIP32), allows creating child keys from parent keys in a hierarchy. The HD Wallets will generate for you a different address for each transactions.

+ +
+
+ + +
+
+ +

SegWit

+ + +

SegWit supported in P2SH-compatibility mode and bech32 Native mode. Segwit was a massive upgrade to the Bitcoin Protocol released in 2017. You will find all wallets with SegWit enabled by default. Find more about SegWit here.

+ +
+
+ + +
+
+ +

Export TXHEX

+ + +

You can get your transaction HEX (TXHEX) without broadcasting it, and only do it with the relay of your choice.

+ +
+
+ + +
+
+ +

Dark mode

+ + +

BlueWallet is now available in Dark mode for iOS and android.

+ +
+
+ + +
+
+ +

LNurl

+ + +

Support for the LNurl protocol with LNurl-pay and LNurl-withdraw. This features allows you to have an easier interaction with the Lightning Network and services that support LNurl.

+ +
+
+ + +
+
+ +

Marketplace

+ + +

Support for the LNurl protocol with LNurl-pay and LNurl-withdraw. This features allows you to have an easier interaction with the Lightning Network and services that support LNurl.

+ +
+
+ + +
+
+ +

Lightning Browser

+ + +

A Lightning browser supporting the webLN standard to help you use and discover new services.

+ +
+
+ + +
+
+ +

Multi-currency

+ + +

BlueWallet supports more than 30 currencies, including USD, AUD, BRL, CAD, CHF, CZK, CNY, EUR, GDP, HRK, INR, JPY, MXN, MYR, RUB, and more.

+ +
+
+ + +
+
+ +

Open Source

+ + +

BlueWallet is built on a public repo, up-to-date and available on the BlueWallet GitHub. This means that any user can build it and run it on his own, without any custodial dependencies. Verify the code and contribute to the wallet development.

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+
+
+
+
+ +

Multi-language

+

BlueWallet supports more than 30 languages, including Chinese, Japanese, Portuguese, Spanish, Indonesian, Russian, Ukranian, Italian, German, Swedish, Norwegian, French, Danish, Turkish, and more.

+ Join the translation community +
+
+
+
+
+
+
+
+
+ + + + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/index.html b/_site/index.html new file mode 100644 index 0000000..fd86c72 --- /dev/null +++ b/_site/index.html @@ -0,0 +1,1160 @@ + + + + + + + + +BlueWallet - Bitcoin wallet and Lightning wallet for iOS and Android | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+
+

Radically Simple & Powerful Bitcoin Wallet

+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+

Direct download available for android and Desktop

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + + +

What you can do with BlueWallet

+ + +

Besides receiving, sending and storing Bitcoin, you can do a lot more...

+ +
+ + +
+
+ + + + + + + + + download bitcoin wallet for ios + + + +

Watch-only Wallets

+ + +

Easily connect to your hardware wallet and manage your cold storage.

+ +
+
+ + + +
+
+ + + + + + + + + download bitcoin wallet for ios + + + +

Multisig Vaults

+ + +

The best security available on the Bitcoin protocol. Create wallets with multiple keys.

+ +
+
+ + + +
+
+ + + + + + + + + download bitcoin wallet for ios + + + +

Lightning Wallets

+ + +

Unfairly cheap and blazing fast transactions on Bitcoin.

+ +
+
+ + + +
+
+ + + + + + + + + download bitcoin wallet for ios + + + +

Notifications

+ + +

Get notified of all transactions you are sending or receiving.

+ +
+
+ + + +
+
+ + + + + + + + + download bitcoin wallet for ios + + + +

Plausible Deniability

+ + +

Create multiple storages or fake ones in case of a forced disclosure.

+ +
+
+ + + +
+
+ + + + + + + + + download bitcoin wallet for ios + + + +

Transactions control

+ + +

Choose your fees when sending. Easily Bump, Cancel or Batch transactions.

+ +
+
+ + +
+ +
+
+ + + + + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/introducing-local-trader-v5-2-0/index.html b/_site/introducing-local-trader-v5-2-0/index.html new file mode 100644 index 0000000..da257b7 --- /dev/null +++ b/_site/introducing-local-trader-v5-2-0/index.html @@ -0,0 +1,776 @@ + + + + + + + + +Introducing Local Trader — v5.2.0 | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ +

Introducing Local Trader — v5.2.0

+ + + +
+

Version 5.2.0 is out and it introduces some cool new features and a new Product. Let’s take a look shall we.

+ +

Finally we provide support for TLS with ElectrumX (other implementations will be available on the next release) after many requests. Users running Electrum Servers probably know what this means. But essentially more security and privacy for this users using the Bitcoin wallet.

+ +

+ +

Remove password was introduced. It is advise that you encrypt your storage, but many new users that probably don’t need encryption at the beginning, were activating this feature by mistake and with that, having to type a password every time they access the app. Now, if you want to remove this password you can do it easily through the interface.

+ +

Also take in consideration that if you have multiple storages and remove the encryption, these secondary storages will be removed as well.

+ +

+ +

Another Security feature for iOS is also included, where you can define if your storage should be delete or not if you remove the app. Useful if for some reason you just need to delete the app, now you can keep your encrypted storage for a later instal.

+ +

Introducing Local Trader

+ +

As a bonus, this version also includes the release of our new product, that for now we are going to call “Local Trader”.

+ +

Local Trader will be a p2p non-custodial and non-KYC trade platform. It is powered by Hodl Hodl and this is an alpha release with limited features.

+ +

Why is this product relevant? Well, for different reasons.

+ +

Mainly because it will provide mobile, non-KYC, private trades between individuals — which is important now in this world where it is more and more difficult to acquire/trade Bitcoin without attaching or giving away your private information.

+ +

We need more freedom tech and less fin(ance) tech. And we are going in the freedom tech direction. Hope you can join us!

+ +

The first release of Local Trader includes:

+ +
    +
  • Search for offers
  • +
  • Filter by country
  • +
  • Filter by offer type
  • +
  • Filter by payment option
  • +
  • Filter by currency
  • +
+ +

More goodies on this soon! 🤯

+ +
+ +
+ +

Local Trader on BlueWallet

+ +

If you are curious why would we release something with limited features. The goal is to put product out there, get feedback and see which direction this product can take based on what the users have to say. Instead of spending months and months of development in secret like other projects, we like to iterate fast, get feedback faster and let the users define the product. So take a look, try it out and tell us what do you think.

+ +

v5.2.0 Changelog

+ +

New

+
    +
  • Local Trader (v.Alpha, Powered by @hodlhodl)
  • +
  • Support for TLS with ElectrumX (SSL connection)
  • +
  • Remove password (Decrypt/Unmount Storage)
  • +
  • Delete storage or not (iOS)
  • +
  • UAH Local currency
  • +
+ +

Fixed

+
    +
  • Allow use of Today extension on iOS 10
  • +
  • Redesigned General Settings
  • +
  • Electrum (re)connection improvements
  • +
+ +

APK available on GitHub releases as usual. If you don’t have access to the play store this is where you should go.

+ +

https://github.com/BlueWallet/BlueWallet/releases/tag/v5.2.0

+ + + +

Stay safe out there. Backup your keys! 💙

+ +

Keep Building!

+ + +
+ +
+ +
+
+
+ +

v5.0.0 — Coldcard wallet support

+

Olá! 👋

+ +
+ + +
+
+ +

v5.3.5 — SendMax on all wallets

+

Version 5.3.5 of BlueWallet Bitcoin wallet is ou...

+ + +
+
+
+ + +
+

Related Posts

+ + + + + + +
+ + + +
+ + + +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/ixhiazz1ugip8k6gs81f89ph4aopbp.html b/_site/ixhiazz1ugip8k6gs81f89ph4aopbp.html new file mode 100644 index 0000000..4a91351 --- /dev/null +++ b/_site/ixhiazz1ugip8k6gs81f89ph4aopbp.html @@ -0,0 +1 @@ +ixhiazz1ugip8k6gs81f89ph4aopbp \ No newline at end of file diff --git a/_site/jekyll-feed/CODE_OF_CONDUCT.md b/_site/jekyll-feed/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..18b9356 --- /dev/null +++ b/_site/jekyll-feed/CODE_OF_CONDUCT.md @@ -0,0 +1,74 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +nationality, personal appearance, race, religion, or sexual identity and +orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or +advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at nunovc@gmail.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ diff --git a/_site/jekyll-feed/Gemfile b/_site/jekyll-feed/Gemfile new file mode 100644 index 0000000..ae1d4b4 --- /dev/null +++ b/_site/jekyll-feed/Gemfile @@ -0,0 +1,6 @@ +source "https://rubygems.org" + +git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } + +# Specify your gem's dependencies in jekyll-feed.gemspec +gemspec diff --git a/_site/jekyll-feed/LICENSE.txt b/_site/jekyll-feed/LICENSE.txt new file mode 100644 index 0000000..f312017 --- /dev/null +++ b/_site/jekyll-feed/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2019 ncoelho + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/_site/jekyll-feed/README.md b/_site/jekyll-feed/README.md new file mode 100644 index 0000000..f76fbf4 --- /dev/null +++ b/_site/jekyll-feed/README.md @@ -0,0 +1,43 @@ +# Jekyll::Feed + +Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/jekyll/feed`. To experiment with that code, run `bin/console` for an interactive prompt. + +TODO: Delete this and the text above, and describe your gem + +## Installation + +Add this line to your application's Gemfile: + +```ruby +gem 'jekyll-feed' +``` + +And then execute: + + $ bundle + +Or install it yourself as: + + $ gem install jekyll-feed + +## Usage + +TODO: Write usage instructions here + +## Development + +After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment. + +To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org). + +## Contributing + +Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/jekyll-feed. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct. + +## License + +The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT). + +## Code of Conduct + +Everyone interacting in the Jekyll::Feed project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/jekyll-feed/blob/master/CODE_OF_CONDUCT.md). diff --git a/_site/jekyll-feed/Rakefile b/_site/jekyll-feed/Rakefile new file mode 100644 index 0000000..43022f7 --- /dev/null +++ b/_site/jekyll-feed/Rakefile @@ -0,0 +1,2 @@ +require "bundler/gem_tasks" +task :default => :spec diff --git a/_site/jekyll-feed/bin/console b/_site/jekyll-feed/bin/console new file mode 100755 index 0000000..6bebe71 --- /dev/null +++ b/_site/jekyll-feed/bin/console @@ -0,0 +1,14 @@ +#!/usr/bin/env ruby + +require "bundler/setup" +require "jekyll/feed" + +# You can add fixtures and/or initialization code here to make experimenting +# with your gem easier. You can also use a different console, if you like. + +# (If you use this, don't forget to add pry to your Gemfile!) +# require "pry" +# Pry.start + +require "irb" +IRB.start(__FILE__) diff --git a/_site/jekyll-feed/bin/setup b/_site/jekyll-feed/bin/setup new file mode 100755 index 0000000..dce67d8 --- /dev/null +++ b/_site/jekyll-feed/bin/setup @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +set -euo pipefail +IFS=$'\n\t' +set -vx + +bundle install + +# Do any other automated setup that you need to do here diff --git a/_site/jekyll-feed/jekyll-feed.gemspec b/_site/jekyll-feed/jekyll-feed.gemspec new file mode 100644 index 0000000..40276b8 --- /dev/null +++ b/_site/jekyll-feed/jekyll-feed.gemspec @@ -0,0 +1,41 @@ + +lib = File.expand_path("../lib", __FILE__) +$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) +require "jekyll/feed/version" + +Gem::Specification.new do |spec| + spec.name = "jekyll-feed" + spec.version = Jekyll::Feed::VERSION + spec.authors = ["ncoelho"] + spec.email = ["nunovc@gmail.com"] + + spec.summary = %q{TODO: Write a short summary, because RubyGems requires one.} + spec.description = %q{TODO: Write a longer description or delete this line.} + spec.homepage = "TODO: Put your gem's website or public repo URL here." + spec.license = "MIT" + + # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host' + # to allow pushing to a single host or delete this section to allow pushing to any host. + if spec.respond_to?(:metadata) + spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'" + + spec.metadata["homepage_uri"] = spec.homepage + spec.metadata["source_code_uri"] = "TODO: Put your gem's public repo URL here." + spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here." + else + raise "RubyGems 2.0 or newer is required to protect against " \ + "public gem pushes." + end + + # Specify which files should be added to the gem when it is released. + # The `git ls-files -z` loads the files in the RubyGem that have been added into git. + spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do + `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) } + end + spec.bindir = "exe" + spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } + spec.require_paths = ["lib"] + + spec.add_development_dependency "bundler", "~> 1.17" + spec.add_development_dependency "rake", "~> 10.0" +end diff --git a/_site/jekyll-feed/lib/jekyll/feed.rb b/_site/jekyll-feed/lib/jekyll/feed.rb new file mode 100644 index 0000000..9c318f2 --- /dev/null +++ b/_site/jekyll-feed/lib/jekyll/feed.rb @@ -0,0 +1,8 @@ +require "jekyll/feed/version" + +module Jekyll + module Feed + class Error < StandardError; end + # Your code goes here... + end +end diff --git a/_site/jekyll-feed/lib/jekyll/feed/version.rb b/_site/jekyll-feed/lib/jekyll/feed/version.rb new file mode 100644 index 0000000..3ec0a3b --- /dev/null +++ b/_site/jekyll-feed/lib/jekyll/feed/version.rb @@ -0,0 +1,5 @@ +module Jekyll + module Feed + VERSION = "0.1.0" + end +end diff --git a/_site/jekyll-seo-tag/CODE_OF_CONDUCT.md b/_site/jekyll-seo-tag/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..18b9356 --- /dev/null +++ b/_site/jekyll-seo-tag/CODE_OF_CONDUCT.md @@ -0,0 +1,74 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +nationality, personal appearance, race, religion, or sexual identity and +orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or +advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at nunovc@gmail.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ diff --git a/_site/jekyll-seo-tag/Gemfile b/_site/jekyll-seo-tag/Gemfile new file mode 100644 index 0000000..d10ebe6 --- /dev/null +++ b/_site/jekyll-seo-tag/Gemfile @@ -0,0 +1,6 @@ +source "https://rubygems.org" + +git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } + +# Specify your gem's dependencies in jekyll-seo-tag.gemspec +gemspec diff --git a/_site/jekyll-seo-tag/LICENSE.txt b/_site/jekyll-seo-tag/LICENSE.txt new file mode 100644 index 0000000..f312017 --- /dev/null +++ b/_site/jekyll-seo-tag/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2019 ncoelho + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/_site/jekyll-seo-tag/README.md b/_site/jekyll-seo-tag/README.md new file mode 100644 index 0000000..c5d41c2 --- /dev/null +++ b/_site/jekyll-seo-tag/README.md @@ -0,0 +1,43 @@ +# Jekyll::Seo::Tag + +Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/jekyll/seo/tag`. To experiment with that code, run `bin/console` for an interactive prompt. + +TODO: Delete this and the text above, and describe your gem + +## Installation + +Add this line to your application's Gemfile: + +```ruby +gem 'jekyll-seo-tag' +``` + +And then execute: + + $ bundle + +Or install it yourself as: + + $ gem install jekyll-seo-tag + +## Usage + +TODO: Write usage instructions here + +## Development + +After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment. + +To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org). + +## Contributing + +Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/jekyll-seo-tag. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct. + +## License + +The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT). + +## Code of Conduct + +Everyone interacting in the Jekyll::Seo::Tag project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/jekyll-seo-tag/blob/master/CODE_OF_CONDUCT.md). diff --git a/_site/jekyll-seo-tag/Rakefile b/_site/jekyll-seo-tag/Rakefile new file mode 100644 index 0000000..43022f7 --- /dev/null +++ b/_site/jekyll-seo-tag/Rakefile @@ -0,0 +1,2 @@ +require "bundler/gem_tasks" +task :default => :spec diff --git a/_site/jekyll-seo-tag/bin/console b/_site/jekyll-seo-tag/bin/console new file mode 100755 index 0000000..fc808d1 --- /dev/null +++ b/_site/jekyll-seo-tag/bin/console @@ -0,0 +1,14 @@ +#!/usr/bin/env ruby + +require "bundler/setup" +require "jekyll/seo/tag" + +# You can add fixtures and/or initialization code here to make experimenting +# with your gem easier. You can also use a different console, if you like. + +# (If you use this, don't forget to add pry to your Gemfile!) +# require "pry" +# Pry.start + +require "irb" +IRB.start(__FILE__) diff --git a/_site/jekyll-seo-tag/bin/setup b/_site/jekyll-seo-tag/bin/setup new file mode 100755 index 0000000..dce67d8 --- /dev/null +++ b/_site/jekyll-seo-tag/bin/setup @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +set -euo pipefail +IFS=$'\n\t' +set -vx + +bundle install + +# Do any other automated setup that you need to do here diff --git a/_site/jekyll-seo-tag/jekyll-seo-tag.gemspec b/_site/jekyll-seo-tag/jekyll-seo-tag.gemspec new file mode 100644 index 0000000..442b5e9 --- /dev/null +++ b/_site/jekyll-seo-tag/jekyll-seo-tag.gemspec @@ -0,0 +1,41 @@ + +lib = File.expand_path("../lib", __FILE__) +$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) +require "jekyll/seo/tag/version" + +Gem::Specification.new do |spec| + spec.name = "jekyll-seo-tag" + spec.version = Jekyll::Seo::Tag::VERSION + spec.authors = ["ncoelho"] + spec.email = ["nunovc@gmail.com"] + + spec.summary = %q{TODO: Write a short summary, because RubyGems requires one.} + spec.description = %q{TODO: Write a longer description or delete this line.} + spec.homepage = "TODO: Put your gem's website or public repo URL here." + spec.license = "MIT" + + # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host' + # to allow pushing to a single host or delete this section to allow pushing to any host. + if spec.respond_to?(:metadata) + spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'" + + spec.metadata["homepage_uri"] = spec.homepage + spec.metadata["source_code_uri"] = "TODO: Put your gem's public repo URL here." + spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here." + else + raise "RubyGems 2.0 or newer is required to protect against " \ + "public gem pushes." + end + + # Specify which files should be added to the gem when it is released. + # The `git ls-files -z` loads the files in the RubyGem that have been added into git. + spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do + `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) } + end + spec.bindir = "exe" + spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } + spec.require_paths = ["lib"] + + spec.add_development_dependency "bundler", "~> 1.17" + spec.add_development_dependency "rake", "~> 10.0" +end diff --git a/_site/jekyll-seo-tag/lib/jekyll/seo/tag.rb b/_site/jekyll-seo-tag/lib/jekyll/seo/tag.rb new file mode 100644 index 0000000..4d91a4d --- /dev/null +++ b/_site/jekyll-seo-tag/lib/jekyll/seo/tag.rb @@ -0,0 +1,10 @@ +require "jekyll/seo/tag/version" + +module Jekyll + module Seo + module Tag + class Error < StandardError; end + # Your code goes here... + end + end +end diff --git a/_site/jekyll-seo-tag/lib/jekyll/seo/tag/version.rb b/_site/jekyll-seo-tag/lib/jekyll/seo/tag/version.rb new file mode 100644 index 0000000..df2ee10 --- /dev/null +++ b/_site/jekyll-seo-tag/lib/jekyll/seo/tag/version.rb @@ -0,0 +1,7 @@ +module Jekyll + module Seo + module Tag + VERSION = "0.1.0" + end + end +end diff --git a/_site/lightning.html b/_site/lightning.html new file mode 100644 index 0000000..c9cda91 --- /dev/null +++ b/_site/lightning.html @@ -0,0 +1,654 @@ + + + + + + + + +Lightning Wallet - Bitcoin wallet for iOS and Android | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+

Lightning Wallet

+

with zero configuration

+

You can use our hosted Lightning wallets or connect to your own node. Allows you to seamlessly use the Lightning Network, without the need to open channels, be online or operate and mantain a node. Our goal is to remove friction and provide a great user experience.

+
+ lightning wallet bitcoin +
+
+
+ +
+
+

Features

+
+
+
+

Refill

+

Allows you to refill your Lightning wallet with Bitcoin. It needs 3 confirmations to validate.

+
+
+
+
+

Send

+

Make payments after scanning a QR code or through an invoice.

+
+
+
+
+

Receive

+

Receive instant payments. Generate invoices that can be easily shared.

+
+
+
+
+

LNurl new

+

Allows you to have an easier interaction with services that support LNurl. Pay and Withdraw.

+
+
+
+
+

Marketplace

+

Access and Explore Lightning ready services and start participating on the new layer for payments.

+
+
+
+
+

Browser

+

Directly access your favourite lightning ready apps from our browser.

+
+
+
+
+
+ +
+
+

How to start

+
+
+
+ 1 +

Create a Lightning Wallet

+

Once you have created your Lightning Wallet, you will find the option "manage funds" inside your wallet. This is where you can refill new Wallet.

+
+
+
+
+ 2 +

Send an on-chain Transaction

+

Choose your favourite refill option and send a transaction with the desired amount. Keep the amount low, Lightning is experimental.

+
+
+
+
+ 3 +

Start using Lightning

+

Once you send your transaction, it will require 3 comfirmations before your balance appears on your Lightning wallet. Welcome to Lighting.

+
+
+
+
+
+ + + + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/lndhub.html b/_site/lndhub.html new file mode 100644 index 0000000..08a2a9d --- /dev/null +++ b/_site/lndhub.html @@ -0,0 +1,603 @@ + + + + + + + + +LndHUB - A Lightning Hub for Service providers. | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+
+
+
+
+ lndhub bluewallet lightning +
+
+
+
+

A Lightning Hub

+

A free and open source, multiple account plugin for Lightning built on top of the Lightning Network Deamon. It allows that a group of users run different accounts with only one node in a trust-minimized setup.

+

Ideal for hosted shared services or groups, families and friends that want to share their own node.

+ +
+ Star +
+
+ +
+
+

How does it work

+ lndhub bluewallet lightning +
+

The user sends a transaction to a dedicated top-up address, and this balance is added to his account on LNDhub. Then, the user can use this balance to pay Lightning invoices. But under the hood, it’s actually LNDhub who pays the invoice, deducting user’s account balance. It works the same way when the user wants to receive a Lightning payment - it’s LNDhub who creates the Lightning invoice and actually receives coins on one of it’s channels.

+
+
+
+ + + + + + + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/local-trader.html b/_site/local-trader.html new file mode 100644 index 0000000..215200b --- /dev/null +++ b/_site/local-trader.html @@ -0,0 +1,648 @@ + + + + + + + + +Local Trader - p2p Bitcoin trading for iOS and Android by BlueWallet | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+

Local Trader

+

Buy Bitcoin p2p while controlling your funds

+
+ p2p local trader bitcoin +
+
+
+ +
+
+

Highlights

+
+
+
+

Buy Bitcoin

+

Accept offers from sellers and buy directly from fellow users.

+
+
+
+
+

Search offers

+

You can search by location, payment method, currency and offer type.

+
+
+
+
+

Manage contracts

+

Once an offer is accepted a “contract” is created and can be viewed in the app.

+
+
+
+
+
+ +
+
+

How it works

+
+
+
+ p2p local trader bitcoin +

Step 1 - Accept an offer and a secure multisig escrow contract is created

+
+
+
+
+

Step 2 - Seller deposits Bitcoin in the escrow directly from their wallet

+ p2p local trader bitcoin +
+
+
+
+ p2p local trader bitcoin +

Step 3 - Buyer pays the seller according to the agreed upon payment method

+
+
+
+
+

Step 4 - Seller releases Bitcoin from multisig escrow directly to the buyer’s wallet

+ p2p local trader bitcoin + +
+
+
+
+
+ +
+
+

Local Trader Demo

+
+ +
+
+
+ + + + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/marketplace-btc/img/binance.png b/_site/marketplace-btc/img/binance.png new file mode 100644 index 0000000..4bef785 Binary files /dev/null and b/_site/marketplace-btc/img/binance.png differ diff --git a/_site/marketplace-btc/img/bitcoinatm.png b/_site/marketplace-btc/img/bitcoinatm.png new file mode 100644 index 0000000..66afb6a Binary files /dev/null and b/_site/marketplace-btc/img/bitcoinatm.png differ diff --git a/_site/marketplace-btc/img/bitmedia.png b/_site/marketplace-btc/img/bitmedia.png new file mode 100644 index 0000000..45139e0 Binary files /dev/null and b/_site/marketplace-btc/img/bitmedia.png differ diff --git a/_site/marketplace-btc/img/bitrefill.png b/_site/marketplace-btc/img/bitrefill.png new file mode 100644 index 0000000..6779bc0 Binary files /dev/null and b/_site/marketplace-btc/img/bitrefill.png differ diff --git a/_site/marketplace-btc/img/buybitcoin.png b/_site/marketplace-btc/img/buybitcoin.png new file mode 100644 index 0000000..6cf2def Binary files /dev/null and b/_site/marketplace-btc/img/buybitcoin.png differ diff --git a/_site/marketplace-btc/img/changenow.png b/_site/marketplace-btc/img/changenow.png new file mode 100644 index 0000000..686449e Binary files /dev/null and b/_site/marketplace-btc/img/changenow.png differ diff --git a/_site/marketplace-btc/img/highlight.png b/_site/marketplace-btc/img/highlight.png new file mode 100644 index 0000000..fddeb9b Binary files /dev/null and b/_site/marketplace-btc/img/highlight.png differ diff --git a/_site/marketplace-btc/img/hodlhodl.png b/_site/marketplace-btc/img/hodlhodl.png new file mode 100644 index 0000000..dc95c2e Binary files /dev/null and b/_site/marketplace-btc/img/hodlhodl.png differ diff --git a/_site/marketplace-btc/img/travala.png b/_site/marketplace-btc/img/travala.png new file mode 100644 index 0000000..14eb388 Binary files /dev/null and b/_site/marketplace-btc/img/travala.png differ diff --git a/_site/marketplace-btc/img/travelbit.png b/_site/marketplace-btc/img/travelbit.png new file mode 100644 index 0000000..a1a646e Binary files /dev/null and b/_site/marketplace-btc/img/travelbit.png differ diff --git a/_site/marketplace-btc/img/trezor.png b/_site/marketplace-btc/img/trezor.png new file mode 100644 index 0000000..27baf1a Binary files /dev/null and b/_site/marketplace-btc/img/trezor.png differ diff --git a/_site/marketplace-btc/img/wikileaks.png b/_site/marketplace-btc/img/wikileaks.png new file mode 100644 index 0000000..b81d5e6 Binary files /dev/null and b/_site/marketplace-btc/img/wikileaks.png differ diff --git a/_site/marketplace-btc/img/wikipedia.png b/_site/marketplace-btc/img/wikipedia.png new file mode 100644 index 0000000..329d239 Binary files /dev/null and b/_site/marketplace-btc/img/wikipedia.png differ diff --git a/_site/marketplace-btc/img/xsats.png b/_site/marketplace-btc/img/xsats.png new file mode 100644 index 0000000..b9c7ce0 Binary files /dev/null and b/_site/marketplace-btc/img/xsats.png differ diff --git a/_site/marketplace-btc/index.html b/_site/marketplace-btc/index.html new file mode 100644 index 0000000..732f672 --- /dev/null +++ b/_site/marketplace-btc/index.html @@ -0,0 +1,283 @@ + + + + + + + + + + + + + + + + + + + + +
+ +
+

Bitcoin

+
+ + + + + + + + + + + + +
+

Commerce

+
+ + + + + +
+

Services

+
+ + + + + + + + + + + + + + + + +
+

Donate to a good cause

+
+ + + + + + + + + + + + + +
+

Security

+
+ + + + + + +
+ + + + + diff --git a/_site/marketplace-btc/marketplace.css b/_site/marketplace-btc/marketplace.css new file mode 100644 index 0000000..a36bdd2 --- /dev/null +++ b/_site/marketplace-btc/marketplace.css @@ -0,0 +1,98 @@ +body { + margin: 0; + font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #0C2550; + text-align: left; + background: #fff; +} +a { + text-decoration: none +} +.section { + margin: 24px 16px 0px 16px; +} +.section.first { + margin-top: 0px; +} +.section h3 { + margin: 0px; + font-size: 16px; +} +.grid-container { + display: grid; + grid-template-columns: 48px 1fr; + grid-template-rows: 1fr; + grid-template-areas: "appicon apptext"; + padding: 16px 0; + margin: 0 16px; + border-bottom: 1px solid #EEF0F4; +} +.grid-container.tippin{ + border-bottom: 0px solid transparent; +} +.appicon { + grid-area: appicon; +} +.apptext { + grid-area: apptext; + padding: 0 0 0 8px; + position: relative; +} +.apptext h2 { + color: #0C2550; + font-size: 20px; + font-weight: 500; + margin: 0; +} +.apptext p { + color: #9AA0AA; + font-size: 12px; + margin: 0px; +} +.appicon img { + width: 48px; +} +.highlight { + background: url(img/highlight.png) no-repeat center; + height: 228px; + background-size: cover; + margin: 16px 16px 24px 16px; + border-radius: 12px; + position: relative; +} +.highlight .content { + background: rgba(0,0,0,.5); + border-radius: 6px; + margin: 0 16px 16px; + position: absolute; + bottom: 0px; + left: 0px; + right: 0px; + display: block; + padding: 12px 16px; +} +.highlight .content h2 { + color: #fff; + font-size: 18px; + margin: 0px; + padding: 0px; +} +.highlight .content p{ + color: #fff; + font-size: 14px; + margin: 0px; + padding: 0px; +} +.new { + width: 12px; + height: 12px; + background: #68BBE1; + border-radius: 50%; + display: block; + position: absolute; + right: 0; + top: 10px; +} \ No newline at end of file diff --git a/_site/marketplace/img/21shirt.png b/_site/marketplace/img/21shirt.png new file mode 100644 index 0000000..58fc599 Binary files /dev/null and b/_site/marketplace/img/21shirt.png differ diff --git a/_site/marketplace/img/agar.png b/_site/marketplace/img/agar.png new file mode 100644 index 0000000..29ae98b Binary files /dev/null and b/_site/marketplace/img/agar.png differ diff --git a/_site/marketplace/img/beltine.png b/_site/marketplace/img/beltine.png new file mode 100644 index 0000000..97e9126 Binary files /dev/null and b/_site/marketplace/img/beltine.png differ diff --git a/_site/marketplace/img/bitcoin2019.png b/_site/marketplace/img/bitcoin2019.png new file mode 100644 index 0000000..0ddf003 Binary files /dev/null and b/_site/marketplace/img/bitcoin2019.png differ diff --git a/_site/marketplace/img/bitcoinshirt.png b/_site/marketplace/img/bitcoinshirt.png new file mode 100644 index 0000000..68df006 Binary files /dev/null and b/_site/marketplace/img/bitcoinshirt.png differ diff --git a/_site/marketplace/img/bitlaunch.png b/_site/marketplace/img/bitlaunch.png new file mode 100644 index 0000000..748dd02 Binary files /dev/null and b/_site/marketplace/img/bitlaunch.png differ diff --git a/_site/marketplace/img/bitrefill.png b/_site/marketplace/img/bitrefill.png new file mode 100644 index 0000000..6779bc0 Binary files /dev/null and b/_site/marketplace/img/bitrefill.png differ diff --git a/_site/marketplace/img/blockstream.png b/_site/marketplace/img/blockstream.png new file mode 100644 index 0000000..9d65ba4 Binary files /dev/null and b/_site/marketplace/img/blockstream.png differ diff --git a/_site/marketplace/img/boltathon.png b/_site/marketplace/img/boltathon.png new file mode 100644 index 0000000..4159aa2 Binary files /dev/null and b/_site/marketplace/img/boltathon.png differ diff --git a/_site/marketplace/img/brekkie.png b/_site/marketplace/img/brekkie.png new file mode 100644 index 0000000..62afcc5 Binary files /dev/null and b/_site/marketplace/img/brekkie.png differ diff --git a/_site/marketplace/img/chess.png b/_site/marketplace/img/chess.png new file mode 100644 index 0000000..c28bf53 Binary files /dev/null and b/_site/marketplace/img/chess.png differ diff --git a/_site/marketplace/img/chromatic.png b/_site/marketplace/img/chromatic.png new file mode 100644 index 0000000..5f68754 Binary files /dev/null and b/_site/marketplace/img/chromatic.png differ diff --git a/_site/marketplace/img/cmasc.png b/_site/marketplace/img/cmasc.png new file mode 100644 index 0000000..e3a0a97 Binary files /dev/null and b/_site/marketplace/img/cmasc.png differ diff --git a/_site/marketplace/img/excellion.png b/_site/marketplace/img/excellion.png new file mode 100644 index 0000000..dc27319 Binary files /dev/null and b/_site/marketplace/img/excellion.png differ diff --git a/_site/marketplace/img/fixedfloat.png b/_site/marketplace/img/fixedfloat.png new file mode 100644 index 0000000..0d821cd Binary files /dev/null and b/_site/marketplace/img/fixedfloat.png differ diff --git a/_site/marketplace/img/hangarsix.png b/_site/marketplace/img/hangarsix.png new file mode 100644 index 0000000..be4f14f Binary files /dev/null and b/_site/marketplace/img/hangarsix.png differ diff --git a/_site/marketplace/img/highlight.png b/_site/marketplace/img/highlight.png new file mode 100644 index 0000000..fddeb9b Binary files /dev/null and b/_site/marketplace/img/highlight.png differ diff --git a/_site/marketplace/img/hodlhodl.png b/_site/marketplace/img/hodlhodl.png new file mode 100644 index 0000000..dc95c2e Binary files /dev/null and b/_site/marketplace/img/hodlhodl.png differ diff --git a/_site/marketplace/img/holdcat.png b/_site/marketplace/img/holdcat.png new file mode 100644 index 0000000..cbe314d Binary files /dev/null and b/_site/marketplace/img/holdcat.png differ diff --git a/_site/marketplace/img/kaffe.png b/_site/marketplace/img/kaffe.png new file mode 100644 index 0000000..fe16273 Binary files /dev/null and b/_site/marketplace/img/kaffe.png differ diff --git a/_site/marketplace/img/lancer.png b/_site/marketplace/img/lancer.png new file mode 100644 index 0000000..0e849f7 Binary files /dev/null and b/_site/marketplace/img/lancer.png differ diff --git a/_site/marketplace/img/layerone.png b/_site/marketplace/img/layerone.png new file mode 100644 index 0000000..df0b490 Binary files /dev/null and b/_site/marketplace/img/layerone.png differ diff --git a/_site/marketplace/img/lndlife.png b/_site/marketplace/img/lndlife.png new file mode 100644 index 0000000..0d6d2eb Binary files /dev/null and b/_site/marketplace/img/lndlife.png differ diff --git a/_site/marketplace/img/lnduel.png b/_site/marketplace/img/lnduel.png new file mode 100644 index 0000000..fa8cf54 Binary files /dev/null and b/_site/marketplace/img/lnduel.png differ diff --git a/_site/marketplace/img/lngames.png b/_site/marketplace/img/lngames.png new file mode 100644 index 0000000..f5c20c0 Binary files /dev/null and b/_site/marketplace/img/lngames.png differ diff --git a/_site/marketplace/img/lnhunt.png b/_site/marketplace/img/lnhunt.png new file mode 100644 index 0000000..f54973e Binary files /dev/null and b/_site/marketplace/img/lnhunt.png differ diff --git a/img/lnm.png b/_site/marketplace/img/lnm.png similarity index 100% rename from img/lnm.png rename to _site/marketplace/img/lnm.png diff --git a/_site/marketplace/img/lnpizza.png b/_site/marketplace/img/lnpizza.png new file mode 100644 index 0000000..852cc87 Binary files /dev/null and b/_site/marketplace/img/lnpizza.png differ diff --git a/_site/marketplace/img/lnsms.png b/_site/marketplace/img/lnsms.png new file mode 100644 index 0000000..176bc39 Binary files /dev/null and b/_site/marketplace/img/lnsms.png differ diff --git a/_site/marketplace/img/lnstores.png b/_site/marketplace/img/lnstores.png new file mode 100644 index 0000000..94d1469 Binary files /dev/null and b/_site/marketplace/img/lnstores.png differ diff --git a/_site/marketplace/img/lroulette.png b/_site/marketplace/img/lroulette.png new file mode 100644 index 0000000..3888fa3 Binary files /dev/null and b/_site/marketplace/img/lroulette.png differ diff --git a/_site/marketplace/img/lspin.png b/_site/marketplace/img/lspin.png new file mode 100644 index 0000000..1678b7a Binary files /dev/null and b/_site/marketplace/img/lspin.png differ diff --git a/_site/marketplace/img/memory.png b/_site/marketplace/img/memory.png new file mode 100644 index 0000000..fccc191 Binary files /dev/null and b/_site/marketplace/img/memory.png differ diff --git a/_site/marketplace/img/microbet.png b/_site/marketplace/img/microbet.png new file mode 100644 index 0000000..c7b3af8 Binary files /dev/null and b/_site/marketplace/img/microbet.png differ diff --git a/_site/marketplace/img/miniroulette.png b/_site/marketplace/img/miniroulette.png new file mode 100644 index 0000000..80563d0 Binary files /dev/null and b/_site/marketplace/img/miniroulette.png differ diff --git a/_site/marketplace/img/moonstuff.png b/_site/marketplace/img/moonstuff.png new file mode 100644 index 0000000..2e63a9c Binary files /dev/null and b/_site/marketplace/img/moonstuff.png differ diff --git a/_site/marketplace/img/nakamoto.png b/_site/marketplace/img/nakamoto.png new file mode 100644 index 0000000..52bc113 Binary files /dev/null and b/_site/marketplace/img/nakamoto.png differ diff --git a/_site/marketplace/img/niffler.png b/_site/marketplace/img/niffler.png new file mode 100644 index 0000000..09c60b0 Binary files /dev/null and b/_site/marketplace/img/niffler.png differ diff --git a/_site/marketplace/img/paywall.png b/_site/marketplace/img/paywall.png new file mode 100644 index 0000000..4988e70 Binary files /dev/null and b/_site/marketplace/img/paywall.png differ diff --git a/_site/marketplace/img/placeholder.png b/_site/marketplace/img/placeholder.png new file mode 100644 index 0000000..12be7ab Binary files /dev/null and b/_site/marketplace/img/placeholder.png differ diff --git a/_site/marketplace/img/poker.png b/_site/marketplace/img/poker.png new file mode 100644 index 0000000..46ef629 Binary files /dev/null and b/_site/marketplace/img/poker.png differ diff --git a/_site/marketplace/img/pollo.png b/_site/marketplace/img/pollo.png new file mode 100644 index 0000000..ff35af5 Binary files /dev/null and b/_site/marketplace/img/pollo.png differ diff --git a/_site/marketplace/img/qabitcoin.png b/_site/marketplace/img/qabitcoin.png new file mode 100644 index 0000000..a93c19c Binary files /dev/null and b/_site/marketplace/img/qabitcoin.png differ diff --git a/_site/marketplace/img/receivesms.png b/_site/marketplace/img/receivesms.png new file mode 100644 index 0000000..8be9108 Binary files /dev/null and b/_site/marketplace/img/receivesms.png differ diff --git a/_site/marketplace/img/sat2.png b/_site/marketplace/img/sat2.png new file mode 100644 index 0000000..9f7ec01 Binary files /dev/null and b/_site/marketplace/img/sat2.png differ diff --git a/_site/marketplace/img/satoshisgames.png b/_site/marketplace/img/satoshisgames.png new file mode 100644 index 0000000..85d020c Binary files /dev/null and b/_site/marketplace/img/satoshisgames.png differ diff --git a/_site/marketplace/img/satoshisplace.png b/_site/marketplace/img/satoshisplace.png new file mode 100644 index 0000000..687ae5c Binary files /dev/null and b/_site/marketplace/img/satoshisplace.png differ diff --git a/_site/marketplace/img/satoshisworld.png b/_site/marketplace/img/satoshisworld.png new file mode 100644 index 0000000..154c26f Binary files /dev/null and b/_site/marketplace/img/satoshisworld.png differ diff --git a/_site/marketplace/img/spaceinvaders.png b/_site/marketplace/img/spaceinvaders.png new file mode 100644 index 0000000..e58c8d5 Binary files /dev/null and b/_site/marketplace/img/spaceinvaders.png differ diff --git a/_site/marketplace/img/spendl.png b/_site/marketplace/img/spendl.png new file mode 100644 index 0000000..f74dc6b Binary files /dev/null and b/_site/marketplace/img/spendl.png differ diff --git a/_site/marketplace/img/tallycoin.png b/_site/marketplace/img/tallycoin.png new file mode 100644 index 0000000..ab06a37 Binary files /dev/null and b/_site/marketplace/img/tallycoin.png differ diff --git a/_site/marketplace/img/tippin.png b/_site/marketplace/img/tippin.png new file mode 100644 index 0000000..a7a252c Binary files /dev/null and b/_site/marketplace/img/tippin.png differ diff --git a/_site/marketplace/img/torguard.png b/_site/marketplace/img/torguard.png new file mode 100644 index 0000000..f1d3974 Binary files /dev/null and b/_site/marketplace/img/torguard.png differ diff --git a/_site/marketplace/img/tunnels.png b/_site/marketplace/img/tunnels.png new file mode 100644 index 0000000..2925101 Binary files /dev/null and b/_site/marketplace/img/tunnels.png differ diff --git a/_site/marketplace/img/vape.png b/_site/marketplace/img/vape.png new file mode 100644 index 0000000..e572f18 Binary files /dev/null and b/_site/marketplace/img/vape.png differ diff --git a/_site/marketplace/img/wears.png b/_site/marketplace/img/wears.png new file mode 100644 index 0000000..090439e Binary files /dev/null and b/_site/marketplace/img/wears.png differ diff --git a/_site/marketplace/img/yalls.png b/_site/marketplace/img/yalls.png new file mode 100644 index 0000000..c4c8125 Binary files /dev/null and b/_site/marketplace/img/yalls.png differ diff --git a/_site/marketplace/img/zigzag.png b/_site/marketplace/img/zigzag.png new file mode 100644 index 0000000..627c7dd Binary files /dev/null and b/_site/marketplace/img/zigzag.png differ diff --git a/_site/marketplace/index.html b/_site/marketplace/index.html new file mode 100644 index 0000000..508d89d --- /dev/null +++ b/_site/marketplace/index.html @@ -0,0 +1,623 @@ + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+

Services

+
+ + + + + + + + + + + + + + + + + + +
+

Games

+
+ + + + + + + + + + + +
+

Social

+
+ + + + + + + + +
+

Merchandising

+
+ + + + + + + + + + + + +
+

Books

+
+ + +
+

Miscellaneous

+
+ + + + + + + + + + +
+ + diff --git a/_site/marketplace/marketplace.css b/_site/marketplace/marketplace.css new file mode 100644 index 0000000..a36bdd2 --- /dev/null +++ b/_site/marketplace/marketplace.css @@ -0,0 +1,98 @@ +body { + margin: 0; + font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #0C2550; + text-align: left; + background: #fff; +} +a { + text-decoration: none +} +.section { + margin: 24px 16px 0px 16px; +} +.section.first { + margin-top: 0px; +} +.section h3 { + margin: 0px; + font-size: 16px; +} +.grid-container { + display: grid; + grid-template-columns: 48px 1fr; + grid-template-rows: 1fr; + grid-template-areas: "appicon apptext"; + padding: 16px 0; + margin: 0 16px; + border-bottom: 1px solid #EEF0F4; +} +.grid-container.tippin{ + border-bottom: 0px solid transparent; +} +.appicon { + grid-area: appicon; +} +.apptext { + grid-area: apptext; + padding: 0 0 0 8px; + position: relative; +} +.apptext h2 { + color: #0C2550; + font-size: 20px; + font-weight: 500; + margin: 0; +} +.apptext p { + color: #9AA0AA; + font-size: 12px; + margin: 0px; +} +.appicon img { + width: 48px; +} +.highlight { + background: url(img/highlight.png) no-repeat center; + height: 228px; + background-size: cover; + margin: 16px 16px 24px 16px; + border-radius: 12px; + position: relative; +} +.highlight .content { + background: rgba(0,0,0,.5); + border-radius: 6px; + margin: 0 16px 16px; + position: absolute; + bottom: 0px; + left: 0px; + right: 0px; + display: block; + padding: 12px 16px; +} +.highlight .content h2 { + color: #fff; + font-size: 18px; + margin: 0px; + padding: 0px; +} +.highlight .content p{ + color: #fff; + font-size: 14px; + margin: 0px; + padding: 0px; +} +.new { + width: 12px; + height: 12px; + background: #68BBE1; + border-radius: 50%; + display: block; + position: absolute; + right: 0; + top: 10px; +} \ No newline at end of file diff --git a/_site/multisig-wallet.html b/_site/multisig-wallet.html new file mode 100644 index 0000000..e794725 --- /dev/null +++ b/_site/multisig-wallet.html @@ -0,0 +1,690 @@ + + + + + + + + +Multisig Vault - Most secure for large amounts Bitcoin wallet for iOS and Android | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+

Multisig Vault

+

The most secure Bitcoin technology. Multisig is like a vault, where multiple keys are needed to spend Bitcoin.
Recommended for cold storage and large amounts.

+
+ download bitcoin wallet for desktop +
+
+
+ +
+
+

Highlights

+
+
+
+

Easy Creation

+

Total flexibility to choose the number os keys and address types.

+
+
+
+
+

Powerful Import

+

Easily import or recover any setup. Compatible with most wallets.

+
+
+
+
+

Backup Keys

+

Safely backup your signing keys simultaneously with all pubkeys.

+
+
+
+
+

Backup Watch-only

+

Easily backup and spread your coordination setup (pubkeys) for better protection.

+
+
+
+
+

Air Gapped

+

Support for PSBTs and QR codes for maximum security.

+
+
+
+
+

Edit Setup 🔥

+

Easily change your setup to allow key rotation or fast signing for emergency situations.

+
+
+
+
+
+ +
+
+

The only thing between having a bitcoin and losing a bitcoin is one mistake. Multisig provides you with additional protection making it exceptionally challenging to "overcome".

+
+
+ +
+
+

Why use a Vault

+

Provides better protection or safety on...

+
+
+
+

Phishing attacks

+
+
+
+
+

On and Offline Thievery

+
+
+
+
+

Malware infection

+
+
+
+
+

Supply chain attacks

+
+
+
+
+ +

An evil-maid attack

+
+
+
+
+

Key loss

+
+
+
+
+

Device loss

+
+
+
+
+

Device malfunction

+
+
+
+
+
+ +
+
+

Multisig Demo

+

In this demo of the Multisig Vaults you can see 2 BlueWallet apps signing transactions offline and airgapped.

+
+ +
+
+
+ + + + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/package-lock.json b/_site/package-lock.json new file mode 100644 index 0000000..48e341a --- /dev/null +++ b/_site/package-lock.json @@ -0,0 +1,3 @@ +{ + "lockfileVersion": 1 +} diff --git a/_site/privacy.txt b/_site/privacy.txt new file mode 100644 index 0000000..bd85546 --- /dev/null +++ b/_site/privacy.txt @@ -0,0 +1,97 @@ +BlueWallet Services Privacy Policy + +This privacy policy has been compiled to better serve those who are concerned with how their 'Personally Identifiable Information' (PII) is being used online. PII, as described in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website. + +What personal information do we collect from the people that visit our blog, website or app? + +We do not collect information from visitors of our site. +or other details to help you with your experience. + +When do we collect information? + +We collect information from you when you or enter information on our site. + + +How do we use your information? + +We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways: + + +How do we protect your information? + +We do not use vulnerability scanning and/or scanning to PCI standards. +We only provide articles and information. We never ask for credit card numbers. +We do not use Malware Scanning. + +We do not use an SSL certificate + • We only provide articles and information. We never ask for personal or private information like names, email addresses, or credit card numbers. + +Do we use 'cookies'? + +We do not use cookies for tracking purposes + +You can choose to have your computer warn you each time a cookie is being sent, or you can choose to turn off all cookies. You do this through your browser settings. Since browser is a little different, look at your browser's Help Menu to learn the correct way to modify your cookies. + +If you turn cookies off, Some of the features that make your site experience more efficient may not function properly.that make your site experience more efficient and may not function properly. + + +Third-party disclosure + +We do not sell, trade, or otherwise transfer to outside parties your Personally Identifiable Information. + +Creators of BlueWallet never received any inquiries from NSA, FBI, FSB or any other government institution. + +Nor NSA nor any other government institution was ever granted access to BlueWallet's end users data. + +Nor NSA nor any other government institution was ever granted permission to install backdoor or other potentially malicious code +in any part of BlueWallet's software. + +Third-party links + +We do not include or offer third-party products or services on our website. + +Google + +Google's advertising requirements can be summed up by Google's Advertising Principles. They are put in place to provide a positive experience for users. https://support.google.com/adwordspolicy/answer/1316548?hl=en + +We have not enabled Google AdSense on our site but we may do so in the future. +none + +COPPA (Children Online Privacy Protection Act) + +When it comes to the collection of personal information from children under the age of 13 years old, the Children's Online Privacy Protection Act (COPPA) puts parents in control. The Federal Trade Commission, United States' consumer protection agency, enforces the COPPA Rule, which spells out what operators of websites and online services must do to protect children's privacy and safety online. + +We do not specifically market to children under the age of 13 years old. +Do we let third-parties, including ad networks or plug-ins collect PII from children under 13? + +Fair Information Practices + +The Fair Information Practices Principles form the backbone of privacy law in the United States and the concepts they include have played a significant role in the development of data protection laws around the globe. Understanding the Fair Information Practice Principles and how they should be implemented is critical to comply with the various privacy laws that protect personal information. + +In order to be in line with Fair Information Practices we will take the following responsive action, should a data breach occur: +We will notify the users via in-site notification + • Within 7 business days + +We also agree to the Individual Redress Principle which requires that individuals have the right to legally pursue enforceable rights against data collectors and processors who fail to adhere to the law. This principle requires not only that individuals have enforceable rights against data users, but also that individuals have recourse to courts or government agencies to investigate and/or prosecute non-compliance by data processors. + +CAN SPAM Act + +The CAN-SPAM Act is a law that sets the rules for commercial email, establishes requirements for commercial messages, gives recipients the right to have emails stopped from being sent to them, and spells out tough penalties for violations. + +We collect your email address in order to: + +To be in accordance with CANSPAM, we agree to the following: + +If at any time you would like to unsubscribe from receiving future emails, you can email us at +bluewallet@bluewallet.io and we will promptly remove you from ALL correspondence. + +Contacting Us + +If there are any questions regarding this privacy policy, you may contact us using the information below. + +http://bluewallet.io +Calle Beller 51 +Puerto Plata, 57000 +Republica Dominicana + +Last Edited on 2019-10-16 diff --git a/_site/privacy/index.html b/_site/privacy/index.html new file mode 100644 index 0000000..6081c9c --- /dev/null +++ b/_site/privacy/index.html @@ -0,0 +1,627 @@ + + + + + + + + +BlueWallet - Bitcoin wallet | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+ +
+
Privacy Policy
+ +

This Privacy policy describes the privacy practices that are applicable to your use of the Bluewallet mobile application (the “App”) provided by Bluewallet Services (the “Company”).

+ +

No Use by Children. The App is not intended for use by children under the age of thirteen (13). If you are under the age of thirteen (13), please do not use the App.

+ +

The Company does not collect, use or share any personal information about you when you use the App. The Company also does not allow third parties to collect personal information about you when you use the App, or to use tracking technology to track your use of the App.

+ +

Any information that you provide to us when you communicate with our customer or technical support, will only be used for purposes of addressing your specific support request.

+ +

Third Party App Stores. If you purchase or access the App through a third party app store, such as iTunes or Google Play (an “App Store”), you will have a separate, additional account relationship with that App Store and the information you provide to that App Store will be handled in accordance with the privacy practices of the applicable App Store. App Stores are not partners or representatives of the Company and the Company is not responsible for the acts or omissions of an App Store with regard to the collection, use, maintenance or disclosure of your information. If you want to change your preferences with regard to how an applicable App Store collects or uses your information, you should review the privacy practices of the applicable App Store and adjust your privacy or other settings directly through the applicable App Store. The Company will not receive or have access to any of the information you provide to, or that is collected by, an applicable App Store.

+ +

Creators of BlueWallet never received any inquiries from NSA, FBI, FSB or any other government institution.

+ +

Nor NSA nor any other government institution was ever granted access to BlueWallet’s end users data.

+ +

Nor NSA nor any other government institution was ever granted permission to install backdoor or other potentially malicious code in any part of BlueWallet’s software.

+ +

Fair Information Practices

+ +

The Fair Information Practices Principles form the backbone of privacy law in the United States and the concepts they include have played a significant role in the development of data protection laws around the globe. Understanding the Fair Information Practice Principles and how they should be implemented is critical to comply with the various privacy laws that protect personal information.

+ +

In order to be in line with Fair Information Practices we will take the following responsive action, should a data breach occur: +We will notify the users via in-site notification +• Within 7 business days

+ +

We also agree to the Individual Redress Principle which requires that individuals have the right to legally pursue enforceable rights against data collectors and processors who fail to adhere to the law. This principle requires not only that individuals have enforceable rights against data users, but also that individuals have recourse to courts or government agencies to investigate and/or prosecute non-compliance by data processors.

+ +

CAN SPAM Act

+ +

The CAN-SPAM Act is a law that sets the rules for commercial email, establishes requirements for commercial messages, gives recipients the right to have emails stopped from being sent to them, and spells out tough penalties for violations.

+ +

We collect your email address in order to: +Send you the updates you subscribe for.

+ +

To be in accordance with CANSPAM and GDPR, we agree to the following:

+ +

If at any time you would like to unsubscribe from receiving future emails, you can email us at bluewallet@bluewallet.io and we will promptly remove you from ALL correspondence.

+ +

If there are any questions regarding this privacy policy, you may contact us using the information below.

+ +

bluewallet@bluewallet.io

+ +

Last Edited on 2020-12-16

+ + +
+ +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/robots.txt b/_site/robots.txt new file mode 100644 index 0000000..393d2a0 --- /dev/null +++ b/_site/robots.txt @@ -0,0 +1,10 @@ +User-Agent: * +Allow: / + +Sitemap: https://bluewallet.io/sitemap.xml + +User-agent: googlebot +Disallow: /tos/ +Disallow: /privacy/ +Disallow: /terms.txt +Disallow: /privacy.txt \ No newline at end of file diff --git a/_site/search.json b/_site/search.json new file mode 100644 index 0000000..6a8b331 --- /dev/null +++ b/_site/search.json @@ -0,0 +1,339 @@ +[ + + { + "title" : "Adding alerts to content", + "category" : "", + "tags" : "features", + "url" : "/docs/alerts/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Google Analytics", + "category" : "", + "tags" : "", + "url" : "/docs/analytics/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "How to backup/export a wallet", + "category" : "", + "tags" : "usage", + "url" : "/docs/backup-wallet/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Send to many or Batching", + "category" : "", + "tags" : "usage", + "url" : "/docs/batching/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Category boxes section", + "category" : "", + "tags" : "features", + "url" : "/docs/boxes/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Creating a changelog", + "category" : "", + "tags" : "setup", + "url" : "/docs/changelog/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Cobo Vault", + "category" : "", + "tags" : "usage", + "url" : "/docs/cobo-vault/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Coldcard - Cloud", + "category" : "", + "tags" : "hww", + "url" : "/docs/coldcard-dropbox/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Coldcard - Watch-only", + "category" : "", + "tags" : "hww", + "url" : "/docs/coldcard-watch/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Coldcard", + "category" : "", + "tags" : "hww", + "url" : "/docs/coldcard/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Enabling comments (via Disqus)", + "category" : "", + "tags" : "", + "url" : "/docs/comments/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Contact form (via FormSpree)", + "category" : "", + "tags" : "setup", + "url" : "/docs/contact/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "How to create a Bitcoin wallet", + "category" : "", + "tags" : "setup", + "url" : "/docs/create-bitcoin-wallet/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "How to create a Lightning wallet", + "category" : "", + "tags" : "setup", + "url" : "/docs/create-lightning-wallet/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Call to action section", + "category" : "", + "tags" : "features", + "url" : "/docs/cta/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Customization", + "category" : "", + "tags" : "customize", + "url" : "/docs/customize/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Development", + "category" : "", + "tags" : "customize", + "url" : "/docs/development/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Creating docs posts", + "category" : "", + "tags" : "setup", + "url" : "/docs/docs/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Frequently asked questions section", + "category" : "", + "tags" : "features, featured", + "url" : "/docs/faq/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Fearured docs section", + "category" : "", + "tags" : "features", + "url" : "/docs/featured/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Footer options", + "category" : "", + "tags" : "setup", + "url" : "/docs/footer/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Hero page header", + "category" : "", + "tags" : "features", + "url" : "/docs/hero/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Theme installation", + "category" : "", + "tags" : "setup", + "url" : "/docs/installation/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Help and documentation", + "category" : "", + "tags" : "setup", + "url" : "/docs/intro/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "LNDHub on Mac OSX", + "category" : "", + "tags" : "lndhub", + "url" : "/docs/lndhub-macos/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "LNDhub with raspibolt", + "category" : "", + "tags" : "lndhub", + "url" : "/docs/lndhub-raspibolt/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "LNDhub on VPS with Ubuntu", + "category" : "", + "tags" : "lndhub", + "url" : "/docs/lndhub-ubuntu/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Use the Local Trader", + "category" : "", + "tags" : "usage", + "url" : "/docs/local-trader/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Adding manual entropy", + "category" : "", + "tags" : "setup", + "url" : "/docs/manual-entropy/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Adding media to post and doc content", + "category" : "", + "tags" : "features, featured", + "url" : "/docs/media/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Vaults - spending", + "category" : "", + "tags" : "usage", + "url" : "/docs/multisig-spend/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Navigation bar", + "category" : "", + "tags" : "setup", + "url" : "/docs/navigation/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Updating your billing credit card", + "category" : "", + "tags" : "othertag", + "url" : "/docs/pages/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Creating your first post in Jekyll", + "category" : "", + "tags" : "featured", + "url" : "/docs/posts/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "How to recover your wallet", + "category" : "", + "tags" : "usage", + "url" : "/docs/recover-wallet/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Basic theme setup", + "category" : "", + "tags" : "setup", + "url" : "/docs/setup/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Sources and credits", + "category" : "", + "tags" : "customize", + "url" : "/docs/sources/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Contacting support", + "category" : "", + "tags" : "help, customize", + "url" : "/docs/support/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Team members section", + "category" : "", + "tags" : "features", + "url" : "/docs/team/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Adding table of contents to docs", + "category" : "", + "tags" : "features", + "url" : "/docs/toc/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Translation", + "category" : "", + "tags" : "customize", + "url" : "/docs/translation/", + "date" : "2021-01-26 16:10:51 +0100" + } , + + { + "title" : "Video lightbox boxes section", + "category" : "", + "tags" : "features, featured", + "url" : "/docs/videos/", + "date" : "2021-01-26 16:10:51 +0100" + } + +] diff --git a/_site/sitemap.xml b/_site/sitemap.xml new file mode 100644 index 0000000..5ad0ac7 --- /dev/null +++ b/_site/sitemap.xml @@ -0,0 +1,67 @@ + + + + https://bluewallet.io + 2020-03-16T17:34:18+00:00 + 1.00 + + + https://bluewallet.io/bitcoin-wallet/ + 2020-03-16T17:34:18+00:00 + 0.90 + + + https://bluewallet.io/features/ + 2020-03-16T17:34:18+00:00 + 0.90 + + + https://bluewallet.io/watch-only/ + 2020-03-16T17:34:18+00:00 + 0.90 + + + https://bluewallet.io/desktop-bitcoin-wallet/ + 2020-08-10T13:34:18+00:00 + 0.90 + + + https://bluewallet.io/local-trader/ + 2020-06-20T17:34:18+00:00 + 0.90 + + + https://bluewallet.io/lightning/ + 2020-03-16T17:34:18+00:00 + 0.80 + + + https://bluewallet.io/lapps/ + 2020-03-16T17:34:18+00:00 + 0.60 + + + https://bluewallet.io/watch-app/ + 2020-03-16T17:34:18+00:00 + 0.60 + + + https://bluewallet.io/lndhub/ + 2020-03-16T17:34:18+00:00 + 0.60 + + + https://bluewallet.io/about + 2020-03-16T17:34:18+00:00 + 0.50 + + + https://bluewallet.io/donate.html + 2019-03-13T17:34:18+00:00 + 0.40 + + \ No newline at end of file diff --git a/_site/terms.txt b/_site/terms.txt new file mode 100644 index 0000000..95e860f --- /dev/null +++ b/_site/terms.txt @@ -0,0 +1,51 @@ + Blue Wallet Services Terms of Service + +1. Terms + + By accessing the website at http://bluewallet.io, you are agreeing to be bound by these terms of service, all applicable laws and regulations, and agree that you are responsible for compliance with any applicable local laws. If you do not agree with any of these terms, you are prohibited from using or accessing this site. The materials contained in this website are protected by applicable copyright and trademark law. + +2. Use License + + + + Permission is granted to temporarily download one copy of the materials (information or software) on Blue Wallet Services' website for personal, non-commercial transitory viewing only. This is the grant of a license, not a transfer of title, and under this license you may not: + + + modify or copy the materials; + use the materials for any commercial purpose, or for any public display (commercial or non-commercial); + attempt to decompile or reverse engineer any software contained on Blue Wallet Services' website; + remove any copyright or other proprietary notations from the materials; or + transfer the materials to another person or "mirror" the materials on any other server. + + + This license shall automatically terminate if you violate any of these restrictions and may be terminated by Blue Wallet Services at any time. Upon terminating your viewing of these materials or upon the termination of this license, you must destroy any downloaded materials in your possession whether in electronic or printed format. + + +3. Disclaimer + + + The materials on Blue Wallet Services' website are provided on an 'as is' basis. Blue Wallet Services makes no warranties, expressed or implied, and hereby disclaims and negates all other warranties including, without limitation, implied warranties or conditions of merchantability, fitness for a particular purpose, or non-infringement of intellectual property or other violation of rights. + Further, Blue Wallet Services does not warrant or make any representations concerning the accuracy, likely results, or reliability of the use of the materials on its website or otherwise relating to such materials or on any sites linked to this site. + + +4. Limitations + + In no event shall Blue Wallet Services or its suppliers be liable for any damages (including, without limitation, damages for loss of data or profit, or due to business interruption) arising out of the use or inability to use the materials on Blue Wallet Services' website, even if Blue Wallet Services or a Blue Wallet Services authorized representative has been notified orally or in writing of the possibility of such damage. Because some jurisdictions do not allow limitations on implied warranties, or limitations of liability for consequential or incidental damages, these limitations may not apply to you. + +5. Accuracy of materials + + The materials appearing on Blue Wallet Services website could include technical, typographical, or photographic errors. Blue Wallet Services does not warrant that any of the materials on its website are accurate, complete or current. Blue Wallet Services may make changes to the materials contained on its website at any time without notice. However Blue Wallet Services does not make any commitment to update the materials. + +6. Links + + Blue Wallet Services has not reviewed all of the sites linked to its website and is not responsible for the contents of any such linked site. The inclusion of any link does not imply endorsement by Blue Wallet Services of the site. Use of any such linked website is at the user's own risk. + +7. Modifications + + Blue Wallet Services may revise these terms of service for its website at any time without notice. By using this website you are agreeing to be bound by the then current version of these terms of service. + +8. Governing Law + + These terms and conditions are governed by and construed in accordance with the laws of Republica Dominicana and you irrevocably submit to the exclusive jurisdiction of the courts in that State or location. + + \ No newline at end of file diff --git a/_site/testpage/12eQ9m4sgAwTSQoNXkRABKhCXCsjm2jdVG.png b/_site/testpage/12eQ9m4sgAwTSQoNXkRABKhCXCsjm2jdVG.png new file mode 100644 index 0000000..dc9e231 Binary files /dev/null and b/_site/testpage/12eQ9m4sgAwTSQoNXkRABKhCXCsjm2jdVG.png differ diff --git a/_site/testpage/3NLnALo49CFEF4tCRhCvz45ySSfz3UktZC.png b/_site/testpage/3NLnALo49CFEF4tCRhCvz45ySSfz3UktZC.png new file mode 100644 index 0000000..5c75b6f Binary files /dev/null and b/_site/testpage/3NLnALo49CFEF4tCRhCvz45ySSfz3UktZC.png differ diff --git a/_site/testpage/80001870-cc04c380-84b6-11ea-99a3-c2c8e719a4bd.png b/_site/testpage/80001870-cc04c380-84b6-11ea-99a3-c2c8e719a4bd.png new file mode 100644 index 0000000..1a3a421 Binary files /dev/null and b/_site/testpage/80001870-cc04c380-84b6-11ea-99a3-c2c8e719a4bd.png differ diff --git a/_site/testpage/BIP21+BOLT11.png b/_site/testpage/BIP21+BOLT11.png new file mode 100644 index 0000000..1bf06af Binary files /dev/null and b/_site/testpage/BIP21+BOLT11.png differ diff --git a/_site/testpage/azteco.png b/_site/testpage/azteco.png new file mode 100644 index 0000000..450335d Binary files /dev/null and b/_site/testpage/azteco.png differ diff --git a/_site/testpage/bc1quhnve8q4tk3unhmjts7ymxv8cd6w9xv8wy29uv.png b/_site/testpage/bc1quhnve8q4tk3unhmjts7ymxv8cd6w9xv8wy29uv.png new file mode 100644 index 0000000..39b9373 Binary files /dev/null and b/_site/testpage/bc1quhnve8q4tk3unhmjts7ymxv8cd6w9xv8wy29uv.png differ diff --git a/_site/testpage/bc1qzrtn3xwlunlrm0n0uu23lr00gmdx4lnlavdy75.png b/_site/testpage/bc1qzrtn3xwlunlrm0n0uu23lr00gmdx4lnlavdy75.png new file mode 100644 index 0000000..a8cda90 Binary files /dev/null and b/_site/testpage/bc1qzrtn3xwlunlrm0n0uu23lr00gmdx4lnlavdy75.png differ diff --git a/_site/testpage/bc1qzrtn3xwlunlrm0n0uu23lr00gmdx4lnlavdy75_caps.png b/_site/testpage/bc1qzrtn3xwlunlrm0n0uu23lr00gmdx4lnlavdy75_caps.png new file mode 100644 index 0000000..d167a90 Binary files /dev/null and b/_site/testpage/bc1qzrtn3xwlunlrm0n0uu23lr00gmdx4lnlavdy75_caps.png differ diff --git a/_site/testpage/bluewallet_openlappbrowser.png b/_site/testpage/bluewallet_openlappbrowser.png new file mode 100644 index 0000000..e18f57f Binary files /dev/null and b/_site/testpage/bluewallet_openlappbrowser.png differ diff --git a/_site/testpage/bolt11.png b/_site/testpage/bolt11.png new file mode 100644 index 0000000..54005ab Binary files /dev/null and b/_site/testpage/bolt11.png differ diff --git a/_site/testpage/deeplink_bitcoin_caps_withamount_and_label.png b/_site/testpage/deeplink_bitcoin_caps_withamount_and_label.png new file mode 100644 index 0000000..ffd47b7 Binary files /dev/null and b/_site/testpage/deeplink_bitcoin_caps_withamount_and_label.png differ diff --git a/_site/testpage/deeplink_bitcoin_caps_withamount_and_message.png b/_site/testpage/deeplink_bitcoin_caps_withamount_and_message.png new file mode 100644 index 0000000..b81532e Binary files /dev/null and b/_site/testpage/deeplink_bitcoin_caps_withamount_and_message.png differ diff --git a/_site/testpage/index.html b/_site/testpage/index.html new file mode 100644 index 0000000..7723bc0 --- /dev/null +++ b/_site/testpage/index.html @@ -0,0 +1,163 @@ + + + + + + + + + + + Hello, bitcoin! + + + + + + +
+ + + + +
+ + + + +


+

Other deeplinks:

+ + + +
+ + + + + + +
+

Deeplinks prefixed with `bluewallet:`

+ + + + +
+ + +

lnurl playground

+ +





+ + +

Single address with transactions:

+ +
+
+ +
+ BITCOIN:BC1QUHNVE8Q4TK3UNHMJTS7YMXV8CD6W9XV8WY29UV +
+
+ +
+ bitcoin:3NLnALo49CFEF4tCRhCvz45ySSfz3UktZC +
+
+ +
+ bitcoin:12eQ9m4sgAwTSQoNXkRABKhCXCsjm2jdVG +
+
+ +





+ +

Extended pubkey with transactions:

+ +
+
+ +
+ zpub6r7jhKKm7BAVx3b3nSnuadY1WnshZYkhK8gKFoRLwK9rF3Mzv28BrGcCGA3ugGtawi1WLb2vyjQAX9ZTDGU5gNk2bLdTc3iEXr6tzR1ipNP +
+
+ +
+
+ +
+
+ +
+ + + + + + + + \ No newline at end of file diff --git a/_site/testpage/lightning_bolt11.png b/_site/testpage/lightning_bolt11.png new file mode 100644 index 0000000..3347faa Binary files /dev/null and b/_site/testpage/lightning_bolt11.png differ diff --git a/_site/testpage/safello_state_token.png b/_site/testpage/safello_state_token.png new file mode 100644 index 0000000..9625e0e Binary files /dev/null and b/_site/testpage/safello_state_token.png differ diff --git a/_site/testpage/zpub6r7jhKKm7BAVx3b3nSnuadY1WnshZYkhK8gKFoRLwK9rF3Mzv28BrGcCGA3ugGtawi1WLb2vyjQAX9ZTDGU5gNk2bLdTc3iEXr6tzR1ipNP.gif b/_site/testpage/zpub6r7jhKKm7BAVx3b3nSnuadY1WnshZYkhK8gKFoRLwK9rF3Mzv28BrGcCGA3ugGtawi1WLb2vyjQAX9ZTDGU5gNk2bLdTc3iEXr6tzR1ipNP.gif new file mode 100644 index 0000000..b45a5d2 Binary files /dev/null and b/_site/testpage/zpub6r7jhKKm7BAVx3b3nSnuadY1WnshZYkhK8gKFoRLwK9rF3Mzv28BrGcCGA3ugGtawi1WLb2vyjQAX9ZTDGU5gNk2bLdTc3iEXr6tzR1ipNP.gif differ diff --git a/_site/thanks/index.html b/_site/thanks/index.html new file mode 100644 index 0000000..00231fa --- /dev/null +++ b/_site/thanks/index.html @@ -0,0 +1,591 @@ + + + + + + + + +Thanks | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+ +
+

This is a redirect page for Formspree contact form

+ +

Varius tempor. Nulla non sollicitudin tortor. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla.

+ +

Ut malesuada varius tempor. Nulla non sollicitudin tortor. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla.

+ +

Mesuada varius tempor. Nulla non sollicitudin tortor. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla.

+ +

Varius tempor. Nulla non sollicitudin tortor. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla.

+ +
+ +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/tos/index.html b/_site/tos/index.html new file mode 100644 index 0000000..e4327dc --- /dev/null +++ b/_site/tos/index.html @@ -0,0 +1,603 @@ + + + + + + + + +BlueWallet - Bitcoin wallet | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+ +
+
Terms of use
+ +

By using Bluewallet mobile application (the “App”) provided by Bluewallet Services (the “Company”), you are agreeing to be bound by these terms of service, all applicable laws and regulations, and agree that you are responsible for compliance with any applicable local laws. If you do not agree with any of these terms, you are prohibited from using the App.

+ +

The Company intends for users to be able to use the functionality of the App on a decentralized, anonymous basis. You acknowledge and agree that BlueWallet is not responsible for any errors or omissions that you make in connection with any Bitcoin transaction initiated via the Services, including but not limited to use of any incorrect address or the loss of your private key.

+ +

How Your Wallet Works: Your Bitcoin is held in your BlueWallet in the “designed form”, recorded on the Bitcoin blockchain. When you create a BlueWallet Wallet, the software on your phone generate and store a cryptographic private and public key pair that you may use to send and receive Bitcoin via the Bitcoin Blockchain network.

+ +

Your Public Key: The public key generated by the Software serves as your Bitcoin wallet address, and is stored on your mobile device. We do not keep a copy of your public key associated with your identity or phone number. Therefore BlueWallet cannot identify you at any point.

+ +

Your Private Key: The private key uniquely matches the wallet address and must be used in connection with the wallet address to authorize the transfer of bitcoin from or to that wallet address. The private key is stored on your mobile device. Importantly, your private key provides access to and security for your Bitcoin. BlueWallet has no access to your private key and may not, under any circumstance, initiate a transaction using your private key on your behalf. If you lose your private key, BlueWallet cannot recover it for you.

+ +

In no event shall Blue Wallet Services or its suppliers be liable for any damages (including, without limitation, damages for loss of data or profit, or due to business interruption) arising out of the use or inability to use the materials on Blue Wallet Services, even if Blue Wallet Services or a Blue Wallet Services authorized representative has been notified orally or in writing of the possibility of such damage.

+ +

Lightning Wallet: While the Bitcoin wallets are all self-hosted as outlined above, the Bluewallet Lightning Network Wallets are can be used self-hosted or hosted by BlueWallet Services. Which means BlueWallet Services has full access to all the data and info being sent and receive by this hosted service. +The hosted Lightnig Network wallets should be used as an experimental feature, for recreational use and software developing focus. By using this service you agree to use it exclusively for the mention purposes and not for commerce purposes. Accordingly, any funds stored on the lightning wallet of your BlueWallet app are at risk of loss due to a security breach or other attack and will not be reimbursed by the Company. We will however make every effort to ensure proper security measures are in place and followed. We strongly recommend keeping a small balance (less than $50 USD) on your lightning wallet at any one time. For larger balances, we recommend keeping on the Bitcoin wallet in BlueWallet and load/refill your lightning network wallet as needed.

+ +

Blue Wallet Services may revise these terms of service for its website at any time without notice. By using the service you are agreeing to be bound by the then current version of these terms of service.

+ +

The materials contained in this website are protected by applicable copyright and trademark law. These terms and conditions are governed by and construed in accordance with the laws of Republica Dominicana and you irrevocably submit to the exclusive jurisdiction of the courts in that State or location.

+ + +
+ +
+ +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/uploads/20-sided-dice-roll-manual-entropy.png b/_site/uploads/20-sided-dice-roll-manual-entropy.png new file mode 100644 index 0000000..0b63cd9 Binary files /dev/null and b/_site/uploads/20-sided-dice-roll-manual-entropy.png differ diff --git a/_site/uploads/6-sided-dice-roll-manual-entropy.png b/_site/uploads/6-sided-dice-roll-manual-entropy.png new file mode 100644 index 0000000..1829db9 Binary files /dev/null and b/_site/uploads/6-sided-dice-roll-manual-entropy.png differ diff --git a/_site/uploads/add-bitcoin-wallet-with-advanced-options.png b/_site/uploads/add-bitcoin-wallet-with-advanced-options.png new file mode 100644 index 0000000..20a0353 Binary files /dev/null and b/_site/uploads/add-bitcoin-wallet-with-advanced-options.png differ diff --git a/_site/uploads/add-bitcoin-wallet.png b/_site/uploads/add-bitcoin-wallet.png new file mode 100644 index 0000000..3642ab1 Binary files /dev/null and b/_site/uploads/add-bitcoin-wallet.png differ diff --git a/_site/uploads/add-lightning-wallet-with-advanced-options.png b/_site/uploads/add-lightning-wallet-with-advanced-options.png new file mode 100644 index 0000000..daca7ea Binary files /dev/null and b/_site/uploads/add-lightning-wallet-with-advanced-options.png differ diff --git a/_site/uploads/add-lightning-wallet.png b/_site/uploads/add-lightning-wallet.png new file mode 100644 index 0000000..c2ec82f Binary files /dev/null and b/_site/uploads/add-lightning-wallet.png differ diff --git a/_site/uploads/add-manual-entropy.png b/_site/uploads/add-manual-entropy.png new file mode 100644 index 0000000..1adbcd4 Binary files /dev/null and b/_site/uploads/add-manual-entropy.png differ diff --git a/img/addwallet.png b/_site/uploads/addwallet.png similarity index 100% rename from img/addwallet.png rename to _site/uploads/addwallet.png diff --git a/_site/uploads/app-store-badge-blue copy.svg b/_site/uploads/app-store-badge-blue copy.svg new file mode 100644 index 0000000..f700030 --- /dev/null +++ b/_site/uploads/app-store-badge-blue copy.svg @@ -0,0 +1,48 @@ + + + app-store-badge-blue copy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_site/uploads/app-store-badge-blue.svg b/_site/uploads/app-store-badge-blue.svg new file mode 100644 index 0000000..32947be --- /dev/null +++ b/_site/uploads/app-store-badge-blue.svg @@ -0,0 +1,48 @@ + + + app-store-badge-blue + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_site/uploads/avatar-alex.png b/_site/uploads/avatar-alex.png new file mode 100644 index 0000000..072a299 Binary files /dev/null and b/_site/uploads/avatar-alex.png differ diff --git a/_site/uploads/avatar-daniel.png b/_site/uploads/avatar-daniel.png new file mode 100644 index 0000000..a8baf6a Binary files /dev/null and b/_site/uploads/avatar-daniel.png differ diff --git a/_site/uploads/avatar-evan.png b/_site/uploads/avatar-evan.png new file mode 100644 index 0000000..5e43fb0 Binary files /dev/null and b/_site/uploads/avatar-evan.png differ diff --git a/_site/uploads/avatar-john.png b/_site/uploads/avatar-john.png new file mode 100644 index 0000000..79f20ae Binary files /dev/null and b/_site/uploads/avatar-john.png differ diff --git a/_site/uploads/avatar-sara.png b/_site/uploads/avatar-sara.png new file mode 100644 index 0000000..14a7d98 Binary files /dev/null and b/_site/uploads/avatar-sara.png differ diff --git a/_site/uploads/avatar-tom.png b/_site/uploads/avatar-tom.png new file mode 100644 index 0000000..52c01c2 Binary files /dev/null and b/_site/uploads/avatar-tom.png differ diff --git a/_site/uploads/balance.gif b/_site/uploads/balance.gif new file mode 100644 index 0000000..080973b Binary files /dev/null and b/_site/uploads/balance.gif differ diff --git a/_site/uploads/bitcoin-wallet/create.png b/_site/uploads/bitcoin-wallet/create.png new file mode 100644 index 0000000..576e394 Binary files /dev/null and b/_site/uploads/bitcoin-wallet/create.png differ diff --git a/img/import-wallet.png b/_site/uploads/bitcoin-wallet/import.png similarity index 100% rename from img/import-wallet.png rename to _site/uploads/bitcoin-wallet/import.png diff --git a/img/bitcoinwallets.png b/_site/uploads/bitcoinwallets.png similarity index 100% rename from img/bitcoinwallets.png rename to _site/uploads/bitcoinwallets.png diff --git a/_site/uploads/blog/0__2lrGSZGY__fUbCqcm.png b/_site/uploads/blog/0__2lrGSZGY__fUbCqcm.png new file mode 100644 index 0000000..7470d39 Binary files /dev/null and b/_site/uploads/blog/0__2lrGSZGY__fUbCqcm.png differ diff --git a/_site/uploads/blog/0__MaCG__qJS9u3Qf__iO.png b/_site/uploads/blog/0__MaCG__qJS9u3Qf__iO.png new file mode 100644 index 0000000..96f622f Binary files /dev/null and b/_site/uploads/blog/0__MaCG__qJS9u3Qf__iO.png differ diff --git a/_site/uploads/blog/0__PKiUj__Bmuqve7jau.png b/_site/uploads/blog/0__PKiUj__Bmuqve7jau.png new file mode 100644 index 0000000..0099c5b Binary files /dev/null and b/_site/uploads/blog/0__PKiUj__Bmuqve7jau.png differ diff --git a/_site/uploads/blog/0__RN3a__9aGkvwxfFi1.png b/_site/uploads/blog/0__RN3a__9aGkvwxfFi1.png new file mode 100644 index 0000000..55ea384 Binary files /dev/null and b/_site/uploads/blog/0__RN3a__9aGkvwxfFi1.png differ diff --git a/_site/uploads/blog/0__T2KUg__arH5AyjUh__.png b/_site/uploads/blog/0__T2KUg__arH5AyjUh__.png new file mode 100644 index 0000000..b75e006 Binary files /dev/null and b/_site/uploads/blog/0__T2KUg__arH5AyjUh__.png differ diff --git a/_site/uploads/blog/0__Xj__U8JCIvEdGqLn__.png b/_site/uploads/blog/0__Xj__U8JCIvEdGqLn__.png new file mode 100644 index 0000000..916871c Binary files /dev/null and b/_site/uploads/blog/0__Xj__U8JCIvEdGqLn__.png differ diff --git a/_site/uploads/blog/0__ZpI0uoq__WolLJDrx.png b/_site/uploads/blog/0__ZpI0uoq__WolLJDrx.png new file mode 100644 index 0000000..b7f9e2b Binary files /dev/null and b/_site/uploads/blog/0__ZpI0uoq__WolLJDrx.png differ diff --git a/_site/uploads/blog/0__ioWAhxCIxGqu8Lz9.png b/_site/uploads/blog/0__ioWAhxCIxGqu8Lz9.png new file mode 100644 index 0000000..8dae744 Binary files /dev/null and b/_site/uploads/blog/0__ioWAhxCIxGqu8Lz9.png differ diff --git a/_site/uploads/blog/0__vTdHldiBeavNmY3U.png b/_site/uploads/blog/0__vTdHldiBeavNmY3U.png new file mode 100644 index 0000000..724bc4c Binary files /dev/null and b/_site/uploads/blog/0__vTdHldiBeavNmY3U.png differ diff --git a/_site/uploads/blog/0__wzOrnxP3ajASE1jK.jpg b/_site/uploads/blog/0__wzOrnxP3ajASE1jK.jpg new file mode 100644 index 0000000..641107d Binary files /dev/null and b/_site/uploads/blog/0__wzOrnxP3ajASE1jK.jpg differ diff --git a/_site/uploads/blog/0__z4NwaQD__OaiXMPbS.png b/_site/uploads/blog/0__z4NwaQD__OaiXMPbS.png new file mode 100644 index 0000000..dcd6e02 Binary files /dev/null and b/_site/uploads/blog/0__z4NwaQD__OaiXMPbS.png differ diff --git a/_site/uploads/blog/1_A7Xl06wiAKH6WOpASX41MA.jpeg b/_site/uploads/blog/1_A7Xl06wiAKH6WOpASX41MA.jpeg new file mode 100644 index 0000000..0775ecd Binary files /dev/null and b/_site/uploads/blog/1_A7Xl06wiAKH6WOpASX41MA.jpeg differ diff --git a/_site/uploads/blog/1_PLxkIoqqPaOh9ppT9_sKmg.jpeg b/_site/uploads/blog/1_PLxkIoqqPaOh9ppT9_sKmg.jpeg new file mode 100644 index 0000000..344d4e4 Binary files /dev/null and b/_site/uploads/blog/1_PLxkIoqqPaOh9ppT9_sKmg.jpeg differ diff --git a/_site/uploads/blog/1__0AjNYIYaPUiDuS5OVtcS6g.png b/_site/uploads/blog/1__0AjNYIYaPUiDuS5OVtcS6g.png new file mode 100644 index 0000000..619a63d Binary files /dev/null and b/_site/uploads/blog/1__0AjNYIYaPUiDuS5OVtcS6g.png differ diff --git a/_site/uploads/blog/1__1UgOVs9myOAfURf8t3lrEg.png b/_site/uploads/blog/1__1UgOVs9myOAfURf8t3lrEg.png new file mode 100644 index 0000000..16397ea Binary files /dev/null and b/_site/uploads/blog/1__1UgOVs9myOAfURf8t3lrEg.png differ diff --git a/_site/uploads/blog/1__3UuRMNuJputXC04a9kMJgA.gif b/_site/uploads/blog/1__3UuRMNuJputXC04a9kMJgA.gif new file mode 100644 index 0000000..cb58926 Binary files /dev/null and b/_site/uploads/blog/1__3UuRMNuJputXC04a9kMJgA.gif differ diff --git a/_site/uploads/blog/1__5cl6lecKsZgz__OReOGjRHA.jpeg b/_site/uploads/blog/1__5cl6lecKsZgz__OReOGjRHA.jpeg new file mode 100644 index 0000000..b7a4972 Binary files /dev/null and b/_site/uploads/blog/1__5cl6lecKsZgz__OReOGjRHA.jpeg differ diff --git a/_site/uploads/blog/1__7nF2__PRwaP9pJB0WeHhtQA.png b/_site/uploads/blog/1__7nF2__PRwaP9pJB0WeHhtQA.png new file mode 100644 index 0000000..f6a7a82 Binary files /dev/null and b/_site/uploads/blog/1__7nF2__PRwaP9pJB0WeHhtQA.png differ diff --git a/_site/uploads/blog/1__8aBrXNxm5J8qGqxNe3leSQ.png b/_site/uploads/blog/1__8aBrXNxm5J8qGqxNe3leSQ.png new file mode 100644 index 0000000..75815d6 Binary files /dev/null and b/_site/uploads/blog/1__8aBrXNxm5J8qGqxNe3leSQ.png differ diff --git a/_site/uploads/blog/1__8ocpMPrkE__pasqTKq8NeGQ.gif b/_site/uploads/blog/1__8ocpMPrkE__pasqTKq8NeGQ.gif new file mode 100644 index 0000000..84eb738 Binary files /dev/null and b/_site/uploads/blog/1__8ocpMPrkE__pasqTKq8NeGQ.gif differ diff --git a/_site/uploads/blog/1__BkxRuZqPs__H8fq1U5WYT__Q.png b/_site/uploads/blog/1__BkxRuZqPs__H8fq1U5WYT__Q.png new file mode 100644 index 0000000..e49d5cc Binary files /dev/null and b/_site/uploads/blog/1__BkxRuZqPs__H8fq1U5WYT__Q.png differ diff --git a/_site/uploads/blog/1__Ce1O88UQUi7LeudYMnn2SA.gif b/_site/uploads/blog/1__Ce1O88UQUi7LeudYMnn2SA.gif new file mode 100644 index 0000000..e2d32cd Binary files /dev/null and b/_site/uploads/blog/1__Ce1O88UQUi7LeudYMnn2SA.gif differ diff --git a/_site/uploads/blog/1__CfiVFmhwKLG0zFTUoMgQsg.png b/_site/uploads/blog/1__CfiVFmhwKLG0zFTUoMgQsg.png new file mode 100644 index 0000000..b5a6382 Binary files /dev/null and b/_site/uploads/blog/1__CfiVFmhwKLG0zFTUoMgQsg.png differ diff --git a/_site/uploads/blog/1__HrzbozVIPmRYMJk9gJDCdg.jpeg b/_site/uploads/blog/1__HrzbozVIPmRYMJk9gJDCdg.jpeg new file mode 100644 index 0000000..ac4b20b Binary files /dev/null and b/_site/uploads/blog/1__HrzbozVIPmRYMJk9gJDCdg.jpeg differ diff --git a/_site/uploads/blog/1__I6D9MS__xv7ZLI4vNs7kiqw.gif b/_site/uploads/blog/1__I6D9MS__xv7ZLI4vNs7kiqw.gif new file mode 100644 index 0000000..c4959b1 Binary files /dev/null and b/_site/uploads/blog/1__I6D9MS__xv7ZLI4vNs7kiqw.gif differ diff --git a/_site/uploads/blog/1__I9tmpGCk61N84__PCZ1TBFw.gif b/_site/uploads/blog/1__I9tmpGCk61N84__PCZ1TBFw.gif new file mode 100644 index 0000000..69b08e5 Binary files /dev/null and b/_site/uploads/blog/1__I9tmpGCk61N84__PCZ1TBFw.gif differ diff --git a/_site/uploads/blog/1__JZdpyNAQs0np2wgCpoHDrw.gif b/_site/uploads/blog/1__JZdpyNAQs0np2wgCpoHDrw.gif new file mode 100644 index 0000000..81f6ea3 Binary files /dev/null and b/_site/uploads/blog/1__JZdpyNAQs0np2wgCpoHDrw.gif differ diff --git a/_site/uploads/blog/1__JueZcC5e5L78fmq7Rop04A.png b/_site/uploads/blog/1__JueZcC5e5L78fmq7Rop04A.png new file mode 100644 index 0000000..efef9b0 Binary files /dev/null and b/_site/uploads/blog/1__JueZcC5e5L78fmq7Rop04A.png differ diff --git a/_site/uploads/blog/1__KNs1nTrAooGXllARG1kizw.png b/_site/uploads/blog/1__KNs1nTrAooGXllARG1kizw.png new file mode 100644 index 0000000..4a4a038 Binary files /dev/null and b/_site/uploads/blog/1__KNs1nTrAooGXllARG1kizw.png differ diff --git a/_site/uploads/blog/1__LlOcKZ9XbM4d8ULehbImLg.png b/_site/uploads/blog/1__LlOcKZ9XbM4d8ULehbImLg.png new file mode 100644 index 0000000..23fd0fe Binary files /dev/null and b/_site/uploads/blog/1__LlOcKZ9XbM4d8ULehbImLg.png differ diff --git a/_site/uploads/blog/1__OWQvkS45QPso6l8X8FVIPQ.png b/_site/uploads/blog/1__OWQvkS45QPso6l8X8FVIPQ.png new file mode 100644 index 0000000..3e455db Binary files /dev/null and b/_site/uploads/blog/1__OWQvkS45QPso6l8X8FVIPQ.png differ diff --git a/_site/uploads/blog/1__Q12kpMPZ726TWRJGl__iT__w.png b/_site/uploads/blog/1__Q12kpMPZ726TWRJGl__iT__w.png new file mode 100644 index 0000000..648a3cd Binary files /dev/null and b/_site/uploads/blog/1__Q12kpMPZ726TWRJGl__iT__w.png differ diff --git a/_site/uploads/blog/1__QIJKuz8hp7k9U1y__qT0MLw.jpeg b/_site/uploads/blog/1__QIJKuz8hp7k9U1y__qT0MLw.jpeg new file mode 100644 index 0000000..54452d0 Binary files /dev/null and b/_site/uploads/blog/1__QIJKuz8hp7k9U1y__qT0MLw.jpeg differ diff --git a/_site/uploads/blog/1__QZlxfhsTQob4xJAaedg6DA.gif b/_site/uploads/blog/1__QZlxfhsTQob4xJAaedg6DA.gif new file mode 100644 index 0000000..5e7b44b Binary files /dev/null and b/_site/uploads/blog/1__QZlxfhsTQob4xJAaedg6DA.gif differ diff --git a/_site/uploads/blog/1__Qo8UrKdO0ALiZmHdzHswrg.png b/_site/uploads/blog/1__Qo8UrKdO0ALiZmHdzHswrg.png new file mode 100644 index 0000000..57aab4b Binary files /dev/null and b/_site/uploads/blog/1__Qo8UrKdO0ALiZmHdzHswrg.png differ diff --git a/_site/uploads/blog/1__QuLtnA__EGWJTNAJ__Nsk__7A.gif b/_site/uploads/blog/1__QuLtnA__EGWJTNAJ__Nsk__7A.gif new file mode 100644 index 0000000..b4dff60 Binary files /dev/null and b/_site/uploads/blog/1__QuLtnA__EGWJTNAJ__Nsk__7A.gif differ diff --git a/_site/uploads/blog/1__Ts3QN99TOC2XLwA3deG41g.png b/_site/uploads/blog/1__Ts3QN99TOC2XLwA3deG41g.png new file mode 100644 index 0000000..0fe0330 Binary files /dev/null and b/_site/uploads/blog/1__Ts3QN99TOC2XLwA3deG41g.png differ diff --git a/_site/uploads/blog/1__WVW3JvNUl77gU5Z0ZdsHBA.jpeg b/_site/uploads/blog/1__WVW3JvNUl77gU5Z0ZdsHBA.jpeg new file mode 100644 index 0000000..93c542f Binary files /dev/null and b/_site/uploads/blog/1__WVW3JvNUl77gU5Z0ZdsHBA.jpeg differ diff --git a/_site/uploads/blog/1__WgPKeu2PHYkA4Jr0JnaThA.png b/_site/uploads/blog/1__WgPKeu2PHYkA4Jr0JnaThA.png new file mode 100644 index 0000000..14a12dc Binary files /dev/null and b/_site/uploads/blog/1__WgPKeu2PHYkA4Jr0JnaThA.png differ diff --git a/_site/uploads/blog/1__Y3NBaMKtXaWMvxx2YPI7__Q.png b/_site/uploads/blog/1__Y3NBaMKtXaWMvxx2YPI7__Q.png new file mode 100644 index 0000000..5cc1ba5 Binary files /dev/null and b/_site/uploads/blog/1__Y3NBaMKtXaWMvxx2YPI7__Q.png differ diff --git a/_site/uploads/blog/1____srLIaM0M9aEFIoIdCjsEw.png b/_site/uploads/blog/1____srLIaM0M9aEFIoIdCjsEw.png new file mode 100644 index 0000000..abdf01c Binary files /dev/null and b/_site/uploads/blog/1____srLIaM0M9aEFIoIdCjsEw.png differ diff --git a/_site/uploads/blog/1__gxyxtWH0df__L9dz0RAbU__w.png b/_site/uploads/blog/1__gxyxtWH0df__L9dz0RAbU__w.png new file mode 100644 index 0000000..7f511b4 Binary files /dev/null and b/_site/uploads/blog/1__gxyxtWH0df__L9dz0RAbU__w.png differ diff --git a/_site/uploads/blog/1__jhzjE2eK1sS8lEDutaQKgw.gif b/_site/uploads/blog/1__jhzjE2eK1sS8lEDutaQKgw.gif new file mode 100644 index 0000000..45c52a1 Binary files /dev/null and b/_site/uploads/blog/1__jhzjE2eK1sS8lEDutaQKgw.gif differ diff --git a/_site/uploads/blog/1__l__z95zazGnMJMuoPyBNHxg.png b/_site/uploads/blog/1__l__z95zazGnMJMuoPyBNHxg.png new file mode 100644 index 0000000..a906920 Binary files /dev/null and b/_site/uploads/blog/1__l__z95zazGnMJMuoPyBNHxg.png differ diff --git a/_site/uploads/blog/1__meQxWp__U0428GlEkJKBqeg.png b/_site/uploads/blog/1__meQxWp__U0428GlEkJKBqeg.png new file mode 100644 index 0000000..042aaa3 Binary files /dev/null and b/_site/uploads/blog/1__meQxWp__U0428GlEkJKBqeg.png differ diff --git a/_site/uploads/blog/1__o0uBYENEVmezDzSSZf1KBQ.png b/_site/uploads/blog/1__o0uBYENEVmezDzSSZf1KBQ.png new file mode 100644 index 0000000..a771d63 Binary files /dev/null and b/_site/uploads/blog/1__o0uBYENEVmezDzSSZf1KBQ.png differ diff --git a/_site/uploads/blog/1__pdu00hpS1hRgjpHcnBfycg.png b/_site/uploads/blog/1__pdu00hpS1hRgjpHcnBfycg.png new file mode 100644 index 0000000..1c8234c Binary files /dev/null and b/_site/uploads/blog/1__pdu00hpS1hRgjpHcnBfycg.png differ diff --git a/_site/uploads/blog/1__tB0Qeaq7acgTyJmz2PA6Sg.png b/_site/uploads/blog/1__tB0Qeaq7acgTyJmz2PA6Sg.png new file mode 100644 index 0000000..54324c3 Binary files /dev/null and b/_site/uploads/blog/1__tB0Qeaq7acgTyJmz2PA6Sg.png differ diff --git a/_site/uploads/blog/1__u1WsNSvvtB4HBiSVNwGlVQ.gif b/_site/uploads/blog/1__u1WsNSvvtB4HBiSVNwGlVQ.gif new file mode 100644 index 0000000..ba90381 Binary files /dev/null and b/_site/uploads/blog/1__u1WsNSvvtB4HBiSVNwGlVQ.gif differ diff --git a/_site/uploads/blog/1__u52WH__MY__bPpqrb6b1tYiQ.jpeg b/_site/uploads/blog/1__u52WH__MY__bPpqrb6b1tYiQ.jpeg new file mode 100644 index 0000000..fb05d48 Binary files /dev/null and b/_site/uploads/blog/1__u52WH__MY__bPpqrb6b1tYiQ.jpeg differ diff --git a/_site/uploads/blog/1__vqmo5jBOWO1VeKG25UHvXQ.png b/_site/uploads/blog/1__vqmo5jBOWO1VeKG25UHvXQ.png new file mode 100644 index 0000000..cc470c8 Binary files /dev/null and b/_site/uploads/blog/1__vqmo5jBOWO1VeKG25UHvXQ.png differ diff --git a/_site/uploads/blog/1__w__mUqMrlx4lhyTqnXc9MCA.jpeg b/_site/uploads/blog/1__w__mUqMrlx4lhyTqnXc9MCA.jpeg new file mode 100644 index 0000000..498155f Binary files /dev/null and b/_site/uploads/blog/1__w__mUqMrlx4lhyTqnXc9MCA.jpeg differ diff --git a/_site/uploads/blog/1__xCzKdweAJ__YNrvXwhkqfTw.png b/_site/uploads/blog/1__xCzKdweAJ__YNrvXwhkqfTw.png new file mode 100644 index 0000000..93e88b5 Binary files /dev/null and b/_site/uploads/blog/1__xCzKdweAJ__YNrvXwhkqfTw.png differ diff --git a/_site/uploads/blog/1__xSS3BEad9Wx9BpmVoe2W4A.png b/_site/uploads/blog/1__xSS3BEad9Wx9BpmVoe2W4A.png new file mode 100644 index 0000000..4917897 Binary files /dev/null and b/_site/uploads/blog/1__xSS3BEad9Wx9BpmVoe2W4A.png differ diff --git a/_site/uploads/blog/1__y4mllrICanzylWy4rrkdyg.png b/_site/uploads/blog/1__y4mllrICanzylWy4rrkdyg.png new file mode 100644 index 0000000..2ee3fcd Binary files /dev/null and b/_site/uploads/blog/1__y4mllrICanzylWy4rrkdyg.png differ diff --git a/_site/uploads/blog/1__ylHJ4Hf5by83gH6JS5HGFA.png b/_site/uploads/blog/1__ylHJ4Hf5by83gH6JS5HGFA.png new file mode 100644 index 0000000..7c826c3 Binary files /dev/null and b/_site/uploads/blog/1__ylHJ4Hf5by83gH6JS5HGFA.png differ diff --git a/_site/uploads/blog/1__zAuAugQjltOFVNXMTMB79g.png b/_site/uploads/blog/1__zAuAugQjltOFVNXMTMB79g.png new file mode 100644 index 0000000..e6836ff Binary files /dev/null and b/_site/uploads/blog/1__zAuAugQjltOFVNXMTMB79g.png differ diff --git a/_site/uploads/blog/1_p9jWuLeYrjaAk72lj8_0_A.png b/_site/uploads/blog/1_p9jWuLeYrjaAk72lj8_0_A.png new file mode 100644 index 0000000..28cb912 Binary files /dev/null and b/_site/uploads/blog/1_p9jWuLeYrjaAk72lj8_0_A.png differ diff --git a/_site/uploads/blog/1_qimXeoqtnjceQQtxpyrSgA.png b/_site/uploads/blog/1_qimXeoqtnjceQQtxpyrSgA.png new file mode 100644 index 0000000..062403b Binary files /dev/null and b/_site/uploads/blog/1_qimXeoqtnjceQQtxpyrSgA.png differ diff --git a/_site/uploads/bluedocs.svg b/_site/uploads/bluedocs.svg new file mode 100644 index 0000000..660933f --- /dev/null +++ b/_site/uploads/bluedocs.svg @@ -0,0 +1,39 @@ + + + + bluedocs + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_site/uploads/bluewallet-first-page.png b/_site/uploads/bluewallet-first-page.png new file mode 100644 index 0000000..ed03bfa Binary files /dev/null and b/_site/uploads/bluewallet-first-page.png differ diff --git a/_site/uploads/bluewallet.png b/_site/uploads/bluewallet.png new file mode 100644 index 0000000..72577ce Binary files /dev/null and b/_site/uploads/bluewallet.png differ diff --git a/_site/uploads/coin-flip-manual-entropy.png b/_site/uploads/coin-flip-manual-entropy.png new file mode 100644 index 0000000..af8d0f6 Binary files /dev/null and b/_site/uploads/coin-flip-manual-entropy.png differ diff --git a/img/desktop-bitcoin-wallet.png b/_site/uploads/desktop-bitcoin-wallet.png similarity index 100% rename from img/desktop-bitcoin-wallet.png rename to _site/uploads/desktop-bitcoin-wallet.png diff --git a/img/favicon/favicon-32x32.png b/_site/uploads/favicon.png similarity index 100% rename from img/favicon/favicon-32x32.png rename to _site/uploads/favicon.png diff --git a/_site/uploads/features/batch.png b/_site/uploads/features/batch.png new file mode 100644 index 0000000..7111417 Binary files /dev/null and b/_site/uploads/features/batch.png differ diff --git a/_site/uploads/features/fees.png b/_site/uploads/features/fees.png new file mode 100644 index 0000000..81b8a70 Binary files /dev/null and b/_site/uploads/features/fees.png differ diff --git a/_site/uploads/features/lightning.png b/_site/uploads/features/lightning.png new file mode 100644 index 0000000..6ad85c3 Binary files /dev/null and b/_site/uploads/features/lightning.png differ diff --git a/_site/uploads/features/multi-wallet.mp4 b/_site/uploads/features/multi-wallet.mp4 new file mode 100644 index 0000000..447d8c6 Binary files /dev/null and b/_site/uploads/features/multi-wallet.mp4 differ diff --git a/_site/uploads/features/multisig.mp4 b/_site/uploads/features/multisig.mp4 new file mode 100644 index 0000000..17bb1cd Binary files /dev/null and b/_site/uploads/features/multisig.mp4 differ diff --git a/_site/uploads/features/notifications.png b/_site/uploads/features/notifications.png new file mode 100644 index 0000000..0bde65d Binary files /dev/null and b/_site/uploads/features/notifications.png differ diff --git a/_site/uploads/features/pb.png b/_site/uploads/features/pb.png new file mode 100644 index 0000000..b710221 Binary files /dev/null and b/_site/uploads/features/pb.png differ diff --git a/_site/uploads/features/recover.png b/_site/uploads/features/recover.png new file mode 100644 index 0000000..5e39045 Binary files /dev/null and b/_site/uploads/features/recover.png differ diff --git a/_site/uploads/features/watch-only.mp4 b/_site/uploads/features/watch-only.mp4 new file mode 100644 index 0000000..f6fc0ec Binary files /dev/null and b/_site/uploads/features/watch-only.mp4 differ diff --git a/_site/uploads/fees.svg b/_site/uploads/fees.svg new file mode 100644 index 0000000..4f88b79 --- /dev/null +++ b/_site/uploads/fees.svg @@ -0,0 +1,24 @@ + + + Group 17 + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_site/uploads/github.svg b/_site/uploads/github.svg new file mode 100644 index 0000000..d590fb2 --- /dev/null +++ b/_site/uploads/github.svg @@ -0,0 +1,15 @@ + + + Path + + + + + + + + + + + + \ No newline at end of file diff --git a/img/igor.png b/_site/uploads/igor.png similarity index 100% rename from img/igor.png rename to _site/uploads/igor.png diff --git a/_site/uploads/image1.png b/_site/uploads/image1.png new file mode 100644 index 0000000..a7125c3 Binary files /dev/null and b/_site/uploads/image1.png differ diff --git a/img/bech32.png b/_site/uploads/images/bitcoin-bech32.png similarity index 100% rename from img/bech32.png rename to _site/uploads/images/bitcoin-bech32.png diff --git a/img/bread.png b/_site/uploads/images/bitcoin-bread.png similarity index 100% rename from img/bread.png rename to _site/uploads/images/bitcoin-bread.png diff --git a/_site/uploads/images/bitcoin-electrum.png b/_site/uploads/images/bitcoin-electrum.png new file mode 100644 index 0000000..af88a01 Binary files /dev/null and b/_site/uploads/images/bitcoin-electrum.png differ diff --git a/_site/uploads/images/bitcoin-legacy.png b/_site/uploads/images/bitcoin-legacy.png new file mode 100644 index 0000000..f8c6576 Binary files /dev/null and b/_site/uploads/images/bitcoin-legacy.png differ diff --git a/img/lightning.png b/_site/uploads/images/bitcoin-lightning.png similarity index 100% rename from img/lightning.png rename to _site/uploads/images/bitcoin-lightning.png diff --git a/img/onchain.png b/_site/uploads/images/bitcoin-native-segwit.png similarity index 100% rename from img/onchain.png rename to _site/uploads/images/bitcoin-native-segwit.png diff --git a/img/segwit.png b/_site/uploads/images/bitcoin-segwit.png similarity index 100% rename from img/segwit.png rename to _site/uploads/images/bitcoin-segwit.png diff --git a/_site/uploads/images/bitcoin-vault.png b/_site/uploads/images/bitcoin-vault.png new file mode 100644 index 0000000..ab1f57e Binary files /dev/null and b/_site/uploads/images/bitcoin-vault.png differ diff --git a/img/watch-only.png b/_site/uploads/images/bitcoin-watch-only.png similarity index 100% rename from img/watch-only.png rename to _site/uploads/images/bitcoin-watch-only.png diff --git a/_site/uploads/import-wallet.png b/_site/uploads/import-wallet.png new file mode 100644 index 0000000..6235f41 Binary files /dev/null and b/_site/uploads/import-wallet.png differ diff --git a/img/importok.png b/_site/uploads/importok.png similarity index 100% rename from img/importok.png rename to _site/uploads/importok.png diff --git a/img/importwallet.png b/_site/uploads/importwallet.png similarity index 100% rename from img/importwallet.png rename to _site/uploads/importwallet.png diff --git a/_site/uploads/incomplete-manual-entropy.png b/_site/uploads/incomplete-manual-entropy.png new file mode 100644 index 0000000..53a3288 Binary files /dev/null and b/_site/uploads/incomplete-manual-entropy.png differ diff --git a/_site/uploads/iphoneX.png b/_site/uploads/iphoneX.png new file mode 100644 index 0000000..df41808 Binary files /dev/null and b/_site/uploads/iphoneX.png differ diff --git a/_site/uploads/knowledge.svg b/_site/uploads/knowledge.svg new file mode 100644 index 0000000..eb35de5 --- /dev/null +++ b/_site/uploads/knowledge.svg @@ -0,0 +1 @@ +knowledge \ No newline at end of file diff --git a/img/lightning-wallet2.png b/_site/uploads/lightning-wallet.png similarity index 100% rename from img/lightning-wallet2.png rename to _site/uploads/lightning-wallet.png diff --git a/_site/uploads/lightning.svg b/_site/uploads/lightning.svg new file mode 100644 index 0000000..0be25e6 --- /dev/null +++ b/_site/uploads/lightning.svg @@ -0,0 +1,25 @@ + + + instant_access47a39045f3fa064c805b1c4236f56fa4 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/img/local-step1.svg b/_site/uploads/local-trader.svg similarity index 100% rename from img/local-step1.svg rename to _site/uploads/local-trader.svg diff --git a/img/lndhub-graph.png b/_site/uploads/local-trader/lndhub-graph.png similarity index 100% rename from img/lndhub-graph.png rename to _site/uploads/local-trader/lndhub-graph.png diff --git a/_site/uploads/local-trader/lndhub-logo.svg b/_site/uploads/local-trader/lndhub-logo.svg new file mode 100644 index 0000000..9b61f41 --- /dev/null +++ b/_site/uploads/local-trader/lndhub-logo.svg @@ -0,0 +1,14 @@ + + + lndhub + + + + + + + + + + + \ No newline at end of file diff --git a/_site/uploads/local-trader/local-step1.svg b/_site/uploads/local-trader/local-step1.svg new file mode 100644 index 0000000..d965a73 --- /dev/null +++ b/_site/uploads/local-trader/local-step1.svg @@ -0,0 +1,22 @@ + + + local-step1 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/img/local-step2.svg b/_site/uploads/local-trader/local-step2.svg similarity index 100% rename from img/local-step2.svg rename to _site/uploads/local-trader/local-step2.svg diff --git a/img/local-step3.svg b/_site/uploads/local-trader/local-step3.svg similarity index 100% rename from img/local-step3.svg rename to _site/uploads/local-trader/local-step3.svg diff --git a/img/local-step4.svg b/_site/uploads/local-trader/local-step4.svg similarity index 100% rename from img/local-step4.svg rename to _site/uploads/local-trader/local-step4.svg diff --git a/img/localtrader.png b/_site/uploads/localtrader-hero.png similarity index 100% rename from img/localtrader.png rename to _site/uploads/localtrader-hero.png diff --git a/_site/uploads/logo-bluewallet.svg b/_site/uploads/logo-bluewallet.svg new file mode 100644 index 0000000..3cc93a3 --- /dev/null +++ b/_site/uploads/logo-bluewallet.svg @@ -0,0 +1,40 @@ + + + logo-bluewallet + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/img/mac-store-badge.svg b/_site/uploads/mac-store-badge.svg similarity index 100% rename from img/mac-store-badge.svg rename to _site/uploads/mac-store-badge.svg diff --git a/_site/uploads/manual-entropy-used.png b/_site/uploads/manual-entropy-used.png new file mode 100644 index 0000000..b4f70e0 Binary files /dev/null and b/_site/uploads/manual-entropy-used.png differ diff --git a/img/marcos.png b/_site/uploads/marcos.png similarity index 100% rename from img/marcos.png rename to _site/uploads/marcos.png diff --git a/_site/uploads/ms-vault.svg b/_site/uploads/ms-vault.svg new file mode 100644 index 0000000..58d620d --- /dev/null +++ b/_site/uploads/ms-vault.svg @@ -0,0 +1,21 @@ + + + Group + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_site/uploads/multisig-wallet.png b/_site/uploads/multisig-wallet.png new file mode 100644 index 0000000..3963a5a Binary files /dev/null and b/_site/uploads/multisig-wallet.png differ diff --git a/_site/uploads/notifications.svg b/_site/uploads/notifications.svg new file mode 100644 index 0000000..22a756e --- /dev/null +++ b/_site/uploads/notifications.svg @@ -0,0 +1,21 @@ + + + noun_notification_325051 + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/img/nuno.png b/_site/uploads/nuno.png similarity index 100% rename from img/nuno.png rename to _site/uploads/nuno.png diff --git a/_site/uploads/pdeniability.svg b/_site/uploads/pdeniability.svg new file mode 100644 index 0000000..be1efdf --- /dev/null +++ b/_site/uploads/pdeniability.svg @@ -0,0 +1,25 @@ + + + Group 13 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_site/uploads/play-store-badge-blue copy.svg b/_site/uploads/play-store-badge-blue copy.svg new file mode 100644 index 0000000..8dfe623 --- /dev/null +++ b/_site/uploads/play-store-badge-blue copy.svg @@ -0,0 +1,55 @@ + + + play-store-badge-blue copy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_site/uploads/play-store-badge-blue.svg b/_site/uploads/play-store-badge-blue.svg new file mode 100644 index 0000000..31cb211 --- /dev/null +++ b/_site/uploads/play-store-badge-blue.svg @@ -0,0 +1,55 @@ + + + play-store-badge-blue + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_site/uploads/slideshow-1/success.1.png b/_site/uploads/slideshow-1/success.1.png new file mode 100644 index 0000000..14099f9 Binary files /dev/null and b/_site/uploads/slideshow-1/success.1.png differ diff --git a/_site/uploads/slideshow-1/success.png b/_site/uploads/slideshow-1/success.png new file mode 100644 index 0000000..14099f9 Binary files /dev/null and b/_site/uploads/slideshow-1/success.png differ diff --git a/_site/uploads/success.png b/_site/uploads/success.png new file mode 100644 index 0000000..14099f9 Binary files /dev/null and b/_site/uploads/success.png differ diff --git a/_site/uploads/telegram.svg b/_site/uploads/telegram.svg new file mode 100644 index 0000000..0c95d81 --- /dev/null +++ b/_site/uploads/telegram.svg @@ -0,0 +1,13 @@ + + + telegram + + + + + + + + + + \ No newline at end of file diff --git a/_site/uploads/twitter.svg b/_site/uploads/twitter.svg new file mode 100644 index 0000000..096041a --- /dev/null +++ b/_site/uploads/twitter.svg @@ -0,0 +1,15 @@ + + + twitter + + + + + + + + + + + + \ No newline at end of file diff --git a/img/watch-demo.png b/_site/uploads/watch-app/watch-demo.png similarity index 100% rename from img/watch-demo.png rename to _site/uploads/watch-app/watch-demo.png diff --git a/img/bighead3.png b/_site/uploads/watch-app/watch-head.png similarity index 100% rename from img/bighead3.png rename to _site/uploads/watch-app/watch-head.png diff --git a/img/watch-only-hero.png b/_site/uploads/watch-only-hero.png similarity index 100% rename from img/watch-only-hero.png rename to _site/uploads/watch-only-hero.png diff --git a/_site/uploads/watch-only.svg b/_site/uploads/watch-only.svg new file mode 100644 index 0000000..20dc28d --- /dev/null +++ b/_site/uploads/watch-only.svg @@ -0,0 +1,21 @@ + + + local-step1 copy + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_site/v4-0-2-is-out-on-android-and-iOS-73b0133f8916/index.html b/_site/v4-0-2-is-out-on-android-and-iOS-73b0133f8916/index.html new file mode 100644 index 0000000..d12dfb4 --- /dev/null +++ b/_site/v4-0-2-is-out-on-android-and-iOS-73b0133f8916/index.html @@ -0,0 +1,723 @@ + + + + + + + + +v4.0.2 is out on android and iOS | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ +

v4.0.2 is out on android and iOS

+ + + +
+

update on bluewallet.io

+ +

NEW
+-Simpler wallet creation screen
+-Advanced mode in app settings

+ +

FIXED

+
    +
  • HD wallet update if it was heavily used externally
  • +
  • Cached HD addresses generation (performance)
  • +
  • Updated bitcoinjs-lib (performance)
  • +
  • Improve quality of QR code onchain
  • +
  • Lack of spacing in receive QR screen
  • +
  • Better mnemonic backup screen
  • +
+ +

This release features the removal of the P2SH and SEGWIT references. We know have onchain HD Segwit wallets by default :)

+ +

+ +

bluewallet.io

+ + +
+ +
+ +
+
+
+ +

BlueWallet introduces Lapp Browser and Lapp Marketplace

+

+ +
+ + +
+
+ +

Bluewallet 4.2.0

+

4.2.0 is out for iOS and android. With a massive update! 🤯

+ +
+ + +
+
+
+ + +
+

Related Posts

+ + + + + + +
+ + + +
+ + + +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/v5-0-0-coldcard-wallet-support/index.html b/_site/v5-0-0-coldcard-wallet-support/index.html new file mode 100644 index 0000000..32d338a --- /dev/null +++ b/_site/v5-0-0-coldcard-wallet-support/index.html @@ -0,0 +1,749 @@ + + + + + + + + +v5.0.0 — Coldcard wallet support | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ +

v5.0.0 — Coldcard wallet support

+ + + +
+

Olá! 👋

+ +

I’m super excited for this one. It is a massive effort, and the result of many months of iterations to bring Coldcard support to Blue. Thanks to all contributors that brought to the app PSBT support (junderw), Hardware wallets support (StepanSnigirev) and the Coldcard integration (overtorment/marcosrdz), you guys rock!

+ +

Changelog

+ +
    +
  • ADD: Coldcard support
  • +
  • ADD: Import/Export transactions(txn files) for future broadcast
  • +
  • FIX: Allow capitalized bech32 addresses (closes #838)
  • +
  • FIX: lnurl scan to receive is not returning the correct view (closes #828)
  • +
  • FIX: Watch-only delete wallet doesn’t have confirmation now
  • +
  • FIX: Typo in spanish
  • +
+ +

+ +

How to use Coldcard with Bluewallet

+ +

Let’s have a look on how to use PSBT, watch-only wallets. And how to send transactions offline with your Coldcard and Bluewallet.

+ +
+ +
+ +

Bluewallet Bitcoin wallet + Coldcard Coldstorage

+ +
    +
  1. Start the Coldcard device, go to Advanced → MicroSD Card → Export Wallet → Electrum Wallet. Put the SD card into Coldcard. Choose Native Segwit. It should create wallet skeleton file on SD card.
  2. +
  3. Put the SD card into the PC and move the created wallet skeleton file onto the Dropbox folder.
  4. +
  5. Grab the iPhone, launch BlueWallet, tap Create a wallet → Import wallet → scan QR or import from file → tap file icon and choose your wallet skeleton file. It should import your Coldcard wallet as watch-only.
  6. +
  7. Create a transaction from this watch-only wallet, when prompted — export it to a file and save it in Dropbox folder.
  8. +
  9. Put the SD card back into the PC, and move the transaction file from Dropbox folder to the SD card.
  10. +
  11. Put the SD card into the Coldcard, go to Ready To Sign and proceed with signing the transaction.
  12. +
  13. Put the SD card into the PC. There should be 2 new files: a file with tge transaction hex that is ready to broadcast (*-final.txn), and a signed transaction file (*-signed.psbt). Let us finish the transaction on iPhone, so move signed transaction file to Dropbox.
  14. +
  15. On the iPhone, tap Open Signed Transaction, and choose the signed transaction file from your Dropbox. Tap Send now!
  16. +
+ +

Try it out! 👊

+ +

PS: Take in consideration that we used dropbox on this example, but anything will work, File system, iCloud, Bluetooth, AirDrop, box.com, direct lightning to sd card adapter, etc

+ +

That’s all for today. Reach out for any doubts, questions, feelings and violent reactions!

+ + + + +
+ +
+ +
+
+
+ +

Preparing for war — how was 2019 and a glimpse of the future

+

Preparing for war — how was 2019 and a glimpse of the future

+ +
+ + +
+
+ +

Introducing Local Trader — v5.2.0

+

Version 5.2.0 is out and it introduces some cool new features and a new Product. Let...

+ + +
+
+
+ + +
+

Related Posts

+ + + + + + +
+ + + +
+ + + +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/v5-3-5-SendMax-on-all-wallets-9f5566d51a09/index.html b/_site/v5-3-5-SendMax-on-all-wallets-9f5566d51a09/index.html new file mode 100644 index 0000000..0d35588 --- /dev/null +++ b/_site/v5-3-5-SendMax-on-all-wallets-9f5566d51a09/index.html @@ -0,0 +1,761 @@ + + + + + + + + +v5.3.5 — SendMax on all wallets | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ +

v5.3.5 — SendMax on all wallets

+ + + +
+

Version 5.3.5 of BlueWallet Bitcoin wallet is out on iOS and android. And, as usual is full of improvements and bug fixes. Let’s take a closer look on them.

+ +

This version includes a major refactor on all wallet types. With PSBT, Send and SendMax features added to all wallets. Includes Bread wallet type, allowing easy import to BlueWallet.

+ +

+undefined

+ +

Users can now Sell FIAT and easily Buy Bitcoin directly in the wallet, through @MoonPayHQ in the US and EU. And @XanpoolOfficial in Southeast Asia.

+ +

+ +

Broadcast a transaction feature is now available from the Settings > Network > Broadcast. Or from your Wallet details.

+ +

+undefined

+ +

The Local Trader, a p2p marketplace, is now available from the main screen, making it easier to find it and to access it :)

+ +

+undefined

+ +

Changelog

+ +

NEW

+ +
    +
  • Import BIP38 (key+passphrase)
  • +
  • Support for Electrum Seed format, legacy BIP32
  • +
  • Send functionality for all wallet types (includes Bread wallets)
  • +
  • All wallet types can now “send MAX”
  • +
  • Allow to Sell Fiat through Moonpay and Xanpool
  • +
  • Refill lightning wallet with bank card
  • +
  • Local Trader moved to the Main screen
  • +
  • Broadcast transaction screen
  • +
+ +

FIXED

+ +
    +
  • Hide toolbar when keyboard is dismissed
  • +
  • Keyboard avoiding on small screens
  • +
  • Import on Toolbar touch
  • +
  • Move the sell fiat button to the list header
  • +
  • Cleaner Add wallet panel at empty state
  • +
  • iOS widget not working on some countries
  • +
  • Negative confirmation num for electrum personal server
  • +
+ +

If you like what we are doing, please consider leaving us a review on the app stores. It helps immensely our work and it takes less than 10s to do :)

+ +

iOS: http://apple.co/2QwnLzw 
+android: http://bit.ly/2XjBEnm

+ +

Backup your keys. Keep Building! 💙 👊

+ + +
+ +
+ +
+
+
+ +

Introducing Local Trader — v5.2.0

+

Version 5.2.0 is out and it introduces some cool new features and a new Product. Let...

+ + +
+
+ +

v5.5.0 — Buy Bitcoin without KYC, Cobo Vault support

+

Our last update was in May, and ho boy! We have been busy. On the latest versions a ...

+ + +
+
+
+ + +
+

Related Posts

+ + + + + + +
+ + + +
+ + + +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/v5-5-0-buy-bitcoin-without-kyc-cobo-vault-support/index.html b/_site/v5-5-0-buy-bitcoin-without-kyc-cobo-vault-support/index.html new file mode 100644 index 0000000..65a1d33 --- /dev/null +++ b/_site/v5-5-0-buy-bitcoin-without-kyc-cobo-vault-support/index.html @@ -0,0 +1,755 @@ + + + + + + + + +v5.5.0 — Buy Bitcoin without KYC, Cobo Vault support | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ +

v5.5.0 — Buy Bitcoin without KYC, Cobo Vault support

+ + + +
+

Our last update was in May, and ho boy! We have been busy. On the latest versions a lot of improvements were introduced, most notable the option to Buy Bitcoin from the Local Trader, a p2p marketplace. And, Cobo Vault support, with QR codes, air-gapped PSBTs, one of the first of its kind. Let’s take a closer look on the latest developments and updates. There’s a lot to tell :)

+ +

Cobo Vault support with QR codes PSBTs

+ +

Introduced on the version 5.4.4, PSBTs (partially signed bitcoin transactions) with QR codes, this is the first implementation of BCR-UR (animated QR codes) between software & hardware wallets.

+ +

A nice contribution and collaboration with the Cobo Vault team. Thank you!

+ +
+ +
+ +

Buy Bitcoin on Local Trader

+ +

v5.4.3 features the ability to buy on the “Local Trader”. A p2p marketplace where you control your funds. You can now login (w/@hodlhodl), view offers, view contracts and accept offers. More info on the Local Trader

+ +

+ +

Input local currency

+ +

We struggle to add this feature, but the requests won’t stop coming, and it is understandable. I hope this will help more than it will cause any problems related to exchange rates, price volatility, etc.\ +We are going to keep a look on its evolution closely.

+ +

Camera/Scan on the main screen

+ +

There’s now a fast access button from the main screen to access the camera directly. This can be use for different purposes, like, to scan a QR code, to make a payment, to receive a payment, to withdraw a Azte.co voucher, etc.

+ +

Entropy via coins and dice roll

+ +

version 5.4.4 also introduces a new advanced feature for the more advanced users out there that don’t want to trust BlueWallet entropy generation. Entropy for wallet generation with Coins and Dices. Have fun! :)

+ +

Support for Electrum wallet seeds

+ +

You can now easily import your Electrum generated wallets to BlueWallet with ease.

+ +

These are the notable changes, a lot more fixes and improvements were made under the hood. The summer is here, and we are not stopping, more goodies to come, more innovations to be released. Follow us on twitter to keep an eye on it.

+ +

We are a small team of Bitcoin users trying to help on how to bring Bitcoin to the people and the people to Bitcoin, through beautifully crafted open source software. How can you help?

+ +
    +
  • Are you a developer? Here is the place.
  • +
  • Not a developer. Give us a review on the app stores, that helps immensely. Join our beta access and help us test and bug fix. Provide feedback.
  • +
  • Are you a Bitcoin OG investor and you believe in what we are building? Drop me a line (n@bluewallet.io).
  • +
+ +

Thank you for reading and any feedback, comments, thoughts and violent reactions, I’m all yours. See you around!

+ + +
+ +
+ +
+
+
+ +

v5.3.5 — SendMax on all wallets

+

Version 5.3.5 of BlueWallet Bitcoin wallet is ou...

+ + +
+
+ +

v5.5.2 - Ground Control

+

+ +
+ + +
+
+
+ + +
+

Related Posts

+ + + + + + +
+ + + +
+ + + +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/v5-5-2-Ground-Control-87073ed44910/index.html b/_site/v5-5-2-Ground-Control-87073ed44910/index.html new file mode 100644 index 0000000..e98bf93 --- /dev/null +++ b/_site/v5-5-2-Ground-Control-87073ed44910/index.html @@ -0,0 +1,773 @@ + + + + + + + + +v5.5.2 - Ground Control | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ +

v5.5.2 - Ground Control

+ + + +
+

+ +

To Major Tom

+ +

Today we are releasing BlueWallet v5.5.2 and it brings 2 features that I would like to introduce and give a little walk through.

+ +

1. Push notifications

+ +

To make push notifications possible we develop a new Free and Open Source service called “Ground Control”.

+ +

Ground Control is a notifications center for Bitcoin wallets, that you will be able to run in a self-hosted fashion to not be depend on BlueWallet’s server.

+ +

+ +

It supports Bitcoin and LNDhub, receive transactions, pending and confirmed onchain transactions. It processes blocks and a mempool in search of subscribed onchain addresses in order to provide notifications for users. Built with typescript, expressjs, mariadb & openapi.

+ +

You can also easily setup your own Ground Control server, and have a more privacy-aware push notifications setup.

+ +

See more here:
+https://github.com/BlueWallet/GroundControl

+ +

+ +

2. LNurl-pay

+ +

Services that support LNurl-Pay (like @bitrefill) allow you to pay or easily repeat a payment without you having to open this service or ask to generate an invoice. Think about it as a UX improvement for Lightning.

+ +

+ +

LNurl-Pay can have some interesting use cases in the future, and going towards a more mobile-friendly type of interaction. For instance:

+ +
    +
  • Donation sites
  • +
  • Restaurant menus
  • +
  • Pricing tags in market shelves
  • +
  • Bike/scooter-sharing services and other indie stuff
  • +
  • Any site that wants to accept payments
  • +
+ +

Changelog v5.5.2

+ +

ADD: push notifications
+ADD: lnurl-pay support
+ADD: HodlHodl logout button
+ADD: Keychain clear if password is lost
+ADD: screen/wallets/details transactions count
+FIX: crashes after importing malformed xpub as watch-only
+FIX: Restore Change unit on balance tap
+FIX: When doing max amount, some scenarios would return invalid amount
+FIX: missing text on sendMAX dialog box confirmation
+FIX: Invoice creation darkmode
+FIX: Font-Color in Input Field “transaction notes”

+ +

Keep building! 💙 👊

+ +

We are a Bitcoin collective trying to help on how to bring Bitcoin to the people and the people to Bitcoin, through beautifully crafted open source software. How can you help?

+ +
    +
  • Are you a developer? Here is the place.
  • +
  • Not a developer. Give us a review on the app stores, that helps immensely. Join our beta access and help us test and bug fix. Provide feedback.
  • +
  • Are you a Bitcoin OG and you believe in what we are building? Drop me a line (n@bluewallet.io).
  • +
+ +

Thank you for reading and any feedback, comments, thoughts and violent reactions, I’m all yours. See you around!

+ + +
+ +
+ +
+
+
+ +

v5.5.0 — Buy Bitcoin without KYC, Cobo Vault support

+

Our last update was in May, and ho boy! We have been busy. On the latest versions a ...

+ + +
+
+ +

Bitcoin Wallet for Desktop - v5.5.6

+

+ +
+ + +
+
+
+ + +
+

Related Posts

+ + + + + + +
+ + + +
+ + + +
+
+ + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/watch-app.html b/_site/watch-app.html new file mode 100644 index 0000000..4fa0b78 --- /dev/null +++ b/_site/watch-app.html @@ -0,0 +1,630 @@ + + + + + + + + +Apple Watch app - Bitcoin and Lightning wallet for iOS and Apple Watch | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+ +
+
+
+

Watch App

+
+
+

A beautifully designed apple watch app for Bitcoin.
A first of its kind, by BlueWallet.

+ + download bitcoin wallet for ios + +
+
+
+
+
+
+
+ apple watch app for bitcoin +
+
+
+
+
+ +
+
+

Highlights

+
+
+
+

Your Wallets

+

Individual wallet details and basic functionality.

+
+
+
+
+

Receive/Send

+

Receive or Send payments directly
 on your wirst.

+
+
+
+
+

Transactions

+

See latest transactions from your wallets.

+
+
+
+
+
+
+
+ apple watch download bitcoin wallet for ios +
+
+ + + + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/_site/watch-only.html b/_site/watch-only.html new file mode 100644 index 0000000..d8a0c14 --- /dev/null +++ b/_site/watch-only.html @@ -0,0 +1,660 @@ + + + + + + + + +Watch-only Wallet - Bitcoin wallet for iOS and Android | BlueWallet - Bitcoin Wallet for iOS and Android + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+

Watch-only

+

Watch-only wallets allows you to keep an eye on your cold storage or paper wallet without touching your private key. Easily import your public address, xpub or ypub and watch it from your app without moving anything.

+
+ download bitcoin wallet for desktop +
+
+
+ +
+
+

Features

+
+
+
+

xpub/ypub/zpub

+

A x/y/zpub or master public key address can be passed to generate receiving addresses.

+
+
+
+
+

Public Address

+

Monitor individual addresses you want to keep an eye on.

+
+
+
+
+

Receive

+

Generate adresses and QR codes for receiving.

+
+
+
+
+

Offline Signing new

+

Send transactions by signing them offline or with another wallet.

+
+
+
+
+

Animated QR codes

+

To facilitate the experience for big transactons.

+
+
+
+
+

Hardware wallets

+

Support for your cold storage solution and hardware devices.

+
+
+
+
+
+ +
+
+

How to set up a watch-only wallet

+
+
+
+ download bitcoin wallet for desktop +

Tap on add wallet icon

+
+
+
+
+ download bitcoin wallet for desktop +

Tap "Import wallet" option

+
+
+
+
+ download bitcoin wallet for desktop +

Input or scan a QR code

+
+
+
+
+
+ +
+
+

Hardware Wallet support

+

Use your wallets with ease on your mobile app while leaving your keys in cold storage. Ability to create, send and receive transactions.

+
+ +
+
+
+ + + + +
+
+ + + + +
Help section
+ + +
Hardware Wallets
+ + +
Local Trader
+ + +
LNDhub
+ + + +
+
+ + +
+
+ + + + + + + + + +
+
+ + + +
+
+ +

Get the updates directly on your email

+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +

BlueWallet was forged in the ashes of the 2017 fork wars, in order to bring
 a powerful and Bitcoin only wallet for the community.

+ +
+
+
+
+ + download bitcoin wallet for ios + +
+
+ + download bitcoin wallet for android + +
+
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/about.md b/about.md new file mode 100644 index 0000000..e99bfb4 --- /dev/null +++ b/about.md @@ -0,0 +1,9 @@ +--- +layout: page +width: small +permalink: /about/ +title: BlueWallet - Bitcoin wallet +description: A Bitcoin wallet for iOS. Easy to use and secure +--- + +{% include about.html %} diff --git a/admin/config.yml b/admin/config.yml new file mode 100644 index 0000000..8cb6a75 --- /dev/null +++ b/admin/config.yml @@ -0,0 +1,54 @@ +# Everything you need to know about configuring the CMS can be found here:- +# https://www.netlifycms.org/docs/configuration-options/ + +backend: + name: git-gateway # Netlify’s Git Gateway connects to Git provider’s API + branch: master # Branch to update (master by default) + +media_folder: "assets/img/uploads" # Folder where user uploaded files should go + +publish_mode: editorial_workflow # Enable drafts + +collections: # A list of collections the CMS should be able to edit + # POSTS + - name: "post" # Used in routes, ie.: /admin/collections/:slug/edit + label: "Post" # Used in the UI, ie.: "New Post" + folder: "_posts" # The path to the folder where the documents are stored + sort: "date:desc" # Default is title:asc + create: true # Allow users to create new documents in this collection + slug: "{{year}}-{{month}}-{{day}}-{{slug}}" + fields: # The fields each document in this collection have + - {label: "Layout", name: "layout", widget: "hidden", default: "post"} + - {label: "Title", name: "title", widget: "string", tagname: "h1"} + - {label: "Publish Date", name: "date", widget: "datetime", format: "YYYY-MM-DD HH:mm:ss"} + - {label: "Intro Paragraph", name: "intro_paragraph", widget: "markdown", required: false} + - {label: "Body", name: "body", widget: "markdown", required: false} + - {label: "Categories", name: "categories", widget: "string", required: false} + # PAGES + - name: "page" + label: "Page" + folder: "/" + sort: "title:asc" + create: false + slug: "{{slug}}" + fields: + - {label: "Layout", name: "layout", widget: "hidden", default: "page"} + - {label: "Title", name: "title", widget: "string", tagname: "h1"} + - {label: "Permalink", name: "permalink", widget: "hidden"} + - {label: "Section", name: "section", widget: "hidden", default: "{{name}}"} + - {label: "Intro Paragraph", name: "intro_paragraph", widget: "markdown", required: false} + - {label: "Body", name: "body", widget: "markdown", required: false} + +# DOCS + - name: "docs" + label: "Docs" + folder: "_docs" + sort: "title:asc" + create: false + slug: "{{slug}}" + fields: + - {label: "Layout", name: "layout", widget: "hidden", default: "page"} + - {label: "Title", name: "title", widget: "string", tagname: "h1"} + - {label: "Permalink", name: "permalink", widget: "hidden"} + - {label: "Section", name: "section", widget: "hidden", default: "{{name}}"} + - {label: "Body", name: "body", widget: "markdown", required: false} \ No newline at end of file diff --git a/admin/index.html b/admin/index.html new file mode 100644 index 0000000..36e24bd --- /dev/null +++ b/admin/index.html @@ -0,0 +1,12 @@ + + + + + + Content Manager + + + + + + diff --git a/all_features.yml b/all_features.yml new file mode 100644 index 0000000..ae82355 --- /dev/null +++ b/all_features.yml @@ -0,0 +1,11 @@ +title: Payjoin + desc: Payjoin or Pay-to-endpoint, it's a feature that allows to break common chain analysis heuristics, where to participants build a transaction together. + +title: Plug-in your Bitcoin node + desc: Ability to plug-in your own Bitcoin Full node through Electrum Personal Server (EPS), ElectrumX or Electrs. Don't trust, verify for a maximum sovereignty. + +title: Offline mode + desc: In case you don't have internet connection, BlueWallet will allow you to generate wallets or addresses to be able to receive offline. + +title: Custom entropy + desc: Ability to manually generate entropy for wallet creation with Coins and Dices. This is an advanced feature, use with caution. diff --git a/assets/.DS_Store b/assets/.DS_Store new file mode 100644 index 0000000..b4fe35f Binary files /dev/null and b/assets/.DS_Store differ diff --git a/assets/css/main.scss b/assets/css/main.scss new file mode 100644 index 0000000..1f5a101 --- /dev/null +++ b/assets/css/main.scss @@ -0,0 +1,240 @@ +--- +# Only the main Sass file needs front matter (the dashes are enough) +--- + +.merda { + height: 598px; + @media (max-width: 767px) { + margin-bottom: 60px !important; + } +} +.uk-navbar { + padding: 26px 0; + a { + font-weight: 700; + } +} +.uk-heading-primary { + margin-bottom: 24px; +} +.uk-navbar-dropdown { + width: 260px !important; +} +.uk-navbar-dropdown-nav li { + font-size: 1rem; + padding: 4px 16px; + &:hover { + border-radius: 6px; + background: #F2F4F7; + } +} +.uk-nav-divider:hover { + background: transparent !important; +} +.bounce { + transition: all 0.5s ease; + &:active { + transform: scale(0.97); + } + @media (max-width: 767px) { + max-width: 200px; + } +} +.poster { + max-width: 300px; + height: 611px; + position: relative; + border-radius: 42px; + margin: 0 auto 60px auto; + padding: 0; + @media (min-width: 768px) { + width: 300px; + height: 611px; + position: absolute; + top: 40%; + left: 50%; + margin: -250px 0 0 -160px; + border-radius: 42px; + box-shadow: 0 45px 100px rgba(0, 0, 0, 0.4); + overflow: hidden; + flex: auto; + align-self: center; + justify-content: center; + padding: 0; + background-color: #1C1C1D; + } +} +@media (min-width: 768px) { + .poster .shine { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 100; + } +} +.poster .layer-4 { + position: absolute; + top: 0px; + left: -5px; + right: -3px; + bottom: -10px; + background-size: 100% auto; + background-repeat: no-repeat; + background-position: 0 0; + -webkit-transition: 0.1s; + transition: 0.1s; + background-image: url("{{ site.uploads | absolute_url }}/bluewallet.png"); +} +.uk-card:hover { + transition: all 0.2s ease; +} +.people img { + max-width: 80px; +} +.newsletter { + padding: 12px; + border: 1px solid #A5B7CA; + position: relative; + display: block; + overflow: hidden; + transition: all 0.4s ease; + @media (max-width: 767px) { + margin-bottom: 32px !important; + } + input.email { + height: 50px; + border: 0; + width: 100%; + font-size: 16px; + font-weight: 500; + color: #7E91AE; + &::placeholder { + color: #7E91AE; + } + &:active, &:focus { + outline: none; + } + } + input.mc-button { + height: 50px; + border: 0; + background: #0070FF; + border-radius: 6px; + padding: 0 32px; + color: #ffffff; + font-size: 16px; + display: inline-block; + font-weight: 600; + position: absolute; + right: 12px; + top: 12px; + @media (max-width: 767px) { + right: 6px; + padding: 0 8px; + font-size: 13px; + } + } +} +.socialinks { + font-size: 19px; + font-weight: 600; + a { + padding: 12px 16px !important; + color: #637082; + display: inline-block; + border-radius: 6px; + transition: all 0.3s ease; + &:hover { + background: #F2F4F7; + text-decoration: none; + color: #637082; + } + } +} +.imghere { + width: 100%; + max-width: 600px; + height: 50%; + margin: 72px auto 0 auto; + .localtrader { + max-width: 440px; + width: 100%; + } +} +.watch-demo img { + max-width: 580px; + width: 100%; +} +.videoWrapper { + position: relative; + padding-bottom: 56.25%; /* 16:9 */ + height: 0; +} +.features { + background: #F1F4F6; + border-radius: 8px; + display: block; + box-shadow: 0 3px 10px 0 rgba(0,0,0,0.1); + img { + max-width: 350px; + width: 100%; + } + .special { + max-width: 490px; + width: 100%; + } +} +.flex { + display: flex; +} +@media (max-width: 960px) { + .first-mobile { + order: 1; + } + .second-mobile { + order: 2; + } +} +.videoWrapper iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border-radius: 16px; +} +.explain img{ + max-width: 160px; +} +.reasons { + background: #F2F4F7; +} +.uk-badge { + border-radius: 500px; + background: #0070FF; + padding: 13px 20px; + display: inline-block; + color: #ffffff !important; + font-weight: bold; +} +// System fonts +@import "system-font-css/_system-font"; + +// Custom variables and variable overwrites. +@import "theme/variables"; + +// Import default variables and available mixins. +@import "uikit/variables-theme"; +@import "uikit/mixins-theme"; + +// Custom mixin overwrites. +@import "theme/mixins"; + +// Import UIkit. +@import "theme/uikit"; + +// Other vendor styles +// @import "syntax-highlighting/cld"; +@import "syntax-highlighting/bw"; \ No newline at end of file diff --git a/assets/img/location.svg b/assets/img/location.svg new file mode 100644 index 0000000..e71e58b --- /dev/null +++ b/assets/img/location.svg @@ -0,0 +1,13 @@ + + + + location-dark + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/assets/img/uploads/1.png b/assets/img/uploads/1.png new file mode 100644 index 0000000..d36ec1f Binary files /dev/null and b/assets/img/uploads/1.png differ diff --git a/assets/img/uploads/10.png b/assets/img/uploads/10.png new file mode 100644 index 0000000..1fc8c69 Binary files /dev/null and b/assets/img/uploads/10.png differ diff --git a/assets/img/uploads/11.png b/assets/img/uploads/11.png new file mode 100644 index 0000000..57fe607 Binary files /dev/null and b/assets/img/uploads/11.png differ diff --git a/assets/img/uploads/2.png b/assets/img/uploads/2.png new file mode 100644 index 0000000..ce75dd3 Binary files /dev/null and b/assets/img/uploads/2.png differ diff --git a/assets/img/uploads/3.png b/assets/img/uploads/3.png new file mode 100644 index 0000000..36f8419 Binary files /dev/null and b/assets/img/uploads/3.png differ diff --git a/assets/img/uploads/4.png b/assets/img/uploads/4.png new file mode 100644 index 0000000..3b211d8 Binary files /dev/null and b/assets/img/uploads/4.png differ diff --git a/assets/img/uploads/5.png b/assets/img/uploads/5.png new file mode 100644 index 0000000..3a71700 Binary files /dev/null and b/assets/img/uploads/5.png differ diff --git a/assets/img/uploads/6.png b/assets/img/uploads/6.png new file mode 100644 index 0000000..3827e21 Binary files /dev/null and b/assets/img/uploads/6.png differ diff --git a/assets/img/uploads/7.png b/assets/img/uploads/7.png new file mode 100644 index 0000000..355b6ef Binary files /dev/null and b/assets/img/uploads/7.png differ diff --git a/assets/img/uploads/8.png b/assets/img/uploads/8.png new file mode 100644 index 0000000..904627c Binary files /dev/null and b/assets/img/uploads/8.png differ diff --git a/assets/img/uploads/9.png b/assets/img/uploads/9.png new file mode 100644 index 0000000..4470e4d Binary files /dev/null and b/assets/img/uploads/9.png differ diff --git a/assets/img/uploads/screenshot-2019-08-21-at-16.57.46.png b/assets/img/uploads/screenshot-2019-08-21-at-16.57.46.png new file mode 100644 index 0000000..6f75967 Binary files /dev/null and b/assets/img/uploads/screenshot-2019-08-21-at-16.57.46.png differ diff --git a/assets/img/uploads/screenshot-2019-08-21-at-16.57.54.png b/assets/img/uploads/screenshot-2019-08-21-at-16.57.54.png new file mode 100644 index 0000000..fa0bd6c Binary files /dev/null and b/assets/img/uploads/screenshot-2019-08-21-at-16.57.54.png differ diff --git a/assets/js/custom.js b/assets/js/custom.js new file mode 100644 index 0000000..8035531 --- /dev/null +++ b/assets/js/custom.js @@ -0,0 +1 @@ +// Custom scripts \ No newline at end of file diff --git a/assets/js/main.js b/assets/js/main.js new file mode 100644 index 0000000..2de3236 --- /dev/null +++ b/assets/js/main.js @@ -0,0 +1,9143 @@ +(function(global, factory) { + typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define("uikit", factory) : (global = global || self, + global.UIkit = factory()); +})(this, function() { + "use strict"; + function bind(fn, context) { + return function(a) { + var l = arguments.length; + return l ? l > 1 ? fn.apply(context, arguments) : fn.call(context, a) : fn.call(context); + }; + } + var objPrototype = Object.prototype; + var hasOwnProperty = objPrototype.hasOwnProperty; + function hasOwn(obj, key) { + return hasOwnProperty.call(obj, key); + } + var hyphenateCache = {}; + var hyphenateRe = /([a-z\d])([A-Z])/g; + function hyphenate(str) { + if (!(str in hyphenateCache)) { + hyphenateCache[str] = str.replace(hyphenateRe, "$1-$2").toLowerCase(); + } + return hyphenateCache[str]; + } + var camelizeRe = /-(\w)/g; + function camelize(str) { + return str.replace(camelizeRe, toUpper); + } + function toUpper(_, c) { + return c ? c.toUpperCase() : ""; + } + function ucfirst(str) { + return str.length ? toUpper(null, str.charAt(0)) + str.slice(1) : ""; + } + var strPrototype = String.prototype; + var startsWithFn = strPrototype.startsWith || function(search) { + return this.lastIndexOf(search, 0) === 0; + }; + function startsWith(str, search) { + return startsWithFn.call(str, search); + } + var endsWithFn = strPrototype.endsWith || function(search) { + return this.substr(-search.length) === search; + }; + function endsWith(str, search) { + return endsWithFn.call(str, search); + } + var includesFn = function(search) { + return ~this.indexOf(search); + }; + var includesStr = strPrototype.includes || includesFn; + var includesArray = Array.prototype.includes || includesFn; + function includes(obj, search) { + return obj && (isString(obj) ? includesStr : includesArray).call(obj, search); + } + var isArray = Array.isArray; + function isFunction(obj) { + return typeof obj === "function"; + } + function isObject(obj) { + return obj !== null && typeof obj === "object"; + } + function isPlainObject(obj) { + return isObject(obj) && Object.getPrototypeOf(obj) === objPrototype; + } + function isWindow(obj) { + return isObject(obj) && obj === obj.window; + } + function isDocument(obj) { + return isObject(obj) && obj.nodeType === 9; + } + function isJQuery(obj) { + return isObject(obj) && !!obj.jquery; + } + function isNode(obj) { + return obj instanceof Node || isObject(obj) && obj.nodeType >= 1; + } + var toString = objPrototype.toString; + function isNodeCollection(obj) { + return toString.call(obj).match(/^\[object (NodeList|HTMLCollection)\]$/); + } + function isBoolean(value) { + return typeof value === "boolean"; + } + function isString(value) { + return typeof value === "string"; + } + function isNumber(value) { + return typeof value === "number"; + } + function isNumeric(value) { + return isNumber(value) || isString(value) && !isNaN(value - parseFloat(value)); + } + function isUndefined(value) { + return value === void 0; + } + function toBoolean(value) { + return isBoolean(value) ? value : value === "true" || value === "1" || value === "" ? true : value === "false" || value === "0" ? false : value; + } + function toNumber(value) { + var number = Number(value); + return !isNaN(number) ? number : false; + } + function toFloat(value) { + return parseFloat(value) || 0; + } + function toNode(element) { + return isNode(element) || isWindow(element) || isDocument(element) ? element : isNodeCollection(element) || isJQuery(element) ? element[0] : isArray(element) ? toNode(element[0]) : null; + } + var arrayProto = Array.prototype; + function toNodes(element) { + return isNode(element) ? [ element ] : isNodeCollection(element) ? arrayProto.slice.call(element) : isArray(element) ? element.map(toNode).filter(Boolean) : isJQuery(element) ? element.toArray() : []; + } + function toList(value) { + return isArray(value) ? value : isString(value) ? value.split(/,(?![^(]*\))/).map(function(value) { + return isNumeric(value) ? toNumber(value) : toBoolean(value.trim()); + }) : [ value ]; + } + function toMs(time) { + return !time ? 0 : endsWith(time, "ms") ? toFloat(time) : toFloat(time) * 1e3; + } + function isEqual(value, other) { + return value === other || isObject(value) && isObject(other) && Object.keys(value).length === Object.keys(other).length && each(value, function(val, key) { + return val === other[key]; + }); + } + function swap(value, a, b) { + return value.replace(new RegExp(a + "|" + b, "mg"), function(match) { + return match === a ? b : a; + }); + } + var assign = Object.assign || function(target) { + var args = [], len = arguments.length - 1; + while (len-- > 0) args[len] = arguments[len + 1]; + target = Object(target); + for (var i = 0; i < args.length; i++) { + var source = args[i]; + if (source !== null) { + for (var key in source) { + if (hasOwn(source, key)) { + target[key] = source[key]; + } + } + } + } + return target; + }; + function each(obj, cb) { + for (var key in obj) { + if (false === cb(obj[key], key)) { + return false; + } + } + return true; + } + function sortBy(collection, prop) { + return collection.sort(function(ref, ref$1) { + var propA = ref[prop]; + if (propA === void 0) propA = 0; + var propB = ref$1[prop]; + if (propB === void 0) propB = 0; + return propA > propB ? 1 : propB > propA ? -1 : 0; + }); + } + function clamp(number, min, max) { + if (min === void 0) min = 0; + if (max === void 0) max = 1; + return Math.min(Math.max(toNumber(number) || 0, min), max); + } + function noop() {} + function intersectRect(r1, r2) { + return r1.left < r2.right && r1.right > r2.left && r1.top < r2.bottom && r1.bottom > r2.top; + } + function pointInRect(point, rect) { + return point.x <= rect.right && point.x >= rect.left && point.y <= rect.bottom && point.y >= rect.top; + } + var Dimensions = { + ratio: function(dimensions, prop, value) { + var obj; + var aProp = prop === "width" ? "height" : "width"; + return obj = {}, obj[aProp] = dimensions[prop] ? Math.round(value * dimensions[aProp] / dimensions[prop]) : dimensions[aProp], + obj[prop] = value, obj; + }, + contain: function(dimensions, maxDimensions) { + var this$1 = this; + dimensions = assign({}, dimensions); + each(dimensions, function(_, prop) { + return dimensions = dimensions[prop] > maxDimensions[prop] ? this$1.ratio(dimensions, prop, maxDimensions[prop]) : dimensions; + }); + return dimensions; + }, + cover: function(dimensions, maxDimensions) { + var this$1 = this; + dimensions = this.contain(dimensions, maxDimensions); + each(dimensions, function(_, prop) { + return dimensions = dimensions[prop] < maxDimensions[prop] ? this$1.ratio(dimensions, prop, maxDimensions[prop]) : dimensions; + }); + return dimensions; + } + }; + function attr(element, name, value) { + if (isObject(name)) { + for (var key in name) { + attr(element, key, name[key]); + } + return; + } + if (isUndefined(value)) { + element = toNode(element); + return element && element.getAttribute(name); + } else { + toNodes(element).forEach(function(element) { + if (isFunction(value)) { + value = value.call(element, attr(element, name)); + } + if (value === null) { + removeAttr(element, name); + } else { + element.setAttribute(name, value); + } + }); + } + } + function hasAttr(element, name) { + return toNodes(element).some(function(element) { + return element.hasAttribute(name); + }); + } + function removeAttr(element, name) { + element = toNodes(element); + name.split(" ").forEach(function(name) { + return element.forEach(function(element) { + return element.removeAttribute(name); + }); + }); + } + function data(element, attribute) { + for (var i = 0, attrs = [ attribute, "data-" + attribute ]; i < attrs.length; i++) { + if (hasAttr(element, attrs[i])) { + return attr(element, attrs[i]); + } + } + } + function query(selector, context) { + return toNode(selector) || find(selector, getContext(selector, context)); + } + function queryAll(selector, context) { + var nodes = toNodes(selector); + return nodes.length && nodes || findAll(selector, getContext(selector, context)); + } + function getContext(selector, context) { + if (context === void 0) context = document; + return isContextSelector(selector) || isDocument(context) ? context : context.ownerDocument; + } + function find(selector, context) { + return toNode(_query(selector, context, "querySelector")); + } + function findAll(selector, context) { + return toNodes(_query(selector, context, "querySelectorAll")); + } + function _query(selector, context, queryFn) { + if (context === void 0) context = document; + if (!selector || !isString(selector)) { + return null; + } + selector = selector.replace(contextSanitizeRe, "$1 *"); + var removes; + if (isContextSelector(selector)) { + removes = []; + selector = selector.split(",").map(function(selector, i) { + var ctx = context; + selector = selector.trim(); + if (selector[0] === "!") { + var selectors = selector.substr(1).trim().split(" "); + ctx = closest(context.parentNode, selectors[0]); + selector = selectors.slice(1).join(" ").trim(); + } + if (selector[0] === "-") { + var selectors$1 = selector.substr(1).trim().split(" "); + var prev = (ctx || context).previousElementSibling; + ctx = matches(prev, selector.substr(1)) ? prev : null; + selector = selectors$1.slice(1).join(" "); + } + if (!ctx) { + return null; + } + if (!ctx.id) { + ctx.id = "uk-" + Date.now() + i; + removes.push(function() { + return removeAttr(ctx, "id"); + }); + } + return "#" + escape(ctx.id) + " " + selector; + }).filter(Boolean).join(","); + context = document; + } + try { + return context[queryFn](selector); + } catch (e) { + return null; + } finally { + removes && removes.forEach(function(remove) { + return remove(); + }); + } + } + var contextSelectorRe = /(^|,)\s*[!>+~-]/; + var contextSanitizeRe = /([!>+~-])(?=\s+[!>+~-]|\s*$)/g; + function isContextSelector(selector) { + return isString(selector) && selector.match(contextSelectorRe); + } + var elProto = Element.prototype; + var matchesFn = elProto.matches || elProto.webkitMatchesSelector || elProto.msMatchesSelector; + function matches(element, selector) { + return toNodes(element).some(function(element) { + return matchesFn.call(element, selector); + }); + } + var closestFn = elProto.closest || function(selector) { + var ancestor = this; + do { + if (matches(ancestor, selector)) { + return ancestor; + } + ancestor = ancestor.parentNode; + } while (ancestor && ancestor.nodeType === 1); + }; + function closest(element, selector) { + if (startsWith(selector, ">")) { + selector = selector.slice(1); + } + return isNode(element) ? element.parentNode && closestFn.call(element, selector) : toNodes(element).map(function(element) { + return closest(element, selector); + }).filter(Boolean); + } + function parents(element, selector) { + var elements = []; + var parent = toNode(element).parentNode; + while (parent && parent.nodeType === 1) { + if (matches(parent, selector)) { + elements.push(parent); + } + parent = parent.parentNode; + } + return elements; + } + var escapeFn = window.CSS && CSS.escape || function(css) { + return css.replace(/([^\x7f-\uFFFF\w-])/g, function(match) { + return "\\" + match; + }); + }; + function escape(css) { + return isString(css) ? escapeFn.call(null, css) : ""; + } + var voidElements = { + area: true, + base: true, + br: true, + col: true, + embed: true, + hr: true, + img: true, + input: true, + keygen: true, + link: true, + menuitem: true, + meta: true, + param: true, + source: true, + track: true, + wbr: true + }; + function isVoidElement(element) { + return toNodes(element).some(function(element) { + return voidElements[element.tagName.toLowerCase()]; + }); + } + function isVisible(element) { + return toNodes(element).some(function(element) { + return element.offsetWidth || element.offsetHeight || element.getClientRects().length; + }); + } + var selInput = "input,select,textarea,button"; + function isInput(element) { + return toNodes(element).some(function(element) { + return matches(element, selInput); + }); + } + function filter(element, selector) { + return toNodes(element).filter(function(element) { + return matches(element, selector); + }); + } + function within(element, selector) { + return !isString(selector) ? element === selector || (isDocument(selector) ? selector.documentElement : toNode(selector)).contains(toNode(element)) : matches(element, selector) || closest(element, selector); + } + var isIE = /msie|trident/i.test(window.navigator.userAgent); + var isRtl = attr(document.documentElement, "dir") === "rtl"; + var hasTouchEvents = "ontouchstart" in window; + var hasPointerEvents = window.PointerEvent; + var hasTouch = hasTouchEvents || window.DocumentTouch && document instanceof DocumentTouch || navigator.maxTouchPoints; + var pointerDown = hasPointerEvents ? "pointerdown" : hasTouchEvents ? "touchstart" : "mousedown"; + var pointerMove = hasPointerEvents ? "pointermove" : hasTouchEvents ? "touchmove" : "mousemove"; + var pointerUp = hasPointerEvents ? "pointerup" : hasTouchEvents ? "touchend" : "mouseup"; + var pointerEnter = hasPointerEvents ? "pointerenter" : hasTouchEvents ? "" : "mouseenter"; + var pointerLeave = hasPointerEvents ? "pointerleave" : hasTouchEvents ? "" : "mouseleave"; + var pointerCancel = hasPointerEvents ? "pointercancel" : "touchcancel"; + function on() { + var args = [], len = arguments.length; + while (len--) args[len] = arguments[len]; + var ref = getArgs(args); + var targets = ref[0]; + var type = ref[1]; + var selector = ref[2]; + var listener = ref[3]; + var useCapture = ref[4]; + targets = toEventTargets(targets); + if (selector) { + listener = delegate(targets, selector, listener); + } + if (listener.length > 1) { + listener = detail(listener); + } + type.split(" ").forEach(function(type) { + return targets.forEach(function(target) { + return target.addEventListener(type, listener, useCapture); + }); + }); + return function() { + return off(targets, type, listener, useCapture); + }; + } + function off(targets, type, listener, useCapture) { + if (useCapture === void 0) useCapture = false; + targets = toEventTargets(targets); + type.split(" ").forEach(function(type) { + return targets.forEach(function(target) { + return target.removeEventListener(type, listener, useCapture); + }); + }); + } + function once() { + var args = [], len = arguments.length; + while (len--) args[len] = arguments[len]; + var ref = getArgs(args); + var element = ref[0]; + var type = ref[1]; + var selector = ref[2]; + var listener = ref[3]; + var useCapture = ref[4]; + var condition = ref[5]; + var off = on(element, type, selector, function(e) { + var result = !condition || condition(e); + if (result) { + off(); + listener(e, result); + } + }, useCapture); + return off; + } + function trigger(targets, event, detail) { + return toEventTargets(targets).reduce(function(notCanceled, target) { + return notCanceled && target.dispatchEvent(createEvent(event, true, true, detail)); + }, true); + } + function createEvent(e, bubbles, cancelable, detail) { + if (bubbles === void 0) bubbles = true; + if (cancelable === void 0) cancelable = false; + if (isString(e)) { + var event = document.createEvent("CustomEvent"); + event.initCustomEvent(e, bubbles, cancelable, detail); + e = event; + } + return e; + } + function getArgs(args) { + if (isFunction(args[2])) { + args.splice(2, 0, false); + } + return args; + } + function delegate(delegates, selector, listener) { + var this$1 = this; + return function(e) { + delegates.forEach(function(delegate) { + var current = selector[0] === ">" ? findAll(selector, delegate).reverse().filter(function(element) { + return within(e.target, element); + })[0] : closest(e.target, selector); + if (current) { + e.delegate = delegate; + e.current = current; + listener.call(this$1, e); + } + }); + }; + } + function detail(listener) { + return function(e) { + return isArray(e.detail) ? listener.apply(void 0, [ e ].concat(e.detail)) : listener(e); + }; + } + function isEventTarget(target) { + return target && "addEventListener" in target; + } + function toEventTarget(target) { + return isEventTarget(target) ? target : toNode(target); + } + function toEventTargets(target) { + return isArray(target) ? target.map(toEventTarget).filter(Boolean) : isString(target) ? findAll(target) : isEventTarget(target) ? [ target ] : toNodes(target); + } + function preventClick() { + var timer = setTimeout(once(document, "click", function(e) { + e.preventDefault(); + e.stopImmediatePropagation(); + clearTimeout(timer); + }, true)); + trigger(document, pointerCancel); + } + var Promise = "Promise" in window ? window.Promise : PromiseFn; + var Deferred = function() { + var this$1 = this; + this.promise = new Promise(function(resolve, reject) { + this$1.reject = reject; + this$1.resolve = resolve; + }); + }; + var RESOLVED = 0; + var REJECTED = 1; + var PENDING = 2; + var async = "setImmediate" in window ? setImmediate : setTimeout; + function PromiseFn(executor) { + this.state = PENDING; + this.value = undefined; + this.deferred = []; + var promise = this; + try { + executor(function(x) { + promise.resolve(x); + }, function(r) { + promise.reject(r); + }); + } catch (e) { + promise.reject(e); + } + } + PromiseFn.reject = function(r) { + return new PromiseFn(function(resolve, reject) { + reject(r); + }); + }; + PromiseFn.resolve = function(x) { + return new PromiseFn(function(resolve, reject) { + resolve(x); + }); + }; + PromiseFn.all = function all(iterable) { + return new PromiseFn(function(resolve, reject) { + var result = []; + var count = 0; + if (iterable.length === 0) { + resolve(result); + } + function resolver(i) { + return function(x) { + result[i] = x; + count += 1; + if (count === iterable.length) { + resolve(result); + } + }; + } + for (var i = 0; i < iterable.length; i += 1) { + PromiseFn.resolve(iterable[i]).then(resolver(i), reject); + } + }); + }; + PromiseFn.race = function race(iterable) { + return new PromiseFn(function(resolve, reject) { + for (var i = 0; i < iterable.length; i += 1) { + PromiseFn.resolve(iterable[i]).then(resolve, reject); + } + }); + }; + var p = PromiseFn.prototype; + p.resolve = function resolve(x) { + var promise = this; + if (promise.state === PENDING) { + if (x === promise) { + throw new TypeError("Promise settled with itself."); + } + var called = false; + try { + var then = x && x.then; + if (x !== null && isObject(x) && isFunction(then)) { + then.call(x, function(x) { + if (!called) { + promise.resolve(x); + } + called = true; + }, function(r) { + if (!called) { + promise.reject(r); + } + called = true; + }); + return; + } + } catch (e) { + if (!called) { + promise.reject(e); + } + return; + } + promise.state = RESOLVED; + promise.value = x; + promise.notify(); + } + }; + p.reject = function reject(reason) { + var promise = this; + if (promise.state === PENDING) { + if (reason === promise) { + throw new TypeError("Promise settled with itself."); + } + promise.state = REJECTED; + promise.value = reason; + promise.notify(); + } + }; + p.notify = function notify() { + var this$1 = this; + async(function() { + if (this$1.state !== PENDING) { + while (this$1.deferred.length) { + var ref = this$1.deferred.shift(); + var onResolved = ref[0]; + var onRejected = ref[1]; + var resolve = ref[2]; + var reject = ref[3]; + try { + if (this$1.state === RESOLVED) { + if (isFunction(onResolved)) { + resolve(onResolved.call(undefined, this$1.value)); + } else { + resolve(this$1.value); + } + } else if (this$1.state === REJECTED) { + if (isFunction(onRejected)) { + resolve(onRejected.call(undefined, this$1.value)); + } else { + reject(this$1.value); + } + } + } catch (e) { + reject(e); + } + } + } + }); + }; + p.then = function then(onResolved, onRejected) { + var this$1 = this; + return new PromiseFn(function(resolve, reject) { + this$1.deferred.push([ onResolved, onRejected, resolve, reject ]); + this$1.notify(); + }); + }; + p.catch = function(onRejected) { + return this.then(undefined, onRejected); + }; + function ajax(url, options) { + return new Promise(function(resolve, reject) { + var env = assign({ + data: null, + method: "GET", + headers: {}, + xhr: new XMLHttpRequest(), + beforeSend: noop, + responseType: "" + }, options); + env.beforeSend(env); + var xhr = env.xhr; + for (var prop in env) { + if (prop in xhr) { + try { + xhr[prop] = env[prop]; + } catch (e) {} + } + } + xhr.open(env.method.toUpperCase(), url); + for (var header in env.headers) { + xhr.setRequestHeader(header, env.headers[header]); + } + on(xhr, "load", function() { + if (xhr.status === 0 || xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) { + resolve(xhr); + } else { + reject(assign(Error(xhr.statusText), { + xhr: xhr, + status: xhr.status + })); + } + }); + on(xhr, "error", function() { + return reject(assign(Error("Network Error"), { + xhr: xhr + })); + }); + on(xhr, "timeout", function() { + return reject(assign(Error("Network Timeout"), { + xhr: xhr + })); + }); + xhr.send(env.data); + }); + } + function getImage(src, srcset, sizes) { + return new Promise(function(resolve, reject) { + var img = new Image(); + img.onerror = reject; + img.onload = function() { + return resolve(img); + }; + sizes && (img.sizes = sizes); + srcset && (img.srcset = srcset); + img.src = src; + }); + } + function ready(fn) { + if (document.readyState !== "loading") { + fn(); + return; + } + var unbind = on(document, "DOMContentLoaded", function() { + unbind(); + fn(); + }); + } + function index(element, ref) { + return ref ? toNodes(element).indexOf(toNode(ref)) : toNodes((element = toNode(element)) && element.parentNode.children).indexOf(element); + } + function getIndex(i, elements, current, finite) { + if (current === void 0) current = 0; + if (finite === void 0) finite = false; + elements = toNodes(elements); + var length = elements.length; + i = isNumeric(i) ? toNumber(i) : i === "next" ? current + 1 : i === "previous" ? current - 1 : index(elements, i); + if (finite) { + return clamp(i, 0, length - 1); + } + i %= length; + return i < 0 ? i + length : i; + } + function empty(element) { + element = $(element); + element.innerHTML = ""; + return element; + } + function html(parent, html) { + parent = $(parent); + return isUndefined(html) ? parent.innerHTML : append(parent.hasChildNodes() ? empty(parent) : parent, html); + } + function prepend(parent, element) { + parent = $(parent); + if (!parent.hasChildNodes()) { + return append(parent, element); + } else { + return insertNodes(element, function(element) { + return parent.insertBefore(element, parent.firstChild); + }); + } + } + function append(parent, element) { + parent = $(parent); + return insertNodes(element, function(element) { + return parent.appendChild(element); + }); + } + function before(ref, element) { + ref = $(ref); + return insertNodes(element, function(element) { + return ref.parentNode.insertBefore(element, ref); + }); + } + function after(ref, element) { + ref = $(ref); + return insertNodes(element, function(element) { + return ref.nextSibling ? before(ref.nextSibling, element) : append(ref.parentNode, element); + }); + } + function insertNodes(element, fn) { + element = isString(element) ? fragment(element) : element; + return element ? "length" in element ? toNodes(element).map(fn) : fn(element) : null; + } + function remove(element) { + toNodes(element).map(function(element) { + return element.parentNode && element.parentNode.removeChild(element); + }); + } + function wrapAll(element, structure) { + structure = toNode(before(element, structure)); + while (structure.firstChild) { + structure = structure.firstChild; + } + append(structure, element); + return structure; + } + function wrapInner(element, structure) { + return toNodes(toNodes(element).map(function(element) { + return element.hasChildNodes ? wrapAll(toNodes(element.childNodes), structure) : append(element, structure); + })); + } + function unwrap(element) { + toNodes(element).map(function(element) { + return element.parentNode; + }).filter(function(value, index, self) { + return self.indexOf(value) === index; + }).forEach(function(parent) { + before(parent, parent.childNodes); + remove(parent); + }); + } + var fragmentRe = /^\s*<(\w+|!)[^>]*>/; + var singleTagRe = /^<(\w+)\s*\/?>(?:<\/\1>)?$/; + function fragment(html) { + var matches$$1 = singleTagRe.exec(html); + if (matches$$1) { + return document.createElement(matches$$1[1]); + } + var container = document.createElement("div"); + if (fragmentRe.test(html)) { + container.insertAdjacentHTML("beforeend", html.trim()); + } else { + container.textContent = html; + } + return container.childNodes.length > 1 ? toNodes(container.childNodes) : container.firstChild; + } + function apply(node, fn) { + if (!node || node.nodeType !== 1) { + return; + } + fn(node); + node = node.firstElementChild; + while (node) { + apply(node, fn); + node = node.nextElementSibling; + } + } + function $(selector, context) { + return !isString(selector) ? toNode(selector) : isHtml(selector) ? toNode(fragment(selector)) : find(selector, context); + } + function $$(selector, context) { + return !isString(selector) ? toNodes(selector) : isHtml(selector) ? toNodes(fragment(selector)) : findAll(selector, context); + } + function isHtml(str) { + return str[0] === "<" || str.match(/^\s* 0) args[len] = arguments[len + 1]; + apply$1(element, args, "add"); + } + function removeClass(element) { + var args = [], len = arguments.length - 1; + while (len-- > 0) args[len] = arguments[len + 1]; + apply$1(element, args, "remove"); + } + function removeClasses(element, cls) { + attr(element, "class", function(value) { + return (value || "").replace(new RegExp("\\b" + cls + "\\b", "g"), ""); + }); + } + function replaceClass(element) { + var args = [], len = arguments.length - 1; + while (len-- > 0) args[len] = arguments[len + 1]; + args[0] && removeClass(element, args[0]); + args[1] && addClass(element, args[1]); + } + function hasClass(element, cls) { + return cls && toNodes(element).some(function(element) { + return element.classList.contains(cls.split(" ")[0]); + }); + } + function toggleClass(element) { + var args = [], len = arguments.length - 1; + while (len-- > 0) args[len] = arguments[len + 1]; + if (!args.length) { + return; + } + args = getArgs$1(args); + var force = !isString(args[args.length - 1]) ? args.pop() : []; + args = args.filter(Boolean); + toNodes(element).forEach(function(ref) { + var classList = ref.classList; + for (var i = 0; i < args.length; i++) { + supports.Force ? classList.toggle.apply(classList, [ args[i] ].concat(force)) : classList[(!isUndefined(force) ? force : !classList.contains(args[i])) ? "add" : "remove"](args[i]); + } + }); + } + function apply$1(element, args, fn) { + args = getArgs$1(args).filter(Boolean); + args.length && toNodes(element).forEach(function(ref) { + var classList = ref.classList; + supports.Multiple ? classList[fn].apply(classList, args) : args.forEach(function(cls) { + return classList[fn](cls); + }); + }); + } + function getArgs$1(args) { + return args.reduce(function(args, arg) { + return args.concat.call(args, isString(arg) && includes(arg, " ") ? arg.trim().split(" ") : arg); + }, []); + } + var supports = {}; + (function() { + var list = document.createElement("_").classList; + if (list) { + list.add("a", "b"); + list.toggle("c", false); + supports.Multiple = list.contains("b"); + supports.Force = !list.contains("c"); + } + list = null; + })(); + var cssNumber = { + "animation-iteration-count": true, + "column-count": true, + "fill-opacity": true, + "flex-grow": true, + "flex-shrink": true, + "font-weight": true, + "line-height": true, + opacity: true, + order: true, + orphans: true, + widows: true, + "z-index": true, + zoom: true + }; + function css(element, property, value) { + return toNodes(element).map(function(element) { + if (isString(property)) { + property = propName(property); + if (isUndefined(value)) { + return getStyle(element, property); + } else if (!value && !isNumber(value)) { + element.style.removeProperty(property); + } else { + element.style[property] = isNumeric(value) && !cssNumber[property] ? value + "px" : value; + } + } else if (isArray(property)) { + var styles = getStyles(element); + return property.reduce(function(props, property) { + props[property] = styles[propName(property)]; + return props; + }, {}); + } else if (isObject(property)) { + each(property, function(value, property) { + return css(element, property, value); + }); + } + return element; + })[0]; + } + function getStyles(element, pseudoElt) { + element = toNode(element); + return element.ownerDocument.defaultView.getComputedStyle(element, pseudoElt); + } + function getStyle(element, property, pseudoElt) { + return getStyles(element, pseudoElt)[property]; + } + var vars = {}; + function getCssVar(name) { + var docEl = document.documentElement; + if (!isIE) { + return getStyles(docEl).getPropertyValue("--uk-" + name); + } + if (!(name in vars)) { + var element = append(docEl, document.createElement("div")); + addClass(element, "uk-" + name); + vars[name] = getStyle(element, "content", ":before").replace(/^["'](.*)["']$/, "$1"); + remove(element); + } + return vars[name]; + } + var cssProps = {}; + function propName(name) { + var ret = cssProps[name]; + if (!ret) { + ret = cssProps[name] = vendorPropName(name) || name; + } + return ret; + } + var cssPrefixes = [ "webkit", "moz", "ms" ]; + var ref = document.createElement("_"); + var style = ref.style; + function vendorPropName(name) { + name = hyphenate(name); + if (name in style) { + return name; + } + var i = cssPrefixes.length, prefixedName; + while (i--) { + prefixedName = "-" + cssPrefixes[i] + "-" + name; + if (prefixedName in style) { + return prefixedName; + } + } + } + function transition(element, props, duration, timing) { + if (duration === void 0) duration = 400; + if (timing === void 0) timing = "linear"; + return Promise.all(toNodes(element).map(function(element) { + return new Promise(function(resolve, reject) { + for (var name in props) { + var value = css(element, name); + if (value === "") { + css(element, name, value); + } + } + var timer = setTimeout(function() { + return trigger(element, "transitionend"); + }, duration); + once(element, "transitionend transitioncanceled", function(ref) { + var type = ref.type; + clearTimeout(timer); + removeClass(element, "uk-transition"); + css(element, { + "transition-property": "", + "transition-duration": "", + "transition-timing-function": "" + }); + type === "transitioncanceled" ? reject() : resolve(); + }, false, function(ref) { + var target = ref.target; + return element === target; + }); + addClass(element, "uk-transition"); + css(element, assign({ + "transition-property": Object.keys(props).map(propName).join(","), + "transition-duration": duration + "ms", + "transition-timing-function": timing + }, props)); + }); + })); + } + var Transition = { + start: transition, + stop: function(element) { + trigger(element, "transitionend"); + return Promise.resolve(); + }, + cancel: function(element) { + trigger(element, "transitioncanceled"); + }, + inProgress: function(element) { + return hasClass(element, "uk-transition"); + } + }; + var animationPrefix = "uk-animation-"; + var clsCancelAnimation = "uk-cancel-animation"; + function animate(element, animation, duration, origin, out) { + var arguments$1 = arguments; + if (duration === void 0) duration = 200; + return Promise.all(toNodes(element).map(function(element) { + return new Promise(function(resolve, reject) { + if (hasClass(element, clsCancelAnimation)) { + requestAnimationFrame(function() { + return Promise.resolve().then(function() { + return animate.apply(void 0, arguments$1).then(resolve, reject); + }); + }); + return; + } + var cls = animation + " " + animationPrefix + (out ? "leave" : "enter"); + if (startsWith(animation, animationPrefix)) { + if (origin) { + cls += " uk-transform-origin-" + origin; + } + if (out) { + cls += " " + animationPrefix + "reverse"; + } + } + reset(); + once(element, "animationend animationcancel", function(ref) { + var type = ref.type; + var hasReset = false; + if (type === "animationcancel") { + reject(); + reset(); + } else { + resolve(); + Promise.resolve().then(function() { + hasReset = true; + reset(); + }); + } + requestAnimationFrame(function() { + if (!hasReset) { + addClass(element, clsCancelAnimation); + requestAnimationFrame(function() { + return removeClass(element, clsCancelAnimation); + }); + } + }); + }, false, function(ref) { + var target = ref.target; + return element === target; + }); + css(element, "animationDuration", duration + "ms"); + addClass(element, cls); + function reset() { + css(element, "animationDuration", ""); + removeClasses(element, animationPrefix + "\\S*"); + } + }); + })); + } + var inProgress = new RegExp(animationPrefix + "(enter|leave)"); + var Animation = { + in: function(element, animation, duration, origin) { + return animate(element, animation, duration, origin, false); + }, + out: function(element, animation, duration, origin) { + return animate(element, animation, duration, origin, true); + }, + inProgress: function(element) { + return inProgress.test(attr(element, "class")); + }, + cancel: function(element) { + trigger(element, "animationcancel"); + } + }; + var dirs = { + width: [ "x", "left", "right" ], + height: [ "y", "top", "bottom" ] + }; + function positionAt(element, target, elAttach, targetAttach, elOffset, targetOffset, flip, boundary) { + elAttach = getPos(elAttach); + targetAttach = getPos(targetAttach); + var flipped = { + element: elAttach, + target: targetAttach + }; + if (!element || !target) { + return flipped; + } + var dim = getDimensions(element); + var targetDim = getDimensions(target); + var position = targetDim; + moveTo(position, elAttach, dim, -1); + moveTo(position, targetAttach, targetDim, 1); + elOffset = getOffsets(elOffset, dim.width, dim.height); + targetOffset = getOffsets(targetOffset, targetDim.width, targetDim.height); + elOffset["x"] += targetOffset["x"]; + elOffset["y"] += targetOffset["y"]; + position.left += elOffset["x"]; + position.top += elOffset["y"]; + if (flip) { + var boundaries = [ getDimensions(window$1(element)) ]; + if (boundary) { + boundaries.unshift(getDimensions(boundary)); + } + each(dirs, function(ref, prop) { + var dir = ref[0]; + var align = ref[1]; + var alignFlip = ref[2]; + if (!(flip === true || includes(flip, dir))) { + return; + } + boundaries.some(function(boundary) { + var elemOffset = elAttach[dir] === align ? -dim[prop] : elAttach[dir] === alignFlip ? dim[prop] : 0; + var targetOffset = targetAttach[dir] === align ? targetDim[prop] : targetAttach[dir] === alignFlip ? -targetDim[prop] : 0; + if (position[align] < boundary[align] || position[align] + dim[prop] > boundary[alignFlip]) { + var centerOffset = dim[prop] / 2; + var centerTargetOffset = targetAttach[dir] === "center" ? -targetDim[prop] / 2 : 0; + return elAttach[dir] === "center" && (apply(centerOffset, centerTargetOffset) || apply(-centerOffset, -centerTargetOffset)) || apply(elemOffset, targetOffset); + } + function apply(elemOffset, targetOffset) { + var newVal = position[align] + elemOffset + targetOffset - elOffset[dir] * 2; + if (newVal >= boundary[align] && newVal + dim[prop] <= boundary[alignFlip]) { + position[align] = newVal; + [ "element", "target" ].forEach(function(el) { + flipped[el][dir] = !elemOffset ? flipped[el][dir] : flipped[el][dir] === dirs[prop][1] ? dirs[prop][2] : dirs[prop][1]; + }); + return true; + } + } + }); + }); + } + offset(element, position); + return flipped; + } + function offset(element, coordinates) { + element = toNode(element); + if (coordinates) { + var currentOffset = offset(element); + var pos = css(element, "position"); + [ "left", "top" ].forEach(function(prop) { + if (prop in coordinates) { + var value = css(element, prop); + css(element, prop, coordinates[prop] - currentOffset[prop] + toFloat(pos === "absolute" && value === "auto" ? position(element)[prop] : value)); + } + }); + return; + } + return getDimensions(element); + } + function getDimensions(element) { + element = toNode(element); + var ref = window$1(element); + var top = ref.pageYOffset; + var left = ref.pageXOffset; + if (isWindow(element)) { + var height = element.innerHeight; + var width = element.innerWidth; + return { + top: top, + left: left, + height: height, + width: width, + bottom: top + height, + right: left + width + }; + } + var style, hidden; + if (!isVisible(element)) { + style = attr(element, "style"); + hidden = attr(element, "hidden"); + attr(element, { + style: (style || "") + ";display:block !important;", + hidden: null + }); + } + var rect = element.getBoundingClientRect(); + if (!isUndefined(style)) { + attr(element, { + style: style, + hidden: hidden + }); + } + return { + height: rect.height, + width: rect.width, + top: rect.top + top, + left: rect.left + left, + bottom: rect.bottom + top, + right: rect.right + left + }; + } + function position(element) { + element = toNode(element); + var parent = element.offsetParent || docEl(element); + var parentOffset = offset(parent); + var ref = [ "top", "left" ].reduce(function(props, prop) { + var propName$$1 = ucfirst(prop); + props[prop] -= parentOffset[prop] + toFloat(css(element, "margin" + propName$$1)) + toFloat(css(parent, "border" + propName$$1 + "Width")); + return props; + }, offset(element)); + var top = ref.top; + var left = ref.left; + return { + top: top, + left: left + }; + } + var height = dimension("height"); + var width = dimension("width"); + function dimension(prop) { + var propName$$1 = ucfirst(prop); + return function(element, value) { + element = toNode(element); + if (isUndefined(value)) { + if (isWindow(element)) { + return element["inner" + propName$$1]; + } + if (isDocument(element)) { + var doc = element.documentElement; + return Math.max(doc["offset" + propName$$1], doc["scroll" + propName$$1]); + } + value = css(element, prop); + value = value === "auto" ? element["offset" + propName$$1] : toFloat(value) || 0; + return value - boxModelAdjust(prop, element); + } else { + css(element, prop, !value && value !== 0 ? "" : +value + boxModelAdjust(prop, element) + "px"); + } + }; + } + function boxModelAdjust(prop, element, sizing) { + if (sizing === void 0) sizing = "border-box"; + return css(element, "boxSizing") === sizing ? dirs[prop].slice(1).map(ucfirst).reduce(function(value, prop) { + return value + toFloat(css(element, "padding" + prop)) + toFloat(css(element, "border" + prop + "Width")); + }, 0) : 0; + } + function moveTo(position, attach, dim, factor) { + each(dirs, function(ref, prop) { + var dir = ref[0]; + var align = ref[1]; + var alignFlip = ref[2]; + if (attach[dir] === alignFlip) { + position[align] += dim[prop] * factor; + } else if (attach[dir] === "center") { + position[align] += dim[prop] * factor / 2; + } + }); + } + function getPos(pos) { + var x = /left|center|right/; + var y = /top|center|bottom/; + pos = (pos || "").split(" "); + if (pos.length === 1) { + pos = x.test(pos[0]) ? pos.concat([ "center" ]) : y.test(pos[0]) ? [ "center" ].concat(pos) : [ "center", "center" ]; + } + return { + x: x.test(pos[0]) ? pos[0] : "center", + y: y.test(pos[1]) ? pos[1] : "center" + }; + } + function getOffsets(offsets, width, height) { + var ref = (offsets || "").split(" "); + var x = ref[0]; + var y = ref[1]; + return { + x: x ? toFloat(x) * (endsWith(x, "%") ? width / 100 : 1) : 0, + y: y ? toFloat(y) * (endsWith(y, "%") ? height / 100 : 1) : 0 + }; + } + function flipPosition(pos) { + switch (pos) { + case "left": + return "right"; + + case "right": + return "left"; + + case "top": + return "bottom"; + + case "bottom": + return "top"; + + default: + return pos; + } + } + function isInView(element, topOffset, leftOffset) { + if (topOffset === void 0) topOffset = 0; + if (leftOffset === void 0) leftOffset = 0; + if (!isVisible(element)) { + return false; + } + element = toNode(element); + var win = window$1(element); + var client = element.getBoundingClientRect(); + var bounding = { + top: -topOffset, + left: -leftOffset, + bottom: topOffset + height(win), + right: leftOffset + width(win) + }; + return intersectRect(client, bounding) || pointInRect({ + x: client.left, + y: client.top + }, bounding); + } + function scrolledOver(element, heightOffset) { + if (heightOffset === void 0) heightOffset = 0; + if (!isVisible(element)) { + return 0; + } + element = toNode(element); + var win = window$1(element); + var doc = document$1(element); + var elHeight = element.offsetHeight + heightOffset; + var ref = offsetPosition(element); + var top = ref[0]; + var vp = height(win); + var vh = vp + Math.min(0, top - vp); + var diff = Math.max(0, vp - (height(doc) + heightOffset - (top + elHeight))); + return clamp((vh + win.pageYOffset - top) / ((vh + (elHeight - (diff < vp ? diff : 0))) / 100) / 100); + } + function scrollTop(element, top) { + element = toNode(element); + if (isWindow(element) || isDocument(element)) { + var ref = window$1(element); + var scrollTo = ref.scrollTo; + var pageXOffset = ref.pageXOffset; + scrollTo(pageXOffset, top); + } else { + element.scrollTop = top; + } + } + function offsetPosition(element) { + var offset = [ 0, 0 ]; + do { + offset[0] += element.offsetTop; + offset[1] += element.offsetLeft; + if (css(element, "position") === "fixed") { + var win = window$1(element); + offset[0] += win.pageYOffset; + offset[1] += win.pageXOffset; + return offset; + } + } while (element = element.offsetParent); + return offset; + } + function window$1(element) { + return isWindow(element) ? element : document$1(element).defaultView; + } + function document$1(element) { + return toNode(element).ownerDocument; + } + function docEl(element) { + return document$1(element).documentElement; + } + var fastdom = { + reads: [], + writes: [], + read: function(task) { + this.reads.push(task); + scheduleFlush(); + return task; + }, + write: function(task) { + this.writes.push(task); + scheduleFlush(); + return task; + }, + clear: function(task) { + return remove$1(this.reads, task) || remove$1(this.writes, task); + }, + flush: function() { + runTasks(this.reads); + runTasks(this.writes.splice(0, this.writes.length)); + this.scheduled = false; + if (this.reads.length || this.writes.length) { + scheduleFlush(); + } + } + }; + function scheduleFlush() { + if (!fastdom.scheduled) { + fastdom.scheduled = true; + requestAnimationFrame(fastdom.flush.bind(fastdom)); + } + } + function runTasks(tasks) { + var task; + while (task = tasks.shift()) { + task(); + } + } + function remove$1(array, item) { + var index = array.indexOf(item); + return !!~index && !!array.splice(index, 1); + } + function MouseTracker() {} + MouseTracker.prototype = { + positions: [], + position: null, + init: function() { + var this$1 = this; + this.positions = []; + this.position = null; + var ticking = false; + this.unbind = on(document, "mousemove", function(e) { + if (ticking) { + return; + } + setTimeout(function() { + var time = Date.now(); + var ref = this$1.positions; + var length = ref.length; + if (length && time - this$1.positions[length - 1].time > 100) { + this$1.positions.splice(0, length); + } + this$1.positions.push({ + time: time, + x: e.pageX, + y: e.pageY + }); + if (this$1.positions.length > 5) { + this$1.positions.shift(); + } + ticking = false; + }, 5); + ticking = true; + }); + }, + cancel: function() { + if (this.unbind) { + this.unbind(); + } + }, + movesTo: function(target) { + if (this.positions.length < 2) { + return false; + } + var p = offset(target); + var position$$1 = this.positions[this.positions.length - 1]; + var ref = this.positions; + var prevPos = ref[0]; + if (p.left <= position$$1.x && position$$1.x <= p.right && p.top <= position$$1.y && position$$1.y <= p.bottom) { + return false; + } + var points = [ [ { + x: p.left, + y: p.top + }, { + x: p.right, + y: p.bottom + } ], [ { + x: p.right, + y: p.top + }, { + x: p.left, + y: p.bottom + } ] ]; + if (p.right <= position$$1.x) ; else if (p.left >= position$$1.x) { + points[0].reverse(); + points[1].reverse(); + } else if (p.bottom <= position$$1.y) { + points[0].reverse(); + } else if (p.top >= position$$1.y) { + points[1].reverse(); + } + return !!points.reduce(function(result, point) { + return result + (slope(prevPos, point[0]) < slope(position$$1, point[0]) && slope(prevPos, point[1]) > slope(position$$1, point[1])); + }, 0); + } + }; + function slope(a, b) { + return (b.y - a.y) / (b.x - a.x); + } + var strats = {}; + strats.events = strats.created = strats.beforeConnect = strats.connected = strats.beforeDisconnect = strats.disconnected = strats.destroy = concatStrat; + strats.args = function(parentVal, childVal) { + return concatStrat(childVal || parentVal); + }; + strats.update = function(parentVal, childVal) { + return sortBy(concatStrat(parentVal, isFunction(childVal) ? { + read: childVal + } : childVal), "order"); + }; + strats.props = function(parentVal, childVal) { + if (isArray(childVal)) { + childVal = childVal.reduce(function(value, key) { + value[key] = String; + return value; + }, {}); + } + return strats.methods(parentVal, childVal); + }; + strats.computed = strats.methods = function(parentVal, childVal) { + return childVal ? parentVal ? assign({}, parentVal, childVal) : childVal : parentVal; + }; + strats.data = function(parentVal, childVal, vm) { + if (!vm) { + if (!childVal) { + return parentVal; + } + if (!parentVal) { + return childVal; + } + return function(vm) { + return mergeFnData(parentVal, childVal, vm); + }; + } + return mergeFnData(parentVal, childVal, vm); + }; + function mergeFnData(parentVal, childVal, vm) { + return strats.computed(isFunction(parentVal) ? parentVal.call(vm, vm) : parentVal, isFunction(childVal) ? childVal.call(vm, vm) : childVal); + } + function concatStrat(parentVal, childVal) { + parentVal = parentVal && !isArray(parentVal) ? [ parentVal ] : parentVal; + return childVal ? parentVal ? parentVal.concat(childVal) : isArray(childVal) ? childVal : [ childVal ] : parentVal; + } + function defaultStrat(parentVal, childVal) { + return isUndefined(childVal) ? parentVal : childVal; + } + function mergeOptions(parent, child, vm) { + var options = {}; + if (isFunction(child)) { + child = child.options; + } + if (child.extends) { + parent = mergeOptions(parent, child.extends, vm); + } + if (child.mixins) { + for (var i = 0, l = child.mixins.length; i < l; i++) { + parent = mergeOptions(parent, child.mixins[i], vm); + } + } + for (var key in parent) { + mergeKey(key); + } + for (var key$1 in child) { + if (!hasOwn(parent, key$1)) { + mergeKey(key$1); + } + } + function mergeKey(key) { + options[key] = (strats[key] || defaultStrat)(parent[key], child[key], vm); + } + return options; + } + function parseOptions(options, args) { + var obj; + if (args === void 0) args = []; + try { + return !options ? {} : startsWith(options, "{") ? JSON.parse(options) : args.length && !includes(options, ":") ? (obj = {}, + obj[args[0]] = options, obj) : options.split(";").reduce(function(options, option) { + var ref = option.split(/:(.*)/); + var key = ref[0]; + var value = ref[1]; + if (key && !isUndefined(value)) { + options[key.trim()] = value.trim(); + } + return options; + }, {}); + } catch (e) { + return {}; + } + } + var id = 0; + var Player = function(el) { + this.id = ++id; + this.el = toNode(el); + }; + Player.prototype.isVideo = function() { + return this.isYoutube() || this.isVimeo() || this.isHTML5(); + }; + Player.prototype.isHTML5 = function() { + return this.el.tagName === "VIDEO"; + }; + Player.prototype.isIFrame = function() { + return this.el.tagName === "IFRAME"; + }; + Player.prototype.isYoutube = function() { + return this.isIFrame() && !!this.el.src.match(/\/\/.*?youtube(-nocookie)?\.[a-z]+\/(watch\?v=[^&\s]+|embed)|youtu\.be\/.*/); + }; + Player.prototype.isVimeo = function() { + return this.isIFrame() && !!this.el.src.match(/vimeo\.com\/video\/.*/); + }; + Player.prototype.enableApi = function() { + var this$1 = this; + if (this.ready) { + return this.ready; + } + var youtube = this.isYoutube(); + var vimeo = this.isVimeo(); + var poller; + if (youtube || vimeo) { + return this.ready = new Promise(function(resolve) { + once(this$1.el, "load", function() { + if (youtube) { + var listener = function() { + return post(this$1.el, { + event: "listening", + id: this$1.id + }); + }; + poller = setInterval(listener, 100); + listener(); + } + }); + listen(function(data$$1) { + return youtube && data$$1.id === this$1.id && data$$1.event === "onReady" || vimeo && Number(data$$1.player_id) === this$1.id; + }).then(function() { + resolve(); + poller && clearInterval(poller); + }); + attr(this$1.el, "src", "" + this$1.el.src + (includes(this$1.el.src, "?") ? "&" : "?") + (youtube ? "enablejsapi=1" : "api=1&player_id=" + this$1.id)); + }); + } + return Promise.resolve(); + }; + Player.prototype.play = function() { + var this$1 = this; + if (!this.isVideo()) { + return; + } + if (this.isIFrame()) { + this.enableApi().then(function() { + return post(this$1.el, { + func: "playVideo", + method: "play" + }); + }); + } else if (this.isHTML5()) { + try { + var promise = this.el.play(); + if (promise) { + promise.catch(noop); + } + } catch (e) {} + } + }; + Player.prototype.pause = function() { + var this$1 = this; + if (!this.isVideo()) { + return; + } + if (this.isIFrame()) { + this.enableApi().then(function() { + return post(this$1.el, { + func: "pauseVideo", + method: "pause" + }); + }); + } else if (this.isHTML5()) { + this.el.pause(); + } + }; + Player.prototype.mute = function() { + var this$1 = this; + if (!this.isVideo()) { + return; + } + if (this.isIFrame()) { + this.enableApi().then(function() { + return post(this$1.el, { + func: "mute", + method: "setVolume", + value: 0 + }); + }); + } else if (this.isHTML5()) { + this.el.muted = true; + attr(this.el, "muted", ""); + } + }; + function post(el, cmd) { + try { + el.contentWindow.postMessage(JSON.stringify(assign({ + event: "command" + }, cmd)), "*"); + } catch (e) {} + } + function listen(cb) { + return new Promise(function(resolve) { + once(window, "message", function(_, data$$1) { + return resolve(data$$1); + }, false, function(ref) { + var data$$1 = ref.data; + if (!data$$1 || !isString(data$$1)) { + return; + } + try { + data$$1 = JSON.parse(data$$1); + } catch (e) { + return; + } + return data$$1 && cb(data$$1); + }); + }); + } + var IntersectionObserver = "IntersectionObserver" in window ? window.IntersectionObserver : function() { + function IntersectionObserverClass(callback, ref) { + var this$1 = this; + if (ref === void 0) ref = {}; + var rootMargin = ref.rootMargin; + if (rootMargin === void 0) rootMargin = "0 0"; + this.targets = []; + var ref$1 = (rootMargin || "0 0").split(" ").map(toFloat); + var offsetTop = ref$1[0]; + var offsetLeft = ref$1[1]; + this.offsetTop = offsetTop; + this.offsetLeft = offsetLeft; + var pending; + this.apply = function() { + if (pending) { + return; + } + pending = requestAnimationFrame(function() { + return setTimeout(function() { + var records = this$1.takeRecords(); + if (records.length) { + callback(records, this$1); + } + pending = false; + }); + }); + }; + this.off = on(window, "scroll resize load", this.apply, { + passive: true, + capture: true + }); + } + IntersectionObserverClass.prototype.takeRecords = function() { + var this$1 = this; + return this.targets.filter(function(entry) { + var inView = isInView(entry.target, this$1.offsetTop, this$1.offsetLeft); + if (entry.isIntersecting === null || inView ^ entry.isIntersecting) { + entry.isIntersecting = inView; + return true; + } + }); + }; + IntersectionObserverClass.prototype.observe = function(target) { + this.targets.push({ + target: target, + isIntersecting: null + }); + this.apply(); + }; + IntersectionObserverClass.prototype.disconnect = function() { + this.targets = []; + this.off(); + }; + return IntersectionObserverClass; + }(); + var touch = {}, swipeTimeout, touching; + on(document, pointerDown, function(e) { + if (touch.el) { + touch = {}; + } + var target = e.target; + var ref = getPos$1(e); + var x = ref.x; + var y = ref.y; + touch.el = "tagName" in target ? target : target.parentNode; + touch.x = x; + touch.y = y; + touching = isTouch(e); + }); + on(document, pointerUp, function(e) { + var ref = getPos$1(e); + var x = ref.x; + var y = ref.y; + if (touch.el && x && Math.abs(touch.x - x) > 100 || y && Math.abs(touch.y - y) > 100) { + swipeTimeout = setTimeout(function() { + if (touch.el) { + trigger(touch.el, "swipe"); + trigger(touch.el, "swipe" + swipeDirection(touch.x, touch.y, x, y)); + } + touch = {}; + }); + } else { + touch = {}; + } + setTimeout(function() { + return touching = false; + }); + }); + on(document, pointerCancel, cancelAll); + function isTouch(e) { + return e.pointerType === "touch" || e.touches || touching; + } + function getPos$1(e, prop) { + if (prop === void 0) prop = "client"; + var touches = e.touches; + var changedTouches = e.changedTouches; + var ref = touches && touches[0] || changedTouches && changedTouches[0] || e; + var x = ref[prop + "X"]; + var y = ref[prop + "Y"]; + return { + x: x, + y: y + }; + } + function swipeDirection(x1, y1, x2, y2) { + return Math.abs(x1 - x2) >= Math.abs(y1 - y2) ? x1 - x2 > 0 ? "Left" : "Right" : y1 - y2 > 0 ? "Up" : "Down"; + } + function cancelAll() { + swipeTimeout && clearTimeout(swipeTimeout); + swipeTimeout = null; + touch = {}; + } + var util = Object.freeze({ + ajax: ajax, + getImage: getImage, + transition: transition, + Transition: Transition, + animate: animate, + Animation: Animation, + attr: attr, + hasAttr: hasAttr, + removeAttr: removeAttr, + data: data, + addClass: addClass, + removeClass: removeClass, + removeClasses: removeClasses, + replaceClass: replaceClass, + hasClass: hasClass, + toggleClass: toggleClass, + positionAt: positionAt, + offset: offset, + position: position, + height: height, + width: width, + boxModelAdjust: boxModelAdjust, + flipPosition: flipPosition, + isInView: isInView, + scrolledOver: scrolledOver, + scrollTop: scrollTop, + offsetPosition: offsetPosition, + ready: ready, + index: index, + getIndex: getIndex, + empty: empty, + html: html, + prepend: prepend, + append: append, + before: before, + after: after, + remove: remove, + wrapAll: wrapAll, + wrapInner: wrapInner, + unwrap: unwrap, + fragment: fragment, + apply: apply, + $: $, + $$: $$, + isIE: isIE, + isRtl: isRtl, + hasTouch: hasTouch, + pointerDown: pointerDown, + pointerMove: pointerMove, + pointerUp: pointerUp, + pointerEnter: pointerEnter, + pointerLeave: pointerLeave, + pointerCancel: pointerCancel, + on: on, + off: off, + once: once, + trigger: trigger, + createEvent: createEvent, + toEventTargets: toEventTargets, + preventClick: preventClick, + fastdom: fastdom, + isVoidElement: isVoidElement, + isVisible: isVisible, + selInput: selInput, + isInput: isInput, + filter: filter, + within: within, + bind: bind, + hasOwn: hasOwn, + hyphenate: hyphenate, + camelize: camelize, + ucfirst: ucfirst, + startsWith: startsWith, + endsWith: endsWith, + includes: includes, + isArray: isArray, + isFunction: isFunction, + isObject: isObject, + isPlainObject: isPlainObject, + isWindow: isWindow, + isDocument: isDocument, + isJQuery: isJQuery, + isNode: isNode, + isNodeCollection: isNodeCollection, + isBoolean: isBoolean, + isString: isString, + isNumber: isNumber, + isNumeric: isNumeric, + isUndefined: isUndefined, + toBoolean: toBoolean, + toNumber: toNumber, + toFloat: toFloat, + toNode: toNode, + toNodes: toNodes, + toList: toList, + toMs: toMs, + isEqual: isEqual, + swap: swap, + assign: assign, + each: each, + sortBy: sortBy, + clamp: clamp, + noop: noop, + intersectRect: intersectRect, + pointInRect: pointInRect, + Dimensions: Dimensions, + MouseTracker: MouseTracker, + mergeOptions: mergeOptions, + parseOptions: parseOptions, + Player: Player, + Promise: Promise, + Deferred: Deferred, + IntersectionObserver: IntersectionObserver, + query: query, + queryAll: queryAll, + find: find, + findAll: findAll, + matches: matches, + closest: closest, + parents: parents, + escape: escape, + css: css, + getStyles: getStyles, + getStyle: getStyle, + getCssVar: getCssVar, + propName: propName, + isTouch: isTouch, + getPos: getPos$1 + }); + function componentAPI(UIkit) { + var DATA = UIkit.data; + var components = {}; + UIkit.component = function(name, options) { + if (!options) { + if (isPlainObject(components[name])) { + components[name] = UIkit.extend(components[name]); + } + return components[name]; + } + UIkit[name] = function(element, data$$1) { + var i = arguments.length, argsArray = Array(i); + while (i--) argsArray[i] = arguments[i]; + var component = UIkit.component(name); + if (isPlainObject(element)) { + return new component({ + data: element + }); + } + if (component.options.functional) { + return new component({ + data: [].concat(argsArray) + }); + } + return element && element.nodeType ? init(element) : $$(element).map(init)[0]; + function init(element) { + var instance = UIkit.getComponent(element, name); + if (instance) { + if (!data$$1) { + return instance; + } else { + instance.$destroy(); + } + } + return new component({ + el: element, + data: data$$1 + }); + } + }; + var opt = isPlainObject(options) ? assign({}, options) : options.options; + opt.name = name; + if (opt.install) { + opt.install(UIkit, opt, name); + } + if (UIkit._initialized && !opt.functional) { + var id = hyphenate(name); + fastdom.read(function() { + return UIkit[name]("[uk-" + id + "],[data-uk-" + id + "]"); + }); + } + return components[name] = isPlainObject(options) ? opt : options; + }; + UIkit.getComponents = function(element) { + return element && element[DATA] || {}; + }; + UIkit.getComponent = function(element, name) { + return UIkit.getComponents(element)[name]; + }; + UIkit.connect = function(node) { + if (node[DATA]) { + for (var name in node[DATA]) { + node[DATA][name]._callConnected(); + } + } + for (var i = 0; i < node.attributes.length; i++) { + var name$1 = getComponentName(node.attributes[i].name); + if (name$1 && name$1 in components) { + UIkit[name$1](node); + } + } + }; + UIkit.disconnect = function(node) { + for (var name in node[DATA]) { + node[DATA][name]._callDisconnected(); + } + }; + } + function getComponentName(attribute) { + return startsWith(attribute, "uk-") || startsWith(attribute, "data-uk-") ? camelize(attribute.replace("data-uk-", "").replace("uk-", "")) : false; + } + function boot(UIkit) { + var connect = UIkit.connect; + var disconnect = UIkit.disconnect; + if (!("MutationObserver" in window)) { + return; + } + if (document.body) { + init(); + } else { + new MutationObserver(function() { + if (document.body) { + this.disconnect(); + init(); + } + }).observe(document, { + childList: true, + subtree: true + }); + } + function init() { + apply$$1(document.body, connect); + fastdom.flush(); + new MutationObserver(function(mutations) { + return mutations.forEach(applyMutation); + }).observe(document, { + childList: true, + subtree: true, + characterData: true, + attributes: true + }); + UIkit._initialized = true; + } + function applyMutation(mutation) { + var target = mutation.target; + var type = mutation.type; + var update = type !== "attributes" ? applyChildList(mutation) : applyAttribute(mutation); + update && UIkit.update(target); + } + function applyAttribute(ref) { + var target = ref.target; + var attributeName = ref.attributeName; + if (attributeName === "href") { + return true; + } + var name = getComponentName(attributeName); + if (!name || !(name in UIkit)) { + return; + } + if (hasAttr(target, attributeName)) { + UIkit[name](target); + return true; + } + var component = UIkit.getComponent(target, name); + if (component) { + component.$destroy(); + return true; + } + } + function applyChildList(ref) { + var addedNodes = ref.addedNodes; + var removedNodes = ref.removedNodes; + for (var i = 0; i < addedNodes.length; i++) { + apply$$1(addedNodes[i], connect); + } + for (var i$1 = 0; i$1 < removedNodes.length; i$1++) { + apply$$1(removedNodes[i$1], disconnect); + } + return true; + } + function apply$$1(node, fn) { + if (node.nodeType !== 1 || hasAttr(node, "uk-no-boot")) { + return; + } + fn(node); + node = node.firstElementChild; + while (node) { + var next = node.nextElementSibling; + apply$$1(node, fn); + node = next; + } + } + } + function globalAPI(UIkit) { + var DATA = UIkit.data; + UIkit.use = function(plugin) { + if (plugin.installed) { + return; + } + plugin.call(null, this); + plugin.installed = true; + return this; + }; + UIkit.mixin = function(mixin, component) { + component = (isString(component) ? UIkit.component(component) : component) || this; + component.options = mergeOptions(component.options, mixin); + }; + UIkit.extend = function(options) { + options = options || {}; + var Super = this; + var Sub = function UIkitComponent(options) { + this._init(options); + }; + Sub.prototype = Object.create(Super.prototype); + Sub.prototype.constructor = Sub; + Sub.options = mergeOptions(Super.options, options); + Sub.super = Super; + Sub.extend = Super.extend; + return Sub; + }; + UIkit.update = function(element, e) { + element = element ? toNode(element) : document.body; + path(element, function(element) { + return update(element[DATA], e); + }); + apply(element, function(element) { + return update(element[DATA], e); + }); + }; + var container; + Object.defineProperty(UIkit, "container", { + get: function() { + return container || document.body; + }, + set: function(element) { + container = $(element); + } + }); + function update(data$$1, e) { + if (!data$$1) { + return; + } + for (var name in data$$1) { + if (data$$1[name]._connected) { + data$$1[name]._callUpdate(e); + } + } + } + function path(node, fn) { + if (node && node !== document.body && node.parentNode) { + path(node.parentNode, fn); + fn(node.parentNode); + } + } + } + function hooksAPI(UIkit) { + UIkit.prototype._callHook = function(hook) { + var this$1 = this; + var handlers = this.$options[hook]; + if (handlers) { + handlers.forEach(function(handler) { + return handler.call(this$1); + }); + } + }; + UIkit.prototype._callConnected = function() { + if (this._connected) { + return; + } + this._data = {}; + this._computeds = {}; + this._initProps(); + this._callHook("beforeConnect"); + this._connected = true; + this._initEvents(); + this._initObserver(); + this._callHook("connected"); + this._callUpdate(); + }; + UIkit.prototype._callDisconnected = function() { + if (!this._connected) { + return; + } + this._callHook("beforeDisconnect"); + if (this._observer) { + this._observer.disconnect(); + this._observer = null; + } + this._unbindEvents(); + this._callHook("disconnected"); + this._connected = false; + }; + UIkit.prototype._callUpdate = function(e) { + var this$1 = this; + if (e === void 0) e = "update"; + var type = e.type || e; + if (includes([ "update", "resize" ], type)) { + this._callWatches(); + } + var updates = this.$options.update; + var ref = this._frames; + var reads = ref.reads; + var writes = ref.writes; + if (!updates) { + return; + } + updates.forEach(function(ref, i) { + var read = ref.read; + var write = ref.write; + var events = ref.events; + if (type !== "update" && !includes(events, type)) { + return; + } + if (read && !includes(fastdom.reads, reads[i])) { + reads[i] = fastdom.read(function() { + var result = this$1._connected && read.call(this$1, this$1._data, type); + if (result === false && write) { + fastdom.clear(writes[i]); + } else if (isPlainObject(result)) { + assign(this$1._data, result); + } + }); + } + if (write && !includes(fastdom.writes, writes[i])) { + writes[i] = fastdom.write(function() { + return this$1._connected && write.call(this$1, this$1._data, type); + }); + } + }); + }; + } + function stateAPI(UIkit) { + var uid = 0; + UIkit.prototype._init = function(options) { + options = options || {}; + options.data = normalizeData(options, this.constructor.options); + this.$options = mergeOptions(this.constructor.options, options, this); + this.$el = null; + this.$props = {}; + this._frames = { + reads: {}, + writes: {} + }; + this._events = []; + this._uid = uid++; + this._initData(); + this._initMethods(); + this._initComputeds(); + this._callHook("created"); + if (options.el) { + this.$mount(options.el); + } + }; + UIkit.prototype._initData = function() { + var ref = this.$options; + var data$$1 = ref.data; + if (data$$1 === void 0) data$$1 = {}; + for (var key in data$$1) { + this.$props[key] = this[key] = data$$1[key]; + } + }; + UIkit.prototype._initMethods = function() { + var ref = this.$options; + var methods = ref.methods; + if (methods) { + for (var key in methods) { + this[key] = bind(methods[key], this); + } + } + }; + UIkit.prototype._initComputeds = function() { + var ref = this.$options; + var computed = ref.computed; + this._computeds = {}; + if (computed) { + for (var key in computed) { + registerComputed(this, key, computed[key]); + } + } + }; + UIkit.prototype._callWatches = function() { + var ref = this; + var computed = ref.$options.computed; + var _computeds = ref._computeds; + for (var key in _computeds) { + var value = _computeds[key]; + delete _computeds[key]; + if (computed[key].watch && !isEqual(value, this[key])) { + computed[key].watch.call(this, this[key], value); + } + } + }; + UIkit.prototype._initProps = function(props) { + var key; + props = props || getProps(this.$options, this.$name); + for (key in props) { + if (!isUndefined(props[key])) { + this.$props[key] = props[key]; + } + } + var exclude = [ this.$options.computed, this.$options.methods ]; + for (key in this.$props) { + if (key in props && notIn(exclude, key)) { + this[key] = this.$props[key]; + } + } + }; + UIkit.prototype._initEvents = function() { + var this$1 = this; + var ref = this.$options; + var events = ref.events; + if (events) { + events.forEach(function(event) { + if (!hasOwn(event, "handler")) { + for (var key in event) { + registerEvent(this$1, event[key], key); + } + } else { + registerEvent(this$1, event); + } + }); + } + }; + UIkit.prototype._unbindEvents = function() { + this._events.forEach(function(unbind) { + return unbind(); + }); + this._events = []; + }; + UIkit.prototype._initObserver = function() { + var this$1 = this; + var ref = this.$options; + var attrs = ref.attrs; + var props = ref.props; + var el = ref.el; + if (this._observer || !props || attrs === false) { + return; + } + attrs = isArray(attrs) ? attrs : Object.keys(props); + this._observer = new MutationObserver(function() { + var data$$1 = getProps(this$1.$options, this$1.$name); + if (attrs.some(function(key) { + return !isUndefined(data$$1[key]) && data$$1[key] !== this$1.$props[key]; + })) { + this$1.$reset(); + } + }); + var filter$$1 = attrs.map(function(key) { + return hyphenate(key); + }).concat(this.$name); + this._observer.observe(el, { + attributes: true, + attributeFilter: filter$$1.concat(filter$$1.map(function(key) { + return "data-" + key; + })) + }); + }; + function getProps(opts, name) { + var data$$1 = {}; + var args = opts.args; + if (args === void 0) args = []; + var props = opts.props; + if (props === void 0) props = {}; + var el = opts.el; + if (!props) { + return data$$1; + } + for (var key in props) { + var prop = hyphenate(key); + var value = data(el, prop); + if (!isUndefined(value)) { + value = props[key] === Boolean && value === "" ? true : coerce(props[key], value); + if (prop === "target" && (!value || startsWith(value, "_"))) { + continue; + } + data$$1[key] = value; + } + } + var options = parseOptions(data(el, name), args); + for (var key$1 in options) { + var prop$1 = camelize(key$1); + if (props[prop$1] !== undefined) { + data$$1[prop$1] = coerce(props[prop$1], options[key$1]); + } + } + return data$$1; + } + function registerComputed(component, key, cb) { + Object.defineProperty(component, key, { + enumerable: true, + get: function() { + var _computeds = component._computeds; + var $props = component.$props; + var $el = component.$el; + if (!hasOwn(_computeds, key)) { + _computeds[key] = (cb.get || cb).call(component, $props, $el); + } + return _computeds[key]; + }, + set: function(value) { + var _computeds = component._computeds; + _computeds[key] = cb.set ? cb.set.call(component, value) : value; + if (isUndefined(_computeds[key])) { + delete _computeds[key]; + } + } + }); + } + function registerEvent(component, event, key) { + if (!isPlainObject(event)) { + event = { + name: key, + handler: event + }; + } + var name = event.name; + var el = event.el; + var handler = event.handler; + var capture = event.capture; + var passive = event.passive; + var delegate = event.delegate; + var filter$$1 = event.filter; + var self = event.self; + el = isFunction(el) ? el.call(component) : el || component.$el; + if (isArray(el)) { + el.forEach(function(el) { + return registerEvent(component, assign({}, event, { + el: el + }), key); + }); + return; + } + if (!el || filter$$1 && !filter$$1.call(component)) { + return; + } + handler = detail(isString(handler) ? component[handler] : bind(handler, component)); + if (self) { + handler = selfFilter(handler); + } + component._events.push(on(el, name, !delegate ? null : isString(delegate) ? delegate : delegate.call(component), handler, isBoolean(passive) ? { + passive: passive, + capture: capture + } : capture)); + } + function selfFilter(handler) { + return function selfHandler(e) { + if (e.target === e.currentTarget || e.target === e.current) { + return handler.call(null, e); + } + }; + } + function notIn(options, key) { + return options.every(function(arr) { + return !arr || !hasOwn(arr, key); + }); + } + function detail(listener) { + return function(e) { + return isArray(e.detail) ? listener.apply(void 0, [ e ].concat(e.detail)) : listener(e); + }; + } + function coerce(type, value) { + if (type === Boolean) { + return toBoolean(value); + } else if (type === Number) { + return toNumber(value); + } else if (type === "list") { + return toList(value); + } + return type ? type(value) : value; + } + function normalizeData(ref, ref$1) { + var data$$1 = ref.data; + var el = ref.el; + var args = ref$1.args; + var props = ref$1.props; + if (props === void 0) props = {}; + data$$1 = isArray(data$$1) ? args && args.length ? data$$1.slice(0, args.length).reduce(function(data$$1, value, index$$1) { + if (isPlainObject(value)) { + assign(data$$1, value); + } else { + data$$1[args[index$$1]] = value; + } + return data$$1; + }, {}) : undefined : data$$1; + if (data$$1) { + for (var key in data$$1) { + if (isUndefined(data$$1[key])) { + delete data$$1[key]; + } else { + data$$1[key] = props[key] ? coerce(props[key], data$$1[key], el) : data$$1[key]; + } + } + } + return data$$1; + } + } + function instanceAPI(UIkit) { + var DATA = UIkit.data; + UIkit.prototype.$mount = function(el) { + var ref = this.$options; + var name = ref.name; + if (!el[DATA]) { + el[DATA] = {}; + } + if (el[DATA][name]) { + return; + } + el[DATA][name] = this; + this.$el = this.$options.el = this.$options.el || el; + if (within(el, document)) { + this._callConnected(); + } + }; + UIkit.prototype.$emit = function(e) { + this._callUpdate(e); + }; + UIkit.prototype.$reset = function() { + this._callDisconnected(); + this._callConnected(); + }; + UIkit.prototype.$destroy = function(removeEl) { + if (removeEl === void 0) removeEl = false; + var ref = this.$options; + var el = ref.el; + var name = ref.name; + if (el) { + this._callDisconnected(); + } + this._callHook("destroy"); + if (!el || !el[DATA]) { + return; + } + delete el[DATA][name]; + if (!Object.keys(el[DATA]).length) { + delete el[DATA]; + } + if (removeEl) { + remove(this.$el); + } + }; + UIkit.prototype.$create = function(component, element, data$$1) { + return UIkit[component](element, data$$1); + }; + UIkit.prototype.$update = UIkit.update; + UIkit.prototype.$getComponent = UIkit.getComponent; + var names = {}; + Object.defineProperties(UIkit.prototype, { + $container: Object.getOwnPropertyDescriptor(UIkit, "container"), + $name: { + get: function() { + var ref = this.$options; + var name = ref.name; + if (!names[name]) { + names[name] = UIkit.prefix + hyphenate(name); + } + return names[name]; + } + } + }); + } + var UIkit = function(options) { + this._init(options); + }; + UIkit.util = util; + UIkit.data = "__uikit__"; + UIkit.prefix = "uk-"; + UIkit.options = {}; + globalAPI(UIkit); + hooksAPI(UIkit); + stateAPI(UIkit); + componentAPI(UIkit); + instanceAPI(UIkit); + var Class = { + connected: function() { + !hasClass(this.$el, this.$name) && addClass(this.$el, this.$name); + } + }; + var Togglable = { + props: { + cls: Boolean, + animation: "list", + duration: Number, + origin: String, + transition: String, + queued: Boolean + }, + data: { + cls: false, + animation: [ false ], + duration: 200, + origin: false, + transition: "linear", + queued: false, + initProps: { + overflow: "", + height: "", + paddingTop: "", + paddingBottom: "", + marginTop: "", + marginBottom: "" + }, + hideProps: { + overflow: "hidden", + height: 0, + paddingTop: 0, + paddingBottom: 0, + marginTop: 0, + marginBottom: 0 + } + }, + computed: { + hasAnimation: function(ref) { + var animation = ref.animation; + return !!animation[0]; + }, + hasTransition: function(ref) { + var animation = ref.animation; + return this.hasAnimation && animation[0] === true; + } + }, + methods: { + toggleElement: function(targets, show, animate$$1) { + var this$1 = this; + return new Promise(function(resolve) { + targets = toNodes(targets); + var all = function(targets) { + return Promise.all(targets.map(function(el) { + return this$1._toggleElement(el, show, animate$$1); + })); + }; + var toggled = targets.filter(function(el) { + return this$1.isToggled(el); + }); + var untoggled = targets.filter(function(el) { + return !includes(toggled, el); + }); + var p; + if (!this$1.queued || !isUndefined(animate$$1) || !isUndefined(show) || !this$1.hasAnimation || targets.length < 2) { + p = all(untoggled.concat(toggled)); + } else { + var body = document.body; + var scroll = body.scrollTop; + var el = toggled[0]; + var inProgress = Animation.inProgress(el) && hasClass(el, "uk-animation-leave") || Transition.inProgress(el) && el.style.height === "0px"; + p = all(toggled); + if (!inProgress) { + p = p.then(function() { + var p = all(untoggled); + body.scrollTop = scroll; + return p; + }); + } + } + p.then(resolve, noop); + }); + }, + toggleNow: function(targets, show) { + var this$1 = this; + return new Promise(function(resolve) { + return Promise.all(toNodes(targets).map(function(el) { + return this$1._toggleElement(el, show, false); + })).then(resolve, noop); + }); + }, + isToggled: function(el) { + var nodes = toNodes(el || this.$el); + return this.cls ? hasClass(nodes, this.cls.split(" ")[0]) : !hasAttr(nodes, "hidden"); + }, + updateAria: function(el) { + if (this.cls === false) { + attr(el, "aria-hidden", !this.isToggled(el)); + } + }, + _toggleElement: function(el, show, animate$$1) { + var this$1 = this; + show = isBoolean(show) ? show : Animation.inProgress(el) ? hasClass(el, "uk-animation-leave") : Transition.inProgress(el) ? el.style.height === "0px" : !this.isToggled(el); + if (!trigger(el, "before" + (show ? "show" : "hide"), [ this ])) { + return Promise.reject(); + } + var promise = (isFunction(animate$$1) ? animate$$1 : animate$$1 === false || !this.hasAnimation ? this._toggle : this.hasTransition ? toggleHeight(this) : toggleAnimation(this))(el, show); + trigger(el, show ? "show" : "hide", [ this ]); + var final = function() { + trigger(el, show ? "shown" : "hidden", [ this$1 ]); + this$1.$update(el); + }; + return promise ? promise.then(final) : Promise.resolve(final()); + }, + _toggle: function(el, toggled) { + if (!el) { + return; + } + toggled = Boolean(toggled); + var changed; + if (this.cls) { + changed = includes(this.cls, " ") || toggled !== hasClass(el, this.cls); + changed && toggleClass(el, this.cls, includes(this.cls, " ") ? undefined : toggled); + } else { + changed = toggled === hasAttr(el, "hidden"); + changed && attr(el, "hidden", !toggled ? "" : null); + } + $$("[autofocus]", el).some(function(el) { + return isVisible(el) ? el.focus() || true : el.blur(); + }); + this.updateAria(el); + changed && this.$update(el); + } + } + }; + function toggleHeight(ref) { + var isToggled = ref.isToggled; + var duration = ref.duration; + var initProps = ref.initProps; + var hideProps = ref.hideProps; + var transition$$1 = ref.transition; + var _toggle = ref._toggle; + return function(el, show) { + var inProgress = Transition.inProgress(el); + var inner = el.hasChildNodes ? toFloat(css(el.firstElementChild, "marginTop")) + toFloat(css(el.lastElementChild, "marginBottom")) : 0; + var currentHeight = isVisible(el) ? height(el) + (inProgress ? 0 : inner) : 0; + Transition.cancel(el); + if (!isToggled(el)) { + _toggle(el, true); + } + height(el, ""); + fastdom.flush(); + var endHeight = height(el) + (inProgress ? 0 : inner); + height(el, currentHeight); + return (show ? Transition.start(el, assign({}, initProps, { + overflow: "hidden", + height: endHeight + }), Math.round(duration * (1 - currentHeight / endHeight)), transition$$1) : Transition.start(el, hideProps, Math.round(duration * (currentHeight / endHeight)), transition$$1).then(function() { + return _toggle(el, false); + })).then(function() { + return css(el, initProps); + }); + }; + } + function toggleAnimation(ref) { + var animation = ref.animation; + var duration = ref.duration; + var origin = ref.origin; + var _toggle = ref._toggle; + return function(el, show) { + Animation.cancel(el); + if (show) { + _toggle(el, true); + return Animation.in(el, animation[0], duration, origin); + } + return Animation.out(el, animation[1] || animation[0], duration, origin).then(function() { + return _toggle(el, false); + }); + }; + } + var Accordion = { + mixins: [ Class, Togglable ], + props: { + targets: String, + active: null, + collapsible: Boolean, + multiple: Boolean, + toggle: String, + content: String, + transition: String + }, + data: { + targets: "> *", + active: false, + animation: [ true ], + collapsible: true, + multiple: false, + clsOpen: "uk-open", + toggle: "> .uk-accordion-title", + content: "> .uk-accordion-content", + transition: "ease" + }, + computed: { + items: function(ref, $el) { + var targets = ref.targets; + return $$(targets, $el); + } + }, + events: [ { + name: "click", + delegate: function() { + return this.targets + " " + this.$props.toggle; + }, + handler: function(e) { + e.preventDefault(); + this.toggle(index($$(this.targets + " " + this.$props.toggle, this.$el), e.current)); + } + } ], + connected: function() { + if (this.active === false) { + return; + } + var active = this.items[Number(this.active)]; + if (active && !hasClass(active, this.clsOpen)) { + this.toggle(active, false); + } + }, + update: function() { + var this$1 = this; + this.items.forEach(function(el) { + return this$1._toggle($(this$1.content, el), hasClass(el, this$1.clsOpen)); + }); + var active = !this.collapsible && !hasClass(this.items, this.clsOpen) && this.items[0]; + if (active) { + this.toggle(active, false); + } + }, + methods: { + toggle: function(item, animate$$1) { + var this$1 = this; + var index$$1 = getIndex(item, this.items); + var active = filter(this.items, "." + this.clsOpen); + item = this.items[index$$1]; + item && [ item ].concat(!this.multiple && !includes(active, item) && active || []).forEach(function(el) { + var isItem = el === item; + var state = isItem && !hasClass(el, this$1.clsOpen); + if (!state && isItem && !this$1.collapsible && active.length < 2) { + return; + } + toggleClass(el, this$1.clsOpen, state); + var content = el._wrapper ? el._wrapper.firstElementChild : $(this$1.content, el); + if (!el._wrapper) { + el._wrapper = wrapAll(content, "
"); + attr(el._wrapper, "hidden", state ? "" : null); + } + this$1._toggle(content, true); + this$1.toggleElement(el._wrapper, state, animate$$1).then(function() { + if (hasClass(el, this$1.clsOpen) !== state) { + return; + } + if (!state) { + this$1._toggle(content, false); + } + el._wrapper = null; + unwrap(content); + }); + }); + } + } + }; + var Alert = { + mixins: [ Class, Togglable ], + args: "animation", + props: { + close: String + }, + data: { + animation: [ true ], + selClose: ".uk-alert-close", + duration: 150, + hideProps: assign({ + opacity: 0 + }, Togglable.data.hideProps) + }, + events: [ { + name: "click", + delegate: function() { + return this.selClose; + }, + handler: function(e) { + e.preventDefault(); + this.close(); + } + } ], + methods: { + close: function() { + var this$1 = this; + this.toggleElement(this.$el).then(function() { + return this$1.$destroy(true); + }); + } + } + }; + function Core(UIkit) { + ready(function() { + UIkit.update(); + on(window, "load resize", function() { + return UIkit.update(null, "resize"); + }); + on(document, "loadedmetadata load", function(ref) { + var target = ref.target; + return UIkit.update(target, "resize"); + }, true); + var pending; + on(window, "scroll", function(e) { + if (pending) { + return; + } + pending = true; + fastdom.write(function() { + return pending = false; + }); + var target = e.target; + UIkit.update(target.nodeType !== 1 ? document.body : target, e.type); + }, { + passive: true, + capture: true + }); + var started = 0; + on(document, "animationstart", function(ref) { + var target = ref.target; + if ((css(target, "animationName") || "").match(/^uk-.*(left|right)/)) { + started++; + css(document.body, "overflowX", "hidden"); + setTimeout(function() { + if (!--started) { + css(document.body, "overflowX", ""); + } + }, toMs(css(target, "animationDuration")) + 100); + } + }, true); + }); + } + var Video = { + args: "autoplay", + props: { + automute: Boolean, + autoplay: Boolean + }, + data: { + automute: false, + autoplay: true + }, + computed: { + inView: function(ref) { + var autoplay = ref.autoplay; + return autoplay === "inview"; + } + }, + connected: function() { + if (this.inView && !hasAttr(this.$el, "preload")) { + this.$el.preload = "none"; + } + this.player = new Player(this.$el); + if (this.automute) { + this.player.mute(); + } + }, + update: { + read: function() { + return !this.player ? false : { + visible: isVisible(this.$el) && css(this.$el, "visibility") !== "hidden", + inView: this.inView && isInView(this.$el) + }; + }, + write: function(ref) { + var visible = ref.visible; + var inView = ref.inView; + if (!visible || this.inView && !inView) { + this.player.pause(); + } else if (this.autoplay === true || this.inView && inView) { + this.player.play(); + } + }, + events: [ "resize", "scroll" ] + } + }; + var Cover = { + mixins: [ Class, Video ], + props: { + width: Number, + height: Number + }, + data: { + automute: true + }, + update: { + read: function() { + var el = this.$el; + if (!isVisible(el)) { + return false; + } + var ref = el.parentNode; + var height$$1 = ref.offsetHeight; + var width$$1 = ref.offsetWidth; + return { + height: height$$1, + width: width$$1 + }; + }, + write: function(ref) { + var height$$1 = ref.height; + var width$$1 = ref.width; + var el = this.$el; + var elWidth = this.width || el.naturalWidth || el.videoWidth || el.clientWidth; + var elHeight = this.height || el.naturalHeight || el.videoHeight || el.clientHeight; + if (!elWidth || !elHeight) { + return; + } + css(el, Dimensions.cover({ + width: elWidth, + height: elHeight + }, { + width: width$$1 + (width$$1 % 2 ? 1 : 0), + height: height$$1 + (height$$1 % 2 ? 1 : 0) + })); + }, + events: [ "resize" ] + } + }; + var Position = { + props: { + pos: String, + offset: null, + flip: Boolean, + clsPos: String + }, + data: { + pos: "bottom-" + (!isRtl ? "left" : "right"), + flip: true, + offset: false, + clsPos: "" + }, + computed: { + pos: function(ref) { + var pos = ref.pos; + return (pos + (!includes(pos, "-") ? "-center" : "")).split("-"); + }, + dir: function() { + return this.pos[0]; + }, + align: function() { + return this.pos[1]; + } + }, + methods: { + positionAt: function(element, target, boundary) { + removeClasses(element, this.clsPos + "-(top|bottom|left|right)(-[a-z]+)?"); + css(element, { + top: "", + left: "" + }); + var node; + var ref = this; + var offset$$1 = ref.offset; + var axis = this.getAxis(); + if (!isNumeric(offset$$1)) { + node = $(offset$$1); + offset$$1 = node ? offset(node)[axis === "x" ? "left" : "top"] - offset(target)[axis === "x" ? "right" : "bottom"] : 0; + } + var ref$1 = positionAt(element, target, axis === "x" ? flipPosition(this.dir) + " " + this.align : this.align + " " + flipPosition(this.dir), axis === "x" ? this.dir + " " + this.align : this.align + " " + this.dir, axis === "x" ? "" + (this.dir === "left" ? -offset$$1 : offset$$1) : " " + (this.dir === "top" ? -offset$$1 : offset$$1), null, this.flip, boundary).target; + var x = ref$1.x; + var y = ref$1.y; + this.dir = axis === "x" ? x : y; + this.align = axis === "x" ? y : x; + toggleClass(element, this.clsPos + "-" + this.dir + "-" + this.align, this.offset === false); + }, + getAxis: function() { + return this.dir === "top" || this.dir === "bottom" ? "y" : "x"; + } + } + }; + var active; + var Drop = { + mixins: [ Position, Togglable ], + args: "pos", + props: { + mode: "list", + toggle: Boolean, + boundary: Boolean, + boundaryAlign: Boolean, + delayShow: Number, + delayHide: Number, + clsDrop: String + }, + data: { + mode: [ "click", "hover" ], + toggle: "- *", + boundary: window, + boundaryAlign: false, + delayShow: 0, + delayHide: 800, + clsDrop: false, + hoverIdle: 200, + animation: [ "uk-animation-fade" ], + cls: "uk-open" + }, + computed: { + boundary: function(ref, $el) { + var boundary = ref.boundary; + return query(boundary, $el); + }, + clsDrop: function(ref) { + var clsDrop = ref.clsDrop; + return clsDrop || "uk-" + this.$options.name; + }, + clsPos: function() { + return this.clsDrop; + } + }, + created: function() { + this.tracker = new MouseTracker(); + }, + connected: function() { + addClass(this.$el, this.clsDrop); + var ref = this.$props; + var toggle = ref.toggle; + this.toggle = toggle && this.$create("toggle", query(toggle, this.$el), { + target: this.$el, + mode: this.mode + }); + !this.toggle && trigger(this.$el, "updatearia"); + }, + events: [ { + name: "click", + delegate: function() { + return "." + this.clsDrop + "-close"; + }, + handler: function(e) { + e.preventDefault(); + this.hide(false); + } + }, { + name: "click", + delegate: function() { + return 'a[href^="#"]'; + }, + handler: function(e) { + if (e.defaultPrevented) { + return; + } + var id = e.target.hash; + if (!id) { + e.preventDefault(); + } + if (!id || !within(id, this.$el)) { + this.hide(false); + } + } + }, { + name: "beforescroll", + handler: function() { + this.hide(false); + } + }, { + name: "toggle", + self: true, + handler: function(e, toggle) { + e.preventDefault(); + if (this.isToggled()) { + this.hide(false); + } else { + this.show(toggle, false); + } + } + }, { + name: pointerEnter, + filter: function() { + return includes(this.mode, "hover"); + }, + handler: function(e) { + if (isTouch(e)) { + return; + } + if (active && active !== this && active.toggle && includes(active.toggle.mode, "hover") && !within(e.target, active.toggle.$el) && !pointInRect({ + x: e.pageX, + y: e.pageY + }, offset(active.$el))) { + active.hide(false); + } + e.preventDefault(); + this.show(this.toggle); + } + }, { + name: "toggleshow", + handler: function(e, toggle) { + if (toggle && !includes(toggle.target, this.$el)) { + return; + } + e.preventDefault(); + this.show(toggle || this.toggle); + } + }, { + name: "togglehide " + pointerLeave, + handler: function(e, toggle) { + if (isTouch(e) || toggle && !includes(toggle.target, this.$el)) { + return; + } + e.preventDefault(); + if (this.toggle && includes(this.toggle.mode, "hover")) { + this.hide(); + } + } + }, { + name: "beforeshow", + self: true, + handler: function() { + this.clearTimers(); + Animation.cancel(this.$el); + this.position(); + } + }, { + name: "show", + self: true, + handler: function() { + this.tracker.init(); + trigger(this.$el, "updatearia"); + registerEvent(); + } + }, { + name: "beforehide", + self: true, + handler: function() { + this.clearTimers(); + } + }, { + name: "hide", + handler: function(ref) { + var target = ref.target; + if (this.$el !== target) { + active = active === null && within(target, this.$el) && this.isToggled() ? this : active; + return; + } + active = this.isActive() ? null : active; + trigger(this.$el, "updatearia"); + this.tracker.cancel(); + } + }, { + name: "updatearia", + self: true, + handler: function(e, toggle) { + e.preventDefault(); + this.updateAria(this.$el); + if (toggle || this.toggle) { + attr((toggle || this.toggle).$el, "aria-expanded", this.isToggled() ? "true" : "false"); + toggleClass(this.toggle.$el, this.cls, this.isToggled()); + } + } + } ], + update: { + write: function() { + if (this.isToggled() && !Animation.inProgress(this.$el)) { + this.position(); + } + }, + events: [ "resize" ] + }, + methods: { + show: function(toggle, delay) { + var this$1 = this; + if (delay === void 0) delay = true; + var show = function() { + return !this$1.isToggled() && this$1.toggleElement(this$1.$el, true); + }; + var tryShow = function() { + this$1.toggle = toggle || this$1.toggle; + this$1.clearTimers(); + if (this$1.isActive()) { + return; + } else if (delay && active && active !== this$1 && active.isDelaying) { + this$1.showTimer = setTimeout(this$1.show, 10); + return; + } else if (this$1.isParentOf(active)) { + if (active.hideTimer) { + active.hide(false); + } else { + return; + } + } else if (active && this$1.isChildOf(active)) { + active.clearTimers(); + } else if (active && !this$1.isChildOf(active) && !this$1.isParentOf(active)) { + var prev; + while (active && active !== prev && !this$1.isChildOf(active)) { + prev = active; + active.hide(false); + } + } + if (delay && this$1.delayShow) { + this$1.showTimer = setTimeout(show, this$1.delayShow); + } else { + show(); + } + active = this$1; + }; + if (toggle && this.toggle && toggle.$el !== this.toggle.$el) { + once(this.$el, "hide", tryShow); + this.hide(false); + } else { + tryShow(); + } + }, + hide: function(delay) { + var this$1 = this; + if (delay === void 0) delay = true; + var hide = function() { + return this$1.toggleNow(this$1.$el, false); + }; + this.clearTimers(); + this.isDelaying = this.tracker.movesTo(this.$el); + if (delay && this.isDelaying) { + this.hideTimer = setTimeout(this.hide, this.hoverIdle); + } else if (delay && this.delayHide) { + this.hideTimer = setTimeout(hide, this.delayHide); + } else { + hide(); + } + }, + clearTimers: function() { + clearTimeout(this.showTimer); + clearTimeout(this.hideTimer); + this.showTimer = null; + this.hideTimer = null; + this.isDelaying = false; + }, + isActive: function() { + return active === this; + }, + isChildOf: function(drop) { + return drop && drop !== this && within(this.$el, drop.$el); + }, + isParentOf: function(drop) { + return drop && drop !== this && within(drop.$el, this.$el); + }, + position: function() { + removeClasses(this.$el, this.clsDrop + "-(stack|boundary)"); + css(this.$el, { + top: "", + left: "", + display: "block" + }); + toggleClass(this.$el, this.clsDrop + "-boundary", this.boundaryAlign); + var boundary = offset(this.boundary); + var alignTo = this.boundaryAlign ? boundary : offset(this.toggle.$el); + if (this.align === "justify") { + var prop = this.getAxis() === "y" ? "width" : "height"; + css(this.$el, prop, alignTo[prop]); + } else if (this.$el.offsetWidth > Math.max(boundary.right - alignTo.left, alignTo.right - boundary.left)) { + addClass(this.$el, this.clsDrop + "-stack"); + } + this.positionAt(this.$el, this.boundaryAlign ? this.boundary : this.toggle.$el, this.boundary); + css(this.$el, "display", ""); + } + } + }; + var registered; + function registerEvent() { + if (registered) { + return; + } + registered = true; + on(document, pointerUp, function(ref) { + var target = ref.target; + var defaultPrevented = ref.defaultPrevented; + var prev; + if (defaultPrevented) { + return; + } + while (active && active !== prev && !within(target, active.$el) && !(active.toggle && within(target, active.toggle.$el))) { + prev = active; + active.hide(false); + } + }); + } + var Dropdown = { + extends: Drop + }; + var FormCustom = { + mixins: [ Class ], + args: "target", + props: { + target: Boolean + }, + data: { + target: false + }, + computed: { + input: function(_, $el) { + return $(selInput, $el); + }, + state: function() { + return this.input.nextElementSibling; + }, + target: function(ref, $el) { + var target = ref.target; + return target && (target === true && this.input.parentNode === $el && this.input.nextElementSibling || query(target, $el)); + } + }, + update: function() { + var ref = this; + var target = ref.target; + var input = ref.input; + if (!target) { + return; + } + var option; + var prop = isInput(target) ? "value" : "textContent"; + var prev = target[prop]; + var value = input.files && input.files[0] ? input.files[0].name : matches(input, "select") && (option = $$("option", input).filter(function(el) { + return el.selected; + })[0]) ? option.textContent : input.value; + if (prev !== value) { + target[prop] = value; + } + }, + events: { + change: function() { + this.$emit(); + } + } + }; + var Gif = { + update: { + read: function(data$$1) { + var inview = isInView(this.$el); + if (!inview || data$$1.isInView === inview) { + return false; + } + data$$1.isInView = inview; + }, + write: function() { + this.$el.src = this.$el.src; + }, + events: [ "scroll", "resize" ] + } + }; + var Margin = { + props: { + margin: String, + firstColumn: Boolean + }, + data: { + margin: "uk-margin-small-top", + firstColumn: "uk-first-column" + }, + update: { + read: function(data$$1) { + var items = this.$el.children; + var rows = [ [] ]; + if (!items.length || !isVisible(this.$el)) { + return data$$1.rows = rows; + } + data$$1.rows = getRows(items); + data$$1.stacks = !data$$1.rows.some(function(row) { + return row.length > 1; + }); + }, + write: function(ref) { + var this$1 = this; + var rows = ref.rows; + rows.forEach(function(row, i) { + return row.forEach(function(el, j) { + toggleClass(el, this$1.margin, i !== 0); + toggleClass(el, this$1.firstColumn, j === 0); + }); + }); + }, + events: [ "resize" ] + } + }; + function getRows(items) { + var rows = [ [] ]; + for (var i = 0; i < items.length; i++) { + var el = items[i]; + var dim = getOffset(el); + if (!dim.height) { + continue; + } + for (var j = rows.length - 1; j >= 0; j--) { + var row = rows[j]; + if (!row[0]) { + row.push(el); + break; + } + var leftDim = void 0; + if (row[0].offsetParent === el.offsetParent) { + leftDim = getOffset(row[0]); + } else { + dim = getOffset(el, true); + leftDim = getOffset(row[0], true); + } + if (dim.top >= leftDim.bottom - 1) { + rows.push([ el ]); + break; + } + if (dim.bottom > leftDim.top) { + if (dim.left < leftDim.left && !isRtl) { + row.unshift(el); + break; + } + row.push(el); + break; + } + if (j === 0) { + rows.unshift([ el ]); + break; + } + } + } + return rows; + } + function getOffset(element, offset$$1) { + var assign$$1; + if (offset$$1 === void 0) offset$$1 = false; + var offsetTop = element.offsetTop; + var offsetLeft = element.offsetLeft; + var offsetHeight = element.offsetHeight; + if (offset$$1) { + assign$$1 = offsetPosition(element), offsetTop = assign$$1[0], offsetLeft = assign$$1[1]; + } + return { + top: offsetTop, + left: offsetLeft, + height: offsetHeight, + bottom: offsetTop + offsetHeight + }; + } + var Grid = { + extends: Margin, + mixins: [ Class ], + name: "grid", + props: { + masonry: Boolean, + parallax: Number + }, + data: { + margin: "uk-grid-margin", + clsStack: "uk-grid-stack", + masonry: false, + parallax: 0 + }, + computed: { + length: function(_, $el) { + return $el.children.length; + }, + parallax: function(ref) { + var parallax = ref.parallax; + return parallax && this.length ? Math.abs(parallax) : ""; + } + }, + connected: function() { + this.masonry && addClass(this.$el, "uk-flex-top uk-flex-wrap-top"); + }, + update: [ { + read: function(ref) { + var rows = ref.rows; + if (this.masonry || this.parallax) { + rows = rows.map(function(elements) { + return sortBy(elements, "offsetLeft"); + }); + if (isRtl) { + rows.map(function(row) { + return row.reverse(); + }); + } + } + var transitionInProgress = rows.some(function(elements) { + return elements.some(Transition.inProgress); + }); + var translates = false; + var elHeight = ""; + if (this.masonry && this.length) { + var height$$1 = 0; + translates = rows.reduce(function(translates, row, i) { + translates[i] = row.map(function(_, j) { + return i === 0 ? 0 : toFloat(translates[i - 1][j]) + (height$$1 - toFloat(rows[i - 1][j] && rows[i - 1][j].offsetHeight)); + }); + height$$1 = row.reduce(function(height$$1, el) { + return Math.max(height$$1, el.offsetHeight); + }, 0); + return translates; + }, []); + elHeight = maxColumnHeight(rows) + getMarginTop(this.$el, this.margin) * (rows.length - 1); + } + return { + rows: rows, + translates: translates, + height: !transitionInProgress ? elHeight : false + }; + }, + write: function(ref) { + var stacks = ref.stacks; + var height$$1 = ref.height; + toggleClass(this.$el, this.clsStack, stacks); + css(this.$el, "paddingBottom", this.parallax); + height$$1 !== false && css(this.$el, "height", height$$1); + }, + events: [ "resize" ] + }, { + read: function(ref) { + var height$$1 = ref.height; + return { + scrolled: this.parallax ? scrolledOver(this.$el, height$$1 ? height$$1 - height(this.$el) : 0) * this.parallax : false + }; + }, + write: function(ref) { + var rows = ref.rows; + var scrolled = ref.scrolled; + var translates = ref.translates; + if (scrolled === false && !translates) { + return; + } + rows.forEach(function(row, i) { + return row.forEach(function(el, j) { + return css(el, "transform", !scrolled && !translates ? "" : "translateY(" + ((translates && -translates[i][j]) + (scrolled ? j % 2 ? scrolled : scrolled / 8 : 0)) + "px)"); + }); + }); + }, + events: [ "scroll", "resize" ] + } ] + }; + function getMarginTop(root, cls) { + var nodes = toNodes(root.children); + var ref = nodes.filter(function(el) { + return hasClass(el, cls); + }); + var node = ref[0]; + return toFloat(node ? css(node, "marginTop") : css(nodes[0], "paddingLeft")); + } + function maxColumnHeight(rows) { + return Math.max.apply(Math, rows.reduce(function(sum, row) { + row.forEach(function(el, i) { + return sum[i] = (sum[i] || 0) + el.offsetHeight; + }); + return sum; + }, [])); + } + var FlexBug = isIE ? { + data: { + selMinHeight: false, + forceHeight: false + }, + computed: { + elements: function(ref, $el) { + var selMinHeight = ref.selMinHeight; + return selMinHeight ? $$(selMinHeight, $el) : [ $el ]; + } + }, + update: [ { + read: function() { + css(this.elements, "height", ""); + }, + order: -5, + events: [ "resize" ] + }, { + write: function() { + var this$1 = this; + this.elements.forEach(function(el) { + var height$$1 = toFloat(css(el, "minHeight")); + if (height$$1 && (this$1.forceHeight || Math.round(height$$1 + boxModelAdjust("height", el, "content-box")) >= el.offsetHeight)) { + css(el, "height", height$$1); + } + }); + }, + order: 5, + events: [ "resize" ] + } ] + } : {}; + var HeightMatch = { + mixins: [ FlexBug ], + args: "target", + props: { + target: String, + row: Boolean + }, + data: { + target: "> *", + row: true, + forceHeight: true + }, + computed: { + elements: function(ref, $el) { + var target = ref.target; + return $$(target, $el); + } + }, + update: { + read: function() { + return { + rows: (this.row ? getRows(this.elements) : [ this.elements ]).map(match) + }; + }, + write: function(ref) { + var rows = ref.rows; + rows.forEach(function(ref) { + var heights = ref.heights; + var elements = ref.elements; + return elements.forEach(function(el, i) { + return css(el, "minHeight", heights[i]); + }); + }); + }, + events: [ "resize" ] + } + }; + function match(elements) { + var assign$$1; + if (elements.length < 2) { + return { + heights: [ "" ], + elements: elements + }; + } + var ref = getHeights(elements); + var heights = ref.heights; + var max = ref.max; + var hasMinHeight = elements.some(function(el) { + return el.style.minHeight; + }); + var hasShrunk = elements.some(function(el, i) { + return !el.style.minHeight && heights[i] < max; + }); + if (hasMinHeight && hasShrunk) { + css(elements, "minHeight", ""); + assign$$1 = getHeights(elements), heights = assign$$1.heights, max = assign$$1.max; + } + heights = elements.map(function(el, i) { + return heights[i] === max && toFloat(el.style.minHeight).toFixed(2) !== max.toFixed(2) ? "" : max; + }); + return { + heights: heights, + elements: elements + }; + } + function getHeights(elements) { + var heights = elements.map(function(el) { + return offset(el).height - boxModelAdjust("height", el, "content-box"); + }); + var max = Math.max.apply(null, heights); + return { + heights: heights, + max: max + }; + } + var HeightViewport = { + mixins: [ FlexBug ], + props: { + expand: Boolean, + offsetTop: Boolean, + offsetBottom: Boolean, + minHeight: Number + }, + data: { + expand: false, + offsetTop: false, + offsetBottom: false, + minHeight: 0 + }, + update: { + read: function() { + var minHeight = ""; + var box = boxModelAdjust("height", this.$el, "content-box"); + if (this.expand) { + minHeight = height(window) - (offsetHeight(document.documentElement) - offsetHeight(this.$el)) - box || ""; + } else { + minHeight = "calc(100vh"; + if (this.offsetTop) { + var ref = offset(this.$el); + var top = ref.top; + minHeight += top < height(window) / 2 ? " - " + top + "px" : ""; + } + if (this.offsetBottom === true) { + minHeight += " - " + offsetHeight(this.$el.nextElementSibling) + "px"; + } else if (isNumeric(this.offsetBottom)) { + minHeight += " - " + this.offsetBottom + "vh"; + } else if (this.offsetBottom && endsWith(this.offsetBottom, "px")) { + minHeight += " - " + toFloat(this.offsetBottom) + "px"; + } else if (isString(this.offsetBottom)) { + minHeight += " - " + offsetHeight(query(this.offsetBottom, this.$el)) + "px"; + } + minHeight += (box ? " - " + box + "px" : "") + ")"; + } + return { + minHeight: minHeight + }; + }, + write: function(ref) { + var minHeight = ref.minHeight; + css(this.$el, { + minHeight: minHeight + }); + if (this.minHeight && toFloat(css(this.$el, "minHeight")) < this.minHeight) { + css(this.$el, "minHeight", this.minHeight); + } + }, + events: [ "resize" ] + } + }; + function offsetHeight(el) { + return el && el.offsetHeight || 0; + } + var svgs = {}; + var SVG = { + args: "src", + props: { + id: String, + icon: String, + src: String, + style: String, + width: Number, + height: Number, + ratio: Number, + class: String + }, + data: { + ratio: 1, + id: false, + exclude: [ "ratio", "src", "icon" ], + class: "" + }, + connected: function() { + var this$1 = this; + var assign$$1; + this.class += " uk-svg"; + if (!this.icon && includes(this.src, "#")) { + var parts = this.src.split("#"); + if (parts.length > 1) { + assign$$1 = parts, this.src = assign$$1[0], this.icon = assign$$1[1]; + } + } + this.svg = this.getSvg().then(function(svg) { + var el; + if (isString(svg)) { + if (this$1.icon && includes(svg, "/g; + var symbols = {}; + function parseSymbols(svg, icon) { + if (!symbols[svg]) { + symbols[svg] = {}; + var match; + while (match = symbolRe.exec(svg)) { + symbols[svg][match[3]] = '"; + } + symbolRe.lastIndex = 0; + } + return symbols[svg][icon]; + } + var closeIcon = ''; + var closeLarge = ''; + var marker = ''; + var navbarToggleIcon = ''; + var overlayIcon = ''; + var paginationNext = ''; + var paginationPrevious = ''; + var searchIcon = ''; + var searchLarge = ''; + var searchNavbar = ''; + var slidenavNext = ''; + var slidenavNextLarge = ''; + var slidenavPrevious = ''; + var slidenavPreviousLarge = ''; + var spinner = ''; + var totop = ''; + var parsed = {}; + var icons = { + spinner: spinner, + totop: totop, + marker: marker, + "close-icon": closeIcon, + "close-large": closeLarge, + "navbar-toggle-icon": navbarToggleIcon, + "overlay-icon": overlayIcon, + "pagination-next": paginationNext, + "pagination-previous": paginationPrevious, + "search-icon": searchIcon, + "search-large": searchLarge, + "search-navbar": searchNavbar, + "slidenav-next": slidenavNext, + "slidenav-next-large": slidenavNextLarge, + "slidenav-previous": slidenavPrevious, + "slidenav-previous-large": slidenavPreviousLarge + }; + var Icon = { + install: install, + attrs: [ "icon", "ratio" ], + mixins: [ Class, SVG ], + args: "icon", + props: [ "icon" ], + data: { + exclude: [ "id", "style", "class", "src", "icon", "ratio" ] + }, + isIcon: true, + connected: function() { + addClass(this.$el, "uk-icon"); + }, + methods: { + getSvg: function() { + var icon = getIcon(applyRtl(this.icon)); + if (!icon) { + return Promise.reject("Icon not found."); + } + return Promise.resolve(icon); + } + } + }; + var IconComponent = { + extends: Icon, + data: function(vm) { + return { + icon: hyphenate(vm.constructor.options.name) + }; + } + }; + var Slidenav = { + extends: IconComponent, + connected: function() { + addClass(this.$el, "uk-slidenav"); + }, + computed: { + icon: function(ref, $el) { + var icon = ref.icon; + return hasClass($el, "uk-slidenav-large") ? icon + "-large" : icon; + } + } + }; + var Search = { + extends: IconComponent, + computed: { + icon: function(ref, $el) { + var icon = ref.icon; + return hasClass($el, "uk-search-icon") && parents($el, ".uk-search-large").length ? "search-large" : parents($el, ".uk-search-navbar").length ? "search-navbar" : icon; + } + } + }; + var Close = { + extends: IconComponent, + computed: { + icon: function() { + return "close-" + (hasClass(this.$el, "uk-close-large") ? "large" : "icon"); + } + } + }; + var Spinner = { + extends: IconComponent, + connected: function() { + var this$1 = this; + this.svg.then(function(svg) { + return this$1.ratio !== 1 && css($("circle", svg), "strokeWidth", 1 / this$1.ratio); + }, noop); + } + }; + function install(UIkit) { + UIkit.icon.add = function(name, svg) { + var obj; + var added = isString(name) ? (obj = {}, obj[name] = svg, obj) : name; + each(added, function(svg, name) { + icons[name] = svg; + delete parsed[name]; + }); + if (UIkit._initialized) { + apply(document.body, function(el) { + return each(UIkit.getComponents(el), function(cmp) { + cmp.$options.isIcon && cmp.icon in added && cmp.$reset(); + }); + }); + } + }; + } + function getIcon(icon) { + if (!icons[icon]) { + return null; + } + if (!parsed[icon]) { + parsed[icon] = $(icons[icon].trim()); + } + return parsed[icon]; + } + function applyRtl(icon) { + return isRtl ? swap(swap(icon, "left", "right"), "previous", "next") : icon; + } + var Img = { + props: { + dataSrc: String, + dataSrcset: Boolean, + sizes: String, + width: Number, + height: Number, + offsetTop: String, + offsetLeft: String, + target: String + }, + data: { + dataSrc: "", + dataSrcset: false, + sizes: false, + width: false, + height: false, + offsetTop: "50vh", + offsetLeft: 0, + target: false + }, + computed: { + cacheKey: function(ref) { + var dataSrc = ref.dataSrc; + return this.$name + "." + dataSrc; + }, + width: function(ref) { + var width$$1 = ref.width; + var dataWidth = ref.dataWidth; + return width$$1 || dataWidth; + }, + height: function(ref) { + var height$$1 = ref.height; + var dataHeight = ref.dataHeight; + return height$$1 || dataHeight; + }, + sizes: function(ref) { + var sizes = ref.sizes; + var dataSizes = ref.dataSizes; + return sizes || dataSizes; + }, + isImg: function(_, $el) { + return isImg($el); + }, + target: { + get: function(ref) { + var target = ref.target; + return [ this.$el ].concat(queryAll(target, this.$el)); + }, + watch: function() { + this.observe(); + } + }, + offsetTop: function(ref) { + var offsetTop = ref.offsetTop; + return toPx(offsetTop, "height"); + }, + offsetLeft: function(ref) { + var offsetLeft = ref.offsetLeft; + return toPx(offsetLeft, "width"); + } + }, + connected: function() { + if (storage[this.cacheKey]) { + setSrcAttrs(this.$el, storage[this.cacheKey] || this.dataSrc, this.dataSrcset, this.sizes); + } else if (this.isImg && this.width && this.height) { + setSrcAttrs(this.$el, getPlaceholderImage(this.width, this.height, this.sizes)); + } + this.observer = new IntersectionObserver(this.load, { + rootMargin: this.offsetTop + "px " + this.offsetLeft + "px" + }); + requestAnimationFrame(this.observe); + }, + disconnected: function() { + this.observer.disconnect(); + }, + update: { + read: function(ref) { + var this$1 = this; + var image = ref.image; + if (!image && document.readyState === "complete") { + this.load(this.observer.takeRecords()); + } + if (this.isImg) { + return false; + } + image && image.then(function(img) { + return img && img.currentSrc !== "" && setSrcAttrs(this$1.$el, currentSrc(img)); + }); + }, + write: function(data$$1) { + if (this.dataSrcset && window.devicePixelRatio !== 1) { + var bgSize = css(this.$el, "backgroundSize"); + if (bgSize.match(/^(auto\s?)+$/) || toFloat(bgSize) === data$$1.bgSize) { + data$$1.bgSize = getSourceSize(this.dataSrcset, this.sizes); + css(this.$el, "backgroundSize", data$$1.bgSize + "px"); + } + } + }, + events: [ "resize" ] + }, + methods: { + load: function(entries) { + var this$1 = this; + if (!entries.some(function(entry) { + return entry.isIntersecting; + })) { + return; + } + this._data.image = getImage(this.dataSrc, this.dataSrcset, this.sizes).then(function(img) { + setSrcAttrs(this$1.$el, currentSrc(img), img.srcset, img.sizes); + storage[this$1.cacheKey] = currentSrc(img); + return img; + }, noop); + this.observer.disconnect(); + }, + observe: function() { + var this$1 = this; + if (!this._data.image && this._connected) { + this.target.forEach(function(el) { + return this$1.observer.observe(el); + }); + } + } + } + }; + function setSrcAttrs(el, src, srcset, sizes) { + if (isImg(el)) { + sizes && (el.sizes = sizes); + srcset && (el.srcset = srcset); + src && (el.src = src); + } else if (src) { + var change = !includes(el.style.backgroundImage, src); + if (change) { + css(el, "backgroundImage", "url(" + escape(src) + ")"); + trigger(el, createEvent("load", false)); + } + } + } + function getPlaceholderImage(width$$1, height$$1, sizes) { + var assign$$1; + if (sizes) { + assign$$1 = Dimensions.ratio({ + width: width$$1, + height: height$$1 + }, "width", toPx(sizesToPixel(sizes))), width$$1 = assign$$1.width, height$$1 = assign$$1.height; + } + return 'data:image/svg+xml;utf8,'; + } + var sizesRe = /\s*(.*?)\s*(\w+|calc\(.*?\))\s*(?:,|$)/g; + function sizesToPixel(sizes) { + var matches$$1; + sizesRe.lastIndex = 0; + while (matches$$1 = sizesRe.exec(sizes)) { + if (!matches$$1[1] || window.matchMedia(matches$$1[1]).matches) { + matches$$1 = evaluateSize(matches$$1[2]); + break; + } + } + return matches$$1 || "100vw"; + } + var sizeRe = /\d+(?:\w+|%)/g; + var additionRe = /[+-]?(\d+)/g; + function evaluateSize(size) { + return startsWith(size, "calc") ? size.substring(5, size.length - 1).replace(sizeRe, function(size) { + return toPx(size); + }).replace(/ /g, "").match(additionRe).reduce(function(a, b) { + return a + +b; + }, 0) : size; + } + function toPx(value, property, element) { + if (property === void 0) property = "width"; + if (element === void 0) element = window; + return isNumeric(value) ? +value : endsWith(value, "vw") ? percent(element, "width", value) : endsWith(value, "vh") ? percent(element, "height", value) : endsWith(value, "%") ? percent(element, property, value) : toFloat(value); + } + var srcSetRe = /\s+\d+w\s*(?:,|$)/g; + function getSourceSize(srcset, sizes) { + var srcSize = toPx(sizesToPixel(sizes)); + var descriptors = (srcset.match(srcSetRe) || []).map(toFloat).sort(function(a, b) { + return a - b; + }); + return descriptors.filter(function(size) { + return size >= srcSize; + })[0] || descriptors.pop() || ""; + } + var dimensions = { + height: height, + width: width + }; + function percent(element, property, value) { + return dimensions[property](element) * toFloat(value) / 100; + } + function isImg(el) { + return el.tagName === "IMG"; + } + function currentSrc(el) { + return el.currentSrc || el.src; + } + var key = "__test__"; + var storage; + try { + storage = window.sessionStorage || {}; + storage[key] = 1; + delete storage[key]; + } catch (e) { + storage = {}; + } + var Media = { + props: { + media: Boolean + }, + data: { + media: false + }, + computed: { + matchMedia: function() { + var media = toMedia(this.media); + return !media || window.matchMedia(media).matches; + } + } + }; + function toMedia(value) { + if (isString(value)) { + if (value[0] === "@") { + var name = "breakpoint-" + value.substr(1); + value = toFloat(getCssVar(name)); + } else if (isNaN(value)) { + return value; + } + } + return value && !isNaN(value) ? "(min-width: " + value + "px)" : false; + } + var Leader = { + mixins: [ Class, Media ], + props: { + fill: String + }, + data: { + fill: "", + clsWrapper: "uk-leader-fill", + clsHide: "uk-leader-hide", + attrFill: "data-fill" + }, + computed: { + fill: function(ref) { + var fill = ref.fill; + return fill || getCssVar("leader-fill-content"); + } + }, + connected: function() { + var assign$$1; + assign$$1 = wrapInner(this.$el, ''), this.wrapper = assign$$1[0]; + }, + disconnected: function() { + unwrap(this.wrapper.childNodes); + }, + update: { + read: function(ref) { + var changed = ref.changed; + var width$$1 = ref.width; + var prev = width$$1; + width$$1 = Math.floor(this.$el.offsetWidth / 2); + return { + width: width$$1, + changed: changed || prev !== width$$1, + hide: !this.matchMedia + }; + }, + write: function(data$$1) { + toggleClass(this.wrapper, this.clsHide, data$$1.hide); + if (data$$1.changed) { + data$$1.changed = false; + attr(this.wrapper, this.attrFill, new Array(data$$1.width).join(this.fill)); + } + }, + events: [ "resize" ] + } + }; + var Container = { + props: { + container: Boolean + }, + data: { + container: true + }, + computed: { + container: function(ref) { + var container = ref.container; + return container === true && this.$container || container && $(container); + } + } + }; + var active$1; + var Modal = { + mixins: [ Class, Container, Togglable ], + props: { + selPanel: String, + selClose: String, + escClose: Boolean, + bgClose: Boolean, + stack: Boolean + }, + data: { + cls: "uk-open", + escClose: true, + bgClose: true, + overlay: true, + stack: false + }, + computed: { + panel: function(ref, $el) { + var selPanel = ref.selPanel; + return $(selPanel, $el); + }, + transitionElement: function() { + return this.panel; + }, + bgClose: function(ref) { + var bgClose = ref.bgClose; + return bgClose && this.panel; + } + }, + beforeDisconnect: function() { + if (this.isToggled()) { + this.toggleNow(this.$el, false); + } + }, + events: [ { + name: "click", + delegate: function() { + return this.selClose; + }, + handler: function(e) { + e.preventDefault(); + this.hide(); + } + }, { + name: "toggle", + self: true, + handler: function(e) { + if (e.defaultPrevented) { + return; + } + e.preventDefault(); + this.toggle(); + } + }, { + name: "beforeshow", + self: true, + handler: function(e) { + var prev = active$1 && active$1 !== this && active$1; + active$1 = this; + if (prev) { + if (this.stack) { + this.prev = prev; + } else { + active$1 = prev; + if (prev.isToggled()) { + prev.hide().then(this.show); + } else { + once(prev.$el, "beforeshow hidden", this.show, false, function(ref) { + var target = ref.target; + var type = ref.type; + return type === "hidden" && target === prev.$el; + }); + } + e.preventDefault(); + } + return; + } + registerEvents(); + } + }, { + name: "show", + self: true, + handler: function() { + if (!hasClass(document.documentElement, this.clsPage)) { + this.scrollbarWidth = width(window) - width(document); + css(document.body, "overflowY", this.scrollbarWidth && this.overlay ? "scroll" : ""); + } + addClass(document.documentElement, this.clsPage); + } + }, { + name: "hide", + self: true, + handler: function() { + if (!active$1 || active$1 === this && !this.prev) { + deregisterEvents(); + } + } + }, { + name: "hidden", + self: true, + handler: function() { + var found; + var ref = this; + var prev = ref.prev; + active$1 = active$1 && active$1 !== this && active$1 || prev; + if (!active$1) { + css(document.body, "overflowY", ""); + } else { + while (prev) { + if (prev.clsPage === this.clsPage) { + found = true; + break; + } + prev = prev.prev; + } + } + if (!found) { + removeClass(document.documentElement, this.clsPage); + } + } + } ], + methods: { + toggle: function() { + return this.isToggled() ? this.hide() : this.show(); + }, + show: function() { + var this$1 = this; + if (this.isToggled()) { + return Promise.resolve(); + } + if (this.container && this.$el.parentNode !== this.container) { + append(this.container, this.$el); + return new Promise(function(resolve) { + return requestAnimationFrame(function() { + return this$1.show().then(resolve); + }); + }); + } + return this.toggleElement(this.$el, true, animate$1(this)); + }, + hide: function() { + return this.isToggled() ? this.toggleElement(this.$el, false, animate$1(this)) : Promise.resolve(); + }, + getActive: function() { + return active$1; + } + } + }; + var events; + function registerEvents() { + if (events) { + return; + } + events = [ on(document, pointerUp, function(ref) { + var target = ref.target; + var defaultPrevented = ref.defaultPrevented; + if (active$1 && active$1.bgClose && !defaultPrevented && (!active$1.overlay || within(target, active$1.$el)) && !within(target, active$1.panel)) { + active$1.hide(); + } + }), on(document, "keydown", function(e) { + if (e.keyCode === 27 && active$1 && active$1.escClose) { + e.preventDefault(); + active$1.hide(); + } + }) ]; + } + function deregisterEvents() { + events && events.forEach(function(unbind) { + return unbind(); + }); + events = null; + } + function animate$1(ref) { + var transitionElement = ref.transitionElement; + var _toggle = ref._toggle; + return function(el, show) { + return new Promise(function(resolve, reject) { + return once(el, "show hide", function() { + el._reject && el._reject(); + el._reject = reject; + _toggle(el, show); + if (toMs(css(transitionElement, "transitionDuration"))) { + once(transitionElement, "transitionend", resolve, false, function(e) { + return e.target === transitionElement; + }); + } else { + resolve(); + } + }); + }); + }; + } + var Modal$1 = { + install: install$1, + mixins: [ Modal ], + data: { + clsPage: "uk-modal-page", + selPanel: ".uk-modal-dialog", + selClose: ".uk-modal-close, .uk-modal-close-default, .uk-modal-close-outside, .uk-modal-close-full" + }, + events: [ { + name: "show", + self: true, + handler: function() { + if (hasClass(this.panel, "uk-margin-auto-vertical")) { + addClass(this.$el, "uk-flex"); + } else { + css(this.$el, "display", "block"); + } + height(this.$el); + } + }, { + name: "hidden", + self: true, + handler: function() { + css(this.$el, "display", ""); + removeClass(this.$el, "uk-flex"); + } + } ] + }; + function install$1(UIkit) { + UIkit.modal.dialog = function(content, options) { + var dialog = UIkit.modal('
' + content + "
", options); + dialog.show(); + on(dialog.$el, "hidden", function(ref) { + var target = ref.target; + var currentTarget = ref.currentTarget; + if (target === currentTarget) { + Promise.resolve(function() { + return dialog.$destroy(true); + }); + } + }); + return dialog; + }; + UIkit.modal.alert = function(message, options) { + options = assign({ + bgClose: false, + escClose: false, + labels: UIkit.modal.labels + }, options); + return new Promise(function(resolve) { + return on(UIkit.modal.dialog('
' + (isString(message) ? message : html(message)) + '
", options).$el, "hide", resolve); + }); + }; + UIkit.modal.confirm = function(message, options) { + options = assign({ + bgClose: false, + escClose: true, + labels: UIkit.modal.labels + }, options); + return new Promise(function(resolve, reject) { + var confirm = UIkit.modal.dialog('
' + (isString(message) ? message : html(message)) + '
", options); + var resolved = false; + on(confirm.$el, "submit", "form", function(e) { + e.preventDefault(); + resolve(); + resolved = true; + confirm.hide(); + }); + on(confirm.$el, "hide", function() { + if (!resolved) { + reject(); + } + }); + }); + }; + UIkit.modal.prompt = function(message, value, options) { + options = assign({ + bgClose: false, + escClose: true, + labels: UIkit.modal.labels + }, options); + return new Promise(function(resolve) { + var prompt = UIkit.modal.dialog('
", options), input = $("input", prompt.$el); + input.value = value; + var resolved = false; + on(prompt.$el, "submit", "form", function(e) { + e.preventDefault(); + resolve(input.value); + resolved = true; + prompt.hide(); + }); + on(prompt.$el, "hide", function() { + if (!resolved) { + resolve(null); + } + }); + }); + }; + UIkit.modal.labels = { + ok: "Ok", + cancel: "Cancel" + }; + } + var Nav = { + extends: Accordion, + data: { + targets: "> .uk-parent", + toggle: "> a", + content: "> ul" + } + }; + var Navbar = { + mixins: [ Class, FlexBug ], + props: { + dropdown: String, + mode: "list", + align: String, + offset: Number, + boundary: Boolean, + boundaryAlign: Boolean, + clsDrop: String, + delayShow: Number, + delayHide: Number, + dropbar: Boolean, + dropbarMode: String, + dropbarAnchor: Boolean, + duration: Number + }, + data: { + dropdown: ".uk-navbar-nav > li", + align: !isRtl ? "left" : "right", + clsDrop: "uk-navbar-dropdown", + mode: undefined, + offset: undefined, + delayShow: undefined, + delayHide: undefined, + boundaryAlign: undefined, + flip: "x", + boundary: true, + dropbar: false, + dropbarMode: "slide", + dropbarAnchor: false, + duration: 200, + forceHeight: true, + selMinHeight: ".uk-navbar-nav > li > a, .uk-navbar-item, .uk-navbar-toggle" + }, + computed: { + boundary: function(ref, $el) { + var boundary = ref.boundary; + var boundaryAlign = ref.boundaryAlign; + return boundary === true || boundaryAlign ? $el : boundary; + }, + dropbarAnchor: function(ref, $el) { + var dropbarAnchor = ref.dropbarAnchor; + return query(dropbarAnchor, $el); + }, + pos: function(ref) { + var align = ref.align; + return "bottom-" + align; + }, + dropdowns: function(ref, $el) { + var dropdown = ref.dropdown; + var clsDrop = ref.clsDrop; + return $$(dropdown + " ." + clsDrop, $el); + } + }, + beforeConnect: function() { + var ref = this.$props; + var dropbar = ref.dropbar; + this.dropbar = dropbar && (query(dropbar, this.$el) || $("+ .uk-navbar-dropbar", this.$el) || $("
")); + if (this.dropbar) { + addClass(this.dropbar, "uk-navbar-dropbar"); + if (this.dropbarMode === "slide") { + addClass(this.dropbar, "uk-navbar-dropbar-slide"); + } + } + }, + disconnected: function() { + this.dropbar && remove(this.dropbar); + }, + update: function() { + var this$1 = this; + this.$create("drop", this.dropdowns.filter(function(el) { + return !this$1.getDropdown(el); + }), assign({}, this.$props, { + boundary: this.boundary, + pos: this.pos, + offset: this.dropbar || this.offset + })); + }, + events: [ { + name: "mouseover", + delegate: function() { + return this.dropdown; + }, + handler: function(ref) { + var current = ref.current; + var active = this.getActive(); + if (active && active.toggle && !within(active.toggle.$el, current) && !active.tracker.movesTo(active.$el)) { + active.hide(false); + } + } + }, { + name: "mouseleave", + el: function() { + return this.dropbar; + }, + handler: function() { + var active = this.getActive(); + if (active && !matches(this.dropbar, ":hover")) { + active.hide(); + } + } + }, { + name: "beforeshow", + capture: true, + filter: function() { + return this.dropbar; + }, + handler: function() { + if (!this.dropbar.parentNode) { + after(this.dropbarAnchor || this.$el, this.dropbar); + } + } + }, { + name: "show", + capture: true, + filter: function() { + return this.dropbar; + }, + handler: function(_, drop) { + var $el = drop.$el; + var dir = drop.dir; + this.clsDrop && addClass($el, this.clsDrop + "-dropbar"); + if (dir === "bottom") { + this.transitionTo($el.offsetHeight + toFloat(css($el, "marginTop")) + toFloat(css($el, "marginBottom")), $el); + } + } + }, { + name: "beforehide", + filter: function() { + return this.dropbar; + }, + handler: function(e, ref) { + var $el = ref.$el; + var active = this.getActive(); + if (matches(this.dropbar, ":hover") && active && active.$el === $el) { + e.preventDefault(); + } + } + }, { + name: "hide", + filter: function() { + return this.dropbar; + }, + handler: function(_, ref) { + var $el = ref.$el; + var active = this.getActive(); + if (!active || active && active.$el === $el) { + this.transitionTo(0); + } + } + } ], + methods: { + getActive: function() { + var ref = this.dropdowns.map(this.getDropdown).filter(function(drop) { + return drop && drop.isActive(); + }); + var active = ref[0]; + return active && includes(active.mode, "hover") && within(active.toggle.$el, this.$el) && active; + }, + transitionTo: function(newHeight, el) { + var this$1 = this; + var ref = this; + var dropbar = ref.dropbar; + var oldHeight = isVisible(dropbar) ? height(dropbar) : 0; + el = oldHeight < newHeight && el; + css(el, "clip", "rect(0," + el.offsetWidth + "px," + oldHeight + "px,0)"); + height(dropbar, oldHeight); + Transition.cancel([ el, dropbar ]); + return Promise.all([ Transition.start(dropbar, { + height: newHeight + }, this.duration), Transition.start(el, { + clip: "rect(0," + el.offsetWidth + "px," + newHeight + "px,0)" + }, this.duration) ]).catch(noop).then(function() { + css(el, { + clip: "" + }); + this$1.$update(dropbar); + }); + }, + getDropdown: function(el) { + return this.$getComponent(el, "drop") || this.$getComponent(el, "dropdown"); + } + } + }; + var Offcanvas = { + mixins: [ Modal ], + args: "mode", + props: { + mode: String, + flip: Boolean, + overlay: Boolean + }, + data: { + mode: "slide", + flip: false, + overlay: false, + clsPage: "uk-offcanvas-page", + clsContainer: "uk-offcanvas-container", + selPanel: ".uk-offcanvas-bar", + clsFlip: "uk-offcanvas-flip", + clsContainerAnimation: "uk-offcanvas-container-animation", + clsSidebarAnimation: "uk-offcanvas-bar-animation", + clsMode: "uk-offcanvas", + clsOverlay: "uk-offcanvas-overlay", + selClose: ".uk-offcanvas-close" + }, + computed: { + clsFlip: function(ref) { + var flip = ref.flip; + var clsFlip = ref.clsFlip; + return flip ? clsFlip : ""; + }, + clsOverlay: function(ref) { + var overlay = ref.overlay; + var clsOverlay = ref.clsOverlay; + return overlay ? clsOverlay : ""; + }, + clsMode: function(ref) { + var mode = ref.mode; + var clsMode = ref.clsMode; + return clsMode + "-" + mode; + }, + clsSidebarAnimation: function(ref) { + var mode = ref.mode; + var clsSidebarAnimation = ref.clsSidebarAnimation; + return mode === "none" || mode === "reveal" ? "" : clsSidebarAnimation; + }, + clsContainerAnimation: function(ref) { + var mode = ref.mode; + var clsContainerAnimation = ref.clsContainerAnimation; + return mode !== "push" && mode !== "reveal" ? "" : clsContainerAnimation; + }, + transitionElement: function(ref) { + var mode = ref.mode; + return mode === "reveal" ? this.panel.parentNode : this.panel; + } + }, + events: [ { + name: "click", + delegate: function() { + return 'a[href^="#"]'; + }, + handler: function(ref) { + var current = ref.current; + if (current.hash && $(current.hash, document.body)) { + this.hide(); + } + } + }, { + name: "touchstart", + el: function() { + return this.panel; + }, + handler: function(ref) { + var targetTouches = ref.targetTouches; + if (targetTouches.length === 1) { + this.clientY = targetTouches[0].clientY; + } + } + }, { + name: "touchmove", + self: true, + passive: false, + filter: function() { + return this.overlay; + }, + handler: function(e) { + e.preventDefault(); + } + }, { + name: "touchmove", + passive: false, + el: function() { + return this.panel; + }, + handler: function(e) { + if (e.targetTouches.length !== 1) { + return; + } + var clientY = event.targetTouches[0].clientY - this.clientY; + var ref = this.panel; + var scrollTop$$1 = ref.scrollTop; + var scrollHeight = ref.scrollHeight; + var clientHeight = ref.clientHeight; + if (clientHeight >= scrollHeight || scrollTop$$1 === 0 && clientY > 0 || scrollHeight - scrollTop$$1 <= clientHeight && clientY < 0) { + e.preventDefault(); + } + } + }, { + name: "show", + self: true, + handler: function() { + if (this.mode === "reveal" && !hasClass(this.panel.parentNode, this.clsMode)) { + wrapAll(this.panel, "
"); + addClass(this.panel.parentNode, this.clsMode); + } + css(document.documentElement, "overflowY", this.overlay ? "hidden" : ""); + addClass(document.body, this.clsContainer, this.clsFlip); + css(this.$el, "display", "block"); + addClass(this.$el, this.clsOverlay); + addClass(this.panel, this.clsSidebarAnimation, this.mode !== "reveal" ? this.clsMode : ""); + height(document.body); + addClass(document.body, this.clsContainerAnimation); + this.clsContainerAnimation && suppressUserScale(); + } + }, { + name: "hide", + self: true, + handler: function() { + removeClass(document.body, this.clsContainerAnimation); + var active = this.getActive(); + if (this.mode === "none" || active && active !== this && active !== this.prev) { + trigger(this.panel, "transitionend"); + } + } + }, { + name: "hidden", + self: true, + handler: function() { + this.clsContainerAnimation && resumeUserScale(); + if (this.mode === "reveal") { + unwrap(this.panel); + } + removeClass(this.panel, this.clsSidebarAnimation, this.clsMode); + removeClass(this.$el, this.clsOverlay); + css(this.$el, "display", ""); + removeClass(document.body, this.clsContainer, this.clsFlip); + css(document.documentElement, "overflowY", ""); + } + }, { + name: "swipeLeft swipeRight", + handler: function(e) { + if (this.isToggled() && isTouch(e) && e.type === "swipeLeft" ^ this.flip) { + this.hide(); + } + } + } ] + }; + function suppressUserScale() { + getViewport().content += ",user-scalable=0"; + } + function resumeUserScale() { + var viewport = getViewport(); + viewport.content = viewport.content.replace(/,user-scalable=0$/, ""); + } + function getViewport() { + return $('meta[name="viewport"]', document.head) || append(document.head, ''); + } + var OverflowAuto = { + mixins: [ Class ], + props: { + selContainer: String, + selContent: String + }, + data: { + selContainer: ".uk-modal", + selContent: ".uk-modal-dialog" + }, + computed: { + container: function(ref, $el) { + var selContainer = ref.selContainer; + return closest($el, selContainer); + }, + content: function(ref, $el) { + var selContent = ref.selContent; + return closest($el, selContent); + } + }, + connected: function() { + css(this.$el, "minHeight", 150); + }, + update: { + read: function() { + if (!this.content || !this.container) { + return false; + } + return { + current: toFloat(css(this.$el, "maxHeight")), + max: Math.max(150, height(this.container) - (offset(this.content).height - height(this.$el))) + }; + }, + write: function(ref) { + var current = ref.current; + var max = ref.max; + css(this.$el, "maxHeight", max); + if (Math.round(current) !== Math.round(max)) { + trigger(this.$el, "resize"); + } + }, + events: [ "resize" ] + } + }; + var Responsive = { + props: [ "width", "height" ], + connected: function() { + addClass(this.$el, "uk-responsive-width"); + }, + update: { + read: function() { + return isVisible(this.$el) && this.width && this.height ? { + width: width(this.$el.parentNode), + height: this.height + } : false; + }, + write: function(dim) { + height(this.$el, Dimensions.contain({ + height: this.height, + width: this.width + }, dim).height); + }, + events: [ "resize" ] + } + }; + var Scroll = { + props: { + duration: Number, + offset: Number + }, + data: { + duration: 1e3, + offset: 0 + }, + methods: { + scrollTo: function(el) { + var this$1 = this; + el = el && $(el) || document.body; + var docHeight = height(document); + var winHeight = height(window); + var target = offset(el).top - this.offset; + if (target + winHeight > docHeight) { + target = docHeight - winHeight; + } + if (!trigger(this.$el, "beforescroll", [ this, el ])) { + return; + } + var start = Date.now(); + var startY = window.pageYOffset; + var step = function() { + var currentY = startY + (target - startY) * ease(clamp((Date.now() - start) / this$1.duration)); + scrollTop(window, currentY); + if (currentY !== target) { + requestAnimationFrame(step); + } else { + trigger(this$1.$el, "scrolled", [ this$1, el ]); + } + }; + step(); + } + }, + events: { + click: function(e) { + if (e.defaultPrevented) { + return; + } + e.preventDefault(); + this.scrollTo(escape(decodeURIComponent(this.$el.hash)).substr(1)); + } + } + }; + function ease(k) { + return .5 * (1 - Math.cos(Math.PI * k)); + } + var Scrollspy = { + args: "cls", + props: { + cls: "list", + target: String, + hidden: Boolean, + offsetTop: Number, + offsetLeft: Number, + repeat: Boolean, + delay: Number + }, + data: function() { + return { + cls: [], + target: false, + hidden: true, + offsetTop: 0, + offsetLeft: 0, + repeat: false, + delay: 0, + inViewClass: "uk-scrollspy-inview" + }; + }, + computed: { + elements: function(ref, $el) { + var target = ref.target; + return target ? $$(target, $el) : [ $el ]; + } + }, + update: [ { + write: function() { + if (this.hidden) { + css(filter(this.elements, ":not(." + this.inViewClass + ")"), "visibility", "hidden"); + } + } + }, { + read: function(els) { + var this$1 = this; + if (!els.update) { + return; + } + this.elements.forEach(function(el, i) { + var elData = els[i]; + if (!elData || elData.el !== el) { + var cls = data(el, "uk-scrollspy-class"); + elData = { + el: el, + toggles: cls && cls.split(",") || this$1.cls + }; + } + elData.show = isInView(el, this$1.offsetTop, this$1.offsetLeft); + els[i] = elData; + }); + }, + write: function(els) { + var this$1 = this; + if (!els.update) { + this.$emit(); + return els.update = true; + } + this.elements.forEach(function(el, i) { + var elData = els[i]; + var cls = elData.toggles[i] || elData.toggles[0]; + if (elData.show && !elData.inview && !elData.queued) { + var show = function() { + css(el, "visibility", ""); + addClass(el, this$1.inViewClass); + toggleClass(el, cls); + trigger(el, "inview"); + this$1.$update(el); + elData.inview = true; + elData.abort && elData.abort(); + }; + if (this$1.delay) { + elData.queued = true; + els.promise = (els.promise || Promise.resolve()).then(function() { + return !elData.inview && new Promise(function(resolve) { + var timer = setTimeout(function() { + show(); + resolve(); + }, els.promise || this$1.elements.length === 1 ? this$1.delay : 0); + elData.abort = function() { + clearTimeout(timer); + resolve(); + elData.queued = false; + }; + }); + }); + } else { + show(); + } + } else if (!elData.show && (elData.inview || elData.queued) && this$1.repeat) { + elData.abort && elData.abort(); + if (!elData.inview) { + return; + } + css(el, "visibility", this$1.hidden ? "hidden" : ""); + removeClass(el, this$1.inViewClass); + toggleClass(el, cls); + trigger(el, "outview"); + this$1.$update(el); + elData.inview = false; + } + }); + }, + events: [ "scroll", "resize" ] + } ] + }; + var ScrollspyNav = { + props: { + cls: String, + closest: String, + scroll: Boolean, + overflow: Boolean, + offset: Number + }, + data: { + cls: "uk-active", + closest: false, + scroll: false, + overflow: true, + offset: 0 + }, + computed: { + links: function(_, $el) { + return $$('a[href^="#"]', $el).filter(function(el) { + return el.hash; + }); + }, + elements: function(ref) { + var selector = ref.closest; + return closest(this.links, selector || "*"); + }, + targets: function() { + return $$(this.links.map(function(el) { + return el.hash; + }).join(",")); + } + }, + update: [ { + read: function() { + if (this.scroll) { + this.$create("scroll", this.links, { + offset: this.offset || 0 + }); + } + } + }, { + read: function(data$$1) { + var this$1 = this; + var scroll = window.pageYOffset + this.offset + 1; + var max = height(document) - height(window) + this.offset; + data$$1.active = false; + this.targets.every(function(el, i) { + var ref = offset(el); + var top = ref.top; + var last = i + 1 === this$1.targets.length; + if (!this$1.overflow && (i === 0 && top > scroll || last && top + el.offsetTop < scroll)) { + return false; + } + if (!last && offset(this$1.targets[i + 1]).top <= scroll) { + return true; + } + if (scroll >= max) { + for (var j = this$1.targets.length - 1; j > i; j--) { + if (isInView(this$1.targets[j])) { + el = this$1.targets[j]; + break; + } + } + } + return !(data$$1.active = $(filter(this$1.links, '[href="#' + el.id + '"]'))); + }); + }, + write: function(ref) { + var active = ref.active; + this.links.forEach(function(el) { + return el.blur(); + }); + removeClass(this.elements, this.cls); + if (active) { + trigger(this.$el, "active", [ active, addClass(this.closest ? closest(active, this.closest) : active, this.cls) ]); + } + }, + events: [ "scroll", "resize" ] + } ] + }; + var Sticky = { + mixins: [ Class, Media ], + props: { + top: null, + bottom: Boolean, + offset: Number, + animation: String, + clsActive: String, + clsInactive: String, + clsFixed: String, + clsBelow: String, + selTarget: String, + widthElement: Boolean, + showOnUp: Boolean, + targetOffset: Number + }, + data: { + top: 0, + bottom: false, + offset: 0, + animation: "", + clsActive: "uk-active", + clsInactive: "", + clsFixed: "uk-sticky-fixed", + clsBelow: "uk-sticky-below", + selTarget: "", + widthElement: false, + showOnUp: false, + targetOffset: false + }, + computed: { + selTarget: function(ref, $el) { + var selTarget = ref.selTarget; + return selTarget && $(selTarget, $el) || $el; + }, + widthElement: function(ref, $el) { + var widthElement = ref.widthElement; + return query(widthElement, $el) || this.placeholder; + }, + isActive: { + get: function() { + return hasClass(this.selTarget, this.clsActive); + }, + set: function(value) { + if (value && !this.isActive) { + replaceClass(this.selTarget, this.clsInactive, this.clsActive); + trigger(this.$el, "active"); + } else if (!value && !hasClass(this.selTarget, this.clsInactive)) { + replaceClass(this.selTarget, this.clsActive, this.clsInactive); + trigger(this.$el, "inactive"); + } + } + } + }, + connected: function() { + this.placeholder = $("+ .uk-sticky-placeholder", this.$el) || $('
'); + this.isFixed = false; + this.isActive = false; + }, + disconnected: function() { + if (this.isFixed) { + this.hide(); + removeClass(this.selTarget, this.clsInactive); + } + remove(this.placeholder); + this.placeholder = null; + this.widthElement = null; + }, + events: [ { + name: "load hashchange popstate", + el: window, + handler: function() { + var this$1 = this; + if (!(this.targetOffset !== false && location.hash && window.pageYOffset > 0)) { + return; + } + var target = $(location.hash); + if (target) { + fastdom.read(function() { + var ref = offset(target); + var top = ref.top; + var elTop = offset(this$1.$el).top; + var elHeight = this$1.$el.offsetHeight; + if (this$1.isFixed && elTop + elHeight >= top && elTop <= top + target.offsetHeight) { + scrollTop(window, top - elHeight - (isNumeric(this$1.targetOffset) ? this$1.targetOffset : 0) - this$1.offset); + } + }); + } + } + } ], + update: [ { + read: function(ref, type) { + var height$$1 = ref.height; + if (this.isActive && type !== "update") { + this.hide(); + height$$1 = this.$el.offsetHeight; + this.show(); + } + height$$1 = !this.isActive ? this.$el.offsetHeight : height$$1; + this.topOffset = offset(this.isFixed ? this.placeholder : this.$el).top; + this.bottomOffset = this.topOffset + height$$1; + var bottom = parseProp("bottom", this); + this.top = Math.max(toFloat(parseProp("top", this)), this.topOffset) - this.offset; + this.bottom = bottom && bottom - height$$1; + this.inactive = !this.matchMedia; + return { + lastScroll: false, + height: height$$1, + margins: css(this.$el, [ "marginTop", "marginBottom", "marginLeft", "marginRight" ]) + }; + }, + write: function(ref) { + var height$$1 = ref.height; + var margins = ref.margins; + var ref$1 = this; + var placeholder = ref$1.placeholder; + css(placeholder, assign({ + height: height$$1 + }, margins)); + if (!within(placeholder, document)) { + after(this.$el, placeholder); + attr(placeholder, "hidden", ""); + } + this.isActive = this.isActive; + }, + events: [ "resize" ] + }, { + read: function(ref) { + var scroll = ref.scroll; + if (scroll === void 0) scroll = 0; + this.width = (isVisible(this.widthElement) ? this.widthElement : this.$el).offsetWidth; + this.scroll = window.pageYOffset; + return { + dir: scroll <= this.scroll ? "down" : "up", + scroll: this.scroll, + visible: isVisible(this.$el), + top: offsetPosition(this.placeholder)[0] + }; + }, + write: function(data$$1, type) { + var this$1 = this; + var initTimestamp = data$$1.initTimestamp; + if (initTimestamp === void 0) initTimestamp = 0; + var dir = data$$1.dir; + var lastDir = data$$1.lastDir; + var lastScroll = data$$1.lastScroll; + var scroll = data$$1.scroll; + var top = data$$1.top; + var visible = data$$1.visible; + var now = performance.now(); + data$$1.lastScroll = scroll; + if (scroll < 0 || scroll === lastScroll || !visible || this.disabled || this.showOnUp && type !== "scroll") { + return; + } + if (now - initTimestamp > 300 || dir !== lastDir) { + data$$1.initScroll = scroll; + data$$1.initTimestamp = now; + } + data$$1.lastDir = dir; + if (this.showOnUp && Math.abs(data$$1.initScroll - scroll) <= 30 && Math.abs(lastScroll - scroll) <= 10) { + return; + } + if (this.inactive || scroll < this.top || this.showOnUp && (scroll <= this.top || dir === "down" || dir === "up" && !this.isFixed && scroll <= this.bottomOffset)) { + if (!this.isFixed) { + if (Animation.inProgress(this.$el) && top > scroll) { + Animation.cancel(this.$el); + this.hide(); + } + return; + } + this.isFixed = false; + if (this.animation && scroll > this.topOffset) { + Animation.cancel(this.$el); + Animation.out(this.$el, this.animation).then(function() { + return this$1.hide(); + }, noop); + } else { + this.hide(); + } + } else if (this.isFixed) { + this.update(); + } else if (this.animation) { + Animation.cancel(this.$el); + this.show(); + Animation.in(this.$el, this.animation).catch(noop); + } else { + this.show(); + } + }, + events: [ "resize", "scroll" ] + } ], + methods: { + show: function() { + this.isFixed = true; + this.update(); + attr(this.placeholder, "hidden", null); + }, + hide: function() { + this.isActive = false; + removeClass(this.$el, this.clsFixed, this.clsBelow); + css(this.$el, { + position: "", + top: "", + width: "" + }); + attr(this.placeholder, "hidden", ""); + }, + update: function() { + var active = this.top !== 0 || this.scroll > this.top; + var top = Math.max(0, this.offset); + if (this.bottom && this.scroll > this.bottom - this.offset) { + top = this.bottom - this.scroll; + } + css(this.$el, { + position: "fixed", + top: top + "px", + width: this.width + }); + this.isActive = active; + toggleClass(this.$el, this.clsBelow, this.scroll > this.bottomOffset); + addClass(this.$el, this.clsFixed); + } + } + }; + function parseProp(prop, ref) { + var $props = ref.$props; + var $el = ref.$el; + var propOffset = ref[prop + "Offset"]; + var value = $props[prop]; + if (!value) { + return; + } + if (isNumeric(value)) { + return propOffset + toFloat(value); + } else if (isString(value) && value.match(/^-?\d+vh$/)) { + return height(window) * toFloat(value) / 100; + } else { + var el = value === true ? $el.parentNode : query(value, $el); + if (el) { + return offset(el).top + el.offsetHeight; + } + } + } + var Switcher = { + mixins: [ Togglable ], + args: "connect", + props: { + connect: String, + toggle: String, + active: Number, + swiping: Boolean + }, + data: { + connect: "~.uk-switcher", + toggle: "> * > :first-child", + active: 0, + swiping: true, + cls: "uk-active", + clsContainer: "uk-switcher", + attrItem: "uk-switcher-item", + queued: true + }, + computed: { + connects: function(ref, $el) { + var connect = ref.connect; + return queryAll(connect, $el); + }, + toggles: function(ref, $el) { + var toggle = ref.toggle; + return $$(toggle, $el); + } + }, + events: [ { + name: "click", + delegate: function() { + return this.toggle + ":not(.uk-disabled)"; + }, + handler: function(e) { + e.preventDefault(); + this.show(toNodes(this.$el.children).filter(function(el) { + return within(e.current, el); + })[0]); + } + }, { + name: "click", + el: function() { + return this.connects; + }, + delegate: function() { + return "[" + this.attrItem + "],[data-" + this.attrItem + "]"; + }, + handler: function(e) { + e.preventDefault(); + this.show(data(e.current, this.attrItem)); + } + }, { + name: "swipeRight swipeLeft", + filter: function() { + return this.swiping; + }, + el: function() { + return this.connects; + }, + handler: function(e) { + if (!isTouch(e)) { + return; + } + e.preventDefault(); + if (!window.getSelection().toString()) { + this.show(e.type === "swipeLeft" ? "next" : "previous"); + } + } + } ], + update: function() { + var this$1 = this; + this.connects.forEach(function(list) { + return this$1.updateAria(list.children); + }); + var ref = this.$el; + var children = ref.children; + this.show(filter(children, "." + this.cls)[0] || children[this.active] || children[0]); + }, + methods: { + index: function() { + return !!this.connects.length && index(filter(this.connects[0].children, "." + this.cls)[0]); + }, + show: function(item) { + var this$1 = this; + var ref = this.$el; + var children = ref.children; + var length = children.length; + var prev = this.index(); + var hasPrev = prev >= 0; + var dir = item === "previous" ? -1 : 1; + var toggle, active, next = getIndex(item, children, prev); + for (var i = 0; i < length; i++, next = (next + dir + length) % length) { + if (!matches(this.toggles[next], ".uk-disabled *, .uk-disabled, [disabled]")) { + toggle = this.toggles[next]; + active = children[next]; + break; + } + } + if (!active || prev >= 0 && hasClass(active, this.cls) || prev === next) { + return; + } + removeClass(children, this.cls); + addClass(active, this.cls); + attr(this.toggles, "aria-expanded", false); + attr(toggle, "aria-expanded", true); + this.connects.forEach(function(list) { + if (!hasPrev) { + this$1.toggleNow(list.children[next]); + } else { + this$1.toggleElement([ list.children[prev], list.children[next] ]); + } + }); + } + } + }; + var Tab = { + mixins: [ Class ], + extends: Switcher, + props: { + media: Boolean + }, + data: { + media: 960, + attrItem: "uk-tab-item" + }, + connected: function() { + var cls = hasClass(this.$el, "uk-tab-left") ? "uk-tab-left" : hasClass(this.$el, "uk-tab-right") ? "uk-tab-right" : false; + if (cls) { + this.$create("toggle", this.$el, { + cls: cls, + mode: "media", + media: this.media + }); + } + } + }; + var Toggle = { + mixins: [ Media, Togglable ], + args: "target", + props: { + href: String, + target: null, + mode: "list" + }, + data: { + href: false, + target: false, + mode: "click", + queued: true + }, + computed: { + target: function(ref, $el) { + var href = ref.href; + var target = ref.target; + target = queryAll(target || href, $el); + return target.length && target || [ $el ]; + } + }, + connected: function() { + trigger(this.target, "updatearia", [ this ]); + }, + events: [ { + name: pointerEnter + " " + pointerLeave, + filter: function() { + return includes(this.mode, "hover"); + }, + handler: function(e) { + if (!isTouch(e)) { + this.toggle("toggle" + (e.type === pointerEnter ? "show" : "hide")); + } + } + }, { + name: "click", + filter: function() { + return includes(this.mode, "click") || hasTouch && includes(this.mode, "hover"); + }, + handler: function(e) { + if (!isTouch(e) && !includes(this.mode, "click")) { + return; + } + var link; + if (closest(e.target, 'a[href="#"], a[href=""], button') || (link = closest(e.target, "a[href]")) && (this.cls || !isVisible(this.target) || link.hash && matches(this.target, link.hash))) { + e.preventDefault(); + } + this.toggle(); + } + } ], + update: { + write: function() { + if (!includes(this.mode, "media") || !this.media) { + return; + } + var toggled = this.isToggled(this.target); + if (this.matchMedia ? !toggled : toggled) { + this.toggle(); + } + }, + events: [ "resize" ] + }, + methods: { + toggle: function(type) { + if (trigger(this.target, type || "toggle", [ this ])) { + this.toggleElement(this.target); + } + } + } + }; + function core(UIkit) { + UIkit.component("accordion", Accordion); + UIkit.component("alert", Alert); + UIkit.component("cover", Cover); + UIkit.component("drop", Drop); + UIkit.component("dropdown", Dropdown); + UIkit.component("formCustom", FormCustom); + UIkit.component("gif", Gif); + UIkit.component("grid", Grid); + UIkit.component("heightMatch", HeightMatch); + UIkit.component("heightViewport", HeightViewport); + UIkit.component("icon", Icon); + UIkit.component("img", Img); + UIkit.component("leader", Leader); + UIkit.component("margin", Margin); + UIkit.component("modal", Modal$1); + UIkit.component("nav", Nav); + UIkit.component("navbar", Navbar); + UIkit.component("offcanvas", Offcanvas); + UIkit.component("overflowAuto", OverflowAuto); + UIkit.component("responsive", Responsive); + UIkit.component("scroll", Scroll); + UIkit.component("scrollspy", Scrollspy); + UIkit.component("scrollspyNav", ScrollspyNav); + UIkit.component("sticky", Sticky); + UIkit.component("svg", SVG); + UIkit.component("switcher", Switcher); + UIkit.component("tab", Tab); + UIkit.component("toggle", Toggle); + UIkit.component("video", Video); + UIkit.component("close", Close); + UIkit.component("marker", IconComponent); + UIkit.component("navbarToggleIcon", IconComponent); + UIkit.component("overlayIcon", IconComponent); + UIkit.component("paginationNext", IconComponent); + UIkit.component("paginationPrevious", IconComponent); + UIkit.component("searchIcon", Search); + UIkit.component("slidenavNext", Slidenav); + UIkit.component("slidenavPrevious", Slidenav); + UIkit.component("spinner", Spinner); + UIkit.component("totop", IconComponent); + UIkit.use(Core); + } + UIkit.version = "3.0.3"; + core(UIkit); + var Countdown = { + mixins: [ Class ], + props: { + date: String, + clsWrapper: String + }, + data: { + date: "", + clsWrapper: ".uk-countdown-%unit%" + }, + computed: { + date: function(ref) { + var date = ref.date; + return Date.parse(date); + }, + days: function(ref, $el) { + var clsWrapper = ref.clsWrapper; + return $(clsWrapper.replace("%unit%", "days"), $el); + }, + hours: function(ref, $el) { + var clsWrapper = ref.clsWrapper; + return $(clsWrapper.replace("%unit%", "hours"), $el); + }, + minutes: function(ref, $el) { + var clsWrapper = ref.clsWrapper; + return $(clsWrapper.replace("%unit%", "minutes"), $el); + }, + seconds: function(ref, $el) { + var clsWrapper = ref.clsWrapper; + return $(clsWrapper.replace("%unit%", "seconds"), $el); + }, + units: function() { + var this$1 = this; + return [ "days", "hours", "minutes", "seconds" ].filter(function(unit) { + return this$1[unit]; + }); + } + }, + connected: function() { + this.start(); + }, + disconnected: function() { + var this$1 = this; + this.stop(); + this.units.forEach(function(unit) { + return empty(this$1[unit]); + }); + }, + events: [ { + name: "visibilitychange", + el: document, + handler: function() { + if (document.hidden) { + this.stop(); + } else { + this.start(); + } + } + } ], + update: { + write: function() { + var this$1 = this; + var timespan = getTimeSpan(this.date); + if (timespan.total <= 0) { + this.stop(); + timespan.days = timespan.hours = timespan.minutes = timespan.seconds = 0; + } + this.units.forEach(function(unit) { + var digits = String(Math.floor(timespan[unit])); + digits = digits.length < 2 ? "0" + digits : digits; + var el = this$1[unit]; + if (el.textContent !== digits) { + digits = digits.split(""); + if (digits.length !== el.children.length) { + html(el, digits.map(function() { + return ""; + }).join("")); + } + digits.forEach(function(digit, i) { + return el.children[i].textContent = digit; + }); + } + }); + } + }, + methods: { + start: function() { + var this$1 = this; + this.stop(); + if (this.date && this.units.length) { + this.$emit(); + this.timer = setInterval(function() { + return this$1.$emit(); + }, 1e3); + } + }, + stop: function() { + if (this.timer) { + clearInterval(this.timer); + this.timer = null; + } + } + } + }; + function getTimeSpan(date) { + var total = date - Date.now(); + return { + total: total, + seconds: total / 1e3 % 60, + minutes: total / 1e3 / 60 % 60, + hours: total / 1e3 / 60 / 60 % 24, + days: total / 1e3 / 60 / 60 / 24 + }; + } + var targetClass = "uk-animation-target"; + var Animate = { + props: { + animation: Number + }, + data: { + animation: 150 + }, + computed: { + target: function() { + return this.$el; + } + }, + methods: { + animate: function(action) { + var this$1 = this; + addStyle(); + var children = toNodes(this.target.children); + var propsFrom = children.map(function(el) { + return getProps(el, true); + }); + var oldHeight = height(this.target); + var oldScrollY = window.pageYOffset; + action(); + Transition.cancel(this.target); + children.forEach(Transition.cancel); + reset(this.target); + this.$update(this.target); + fastdom.flush(); + var newHeight = height(this.target); + children = children.concat(toNodes(this.target.children).filter(function(el) { + return !includes(children, el); + })); + var propsTo = children.map(function(el, i) { + return el.parentNode && i in propsFrom ? propsFrom[i] ? isVisible(el) ? getPositionWithMargin(el) : { + opacity: 0 + } : { + opacity: isVisible(el) ? 1 : 0 + } : false; + }); + propsFrom = propsTo.map(function(props, i) { + var from = children[i].parentNode === this$1.target ? propsFrom[i] || getProps(children[i]) : false; + if (from) { + if (!props) { + delete from.opacity; + } else if (!("opacity" in props)) { + var opacity = from.opacity; + if (opacity % 1) { + props.opacity = 1; + } else { + delete from.opacity; + } + } + } + return from; + }); + addClass(this.target, targetClass); + children.forEach(function(el, i) { + return propsFrom[i] && css(el, propsFrom[i]); + }); + css(this.target, "height", oldHeight); + scrollTop(window, oldScrollY); + return Promise.all(children.map(function(el, i) { + return propsFrom[i] && propsTo[i] ? Transition.start(el, propsTo[i], this$1.animation, "ease") : Promise.resolve(); + }).concat(Transition.start(this.target, { + height: newHeight + }, this.animation, "ease"))).then(function() { + children.forEach(function(el, i) { + return css(el, { + display: propsTo[i].opacity === 0 ? "none" : "", + zIndex: "" + }); + }); + reset(this$1.target); + this$1.$update(this$1.target); + fastdom.flush(); + }, noop); + } + } + }; + function getProps(el, opacity) { + var zIndex = css(el, "zIndex"); + return isVisible(el) ? assign({ + display: "", + opacity: opacity ? css(el, "opacity") : "0", + pointerEvents: "none", + position: "absolute", + zIndex: zIndex === "auto" ? index(el) : zIndex + }, getPositionWithMargin(el)) : false; + } + function reset(el) { + css(el.children, { + height: "", + left: "", + opacity: "", + pointerEvents: "", + position: "", + top: "", + width: "" + }); + removeClass(el, targetClass); + css(el, "height", ""); + } + function getPositionWithMargin(el) { + var ref = el.getBoundingClientRect(); + var height$$1 = ref.height; + var width$$1 = ref.width; + var ref$1 = position(el); + var top = ref$1.top; + var left = ref$1.left; + top += toFloat(css(el, "marginTop")); + return { + top: top, + left: left, + height: height$$1, + width: width$$1 + }; + } + var style$1; + function addStyle() { + if (!style$1) { + style$1 = append(document.head, " + + +
+ + + diff --git a/css/lndhub.css b/oldsite-backup/css/lndhub.css similarity index 100% rename from css/lndhub.css rename to oldsite-backup/css/lndhub.css diff --git a/css/lndhub.min.css b/oldsite-backup/css/lndhub.min.css similarity index 100% rename from css/lndhub.min.css rename to oldsite-backup/css/lndhub.min.css diff --git a/css/new-age.css b/oldsite-backup/css/new-age.css similarity index 100% rename from css/new-age.css rename to oldsite-backup/css/new-age.css diff --git a/css/new-age.min.css b/oldsite-backup/css/new-age.min.css similarity index 100% rename from css/new-age.min.css rename to oldsite-backup/css/new-age.min.css diff --git a/desktop-bitcoin-wallet/downloads/BlueWallet 5.5.61.dmg b/oldsite-backup/desktop-bitcoin-wallet/downloads/BlueWallet 5.5.61.dmg similarity index 100% rename from desktop-bitcoin-wallet/downloads/BlueWallet 5.5.61.dmg rename to oldsite-backup/desktop-bitcoin-wallet/downloads/BlueWallet 5.5.61.dmg diff --git a/desktop-bitcoin-wallet/downloads/BlueWallet 5.5.80.dmg b/oldsite-backup/desktop-bitcoin-wallet/downloads/BlueWallet 5.5.80.dmg similarity index 100% rename from desktop-bitcoin-wallet/downloads/BlueWallet 5.5.80.dmg rename to oldsite-backup/desktop-bitcoin-wallet/downloads/BlueWallet 5.5.80.dmg diff --git a/desktop-bitcoin-wallet/downloads/BlueWallet 5.5.91.dmg b/oldsite-backup/desktop-bitcoin-wallet/downloads/BlueWallet 5.5.91.dmg similarity index 100% rename from desktop-bitcoin-wallet/downloads/BlueWallet 5.5.91.dmg rename to oldsite-backup/desktop-bitcoin-wallet/downloads/BlueWallet 5.5.91.dmg diff --git a/desktop-bitcoin-wallet/downloads/BlueWallet 5.6.1.dmg b/oldsite-backup/desktop-bitcoin-wallet/downloads/BlueWallet 5.6.1.dmg similarity index 100% rename from desktop-bitcoin-wallet/downloads/BlueWallet 5.6.1.dmg rename to oldsite-backup/desktop-bitcoin-wallet/downloads/BlueWallet 5.6.1.dmg diff --git a/desktop-bitcoin-wallet/downloads/BlueWallet 5.6.2.dmg b/oldsite-backup/desktop-bitcoin-wallet/downloads/BlueWallet 5.6.2.dmg similarity index 100% rename from desktop-bitcoin-wallet/downloads/BlueWallet 5.6.2.dmg rename to oldsite-backup/desktop-bitcoin-wallet/downloads/BlueWallet 5.6.2.dmg diff --git a/desktop-bitcoin-wallet/downloads/BlueWallet 5.6.60.dmg b/oldsite-backup/desktop-bitcoin-wallet/downloads/BlueWallet 5.6.60.dmg similarity index 100% rename from desktop-bitcoin-wallet/downloads/BlueWallet 5.6.60.dmg rename to oldsite-backup/desktop-bitcoin-wallet/downloads/BlueWallet 5.6.60.dmg diff --git a/desktop-bitcoin-wallet/index.html b/oldsite-backup/desktop-bitcoin-wallet/index.html similarity index 100% rename from desktop-bitcoin-wallet/index.html rename to oldsite-backup/desktop-bitcoin-wallet/index.html diff --git a/device-mockups/device-mockups.css b/oldsite-backup/device-mockups/device-mockups.css similarity index 100% rename from device-mockups/device-mockups.css rename to oldsite-backup/device-mockups/device-mockups.css diff --git a/device-mockups/device-mockups.min.css b/oldsite-backup/device-mockups/device-mockups.min.css similarity index 100% rename from device-mockups/device-mockups.min.css rename to oldsite-backup/device-mockups/device-mockups.min.css diff --git a/device-mockups/device-mockups2.css b/oldsite-backup/device-mockups/device-mockups2.css similarity index 100% rename from device-mockups/device-mockups2.css rename to oldsite-backup/device-mockups/device-mockups2.css diff --git a/device-mockups/device-mockups2.min.css b/oldsite-backup/device-mockups/device-mockups2.min.css similarity index 100% rename from device-mockups/device-mockups2.min.css rename to oldsite-backup/device-mockups/device-mockups2.min.css diff --git a/device-mockups/iphone_6_plus/iphone_6_plus_white_port.png b/oldsite-backup/device-mockups/iphone_6_plus/iphone_6_plus_white_port.png similarity index 100% rename from device-mockups/iphone_6_plus/iphone_6_plus_white_port.png rename to oldsite-backup/device-mockups/iphone_6_plus/iphone_6_plus_white_port.png diff --git a/donate.html b/oldsite-backup/donate.html similarity index 100% rename from donate.html rename to oldsite-backup/donate.html diff --git a/features/index.html b/oldsite-backup/features/index.html similarity index 100% rename from features/index.html rename to oldsite-backup/features/index.html diff --git a/gulpfile.js b/oldsite-backup/gulpfile.js similarity index 100% rename from gulpfile.js rename to oldsite-backup/gulpfile.js diff --git a/img/.DS_Store b/oldsite-backup/img/.DS_Store similarity index 100% rename from img/.DS_Store rename to oldsite-backup/img/.DS_Store diff --git a/oldsite-backup/img/addwallet.png b/oldsite-backup/img/addwallet.png new file mode 100644 index 0000000..787d1aa Binary files /dev/null and b/oldsite-backup/img/addwallet.png differ diff --git a/img/app-store-badge-blue.svg b/oldsite-backup/img/app-store-badge-blue.svg similarity index 100% rename from img/app-store-badge-blue.svg rename to oldsite-backup/img/app-store-badge-blue.svg diff --git a/img/app-store-badge-dark.svg b/oldsite-backup/img/app-store-badge-dark.svg similarity index 100% rename from img/app-store-badge-dark.svg rename to oldsite-backup/img/app-store-badge-dark.svg diff --git a/img/app-store-badge-white.svg b/oldsite-backup/img/app-store-badge-white.svg similarity index 100% rename from img/app-store-badge-white.svg rename to oldsite-backup/img/app-store-badge-white.svg diff --git a/img/app-store-badge.svg b/oldsite-backup/img/app-store-badge.svg similarity index 100% rename from img/app-store-badge.svg rename to oldsite-backup/img/app-store-badge.svg diff --git a/img/backpayjoin.png b/oldsite-backup/img/backpayjoin.png similarity index 100% rename from img/backpayjoin.png rename to oldsite-backup/img/backpayjoin.png diff --git a/img/backpurple.png b/oldsite-backup/img/backpurple.png similarity index 100% rename from img/backpurple.png rename to oldsite-backup/img/backpurple.png diff --git a/oldsite-backup/img/bech32.png b/oldsite-backup/img/bech32.png new file mode 100644 index 0000000..f21510a Binary files /dev/null and b/oldsite-backup/img/bech32.png differ diff --git a/img/bg-cta.jpg b/oldsite-backup/img/bg-cta.jpg similarity index 100% rename from img/bg-cta.jpg rename to oldsite-backup/img/bg-cta.jpg diff --git a/img/bg-pattern.png b/oldsite-backup/img/bg-pattern.png similarity index 100% rename from img/bg-pattern.png rename to oldsite-backup/img/bg-pattern.png diff --git a/oldsite-backup/img/bighead3.png b/oldsite-backup/img/bighead3.png new file mode 100644 index 0000000..17bda5b Binary files /dev/null and b/oldsite-backup/img/bighead3.png differ diff --git a/img/bitcoin-donations.png b/oldsite-backup/img/bitcoin-donations.png similarity index 100% rename from img/bitcoin-donations.png rename to oldsite-backup/img/bitcoin-donations.png diff --git a/oldsite-backup/img/bitcoinwallets.png b/oldsite-backup/img/bitcoinwallets.png new file mode 100644 index 0000000..ba5bac4 Binary files /dev/null and b/oldsite-backup/img/bitcoinwallets.png differ diff --git a/img/bluewallet-big.png b/oldsite-backup/img/bluewallet-big.png similarity index 100% rename from img/bluewallet-big.png rename to oldsite-backup/img/bluewallet-big.png diff --git a/img/bluewallet-big.svg b/oldsite-backup/img/bluewallet-big.svg similarity index 100% rename from img/bluewallet-big.svg rename to oldsite-backup/img/bluewallet-big.svg diff --git a/oldsite-backup/img/bread.png b/oldsite-backup/img/bread.png new file mode 100644 index 0000000..d50a358 Binary files /dev/null and b/oldsite-backup/img/bread.png differ diff --git a/img/comms-icon.svg b/oldsite-backup/img/comms-icon.svg similarity index 100% rename from img/comms-icon.svg rename to oldsite-backup/img/comms-icon.svg diff --git a/img/create-wallet.png b/oldsite-backup/img/create-wallet.png similarity index 100% rename from img/create-wallet.png rename to oldsite-backup/img/create-wallet.png diff --git a/img/demo-screen-1.png b/oldsite-backup/img/demo-screen-1.png similarity index 100% rename from img/demo-screen-1.png rename to oldsite-backup/img/demo-screen-1.png diff --git a/img/demo-screen-2.png b/oldsite-backup/img/demo-screen-2.png similarity index 100% rename from img/demo-screen-2.png rename to oldsite-backup/img/demo-screen-2.png diff --git a/oldsite-backup/img/desktop-bitcoin-wallet.png b/oldsite-backup/img/desktop-bitcoin-wallet.png new file mode 100644 index 0000000..041c8ec Binary files /dev/null and b/oldsite-backup/img/desktop-bitcoin-wallet.png differ diff --git a/img/docs-icon.svg b/oldsite-backup/img/docs-icon.svg similarity index 100% rename from img/docs-icon.svg rename to oldsite-backup/img/docs-icon.svg diff --git a/img/experience-app.png b/oldsite-backup/img/experience-app.png similarity index 100% rename from img/experience-app.png rename to oldsite-backup/img/experience-app.png diff --git a/img/favicon/android-chrome-192x192.png b/oldsite-backup/img/favicon/android-chrome-192x192.png similarity index 100% rename from img/favicon/android-chrome-192x192.png rename to oldsite-backup/img/favicon/android-chrome-192x192.png diff --git a/img/favicon/android-chrome-512x512.png b/oldsite-backup/img/favicon/android-chrome-512x512.png similarity index 100% rename from img/favicon/android-chrome-512x512.png rename to oldsite-backup/img/favicon/android-chrome-512x512.png diff --git a/img/favicon/apple-touch-icon.png b/oldsite-backup/img/favicon/apple-touch-icon.png similarity index 100% rename from img/favicon/apple-touch-icon.png rename to oldsite-backup/img/favicon/apple-touch-icon.png diff --git a/img/favicon/browserconfig.xml b/oldsite-backup/img/favicon/browserconfig.xml similarity index 100% rename from img/favicon/browserconfig.xml rename to oldsite-backup/img/favicon/browserconfig.xml diff --git a/img/favicon/favicon-16x16.png b/oldsite-backup/img/favicon/favicon-16x16.png similarity index 100% rename from img/favicon/favicon-16x16.png rename to oldsite-backup/img/favicon/favicon-16x16.png diff --git a/oldsite-backup/img/favicon/favicon-32x32.png b/oldsite-backup/img/favicon/favicon-32x32.png new file mode 100644 index 0000000..f8650fd Binary files /dev/null and b/oldsite-backup/img/favicon/favicon-32x32.png differ diff --git a/img/favicon/favicon.ico b/oldsite-backup/img/favicon/favicon.ico similarity index 100% rename from img/favicon/favicon.ico rename to oldsite-backup/img/favicon/favicon.ico diff --git a/img/favicon/mstile-150x150.png b/oldsite-backup/img/favicon/mstile-150x150.png similarity index 100% rename from img/favicon/mstile-150x150.png rename to oldsite-backup/img/favicon/mstile-150x150.png diff --git a/img/favicon/safari-pinned-tab.svg b/oldsite-backup/img/favicon/safari-pinned-tab.svg similarity index 100% rename from img/favicon/safari-pinned-tab.svg rename to oldsite-backup/img/favicon/safari-pinned-tab.svg diff --git a/img/favicon/site.webmanifest b/oldsite-backup/img/favicon/site.webmanifest similarity index 100% rename from img/favicon/site.webmanifest rename to oldsite-backup/img/favicon/site.webmanifest diff --git a/img/google-play-badge.svg b/oldsite-backup/img/google-play-badge.svg similarity index 100% rename from img/google-play-badge.svg rename to oldsite-backup/img/google-play-badge.svg diff --git a/img/hhlogo.svg b/oldsite-backup/img/hhlogo.svg similarity index 100% rename from img/hhlogo.svg rename to oldsite-backup/img/hhlogo.svg diff --git a/oldsite-backup/img/igor.png b/oldsite-backup/img/igor.png new file mode 100644 index 0000000..cde58dd Binary files /dev/null and b/oldsite-backup/img/igor.png differ diff --git a/oldsite-backup/img/import-wallet.png b/oldsite-backup/img/import-wallet.png new file mode 100644 index 0000000..c79b66f Binary files /dev/null and b/oldsite-backup/img/import-wallet.png differ diff --git a/oldsite-backup/img/importok.png b/oldsite-backup/img/importok.png new file mode 100644 index 0000000..cde94c3 Binary files /dev/null and b/oldsite-backup/img/importok.png differ diff --git a/oldsite-backup/img/importwallet.png b/oldsite-backup/img/importwallet.png new file mode 100644 index 0000000..63e40f8 Binary files /dev/null and b/oldsite-backup/img/importwallet.png differ diff --git a/img/lapps.png b/oldsite-backup/img/lapps.png similarity index 100% rename from img/lapps.png rename to oldsite-backup/img/lapps.png diff --git a/img/lightning-wallet.png b/oldsite-backup/img/lightning-wallet.png similarity index 100% rename from img/lightning-wallet.png rename to oldsite-backup/img/lightning-wallet.png diff --git a/oldsite-backup/img/lightning-wallet2.png b/oldsite-backup/img/lightning-wallet2.png new file mode 100644 index 0000000..e203c4d Binary files /dev/null and b/oldsite-backup/img/lightning-wallet2.png differ diff --git a/oldsite-backup/img/lightning.png b/oldsite-backup/img/lightning.png new file mode 100644 index 0000000..8bfc990 Binary files /dev/null and b/oldsite-backup/img/lightning.png differ diff --git a/img/lightningbluewallet.png b/oldsite-backup/img/lightningbluewallet.png similarity index 100% rename from img/lightningbluewallet.png rename to oldsite-backup/img/lightningbluewallet.png diff --git a/oldsite-backup/img/lndhub-graph.png b/oldsite-backup/img/lndhub-graph.png new file mode 100644 index 0000000..5069b48 Binary files /dev/null and b/oldsite-backup/img/lndhub-graph.png differ diff --git a/img/lndhub-logo.svg b/oldsite-backup/img/lndhub-logo.svg similarity index 100% rename from img/lndhub-logo.svg rename to oldsite-backup/img/lndhub-logo.svg diff --git a/img/lndhub.svg b/oldsite-backup/img/lndhub.svg similarity index 100% rename from img/lndhub.svg rename to oldsite-backup/img/lndhub.svg diff --git a/oldsite-backup/img/lnm.png b/oldsite-backup/img/lnm.png new file mode 100644 index 0000000..2b40dc3 Binary files /dev/null and b/oldsite-backup/img/lnm.png differ diff --git a/oldsite-backup/img/local-step1.svg b/oldsite-backup/img/local-step1.svg new file mode 100644 index 0000000..d965a73 --- /dev/null +++ b/oldsite-backup/img/local-step1.svg @@ -0,0 +1,22 @@ + + + local-step1 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/oldsite-backup/img/local-step2.svg b/oldsite-backup/img/local-step2.svg new file mode 100644 index 0000000..4b8f114 --- /dev/null +++ b/oldsite-backup/img/local-step2.svg @@ -0,0 +1,32 @@ + + + local-step2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/oldsite-backup/img/local-step3.svg b/oldsite-backup/img/local-step3.svg new file mode 100644 index 0000000..e5ddc80 --- /dev/null +++ b/oldsite-backup/img/local-step3.svg @@ -0,0 +1,25 @@ + + + local-step3 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/oldsite-backup/img/local-step4.svg b/oldsite-backup/img/local-step4.svg new file mode 100644 index 0000000..466fb2b --- /dev/null +++ b/oldsite-backup/img/local-step4.svg @@ -0,0 +1,37 @@ + + + local-step4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/img/localcover.png b/oldsite-backup/img/localcover.png similarity index 100% rename from img/localcover.png rename to oldsite-backup/img/localcover.png diff --git a/oldsite-backup/img/localtrader.png b/oldsite-backup/img/localtrader.png new file mode 100644 index 0000000..7708bc8 Binary files /dev/null and b/oldsite-backup/img/localtrader.png differ diff --git a/img/logo-bluewallet-dark.svg b/oldsite-backup/img/logo-bluewallet-dark.svg similarity index 100% rename from img/logo-bluewallet-dark.svg rename to oldsite-backup/img/logo-bluewallet-dark.svg diff --git a/img/logo-bluewallet.svg b/oldsite-backup/img/logo-bluewallet.svg similarity index 100% rename from img/logo-bluewallet.svg rename to oldsite-backup/img/logo-bluewallet.svg diff --git a/oldsite-backup/img/mac-store-badge.svg b/oldsite-backup/img/mac-store-badge.svg new file mode 100644 index 0000000..b347587 --- /dev/null +++ b/oldsite-backup/img/mac-store-badge.svg @@ -0,0 +1,23 @@ + + + app-store-badge-blue + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/oldsite-backup/img/marcos.png b/oldsite-backup/img/marcos.png new file mode 100644 index 0000000..69fc799 Binary files /dev/null and b/oldsite-backup/img/marcos.png differ diff --git a/img/marketplace.png b/oldsite-backup/img/marketplace.png similarity index 100% rename from img/marketplace.png rename to oldsite-backup/img/marketplace.png diff --git a/oldsite-backup/img/nuno.png b/oldsite-backup/img/nuno.png new file mode 100644 index 0000000..8a3b0d2 Binary files /dev/null and b/oldsite-backup/img/nuno.png differ diff --git a/oldsite-backup/img/onchain.png b/oldsite-backup/img/onchain.png new file mode 100644 index 0000000..0e542b5 Binary files /dev/null and b/oldsite-backup/img/onchain.png differ diff --git a/img/pay.png b/oldsite-backup/img/pay.png similarity index 100% rename from img/pay.png rename to oldsite-backup/img/pay.png diff --git a/img/play-store-badge-blue.svg b/oldsite-backup/img/play-store-badge-blue.svg similarity index 100% rename from img/play-store-badge-blue.svg rename to oldsite-backup/img/play-store-badge-blue.svg diff --git a/img/play-store-badge-white.svg b/oldsite-backup/img/play-store-badge-white.svg similarity index 100% rename from img/play-store-badge-white.svg rename to oldsite-backup/img/play-store-badge-white.svg diff --git a/img/play-store-badge.svg b/oldsite-backup/img/play-store-badge.svg similarity index 100% rename from img/play-store-badge.svg rename to oldsite-backup/img/play-store-badge.svg diff --git a/img/reach.png b/oldsite-backup/img/reach.png similarity index 100% rename from img/reach.png rename to oldsite-backup/img/reach.png diff --git a/img/security-app.png b/oldsite-backup/img/security-app.png similarity index 100% rename from img/security-app.png rename to oldsite-backup/img/security-app.png diff --git a/oldsite-backup/img/segwit.png b/oldsite-backup/img/segwit.png new file mode 100644 index 0000000..619db6f Binary files /dev/null and b/oldsite-backup/img/segwit.png differ diff --git a/img/social-desktop.png b/oldsite-backup/img/social-desktop.png similarity index 100% rename from img/social-desktop.png rename to oldsite-backup/img/social-desktop.png diff --git a/img/strike.png b/oldsite-backup/img/strike.png similarity index 100% rename from img/strike.png rename to oldsite-backup/img/strike.png diff --git a/img/support-icon.svg b/oldsite-backup/img/support-icon.svg similarity index 100% rename from img/support-icon.svg rename to oldsite-backup/img/support-icon.svg diff --git a/img/vlad.png b/oldsite-backup/img/vlad.png similarity index 100% rename from img/vlad.png rename to oldsite-backup/img/vlad.png diff --git a/oldsite-backup/img/watch-demo.png b/oldsite-backup/img/watch-demo.png new file mode 100644 index 0000000..0d2f587 Binary files /dev/null and b/oldsite-backup/img/watch-demo.png differ diff --git a/oldsite-backup/img/watch-only-hero.png b/oldsite-backup/img/watch-only-hero.png new file mode 100644 index 0000000..09d1bb3 Binary files /dev/null and b/oldsite-backup/img/watch-only-hero.png differ diff --git a/oldsite-backup/img/watch-only.png b/oldsite-backup/img/watch-only.png new file mode 100644 index 0000000..db6729d Binary files /dev/null and b/oldsite-backup/img/watch-only.png differ diff --git a/img/watch-preview.png b/oldsite-backup/img/watch-preview.png similarity index 100% rename from img/watch-preview.png rename to oldsite-backup/img/watch-preview.png diff --git a/img/watchfeatures.png b/oldsite-backup/img/watchfeatures.png similarity index 100% rename from img/watchfeatures.png rename to oldsite-backup/img/watchfeatures.png diff --git a/index.html b/oldsite-backup/index.html similarity index 100% rename from index.html rename to oldsite-backup/index.html diff --git a/oldsite-backup/ixhiazz1ugip8k6gs81f89ph4aopbp.html b/oldsite-backup/ixhiazz1ugip8k6gs81f89ph4aopbp.html new file mode 100644 index 0000000..4a91351 --- /dev/null +++ b/oldsite-backup/ixhiazz1ugip8k6gs81f89ph4aopbp.html @@ -0,0 +1 @@ +ixhiazz1ugip8k6gs81f89ph4aopbp \ No newline at end of file diff --git a/js/new-age.js b/oldsite-backup/js/new-age.js similarity index 100% rename from js/new-age.js rename to oldsite-backup/js/new-age.js diff --git a/js/new-age.min.js b/oldsite-backup/js/new-age.min.js similarity index 100% rename from js/new-age.min.js rename to oldsite-backup/js/new-age.min.js diff --git a/lapps/index.html b/oldsite-backup/lapps/index.html similarity index 100% rename from lapps/index.html rename to oldsite-backup/lapps/index.html diff --git a/lightning/index.html b/oldsite-backup/lightning/index.html similarity index 100% rename from lightning/index.html rename to oldsite-backup/lightning/index.html diff --git a/lndhub/index.html b/oldsite-backup/lndhub/index.html similarity index 100% rename from lndhub/index.html rename to oldsite-backup/lndhub/index.html diff --git a/local-trader/index.html b/oldsite-backup/local-trader/index.html similarity index 100% rename from local-trader/index.html rename to oldsite-backup/local-trader/index.html diff --git a/oldsite-backup/marketplace-btc/img/binance.png b/oldsite-backup/marketplace-btc/img/binance.png new file mode 100644 index 0000000..4bef785 Binary files /dev/null and b/oldsite-backup/marketplace-btc/img/binance.png differ diff --git a/oldsite-backup/marketplace-btc/img/bitcoinatm.png b/oldsite-backup/marketplace-btc/img/bitcoinatm.png new file mode 100644 index 0000000..66afb6a Binary files /dev/null and b/oldsite-backup/marketplace-btc/img/bitcoinatm.png differ diff --git a/oldsite-backup/marketplace-btc/img/bitmedia.png b/oldsite-backup/marketplace-btc/img/bitmedia.png new file mode 100644 index 0000000..45139e0 Binary files /dev/null and b/oldsite-backup/marketplace-btc/img/bitmedia.png differ diff --git a/oldsite-backup/marketplace-btc/img/bitrefill.png b/oldsite-backup/marketplace-btc/img/bitrefill.png new file mode 100644 index 0000000..6779bc0 Binary files /dev/null and b/oldsite-backup/marketplace-btc/img/bitrefill.png differ diff --git a/oldsite-backup/marketplace-btc/img/buybitcoin.png b/oldsite-backup/marketplace-btc/img/buybitcoin.png new file mode 100644 index 0000000..6cf2def Binary files /dev/null and b/oldsite-backup/marketplace-btc/img/buybitcoin.png differ diff --git a/oldsite-backup/marketplace-btc/img/changenow.png b/oldsite-backup/marketplace-btc/img/changenow.png new file mode 100644 index 0000000..686449e Binary files /dev/null and b/oldsite-backup/marketplace-btc/img/changenow.png differ diff --git a/oldsite-backup/marketplace-btc/img/highlight.png b/oldsite-backup/marketplace-btc/img/highlight.png new file mode 100644 index 0000000..fddeb9b Binary files /dev/null and b/oldsite-backup/marketplace-btc/img/highlight.png differ diff --git a/oldsite-backup/marketplace-btc/img/hodlhodl.png b/oldsite-backup/marketplace-btc/img/hodlhodl.png new file mode 100644 index 0000000..dc95c2e Binary files /dev/null and b/oldsite-backup/marketplace-btc/img/hodlhodl.png differ diff --git a/marketplace-btc/img/silent.link.png b/oldsite-backup/marketplace-btc/img/silent.link.png similarity index 100% rename from marketplace-btc/img/silent.link.png rename to oldsite-backup/marketplace-btc/img/silent.link.png diff --git a/oldsite-backup/marketplace-btc/img/travala.png b/oldsite-backup/marketplace-btc/img/travala.png new file mode 100644 index 0000000..14eb388 Binary files /dev/null and b/oldsite-backup/marketplace-btc/img/travala.png differ diff --git a/oldsite-backup/marketplace-btc/img/travelbit.png b/oldsite-backup/marketplace-btc/img/travelbit.png new file mode 100644 index 0000000..a1a646e Binary files /dev/null and b/oldsite-backup/marketplace-btc/img/travelbit.png differ diff --git a/oldsite-backup/marketplace-btc/img/trezor.png b/oldsite-backup/marketplace-btc/img/trezor.png new file mode 100644 index 0000000..27baf1a Binary files /dev/null and b/oldsite-backup/marketplace-btc/img/trezor.png differ diff --git a/oldsite-backup/marketplace-btc/img/wikileaks.png b/oldsite-backup/marketplace-btc/img/wikileaks.png new file mode 100644 index 0000000..b81d5e6 Binary files /dev/null and b/oldsite-backup/marketplace-btc/img/wikileaks.png differ diff --git a/oldsite-backup/marketplace-btc/img/wikipedia.png b/oldsite-backup/marketplace-btc/img/wikipedia.png new file mode 100644 index 0000000..329d239 Binary files /dev/null and b/oldsite-backup/marketplace-btc/img/wikipedia.png differ diff --git a/oldsite-backup/marketplace-btc/img/xsats.png b/oldsite-backup/marketplace-btc/img/xsats.png new file mode 100644 index 0000000..b9c7ce0 Binary files /dev/null and b/oldsite-backup/marketplace-btc/img/xsats.png differ diff --git a/oldsite-backup/marketplace-btc/index.html b/oldsite-backup/marketplace-btc/index.html new file mode 100644 index 0000000..c78ff04 --- /dev/null +++ b/oldsite-backup/marketplace-btc/index.html @@ -0,0 +1,295 @@ + + + + + + + + + + + + + + + + + + + + +
+ +
+

Bitcoin

+
+ + + + + + + + + + + + +
+

Commerce

+
+ + + + + +
+

Services

+
+ + + + + + + + + + + + + + + + +
+

Donate to a good cause

+
+ + + + + + + + + + + + + +
+

Security

+
+ + + + + + +
+ + + + + diff --git a/oldsite-backup/marketplace-btc/marketplace.css b/oldsite-backup/marketplace-btc/marketplace.css new file mode 100644 index 0000000..a36bdd2 --- /dev/null +++ b/oldsite-backup/marketplace-btc/marketplace.css @@ -0,0 +1,98 @@ +body { + margin: 0; + font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #0C2550; + text-align: left; + background: #fff; +} +a { + text-decoration: none +} +.section { + margin: 24px 16px 0px 16px; +} +.section.first { + margin-top: 0px; +} +.section h3 { + margin: 0px; + font-size: 16px; +} +.grid-container { + display: grid; + grid-template-columns: 48px 1fr; + grid-template-rows: 1fr; + grid-template-areas: "appicon apptext"; + padding: 16px 0; + margin: 0 16px; + border-bottom: 1px solid #EEF0F4; +} +.grid-container.tippin{ + border-bottom: 0px solid transparent; +} +.appicon { + grid-area: appicon; +} +.apptext { + grid-area: apptext; + padding: 0 0 0 8px; + position: relative; +} +.apptext h2 { + color: #0C2550; + font-size: 20px; + font-weight: 500; + margin: 0; +} +.apptext p { + color: #9AA0AA; + font-size: 12px; + margin: 0px; +} +.appicon img { + width: 48px; +} +.highlight { + background: url(img/highlight.png) no-repeat center; + height: 228px; + background-size: cover; + margin: 16px 16px 24px 16px; + border-radius: 12px; + position: relative; +} +.highlight .content { + background: rgba(0,0,0,.5); + border-radius: 6px; + margin: 0 16px 16px; + position: absolute; + bottom: 0px; + left: 0px; + right: 0px; + display: block; + padding: 12px 16px; +} +.highlight .content h2 { + color: #fff; + font-size: 18px; + margin: 0px; + padding: 0px; +} +.highlight .content p{ + color: #fff; + font-size: 14px; + margin: 0px; + padding: 0px; +} +.new { + width: 12px; + height: 12px; + background: #68BBE1; + border-radius: 50%; + display: block; + position: absolute; + right: 0; + top: 10px; +} \ No newline at end of file diff --git a/oldsite-backup/marketplace/img/.DS_Store b/oldsite-backup/marketplace/img/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/oldsite-backup/marketplace/img/.DS_Store differ diff --git a/oldsite-backup/marketplace/img/21shirt.png b/oldsite-backup/marketplace/img/21shirt.png new file mode 100644 index 0000000..58fc599 Binary files /dev/null and b/oldsite-backup/marketplace/img/21shirt.png differ diff --git a/oldsite-backup/marketplace/img/agar.png b/oldsite-backup/marketplace/img/agar.png new file mode 100644 index 0000000..29ae98b Binary files /dev/null and b/oldsite-backup/marketplace/img/agar.png differ diff --git a/oldsite-backup/marketplace/img/beltine.png b/oldsite-backup/marketplace/img/beltine.png new file mode 100644 index 0000000..97e9126 Binary files /dev/null and b/oldsite-backup/marketplace/img/beltine.png differ diff --git a/oldsite-backup/marketplace/img/bitcoin2019.png b/oldsite-backup/marketplace/img/bitcoin2019.png new file mode 100644 index 0000000..0ddf003 Binary files /dev/null and b/oldsite-backup/marketplace/img/bitcoin2019.png differ diff --git a/oldsite-backup/marketplace/img/bitcoinshirt.png b/oldsite-backup/marketplace/img/bitcoinshirt.png new file mode 100644 index 0000000..68df006 Binary files /dev/null and b/oldsite-backup/marketplace/img/bitcoinshirt.png differ diff --git a/oldsite-backup/marketplace/img/bitlaunch.png b/oldsite-backup/marketplace/img/bitlaunch.png new file mode 100644 index 0000000..748dd02 Binary files /dev/null and b/oldsite-backup/marketplace/img/bitlaunch.png differ diff --git a/oldsite-backup/marketplace/img/bitrefill.png b/oldsite-backup/marketplace/img/bitrefill.png new file mode 100644 index 0000000..6779bc0 Binary files /dev/null and b/oldsite-backup/marketplace/img/bitrefill.png differ diff --git a/oldsite-backup/marketplace/img/blockstream.png b/oldsite-backup/marketplace/img/blockstream.png new file mode 100644 index 0000000..9d65ba4 Binary files /dev/null and b/oldsite-backup/marketplace/img/blockstream.png differ diff --git a/oldsite-backup/marketplace/img/boltathon.png b/oldsite-backup/marketplace/img/boltathon.png new file mode 100644 index 0000000..4159aa2 Binary files /dev/null and b/oldsite-backup/marketplace/img/boltathon.png differ diff --git a/oldsite-backup/marketplace/img/brekkie.png b/oldsite-backup/marketplace/img/brekkie.png new file mode 100644 index 0000000..62afcc5 Binary files /dev/null and b/oldsite-backup/marketplace/img/brekkie.png differ diff --git a/oldsite-backup/marketplace/img/chess.png b/oldsite-backup/marketplace/img/chess.png new file mode 100644 index 0000000..c28bf53 Binary files /dev/null and b/oldsite-backup/marketplace/img/chess.png differ diff --git a/oldsite-backup/marketplace/img/chromatic.png b/oldsite-backup/marketplace/img/chromatic.png new file mode 100644 index 0000000..5f68754 Binary files /dev/null and b/oldsite-backup/marketplace/img/chromatic.png differ diff --git a/oldsite-backup/marketplace/img/cmasc.png b/oldsite-backup/marketplace/img/cmasc.png new file mode 100644 index 0000000..e3a0a97 Binary files /dev/null and b/oldsite-backup/marketplace/img/cmasc.png differ diff --git a/oldsite-backup/marketplace/img/excellion.png b/oldsite-backup/marketplace/img/excellion.png new file mode 100644 index 0000000..dc27319 Binary files /dev/null and b/oldsite-backup/marketplace/img/excellion.png differ diff --git a/oldsite-backup/marketplace/img/fixedfloat.png b/oldsite-backup/marketplace/img/fixedfloat.png new file mode 100644 index 0000000..0d821cd Binary files /dev/null and b/oldsite-backup/marketplace/img/fixedfloat.png differ diff --git a/oldsite-backup/marketplace/img/hangarsix.png b/oldsite-backup/marketplace/img/hangarsix.png new file mode 100644 index 0000000..be4f14f Binary files /dev/null and b/oldsite-backup/marketplace/img/hangarsix.png differ diff --git a/oldsite-backup/marketplace/img/highlight.png b/oldsite-backup/marketplace/img/highlight.png new file mode 100644 index 0000000..fddeb9b Binary files /dev/null and b/oldsite-backup/marketplace/img/highlight.png differ diff --git a/oldsite-backup/marketplace/img/hodlhodl.png b/oldsite-backup/marketplace/img/hodlhodl.png new file mode 100644 index 0000000..dc95c2e Binary files /dev/null and b/oldsite-backup/marketplace/img/hodlhodl.png differ diff --git a/oldsite-backup/marketplace/img/holdcat.png b/oldsite-backup/marketplace/img/holdcat.png new file mode 100644 index 0000000..cbe314d Binary files /dev/null and b/oldsite-backup/marketplace/img/holdcat.png differ diff --git a/oldsite-backup/marketplace/img/kaffe.png b/oldsite-backup/marketplace/img/kaffe.png new file mode 100644 index 0000000..fe16273 Binary files /dev/null and b/oldsite-backup/marketplace/img/kaffe.png differ diff --git a/oldsite-backup/marketplace/img/lancer.png b/oldsite-backup/marketplace/img/lancer.png new file mode 100644 index 0000000..0e849f7 Binary files /dev/null and b/oldsite-backup/marketplace/img/lancer.png differ diff --git a/oldsite-backup/marketplace/img/layerone.png b/oldsite-backup/marketplace/img/layerone.png new file mode 100644 index 0000000..df0b490 Binary files /dev/null and b/oldsite-backup/marketplace/img/layerone.png differ diff --git a/oldsite-backup/marketplace/img/lndlife.png b/oldsite-backup/marketplace/img/lndlife.png new file mode 100644 index 0000000..0d6d2eb Binary files /dev/null and b/oldsite-backup/marketplace/img/lndlife.png differ diff --git a/oldsite-backup/marketplace/img/lnduel.png b/oldsite-backup/marketplace/img/lnduel.png new file mode 100644 index 0000000..fa8cf54 Binary files /dev/null and b/oldsite-backup/marketplace/img/lnduel.png differ diff --git a/oldsite-backup/marketplace/img/lngames.png b/oldsite-backup/marketplace/img/lngames.png new file mode 100644 index 0000000..f5c20c0 Binary files /dev/null and b/oldsite-backup/marketplace/img/lngames.png differ diff --git a/oldsite-backup/marketplace/img/lnhunt.png b/oldsite-backup/marketplace/img/lnhunt.png new file mode 100644 index 0000000..f54973e Binary files /dev/null and b/oldsite-backup/marketplace/img/lnhunt.png differ diff --git a/oldsite-backup/marketplace/img/lnm.png b/oldsite-backup/marketplace/img/lnm.png new file mode 100644 index 0000000..2b40dc3 Binary files /dev/null and b/oldsite-backup/marketplace/img/lnm.png differ diff --git a/oldsite-backup/marketplace/img/lnpizza.png b/oldsite-backup/marketplace/img/lnpizza.png new file mode 100644 index 0000000..852cc87 Binary files /dev/null and b/oldsite-backup/marketplace/img/lnpizza.png differ diff --git a/oldsite-backup/marketplace/img/lnsms.png b/oldsite-backup/marketplace/img/lnsms.png new file mode 100644 index 0000000..176bc39 Binary files /dev/null and b/oldsite-backup/marketplace/img/lnsms.png differ diff --git a/oldsite-backup/marketplace/img/lnstores.png b/oldsite-backup/marketplace/img/lnstores.png new file mode 100644 index 0000000..94d1469 Binary files /dev/null and b/oldsite-backup/marketplace/img/lnstores.png differ diff --git a/oldsite-backup/marketplace/img/lroulette.png b/oldsite-backup/marketplace/img/lroulette.png new file mode 100644 index 0000000..3888fa3 Binary files /dev/null and b/oldsite-backup/marketplace/img/lroulette.png differ diff --git a/oldsite-backup/marketplace/img/lspin.png b/oldsite-backup/marketplace/img/lspin.png new file mode 100644 index 0000000..1678b7a Binary files /dev/null and b/oldsite-backup/marketplace/img/lspin.png differ diff --git a/oldsite-backup/marketplace/img/memory.png b/oldsite-backup/marketplace/img/memory.png new file mode 100644 index 0000000..fccc191 Binary files /dev/null and b/oldsite-backup/marketplace/img/memory.png differ diff --git a/oldsite-backup/marketplace/img/microbet.png b/oldsite-backup/marketplace/img/microbet.png new file mode 100644 index 0000000..c7b3af8 Binary files /dev/null and b/oldsite-backup/marketplace/img/microbet.png differ diff --git a/oldsite-backup/marketplace/img/miniroulette.png b/oldsite-backup/marketplace/img/miniroulette.png new file mode 100644 index 0000000..80563d0 Binary files /dev/null and b/oldsite-backup/marketplace/img/miniroulette.png differ diff --git a/oldsite-backup/marketplace/img/moonstuff.png b/oldsite-backup/marketplace/img/moonstuff.png new file mode 100644 index 0000000..2e63a9c Binary files /dev/null and b/oldsite-backup/marketplace/img/moonstuff.png differ diff --git a/oldsite-backup/marketplace/img/nakamoto.png b/oldsite-backup/marketplace/img/nakamoto.png new file mode 100644 index 0000000..52bc113 Binary files /dev/null and b/oldsite-backup/marketplace/img/nakamoto.png differ diff --git a/oldsite-backup/marketplace/img/niffler.png b/oldsite-backup/marketplace/img/niffler.png new file mode 100644 index 0000000..09c60b0 Binary files /dev/null and b/oldsite-backup/marketplace/img/niffler.png differ diff --git a/oldsite-backup/marketplace/img/paywall.png b/oldsite-backup/marketplace/img/paywall.png new file mode 100644 index 0000000..4988e70 Binary files /dev/null and b/oldsite-backup/marketplace/img/paywall.png differ diff --git a/oldsite-backup/marketplace/img/placeholder.png b/oldsite-backup/marketplace/img/placeholder.png new file mode 100644 index 0000000..12be7ab Binary files /dev/null and b/oldsite-backup/marketplace/img/placeholder.png differ diff --git a/oldsite-backup/marketplace/img/poker.png b/oldsite-backup/marketplace/img/poker.png new file mode 100644 index 0000000..46ef629 Binary files /dev/null and b/oldsite-backup/marketplace/img/poker.png differ diff --git a/oldsite-backup/marketplace/img/pollo.png b/oldsite-backup/marketplace/img/pollo.png new file mode 100644 index 0000000..ff35af5 Binary files /dev/null and b/oldsite-backup/marketplace/img/pollo.png differ diff --git a/oldsite-backup/marketplace/img/qabitcoin.png b/oldsite-backup/marketplace/img/qabitcoin.png new file mode 100644 index 0000000..a93c19c Binary files /dev/null and b/oldsite-backup/marketplace/img/qabitcoin.png differ diff --git a/oldsite-backup/marketplace/img/receivesms.png b/oldsite-backup/marketplace/img/receivesms.png new file mode 100644 index 0000000..8be9108 Binary files /dev/null and b/oldsite-backup/marketplace/img/receivesms.png differ diff --git a/oldsite-backup/marketplace/img/sat2.png b/oldsite-backup/marketplace/img/sat2.png new file mode 100644 index 0000000..9f7ec01 Binary files /dev/null and b/oldsite-backup/marketplace/img/sat2.png differ diff --git a/oldsite-backup/marketplace/img/satoshisgames.png b/oldsite-backup/marketplace/img/satoshisgames.png new file mode 100644 index 0000000..85d020c Binary files /dev/null and b/oldsite-backup/marketplace/img/satoshisgames.png differ diff --git a/oldsite-backup/marketplace/img/satoshisplace.png b/oldsite-backup/marketplace/img/satoshisplace.png new file mode 100644 index 0000000..687ae5c Binary files /dev/null and b/oldsite-backup/marketplace/img/satoshisplace.png differ diff --git a/oldsite-backup/marketplace/img/satoshisworld.png b/oldsite-backup/marketplace/img/satoshisworld.png new file mode 100644 index 0000000..154c26f Binary files /dev/null and b/oldsite-backup/marketplace/img/satoshisworld.png differ diff --git a/marketplace/img/silent.link.png b/oldsite-backup/marketplace/img/silent.link.png similarity index 100% rename from marketplace/img/silent.link.png rename to oldsite-backup/marketplace/img/silent.link.png diff --git a/oldsite-backup/marketplace/img/spaceinvaders.png b/oldsite-backup/marketplace/img/spaceinvaders.png new file mode 100644 index 0000000..e58c8d5 Binary files /dev/null and b/oldsite-backup/marketplace/img/spaceinvaders.png differ diff --git a/oldsite-backup/marketplace/img/spendl.png b/oldsite-backup/marketplace/img/spendl.png new file mode 100644 index 0000000..f74dc6b Binary files /dev/null and b/oldsite-backup/marketplace/img/spendl.png differ diff --git a/oldsite-backup/marketplace/img/tallycoin.png b/oldsite-backup/marketplace/img/tallycoin.png new file mode 100644 index 0000000..ab06a37 Binary files /dev/null and b/oldsite-backup/marketplace/img/tallycoin.png differ diff --git a/oldsite-backup/marketplace/img/tippin.png b/oldsite-backup/marketplace/img/tippin.png new file mode 100644 index 0000000..a7a252c Binary files /dev/null and b/oldsite-backup/marketplace/img/tippin.png differ diff --git a/oldsite-backup/marketplace/img/torguard.png b/oldsite-backup/marketplace/img/torguard.png new file mode 100644 index 0000000..f1d3974 Binary files /dev/null and b/oldsite-backup/marketplace/img/torguard.png differ diff --git a/oldsite-backup/marketplace/img/tunnels.png b/oldsite-backup/marketplace/img/tunnels.png new file mode 100644 index 0000000..2925101 Binary files /dev/null and b/oldsite-backup/marketplace/img/tunnels.png differ diff --git a/oldsite-backup/marketplace/img/vape.png b/oldsite-backup/marketplace/img/vape.png new file mode 100644 index 0000000..e572f18 Binary files /dev/null and b/oldsite-backup/marketplace/img/vape.png differ diff --git a/oldsite-backup/marketplace/img/wears.png b/oldsite-backup/marketplace/img/wears.png new file mode 100644 index 0000000..090439e Binary files /dev/null and b/oldsite-backup/marketplace/img/wears.png differ diff --git a/oldsite-backup/marketplace/img/yalls.png b/oldsite-backup/marketplace/img/yalls.png new file mode 100644 index 0000000..c4c8125 Binary files /dev/null and b/oldsite-backup/marketplace/img/yalls.png differ diff --git a/oldsite-backup/marketplace/img/zigzag.png b/oldsite-backup/marketplace/img/zigzag.png new file mode 100644 index 0000000..627c7dd Binary files /dev/null and b/oldsite-backup/marketplace/img/zigzag.png differ diff --git a/oldsite-backup/marketplace/index.html b/oldsite-backup/marketplace/index.html new file mode 100644 index 0000000..fbb92c2 --- /dev/null +++ b/oldsite-backup/marketplace/index.html @@ -0,0 +1,636 @@ + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+

Services

+
+ + + + + + + + + + + + + + + + + + + +
+

Games

+
+ + + + + + + + + + + +
+

Social

+
+ + + + + + + + +
+

Merchandising

+
+ + + + + + + + + + + + +
+

Books

+
+ + +
+

Miscellaneous

+
+ + + + + + + + + + +
+ + diff --git a/oldsite-backup/marketplace/marketplace.css b/oldsite-backup/marketplace/marketplace.css new file mode 100644 index 0000000..a36bdd2 --- /dev/null +++ b/oldsite-backup/marketplace/marketplace.css @@ -0,0 +1,98 @@ +body { + margin: 0; + font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #0C2550; + text-align: left; + background: #fff; +} +a { + text-decoration: none +} +.section { + margin: 24px 16px 0px 16px; +} +.section.first { + margin-top: 0px; +} +.section h3 { + margin: 0px; + font-size: 16px; +} +.grid-container { + display: grid; + grid-template-columns: 48px 1fr; + grid-template-rows: 1fr; + grid-template-areas: "appicon apptext"; + padding: 16px 0; + margin: 0 16px; + border-bottom: 1px solid #EEF0F4; +} +.grid-container.tippin{ + border-bottom: 0px solid transparent; +} +.appicon { + grid-area: appicon; +} +.apptext { + grid-area: apptext; + padding: 0 0 0 8px; + position: relative; +} +.apptext h2 { + color: #0C2550; + font-size: 20px; + font-weight: 500; + margin: 0; +} +.apptext p { + color: #9AA0AA; + font-size: 12px; + margin: 0px; +} +.appicon img { + width: 48px; +} +.highlight { + background: url(img/highlight.png) no-repeat center; + height: 228px; + background-size: cover; + margin: 16px 16px 24px 16px; + border-radius: 12px; + position: relative; +} +.highlight .content { + background: rgba(0,0,0,.5); + border-radius: 6px; + margin: 0 16px 16px; + position: absolute; + bottom: 0px; + left: 0px; + right: 0px; + display: block; + padding: 12px 16px; +} +.highlight .content h2 { + color: #fff; + font-size: 18px; + margin: 0px; + padding: 0px; +} +.highlight .content p{ + color: #fff; + font-size: 14px; + margin: 0px; + padding: 0px; +} +.new { + width: 12px; + height: 12px; + background: #68BBE1; + border-radius: 50%; + display: block; + position: absolute; + right: 0; + top: 10px; +} \ No newline at end of file diff --git a/oldsite-backup/package-lock.json b/oldsite-backup/package-lock.json new file mode 100644 index 0000000..2a4f603 --- /dev/null +++ b/oldsite-backup/package-lock.json @@ -0,0 +1,10712 @@ +{ + "name": "startbootstrap-new-age", + "version": "4.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz", + "integrity": "sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==", + "requires": { + "@babel/types": "^7.7.4" + } + }, + "@babel/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/runtime": { + "version": "7.7.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.6.tgz", + "integrity": "sha512-BWAJxpNVa0QlE5gZdWjSxXtemZyZ9RmrmVozxt3NUXeZhVIJ5ANyqmMc0JDrivBZyxUuQvFxlvH4OWWOogGfUw==", + "requires": { + "regenerator-runtime": "^0.13.2" + } + }, + "@babel/types": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "@emotion/babel-utils": { + "version": "0.6.10", + "resolved": "https://registry.npmjs.org/@emotion/babel-utils/-/babel-utils-0.6.10.tgz", + "integrity": "sha512-/fnkM/LTEp3jKe++T0KyTszVGWNKPNOUJfjNKLO17BzQ6QPxgbg3whayom1Qr2oLFH3V92tDymU+dT5q676uow==", + "requires": { + "@emotion/hash": "^0.6.6", + "@emotion/memoize": "^0.6.6", + "@emotion/serialize": "^0.9.1", + "convert-source-map": "^1.5.1", + "find-root": "^1.1.0", + "source-map": "^0.7.2" + }, + "dependencies": { + "@emotion/hash": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.6.6.tgz", + "integrity": "sha512-ojhgxzUHZ7am3D2jHkMzPpsBAiB005GF5YU4ea+8DNPybMk01JJUM9V9YRlF/GE95tcOm8DxQvWA2jq19bGalQ==" + }, + "@emotion/memoize": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.6.6.tgz", + "integrity": "sha512-h4t4jFjtm1YV7UirAFuSuFGyLa+NNxjdkq6DpFLANNQY5rHueFZHVY+8Cu1HYVP6DrheB0kv4m5xPjo7eKT7yQ==" + }, + "@emotion/serialize": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.9.1.tgz", + "integrity": "sha512-zTuAFtyPvCctHBEL8KZ5lJuwBanGSutFEncqLn/m9T1a6a93smBStK+bZzcNPgj4QS8Rkw9VTwJGhRIUVO8zsQ==", + "requires": { + "@emotion/hash": "^0.6.6", + "@emotion/memoize": "^0.6.6", + "@emotion/unitless": "^0.6.7", + "@emotion/utils": "^0.8.2" + } + }, + "@emotion/unitless": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.6.7.tgz", + "integrity": "sha512-Arj1hncvEVqQ2p7Ega08uHLr1JuRYBuO5cIvcA+WWEQ5+VmkOE3ZXzl04NbQxeQpWX78G7u6MqxKuNX3wvYZxg==" + }, + "@emotion/utils": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.8.2.tgz", + "integrity": "sha512-rLu3wcBWH4P5q1CGoSSH/i9hrXs7SlbRLkoq9IGuoPYNGQvDJ3pt/wmOM+XgYjIDRMVIdkUWt0RsfzF50JfnCw==" + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "@emotion/cache": { + "version": "10.0.19", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.19.tgz", + "integrity": "sha512-BoiLlk4vEsGBg2dAqGSJu0vJl/PgVtCYLBFJaEO8RmQzPugXewQCXZJNXTDFaRlfCs0W+quesayav4fvaif5WQ==", + "requires": { + "@emotion/sheet": "0.9.3", + "@emotion/stylis": "0.8.4", + "@emotion/utils": "0.11.2", + "@emotion/weak-memoize": "0.2.4" + } + }, + "@emotion/core": { + "version": "10.0.22", + "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.0.22.tgz", + "integrity": "sha512-7eoP6KQVUyOjAkE6y4fdlxbZRA4ILs7dqkkm6oZUJmihtHv0UBq98VgPirq9T8F9K2gKu0J/au/TpKryKMinaA==", + "requires": { + "@babel/runtime": "^7.5.5", + "@emotion/cache": "^10.0.17", + "@emotion/css": "^10.0.22", + "@emotion/serialize": "^0.11.12", + "@emotion/sheet": "0.9.3", + "@emotion/utils": "0.11.2" + } + }, + "@emotion/css": { + "version": "10.0.22", + "resolved": "https://registry.npmjs.org/@emotion/css/-/css-10.0.22.tgz", + "integrity": "sha512-8phfa5mC/OadBTmGpMpwykIVH0gFCbUoO684LUkyixPq4F1Wwri7fK5Xlm8lURNBrd2TuvTbPUGxFsGxF9UacA==", + "requires": { + "@emotion/serialize": "^0.11.12", + "@emotion/utils": "0.11.2", + "babel-plugin-emotion": "^10.0.22" + } + }, + "@emotion/hash": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.7.3.tgz", + "integrity": "sha512-14ZVlsB9akwvydAdaEnVnvqu6J2P6ySv39hYyl/aoB6w/V+bXX0tay8cF6paqbgZsN2n5Xh15uF4pE+GvE+itw==" + }, + "@emotion/is-prop-valid": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.5.tgz", + "integrity": "sha512-6ZODuZSFofbxSbcxwsFz+6ioPjb0ISJRRPLZ+WIbjcU2IMU0Io+RGQjjaTgOvNQl007KICBm7zXQaYQEC1r6Bg==", + "requires": { + "@emotion/memoize": "0.7.3" + } + }, + "@emotion/memoize": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.3.tgz", + "integrity": "sha512-2Md9mH6mvo+ygq1trTeVp2uzAKwE2P7In0cRpD/M9Q70aH8L+rxMLbb3JCN2JoSWsV2O+DdFjfbbXoMoLBczow==" + }, + "@emotion/serialize": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.14.tgz", + "integrity": "sha512-6hTsySIuQTbDbv00AnUO6O6Xafdwo5GswRlMZ5hHqiFx+4pZ7uGWXUQFW46Kc2taGhP89uXMXn/lWQkdyTosPA==", + "requires": { + "@emotion/hash": "0.7.3", + "@emotion/memoize": "0.7.3", + "@emotion/unitless": "0.7.4", + "@emotion/utils": "0.11.2", + "csstype": "^2.5.7" + } + }, + "@emotion/sheet": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.3.tgz", + "integrity": "sha512-c3Q6V7Df7jfwSq5AzQWbXHa5soeE4F5cbqi40xn0CzXxWW9/6Mxq48WJEtqfWzbZtW9odZdnRAkwCQwN12ob4A==" + }, + "@emotion/styled": { + "version": "10.0.23", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-10.0.23.tgz", + "integrity": "sha512-gNr04eqBQ2iYUx8wFLZDfm3N8/QUOODu/ReDXa693uyQGy2OqA+IhPJk+kA7id8aOfwAsMuvZ0pJImEXXKtaVQ==", + "requires": { + "@emotion/styled-base": "^10.0.23", + "babel-plugin-emotion": "^10.0.23" + } + }, + "@emotion/styled-base": { + "version": "10.0.24", + "resolved": "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.0.24.tgz", + "integrity": "sha512-AnBImerf0h4dGAJVo0p0VE8KoAns71F28ErGFK474zbNAHX6yqSWQUasb+1jvg/VPwZjCp19+tAr6oOB0pwmLQ==", + "requires": { + "@babel/runtime": "^7.5.5", + "@emotion/is-prop-valid": "0.8.5", + "@emotion/serialize": "^0.11.14", + "@emotion/utils": "0.11.2" + } + }, + "@emotion/stylis": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.4.tgz", + "integrity": "sha512-TLmkCVm8f8gH0oLv+HWKiu7e8xmBIaokhxcEKPh1m8pXiV/akCiq50FvYgOwY42rjejck8nsdQxZlXZ7pmyBUQ==" + }, + "@emotion/unitless": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.4.tgz", + "integrity": "sha512-kBa+cDHOR9jpRJ+kcGMsysrls0leukrm68DmFQoMIWQcXdr2cZvyvypWuGYT7U+9kAExUE7+T7r6G3C3A6L8MQ==" + }, + "@emotion/utils": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.2.tgz", + "integrity": "sha512-UHX2XklLl3sIaP6oiMmlVzT0J+2ATTVpf0dHQVyPJHTkOITvXfaSqnRk6mdDhV9pR8T/tHc3cex78IKXssmzrA==" + }, + "@emotion/weak-memoize": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.4.tgz", + "integrity": "sha512-6PYY5DVdAY1ifaQW6XYTnOMihmBVT27elqSjEoodchsGjzYlEsTQMcEhSud99kVawatyTZRTiVkJ/c6lwbQ7nA==" + }, + "@pieh/friendly-errors-webpack-plugin": { + "version": "1.7.0-chalk-2", + "resolved": "https://registry.npmjs.org/@pieh/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0-chalk-2.tgz", + "integrity": "sha512-65+vYGuDkHBCWWjqzzR/Ck318+d6yTI00EqII9qe3aPD1J3Olhvw0X38uM5moQb1PK/ksDXwSoPGt/5QhCiotw==", + "requires": { + "chalk": "^2.4.2", + "error-stack-parser": "^2.0.0", + "string-width": "^2.0.0", + "strip-ansi": "^3" + } + }, + "@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "requires": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "@types/prop-types": { + "version": "15.7.3", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", + "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" + }, + "@types/react": { + "version": "16.9.15", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.15.tgz", + "integrity": "sha512-WsmM1b6xQn1tG3X2Hx4F3bZwc2E82pJXt5OPs2YJgg71IzvUoKOSSSYOvLXYCg1ttipM+UuA4Lj3sfvqjVxyZw==", + "requires": { + "@types/prop-types": "*", + "csstype": "^2.2.0" + } + }, + "@webassemblyjs/ast": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", + "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", + "requires": { + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", + "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==" + }, + "@webassemblyjs/helper-api-error": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", + "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==" + }, + "@webassemblyjs/helper-buffer": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", + "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==" + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", + "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", + "requires": { + "@webassemblyjs/wast-printer": "1.8.5" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", + "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==" + }, + "@webassemblyjs/helper-module-context": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", + "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "mamacro": "^0.0.3" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", + "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==" + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", + "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", + "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", + "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", + "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==" + }, + "@webassemblyjs/wasm-edit": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", + "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/helper-wasm-section": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-opt": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "@webassemblyjs/wast-printer": "1.8.5" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", + "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", + "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", + "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", + "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/floating-point-hex-parser": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-code-frame": "1.8.5", + "@webassemblyjs/helper-fsm": "1.8.5", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", + "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "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.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", + "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==" + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" + }, + "ajv-keywords": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==" + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==" + }, + "ansi-cyan": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", + "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-red": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", + "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "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==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "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.0.6" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "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==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "dev": true + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "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-iterate": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-1.1.3.tgz", + "integrity": "sha512-7MIv7HE9MuzfK6B2UnWv07oSHBLOaY1UUXAxZ07bIeRM+4IkPTlveMDs9MY//qvxPZPSvCn2XV4bmtQgSkVodg==" + }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.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 + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "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.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" + }, + "async-each-series": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", + "integrity": "sha1-dhfBkXQB/Yykooqtzj266Yr+tDI=", + "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.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true + }, + "aws4": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz", + "integrity": "sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==", + "dev": true + }, + "babel-plugin-emotion": { + "version": "10.0.23", + "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.23.tgz", + "integrity": "sha512-1JiCyXU0t5S2xCbItejCduLGGcKmF3POT0Ujbexog2MI4IlRcIn/kWjkYwCUZlxpON0O5FC635yPl/3slr7cKQ==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@emotion/hash": "0.7.3", + "@emotion/memoize": "0.7.3", + "@emotion/serialize": "^0.11.14", + "babel-plugin-macros": "^2.0.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^1.0.5", + "find-root": "^1.1.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=" + } + } + }, + "babel-plugin-macros": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", + "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "requires": { + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" + } + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "bail": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.4.tgz", + "integrity": "sha512-S8vuDB4w6YpRhICUDET3guPlQpaJl7od94tpZ0Fvnyp+MKW/HyDTcRDck+29C9g+d/qQHnddRH3+94kZdrW0Ww==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "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=", + "requires": { + "is-descriptor": "^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==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "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==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", + "dev": true + }, + "batch": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz", + "integrity": "sha1-PzQU84AyF0O/wQQvmoP/HVgk1GQ=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "beeper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", + "dev": true + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "requires": { + "callsite": "1.0.0" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", + "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.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "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.x.x" + } + }, + "bootstrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.0.0.tgz", + "integrity": "sha512-gulJE5dGFo6Q61V/whS6VM4WIyrlydXfCgkE+Gxe5hjrJ8rXLLZlALq7zq2RPhOc45PSwQpJkrTnc2KgD6cvmA==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-sync": { + "version": "2.23.6", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.23.6.tgz", + "integrity": "sha512-loCO5NQKZXfBJrEvmLwF1TPSECCsPopNd29qduoysLmpw8op2lgolGMjz3oI/MjG4duzB9TfDs7k58djRSwPwg==", + "dev": true, + "requires": { + "browser-sync-ui": "v1.0.1", + "bs-recipes": "1.3.4", + "chokidar": "1.7.0", + "connect": "3.5.0", + "connect-history-api-fallback": "^1.5.0", + "dev-ip": "^1.0.1", + "easy-extender": "2.3.2", + "eazy-logger": "3.0.2", + "emitter-steward": "^1.0.0", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "fs-extra": "3.0.1", + "http-proxy": "1.15.2", + "immutable": "3.8.2", + "localtunnel": "1.8.3", + "micromatch": "2.3.11", + "opn": "4.0.2", + "portscanner": "2.1.1", + "qs": "6.2.1", + "resp-modifier": "6.0.2", + "rx": "4.1.0", + "serve-index": "1.8.0", + "serve-static": "1.12.2", + "server-destroy": "1.0.1", + "socket.io": "2.0.4", + "ua-parser-js": "0.7.12", + "yargs": "6.4.0" + }, + "dependencies": { + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "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.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "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.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "requires": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.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.0" + } + }, + "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" + } + }, + "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.0" + } + }, + "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-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" + } + }, + "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.5" + } + }, + "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.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "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.0.1" + } + }, + "ua-parser-js": { + "version": "0.7.12", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.12.tgz", + "integrity": "sha1-BMgamb3V3FImPqKdJMa/jUgYpLs=", + "dev": true + } + } + }, + "browser-sync-ui": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-1.0.1.tgz", + "integrity": "sha512-RIxmwVVcUFhRd1zxp7m2FfLnXHf59x4Gtj8HFwTA//3VgYI3AKkaQAuDL8KDJnE59XqCshxZa13JYuIWtZlKQg==", + "dev": true, + "requires": { + "async-each-series": "0.1.1", + "connect-history-api-fallback": "^1.1.0", + "immutable": "^3.7.6", + "server-destroy": "1.0.1", + "socket.io-client": "2.0.4", + "stream-throttle": "^0.1.3" + } + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "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==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "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==", + "requires": { + "pako": "~1.0.5" + } + }, + "bs-recipes": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", + "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=", + "dev": true + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "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=" + }, + "cacache": { + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz", + "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==", + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "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" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + }, + "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.0.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + } + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "ccount": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.4.tgz", + "integrity": "sha512-fpZ81yYfzentuieinmGnphk0pLkOTMm6MZdVqwd77ROvhko6iujLNGrHH5E7utq3ygWklwfmwuG+A7P+NpqT6w==" + }, + "chain-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chain-function/-/chain-function-1.0.1.tgz", + "integrity": "sha512-SxltgMwL9uCko5/ZCLiyG2B7R9fY4pDZUw7hJ4MhirdjBLosoDqkWABi3XMucddHdLiFJMb7PD2MZifZriuMTg==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "character-entities": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.3.tgz", + "integrity": "sha512-yB4oYSAa9yLcGyTbB4ItFwHw43QHdH129IJ5R+WvxOkWlyFnR5FAaBNnUq4mcxsTVZGh28bHoeTHMKXH1wZf3w==" + }, + "character-entities-html4": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.3.tgz", + "integrity": "sha512-SwnyZ7jQBCRHELk9zf2CN5AnGEc2nA+uKMZLHvcqhpPprjkYhiLn0DywMHgN5ttFZuITMATbh68M6VIVKwJbcg==" + }, + "character-entities-legacy": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.3.tgz", + "integrity": "sha512-YAxUpPoPwxYFsslbdKkhrGnXAtXoHNgYjlBM3WMXkWGTl5RsY3QmOyhwAgL8Nxm9l5LBThXGawxKPn68y6/fww==" + }, + "character-reference-invalid": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.3.tgz", + "integrity": "sha512-VOq6PRzQBam/8Jm6XBGk2fNEnHXAdGd6go0rtd4weAGECBamHDwwCQSOT12TACIYUZegUXnV6xBXqUssijtxIg==" + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "chownr": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==" + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "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==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "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==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "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=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, + "clean-css": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "requires": { + "source-map": "~0.6.0" + } + }, + "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.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + }, + "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.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.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "dev": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collapse-white-space": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.5.tgz", + "integrity": "sha512-703bOOmytCYAX9cXYqoikYIx6twmFCXsnzRQheBcTG3nzKYBR4P/+wkYeH+Mvj7qUz8zZDtdyzbxfnEi/kYzRQ==" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "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=" + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "comma-separated-tokens": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.7.tgz", + "integrity": "sha512-Jrx3xsP4pPv4AwJUDWY9wOXGtwPXARej6Xd99h4TUGotmf8APuquKMpK+dnD3UgyxK7OEWaisjZz+3b5jtL6xQ==" + }, + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + }, + "common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "concat-with-sourcemaps": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", + "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } + }, + "connect": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.5.0.tgz", + "integrity": "sha1-s1dSWgtMH1BZnNmD4dnv7qlncZg=", + "dev": true, + "requires": { + "debug": "~2.2.0", + "finalhandler": "0.5.0", + "parseurl": "~1.3.1", + "utils-merge": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + }, + "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 + }, + "consolidated-events": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/consolidated-events/-/consolidated-events-2.0.2.tgz", + "integrity": "sha512-2/uRVMdRypf5z/TW/ncD/66l75P5hH2vM/GR8Jf8HLc2xnfJtmina6F6du8+v4Z2vTrMo7jC+W1tmEEuuELgkQ==" + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "copy-text-to-clipboard": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-2.1.1.tgz", + "integrity": "sha512-oSuMj4ArDGSLcLPsDhzWOhalzOVV0ErCHNfZNNr+spC+iWJ6PVSLzPPrJw/rcdFZyOhugn8iw6O0nrpY/ZrEMg==" + }, + "copy-webpack-plugin": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.0.5.tgz", + "integrity": "sha512-7N68eIoQTyudAuxkfPT7HzGoQ+TsmArN/I3HFwG+lVE3FNzqvZKIiaxtYh4o3BIznioxUvx9j26+Rtsc9htQUQ==", + "requires": { + "cacache": "^12.0.3", + "find-cache-dir": "^2.1.0", + "glob-parent": "^3.1.0", + "globby": "^7.1.1", + "is-glob": "^4.0.1", + "loader-utils": "^1.2.3", + "minimatch": "^3.0.4", + "normalize-path": "^3.0.0", + "p-limit": "^2.2.1", + "schema-utils": "^1.0.0", + "serialize-javascript": "^2.1.0", + "webpack-log": "^2.0.0" + } + }, + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + }, + "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": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "dependencies": { + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + } + } + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "create-emotion": { + "version": "9.2.12", + "resolved": "https://registry.npmjs.org/create-emotion/-/create-emotion-9.2.12.tgz", + "integrity": "sha512-P57uOF9NL2y98Xrbl2OuiDQUZ30GVmASsv5fbsjF4Hlraip2kyAvMm+2PoYUvFFw03Fhgtxk3RqZSm2/qHL9hA==", + "requires": { + "@emotion/hash": "^0.6.2", + "@emotion/memoize": "^0.6.1", + "@emotion/stylis": "^0.7.0", + "@emotion/unitless": "^0.6.2", + "csstype": "^2.5.2", + "stylis": "^3.5.0", + "stylis-rule-sheet": "^0.0.10" + }, + "dependencies": { + "@emotion/hash": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.6.6.tgz", + "integrity": "sha512-ojhgxzUHZ7am3D2jHkMzPpsBAiB005GF5YU4ea+8DNPybMk01JJUM9V9YRlF/GE95tcOm8DxQvWA2jq19bGalQ==" + }, + "@emotion/memoize": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.6.6.tgz", + "integrity": "sha512-h4t4jFjtm1YV7UirAFuSuFGyLa+NNxjdkq6DpFLANNQY5rHueFZHVY+8Cu1HYVP6DrheB0kv4m5xPjo7eKT7yQ==" + }, + "@emotion/stylis": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.7.1.tgz", + "integrity": "sha512-/SLmSIkN13M//53TtNxgxo57mcJk/UJIDFRKwOiLIBEyBHEcipgR6hNMQ/59Sl4VjCJ0Z/3zeAZyvnSLPG/1HQ==" + }, + "@emotion/unitless": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.6.7.tgz", + "integrity": "sha512-Arj1hncvEVqQ2p7Ega08uHLr1JuRYBuO5cIvcA+WWEQ5+VmkOE3ZXzl04NbQxeQpWX78G7u6MqxKuNX3wvYZxg==" + } + } + }, + "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==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "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==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "create-react-class": { + "version": "15.6.3", + "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", + "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", + "requires": { + "fbjs": "^0.8.9", + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + }, + "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.0.1", + "which": "^1.2.9" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "requires": { + "boom": "2.x.x" + } + }, + "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==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" + }, + "csstype": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.7.tgz", + "integrity": "sha512-9Mcn9sFbGBAdmimWb2gLVDtFJzeKtDGIr76TUqmjZrw9LFXBMSU70lcs+C0/7fyCd6iBDqmksUcCOUIkisPHsQ==" + }, + "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.1" + } + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "dateformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", + "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 + }, + "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=" + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "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==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "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==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "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 + }, + "deprecated": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", + "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=", + "dev": true + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detab": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.2.tgz", + "integrity": "sha512-Q57yPrxScy816TTE1P/uLRXLDKjXhvYTbfxS/e6lPD+YrqghbsMlGB9nQzj/zVtSPaF0DFPSdO916EWO4sQUyQ==", + "requires": { + "repeat-string": "^1.5.4" + } + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, + "dev-ip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", + "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=", + "dev": true + }, + "diacritics": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/diacritics/-/diacritics-1.3.0.tgz", + "integrity": "sha1-PvqHMj67hj5mls67AILUj/PW96E=" + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "requires": { + "path-type": "^3.0.0" + } + }, + "direction": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/direction/-/direction-0.1.5.tgz", + "integrity": "sha1-zl15f5fib4vnvv9T99xA4cGp7Ew=" + }, + "dnd-core": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-7.7.0.tgz", + "integrity": "sha512-+YqwflWEY1MEAEl2QiEiRaglYkCwIZryyQwximQGuTOm/ns7fS6Lg/i7OCkrtjM10D5FhArf/VUHIL4ZaRBK0g==", + "requires": { + "asap": "^2.0.6", + "invariant": "^2.2.4", + "redux": "^4.0.1" + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "requires": { + "utila": "~0.4" + } + }, + "dom-helpers": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", + "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", + "requires": { + "@babel/runtime": "^7.1.2" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", + "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==" + } + } + }, + "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==" + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "dev": true, + "requires": { + "readable-stream": "~1.1.9" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "easy-extender": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.2.tgz", + "integrity": "sha1-PTJI/r4rFZYHMW2PnPSRwWZIIh0=", + "dev": true, + "requires": { + "lodash": "^3.10.1" + }, + "dependencies": { + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + } + } + }, + "eazy-logger": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.0.2.tgz", + "integrity": "sha1-oyWqXlPROiIliJsqxBE7K5Y29Pw=", + "dev": true, + "requires": { + "tfunk": "^3.0.1" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "elliptic": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", + "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "email-addresses": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", + "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", + "dev": true + }, + "emitter-steward": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/emitter-steward/-/emitter-steward-1.0.0.tgz", + "integrity": "sha1-80Ea3pdYp1Zd+Eiy2gy70bRsvWQ=", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "emotion": { + "version": "9.2.12", + "resolved": "https://registry.npmjs.org/emotion/-/emotion-9.2.12.tgz", + "integrity": "sha512-hcx7jppaI8VoXxIWEhxpDW7I+B4kq9RNzQLmsrF6LY8BGKqe2N+gFAQr0EfuFucFlPs2A9HM4+xNj4NeqEWIOQ==", + "requires": { + "babel-plugin-emotion": "^9.2.11", + "create-emotion": "^9.2.12" + }, + "dependencies": { + "@emotion/hash": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.6.6.tgz", + "integrity": "sha512-ojhgxzUHZ7am3D2jHkMzPpsBAiB005GF5YU4ea+8DNPybMk01JJUM9V9YRlF/GE95tcOm8DxQvWA2jq19bGalQ==" + }, + "@emotion/memoize": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.6.6.tgz", + "integrity": "sha512-h4t4jFjtm1YV7UirAFuSuFGyLa+NNxjdkq6DpFLANNQY5rHueFZHVY+8Cu1HYVP6DrheB0kv4m5xPjo7eKT7yQ==" + }, + "@emotion/stylis": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.7.1.tgz", + "integrity": "sha512-/SLmSIkN13M//53TtNxgxo57mcJk/UJIDFRKwOiLIBEyBHEcipgR6hNMQ/59Sl4VjCJ0Z/3zeAZyvnSLPG/1HQ==" + }, + "babel-plugin-emotion": { + "version": "9.2.11", + "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-9.2.11.tgz", + "integrity": "sha512-dgCImifnOPPSeXod2znAmgc64NhaaOjGEHROR/M+lmStb3841yK1sgaDYAYMnlvWNz8GnpwIPN0VmNpbWYZ+VQ==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@emotion/babel-utils": "^0.6.4", + "@emotion/hash": "^0.6.2", + "@emotion/memoize": "^0.6.1", + "@emotion/stylis": "^0.7.0", + "babel-plugin-macros": "^2.0.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "convert-source-map": "^1.5.0", + "find-root": "^1.1.0", + "mkdirp": "^0.5.1", + "source-map": "^0.5.7", + "touch": "^2.0.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.1.5.tgz", + "integrity": "sha512-D06ivJkYxyRrcEe0bTpNnBQNgP9d3xog+qZlLbui8EsMr/DouQpf5o9FzJnWYHEYE0YsFHllUv2R1dkgYZXHcA==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "uws": "~9.14.0", + "ws": "~3.3.1" + }, + "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" + } + } + } + }, + "engine.io-client": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.6.tgz", + "integrity": "sha512-hnuHsFluXnsKOndS4Hv6SvUrgdYx1pk2NqfaDMW+GWdgfU3+/V25Cj7I8a0x92idSpa5PIhJRKxPvp9mnoLsfg==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "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 + }, + "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" + } + } + } + }, + "engine.io-parser": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", + "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "enhanced-resolve": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz", + "integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==", + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, + "entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", + "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.4.tgz", + "integrity": "sha512-fZ0KkoxSjLFmhW5lHbUT3tLwy3nX1qEzMYo8koY1vrsAco53CMT1djnBSeC/wUjTEZRhZl9iRw7PaMaxfJ4wzQ==", + "requires": { + "stackframe": "^1.1.0" + } + }, + "es-abstract": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.3.tgz", + "integrity": "sha512-WtY7Fx5LiOnSYgF5eg/1T+GONaGmpvpPdCpSnYij+U2gDTL0UPfWrhDw7b2IYb+9NQJsYpCA0wOQvZfsd6YwRw==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "string.prototype.trimleft": "^2.1.0", + "string.prototype.trimright": "^2.1.0" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "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=" + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "requires": { + "estraverse": "^4.1.0" + } + }, + "esrever": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/esrever/-/esrever-0.2.0.tgz", + "integrity": "sha1-lunSj08bGnZ4TNXUkOquAQ50B7g=" + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "eventemitter3": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", + "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", + "dev": true + }, + "events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", + "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==" + }, + "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==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "exenv": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", + "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "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=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "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.1.0" + }, + "dependencies": { + "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.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "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.0.2" + } + }, + "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" + } + }, + "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.5" + } + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "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.0", + "snapdragon": "^0.8.1", + "to-regex": "^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=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.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==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "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==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "requires": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + } + }, + "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=" + }, + "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=" + }, + "fbjs": { + "version": "0.8.17", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", + "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", + "requires": { + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + } + }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==" + }, + "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.0", + "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.0.0", + "humanize-url": "^1.0.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.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=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.0.tgz", + "integrity": "sha1-6VCKvs6bbbqHGmlCodeRG5GRGsc=", + "dev": true, + "requires": { + "debug": "~2.2.0", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "statuses": "~1.3.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-index": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", + "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", + "dev": true + }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "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.0" + } + } + } + }, + "fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + } + }, + "first-chunk-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", + "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", + "dev": true + }, + "flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "focus-group": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/focus-group/-/focus-group-0.3.1.tgz", + "integrity": "sha1-4PMu2GsNq91v/OvfiY7LMuR/7c4=" + }, + "font-awesome": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz", + "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM=" + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "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.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "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 + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "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.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true + } + } + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "fuzzy": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz", + "integrity": "sha1-THbsL/CsGjap3M+aAN+GIweNTtg=" + }, + "gatsby-plugin-netlify-cms": { + "version": "4.1.31", + "resolved": "https://registry.npmjs.org/gatsby-plugin-netlify-cms/-/gatsby-plugin-netlify-cms-4.1.31.tgz", + "integrity": "sha512-5RO6W4mcdmrqHcCwAZcVSXAwGCD3k+p0FKwsho3Z9HVf2L1XZB/NseC0wsCW/7y1HWrvd3F7mYVUcHYp6mge/Q==", + "requires": { + "@pieh/friendly-errors-webpack-plugin": "1.7.0-chalk-2", + "copy-webpack-plugin": "^5.0.5", + "html-webpack-exclude-assets-plugin": "^0.0.7", + "html-webpack-plugin": "^3.2.0", + "html-webpack-tags-plugin": "^2.0.17", + "lodash": "^4.17.15", + "mini-css-extract-plugin": "^0.8.0", + "netlify-identity-widget": "^1.5.5", + "webpack": "^4.41.2" + } + }, + "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.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "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.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.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "gaze": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", + "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", + "dev": true, + "requires": { + "globule": "~0.1.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-document": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-document/-/get-document-1.0.0.tgz", + "integrity": "sha1-SCG85m8cJMsDMWAr5strEsTwHEs=" + }, + "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-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "get-window": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-window/-/get-window-1.1.2.tgz", + "integrity": "sha512-yjWpFcy9fjhLQHW1dPtg9ga4pmizLY8y4ZSHdGrAQ1NU277MRhnGnnLPxe19X8W5lWVsCZz++5xEuNozWMVmTw==", + "requires": { + "get-document": "1" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "gh-pages": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-2.1.1.tgz", + "integrity": "sha512-yNW2SFp9xGRP/8Sk2WXuLI/Gn92oOL4HBgudn6PsqAnuWT90Y1tozJoTfX1WdrDSW5Rb90kLVOf5mm9KJ/2fDw==", + "dev": true, + "requires": { + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify-url": "^1.0.0", + "fs-extra": "^7.0.0", + "globby": "^6.1.0", + "graceful-fs": "^4.1.11", + "rimraf": "^2.6.2" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "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.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "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.6" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "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.0" + }, + "dependencies": { + "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.0" + } + }, + "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-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" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-stream": { + "version": "3.1.18", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", + "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", + "dev": true, + "requires": { + "glob": "^4.3.1", + "glob2base": "^0.0.12", + "minimatch": "^2.0.1", + "ordered-read-streams": "^0.1.0", + "through2": "^0.6.1", + "unique-stream": "^1.0.0" + }, + "dependencies": { + "glob": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^2.0.1", + "once": "^1.3.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "dev": true, + "requires": { + "brace-expansion": "^1.0.0" + } + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + } + } + }, + "glob-watcher": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", + "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", + "dev": true, + "requires": { + "gaze": "^0.5.1" + } + }, + "glob2base": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", + "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "dev": true, + "requires": { + "find-index": "^0.1.1" + } + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "globule": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", + "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", + "dev": true, + "requires": { + "glob": "~3.1.21", + "lodash": "~1.0.1", + "minimatch": "~0.2.11" + }, + "dependencies": { + "glob": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "dev": true, + "requires": { + "graceful-fs": "~1.2.0", + "inherits": "1", + "minimatch": "~0.2.11" + } + }, + "graceful-fs": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", + "dev": true + }, + "inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", + "dev": true + }, + "lodash": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", + "dev": true + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "dev": true, + "requires": { + "lru-cache": "2", + "sigmund": "~1.0.0" + } + } + } + }, + "glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "dev": true, + "requires": { + "sparkles": "^1.0.0" + } + }, + "gotrue-js": { + "version": "0.9.25", + "resolved": "https://registry.npmjs.org/gotrue-js/-/gotrue-js-0.9.25.tgz", + "integrity": "sha512-W3U3TqItiHfpYODlH8hA7dwnui9pu4iDsDbE7UuqS/ODJ5r3/+nlBe30ir4cemRMy16oyPpuvq23l9EjiCD7kg==", + "requires": { + "micro-api-client": "^3.2.1" + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" + }, + "gray-matter": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.2.tgz", + "integrity": "sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw==", + "requires": { + "js-yaml": "^3.11.0", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + } + }, + "gulp": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", + "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", + "dev": true, + "requires": { + "archy": "^1.0.0", + "chalk": "^1.0.0", + "deprecated": "^0.0.1", + "gulp-util": "^3.0.0", + "interpret": "^1.0.0", + "liftoff": "^2.1.0", + "minimist": "^1.1.0", + "orchestrator": "^0.3.0", + "pretty-hrtime": "^1.0.0", + "semver": "^4.1.0", + "tildify": "^1.0.0", + "v8flags": "^2.0.2", + "vinyl-fs": "^0.3.0" + }, + "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.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", + "dev": true + }, + "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 + } + } + }, + "gulp-clean-css": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/gulp-clean-css/-/gulp-clean-css-3.9.2.tgz", + "integrity": "sha512-NaBtCOmhk2FP1D1pgv5jEvZaKr+6FZHvEgsl1iPGmTpyUOWpECR3Mzdciwo+hEWwtlnkZSueoAf74YCMtar48A==", + "dev": true, + "requires": { + "clean-css": "4.1.9", + "plugin-error": "0.1.2", + "through2": "2.0.3", + "vinyl-sourcemaps-apply": "0.2.1" + }, + "dependencies": { + "clean-css": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.9.tgz", + "integrity": "sha1-Nc7ornaHpJuYA09w3gDE7dOCYwE=", + "dev": true, + "requires": { + "source-map": "0.5.x" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "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.1.5", + "xtend": "~4.0.1" + } + } + } + }, + "gulp-header": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/gulp-header/-/gulp-header-2.0.1.tgz", + "integrity": "sha512-aL3fpWqwMtUbOqEsqN9/sDyyJXLRIsMLNQujTfzAGuo1bphBGRPeyVzwIzIP7iVcgnJs3rRUCgWo68XQ+GLwtA==", + "dev": true, + "requires": { + "concat-with-sourcemaps": "*", + "lodash.template": "^4.4.0", + "through2": "^2.0.0" + }, + "dependencies": { + "lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0" + } + } + } + }, + "gulp-rename": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.4.0.tgz", + "integrity": "sha512-swzbIGb/arEoFK89tPY58vg3Ok1bw+d35PfUNwWqdo7KM4jkmuGA78JiDNqR+JeZFaeeHnRg9N7aihX3YPmsyg==", + "dev": true + }, + "gulp-sass": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-3.2.1.tgz", + "integrity": "sha512-UATbRpSDsyXCnpYSPBUEvdvtSEzksJs7/oQ0CujIpzKqKrO6vlnYwhX2UTsGrf4rNLwqlSSaM271It0uHYvJ3Q==", + "dev": true, + "requires": { + "gulp-util": "^3.0", + "lodash.clonedeep": "^4.3.2", + "node-sass": "^4.8.3", + "through2": "^2.0.0", + "vinyl-sourcemaps-apply": "^0.2.0" + } + }, + "gulp-uglify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.0.tgz", + "integrity": "sha1-DfAzHXKg0wLj434QlIXd3zPG0co=", + "dev": true, + "requires": { + "gulplog": "^1.0.0", + "has-gulplog": "^0.1.0", + "lodash": "^4.13.1", + "make-error-cause": "^1.1.1", + "through2": "^2.0.0", + "uglify-js": "^3.0.5", + "vinyl-sourcemaps-apply": "^0.2.0" + } + }, + "gulp-util": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", + "dev": true, + "requires": { + "array-differ": "^1.0.0", + "array-uniq": "^1.0.2", + "beeper": "^1.0.0", + "chalk": "^1.0.0", + "dateformat": "^2.0.0", + "fancy-log": "^1.1.0", + "gulplog": "^1.0.0", + "has-gulplog": "^0.1.0", + "lodash._reescape": "^3.0.0", + "lodash._reevaluate": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.template": "^3.0.0", + "minimist": "^1.1.0", + "multipipe": "^0.1.2", + "object-assign": "^3.0.0", + "replace-ext": "0.0.1", + "through2": "^2.0.0", + "vinyl": "^0.5.0" + }, + "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.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "dev": true + }, + "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 + } + } + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "dev": true, + "requires": { + "glogg": "^1.0.0" + } + }, + "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.9.1", + "har-schema": "^1.0.5" + }, + "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" + } + } + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "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.0.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 + } + } + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "dev": true, + "requires": { + "sparkles": "^1.0.0" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, + "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=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "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=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hast-util-embedded": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/hast-util-embedded/-/hast-util-embedded-1.0.4.tgz", + "integrity": "sha512-kfCMiRzYPWx9I6KYdW5DCS+WM6xRmAtfrPd2yEG+5cuwquEh0Qh2sV7CX0tbdes/nmm2lBTGLURh0GmRb2txgQ==", + "requires": { + "hast-util-is-element": "^1.0.0" + } + }, + "hast-util-from-parse5": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-1.1.0.tgz", + "integrity": "sha1-NZzDOdyMzx36ykGRWtY/1UYTCs0=", + "requires": { + "camelcase": "^3.0.0", + "has": "^1.0.1", + "hastscript": "^3.0.0", + "property-information": "^3.1.0", + "vfile-location": "^2.0.0" + } + }, + "hast-util-has-property": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-1.0.3.tgz", + "integrity": "sha512-tT3ffSnrBu38RKnjn27n9vi+h/CUEXCQP5O2mriji4NNI2QNnhAqefjOg5ORAyvVfJItn0SC2Sx4CHReZSYh3g==" + }, + "hast-util-is-body-ok-link": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hast-util-is-body-ok-link/-/hast-util-is-body-ok-link-1.0.2.tgz", + "integrity": "sha512-eSxO9rgtb7dfKxNa8NAFS3VEYWHXnJWVsoH/Z4jSsq1J2i4H1GkdJ43kXv++xuambrtI5XQwcAx6jeZVMjoBMQ==", + "requires": { + "hast-util-has-property": "^1.0.0", + "hast-util-is-element": "^1.0.0" + } + }, + "hast-util-is-element": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.0.3.tgz", + "integrity": "sha512-C62CVn7jbjp89yOhhy7vrkSaB7Vk906Gtcw/Ihd+Iufnq+2pwOZjdPmpzpKLWJXPJBMDX3wXg4FqmdOayPcewA==" + }, + "hast-util-parse-selector": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.3.tgz", + "integrity": "sha512-nxbeqjQNxsvo/uYYAw9kij6td05YVUlf1qti09rVfbWSLT5H6wo3c+USIwX6nzXWk5kFZzXnEqO82856r0aM2Q==" + }, + "hast-util-to-html": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-3.1.0.tgz", + "integrity": "sha1-iCyZhJ5AEw6ZHAQuRW1FPZXDbP8=", + "requires": { + "ccount": "^1.0.0", + "comma-separated-tokens": "^1.0.1", + "hast-util-is-element": "^1.0.0", + "hast-util-whitespace": "^1.0.0", + "html-void-elements": "^1.0.0", + "kebab-case": "^1.0.0", + "property-information": "^3.1.0", + "space-separated-tokens": "^1.0.0", + "stringify-entities": "^1.0.1", + "unist-util-is": "^2.0.0", + "xtend": "^4.0.1" + }, + "dependencies": { + "unist-util-is": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-2.1.3.tgz", + "integrity": "sha512-4WbQX2iwfr/+PfM4U3zd2VNXY+dWtZsN1fLnWEi2QQXA4qyDYAZcDMfXUX0Cu6XZUHHAO9q4nyxxLT4Awk1qUA==" + } + } + }, + "hast-util-to-mdast": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hast-util-to-mdast/-/hast-util-to-mdast-1.2.0.tgz", + "integrity": "sha512-kYrD+weqqtBwqLHkEMh12YHXPzG1iuRm9NH3qVs7hwGTkE5QrhtdMahVN96JnRnb/MmdvfKCzK42ajgRKjQzNg==", + "requires": { + "hast-util-has-property": "^1.0.0", + "hast-util-is-element": "^1.0.0", + "hast-util-to-string": "^1.0.0", + "rehype-minify-whitespace": "^2.0.0", + "unist-util-is": "^2.1.0", + "unist-util-visit": "^1.1.1", + "xtend": "^4.0.1" + }, + "dependencies": { + "unist-util-is": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-2.1.3.tgz", + "integrity": "sha512-4WbQX2iwfr/+PfM4U3zd2VNXY+dWtZsN1fLnWEi2QQXA4qyDYAZcDMfXUX0Cu6XZUHHAO9q4nyxxLT4Awk1qUA==" + } + } + }, + "hast-util-to-string": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-1.0.2.tgz", + "integrity": "sha512-fQNr0n5KJmZW1TmBfXbc4DO0ucZmseUw3T6K4PDsUUTMtTGGLZMUYRB8mOKgPgtw7rtICdxxpRQZmWwo8KxlOA==" + }, + "hast-util-whitespace": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-1.0.3.tgz", + "integrity": "sha512-AlkYiLTTwPOyxZ8axq2/bCwRUPjIPBfrHkXuCR92B38b3lSdU22R5F/Z4DL6a2kxWpekWq1w6Nj48tWat6GeRA==" + }, + "hastscript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-3.1.0.tgz", + "integrity": "sha512-8V34dMSDT1Ik+ZSgTzCLdyp89MrWxcxctXPxhmb72GQj1Xkw1aHPM9UaHCWewvH2Q+PVkYUm4ZJVw4T0dgEGNA==", + "requires": { + "camelcase": "^3.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^3.0.0", + "space-separated-tokens": "^1.0.0" + } + }, + "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.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "requires": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-wbg3bpgA/ZqWrZuMOeJi8+SKMhr7X9TesL/rXMjTzh0p0JUBo3II8DHboYbuIXWRlttrUFxwcu/5kygrCw8fJw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", + "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", + "dev": true + }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + } + }, + "html-void-elements": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.4.tgz", + "integrity": "sha512-yMk3naGPLrfvUV9TdDbuYXngh/TpHbA6TrOw3HL9kS8yhwx7i309BReNg7CbAJXGE+UMJ6je5OqJ7lC63o6YuQ==" + }, + "html-webpack-exclude-assets-plugin": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/html-webpack-exclude-assets-plugin/-/html-webpack-exclude-assets-plugin-0.0.7.tgz", + "integrity": "sha512-gaYKMGBPDts3Fb1WXyDEEcS/0TSRg2IDl3EsbQL2AkKWTqdjSKwfQ8Iz0RhPiWErJfqhq5/wkhoYyjQoG55pug==" + }, + "html-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", + "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", + "requires": { + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "toposort": "^1.0.0", + "util.promisify": "1.0.0" + }, + "dependencies": { + "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==" + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + } + } + }, + "html-webpack-tags-plugin": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/html-webpack-tags-plugin/-/html-webpack-tags-plugin-2.0.17.tgz", + "integrity": "sha512-TKT8hnumMni6ztKfWZpP+UBeA7+aUn+qQQ4c9wT/p1IGTO/QWoIc19E+ZrxCcToDMjBO1NMYWkUbW4c4NtlGvg==", + "requires": { + "glob": "^7.1.4", + "minimatch": "^3.0.4", + "slash": "^3.0.0" + }, + "dependencies": { + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + } + } + }, + "html-whitespace-sensitive-tag-names": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/html-whitespace-sensitive-tag-names/-/html-whitespace-sensitive-tag-names-1.0.1.tgz", + "integrity": "sha512-TMdAWVry7Ld0k2sLqpHkWsFAHmU+VZZq/nR4bfwfxThD8q3ibhrpRTywyQkEiunYiZXmJ6gRcJiLbZm+jbQPgQ==" + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "http-errors": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz", + "integrity": "sha1-eIwNLB3iyBuebowBhDtrl+uSB1A=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "setprototypeof": "1.0.2", + "statuses": ">= 1.3.1 < 2" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "http-proxy": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.15.2.tgz", + "integrity": "sha1-ZC/cr/5S00SNK9o7AHnpQJBk2jE=", + "dev": true, + "requires": { + "eventemitter3": "1.x.x", + "requires-port": "1.x.x" + } + }, + "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.2.2", + "sshpk": "^1.7.0" + } + }, + "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=" + }, + "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.0.0", + "strip-url-auth": "^1.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + }, + "immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=" + }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "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": "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.0" + } + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "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 + }, + "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.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=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-alphabetical": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.3.tgz", + "integrity": "sha512-eEMa6MKpHFzw38eKm56iNNi6GJ7lf6aLLio7Kr23sJPAECscgRtZvOBYybejWDQ2bM949Y++61PY+udzj5QMLA==" + }, + "is-alphanumeric": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz", + "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=" + }, + "is-alphanumerical": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.3.tgz", + "integrity": "sha512-A1IGAPO5AW9vSh7omxIlOGwIqEvpW/TA+DksVOPM5ODuxKlZS09+TEM1E3275lJqO2oJ38vDpeAL3DCIiHE6eA==", + "requires": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "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=", + "requires": { + "binary-extensions": "^1.0.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==" + }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" + }, + "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=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "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=" + }, + "is-decimal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.3.tgz", + "integrity": "sha512-bvLSwoDg2q6Gf+E2LEPiklHZxxiSi3XAh4Mav65mKqTfCO1HM3uBs24TjEH8iJX3bbDdLXKJXBTmGzuTUuAEjQ==" + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.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==" + } + } + }, + "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-empty": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-empty/-/is-empty-1.2.0.tgz", + "integrity": "sha1-3pu1snhzigWgsJpX4ftNSjQan2s=" + }, + "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=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "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.0" + } + }, + "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=" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-hexadecimal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.3.tgz", + "integrity": "sha512-zxQ9//Q3D/34poZf8fiy3m3XVpbQc7ren15iKqrTtLPwkPD/t3Scy9Imp63FujULGxuK0ZlCwoo5xNpktFgbOA==" + }, + "is-hotkey": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-hotkey/-/is-hotkey-0.1.6.tgz", + "integrity": "sha512-1+hMr0GLPM0M49UDRt9RgE8i+SM29UY4AGRP6sGz6fThOVXqSrEvTMakolhHMcVizJnPNAoMpEmE+Oi1k2NrZQ==" + }, + "is-in-browser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", + "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-number-like": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", + "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", + "dev": true, + "requires": { + "lodash.isfinite": "^3.3.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=" + }, + "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==", + "requires": { + "isobject": "^3.0.1" + } + }, + "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-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "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-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "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-whitespace-character": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.3.tgz", + "integrity": "sha512-SNPgMLz9JzPccD3nPctcj8sZlX9DAMJSKH8bP7Z6bohCwuNgX8xbWr1eTAYXX9Vpi/aSn8Y1akL9WgM3t43YNQ==" + }, + "is-window": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-window/-/is-window-1.0.2.tgz", + "integrity": "sha1-LIlspT25feRdPDMTOmXYyfVjSA0=" + }, + "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==" + }, + "is-word-character": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.3.tgz", + "integrity": "sha512-0wfcrFgOOOBdgRNT9H33xe6Zi6yhX/uoc4U8NBZGeQQB0ctU1dnlNTyL9JM2646bHDTpsDm1Brb3VPoCIMrd/A==" + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "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": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isomorphic-base64": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/isomorphic-base64/-/isomorphic-base64-1.0.2.tgz", + "integrity": "sha1-9Caq6CVpuopOxcpzrSGkSrHueAM=" + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "jquery": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", + "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==" + }, + "jquery.easing": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jquery.easing/-/jquery.easing-1.4.1.tgz", + "integrity": "sha1-R5gsWDa9dY/UhJSSPEoQHvbpPjs=" + }, + "js-base64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", + "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==" + }, + "js-sha256": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "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==" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "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==" + }, + "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-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=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "jwt-decode": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-2.2.0.tgz", + "integrity": "sha1-fYa9VmefWM5qhHBKZX3TkruoGnk=" + }, + "kebab-case": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/kebab-case/-/kebab-case-1.0.0.tgz", + "integrity": "sha1-P55JkK3K0MaGwOcB92RYaPdfkes=" + }, + "keycode": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz", + "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, + "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" + } + }, + "lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", + "requires": { + "immediate": "~3.0.5" + } + }, + "liftoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "dev": true, + "requires": { + "extend": "^3.0.0", + "findup-sync": "^2.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + } + }, + "limiter": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.4.tgz", + "integrity": "sha512-XCpr5bElgDI65vVgstP8TWjv6/QKWm9GU5UG0Pr5sLQ3QLo8NVKsioe+Jed5/3vFOe3IQuqE7DKwTvKQkjTHvg==", + "dev": true + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + }, + "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.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "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.2.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "localforage": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.7.3.tgz", + "integrity": "sha512-1TulyYfc4udS7ECSBT2vwJksWbkwwTX8BzeUIiq8Y07Riy7bDAAnxDaPU/tWyOVmQAcWJIEIFP9lPfBGqVoPgQ==", + "requires": { + "lie": "3.1.1" + } + }, + "localtunnel": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-1.8.3.tgz", + "integrity": "sha1-3MWSL9hWUQN9S94k/ZMkjQsk6wU=", + "dev": true, + "requires": { + "debug": "2.6.8", + "openurl": "1.1.1", + "request": "2.81.0", + "yargs": "3.29.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yargs": { + "version": "3.29.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.29.0.tgz", + "integrity": "sha1-GquWYOrnnYuPZ1vK7qtu40ws9pw=", + "dev": true, + "requires": { + "camelcase": "^1.2.1", + "cliui": "^3.0.3", + "decamelize": "^1.0.0", + "os-locale": "^1.4.0", + "window-size": "^0.1.2", + "y18n": "^3.2.0" + } + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", + "dev": true + }, + "lodash._basetostring": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", + "dev": true + }, + "lodash._basevalues": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", + "dev": true + }, + "lodash._reescape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", + "dev": true + }, + "lodash._reevaluate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", + "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._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", + "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.escape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "dev": true, + "requires": { + "lodash._root": "^3.0.0" + } + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "lodash.isfinite": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", + "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=", + "dev": true + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true, + "requires": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", + "dev": true + }, + "lodash.template": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", + "dev": true, + "requires": { + "lodash._basecopy": "^3.0.0", + "lodash._basetostring": "^3.0.0", + "lodash._basevalues": "^3.0.0", + "lodash._isiterateecall": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0", + "lodash.keys": "^3.0.0", + "lodash.restparam": "^3.0.0", + "lodash.templatesettings": "^3.0.0" + } + }, + "lodash.templatesettings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0" + } + }, + "longest-streak": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.3.tgz", + "integrity": "sha512-9lz5IVdpwsKLMzQi0MQ+oD9EA0mIGcWYP7jXMTZVXP8D42PwuAk+M/HBFYQoxt1G5OR8m7aSIgb1UymfWGBWEw==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "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.0" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "make-error": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", + "dev": true + }, + "make-error-cause": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", + "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", + "dev": true, + "requires": { + "make-error": "^1.2.0" + } + }, + "make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "mamacro": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", + "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==" + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "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=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "markdown-escapes": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.3.tgz", + "integrity": "sha512-XUi5HJhhV5R74k8/0H2oCbCiYf/u4cO/rX8tnGkRvrqhsr5BRNU6Mg0yt/8UIx1iIS8220BNJsDb7XnILhLepw==" + }, + "markdown-table": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", + "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==" + }, + "math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", + "dev": true + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdast-util-compact": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.4.tgz", + "integrity": "sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==", + "requires": { + "unist-util-visit": "^1.1.0" + } + }, + "mdast-util-definitions": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-1.2.5.tgz", + "integrity": "sha512-CJXEdoLfiISCDc2JB6QLb79pYfI6+GcIH+W2ox9nMc7od0Pz+bovcHsiq29xAQY6ayqe/9CsK2VzkSJdg1pFYA==", + "requires": { + "unist-util-visit": "^1.0.0" + } + }, + "mdast-util-to-hast": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-2.5.0.tgz", + "integrity": "sha1-8IeETSVcdUDzaQbaMLoQbA7l7i8=", + "requires": { + "collapse-white-space": "^1.0.0", + "detab": "^2.0.0", + "mdast-util-definitions": "^1.2.0", + "mdurl": "^1.0.1", + "trim": "0.0.1", + "trim-lines": "^1.0.0", + "unist-builder": "^1.0.1", + "unist-util-generated": "^1.1.0", + "unist-util-position": "^3.0.0", + "unist-util-visit": "^1.1.0", + "xtend": "^4.0.1" + } + }, + "mdast-util-to-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.0.7.tgz", + "integrity": "sha512-P+gdtssCoHOX+eJUrrC30Sixqao86ZPlVjR5NEAoy0U79Pfxb1Y0Gntei0+GrnQD4T04X9xA8tcugp90cSmNow==" + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" + }, + "memoize-one": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz", + "integrity": "sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==" + }, + "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=", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "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.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "micro-api-client": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/micro-api-client/-/micro-api-client-3.3.0.tgz", + "integrity": "sha512-y0y6CUB9RLVsy3kfgayU28746QrNMpSm9O/AYGNsBgOkJr/X/Jk0VLGoO8Ude7Bpa8adywzF+MzXNZRFRsNPhg==" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "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.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", + "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", + "dev": true + }, + "mime-db": { + "version": "1.42.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz", + "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.25", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz", + "integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==", + "dev": true, + "requires": { + "mime-db": "1.42.0" + } + }, + "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.0" + } + }, + "mini-css-extract-plugin": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz", + "integrity": "sha512-MNpRGbNA52q6U92i0qbVpQNsgk7LExy41MdAlG84FeytfDOtRIf/mCHdEgG8rpTKOaNKiqUnZdlptF469hxqOw==", + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + } + }, + "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==" + }, + "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=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "moment": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multipipe": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", + "dev": true, + "requires": { + "duplexer2": "0.0.2" + } + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "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-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natives": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz", + "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==", + "dev": true + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==" + }, + "netlify-cms-app": { + "version": "2.9.7", + "resolved": "https://registry.npmjs.org/netlify-cms-app/-/netlify-cms-app-2.9.7.tgz", + "integrity": "sha512-0+SbiekIvXtK+W+1Tj4R5OAhSvQ1j4R0ZSSIqJnKMss1h8u4g86otuBaK3v78RgnSqSQy5MWEGe3/m2n3zLvrA==", + "requires": { + "@emotion/core": "^10.0.9", + "@emotion/styled": "^10.0.9", + "immutable": "^3.7.6", + "lodash": "^4.17.11", + "moment": "^2.24.0", + "netlify-cms-backend-bitbucket": "^2.4.1", + "netlify-cms-backend-git-gateway": "^2.4.5", + "netlify-cms-backend-github": "^2.4.2", + "netlify-cms-backend-gitlab": "^2.3.2", + "netlify-cms-backend-test": "^2.2.3", + "netlify-cms-core": "^2.12.2", + "netlify-cms-editor-component-image": "^2.4.2", + "netlify-cms-lib-auth": "^2.2.4", + "netlify-cms-lib-util": "^2.3.3", + "netlify-cms-ui-default": "^2.6.4", + "netlify-cms-widget-boolean": "^2.2.3", + "netlify-cms-widget-date": "^2.3.3", + "netlify-cms-widget-datetime": "^2.2.3", + "netlify-cms-widget-file": "^2.4.3", + "netlify-cms-widget-image": "^2.3.3", + "netlify-cms-widget-list": "^2.3.4", + "netlify-cms-widget-map": "^1.3.3", + "netlify-cms-widget-markdown": "^2.5.1", + "netlify-cms-widget-number": "^2.3.4", + "netlify-cms-widget-object": "^2.2.3", + "netlify-cms-widget-relation": "^2.4.1", + "netlify-cms-widget-select": "^2.4.3", + "netlify-cms-widget-string": "^2.2.3", + "netlify-cms-widget-text": "^2.2.3", + "prop-types": "^15.7.2", + "react-immutable-proptypes": "^2.1.0", + "uuid": "^3.3.2" + } + }, + "netlify-cms-backend-bitbucket": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/netlify-cms-backend-bitbucket/-/netlify-cms-backend-bitbucket-2.5.0.tgz", + "integrity": "sha512-F2oV3iESq72gxkrvmUSIjqAEXpAkxLlArNI5ggKUSFVuZ3Ej6Ml+UrEl7BetmJXooXQW+LFrOKGhPNfoP2YoHA==", + "requires": { + "js-base64": "^2.5.1", + "semaphore": "^1.1.0" + } + }, + "netlify-cms-backend-git-gateway": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/netlify-cms-backend-git-gateway/-/netlify-cms-backend-git-gateway-2.5.1.tgz", + "integrity": "sha512-qZUaRgXzCNzU+yQMh4YgWHY8C1n8d7Tx9eg78CfEkZYK+VCeSLPitNnZT/cHeeh4N1THbf56tOY4A4jkpi+q9A==", + "requires": { + "gotrue-js": "^0.9.24", + "ini": "^1.3.5", + "jwt-decode": "^2.2.0", + "minimatch": "^3.0.4" + } + }, + "netlify-cms-backend-github": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/netlify-cms-backend-github/-/netlify-cms-backend-github-2.4.2.tgz", + "integrity": "sha512-Pm0LMkbivcUajJpK0MMiCdmhzaxDLl1s1xZi9WDig02uYpubclamLPd20EU3/9yHNUBX5O0woJ68rOR6GowIpw==", + "requires": { + "common-tags": "^1.8.0", + "js-base64": "^2.5.1", + "semaphore": "^1.1.0" + } + }, + "netlify-cms-backend-gitlab": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/netlify-cms-backend-gitlab/-/netlify-cms-backend-gitlab-2.3.2.tgz", + "integrity": "sha512-oGGMOqgczk1ya1UhVda1+5WWt57FPJBk5LUiLQtH7Mcl2DNNUNKWqDg/qJsbUdnsbpVymZI9ocGAxXfxQiVxbQ==", + "requires": { + "js-base64": "^2.5.1", + "semaphore": "^1.1.0" + } + }, + "netlify-cms-backend-test": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/netlify-cms-backend-test/-/netlify-cms-backend-test-2.5.0.tgz", + "integrity": "sha512-Heb4FjXW7Fw06i5VqdpQgGBRcgJpwVRJ3jkPdGG2crqbdfKPrWrr6n//xCExCVSizlLo/6v8KGZyjdIctEh7FA==" + }, + "netlify-cms-core": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/netlify-cms-core/-/netlify-cms-core-2.12.2.tgz", + "integrity": "sha512-C9V0RXUUqPY1x3hzBi+D6mAQxV/JY5A1A7MejRTbXfvS5E+l34ARymo68+pfGcFppWPTge1TyhBngQQKGoRHsw==", + "requires": { + "ajv": "^6.10.0", + "ajv-errors": "^1.0.1", + "copy-text-to-clipboard": "^2.0.0", + "diacritics": "^1.3.0", + "fuzzy": "^0.1.1", + "gotrue-js": "^0.9.24", + "gray-matter": "^4.0.2", + "history": "^4.7.2", + "js-base64": "^2.5.1", + "js-yaml": "^3.12.2", + "jwt-decode": "^2.1.0", + "node-polyglot": "^2.3.0", + "prop-types": "^15.7.2", + "react": "^16.8.4", + "react-dnd": "^7.3.2", + "react-dnd-html5-backend": "^7.2.0", + "react-dom": "^16.8.4", + "react-frame-component": "^4.1.0", + "react-hot-loader": "^4.8.0", + "react-immutable-proptypes": "^2.1.0", + "react-is": "16.8.5", + "react-modal": "^3.8.1", + "react-polyglot": "^0.4.0", + "react-redux": "^5.1.1", + "react-router-dom": "^4.2.2", + "react-router-redux": "^5.0.0-alpha.8", + "react-scroll-sync": "^0.6.0", + "react-sortable-hoc": "^1.0.0", + "react-split-pane": "^0.1.85", + "react-topbar-progress-indicator": "^2.0.0", + "react-waypoint": "^8.1.0", + "redux": "^4.0.1", + "redux-notifications": "^4.0.1", + "redux-optimist": "^1.0.0", + "redux-thunk": "^2.3.0", + "sanitize-filename": "^1.6.1", + "semaphore": "^1.0.5", + "toml-j0.4": "^1.1.1", + "tomlify-j0.4": "^3.0.0-alpha.0", + "url": "^0.11.0", + "what-input": "^5.1.4" + } + }, + "netlify-cms-editor-component-image": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/netlify-cms-editor-component-image/-/netlify-cms-editor-component-image-2.4.3.tgz", + "integrity": "sha512-E7z9+LGBMGov7dU9CJKuJ72rcGWCXnE1jKWcfewlHKtGTG9YqoCVtQFWxXv35Wjt79ZA9UqX7XpQnzgS7uA+CQ==" + }, + "netlify-cms-lib-auth": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/netlify-cms-lib-auth/-/netlify-cms-lib-auth-2.2.5.tgz", + "integrity": "sha512-9HFHl9aw1vnmkXwwNt2BX8AffHnq0K6ee/iB3GsX3icVUQdlbi+BFwkpf5Gdhr9X1j1tP9sO5foWd2GMkbKRcA==" + }, + "netlify-cms-lib-util": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/netlify-cms-lib-util/-/netlify-cms-lib-util-2.3.3.tgz", + "integrity": "sha512-Rntw2t+urZmRLvEnPMLYXHVfu12+dtc6qbH31B5RDTWXmlGmNCJvv5a+/fEzjM6eEeiVIYYZcTzZT0VgHY9itQ==", + "requires": { + "js-sha256": "^0.9.0", + "localforage": "^1.7.3" + } + }, + "netlify-cms-ui-default": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/netlify-cms-ui-default/-/netlify-cms-ui-default-2.6.4.tgz", + "integrity": "sha512-/en0nbQ/vywq9Y+eW9yxjoawihy+tcm4rpyE/zuBhLsKz/wwVzkAXJnjcs+oqlc78TYG7MEjALK/wm+WOHbkmQ==", + "requires": { + "react-aria-menubutton": "^6.0.0", + "react-toggled": "^1.1.2", + "react-transition-group": "^2.6.0" + }, + "dependencies": { + "react-transition-group": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", + "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "requires": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + } + } + } + }, + "netlify-cms-widget-boolean": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/netlify-cms-widget-boolean/-/netlify-cms-widget-boolean-2.2.3.tgz", + "integrity": "sha512-q9YkeciUDF11TCzyebd/ipyTXe9lzsbO+zj0PRfyEMHpKsN/w2z9tMui+Fb0NoytGoF+EYw+nkKdnIL2spL3QA==" + }, + "netlify-cms-widget-date": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/netlify-cms-widget-date/-/netlify-cms-widget-date-2.3.5.tgz", + "integrity": "sha512-VjpWu8WvVyhfoC+ny+JaiBq9l6WoGSU/ZVtGKKHDKRXRfi/dkdMdT2k1jIEkn4f2N7erljN3rc6+cuaKWTEjKQ==", + "requires": { + "react-datetime": "^2.16.3" + } + }, + "netlify-cms-widget-datetime": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/netlify-cms-widget-datetime/-/netlify-cms-widget-datetime-2.2.5.tgz", + "integrity": "sha512-zoCuqkcelNvBwKlv5tJll67rKXFE/tq1W6SlT/f0LbRR78X/CY7jSTuTKbawHYi4XAg4Hhc4NmgKX2C8AWm39g==" + }, + "netlify-cms-widget-file": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/netlify-cms-widget-file/-/netlify-cms-widget-file-2.4.3.tgz", + "integrity": "sha512-Nw5I67qAlkWv/YzXzSgudCuCPmVjKZbJ7dIgt/xTxF2U/4/QhFFcb75nbRCUqzrUpSjDMQXkxhmJFwjcSEKDqg==", + "requires": { + "common-tags": "^1.8.0" + } + }, + "netlify-cms-widget-image": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/netlify-cms-widget-image/-/netlify-cms-widget-image-2.3.3.tgz", + "integrity": "sha512-ERsZmSeYplZRF0SZjRHAePBf4f4+EhH8lZ7eE+0kEFF7jPhoitzPU0My17Vn3KQXNWJLutIZN0u4u/I00aU7dw==" + }, + "netlify-cms-widget-list": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/netlify-cms-widget-list/-/netlify-cms-widget-list-2.3.4.tgz", + "integrity": "sha512-Vw3B3QB+9jcTfBxsYLuqEE7WLZSucWBXeDqGX3bhieZ49nX98Vre1jiLNbrz/FAaa1s4klixpyXqA72vU+wyAQ==", + "requires": { + "react-sortable-hoc": "^1.0.0" + } + }, + "netlify-cms-widget-map": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/netlify-cms-widget-map/-/netlify-cms-widget-map-1.3.3.tgz", + "integrity": "sha512-RiuAWGIWdWaFXZLdRwkuhAatbYhm9dM1vz5PKX8rWHJJjUefF4gqQGTj1m6u1FpexDqnB8pu7trI2cL38HEp9Q==", + "requires": { + "ol": "^5.3.1" + } + }, + "netlify-cms-widget-markdown": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/netlify-cms-widget-markdown/-/netlify-cms-widget-markdown-2.6.0.tgz", + "integrity": "sha512-n2vPusTu7uyVGdmqckeOJCb47LLx905y64treyj8T+TQ5rBF+IGhEoTLuc+THhEG6Rq+CWyZ1F7VS0Auqm8A/w==", + "requires": { + "is-hotkey": "^0.1.4", + "mdast-util-definitions": "^1.2.3", + "mdast-util-to-string": "^1.0.5", + "rehype-parse": "^3.1.0", + "rehype-remark": "^2.0.0", + "rehype-stringify": "^3.0.0", + "remark-parse": "^3.0.1", + "remark-rehype": "^2.0.0", + "remark-stringify": "^3.0.1", + "slate": "^0.34.0", + "slate-edit-list": "^0.11.3", + "slate-edit-table": "^0.15.1", + "slate-plain-serializer": "^0.5.15", + "slate-react": "0.12.9", + "slate-soft-break": "^0.6.1", + "unified": "^6.1.4", + "unist-builder": "^1.0.2", + "unist-util-visit-parents": "^1.1.1" + } + }, + "netlify-cms-widget-number": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/netlify-cms-widget-number/-/netlify-cms-widget-number-2.3.5.tgz", + "integrity": "sha512-s1yMrM8nC3AryC4Qgn+EklOTrA/AvHix7Pqhc5qXe3NIwxj7GPsJ+DqbjCZWyTq/LHjhC4q/IyNh5KIXqfjEnA==" + }, + "netlify-cms-widget-object": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/netlify-cms-widget-object/-/netlify-cms-widget-object-2.2.3.tgz", + "integrity": "sha512-e75irMQc6bRDgKAzYYtrJiNkNoI35DHULwgbUrn9gSB0FtCO1Ljn4dg9AJIKXMnl5KxshqsKdYz+L2fit1nYXw==" + }, + "netlify-cms-widget-relation": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/netlify-cms-widget-relation/-/netlify-cms-widget-relation-2.5.0.tgz", + "integrity": "sha512-jZZsO4+PUYgiz4VWRVH/cwRnqgdSXWOvFSRLgpDfped4B8jsCEDHp0M07hOiFr2K1p6HOmMnk65TbziA5kG8FQ==", + "requires": { + "react-select": "^2.4.2" + } + }, + "netlify-cms-widget-select": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/netlify-cms-widget-select/-/netlify-cms-widget-select-2.4.3.tgz", + "integrity": "sha512-wcJJRwPk4lrd/5RSP0n2hg3FNQZMcqu8AmTe7IsYB909m/2uR/dPOHwc7ZN+vwSEyncuFjlu/erNkP1pvS5GgA==", + "requires": { + "react-select": "^2.4.2" + } + }, + "netlify-cms-widget-string": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/netlify-cms-widget-string/-/netlify-cms-widget-string-2.2.3.tgz", + "integrity": "sha512-d5Cc84MWW5DjRfUdHKDNiE/ciji7Q/0Q5mKOQ9o2n7snBjIfabZ9kdYgostBgI/DgW55m/YRwg1MGMlCZ/hf7Q==" + }, + "netlify-cms-widget-text": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/netlify-cms-widget-text/-/netlify-cms-widget-text-2.2.3.tgz", + "integrity": "sha512-uMMq5/2n3ISSnm3+qOEq5QFAId7MooTIOl6v/jVZZTPPxFYk6ko9DjGdhjGf/WwACoGD/XzMruZAXwZ3pv3LAQ==", + "requires": { + "react-textarea-autosize": "^7.1.0" + } + }, + "netlify-identity-widget": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/netlify-identity-widget/-/netlify-identity-widget-1.5.6.tgz", + "integrity": "sha512-DvWVUGuswOd+IwexKjzIpYcqYMrghmnkmflNqCQc4lG4KX55zE3fFjfXziCTr6LibP7hvZp37s067j5N3kRuyw==" + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "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=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "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" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "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==", + "dev": true + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "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 + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + } + } + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + } + } + }, + "node-polyglot": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/node-polyglot/-/node-polyglot-2.4.0.tgz", + "integrity": "sha512-KRzKwzMWm3wSAjOSop7/WwNyzaMkCe9ddkwXTQsIZEJmvEnqy/bCqLpAVw6xBszKfy4iLdYVA0d83L+cIkYPbA==", + "requires": { + "for-each": "^0.3.3", + "has": "^1.0.3", + "string.prototype.trim": "^1.1.2", + "warning": "^4.0.3" + } + }, + "node-sass": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.0.tgz", + "integrity": "sha512-W1XBrvoJ1dy7VsvTAS5q1V45lREbTlZQqFbiHb3R3OTTCma0XBtuG6xZ6Z4506nR4lmHPTqVRwxT6KgtWC97CA==", + "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.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 + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "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=", + "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.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "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.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.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "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==", + "dev": true + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "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 + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + } + } + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "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.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "requires": { + "boolbase": "~1.0.0" + } + }, + "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 + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "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=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object-path": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz", + "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU=", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "dependencies": { + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + } + } + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } + }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "dependencies": { + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + } + } + }, + "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.4", + "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=", + "requires": { + "isobject": "^3.0.1" + } + }, + "ol": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/ol/-/ol-5.3.3.tgz", + "integrity": "sha512-7eU4x8YMduNcED1D5wI+AMWDRe7/1HmGfsbV+kFFROI9RNABU/6n4osj6Q3trZbxxKnK2DSRIjIRGwRHT/Z+Ww==", + "requires": { + "pbf": "3.1.0", + "pixelworks": "1.1.0", + "rbush": "2.0.2" + } + }, + "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" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "openurl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", + "integrity": "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c=", + "dev": true + }, + "opn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", + "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + } + }, + "orchestrator": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", + "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", + "dev": true, + "requires": { + "end-of-stream": "~0.1.5", + "sequencify": "~0.0.7", + "stream-consume": "~0.1.0" + }, + "dependencies": { + "end-of-stream": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", + "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", + "dev": true, + "requires": { + "once": "~1.3.0" + } + }, + "once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "dev": true, + "requires": { + "wrappy": "1" + } + } + } + }, + "ordered-read-streams": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", + "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=", + "dev": true + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "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": "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" + } + }, + "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.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-limit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "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==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "pako": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", + "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==" + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "requires": { + "no-case": "^2.2.0" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-asn1": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", + "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-entities": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", + "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==", + "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "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.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "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-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" + } + } + } + }, + "parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + } + }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "parse5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-2.2.3.tgz", + "integrity": "sha1-DE/EHBAAxea5PUiwP4CDg3g06fY=" + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "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=" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "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=" + } + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "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=" + } + } + }, + "pbf": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.1.0.tgz", + "integrity": "sha512-/hYJmIsTmh7fMkHAWWXJ5b8IKLWdjdlAFb3IHkRBn1XUhIYBChVGfVwmHEAV3UfXTxsP/AKfYTXTS/dCPxJd5w==", + "requires": { + "ieee754": "^1.1.6", + "resolve-protobuf-schema": "^2.0.0" + } + }, + "pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "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.0" + } + }, + "pixelworks": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pixelworks/-/pixelworks-1.1.0.tgz", + "integrity": "sha1-Hwla1I3Ki/ihyCWOAJIDGkTyLKU=" + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "requires": { + "find-up": "^3.0.0" + } + }, + "plugin-error": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", + "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", + "dev": true, + "requires": { + "ansi-cyan": "^0.1.1", + "ansi-red": "^0.1.1", + "arr-diff": "^1.0.1", + "arr-union": "^2.0.1", + "extend-shallow": "^1.1.2" + }, + "dependencies": { + "arr-diff": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", + "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1", + "array-slice": "^0.2.3" + } + }, + "arr-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", + "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", + "dev": true + }, + "array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", + "dev": true + }, + "extend-shallow": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", + "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", + "dev": true, + "requires": { + "kind-of": "^1.1.0" + } + }, + "kind-of": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", + "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", + "dev": true + } + } + }, + "portscanner": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz", + "integrity": "sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y=", + "dev": true, + "requires": { + "async": "1.5.2", + "is-number-like": "^1.0.3" + } + }, + "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=" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "pretty-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "requires": { + "renderkid": "^2.0.1", + "utila": "~0.4" + } + }, + "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 + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "~2.0.3" + } + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "property-information": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-3.2.0.tgz", + "integrity": "sha1-/RSDyPusYYCPX+NZ52k6H0ilgzE=" + }, + "protocol-buffers-schema": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.3.2.tgz", + "integrity": "sha512-Xdayp8sB/mU+sUV4G7ws8xtYMGdQnxbeIfLjyO9TZZRJdztBGhlmbI5x1qcY4TG5hBkIKGnc28i7nXxaugu88w==" + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.6.0.tgz", + "integrity": "sha512-SYKKmVel98NCOYXpkwUqZqh0ahZeeKfmisiLIcEZdsb+WbLv02g/dI5BUmZnIyOe7RzZtLax81nnb2HbvC2tzA==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "qs": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.1.tgz", + "integrity": "sha1-zgPF/wk1vB2daanxTL0Y5WjWdiU=", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, + "quickselect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-1.1.1.tgz", + "integrity": "sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ==" + }, + "raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "requires": { + "performance-now": "^2.1.0" + } + }, + "randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "dev": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "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 + } + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "rbush": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-2.0.2.tgz", + "integrity": "sha512-XBOuALcTm+O/H8G90b6pzu6nX6v2zCKiFG4BJho8a+bY6AER6t8uQUZdi5bomQc0AprCWhEGa7ncAbbRap0bRA==", + "requires": { + "quickselect": "^1.0.1" + } + }, + "react": { + "version": "16.12.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.12.0.tgz", + "integrity": "sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-aria-menubutton": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/react-aria-menubutton/-/react-aria-menubutton-6.2.0.tgz", + "integrity": "sha512-rTXErH78MXbbPRz9E+TJvWp55QJR2jGRQECIjEcHYFEnAIhrT7dJrVV7GW/CnDfZ8/LQabXlo3A2JWxTPcM4cw==", + "requires": { + "focus-group": "^0.3.1", + "prop-types": "^15.6.0", + "teeny-tap": "^0.2.0" + } + }, + "react-datetime": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/react-datetime/-/react-datetime-2.16.3.tgz", + "integrity": "sha512-amWfb5iGEiyqjLmqCLlPpu2oN415jK8wX1qoTq7qn6EYiU7qQgbNHglww014PT4O/3G5eo/3kbJu/M/IxxTyGw==", + "requires": { + "create-react-class": "^15.5.2", + "object-assign": "^3.0.0", + "prop-types": "^15.5.7", + "react-onclickoutside": "^6.5.0" + }, + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=" + } + } + }, + "react-dnd": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-7.7.0.tgz", + "integrity": "sha512-anpJDKMgdXE6kXvtBFmIAe1fuaexpVy7meUyNjiTfCnjQ1mRvnttGTVvcW9fMKijsUQYadiyvzd3BRxteFuVXg==", + "requires": { + "@types/hoist-non-react-statics": "^3.3.1", + "dnd-core": "^7.7.0", + "hoist-non-react-statics": "^3.3.0", + "invariant": "^2.1.0", + "shallowequal": "^1.1.0" + } + }, + "react-dnd-html5-backend": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-7.7.0.tgz", + "integrity": "sha512-JgKmWOxqorFyfGPeWV+SAPhVGFe6+LrOR24jETE9rrYZU5hCppzwK9ujjS508kWibeDvbfEgi9j5qC2wB1/MoQ==", + "requires": { + "dnd-core": "^7.7.0" + } + }, + "react-dom": { + "version": "16.12.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.12.0.tgz", + "integrity": "sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.18.0" + } + }, + "react-frame-component": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/react-frame-component/-/react-frame-component-4.1.1.tgz", + "integrity": "sha512-NfJp90AvYA1R6+uSYafQ+n+UM2HjHqi4WGHeprVXa6quU9d8o6ZFRzQ36uemY82dlkZFzf2jigFx6E4UzNFajA==" + }, + "react-hot-loader": { + "version": "4.12.18", + "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.18.tgz", + "integrity": "sha512-qYD0Qi9lIbg9jLyfmodfqvAQqCBsoPKxAhca8Nxvy2/2pO5Q9r2kM28jN0bbbSnhwK8dJ7FjsfVtXKOxMW+bqw==", + "requires": { + "fast-levenshtein": "^2.0.6", + "global": "^4.3.0", + "hoist-non-react-statics": "^3.3.0", + "loader-utils": "^1.1.0", + "prop-types": "^15.6.1", + "react-lifecycles-compat": "^3.0.4", + "shallowequal": "^1.1.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "react-immutable-proptypes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/react-immutable-proptypes/-/react-immutable-proptypes-2.1.0.tgz", + "integrity": "sha1-Aj1vObsVyXwHHp5g0A0TbqxfoLQ=" + }, + "react-input-autosize": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-2.2.2.tgz", + "integrity": "sha512-jQJgYCA3S0j+cuOwzuCd1OjmBmnZLdqQdiLKRYrsMMzbjUrVDS5RvJUDwJqA7sKuksDuzFtm6hZGKFu7Mjk5aw==", + "requires": { + "prop-types": "^15.5.8" + } + }, + "react-is": { + "version": "16.8.5", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.5.tgz", + "integrity": "sha512-sudt2uq5P/2TznPV4Wtdi+Lnq3yaYW8LfvPKLM9BKD8jJNBkxMVyB0C9/GmVhLw7Jbdmndk/73n7XQGeN9A3QQ==" + }, + "react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "react-modal": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.11.1.tgz", + "integrity": "sha512-8uN744Yq0X2lbfSLxsEEc2UV3RjSRb4yDVxRQ1aGzPo86QjNOwhQSukDb8U8kR+636TRTvfMren10fgOjAy9eA==", + "requires": { + "exenv": "^1.2.0", + "prop-types": "^15.5.10", + "react-lifecycles-compat": "^3.0.0", + "warning": "^4.0.3" + } + }, + "react-onclickoutside": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.9.0.tgz", + "integrity": "sha512-8ltIY3bC7oGhj2nPAvWOGi+xGFybPNhJM0V1H8hY/whNcXgmDeaeoCMPPd8VatrpTsUWjb/vGzrmu6SrXVty3A==" + }, + "react-polyglot": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/react-polyglot/-/react-polyglot-0.4.2.tgz", + "integrity": "sha512-dZoz2/eE2Uyq/yW7Zb/QiqdeobMJFvCKT2Qdjm+7pf0e6jM6N0Lg15nsow2/P0oRHTtUH3o+QUyF/MXTJBgLcw==", + "requires": { + "hoist-non-react-statics": "^2.5.0", + "prop-types": "^15.5.8" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + } + } + }, + "react-portal": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/react-portal/-/react-portal-3.2.0.tgz", + "integrity": "sha512-avb1FreAZAVCvNNyS2dCpxZiPYPJnAasHYPxdVBTROgNFeI+KSb+OoMHNsC1GbDawESCriPwCX+qKua6WSPIFw==", + "requires": { + "prop-types": "^15.5.8" + } + }, + "react-redux": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.1.2.tgz", + "integrity": "sha512-Ns1G0XXc8hDyH/OcBHOxNgQx9ayH3SPxBnFCOidGKSle8pKihysQw2rG/PmciUQRoclhVBO8HMhiRmGXnDja9Q==", + "requires": { + "@babel/runtime": "^7.1.2", + "hoist-non-react-statics": "^3.3.0", + "invariant": "^2.2.4", + "loose-envify": "^1.1.0", + "prop-types": "^15.6.1", + "react-is": "^16.6.0", + "react-lifecycles-compat": "^3.0.0" + } + }, + "react-router": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-4.3.1.tgz", + "integrity": "sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg==", + "requires": { + "history": "^4.7.2", + "hoist-non-react-statics": "^2.5.0", + "invariant": "^2.2.4", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.1", + "warning": "^4.0.1" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + } + } + }, + "react-router-dom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-4.3.1.tgz", + "integrity": "sha512-c/MlywfxDdCp7EnB7YfPMOfMD3tOtIjrQlj/CKfNMBxdmpJP8xcz5P/UAFn3JbnQCNUxsHyVVqllF9LhgVyFCA==", + "requires": { + "history": "^4.7.2", + "invariant": "^2.2.4", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.1", + "react-router": "^4.3.1", + "warning": "^4.0.1" + } + }, + "react-router-redux": { + "version": "5.0.0-alpha.8", + "resolved": "https://registry.npmjs.org/react-router-redux/-/react-router-redux-5.0.0-alpha.8.tgz", + "integrity": "sha512-R/Cw62KtlMIifIjLF/xyiVOdHsooXK4uUW/ycX+jYfy1haKqmeY/N/bBiwRFNrMBat1Bn30ynDlgckwFcXLmIQ==", + "requires": { + "history": "^4.7.2", + "prop-types": "^15.6.0", + "react-router": "^4.2.0" + } + }, + "react-scroll-sync": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/react-scroll-sync/-/react-scroll-sync-0.6.0.tgz", + "integrity": "sha512-Frc7pNPIEQY6rUAUwm1wW0an57Xau6X1Sag+Ra2FJT+oDBEBdh4cahrE3oGwtYHPcyWMt74q7vRKLw73cPy6aw==" + }, + "react-select": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-2.4.4.tgz", + "integrity": "sha512-C4QPLgy9h42J/KkdrpVxNmkY6p4lb49fsrbDk/hRcZpX7JvZPNb6mGj+c5SzyEtBv1DmQ9oPH4NmhAFvCrg8Jw==", + "requires": { + "classnames": "^2.2.5", + "emotion": "^9.1.2", + "memoize-one": "^5.0.0", + "prop-types": "^15.6.0", + "raf": "^3.4.0", + "react-input-autosize": "^2.2.1", + "react-transition-group": "^2.2.1" + }, + "dependencies": { + "react-transition-group": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", + "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "requires": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + } + } + } + }, + "react-sortable-hoc": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/react-sortable-hoc/-/react-sortable-hoc-1.10.1.tgz", + "integrity": "sha512-eVyv5rrK6qY9bG60bboRY78In7OpdRRg+hxp4QMLIjC/UJaFSU7exTYd0764GtXvBqh+b+faYGzren5/ffRYKw==", + "requires": { + "@babel/runtime": "^7.2.0", + "invariant": "^2.2.4", + "prop-types": "^15.5.7" + } + }, + "react-split-pane": { + "version": "0.1.89", + "resolved": "https://registry.npmjs.org/react-split-pane/-/react-split-pane-0.1.89.tgz", + "integrity": "sha512-bGEiOevi6nBE1evEJOsZjd5A7plLboFAU4+HGASWWVm94XUg7QdsuPInGOB+5Ym4RtY3TZCpmUvLe6qQmrZUOg==", + "requires": { + "prop-types": "^15.5.10", + "react-lifecycles-compat": "^3.0.4", + "react-style-proptype": "^3.0.0" + } + }, + "react-style-proptype": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-style-proptype/-/react-style-proptype-3.2.2.tgz", + "integrity": "sha512-ywYLSjNkxKHiZOqNlso9PZByNEY+FTyh3C+7uuziK0xFXu9xzdyfHwg4S9iyiRRoPCR4k2LqaBBsWVmSBwCWYQ==", + "requires": { + "prop-types": "^15.5.4" + } + }, + "react-textarea-autosize": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-7.1.2.tgz", + "integrity": "sha512-uH3ORCsCa3C6LHxExExhF4jHoXYCQwE5oECmrRsunlspaDAbS4mGKNlWZqjLfInWtFQcf0o1n1jC/NGXFdUBCg==", + "requires": { + "@babel/runtime": "^7.1.2", + "prop-types": "^15.6.0" + } + }, + "react-toggled": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/react-toggled/-/react-toggled-1.2.7.tgz", + "integrity": "sha512-3am1uA5ZzDwUkReEuUkK+fJ0DAYcGiLraWEPqXfL1kKD/NHbbB7fB/t+5FflMGd+FA6n9hih1es4pui1yzKi0w==" + }, + "react-topbar-progress-indicator": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-topbar-progress-indicator/-/react-topbar-progress-indicator-2.0.0.tgz", + "integrity": "sha512-QEKsnwkjMvb10h7k+cFm0UeeVcRRIGhOJNqMQAbDyzSifPvlePk0KIcUb9dof2SkW7E5GaSxGsmXSpaFTYn43A==", + "requires": { + "topbar": "^0.1.3" + } + }, + "react-transition-group": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-1.2.1.tgz", + "integrity": "sha512-CWaL3laCmgAFdxdKbhhps+c0HRGF4c+hdM4H23+FI1QBNUyx/AMeIJGWorehPNSaKnQNOAxL7PQmqMu78CDj3Q==", + "requires": { + "chain-function": "^1.0.0", + "dom-helpers": "^3.2.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.5.6", + "warning": "^3.0.0" + }, + "dependencies": { + "warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "react-waypoint": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/react-waypoint/-/react-waypoint-8.1.0.tgz", + "integrity": "sha512-HoOItWTHObgz7bstmz9p3wuTVDRdsyNspnkAOFz9eE4z8LRj1bbNP9Nzye2k9zsFiujlz8lmp13UFmuXPWXPYw==", + "requires": { + "consolidated-events": "^1.1.0 || ^2.0.0", + "prop-types": "^15.0.0", + "react-is": "^16.6.3" + } + }, + "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.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "dependencies": { + "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.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "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.0.0", + "read-pkg": "^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.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "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.0" + } + } + } + }, + "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==", + "requires": { + "core-util-is": "~1.0.0", + "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.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "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" + } + }, + "redux": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.4.tgz", + "integrity": "sha512-vKv4WdiJxOWKxK0yRoaK3Y4pxxB0ilzVx6dszU2W8wLxlb2yikRph4iV/ymtdJ6ZxpBLFbyrxklnT5yBbQSl3Q==", + "requires": { + "loose-envify": "^1.4.0", + "symbol-observable": "^1.2.0" + } + }, + "redux-notifications": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/redux-notifications/-/redux-notifications-4.0.1.tgz", + "integrity": "sha512-mRVaEcsvu5B4P8x8kW0uY83EQqaWL/0+/NvL4bdbHGJVg+Rwx54MgBU1s+tB6RAA2E6NX/DmQrO4EbFDcQSi+w==", + "requires": { + "object-assign": "^4.1.1", + "prop-types": "^15.5.10", + "react-redux": "^4.0.0", + "react-transition-group": "^1.1.3" + }, + "dependencies": { + "react-redux": { + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.10.tgz", + "integrity": "sha512-tjL0Bmpkj75Td0k+lXlF8Fc8a9GuXFv/3ahUOCXExWs/jhsKiQeTffdH0j5byejCGCRL4tvGFYlrwBF1X/Aujg==", + "requires": { + "create-react-class": "^15.5.1", + "hoist-non-react-statics": "^3.3.0", + "invariant": "^2.0.0", + "lodash": "^4.17.11", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2" + } + } + } + }, + "redux-optimist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redux-optimist/-/redux-optimist-1.0.0.tgz", + "integrity": "sha512-AG1v8o6UZcGXTEH2jVcWG6KD+gEix+Cj9JXAAzln9MPkauSVd98H7N7EOOyT/v4c9N1mJB4sm1zfspGlLDkUEw==" + }, + "redux-thunk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.3.0.tgz", + "integrity": "sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==" + }, + "regenerator-runtime": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" + }, + "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==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "rehype-minify-whitespace": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/rehype-minify-whitespace/-/rehype-minify-whitespace-2.0.4.tgz", + "integrity": "sha512-TQVOvOSURaWNbYepVgSzUofSTRsaAVQe/dH01Mo44u+Gr221jTmUem8l0jlJBAfSOHNaUF4jfDDbyEeb4ueAmA==", + "requires": { + "collapse-white-space": "^1.0.0", + "hast-util-embedded": "^1.0.0", + "hast-util-has-property": "^1.0.0", + "hast-util-is-body-ok-link": "^1.0.0", + "hast-util-is-element": "^1.0.0", + "html-whitespace-sensitive-tag-names": "^1.0.0", + "unist-util-is": "^3.0.0", + "unist-util-modify-children": "^1.0.0" + } + }, + "rehype-parse": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-3.1.0.tgz", + "integrity": "sha1-f1InpZej85/EuThkYWFTnERO5yg=", + "requires": { + "hast-util-from-parse5": "^1.0.0", + "parse5": "^2.1.5", + "xtend": "^4.0.1" + } + }, + "rehype-remark": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/rehype-remark/-/rehype-remark-2.1.0.tgz", + "integrity": "sha1-hMrdQUENI96Pg+FB6SNCwt+Uwcg=", + "requires": { + "hast-util-to-mdast": "^1.1.0" + } + }, + "rehype-stringify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-3.0.0.tgz", + "integrity": "sha1-n+8IaCE8Lc4veAt289BIjIXoGes=", + "requires": { + "hast-util-to-html": "^3.0.0", + "xtend": "^4.0.1" + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" + }, + "remark-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-3.0.1.tgz", + "integrity": "sha1-G5+EGkTY9PvyJGhQJlRZpOs1TIA=", + "requires": { + "collapse-white-space": "^1.0.2", + "has": "^1.0.1", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^1.0.2", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^1.0.0", + "vfile-location": "^2.0.0", + "xtend": "^4.0.1" + } + }, + "remark-rehype": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-2.0.1.tgz", + "integrity": "sha1-E+mJ+J7hVES9I1Tf/XZ9qSK5heM=", + "requires": { + "mdast-util-to-hast": "^2.2.0" + } + }, + "remark-stringify": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-3.0.1.tgz", + "integrity": "sha1-eSQr6+CnUggbWAlRb6DAbt7Aac8=", + "requires": { + "ccount": "^1.0.0", + "is-alphanumeric": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "longest-streak": "^2.0.1", + "markdown-escapes": "^1.0.0", + "markdown-table": "^1.1.0", + "mdast-util-compact": "^1.0.0", + "parse-entities": "^1.0.2", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "stringify-entities": "^1.0.1", + "unherit": "^1.0.4", + "xtend": "^4.0.1" + } + }, + "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=" + }, + "renderkid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", + "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", + "requires": { + "css-select": "^1.1.0", + "dom-converter": "^0.2", + "htmlparser2": "^3.3.0", + "strip-ansi": "^3.0.0", + "utila": "^0.4.0" + } + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "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.0" + } + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" + }, + "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.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" + }, + "dependencies": { + "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 + } + } + }, + "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-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 + }, + "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.13.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz", + "integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==", + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + }, + "resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + }, + "resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "requires": { + "protocol-buffers-schema": "^3.3.1" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "resp-modifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", + "integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=", + "dev": true, + "requires": { + "debug": "^2.2.0", + "minimatch": "^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==" + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "requires": { + "aproba": "^1.1.1" + } + }, + "rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", + "dev": true + }, + "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=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "requires": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "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.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" + }, + "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.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.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "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.1.1", + "get-caller-file": "^1.0.1", + "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" + } + } + } + }, + "scheduler": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz", + "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "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.1.8", + "source-map": "^0.4.2" + }, + "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": ">=0.0.4" + } + } + } + }, + "section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "requires": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "selection-is-backward": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/selection-is-backward/-/selection-is-backward-1.0.0.tgz", + "integrity": "sha1-l6VGMxiKURq6ZBn8XB+pG0Z+a+E=" + }, + "semaphore": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", + "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "send": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.15.2.tgz", + "integrity": "sha1-+R+rRAO8+H5xb3DOtdsvV4vcF9Y=", + "dev": true, + "requires": { + "debug": "2.6.4", + "depd": "~1.1.0", + "destroy": "~1.0.4", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "etag": "~1.8.0", + "fresh": "0.5.0", + "http-errors": "~1.6.1", + "mime": "1.3.4", + "ms": "1.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.3.1" + }, + "dependencies": { + "debug": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.4.tgz", + "integrity": "sha1-dYaps8OXQcAoKuM0RcTorHRzT+A=", + "dev": true, + "requires": { + "ms": "0.7.3" + }, + "dependencies": { + "ms": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.3.tgz", + "integrity": "sha1-cIFVpeROM/X9D8U+gdDUCpG+H/8=", + "dev": true + } + } + }, + "fresh": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", + "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=", + "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 < 2" + }, + "dependencies": { + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + } + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-1.0.0.tgz", + "integrity": "sha1-Wa3NIu3FQ/e1OBhi0xOHsfS8lHM=", + "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 + } + } + }, + "sequencify": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", + "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", + "dev": true + }, + "serialize-javascript": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==" + }, + "serve-index": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.8.0.tgz", + "integrity": "sha1-fF2WwT+xMRAfk8HFd0+FFqHnjTs=", + "dev": true, + "requires": { + "accepts": "~1.3.3", + "batch": "0.5.3", + "debug": "~2.2.0", + "escape-html": "~1.0.3", + "http-errors": "~1.5.0", + "mime-types": "~2.1.11", + "parseurl": "~1.3.1" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } + } + }, + "serve-static": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.2.tgz", + "integrity": "sha1-5UbicmCBuBtLzsjpCAjrzdMjr7o=", + "dev": true, + "requires": { + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "parseurl": "~1.3.1", + "send": "0.15.2" + } + }, + "server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0=", + "dev": true + }, + "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-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz", + "integrity": "sha1-gaVSFB7BBLiOic44MQOtXGZWTQg=", + "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==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "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-line-icons": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/simple-line-icons/-/simple-line-icons-2.4.1.tgz", + "integrity": "sha1-t1vFoNh+UwkowszaVzUnS7JW8jQ=" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + }, + "slate": { + "version": "0.34.7", + "resolved": "https://registry.npmjs.org/slate/-/slate-0.34.7.tgz", + "integrity": "sha1-WQjh0PwJKiISSIvsplZx8B4OuAo=", + "requires": { + "debug": "^3.1.0", + "direction": "^0.1.5", + "esrever": "^0.2.0", + "is-empty": "^1.0.0", + "is-plain-object": "^2.0.4", + "lodash": "^4.17.4", + "slate-dev-logger": "^0.1.39", + "slate-schema-violations": "^0.1.20", + "type-of": "^2.0.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "slate-base64-serializer": { + "version": "0.2.112", + "resolved": "https://registry.npmjs.org/slate-base64-serializer/-/slate-base64-serializer-0.2.112.tgz", + "integrity": "sha512-Vo94bkCq8cbFj7Lutdh2RaM9S4WlLxnnMqZPKGUyefklUN4q2EzM/WUH7s9CIlLUH1qRfC/b0V25VJZr5XXTzA==", + "requires": { + "isomorphic-base64": "^1.0.2" + } + }, + "slate-dev-environment": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/slate-dev-environment/-/slate-dev-environment-0.1.6.tgz", + "integrity": "sha512-DDeNzcpBvdEtPmuLrpPtrth7vnK693fgxzwS6FACu3oMBoXjh0qcJWVBktecPJXJDxcTVkWUpt0dPhfXLMIkWQ==", + "requires": { + "is-in-browser": "^1.1.3" + } + }, + "slate-dev-logger": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/slate-dev-logger/-/slate-dev-logger-0.1.43.tgz", + "integrity": "sha512-GkcPMGzmPVm85AL+jaKnzhIA0UH9ktQDEIDM+FuQtz+TAPcpPCQiRAaZ6I2p2uD0Hq9bImhKSCtHIa0qRxiVGw==" + }, + "slate-edit-list": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/slate-edit-list/-/slate-edit-list-0.11.3.tgz", + "integrity": "sha512-nqaiYYppezMmbsh+JN6vqZl2EexiUTJWwCzJVas8cv+WeRtRmuysn94LKF2VdLIxLmNAe/ZfliIkW9uC/NdO6w==" + }, + "slate-edit-table": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/slate-edit-table/-/slate-edit-table-0.15.2.tgz", + "integrity": "sha1-8mtnRRtQf5NhBhUfVaC/+9vKAhM=" + }, + "slate-hotkeys": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/slate-hotkeys/-/slate-hotkeys-0.1.4.tgz", + "integrity": "sha1-WxCyoXiv/GCCf5KE1MCl1+UEH/4=", + "requires": { + "is-hotkey": "^0.1.1", + "slate-dev-environment": "^0.1.4" + } + }, + "slate-plain-serializer": { + "version": "0.5.41", + "resolved": "https://registry.npmjs.org/slate-plain-serializer/-/slate-plain-serializer-0.5.41.tgz", + "integrity": "sha512-KPC2T5PT29JN7uxpmpg/xIGO1YjNmpTfghkGsUKBx7HHYjGe5c9jEApolTvzNy3F3w+wGQNsiT+aN6dn9m6sFA==", + "requires": { + "slate-dev-logger": "^0.1.43" + } + }, + "slate-prop-types": { + "version": "0.4.67", + "resolved": "https://registry.npmjs.org/slate-prop-types/-/slate-prop-types-0.4.67.tgz", + "integrity": "sha512-FmdwitAw1Y69JHm326dfwP6Zd6R99jz1Im8jvKcnG2hytk72I1vIv6ct2CkNGwc3sg90+OIO/Rf18frYxxoTzw==" + }, + "slate-react": { + "version": "0.12.9", + "resolved": "https://registry.npmjs.org/slate-react/-/slate-react-0.12.9.tgz", + "integrity": "sha1-bLbx+obIaPVrXc4GQUZSBUWIQ1E=", + "requires": { + "debug": "^3.1.0", + "get-window": "^1.1.1", + "is-window": "^1.0.2", + "keycode": "^2.1.2", + "lodash": "^4.1.1", + "prop-types": "^15.5.8", + "react-immutable-proptypes": "^2.1.0", + "react-portal": "^3.1.0", + "selection-is-backward": "^1.0.0", + "slate-base64-serializer": "^0.2.34", + "slate-dev-environment": "^0.1.2", + "slate-dev-logger": "^0.1.39", + "slate-hotkeys": "^0.1.2", + "slate-plain-serializer": "^0.5.15", + "slate-prop-types": "^0.4.32" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "slate-schema-violations": { + "version": "0.1.39", + "resolved": "https://registry.npmjs.org/slate-schema-violations/-/slate-schema-violations-0.1.39.tgz", + "integrity": "sha512-SNRoV9Ii5UqjNqAKcIw7aAOMwgI45zsn86ue2n8NVLNOCe3fUI35cjq6l3fdvmRYw4X/GcZqzhpQsizHD3ts6A==" + }, + "slate-soft-break": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/slate-soft-break/-/slate-soft-break-0.6.1.tgz", + "integrity": "sha512-PTujwU6B8vKO86Yqj2TXcryxkal6PBmFrUhZwZF6fQlhlLUaJAMYQX60blGvO7tncDxyofxxIkBKdGdjL3JldA==" + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "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=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "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==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "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=", + "requires": { + "is-descriptor": "^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==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "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==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.x.x" + } + }, + "socket.io": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.0.4.tgz", + "integrity": "sha1-waRZDO/4fs8TxyZS8Eb3FrKeYBQ=", + "dev": true, + "requires": { + "debug": "~2.6.6", + "engine.io": "~3.1.0", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.0.4", + "socket.io-parser": "~3.1.1" + } + }, + "socket.io-adapter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", + "dev": true + }, + "socket.io-client": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.0.4.tgz", + "integrity": "sha1-CRilUkBtxeVAs4Dc2Xr8SmQzL44=", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~2.6.4", + "engine.io-client": "~3.1.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.1.1", + "to-array": "0.1.4" + }, + "dependencies": { + "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 + } + } + }, + "socket.io-parser": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.1.3.tgz", + "integrity": "sha512-g0a2HPqLguqAczs3dMECuA1RgoGFPyvDqcbaDEdCWY9g59kdUAz3YRmaJBNKXflrHNwB7Q12Gkf/0CZXfdHR7g==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "has-binary2": "~1.0.2", + "isarray": "2.0.1" + }, + "dependencies": { + "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 + }, + "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" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "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==", + "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.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "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=" + }, + "space-separated-tokens": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.4.tgz", + "integrity": "sha512-UyhMSmeIqZrQn2UdjYpxEkwY9JUrn8pP+7L4f91zRzOQuI8MF1FGLfYU9DKCYeLdo7LXMxwrX5zKFy7eeeVHuA==" + }, + "sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "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.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "dev": true + }, + "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==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "stackframe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.1.0.tgz", + "integrity": "sha512-Vx6W1Yvy+AM1R/ckVwcHQHV147pTPBKWCRLrXMuPrFVfvBUc3os7PR1QLIWCMhPpRg5eX9ojzbQIMLGBwyLjqg==" + }, + "state-toggle": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.2.tgz", + "integrity": "sha512-8LpelPGR0qQM4PnfLiplOQNJcIN1/r2Gy0xKB2zKnIW2YzPMt2sR4I/+gtPjhN7Svh9kw+zqEg2SFwpBO9iNiw==" + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "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=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-consume": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz", + "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==", + "dev": true + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" + }, + "stream-throttle": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", + "integrity": "sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM=", + "dev": true, + "requires": { + "commander": "^2.2.0", + "limiter": "^1.0.5" + } + }, + "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=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.trim": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.0.tgz", + "integrity": "sha512-9EIjYD/WdlvLpn987+ctkLf0FfvBefOCuiEr2henD8X+7jfwPnyvTdmW8OJhj5p+M0/96mBdynLWkxUr+rHlpg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.13.0", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimleft": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", + "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimright": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", + "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "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==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "stringify-entities": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.2.tgz", + "integrity": "sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==", + "requires": { + "character-entities-html4": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, + "stringstream": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", + "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", + "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=", + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + } + } + }, + "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.0" + } + }, + "strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=" + }, + "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" + } + }, + "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.2" + } + }, + "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 + }, + "stylis": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz", + "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==" + }, + "stylis-rule-sheet": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", + "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" + }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + }, + "teeny-tap": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/teeny-tap/-/teeny-tap-0.2.0.tgz", + "integrity": "sha1-Fn5kUYLQasIi1iuyq2eUenClimg=" + }, + "terser": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.2.tgz", + "integrity": "sha512-Uufrsvhj9O1ikwgITGsZ5EZS6qPokUOkCegS7fYOdGTv+OA90vndUbU6PEjr5ePqHfNUbGyMO7xyIZv2MhsALQ==", + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + } + } + }, + "terser-webpack-plugin": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.2.tgz", + "integrity": "sha512-fdEb91kR2l+BVgES77N/NTXWZlpX6vX+pYPjnX5grcDYBF2CMnzJiXX4NNlna4l04lvCW39lZ+O/jSvUhHH/ew==", + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^2.1.1", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + }, + "tfunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-3.1.0.tgz", + "integrity": "sha1-OORBT8ZJd9h6/apy+sttKfgve1s=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "object-path": "^0.9.0" + }, + "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.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "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 + } + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "tildify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", + "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", + "dev": true, + "requires": { + "os-homedir": "^1.0.0" + } + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "dev": true + }, + "timers-browserify": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tiny-invariant": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.0.6.tgz", + "integrity": "sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA==" + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "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=" + }, + "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=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "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=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toml-j0.4": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/toml-j0.4/-/toml-j0.4-1.1.1.tgz", + "integrity": "sha512-lYK5otg0+cto8YmsWcPEfeiTiC/VU6P6HA6ooaYI9K/KYT24Jg0BrYtRZK1K3cwakSMyh6nttfJL9RmQH0gyCg==" + }, + "tomlify-j0.4": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tomlify-j0.4/-/tomlify-j0.4-3.0.0.tgz", + "integrity": "sha512-2Ulkc8T7mXJ2l0W476YC/A209PR38Nw8PuaCNtk9uI3t1zzFdGQeWYGQvmj2PZkVvRC/Yoi4xQKMRnWc/N29tQ==" + }, + "topbar": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/topbar/-/topbar-0.1.3.tgz", + "integrity": "sha1-ye+HdtxEafeEDmQW9BNt3sz0t8Y=" + }, + "toposort": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", + "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=" + }, + "touch": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/touch/-/touch-2.0.2.tgz", + "integrity": "sha512-qjNtvsFXTRq7IuMLweVgFxmEuQ6gLbRs2jQxL80TtZ31dEKWYIxRXquij6w6VimyDek5hD3PytljHmEtAs2u0A==", + "requires": { + "nopt": "~1.0.10" + } + }, + "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==", + "dev": true, + "requires": { + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" + }, + "trim-lines": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-1.1.2.tgz", + "integrity": "sha512-3GOuyNeTqk3FAqc3jOJtw7FTjYl94XBR5aD9QnDbK/T4CA9sW/J0l9RoaRPE9wyPP7NF331qnHnvJFBJ+IDkmQ==" + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "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.2" + } + }, + "trim-trailing-lines": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.2.tgz", + "integrity": "sha512-MUjYItdrqqj2zpcHFTkMa9WAv4JHTI6gnRQGPFLrt5L9a6tRMiDnIqYl8JBvu2d2Tc3lWJKQwlGCp0K8AvCM+Q==" + }, + "trough": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.4.tgz", + "integrity": "sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q==" + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "requires": { + "glob": "^7.1.2" + } + }, + "truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", + "requires": { + "utf8-byte-length": "^1.0.1" + } + }, + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-of": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-of/-/type-of-2.0.1.tgz", + "integrity": "sha1-5yoXQYllaOn2KDeNgW1pEvfyOXI=" + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "ua-parser-js": { + "version": "0.7.20", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.20.tgz", + "integrity": "sha512-8OaIKfzL5cpx8eCMAhhvTlft8GYF8b2eQr6JkCyVdrgjcytyOmPCXrqXFcUnhonRpLlh5yxEZVohm6mzaowUOw==" + }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" + } + } + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "dev": true + }, + "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 + }, + "unherit": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.2.tgz", + "integrity": "sha512-W3tMnpaMG7ZY6xe/moK04U9fBhi6wEiCYHUW5Mop/wQHf12+79EQGwxYejNdhEz2mkqkBlGwm7pxmgBKMVUj0w==", + "requires": { + "inherits": "^2.0.1", + "xtend": "^4.0.1" + } + }, + "unified": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz", + "integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==", + "requires": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^1.1.0", + "trough": "^1.0.0", + "vfile": "^2.0.0", + "x-is-string": "^0.1.0" + } + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unique-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", + "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", + "dev": true + }, + "unist-builder": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-1.0.4.tgz", + "integrity": "sha512-v6xbUPP7ILrT15fHGrNyHc1Xda8H3xVhP7/HAIotHOhVPjH5dCXA097C3Rry1Q2O+HbOLCao4hfPB+EYEjHgVg==", + "requires": { + "object-assign": "^4.1.0" + } + }, + "unist-util-generated": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.5.tgz", + "integrity": "sha512-1TC+NxQa4N9pNdayCYA1EGUOCAO0Le3fVp7Jzns6lnua/mYgwHo0tz5WUAfrdpNch1RZLHc61VZ1SDgrtNXLSw==" + }, + "unist-util-is": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", + "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==" + }, + "unist-util-modify-children": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-1.1.5.tgz", + "integrity": "sha512-XeL5qqyoS3TEueCKEzHusWXE9JBDJPE4rl6LmcLOwlzv0RIZrcMNqKx02GSK3Ms4v45ldu+ltPxG42FBMVdPZw==", + "requires": { + "array-iterate": "^1.0.0" + } + }, + "unist-util-position": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.0.4.tgz", + "integrity": "sha512-tWvIbV8goayTjobxDIr4zVTyG+Q7ragMSMeKC3xnPl9xzIc0+she8mxXLM3JVNDDsfARPbCd3XdzkyLdo7fF3g==" + }, + "unist-util-remove-position": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz", + "integrity": "sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==", + "requires": { + "unist-util-visit": "^1.1.0" + } + }, + "unist-util-stringify-position": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", + "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==" + }, + "unist-util-visit": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "requires": { + "unist-util-visit-parents": "^2.0.0" + }, + "dependencies": { + "unist-util-visit-parents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", + "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", + "requires": { + "unist-util-is": "^3.0.0" + } + } + } + }, + "unist-util-visit-parents": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz", + "integrity": "sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q==" + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "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=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "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=" + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "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=" + } + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, + "utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=" + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "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==", + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + }, + "utils-merge": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", + "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=", + "dev": true + }, + "uuid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" + }, + "uws": { + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/uws/-/uws-9.14.0.tgz", + "integrity": "sha512-HNMztPP5A1sKuVFmdZ6BPVpBQd5bUjNC8EFMFiICK+oho/OQsAJy5hnIx4btMHiOk8j04f/DbIlqnEZ9d72dqg==", + "dev": true, + "optional": 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.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "vfile": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz", + "integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==", + "requires": { + "is-buffer": "^1.1.4", + "replace-ext": "1.0.0", + "unist-util-stringify-position": "^1.0.0", + "vfile-message": "^1.0.0" + } + }, + "vfile-location": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz", + "integrity": "sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==" + }, + "vfile-message": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz", + "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==", + "requires": { + "unist-util-stringify-position": "^1.1.1" + } + }, + "vinyl": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", + "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "dev": true, + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + }, + "dependencies": { + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "dev": true + } + } + }, + "vinyl-fs": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", + "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", + "dev": true, + "requires": { + "defaults": "^1.0.0", + "glob-stream": "^3.1.5", + "glob-watcher": "^0.0.6", + "graceful-fs": "^3.0.0", + "mkdirp": "^0.5.0", + "strip-bom": "^1.0.0", + "through2": "^0.6.1", + "vinyl": "^0.4.0" + }, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "dev": true + }, + "graceful-fs": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.12.tgz", + "integrity": "sha512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg==", + "dev": true, + "requires": { + "natives": "^1.1.3" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "strip-bom": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", + "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", + "dev": true, + "requires": { + "first-chunk-stream": "^1.0.0", + "is-utf8": "^0.2.0" + } + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "dev": true, + "requires": { + "clone": "^0.2.0", + "clone-stats": "^0.0.1" + } + } + } + }, + "vinyl-sourcemaps-apply": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", + "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", + "dev": true, + "requires": { + "source-map": "^0.5.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 + } + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "requires": { + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + } + }, + "webpack": { + "version": "4.41.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.2.tgz", + "integrity": "sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/wasm-edit": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "acorn": "^6.2.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.1", + "watchpack": "^1.6.0", + "webpack-sources": "^1.4.1" + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "what-input": { + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/what-input/-/what-input-5.2.6.tgz", + "integrity": "sha512-a0BcI5YR7xp87vSzGcbN0IszJKpUQuTmrZaTSQBl7TLDIdKj6rDhluQ7b/7lYGG81gWDvkySsEvwv4BW5an9kg==" + }, + "whatwg-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", + "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" + }, + "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" + } + }, + "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 + }, + "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": "^1.0.2 || 2" + } + }, + "window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", + "dev": true + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "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.1", + "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.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.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + }, + "x-is-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", + "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=" + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "yaml": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.2.tgz", + "integrity": "sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==", + "requires": { + "@babel/runtime": "^7.6.3" + } + }, + "yargs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.4.0.tgz", + "integrity": "sha1-gW4ahm1VmMzzTlWW3c4i2S2kkNQ=", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "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", + "window-size": "^0.2.0", + "y18n": "^3.2.1", + "yargs-parser": "^4.1.0" + }, + "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.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.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "window-size": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", + "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + } + } + }, + "yargs-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "dev": true, + "requires": { + "camelcase": "^3.0.0" + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + } + } +} diff --git a/package.json b/oldsite-backup/package.json similarity index 100% rename from package.json rename to oldsite-backup/package.json diff --git a/oldsite-backup/privacy.txt b/oldsite-backup/privacy.txt new file mode 100644 index 0000000..bd85546 --- /dev/null +++ b/oldsite-backup/privacy.txt @@ -0,0 +1,97 @@ +BlueWallet Services Privacy Policy + +This privacy policy has been compiled to better serve those who are concerned with how their 'Personally Identifiable Information' (PII) is being used online. PII, as described in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website. + +What personal information do we collect from the people that visit our blog, website or app? + +We do not collect information from visitors of our site. +or other details to help you with your experience. + +When do we collect information? + +We collect information from you when you or enter information on our site. + + +How do we use your information? + +We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways: + + +How do we protect your information? + +We do not use vulnerability scanning and/or scanning to PCI standards. +We only provide articles and information. We never ask for credit card numbers. +We do not use Malware Scanning. + +We do not use an SSL certificate + • We only provide articles and information. We never ask for personal or private information like names, email addresses, or credit card numbers. + +Do we use 'cookies'? + +We do not use cookies for tracking purposes + +You can choose to have your computer warn you each time a cookie is being sent, or you can choose to turn off all cookies. You do this through your browser settings. Since browser is a little different, look at your browser's Help Menu to learn the correct way to modify your cookies. + +If you turn cookies off, Some of the features that make your site experience more efficient may not function properly.that make your site experience more efficient and may not function properly. + + +Third-party disclosure + +We do not sell, trade, or otherwise transfer to outside parties your Personally Identifiable Information. + +Creators of BlueWallet never received any inquiries from NSA, FBI, FSB or any other government institution. + +Nor NSA nor any other government institution was ever granted access to BlueWallet's end users data. + +Nor NSA nor any other government institution was ever granted permission to install backdoor or other potentially malicious code +in any part of BlueWallet's software. + +Third-party links + +We do not include or offer third-party products or services on our website. + +Google + +Google's advertising requirements can be summed up by Google's Advertising Principles. They are put in place to provide a positive experience for users. https://support.google.com/adwordspolicy/answer/1316548?hl=en + +We have not enabled Google AdSense on our site but we may do so in the future. +none + +COPPA (Children Online Privacy Protection Act) + +When it comes to the collection of personal information from children under the age of 13 years old, the Children's Online Privacy Protection Act (COPPA) puts parents in control. The Federal Trade Commission, United States' consumer protection agency, enforces the COPPA Rule, which spells out what operators of websites and online services must do to protect children's privacy and safety online. + +We do not specifically market to children under the age of 13 years old. +Do we let third-parties, including ad networks or plug-ins collect PII from children under 13? + +Fair Information Practices + +The Fair Information Practices Principles form the backbone of privacy law in the United States and the concepts they include have played a significant role in the development of data protection laws around the globe. Understanding the Fair Information Practice Principles and how they should be implemented is critical to comply with the various privacy laws that protect personal information. + +In order to be in line with Fair Information Practices we will take the following responsive action, should a data breach occur: +We will notify the users via in-site notification + • Within 7 business days + +We also agree to the Individual Redress Principle which requires that individuals have the right to legally pursue enforceable rights against data collectors and processors who fail to adhere to the law. This principle requires not only that individuals have enforceable rights against data users, but also that individuals have recourse to courts or government agencies to investigate and/or prosecute non-compliance by data processors. + +CAN SPAM Act + +The CAN-SPAM Act is a law that sets the rules for commercial email, establishes requirements for commercial messages, gives recipients the right to have emails stopped from being sent to them, and spells out tough penalties for violations. + +We collect your email address in order to: + +To be in accordance with CANSPAM, we agree to the following: + +If at any time you would like to unsubscribe from receiving future emails, you can email us at +bluewallet@bluewallet.io and we will promptly remove you from ALL correspondence. + +Contacting Us + +If there are any questions regarding this privacy policy, you may contact us using the information below. + +http://bluewallet.io +Calle Beller 51 +Puerto Plata, 57000 +Republica Dominicana + +Last Edited on 2019-10-16 diff --git a/privacy/index.html b/oldsite-backup/privacy/index.html similarity index 100% rename from privacy/index.html rename to oldsite-backup/privacy/index.html diff --git a/oldsite-backup/robots.txt b/oldsite-backup/robots.txt new file mode 100644 index 0000000..393d2a0 --- /dev/null +++ b/oldsite-backup/robots.txt @@ -0,0 +1,10 @@ +User-Agent: * +Allow: / + +Sitemap: https://bluewallet.io/sitemap.xml + +User-agent: googlebot +Disallow: /tos/ +Disallow: /privacy/ +Disallow: /terms.txt +Disallow: /privacy.txt \ No newline at end of file diff --git a/scss/_bootstrap-overrides.scss b/oldsite-backup/scss/_bootstrap-overrides.scss similarity index 100% rename from scss/_bootstrap-overrides.scss rename to oldsite-backup/scss/_bootstrap-overrides.scss diff --git a/scss/_contact.scss b/oldsite-backup/scss/_contact.scss similarity index 100% rename from scss/_contact.scss rename to oldsite-backup/scss/_contact.scss diff --git a/scss/_cta.scss b/oldsite-backup/scss/_cta.scss similarity index 100% rename from scss/_cta.scss rename to oldsite-backup/scss/_cta.scss diff --git a/scss/_desktop.scss b/oldsite-backup/scss/_desktop.scss similarity index 100% rename from scss/_desktop.scss rename to oldsite-backup/scss/_desktop.scss diff --git a/scss/_download.scss b/oldsite-backup/scss/_download.scss similarity index 100% rename from scss/_download.scss rename to oldsite-backup/scss/_download.scss diff --git a/scss/_features.scss b/oldsite-backup/scss/_features.scss similarity index 100% rename from scss/_features.scss rename to oldsite-backup/scss/_features.scss diff --git a/scss/_footer.scss b/oldsite-backup/scss/_footer.scss similarity index 100% rename from scss/_footer.scss rename to oldsite-backup/scss/_footer.scss diff --git a/scss/_global.scss b/oldsite-backup/scss/_global.scss similarity index 100% rename from scss/_global.scss rename to oldsite-backup/scss/_global.scss diff --git a/scss/_lapps.scss b/oldsite-backup/scss/_lapps.scss similarity index 100% rename from scss/_lapps.scss rename to oldsite-backup/scss/_lapps.scss diff --git a/scss/_lightning.scss b/oldsite-backup/scss/_lightning.scss similarity index 100% rename from scss/_lightning.scss rename to oldsite-backup/scss/_lightning.scss diff --git a/scss/_lndhub.scss b/oldsite-backup/scss/_lndhub.scss similarity index 100% rename from scss/_lndhub.scss rename to oldsite-backup/scss/_lndhub.scss diff --git a/scss/_local.scss b/oldsite-backup/scss/_local.scss similarity index 100% rename from scss/_local.scss rename to oldsite-backup/scss/_local.scss diff --git a/scss/_masthead.scss b/oldsite-backup/scss/_masthead.scss similarity index 100% rename from scss/_masthead.scss rename to oldsite-backup/scss/_masthead.scss diff --git a/scss/_mixins.scss b/oldsite-backup/scss/_mixins.scss similarity index 100% rename from scss/_mixins.scss rename to oldsite-backup/scss/_mixins.scss diff --git a/scss/_navbar.scss b/oldsite-backup/scss/_navbar.scss similarity index 100% rename from scss/_navbar.scss rename to oldsite-backup/scss/_navbar.scss diff --git a/scss/_onchain.scss b/oldsite-backup/scss/_onchain.scss similarity index 100% rename from scss/_onchain.scss rename to oldsite-backup/scss/_onchain.scss diff --git a/scss/_variables.scss b/oldsite-backup/scss/_variables.scss similarity index 100% rename from scss/_variables.scss rename to oldsite-backup/scss/_variables.scss diff --git a/scss/_watch-app.scss b/oldsite-backup/scss/_watch-app.scss similarity index 100% rename from scss/_watch-app.scss rename to oldsite-backup/scss/_watch-app.scss diff --git a/scss/_watch-only.scss b/oldsite-backup/scss/_watch-only.scss similarity index 100% rename from scss/_watch-only.scss rename to oldsite-backup/scss/_watch-only.scss diff --git a/scss/new-age.scss b/oldsite-backup/scss/new-age.scss similarity index 100% rename from scss/new-age.scss rename to oldsite-backup/scss/new-age.scss diff --git a/oldsite-backup/sitemap.xml b/oldsite-backup/sitemap.xml new file mode 100644 index 0000000..5ad0ac7 --- /dev/null +++ b/oldsite-backup/sitemap.xml @@ -0,0 +1,67 @@ + + + + https://bluewallet.io + 2020-03-16T17:34:18+00:00 + 1.00 + + + https://bluewallet.io/bitcoin-wallet/ + 2020-03-16T17:34:18+00:00 + 0.90 + + + https://bluewallet.io/features/ + 2020-03-16T17:34:18+00:00 + 0.90 + + + https://bluewallet.io/watch-only/ + 2020-03-16T17:34:18+00:00 + 0.90 + + + https://bluewallet.io/desktop-bitcoin-wallet/ + 2020-08-10T13:34:18+00:00 + 0.90 + + + https://bluewallet.io/local-trader/ + 2020-06-20T17:34:18+00:00 + 0.90 + + + https://bluewallet.io/lightning/ + 2020-03-16T17:34:18+00:00 + 0.80 + + + https://bluewallet.io/lapps/ + 2020-03-16T17:34:18+00:00 + 0.60 + + + https://bluewallet.io/watch-app/ + 2020-03-16T17:34:18+00:00 + 0.60 + + + https://bluewallet.io/lndhub/ + 2020-03-16T17:34:18+00:00 + 0.60 + + + https://bluewallet.io/about + 2020-03-16T17:34:18+00:00 + 0.50 + + + https://bluewallet.io/donate.html + 2019-03-13T17:34:18+00:00 + 0.40 + + \ No newline at end of file diff --git a/oldsite-backup/terms.txt b/oldsite-backup/terms.txt new file mode 100644 index 0000000..95e860f --- /dev/null +++ b/oldsite-backup/terms.txt @@ -0,0 +1,51 @@ + Blue Wallet Services Terms of Service + +1. Terms + + By accessing the website at http://bluewallet.io, you are agreeing to be bound by these terms of service, all applicable laws and regulations, and agree that you are responsible for compliance with any applicable local laws. If you do not agree with any of these terms, you are prohibited from using or accessing this site. The materials contained in this website are protected by applicable copyright and trademark law. + +2. Use License + + + + Permission is granted to temporarily download one copy of the materials (information or software) on Blue Wallet Services' website for personal, non-commercial transitory viewing only. This is the grant of a license, not a transfer of title, and under this license you may not: + + + modify or copy the materials; + use the materials for any commercial purpose, or for any public display (commercial or non-commercial); + attempt to decompile or reverse engineer any software contained on Blue Wallet Services' website; + remove any copyright or other proprietary notations from the materials; or + transfer the materials to another person or "mirror" the materials on any other server. + + + This license shall automatically terminate if you violate any of these restrictions and may be terminated by Blue Wallet Services at any time. Upon terminating your viewing of these materials or upon the termination of this license, you must destroy any downloaded materials in your possession whether in electronic or printed format. + + +3. Disclaimer + + + The materials on Blue Wallet Services' website are provided on an 'as is' basis. Blue Wallet Services makes no warranties, expressed or implied, and hereby disclaims and negates all other warranties including, without limitation, implied warranties or conditions of merchantability, fitness for a particular purpose, or non-infringement of intellectual property or other violation of rights. + Further, Blue Wallet Services does not warrant or make any representations concerning the accuracy, likely results, or reliability of the use of the materials on its website or otherwise relating to such materials or on any sites linked to this site. + + +4. Limitations + + In no event shall Blue Wallet Services or its suppliers be liable for any damages (including, without limitation, damages for loss of data or profit, or due to business interruption) arising out of the use or inability to use the materials on Blue Wallet Services' website, even if Blue Wallet Services or a Blue Wallet Services authorized representative has been notified orally or in writing of the possibility of such damage. Because some jurisdictions do not allow limitations on implied warranties, or limitations of liability for consequential or incidental damages, these limitations may not apply to you. + +5. Accuracy of materials + + The materials appearing on Blue Wallet Services website could include technical, typographical, or photographic errors. Blue Wallet Services does not warrant that any of the materials on its website are accurate, complete or current. Blue Wallet Services may make changes to the materials contained on its website at any time without notice. However Blue Wallet Services does not make any commitment to update the materials. + +6. Links + + Blue Wallet Services has not reviewed all of the sites linked to its website and is not responsible for the contents of any such linked site. The inclusion of any link does not imply endorsement by Blue Wallet Services of the site. Use of any such linked website is at the user's own risk. + +7. Modifications + + Blue Wallet Services may revise these terms of service for its website at any time without notice. By using this website you are agreeing to be bound by the then current version of these terms of service. + +8. Governing Law + + These terms and conditions are governed by and construed in accordance with the laws of Republica Dominicana and you irrevocably submit to the exclusive jurisdiction of the courts in that State or location. + + \ No newline at end of file diff --git a/oldsite-backup/testpage/12eQ9m4sgAwTSQoNXkRABKhCXCsjm2jdVG.png b/oldsite-backup/testpage/12eQ9m4sgAwTSQoNXkRABKhCXCsjm2jdVG.png new file mode 100644 index 0000000..dc9e231 Binary files /dev/null and b/oldsite-backup/testpage/12eQ9m4sgAwTSQoNXkRABKhCXCsjm2jdVG.png differ diff --git a/oldsite-backup/testpage/3NLnALo49CFEF4tCRhCvz45ySSfz3UktZC.png b/oldsite-backup/testpage/3NLnALo49CFEF4tCRhCvz45ySSfz3UktZC.png new file mode 100644 index 0000000..5c75b6f Binary files /dev/null and b/oldsite-backup/testpage/3NLnALo49CFEF4tCRhCvz45ySSfz3UktZC.png differ diff --git a/oldsite-backup/testpage/80001870-cc04c380-84b6-11ea-99a3-c2c8e719a4bd.png b/oldsite-backup/testpage/80001870-cc04c380-84b6-11ea-99a3-c2c8e719a4bd.png new file mode 100644 index 0000000..1a3a421 Binary files /dev/null and b/oldsite-backup/testpage/80001870-cc04c380-84b6-11ea-99a3-c2c8e719a4bd.png differ diff --git a/oldsite-backup/testpage/BIP21+BOLT11.png b/oldsite-backup/testpage/BIP21+BOLT11.png new file mode 100644 index 0000000..1bf06af Binary files /dev/null and b/oldsite-backup/testpage/BIP21+BOLT11.png differ diff --git a/oldsite-backup/testpage/azteco.png b/oldsite-backup/testpage/azteco.png new file mode 100644 index 0000000..450335d Binary files /dev/null and b/oldsite-backup/testpage/azteco.png differ diff --git a/oldsite-backup/testpage/bc1quhnve8q4tk3unhmjts7ymxv8cd6w9xv8wy29uv.png b/oldsite-backup/testpage/bc1quhnve8q4tk3unhmjts7ymxv8cd6w9xv8wy29uv.png new file mode 100644 index 0000000..39b9373 Binary files /dev/null and b/oldsite-backup/testpage/bc1quhnve8q4tk3unhmjts7ymxv8cd6w9xv8wy29uv.png differ diff --git a/oldsite-backup/testpage/bc1qzrtn3xwlunlrm0n0uu23lr00gmdx4lnlavdy75.png b/oldsite-backup/testpage/bc1qzrtn3xwlunlrm0n0uu23lr00gmdx4lnlavdy75.png new file mode 100644 index 0000000..a8cda90 Binary files /dev/null and b/oldsite-backup/testpage/bc1qzrtn3xwlunlrm0n0uu23lr00gmdx4lnlavdy75.png differ diff --git a/oldsite-backup/testpage/bc1qzrtn3xwlunlrm0n0uu23lr00gmdx4lnlavdy75_caps.png b/oldsite-backup/testpage/bc1qzrtn3xwlunlrm0n0uu23lr00gmdx4lnlavdy75_caps.png new file mode 100644 index 0000000..d167a90 Binary files /dev/null and b/oldsite-backup/testpage/bc1qzrtn3xwlunlrm0n0uu23lr00gmdx4lnlavdy75_caps.png differ diff --git a/oldsite-backup/testpage/bluewallet_openlappbrowser.png b/oldsite-backup/testpage/bluewallet_openlappbrowser.png new file mode 100644 index 0000000..e18f57f Binary files /dev/null and b/oldsite-backup/testpage/bluewallet_openlappbrowser.png differ diff --git a/oldsite-backup/testpage/bolt11.png b/oldsite-backup/testpage/bolt11.png new file mode 100644 index 0000000..54005ab Binary files /dev/null and b/oldsite-backup/testpage/bolt11.png differ diff --git a/oldsite-backup/testpage/deeplink_bitcoin_caps_withamount_and_label.png b/oldsite-backup/testpage/deeplink_bitcoin_caps_withamount_and_label.png new file mode 100644 index 0000000..ffd47b7 Binary files /dev/null and b/oldsite-backup/testpage/deeplink_bitcoin_caps_withamount_and_label.png differ diff --git a/oldsite-backup/testpage/deeplink_bitcoin_caps_withamount_and_message.png b/oldsite-backup/testpage/deeplink_bitcoin_caps_withamount_and_message.png new file mode 100644 index 0000000..b81532e Binary files /dev/null and b/oldsite-backup/testpage/deeplink_bitcoin_caps_withamount_and_message.png differ diff --git a/oldsite-backup/testpage/index.html b/oldsite-backup/testpage/index.html new file mode 100644 index 0000000..7723bc0 --- /dev/null +++ b/oldsite-backup/testpage/index.html @@ -0,0 +1,163 @@ + + + + + + + + + + + Hello, bitcoin! + + + + + + +
+ + + + +
+ + + + +


+

Other deeplinks:

+ + + +
+ + + + + + +
+

Deeplinks prefixed with `bluewallet:`

+ + + + +
+ + +

lnurl playground

+ +





+ + +

Single address with transactions:

+ +
+
+ +
+ BITCOIN:BC1QUHNVE8Q4TK3UNHMJTS7YMXV8CD6W9XV8WY29UV +
+
+ +
+ bitcoin:3NLnALo49CFEF4tCRhCvz45ySSfz3UktZC +
+
+ +
+ bitcoin:12eQ9m4sgAwTSQoNXkRABKhCXCsjm2jdVG +
+
+ +





+ +

Extended pubkey with transactions:

+ +
+
+ +
+ zpub6r7jhKKm7BAVx3b3nSnuadY1WnshZYkhK8gKFoRLwK9rF3Mzv28BrGcCGA3ugGtawi1WLb2vyjQAX9ZTDGU5gNk2bLdTc3iEXr6tzR1ipNP +
+
+ +
+
+ +
+
+ +
+ + + + + + + + \ No newline at end of file diff --git a/oldsite-backup/testpage/lightning_bolt11.png b/oldsite-backup/testpage/lightning_bolt11.png new file mode 100644 index 0000000..3347faa Binary files /dev/null and b/oldsite-backup/testpage/lightning_bolt11.png differ diff --git a/oldsite-backup/testpage/safello_state_token.png b/oldsite-backup/testpage/safello_state_token.png new file mode 100644 index 0000000..9625e0e Binary files /dev/null and b/oldsite-backup/testpage/safello_state_token.png differ diff --git a/oldsite-backup/testpage/zpub6r7jhKKm7BAVx3b3nSnuadY1WnshZYkhK8gKFoRLwK9rF3Mzv28BrGcCGA3ugGtawi1WLb2vyjQAX9ZTDGU5gNk2bLdTc3iEXr6tzR1ipNP.gif b/oldsite-backup/testpage/zpub6r7jhKKm7BAVx3b3nSnuadY1WnshZYkhK8gKFoRLwK9rF3Mzv28BrGcCGA3ugGtawi1WLb2vyjQAX9ZTDGU5gNk2bLdTc3iEXr6tzR1ipNP.gif new file mode 100644 index 0000000..b45a5d2 Binary files /dev/null and b/oldsite-backup/testpage/zpub6r7jhKKm7BAVx3b3nSnuadY1WnshZYkhK8gKFoRLwK9rF3Mzv28BrGcCGA3ugGtawi1WLb2vyjQAX9ZTDGU5gNk2bLdTc3iEXr6tzR1ipNP.gif differ diff --git a/tos/index.html b/oldsite-backup/tos/index.html similarity index 100% rename from tos/index.html rename to oldsite-backup/tos/index.html diff --git a/trigger-build.html b/oldsite-backup/trigger-build.html similarity index 100% rename from trigger-build.html rename to oldsite-backup/trigger-build.html diff --git a/ven/bootstrap/css/bootstrap-grid.css b/oldsite-backup/ven/bootstrap/css/bootstrap-grid.css similarity index 100% rename from ven/bootstrap/css/bootstrap-grid.css rename to oldsite-backup/ven/bootstrap/css/bootstrap-grid.css diff --git a/ven/bootstrap/css/bootstrap-grid.min.css b/oldsite-backup/ven/bootstrap/css/bootstrap-grid.min.css similarity index 100% rename from ven/bootstrap/css/bootstrap-grid.min.css rename to oldsite-backup/ven/bootstrap/css/bootstrap-grid.min.css diff --git a/ven/bootstrap/css/bootstrap-reboot.css b/oldsite-backup/ven/bootstrap/css/bootstrap-reboot.css similarity index 100% rename from ven/bootstrap/css/bootstrap-reboot.css rename to oldsite-backup/ven/bootstrap/css/bootstrap-reboot.css diff --git a/ven/bootstrap/css/bootstrap-reboot.min.css b/oldsite-backup/ven/bootstrap/css/bootstrap-reboot.min.css similarity index 100% rename from ven/bootstrap/css/bootstrap-reboot.min.css rename to oldsite-backup/ven/bootstrap/css/bootstrap-reboot.min.css diff --git a/ven/bootstrap/css/bootstrap.css b/oldsite-backup/ven/bootstrap/css/bootstrap.css similarity index 100% rename from ven/bootstrap/css/bootstrap.css rename to oldsite-backup/ven/bootstrap/css/bootstrap.css diff --git a/ven/bootstrap/css/bootstrap.css.map b/oldsite-backup/ven/bootstrap/css/bootstrap.css.map similarity index 100% rename from ven/bootstrap/css/bootstrap.css.map rename to oldsite-backup/ven/bootstrap/css/bootstrap.css.map diff --git a/ven/bootstrap/css/bootstrap.min.css b/oldsite-backup/ven/bootstrap/css/bootstrap.min.css similarity index 100% rename from ven/bootstrap/css/bootstrap.min.css rename to oldsite-backup/ven/bootstrap/css/bootstrap.min.css diff --git a/ven/bootstrap/css/bootstrap.min.css.map b/oldsite-backup/ven/bootstrap/css/bootstrap.min.css.map similarity index 100% rename from ven/bootstrap/css/bootstrap.min.css.map rename to oldsite-backup/ven/bootstrap/css/bootstrap.min.css.map diff --git a/ven/bootstrap/js/bootstrap.bundle.js b/oldsite-backup/ven/bootstrap/js/bootstrap.bundle.js similarity index 100% rename from ven/bootstrap/js/bootstrap.bundle.js rename to oldsite-backup/ven/bootstrap/js/bootstrap.bundle.js diff --git a/ven/bootstrap/js/bootstrap.bundle.js.map b/oldsite-backup/ven/bootstrap/js/bootstrap.bundle.js.map similarity index 100% rename from ven/bootstrap/js/bootstrap.bundle.js.map rename to oldsite-backup/ven/bootstrap/js/bootstrap.bundle.js.map diff --git a/ven/bootstrap/js/bootstrap.bundle.min.js b/oldsite-backup/ven/bootstrap/js/bootstrap.bundle.min.js similarity index 100% rename from ven/bootstrap/js/bootstrap.bundle.min.js rename to oldsite-backup/ven/bootstrap/js/bootstrap.bundle.min.js diff --git a/ven/bootstrap/js/bootstrap.bundle.min.js.map b/oldsite-backup/ven/bootstrap/js/bootstrap.bundle.min.js.map similarity index 100% rename from ven/bootstrap/js/bootstrap.bundle.min.js.map rename to oldsite-backup/ven/bootstrap/js/bootstrap.bundle.min.js.map diff --git a/ven/bootstrap/js/bootstrap.js b/oldsite-backup/ven/bootstrap/js/bootstrap.js similarity index 100% rename from ven/bootstrap/js/bootstrap.js rename to oldsite-backup/ven/bootstrap/js/bootstrap.js diff --git a/ven/bootstrap/js/bootstrap.js.map b/oldsite-backup/ven/bootstrap/js/bootstrap.js.map similarity index 100% rename from ven/bootstrap/js/bootstrap.js.map rename to oldsite-backup/ven/bootstrap/js/bootstrap.js.map diff --git a/ven/bootstrap/js/bootstrap.min.js b/oldsite-backup/ven/bootstrap/js/bootstrap.min.js similarity index 100% rename from ven/bootstrap/js/bootstrap.min.js rename to oldsite-backup/ven/bootstrap/js/bootstrap.min.js diff --git a/ven/bootstrap/js/bootstrap.min.js.map b/oldsite-backup/ven/bootstrap/js/bootstrap.min.js.map similarity index 100% rename from ven/bootstrap/js/bootstrap.min.js.map rename to oldsite-backup/ven/bootstrap/js/bootstrap.min.js.map diff --git a/ven/font-awesome/css/font-awesome.css b/oldsite-backup/ven/font-awesome/css/font-awesome.css similarity index 100% rename from ven/font-awesome/css/font-awesome.css rename to oldsite-backup/ven/font-awesome/css/font-awesome.css diff --git a/ven/font-awesome/css/font-awesome.css.map b/oldsite-backup/ven/font-awesome/css/font-awesome.css.map similarity index 100% rename from ven/font-awesome/css/font-awesome.css.map rename to oldsite-backup/ven/font-awesome/css/font-awesome.css.map diff --git a/ven/font-awesome/css/font-awesome.min.css b/oldsite-backup/ven/font-awesome/css/font-awesome.min.css similarity index 100% rename from ven/font-awesome/css/font-awesome.min.css rename to oldsite-backup/ven/font-awesome/css/font-awesome.min.css diff --git a/ven/font-awesome/fonts/FontAwesome.otf b/oldsite-backup/ven/font-awesome/fonts/FontAwesome.otf similarity index 100% rename from ven/font-awesome/fonts/FontAwesome.otf rename to oldsite-backup/ven/font-awesome/fonts/FontAwesome.otf diff --git a/ven/font-awesome/fonts/fontawesome-webfont.eot b/oldsite-backup/ven/font-awesome/fonts/fontawesome-webfont.eot similarity index 100% rename from ven/font-awesome/fonts/fontawesome-webfont.eot rename to oldsite-backup/ven/font-awesome/fonts/fontawesome-webfont.eot diff --git a/ven/font-awesome/fonts/fontawesome-webfont.svg b/oldsite-backup/ven/font-awesome/fonts/fontawesome-webfont.svg similarity index 100% rename from ven/font-awesome/fonts/fontawesome-webfont.svg rename to oldsite-backup/ven/font-awesome/fonts/fontawesome-webfont.svg diff --git a/ven/font-awesome/fonts/fontawesome-webfont.ttf b/oldsite-backup/ven/font-awesome/fonts/fontawesome-webfont.ttf similarity index 100% rename from ven/font-awesome/fonts/fontawesome-webfont.ttf rename to oldsite-backup/ven/font-awesome/fonts/fontawesome-webfont.ttf diff --git a/ven/font-awesome/fonts/fontawesome-webfont.woff b/oldsite-backup/ven/font-awesome/fonts/fontawesome-webfont.woff similarity index 100% rename from ven/font-awesome/fonts/fontawesome-webfont.woff rename to oldsite-backup/ven/font-awesome/fonts/fontawesome-webfont.woff diff --git a/ven/font-awesome/fonts/fontawesome-webfont.woff2 b/oldsite-backup/ven/font-awesome/fonts/fontawesome-webfont.woff2 similarity index 100% rename from ven/font-awesome/fonts/fontawesome-webfont.woff2 rename to oldsite-backup/ven/font-awesome/fonts/fontawesome-webfont.woff2 diff --git a/ven/font-awesome/less/animated.less b/oldsite-backup/ven/font-awesome/less/animated.less similarity index 100% rename from ven/font-awesome/less/animated.less rename to oldsite-backup/ven/font-awesome/less/animated.less diff --git a/ven/font-awesome/less/bordered-pulled.less b/oldsite-backup/ven/font-awesome/less/bordered-pulled.less similarity index 100% rename from ven/font-awesome/less/bordered-pulled.less rename to oldsite-backup/ven/font-awesome/less/bordered-pulled.less diff --git a/ven/font-awesome/less/core.less b/oldsite-backup/ven/font-awesome/less/core.less similarity index 100% rename from ven/font-awesome/less/core.less rename to oldsite-backup/ven/font-awesome/less/core.less diff --git a/ven/font-awesome/less/fixed-width.less b/oldsite-backup/ven/font-awesome/less/fixed-width.less similarity index 100% rename from ven/font-awesome/less/fixed-width.less rename to oldsite-backup/ven/font-awesome/less/fixed-width.less diff --git a/ven/font-awesome/less/font-awesome.less b/oldsite-backup/ven/font-awesome/less/font-awesome.less similarity index 100% rename from ven/font-awesome/less/font-awesome.less rename to oldsite-backup/ven/font-awesome/less/font-awesome.less diff --git a/ven/font-awesome/less/icons.less b/oldsite-backup/ven/font-awesome/less/icons.less similarity index 100% rename from ven/font-awesome/less/icons.less rename to oldsite-backup/ven/font-awesome/less/icons.less diff --git a/ven/font-awesome/less/larger.less b/oldsite-backup/ven/font-awesome/less/larger.less similarity index 100% rename from ven/font-awesome/less/larger.less rename to oldsite-backup/ven/font-awesome/less/larger.less diff --git a/ven/font-awesome/less/list.less b/oldsite-backup/ven/font-awesome/less/list.less similarity index 100% rename from ven/font-awesome/less/list.less rename to oldsite-backup/ven/font-awesome/less/list.less diff --git a/ven/font-awesome/less/mixins.less b/oldsite-backup/ven/font-awesome/less/mixins.less similarity index 100% rename from ven/font-awesome/less/mixins.less rename to oldsite-backup/ven/font-awesome/less/mixins.less diff --git a/ven/font-awesome/less/path.less b/oldsite-backup/ven/font-awesome/less/path.less similarity index 100% rename from ven/font-awesome/less/path.less rename to oldsite-backup/ven/font-awesome/less/path.less diff --git a/ven/font-awesome/less/rotated-flipped.less b/oldsite-backup/ven/font-awesome/less/rotated-flipped.less similarity index 100% rename from ven/font-awesome/less/rotated-flipped.less rename to oldsite-backup/ven/font-awesome/less/rotated-flipped.less diff --git a/ven/font-awesome/less/screen-reader.less b/oldsite-backup/ven/font-awesome/less/screen-reader.less similarity index 100% rename from ven/font-awesome/less/screen-reader.less rename to oldsite-backup/ven/font-awesome/less/screen-reader.less diff --git a/ven/font-awesome/less/stacked.less b/oldsite-backup/ven/font-awesome/less/stacked.less similarity index 100% rename from ven/font-awesome/less/stacked.less rename to oldsite-backup/ven/font-awesome/less/stacked.less diff --git a/ven/font-awesome/less/variables.less b/oldsite-backup/ven/font-awesome/less/variables.less similarity index 100% rename from ven/font-awesome/less/variables.less rename to oldsite-backup/ven/font-awesome/less/variables.less diff --git a/ven/font-awesome/scss/_animated.scss b/oldsite-backup/ven/font-awesome/scss/_animated.scss similarity index 100% rename from ven/font-awesome/scss/_animated.scss rename to oldsite-backup/ven/font-awesome/scss/_animated.scss diff --git a/ven/font-awesome/scss/_bordered-pulled.scss b/oldsite-backup/ven/font-awesome/scss/_bordered-pulled.scss similarity index 100% rename from ven/font-awesome/scss/_bordered-pulled.scss rename to oldsite-backup/ven/font-awesome/scss/_bordered-pulled.scss diff --git a/ven/font-awesome/scss/_core.scss b/oldsite-backup/ven/font-awesome/scss/_core.scss similarity index 100% rename from ven/font-awesome/scss/_core.scss rename to oldsite-backup/ven/font-awesome/scss/_core.scss diff --git a/ven/font-awesome/scss/_fixed-width.scss b/oldsite-backup/ven/font-awesome/scss/_fixed-width.scss similarity index 100% rename from ven/font-awesome/scss/_fixed-width.scss rename to oldsite-backup/ven/font-awesome/scss/_fixed-width.scss diff --git a/ven/font-awesome/scss/_icons.scss b/oldsite-backup/ven/font-awesome/scss/_icons.scss similarity index 100% rename from ven/font-awesome/scss/_icons.scss rename to oldsite-backup/ven/font-awesome/scss/_icons.scss diff --git a/ven/font-awesome/scss/_larger.scss b/oldsite-backup/ven/font-awesome/scss/_larger.scss similarity index 100% rename from ven/font-awesome/scss/_larger.scss rename to oldsite-backup/ven/font-awesome/scss/_larger.scss diff --git a/ven/font-awesome/scss/_list.scss b/oldsite-backup/ven/font-awesome/scss/_list.scss similarity index 100% rename from ven/font-awesome/scss/_list.scss rename to oldsite-backup/ven/font-awesome/scss/_list.scss diff --git a/ven/font-awesome/scss/_mixins.scss b/oldsite-backup/ven/font-awesome/scss/_mixins.scss similarity index 100% rename from ven/font-awesome/scss/_mixins.scss rename to oldsite-backup/ven/font-awesome/scss/_mixins.scss diff --git a/ven/font-awesome/scss/_path.scss b/oldsite-backup/ven/font-awesome/scss/_path.scss similarity index 100% rename from ven/font-awesome/scss/_path.scss rename to oldsite-backup/ven/font-awesome/scss/_path.scss diff --git a/ven/font-awesome/scss/_rotated-flipped.scss b/oldsite-backup/ven/font-awesome/scss/_rotated-flipped.scss similarity index 100% rename from ven/font-awesome/scss/_rotated-flipped.scss rename to oldsite-backup/ven/font-awesome/scss/_rotated-flipped.scss diff --git a/ven/font-awesome/scss/_screen-reader.scss b/oldsite-backup/ven/font-awesome/scss/_screen-reader.scss similarity index 100% rename from ven/font-awesome/scss/_screen-reader.scss rename to oldsite-backup/ven/font-awesome/scss/_screen-reader.scss diff --git a/ven/font-awesome/scss/_stacked.scss b/oldsite-backup/ven/font-awesome/scss/_stacked.scss similarity index 100% rename from ven/font-awesome/scss/_stacked.scss rename to oldsite-backup/ven/font-awesome/scss/_stacked.scss diff --git a/ven/font-awesome/scss/_variables.scss b/oldsite-backup/ven/font-awesome/scss/_variables.scss similarity index 100% rename from ven/font-awesome/scss/_variables.scss rename to oldsite-backup/ven/font-awesome/scss/_variables.scss diff --git a/ven/font-awesome/scss/font-awesome.scss b/oldsite-backup/ven/font-awesome/scss/font-awesome.scss similarity index 100% rename from ven/font-awesome/scss/font-awesome.scss rename to oldsite-backup/ven/font-awesome/scss/font-awesome.scss diff --git a/ven/jquery-easing/jquery.easing.compatibility.js b/oldsite-backup/ven/jquery-easing/jquery.easing.compatibility.js similarity index 100% rename from ven/jquery-easing/jquery.easing.compatibility.js rename to oldsite-backup/ven/jquery-easing/jquery.easing.compatibility.js diff --git a/ven/jquery-easing/jquery.easing.js b/oldsite-backup/ven/jquery-easing/jquery.easing.js similarity index 100% rename from ven/jquery-easing/jquery.easing.js rename to oldsite-backup/ven/jquery-easing/jquery.easing.js diff --git a/ven/jquery-easing/jquery.easing.min.js b/oldsite-backup/ven/jquery-easing/jquery.easing.min.js similarity index 100% rename from ven/jquery-easing/jquery.easing.min.js rename to oldsite-backup/ven/jquery-easing/jquery.easing.min.js diff --git a/ven/jquery/jquery.js b/oldsite-backup/ven/jquery/jquery.js similarity index 100% rename from ven/jquery/jquery.js rename to oldsite-backup/ven/jquery/jquery.js diff --git a/ven/jquery/jquery.min.js b/oldsite-backup/ven/jquery/jquery.min.js similarity index 100% rename from ven/jquery/jquery.min.js rename to oldsite-backup/ven/jquery/jquery.min.js diff --git a/ven/jquery/jquery.min.map b/oldsite-backup/ven/jquery/jquery.min.map similarity index 100% rename from ven/jquery/jquery.min.map rename to oldsite-backup/ven/jquery/jquery.min.map diff --git a/ven/jquery/jquery.slim.js b/oldsite-backup/ven/jquery/jquery.slim.js similarity index 100% rename from ven/jquery/jquery.slim.js rename to oldsite-backup/ven/jquery/jquery.slim.js diff --git a/ven/jquery/jquery.slim.min.js b/oldsite-backup/ven/jquery/jquery.slim.min.js similarity index 100% rename from ven/jquery/jquery.slim.min.js rename to oldsite-backup/ven/jquery/jquery.slim.min.js diff --git a/ven/jquery/jquery.slim.min.map b/oldsite-backup/ven/jquery/jquery.slim.min.map similarity index 100% rename from ven/jquery/jquery.slim.min.map rename to oldsite-backup/ven/jquery/jquery.slim.min.map diff --git a/ven/simple-line-icons/css/simple-line-icons.css b/oldsite-backup/ven/simple-line-icons/css/simple-line-icons.css similarity index 100% rename from ven/simple-line-icons/css/simple-line-icons.css rename to oldsite-backup/ven/simple-line-icons/css/simple-line-icons.css diff --git a/ven/simple-line-icons/fonts/Simple-Line-Icons.eot b/oldsite-backup/ven/simple-line-icons/fonts/Simple-Line-Icons.eot similarity index 100% rename from ven/simple-line-icons/fonts/Simple-Line-Icons.eot rename to oldsite-backup/ven/simple-line-icons/fonts/Simple-Line-Icons.eot diff --git a/ven/simple-line-icons/fonts/Simple-Line-Icons.svg b/oldsite-backup/ven/simple-line-icons/fonts/Simple-Line-Icons.svg similarity index 100% rename from ven/simple-line-icons/fonts/Simple-Line-Icons.svg rename to oldsite-backup/ven/simple-line-icons/fonts/Simple-Line-Icons.svg diff --git a/ven/simple-line-icons/fonts/Simple-Line-Icons.ttf b/oldsite-backup/ven/simple-line-icons/fonts/Simple-Line-Icons.ttf similarity index 100% rename from ven/simple-line-icons/fonts/Simple-Line-Icons.ttf rename to oldsite-backup/ven/simple-line-icons/fonts/Simple-Line-Icons.ttf diff --git a/ven/simple-line-icons/fonts/Simple-Line-Icons.woff b/oldsite-backup/ven/simple-line-icons/fonts/Simple-Line-Icons.woff similarity index 100% rename from ven/simple-line-icons/fonts/Simple-Line-Icons.woff rename to oldsite-backup/ven/simple-line-icons/fonts/Simple-Line-Icons.woff diff --git a/ven/simple-line-icons/fonts/Simple-Line-Icons.woff2 b/oldsite-backup/ven/simple-line-icons/fonts/Simple-Line-Icons.woff2 similarity index 100% rename from ven/simple-line-icons/fonts/Simple-Line-Icons.woff2 rename to oldsite-backup/ven/simple-line-icons/fonts/Simple-Line-Icons.woff2 diff --git a/ven/simple-line-icons/less/simple-line-icons.less b/oldsite-backup/ven/simple-line-icons/less/simple-line-icons.less similarity index 100% rename from ven/simple-line-icons/less/simple-line-icons.less rename to oldsite-backup/ven/simple-line-icons/less/simple-line-icons.less diff --git a/ven/simple-line-icons/scss/simple-line-icons.scss b/oldsite-backup/ven/simple-line-icons/scss/simple-line-icons.scss similarity index 100% rename from ven/simple-line-icons/scss/simple-line-icons.scss rename to oldsite-backup/ven/simple-line-icons/scss/simple-line-icons.scss diff --git a/vendor/bootstrap/css/bootstrap.css b/oldsite-backup/vendor/bootstrap/css/bootstrap.css similarity index 100% rename from vendor/bootstrap/css/bootstrap.css rename to oldsite-backup/vendor/bootstrap/css/bootstrap.css diff --git a/vendor/bootstrap/css/bootstrap.css.map b/oldsite-backup/vendor/bootstrap/css/bootstrap.css.map similarity index 100% rename from vendor/bootstrap/css/bootstrap.css.map rename to oldsite-backup/vendor/bootstrap/css/bootstrap.css.map diff --git a/vendor/bootstrap/css/bootstrap.min.css b/oldsite-backup/vendor/bootstrap/css/bootstrap.min.css similarity index 100% rename from vendor/bootstrap/css/bootstrap.min.css rename to oldsite-backup/vendor/bootstrap/css/bootstrap.min.css diff --git a/vendor/bootstrap/css/bootstrap.min.css.map b/oldsite-backup/vendor/bootstrap/css/bootstrap.min.css.map similarity index 100% rename from vendor/bootstrap/css/bootstrap.min.css.map rename to oldsite-backup/vendor/bootstrap/css/bootstrap.min.css.map diff --git a/vendor/bootstrap/js/bootstrap.bundle.js b/oldsite-backup/vendor/bootstrap/js/bootstrap.bundle.js similarity index 100% rename from vendor/bootstrap/js/bootstrap.bundle.js rename to oldsite-backup/vendor/bootstrap/js/bootstrap.bundle.js diff --git a/vendor/bootstrap/js/bootstrap.bundle.js.map b/oldsite-backup/vendor/bootstrap/js/bootstrap.bundle.js.map similarity index 100% rename from vendor/bootstrap/js/bootstrap.bundle.js.map rename to oldsite-backup/vendor/bootstrap/js/bootstrap.bundle.js.map diff --git a/vendor/bootstrap/js/bootstrap.bundle.min.js b/oldsite-backup/vendor/bootstrap/js/bootstrap.bundle.min.js similarity index 100% rename from vendor/bootstrap/js/bootstrap.bundle.min.js rename to oldsite-backup/vendor/bootstrap/js/bootstrap.bundle.min.js diff --git a/vendor/bootstrap/js/bootstrap.bundle.min.js.map b/oldsite-backup/vendor/bootstrap/js/bootstrap.bundle.min.js.map similarity index 100% rename from vendor/bootstrap/js/bootstrap.bundle.min.js.map rename to oldsite-backup/vendor/bootstrap/js/bootstrap.bundle.min.js.map diff --git a/vendor/bootstrap/js/bootstrap.js b/oldsite-backup/vendor/bootstrap/js/bootstrap.js similarity index 100% rename from vendor/bootstrap/js/bootstrap.js rename to oldsite-backup/vendor/bootstrap/js/bootstrap.js diff --git a/vendor/bootstrap/js/bootstrap.js.map b/oldsite-backup/vendor/bootstrap/js/bootstrap.js.map similarity index 100% rename from vendor/bootstrap/js/bootstrap.js.map rename to oldsite-backup/vendor/bootstrap/js/bootstrap.js.map diff --git a/vendor/bootstrap/js/bootstrap.min.js b/oldsite-backup/vendor/bootstrap/js/bootstrap.min.js similarity index 100% rename from vendor/bootstrap/js/bootstrap.min.js rename to oldsite-backup/vendor/bootstrap/js/bootstrap.min.js diff --git a/vendor/bootstrap/js/bootstrap.min.js.map b/oldsite-backup/vendor/bootstrap/js/bootstrap.min.js.map similarity index 100% rename from vendor/bootstrap/js/bootstrap.min.js.map rename to oldsite-backup/vendor/bootstrap/js/bootstrap.min.js.map diff --git a/vendor/font-awesome/css/font-awesome.css b/oldsite-backup/vendor/font-awesome/css/font-awesome.css similarity index 100% rename from vendor/font-awesome/css/font-awesome.css rename to oldsite-backup/vendor/font-awesome/css/font-awesome.css diff --git a/vendor/font-awesome/css/font-awesome.css.map b/oldsite-backup/vendor/font-awesome/css/font-awesome.css.map similarity index 100% rename from vendor/font-awesome/css/font-awesome.css.map rename to oldsite-backup/vendor/font-awesome/css/font-awesome.css.map diff --git a/vendor/font-awesome/css/font-awesome.min.css b/oldsite-backup/vendor/font-awesome/css/font-awesome.min.css similarity index 100% rename from vendor/font-awesome/css/font-awesome.min.css rename to oldsite-backup/vendor/font-awesome/css/font-awesome.min.css diff --git a/vendor/font-awesome/fonts/FontAwesome.otf b/oldsite-backup/vendor/font-awesome/fonts/FontAwesome.otf similarity index 100% rename from vendor/font-awesome/fonts/FontAwesome.otf rename to oldsite-backup/vendor/font-awesome/fonts/FontAwesome.otf diff --git a/vendor/font-awesome/fonts/fontawesome-webfont.eot b/oldsite-backup/vendor/font-awesome/fonts/fontawesome-webfont.eot similarity index 100% rename from vendor/font-awesome/fonts/fontawesome-webfont.eot rename to oldsite-backup/vendor/font-awesome/fonts/fontawesome-webfont.eot diff --git a/vendor/font-awesome/fonts/fontawesome-webfont.svg b/oldsite-backup/vendor/font-awesome/fonts/fontawesome-webfont.svg similarity index 100% rename from vendor/font-awesome/fonts/fontawesome-webfont.svg rename to oldsite-backup/vendor/font-awesome/fonts/fontawesome-webfont.svg diff --git a/vendor/font-awesome/fonts/fontawesome-webfont.ttf b/oldsite-backup/vendor/font-awesome/fonts/fontawesome-webfont.ttf similarity index 100% rename from vendor/font-awesome/fonts/fontawesome-webfont.ttf rename to oldsite-backup/vendor/font-awesome/fonts/fontawesome-webfont.ttf diff --git a/vendor/font-awesome/fonts/fontawesome-webfont.woff b/oldsite-backup/vendor/font-awesome/fonts/fontawesome-webfont.woff similarity index 100% rename from vendor/font-awesome/fonts/fontawesome-webfont.woff rename to oldsite-backup/vendor/font-awesome/fonts/fontawesome-webfont.woff diff --git a/vendor/font-awesome/fonts/fontawesome-webfont.woff2 b/oldsite-backup/vendor/font-awesome/fonts/fontawesome-webfont.woff2 similarity index 100% rename from vendor/font-awesome/fonts/fontawesome-webfont.woff2 rename to oldsite-backup/vendor/font-awesome/fonts/fontawesome-webfont.woff2 diff --git a/vendor/jquery-easing/jquery.easing.compatibility.js b/oldsite-backup/vendor/jquery-easing/jquery.easing.compatibility.js similarity index 100% rename from vendor/jquery-easing/jquery.easing.compatibility.js rename to oldsite-backup/vendor/jquery-easing/jquery.easing.compatibility.js diff --git a/vendor/jquery-easing/jquery.easing.js b/oldsite-backup/vendor/jquery-easing/jquery.easing.js similarity index 100% rename from vendor/jquery-easing/jquery.easing.js rename to oldsite-backup/vendor/jquery-easing/jquery.easing.js diff --git a/vendor/jquery-easing/jquery.easing.min.js b/oldsite-backup/vendor/jquery-easing/jquery.easing.min.js similarity index 100% rename from vendor/jquery-easing/jquery.easing.min.js rename to oldsite-backup/vendor/jquery-easing/jquery.easing.min.js diff --git a/vendor/jquery/jquery.js b/oldsite-backup/vendor/jquery/jquery.js similarity index 100% rename from vendor/jquery/jquery.js rename to oldsite-backup/vendor/jquery/jquery.js diff --git a/vendor/jquery/jquery.min.js b/oldsite-backup/vendor/jquery/jquery.min.js similarity index 100% rename from vendor/jquery/jquery.min.js rename to oldsite-backup/vendor/jquery/jquery.min.js diff --git a/vendor/jquery/jquery.min.map b/oldsite-backup/vendor/jquery/jquery.min.map similarity index 100% rename from vendor/jquery/jquery.min.map rename to oldsite-backup/vendor/jquery/jquery.min.map diff --git a/vendor/jquery/jquery.slim.js b/oldsite-backup/vendor/jquery/jquery.slim.js similarity index 100% rename from vendor/jquery/jquery.slim.js rename to oldsite-backup/vendor/jquery/jquery.slim.js diff --git a/vendor/jquery/jquery.slim.min.js b/oldsite-backup/vendor/jquery/jquery.slim.min.js similarity index 100% rename from vendor/jquery/jquery.slim.min.js rename to oldsite-backup/vendor/jquery/jquery.slim.min.js diff --git a/vendor/jquery/jquery.slim.min.map b/oldsite-backup/vendor/jquery/jquery.slim.min.map similarity index 100% rename from vendor/jquery/jquery.slim.min.map rename to oldsite-backup/vendor/jquery/jquery.slim.min.map diff --git a/vendor/simple-line-icons/css/simple-line-icons.css b/oldsite-backup/vendor/simple-line-icons/css/simple-line-icons.css similarity index 100% rename from vendor/simple-line-icons/css/simple-line-icons.css rename to oldsite-backup/vendor/simple-line-icons/css/simple-line-icons.css diff --git a/vendor/simple-line-icons/fonts/Simple-Line-Icons.eot b/oldsite-backup/vendor/simple-line-icons/fonts/Simple-Line-Icons.eot similarity index 100% rename from vendor/simple-line-icons/fonts/Simple-Line-Icons.eot rename to oldsite-backup/vendor/simple-line-icons/fonts/Simple-Line-Icons.eot diff --git a/vendor/simple-line-icons/fonts/Simple-Line-Icons.svg b/oldsite-backup/vendor/simple-line-icons/fonts/Simple-Line-Icons.svg similarity index 100% rename from vendor/simple-line-icons/fonts/Simple-Line-Icons.svg rename to oldsite-backup/vendor/simple-line-icons/fonts/Simple-Line-Icons.svg diff --git a/vendor/simple-line-icons/fonts/Simple-Line-Icons.ttf b/oldsite-backup/vendor/simple-line-icons/fonts/Simple-Line-Icons.ttf similarity index 100% rename from vendor/simple-line-icons/fonts/Simple-Line-Icons.ttf rename to oldsite-backup/vendor/simple-line-icons/fonts/Simple-Line-Icons.ttf diff --git a/vendor/simple-line-icons/fonts/Simple-Line-Icons.woff b/oldsite-backup/vendor/simple-line-icons/fonts/Simple-Line-Icons.woff similarity index 100% rename from vendor/simple-line-icons/fonts/Simple-Line-Icons.woff rename to oldsite-backup/vendor/simple-line-icons/fonts/Simple-Line-Icons.woff diff --git a/vendor/simple-line-icons/fonts/Simple-Line-Icons.woff2 b/oldsite-backup/vendor/simple-line-icons/fonts/Simple-Line-Icons.woff2 similarity index 100% rename from vendor/simple-line-icons/fonts/Simple-Line-Icons.woff2 rename to oldsite-backup/vendor/simple-line-icons/fonts/Simple-Line-Icons.woff2 diff --git a/watch-app/index.html b/oldsite-backup/watch-app/index.html similarity index 100% rename from watch-app/index.html rename to oldsite-backup/watch-app/index.html diff --git a/watch-only/index.html b/oldsite-backup/watch-only/index.html similarity index 100% rename from watch-only/index.html rename to oldsite-backup/watch-only/index.html diff --git a/yarn.lock b/oldsite-backup/yarn.lock similarity index 100% rename from yarn.lock rename to oldsite-backup/yarn.lock diff --git a/package-lock.json b/package-lock.json index 2a4f603..48e341a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,10712 +1,3 @@ { - "name": "startbootstrap-new-age", - "version": "4.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", - "requires": { - "@babel/highlight": "^7.0.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz", - "integrity": "sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==", - "requires": { - "@babel/types": "^7.7.4" - } - }, - "@babel/highlight": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", - "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/runtime": { - "version": "7.7.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.6.tgz", - "integrity": "sha512-BWAJxpNVa0QlE5gZdWjSxXtemZyZ9RmrmVozxt3NUXeZhVIJ5ANyqmMc0JDrivBZyxUuQvFxlvH4OWWOogGfUw==", - "requires": { - "regenerator-runtime": "^0.13.2" - } - }, - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "@emotion/babel-utils": { - "version": "0.6.10", - "resolved": "https://registry.npmjs.org/@emotion/babel-utils/-/babel-utils-0.6.10.tgz", - "integrity": "sha512-/fnkM/LTEp3jKe++T0KyTszVGWNKPNOUJfjNKLO17BzQ6QPxgbg3whayom1Qr2oLFH3V92tDymU+dT5q676uow==", - "requires": { - "@emotion/hash": "^0.6.6", - "@emotion/memoize": "^0.6.6", - "@emotion/serialize": "^0.9.1", - "convert-source-map": "^1.5.1", - "find-root": "^1.1.0", - "source-map": "^0.7.2" - }, - "dependencies": { - "@emotion/hash": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.6.6.tgz", - "integrity": "sha512-ojhgxzUHZ7am3D2jHkMzPpsBAiB005GF5YU4ea+8DNPybMk01JJUM9V9YRlF/GE95tcOm8DxQvWA2jq19bGalQ==" - }, - "@emotion/memoize": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.6.6.tgz", - "integrity": "sha512-h4t4jFjtm1YV7UirAFuSuFGyLa+NNxjdkq6DpFLANNQY5rHueFZHVY+8Cu1HYVP6DrheB0kv4m5xPjo7eKT7yQ==" - }, - "@emotion/serialize": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.9.1.tgz", - "integrity": "sha512-zTuAFtyPvCctHBEL8KZ5lJuwBanGSutFEncqLn/m9T1a6a93smBStK+bZzcNPgj4QS8Rkw9VTwJGhRIUVO8zsQ==", - "requires": { - "@emotion/hash": "^0.6.6", - "@emotion/memoize": "^0.6.6", - "@emotion/unitless": "^0.6.7", - "@emotion/utils": "^0.8.2" - } - }, - "@emotion/unitless": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.6.7.tgz", - "integrity": "sha512-Arj1hncvEVqQ2p7Ega08uHLr1JuRYBuO5cIvcA+WWEQ5+VmkOE3ZXzl04NbQxeQpWX78G7u6MqxKuNX3wvYZxg==" - }, - "@emotion/utils": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.8.2.tgz", - "integrity": "sha512-rLu3wcBWH4P5q1CGoSSH/i9hrXs7SlbRLkoq9IGuoPYNGQvDJ3pt/wmOM+XgYjIDRMVIdkUWt0RsfzF50JfnCw==" - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - } - } - }, - "@emotion/cache": { - "version": "10.0.19", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.19.tgz", - "integrity": "sha512-BoiLlk4vEsGBg2dAqGSJu0vJl/PgVtCYLBFJaEO8RmQzPugXewQCXZJNXTDFaRlfCs0W+quesayav4fvaif5WQ==", - "requires": { - "@emotion/sheet": "0.9.3", - "@emotion/stylis": "0.8.4", - "@emotion/utils": "0.11.2", - "@emotion/weak-memoize": "0.2.4" - } - }, - "@emotion/core": { - "version": "10.0.22", - "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.0.22.tgz", - "integrity": "sha512-7eoP6KQVUyOjAkE6y4fdlxbZRA4ILs7dqkkm6oZUJmihtHv0UBq98VgPirq9T8F9K2gKu0J/au/TpKryKMinaA==", - "requires": { - "@babel/runtime": "^7.5.5", - "@emotion/cache": "^10.0.17", - "@emotion/css": "^10.0.22", - "@emotion/serialize": "^0.11.12", - "@emotion/sheet": "0.9.3", - "@emotion/utils": "0.11.2" - } - }, - "@emotion/css": { - "version": "10.0.22", - "resolved": "https://registry.npmjs.org/@emotion/css/-/css-10.0.22.tgz", - "integrity": "sha512-8phfa5mC/OadBTmGpMpwykIVH0gFCbUoO684LUkyixPq4F1Wwri7fK5Xlm8lURNBrd2TuvTbPUGxFsGxF9UacA==", - "requires": { - "@emotion/serialize": "^0.11.12", - "@emotion/utils": "0.11.2", - "babel-plugin-emotion": "^10.0.22" - } - }, - "@emotion/hash": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.7.3.tgz", - "integrity": "sha512-14ZVlsB9akwvydAdaEnVnvqu6J2P6ySv39hYyl/aoB6w/V+bXX0tay8cF6paqbgZsN2n5Xh15uF4pE+GvE+itw==" - }, - "@emotion/is-prop-valid": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.5.tgz", - "integrity": "sha512-6ZODuZSFofbxSbcxwsFz+6ioPjb0ISJRRPLZ+WIbjcU2IMU0Io+RGQjjaTgOvNQl007KICBm7zXQaYQEC1r6Bg==", - "requires": { - "@emotion/memoize": "0.7.3" - } - }, - "@emotion/memoize": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.3.tgz", - "integrity": "sha512-2Md9mH6mvo+ygq1trTeVp2uzAKwE2P7In0cRpD/M9Q70aH8L+rxMLbb3JCN2JoSWsV2O+DdFjfbbXoMoLBczow==" - }, - "@emotion/serialize": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.14.tgz", - "integrity": "sha512-6hTsySIuQTbDbv00AnUO6O6Xafdwo5GswRlMZ5hHqiFx+4pZ7uGWXUQFW46Kc2taGhP89uXMXn/lWQkdyTosPA==", - "requires": { - "@emotion/hash": "0.7.3", - "@emotion/memoize": "0.7.3", - "@emotion/unitless": "0.7.4", - "@emotion/utils": "0.11.2", - "csstype": "^2.5.7" - } - }, - "@emotion/sheet": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.3.tgz", - "integrity": "sha512-c3Q6V7Df7jfwSq5AzQWbXHa5soeE4F5cbqi40xn0CzXxWW9/6Mxq48WJEtqfWzbZtW9odZdnRAkwCQwN12ob4A==" - }, - "@emotion/styled": { - "version": "10.0.23", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-10.0.23.tgz", - "integrity": "sha512-gNr04eqBQ2iYUx8wFLZDfm3N8/QUOODu/ReDXa693uyQGy2OqA+IhPJk+kA7id8aOfwAsMuvZ0pJImEXXKtaVQ==", - "requires": { - "@emotion/styled-base": "^10.0.23", - "babel-plugin-emotion": "^10.0.23" - } - }, - "@emotion/styled-base": { - "version": "10.0.24", - "resolved": "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.0.24.tgz", - "integrity": "sha512-AnBImerf0h4dGAJVo0p0VE8KoAns71F28ErGFK474zbNAHX6yqSWQUasb+1jvg/VPwZjCp19+tAr6oOB0pwmLQ==", - "requires": { - "@babel/runtime": "^7.5.5", - "@emotion/is-prop-valid": "0.8.5", - "@emotion/serialize": "^0.11.14", - "@emotion/utils": "0.11.2" - } - }, - "@emotion/stylis": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.4.tgz", - "integrity": "sha512-TLmkCVm8f8gH0oLv+HWKiu7e8xmBIaokhxcEKPh1m8pXiV/akCiq50FvYgOwY42rjejck8nsdQxZlXZ7pmyBUQ==" - }, - "@emotion/unitless": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.4.tgz", - "integrity": "sha512-kBa+cDHOR9jpRJ+kcGMsysrls0leukrm68DmFQoMIWQcXdr2cZvyvypWuGYT7U+9kAExUE7+T7r6G3C3A6L8MQ==" - }, - "@emotion/utils": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.2.tgz", - "integrity": "sha512-UHX2XklLl3sIaP6oiMmlVzT0J+2ATTVpf0dHQVyPJHTkOITvXfaSqnRk6mdDhV9pR8T/tHc3cex78IKXssmzrA==" - }, - "@emotion/weak-memoize": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.4.tgz", - "integrity": "sha512-6PYY5DVdAY1ifaQW6XYTnOMihmBVT27elqSjEoodchsGjzYlEsTQMcEhSud99kVawatyTZRTiVkJ/c6lwbQ7nA==" - }, - "@pieh/friendly-errors-webpack-plugin": { - "version": "1.7.0-chalk-2", - "resolved": "https://registry.npmjs.org/@pieh/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0-chalk-2.tgz", - "integrity": "sha512-65+vYGuDkHBCWWjqzzR/Ck318+d6yTI00EqII9qe3aPD1J3Olhvw0X38uM5moQb1PK/ksDXwSoPGt/5QhCiotw==", - "requires": { - "chalk": "^2.4.2", - "error-stack-parser": "^2.0.0", - "string-width": "^2.0.0", - "strip-ansi": "^3" - } - }, - "@types/hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", - "requires": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" - }, - "@types/prop-types": { - "version": "15.7.3", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", - "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" - }, - "@types/react": { - "version": "16.9.15", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.15.tgz", - "integrity": "sha512-WsmM1b6xQn1tG3X2Hx4F3bZwc2E82pJXt5OPs2YJgg71IzvUoKOSSSYOvLXYCg1ttipM+UuA4Lj3sfvqjVxyZw==", - "requires": { - "@types/prop-types": "*", - "csstype": "^2.2.0" - } - }, - "@webassemblyjs/ast": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", - "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", - "requires": { - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", - "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==" - }, - "@webassemblyjs/helper-api-error": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", - "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==" - }, - "@webassemblyjs/helper-buffer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", - "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==" - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", - "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", - "requires": { - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", - "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==" - }, - "@webassemblyjs/helper-module-context": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", - "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "mamacro": "^0.0.3" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", - "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==" - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", - "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", - "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", - "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", - "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==" - }, - "@webassemblyjs/wasm-edit": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", - "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/helper-wasm-section": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-opt": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", - "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", - "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", - "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", - "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/floating-point-hex-parser": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-code-frame": "1.8.5", - "@webassemblyjs/helper-fsm": "1.8.5", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", - "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "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.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", - "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==" - }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", - "dev": true - }, - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" - }, - "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==" - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true - }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==" - }, - "ansi-cyan": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", - "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-red": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", - "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "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==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "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.0.6" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "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==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true - }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "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-iterate": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-1.1.3.tgz", - "integrity": "sha512-7MIv7HE9MuzfK6B2UnWv07oSHBLOaY1UUXAxZ07bIeRM+4IkPTlveMDs9MY//qvxPZPSvCn2XV4bmtQgSkVodg==" - }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", - "dev": true - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "requires": { - "inherits": "2.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 - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "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.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" - }, - "async-each-series": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", - "integrity": "sha1-dhfBkXQB/Yykooqtzj266Yr+tDI=", - "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.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true - }, - "aws4": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz", - "integrity": "sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==", - "dev": true - }, - "babel-plugin-emotion": { - "version": "10.0.23", - "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.23.tgz", - "integrity": "sha512-1JiCyXU0t5S2xCbItejCduLGGcKmF3POT0Ujbexog2MI4IlRcIn/kWjkYwCUZlxpON0O5FC635yPl/3slr7cKQ==", - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@emotion/hash": "0.7.3", - "@emotion/memoize": "0.7.3", - "@emotion/serialize": "^0.11.14", - "babel-plugin-macros": "^2.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^1.0.5", - "find-root": "^1.1.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=" - } - } - }, - "babel-plugin-macros": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", - "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", - "requires": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" - } - }, - "babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", - "dev": true - }, - "bail": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.4.tgz", - "integrity": "sha512-S8vuDB4w6YpRhICUDET3guPlQpaJl7od94tpZ0Fvnyp+MKW/HyDTcRDck+29C9g+d/qQHnddRH3+94kZdrW0Ww==" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "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=", - "requires": { - "is-descriptor": "^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==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "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==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", - "dev": true - }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" - }, - "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", - "dev": true - }, - "batch": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz", - "integrity": "sha1-PzQU84AyF0O/wQQvmoP/HVgk1GQ=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "beeper": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", - "dev": true - }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "dev": true, - "requires": { - "callsite": "1.0.0" - } - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" - }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", - "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.0" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" - }, - "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.x.x" - } - }, - "bootstrap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.0.0.tgz", - "integrity": "sha512-gulJE5dGFo6Q61V/whS6VM4WIyrlydXfCgkE+Gxe5hjrJ8rXLLZlALq7zq2RPhOc45PSwQpJkrTnc2KgD6cvmA==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "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.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browser-sync": { - "version": "2.23.6", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.23.6.tgz", - "integrity": "sha512-loCO5NQKZXfBJrEvmLwF1TPSECCsPopNd29qduoysLmpw8op2lgolGMjz3oI/MjG4duzB9TfDs7k58djRSwPwg==", - "dev": true, - "requires": { - "browser-sync-ui": "v1.0.1", - "bs-recipes": "1.3.4", - "chokidar": "1.7.0", - "connect": "3.5.0", - "connect-history-api-fallback": "^1.5.0", - "dev-ip": "^1.0.1", - "easy-extender": "2.3.2", - "eazy-logger": "3.0.2", - "emitter-steward": "^1.0.0", - "etag": "^1.8.1", - "fresh": "^0.5.2", - "fs-extra": "3.0.1", - "http-proxy": "1.15.2", - "immutable": "3.8.2", - "localtunnel": "1.8.3", - "micromatch": "2.3.11", - "opn": "4.0.2", - "portscanner": "2.1.1", - "qs": "6.2.1", - "resp-modifier": "6.0.2", - "rx": "4.1.0", - "serve-index": "1.8.0", - "serve-static": "1.12.2", - "server-destroy": "1.0.1", - "socket.io": "2.0.4", - "ua-parser-js": "0.7.12", - "yargs": "6.4.0" - }, - "dependencies": { - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "dev": true, - "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" - } - }, - "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.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "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.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "dev": true, - "requires": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "fsevents": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.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.0" - } - }, - "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" - } - }, - "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.0" - } - }, - "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-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" - } - }, - "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.5" - } - }, - "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.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "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.0.1" - } - }, - "ua-parser-js": { - "version": "0.7.12", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.12.tgz", - "integrity": "sha1-BMgamb3V3FImPqKdJMa/jUgYpLs=", - "dev": true - } - } - }, - "browser-sync-ui": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-1.0.1.tgz", - "integrity": "sha512-RIxmwVVcUFhRd1zxp7m2FfLnXHf59x4Gtj8HFwTA//3VgYI3AKkaQAuDL8KDJnE59XqCshxZa13JYuIWtZlKQg==", - "dev": true, - "requires": { - "async-each-series": "0.1.1", - "connect-history-api-fallback": "^1.1.0", - "immutable": "^3.7.6", - "server-destroy": "1.0.1", - "socket.io-client": "2.0.4", - "stream-throttle": "^0.1.3" - } - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "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==", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" - } - }, - "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==", - "requires": { - "pako": "~1.0.5" - } - }, - "bs-recipes": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", - "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=", - "dev": true - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "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=" - }, - "cacache": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz", - "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==", - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "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" - } - }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", - "dev": true - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" - }, - "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.0.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - } - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "ccount": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.4.tgz", - "integrity": "sha512-fpZ81yYfzentuieinmGnphk0pLkOTMm6MZdVqwd77ROvhko6iujLNGrHH5E7utq3ygWklwfmwuG+A7P+NpqT6w==" - }, - "chain-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chain-function/-/chain-function-1.0.1.tgz", - "integrity": "sha512-SxltgMwL9uCko5/ZCLiyG2B7R9fY4pDZUw7hJ4MhirdjBLosoDqkWABi3XMucddHdLiFJMb7PD2MZifZriuMTg==" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "character-entities": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.3.tgz", - "integrity": "sha512-yB4oYSAa9yLcGyTbB4ItFwHw43QHdH129IJ5R+WvxOkWlyFnR5FAaBNnUq4mcxsTVZGh28bHoeTHMKXH1wZf3w==" - }, - "character-entities-html4": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.3.tgz", - "integrity": "sha512-SwnyZ7jQBCRHELk9zf2CN5AnGEc2nA+uKMZLHvcqhpPprjkYhiLn0DywMHgN5ttFZuITMATbh68M6VIVKwJbcg==" - }, - "character-entities-legacy": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.3.tgz", - "integrity": "sha512-YAxUpPoPwxYFsslbdKkhrGnXAtXoHNgYjlBM3WMXkWGTl5RsY3QmOyhwAgL8Nxm9l5LBThXGawxKPn68y6/fww==" - }, - "character-reference-invalid": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.3.tgz", - "integrity": "sha512-VOq6PRzQBam/8Jm6XBGk2fNEnHXAdGd6go0rtd4weAGECBamHDwwCQSOT12TACIYUZegUXnV6xBXqUssijtxIg==" - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "chownr": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", - "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==" - }, - "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "requires": { - "tslib": "^1.9.0" - } - }, - "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==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "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==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "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=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" - }, - "clean-css": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", - "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", - "requires": { - "source-map": "~0.6.0" - } - }, - "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.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - }, - "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.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.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", - "dev": true - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "collapse-white-space": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.5.tgz", - "integrity": "sha512-703bOOmytCYAX9cXYqoikYIx6twmFCXsnzRQheBcTG3nzKYBR4P/+wkYeH+Mvj7qUz8zZDtdyzbxfnEi/kYzRQ==" - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "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=" - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "comma-separated-tokens": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.7.tgz", - "integrity": "sha512-Jrx3xsP4pPv4AwJUDWY9wOXGtwPXARej6Xd99h4TUGotmf8APuquKMpK+dnD3UgyxK7OEWaisjZz+3b5jtL6xQ==" - }, - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" - }, - "common-tags": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", - "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "concat-with-sourcemaps": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", - "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - } - }, - "connect": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.5.0.tgz", - "integrity": "sha1-s1dSWgtMH1BZnNmD4dnv7qlncZg=", - "dev": true, - "requires": { - "debug": "~2.2.0", - "finalhandler": "0.5.0", - "parseurl": "~1.3.1", - "utils-merge": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true, - "requires": { - "ms": "0.7.1" - } - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - } - } - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" - }, - "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 - }, - "consolidated-events": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/consolidated-events/-/consolidated-events-2.0.2.tgz", - "integrity": "sha512-2/uRVMdRypf5z/TW/ncD/66l75P5hH2vM/GR8Jf8HLc2xnfJtmina6F6du8+v4Z2vTrMo7jC+W1tmEEuuELgkQ==" - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "copy-text-to-clipboard": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-2.1.1.tgz", - "integrity": "sha512-oSuMj4ArDGSLcLPsDhzWOhalzOVV0ErCHNfZNNr+spC+iWJ6PVSLzPPrJw/rcdFZyOhugn8iw6O0nrpY/ZrEMg==" - }, - "copy-webpack-plugin": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.0.5.tgz", - "integrity": "sha512-7N68eIoQTyudAuxkfPT7HzGoQ+TsmArN/I3HFwG+lVE3FNzqvZKIiaxtYh4o3BIznioxUvx9j26+Rtsc9htQUQ==", - "requires": { - "cacache": "^12.0.3", - "find-cache-dir": "^2.1.0", - "glob-parent": "^3.1.0", - "globby": "^7.1.1", - "is-glob": "^4.0.1", - "loader-utils": "^1.2.3", - "minimatch": "^3.0.4", - "normalize-path": "^3.0.0", - "p-limit": "^2.2.1", - "schema-utils": "^1.0.0", - "serialize-javascript": "^2.1.0", - "webpack-log": "^2.0.0" - } - }, - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" - }, - "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": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "dependencies": { - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - } - } - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "create-emotion": { - "version": "9.2.12", - "resolved": "https://registry.npmjs.org/create-emotion/-/create-emotion-9.2.12.tgz", - "integrity": "sha512-P57uOF9NL2y98Xrbl2OuiDQUZ30GVmASsv5fbsjF4Hlraip2kyAvMm+2PoYUvFFw03Fhgtxk3RqZSm2/qHL9hA==", - "requires": { - "@emotion/hash": "^0.6.2", - "@emotion/memoize": "^0.6.1", - "@emotion/stylis": "^0.7.0", - "@emotion/unitless": "^0.6.2", - "csstype": "^2.5.2", - "stylis": "^3.5.0", - "stylis-rule-sheet": "^0.0.10" - }, - "dependencies": { - "@emotion/hash": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.6.6.tgz", - "integrity": "sha512-ojhgxzUHZ7am3D2jHkMzPpsBAiB005GF5YU4ea+8DNPybMk01JJUM9V9YRlF/GE95tcOm8DxQvWA2jq19bGalQ==" - }, - "@emotion/memoize": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.6.6.tgz", - "integrity": "sha512-h4t4jFjtm1YV7UirAFuSuFGyLa+NNxjdkq6DpFLANNQY5rHueFZHVY+8Cu1HYVP6DrheB0kv4m5xPjo7eKT7yQ==" - }, - "@emotion/stylis": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.7.1.tgz", - "integrity": "sha512-/SLmSIkN13M//53TtNxgxo57mcJk/UJIDFRKwOiLIBEyBHEcipgR6hNMQ/59Sl4VjCJ0Z/3zeAZyvnSLPG/1HQ==" - }, - "@emotion/unitless": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.6.7.tgz", - "integrity": "sha512-Arj1hncvEVqQ2p7Ega08uHLr1JuRYBuO5cIvcA+WWEQ5+VmkOE3ZXzl04NbQxeQpWX78G7u6MqxKuNX3wvYZxg==" - } - } - }, - "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==", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "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==", - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "create-react-class": { - "version": "15.6.3", - "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", - "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", - "requires": { - "fbjs": "^0.8.9", - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "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.0.1", - "which": "^1.2.9" - }, - "dependencies": { - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - } - } - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true, - "requires": { - "boom": "2.x.x" - } - }, - "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==", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" - }, - "csstype": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.7.tgz", - "integrity": "sha512-9Mcn9sFbGBAdmimWb2gLVDtFJzeKtDGIr76TUqmjZrw9LFXBMSU70lcs+C0/7fyCd6iBDqmksUcCOUIkisPHsQ==" - }, - "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.1" - } - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } - }, - "dateformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", - "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", - "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 - }, - "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=" - }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "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==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "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==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "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 - }, - "deprecated": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", - "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=", - "dev": true - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detab": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.2.tgz", - "integrity": "sha512-Q57yPrxScy816TTE1P/uLRXLDKjXhvYTbfxS/e6lPD+YrqghbsMlGB9nQzj/zVtSPaF0DFPSdO916EWO4sQUyQ==", - "requires": { - "repeat-string": "^1.5.4" - } - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, - "dev-ip": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", - "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=", - "dev": true - }, - "diacritics": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/diacritics/-/diacritics-1.3.0.tgz", - "integrity": "sha1-PvqHMj67hj5mls67AILUj/PW96E=" - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", - "requires": { - "path-type": "^3.0.0" - } - }, - "direction": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/direction/-/direction-0.1.5.tgz", - "integrity": "sha1-zl15f5fib4vnvv9T99xA4cGp7Ew=" - }, - "dnd-core": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-7.7.0.tgz", - "integrity": "sha512-+YqwflWEY1MEAEl2QiEiRaglYkCwIZryyQwximQGuTOm/ns7fS6Lg/i7OCkrtjM10D5FhArf/VUHIL4ZaRBK0g==", - "requires": { - "asap": "^2.0.6", - "invariant": "^2.2.4", - "redux": "^4.0.1" - } - }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "requires": { - "utila": "~0.4" - } - }, - "dom-helpers": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", - "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", - "requires": { - "@babel/runtime": "^7.1.2" - } - }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", - "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==" - } - } - }, - "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==" - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", - "dev": true, - "requires": { - "readable-stream": "~1.1.9" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "easy-extender": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.2.tgz", - "integrity": "sha1-PTJI/r4rFZYHMW2PnPSRwWZIIh0=", - "dev": true, - "requires": { - "lodash": "^3.10.1" - }, - "dependencies": { - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", - "dev": true - } - } - }, - "eazy-logger": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.0.2.tgz", - "integrity": "sha1-oyWqXlPROiIliJsqxBE7K5Y29Pw=", - "dev": true, - "requires": { - "tfunk": "^3.0.1" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "elliptic": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", - "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "email-addresses": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", - "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", - "dev": true - }, - "emitter-steward": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/emitter-steward/-/emitter-steward-1.0.0.tgz", - "integrity": "sha1-80Ea3pdYp1Zd+Eiy2gy70bRsvWQ=", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "emotion": { - "version": "9.2.12", - "resolved": "https://registry.npmjs.org/emotion/-/emotion-9.2.12.tgz", - "integrity": "sha512-hcx7jppaI8VoXxIWEhxpDW7I+B4kq9RNzQLmsrF6LY8BGKqe2N+gFAQr0EfuFucFlPs2A9HM4+xNj4NeqEWIOQ==", - "requires": { - "babel-plugin-emotion": "^9.2.11", - "create-emotion": "^9.2.12" - }, - "dependencies": { - "@emotion/hash": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.6.6.tgz", - "integrity": "sha512-ojhgxzUHZ7am3D2jHkMzPpsBAiB005GF5YU4ea+8DNPybMk01JJUM9V9YRlF/GE95tcOm8DxQvWA2jq19bGalQ==" - }, - "@emotion/memoize": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.6.6.tgz", - "integrity": "sha512-h4t4jFjtm1YV7UirAFuSuFGyLa+NNxjdkq6DpFLANNQY5rHueFZHVY+8Cu1HYVP6DrheB0kv4m5xPjo7eKT7yQ==" - }, - "@emotion/stylis": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.7.1.tgz", - "integrity": "sha512-/SLmSIkN13M//53TtNxgxo57mcJk/UJIDFRKwOiLIBEyBHEcipgR6hNMQ/59Sl4VjCJ0Z/3zeAZyvnSLPG/1HQ==" - }, - "babel-plugin-emotion": { - "version": "9.2.11", - "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-9.2.11.tgz", - "integrity": "sha512-dgCImifnOPPSeXod2znAmgc64NhaaOjGEHROR/M+lmStb3841yK1sgaDYAYMnlvWNz8GnpwIPN0VmNpbWYZ+VQ==", - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@emotion/babel-utils": "^0.6.4", - "@emotion/hash": "^0.6.2", - "@emotion/memoize": "^0.6.1", - "@emotion/stylis": "^0.7.0", - "babel-plugin-macros": "^2.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "convert-source-map": "^1.5.0", - "find-root": "^1.1.0", - "mkdirp": "^0.5.1", - "source-map": "^0.5.7", - "touch": "^2.0.1" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { - "iconv-lite": "~0.4.13" - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "engine.io": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.1.5.tgz", - "integrity": "sha512-D06ivJkYxyRrcEe0bTpNnBQNgP9d3xog+qZlLbui8EsMr/DouQpf5o9FzJnWYHEYE0YsFHllUv2R1dkgYZXHcA==", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "base64id": "1.0.0", - "cookie": "0.3.1", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.0", - "uws": "~9.14.0", - "ws": "~3.3.1" - }, - "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" - } - } - } - }, - "engine.io-client": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.6.tgz", - "integrity": "sha512-hnuHsFluXnsKOndS4Hv6SvUrgdYx1pk2NqfaDMW+GWdgfU3+/V25Cj7I8a0x92idSpa5PIhJRKxPvp9mnoLsfg==", - "dev": true, - "requires": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.1", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "~3.3.1", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - }, - "dependencies": { - "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 - }, - "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" - } - } - } - }, - "engine.io-parser": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", - "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", - "dev": true, - "requires": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.5", - "has-binary2": "~1.0.2" - } - }, - "enhanced-resolve": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz", - "integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==", - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } - } - }, - "entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", - "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "error-stack-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.4.tgz", - "integrity": "sha512-fZ0KkoxSjLFmhW5lHbUT3tLwy3nX1qEzMYo8koY1vrsAco53CMT1djnBSeC/wUjTEZRhZl9iRw7PaMaxfJ4wzQ==", - "requires": { - "stackframe": "^1.1.0" - } - }, - "es-abstract": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.3.tgz", - "integrity": "sha512-WtY7Fx5LiOnSYgF5eg/1T+GONaGmpvpPdCpSnYij+U2gDTL0UPfWrhDw7b2IYb+9NQJsYpCA0wOQvZfsd6YwRw==", - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "string.prototype.trimleft": "^2.1.0", - "string.prototype.trimright": "^2.1.0" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "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=" - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "requires": { - "estraverse": "^4.1.0" - } - }, - "esrever": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/esrever/-/esrever-0.2.0.tgz", - "integrity": "sha1-lunSj08bGnZ4TNXUkOquAQ50B7g=" - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "eventemitter3": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", - "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", - "dev": true - }, - "events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", - "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==" - }, - "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==", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "exenv": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", - "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "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=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "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.1.0" - }, - "dependencies": { - "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.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - } - }, - "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.0.2" - } - }, - "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" - } - }, - "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.5" - } - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "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==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "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.0", - "snapdragon": "^0.8.1", - "to-regex": "^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=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.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==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "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==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "dev": true, - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - } - }, - "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=" - }, - "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=" - }, - "fbjs": { - "version": "0.8.17", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", - "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", - "requires": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - } - }, - "figgy-pudding": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", - "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==" - }, - "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.0", - "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.0.0", - "humanize-url": "^1.0.0" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.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=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "finalhandler": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.0.tgz", - "integrity": "sha1-6VCKvs6bbbqHGmlCodeRG5GRGsc=", - "dev": true, - "requires": { - "debug": "~2.2.0", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "statuses": "~1.3.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true, - "requires": { - "ms": "0.7.1" - } - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - } - } - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-index": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", - "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", - "dev": true - }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "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.0" - } - } - } - }, - "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - } - }, - "first-chunk-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", - "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", - "dev": true - }, - "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", - "dev": true - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "focus-group": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/focus-group/-/focus-group-0.3.1.tgz", - "integrity": "sha1-4PMu2GsNq91v/OvfiY7LMuR/7c4=" - }, - "font-awesome": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz", - "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM=" - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "requires": { - "is-callable": "^1.1.3" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "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.1" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.12" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "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 - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-extra": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", - "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^3.0.0", - "universalify": "^0.1.0" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", - "optional": true, - "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "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.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true - } - } - }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "fuzzy": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz", - "integrity": "sha1-THbsL/CsGjap3M+aAN+GIweNTtg=" - }, - "gatsby-plugin-netlify-cms": { - "version": "4.1.31", - "resolved": "https://registry.npmjs.org/gatsby-plugin-netlify-cms/-/gatsby-plugin-netlify-cms-4.1.31.tgz", - "integrity": "sha512-5RO6W4mcdmrqHcCwAZcVSXAwGCD3k+p0FKwsho3Z9HVf2L1XZB/NseC0wsCW/7y1HWrvd3F7mYVUcHYp6mge/Q==", - "requires": { - "@pieh/friendly-errors-webpack-plugin": "1.7.0-chalk-2", - "copy-webpack-plugin": "^5.0.5", - "html-webpack-exclude-assets-plugin": "^0.0.7", - "html-webpack-plugin": "^3.2.0", - "html-webpack-tags-plugin": "^2.0.17", - "lodash": "^4.17.15", - "mini-css-extract-plugin": "^0.8.0", - "netlify-identity-widget": "^1.5.5", - "webpack": "^4.41.2" - } - }, - "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.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "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.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.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "gaze": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", - "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", - "dev": true, - "requires": { - "globule": "~0.1.0" - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "get-document": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-document/-/get-document-1.0.0.tgz", - "integrity": "sha1-SCG85m8cJMsDMWAr5strEsTwHEs=" - }, - "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-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "get-window": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-window/-/get-window-1.1.2.tgz", - "integrity": "sha512-yjWpFcy9fjhLQHW1dPtg9ga4pmizLY8y4ZSHdGrAQ1NU277MRhnGnnLPxe19X8W5lWVsCZz++5xEuNozWMVmTw==", - "requires": { - "get-document": "1" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } - }, - "gh-pages": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-2.1.1.tgz", - "integrity": "sha512-yNW2SFp9xGRP/8Sk2WXuLI/Gn92oOL4HBgudn6PsqAnuWT90Y1tozJoTfX1WdrDSW5Rb90kLVOf5mm9KJ/2fDw==", - "dev": true, - "requires": { - "async": "^2.6.1", - "commander": "^2.18.0", - "email-addresses": "^3.0.1", - "filenamify-url": "^1.0.0", - "fs-extra": "^7.0.0", - "globby": "^6.1.0", - "graceful-fs": "^4.1.11", - "rimraf": "^2.6.2" - }, - "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "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.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "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.6" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "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.0" - }, - "dependencies": { - "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.0" - } - }, - "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-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" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "glob-stream": { - "version": "3.1.18", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", - "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", - "dev": true, - "requires": { - "glob": "^4.3.1", - "glob2base": "^0.0.12", - "minimatch": "^2.0.1", - "ordered-read-streams": "^0.1.0", - "through2": "^0.6.1", - "unique-stream": "^1.0.0" - }, - "dependencies": { - "glob": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", - "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^2.0.1", - "once": "^1.3.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "minimatch": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", - "dev": true, - "requires": { - "brace-expansion": "^1.0.0" - } - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - } - } - }, - "glob-watcher": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", - "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", - "dev": true, - "requires": { - "gaze": "^0.5.1" - } - }, - "glob2base": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", - "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", - "dev": true, - "requires": { - "find-index": "^0.1.1" - } - }, - "global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", - "requires": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "globule": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", - "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", - "dev": true, - "requires": { - "glob": "~3.1.21", - "lodash": "~1.0.1", - "minimatch": "~0.2.11" - }, - "dependencies": { - "glob": { - "version": "3.1.21", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", - "dev": true, - "requires": { - "graceful-fs": "~1.2.0", - "inherits": "1", - "minimatch": "~0.2.11" - } - }, - "graceful-fs": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", - "dev": true - }, - "inherits": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", - "dev": true - }, - "lodash": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", - "dev": true - }, - "lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", - "dev": true - }, - "minimatch": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", - "dev": true, - "requires": { - "lru-cache": "2", - "sigmund": "~1.0.0" - } - } - } - }, - "glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", - "dev": true, - "requires": { - "sparkles": "^1.0.0" - } - }, - "gotrue-js": { - "version": "0.9.25", - "resolved": "https://registry.npmjs.org/gotrue-js/-/gotrue-js-0.9.25.tgz", - "integrity": "sha512-W3U3TqItiHfpYODlH8hA7dwnui9pu4iDsDbE7UuqS/ODJ5r3/+nlBe30ir4cemRMy16oyPpuvq23l9EjiCD7kg==", - "requires": { - "micro-api-client": "^3.2.1" - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "gray-matter": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.2.tgz", - "integrity": "sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw==", - "requires": { - "js-yaml": "^3.11.0", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - } - }, - "gulp": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", - "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", - "dev": true, - "requires": { - "archy": "^1.0.0", - "chalk": "^1.0.0", - "deprecated": "^0.0.1", - "gulp-util": "^3.0.0", - "interpret": "^1.0.0", - "liftoff": "^2.1.0", - "minimist": "^1.1.0", - "orchestrator": "^0.3.0", - "pretty-hrtime": "^1.0.0", - "semver": "^4.1.0", - "tildify": "^1.0.0", - "v8flags": "^2.0.2", - "vinyl-fs": "^0.3.0" - }, - "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.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "semver": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", - "dev": true - }, - "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 - } - } - }, - "gulp-clean-css": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/gulp-clean-css/-/gulp-clean-css-3.9.2.tgz", - "integrity": "sha512-NaBtCOmhk2FP1D1pgv5jEvZaKr+6FZHvEgsl1iPGmTpyUOWpECR3Mzdciwo+hEWwtlnkZSueoAf74YCMtar48A==", - "dev": true, - "requires": { - "clean-css": "4.1.9", - "plugin-error": "0.1.2", - "through2": "2.0.3", - "vinyl-sourcemaps-apply": "0.2.1" - }, - "dependencies": { - "clean-css": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.9.tgz", - "integrity": "sha1-Nc7ornaHpJuYA09w3gDE7dOCYwE=", - "dev": true, - "requires": { - "source-map": "0.5.x" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "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.1.5", - "xtend": "~4.0.1" - } - } - } - }, - "gulp-header": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/gulp-header/-/gulp-header-2.0.1.tgz", - "integrity": "sha512-aL3fpWqwMtUbOqEsqN9/sDyyJXLRIsMLNQujTfzAGuo1bphBGRPeyVzwIzIP7iVcgnJs3rRUCgWo68XQ+GLwtA==", - "dev": true, - "requires": { - "concat-with-sourcemaps": "*", - "lodash.template": "^4.4.0", - "through2": "^2.0.0" - }, - "dependencies": { - "lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0" - } - } - } - }, - "gulp-rename": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.4.0.tgz", - "integrity": "sha512-swzbIGb/arEoFK89tPY58vg3Ok1bw+d35PfUNwWqdo7KM4jkmuGA78JiDNqR+JeZFaeeHnRg9N7aihX3YPmsyg==", - "dev": true - }, - "gulp-sass": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-3.2.1.tgz", - "integrity": "sha512-UATbRpSDsyXCnpYSPBUEvdvtSEzksJs7/oQ0CujIpzKqKrO6vlnYwhX2UTsGrf4rNLwqlSSaM271It0uHYvJ3Q==", - "dev": true, - "requires": { - "gulp-util": "^3.0", - "lodash.clonedeep": "^4.3.2", - "node-sass": "^4.8.3", - "through2": "^2.0.0", - "vinyl-sourcemaps-apply": "^0.2.0" - } - }, - "gulp-uglify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.0.tgz", - "integrity": "sha1-DfAzHXKg0wLj434QlIXd3zPG0co=", - "dev": true, - "requires": { - "gulplog": "^1.0.0", - "has-gulplog": "^0.1.0", - "lodash": "^4.13.1", - "make-error-cause": "^1.1.1", - "through2": "^2.0.0", - "uglify-js": "^3.0.5", - "vinyl-sourcemaps-apply": "^0.2.0" - } - }, - "gulp-util": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", - "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", - "dev": true, - "requires": { - "array-differ": "^1.0.0", - "array-uniq": "^1.0.2", - "beeper": "^1.0.0", - "chalk": "^1.0.0", - "dateformat": "^2.0.0", - "fancy-log": "^1.1.0", - "gulplog": "^1.0.0", - "has-gulplog": "^0.1.0", - "lodash._reescape": "^3.0.0", - "lodash._reevaluate": "^3.0.0", - "lodash._reinterpolate": "^3.0.0", - "lodash.template": "^3.0.0", - "minimist": "^1.1.0", - "multipipe": "^0.1.2", - "object-assign": "^3.0.0", - "replace-ext": "0.0.1", - "through2": "^2.0.0", - "vinyl": "^0.5.0" - }, - "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.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", - "dev": true - }, - "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 - } - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true, - "requires": { - "glogg": "^1.0.0" - } - }, - "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.9.1", - "har-schema": "^1.0.5" - }, - "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" - } - } - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "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.0.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 - } - } - }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "dev": true, - "requires": { - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - } - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-gulplog": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", - "dev": true, - "requires": { - "sparkles": "^1.0.0" - } - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" - }, - "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=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "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=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hast-util-embedded": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/hast-util-embedded/-/hast-util-embedded-1.0.4.tgz", - "integrity": "sha512-kfCMiRzYPWx9I6KYdW5DCS+WM6xRmAtfrPd2yEG+5cuwquEh0Qh2sV7CX0tbdes/nmm2lBTGLURh0GmRb2txgQ==", - "requires": { - "hast-util-is-element": "^1.0.0" - } - }, - "hast-util-from-parse5": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-1.1.0.tgz", - "integrity": "sha1-NZzDOdyMzx36ykGRWtY/1UYTCs0=", - "requires": { - "camelcase": "^3.0.0", - "has": "^1.0.1", - "hastscript": "^3.0.0", - "property-information": "^3.1.0", - "vfile-location": "^2.0.0" - } - }, - "hast-util-has-property": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-1.0.3.tgz", - "integrity": "sha512-tT3ffSnrBu38RKnjn27n9vi+h/CUEXCQP5O2mriji4NNI2QNnhAqefjOg5ORAyvVfJItn0SC2Sx4CHReZSYh3g==" - }, - "hast-util-is-body-ok-link": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hast-util-is-body-ok-link/-/hast-util-is-body-ok-link-1.0.2.tgz", - "integrity": "sha512-eSxO9rgtb7dfKxNa8NAFS3VEYWHXnJWVsoH/Z4jSsq1J2i4H1GkdJ43kXv++xuambrtI5XQwcAx6jeZVMjoBMQ==", - "requires": { - "hast-util-has-property": "^1.0.0", - "hast-util-is-element": "^1.0.0" - } - }, - "hast-util-is-element": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.0.3.tgz", - "integrity": "sha512-C62CVn7jbjp89yOhhy7vrkSaB7Vk906Gtcw/Ihd+Iufnq+2pwOZjdPmpzpKLWJXPJBMDX3wXg4FqmdOayPcewA==" - }, - "hast-util-parse-selector": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.3.tgz", - "integrity": "sha512-nxbeqjQNxsvo/uYYAw9kij6td05YVUlf1qti09rVfbWSLT5H6wo3c+USIwX6nzXWk5kFZzXnEqO82856r0aM2Q==" - }, - "hast-util-to-html": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-3.1.0.tgz", - "integrity": "sha1-iCyZhJ5AEw6ZHAQuRW1FPZXDbP8=", - "requires": { - "ccount": "^1.0.0", - "comma-separated-tokens": "^1.0.1", - "hast-util-is-element": "^1.0.0", - "hast-util-whitespace": "^1.0.0", - "html-void-elements": "^1.0.0", - "kebab-case": "^1.0.0", - "property-information": "^3.1.0", - "space-separated-tokens": "^1.0.0", - "stringify-entities": "^1.0.1", - "unist-util-is": "^2.0.0", - "xtend": "^4.0.1" - }, - "dependencies": { - "unist-util-is": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-2.1.3.tgz", - "integrity": "sha512-4WbQX2iwfr/+PfM4U3zd2VNXY+dWtZsN1fLnWEi2QQXA4qyDYAZcDMfXUX0Cu6XZUHHAO9q4nyxxLT4Awk1qUA==" - } - } - }, - "hast-util-to-mdast": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hast-util-to-mdast/-/hast-util-to-mdast-1.2.0.tgz", - "integrity": "sha512-kYrD+weqqtBwqLHkEMh12YHXPzG1iuRm9NH3qVs7hwGTkE5QrhtdMahVN96JnRnb/MmdvfKCzK42ajgRKjQzNg==", - "requires": { - "hast-util-has-property": "^1.0.0", - "hast-util-is-element": "^1.0.0", - "hast-util-to-string": "^1.0.0", - "rehype-minify-whitespace": "^2.0.0", - "unist-util-is": "^2.1.0", - "unist-util-visit": "^1.1.1", - "xtend": "^4.0.1" - }, - "dependencies": { - "unist-util-is": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-2.1.3.tgz", - "integrity": "sha512-4WbQX2iwfr/+PfM4U3zd2VNXY+dWtZsN1fLnWEi2QQXA4qyDYAZcDMfXUX0Cu6XZUHHAO9q4nyxxLT4Awk1qUA==" - } - } - }, - "hast-util-to-string": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-1.0.2.tgz", - "integrity": "sha512-fQNr0n5KJmZW1TmBfXbc4DO0ucZmseUw3T6K4PDsUUTMtTGGLZMUYRB8mOKgPgtw7rtICdxxpRQZmWwo8KxlOA==" - }, - "hast-util-whitespace": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-1.0.3.tgz", - "integrity": "sha512-AlkYiLTTwPOyxZ8axq2/bCwRUPjIPBfrHkXuCR92B38b3lSdU22R5F/Z4DL6a2kxWpekWq1w6Nj48tWat6GeRA==" - }, - "hastscript": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-3.1.0.tgz", - "integrity": "sha512-8V34dMSDT1Ik+ZSgTzCLdyp89MrWxcxctXPxhmb72GQj1Xkw1aHPM9UaHCWewvH2Q+PVkYUm4ZJVw4T0dgEGNA==", - "requires": { - "camelcase": "^3.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^3.0.0", - "space-separated-tokens": "^1.0.0" - } - }, - "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.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "sntp": "1.x.x" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - }, - "history": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", - "requires": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true - }, - "hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-wbg3bpgA/ZqWrZuMOeJi8+SKMhr7X9TesL/rXMjTzh0p0JUBo3II8DHboYbuIXWRlttrUFxwcu/5kygrCw8fJw==", - "requires": { - "react-is": "^16.7.0" - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", - "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", - "dev": true - }, - "html-minifier": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", - "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", - "requires": { - "camel-case": "3.0.x", - "clean-css": "4.2.x", - "commander": "2.17.x", - "he": "1.2.x", - "param-case": "2.1.x", - "relateurl": "0.2.x", - "uglify-js": "3.4.x" - } - }, - "html-void-elements": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.4.tgz", - "integrity": "sha512-yMk3naGPLrfvUV9TdDbuYXngh/TpHbA6TrOw3HL9kS8yhwx7i309BReNg7CbAJXGE+UMJ6je5OqJ7lC63o6YuQ==" - }, - "html-webpack-exclude-assets-plugin": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/html-webpack-exclude-assets-plugin/-/html-webpack-exclude-assets-plugin-0.0.7.tgz", - "integrity": "sha512-gaYKMGBPDts3Fb1WXyDEEcS/0TSRg2IDl3EsbQL2AkKWTqdjSKwfQ8Iz0RhPiWErJfqhq5/wkhoYyjQoG55pug==" - }, - "html-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", - "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", - "requires": { - "html-minifier": "^3.2.3", - "loader-utils": "^0.2.16", - "lodash": "^4.17.3", - "pretty-error": "^2.0.2", - "tapable": "^1.0.0", - "toposort": "^1.0.0", - "util.promisify": "1.0.0" - }, - "dependencies": { - "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==" - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - } - } - }, - "html-webpack-tags-plugin": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/html-webpack-tags-plugin/-/html-webpack-tags-plugin-2.0.17.tgz", - "integrity": "sha512-TKT8hnumMni6ztKfWZpP+UBeA7+aUn+qQQ4c9wT/p1IGTO/QWoIc19E+ZrxCcToDMjBO1NMYWkUbW4c4NtlGvg==", - "requires": { - "glob": "^7.1.4", - "minimatch": "^3.0.4", - "slash": "^3.0.0" - }, - "dependencies": { - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - } - } - }, - "html-whitespace-sensitive-tag-names": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/html-whitespace-sensitive-tag-names/-/html-whitespace-sensitive-tag-names-1.0.1.tgz", - "integrity": "sha512-TMdAWVry7Ld0k2sLqpHkWsFAHmU+VZZq/nR4bfwfxThD8q3ibhrpRTywyQkEiunYiZXmJ6gRcJiLbZm+jbQPgQ==" - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - }, - "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "http-errors": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz", - "integrity": "sha1-eIwNLB3iyBuebowBhDtrl+uSB1A=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "setprototypeof": "1.0.2", - "statuses": ">= 1.3.1 < 2" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "http-proxy": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.15.2.tgz", - "integrity": "sha1-ZC/cr/5S00SNK9o7AHnpQJBk2jE=", - "dev": true, - "requires": { - "eventemitter3": "1.x.x", - "requires-port": "1.x.x" - } - }, - "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.2.2", - "sshpk": "^1.7.0" - } - }, - "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=" - }, - "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.0.0", - "strip-url-auth": "^1.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" - }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" - }, - "immutable": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=" - }, - "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "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": "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.0" - } - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "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 - }, - "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.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=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-alphabetical": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.3.tgz", - "integrity": "sha512-eEMa6MKpHFzw38eKm56iNNi6GJ7lf6aLLio7Kr23sJPAECscgRtZvOBYybejWDQ2bM949Y++61PY+udzj5QMLA==" - }, - "is-alphanumeric": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz", - "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=" - }, - "is-alphanumerical": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.3.tgz", - "integrity": "sha512-A1IGAPO5AW9vSh7omxIlOGwIqEvpW/TA+DksVOPM5ODuxKlZS09+TEM1E3275lJqO2oJ38vDpeAL3DCIiHE6eA==", - "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "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=", - "requires": { - "binary-extensions": "^1.0.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==" - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" - }, - "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=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "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=" - }, - "is-decimal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.3.tgz", - "integrity": "sha512-bvLSwoDg2q6Gf+E2LEPiklHZxxiSi3XAh4Mav65mKqTfCO1HM3uBs24TjEH8iJX3bbDdLXKJXBTmGzuTUuAEjQ==" - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.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==" - } - } - }, - "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-empty": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-empty/-/is-empty-1.2.0.tgz", - "integrity": "sha1-3pu1snhzigWgsJpX4ftNSjQan2s=" - }, - "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=" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "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.0" - } - }, - "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=" - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-hexadecimal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.3.tgz", - "integrity": "sha512-zxQ9//Q3D/34poZf8fiy3m3XVpbQc7ren15iKqrTtLPwkPD/t3Scy9Imp63FujULGxuK0ZlCwoo5xNpktFgbOA==" - }, - "is-hotkey": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-hotkey/-/is-hotkey-0.1.6.tgz", - "integrity": "sha512-1+hMr0GLPM0M49UDRt9RgE8i+SM29UY4AGRP6sGz6fThOVXqSrEvTMakolhHMcVizJnPNAoMpEmE+Oi1k2NrZQ==" - }, - "is-in-browser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", - "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-number-like": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", - "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", - "dev": true, - "requires": { - "lodash.isfinite": "^3.3.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=" - }, - "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==", - "requires": { - "isobject": "^3.0.1" - } - }, - "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-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "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-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "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-whitespace-character": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.3.tgz", - "integrity": "sha512-SNPgMLz9JzPccD3nPctcj8sZlX9DAMJSKH8bP7Z6bohCwuNgX8xbWr1eTAYXX9Vpi/aSn8Y1akL9WgM3t43YNQ==" - }, - "is-window": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-window/-/is-window-1.0.2.tgz", - "integrity": "sha1-LIlspT25feRdPDMTOmXYyfVjSA0=" - }, - "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==" - }, - "is-word-character": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.3.tgz", - "integrity": "sha512-0wfcrFgOOOBdgRNT9H33xe6Zi6yhX/uoc4U8NBZGeQQB0ctU1dnlNTyL9JM2646bHDTpsDm1Brb3VPoCIMrd/A==" - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "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": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "isomorphic-base64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/isomorphic-base64/-/isomorphic-base64-1.0.2.tgz", - "integrity": "sha1-9Caq6CVpuopOxcpzrSGkSrHueAM=" - }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "jquery": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", - "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==" - }, - "jquery.easing": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jquery.easing/-/jquery.easing-1.4.1.tgz", - "integrity": "sha1-R5gsWDa9dY/UhJSSPEoQHvbpPjs=" - }, - "js-base64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", - "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==" - }, - "js-sha256": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", - "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "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==" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "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==" - }, - "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-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=", - "dev": true - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } - } - }, - "jsonfile": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", - "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } - }, - "jwt-decode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-2.2.0.tgz", - "integrity": "sha1-fYa9VmefWM5qhHBKZX3TkruoGnk=" - }, - "kebab-case": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/kebab-case/-/kebab-case-1.0.0.tgz", - "integrity": "sha1-P55JkK3K0MaGwOcB92RYaPdfkes=" - }, - "keycode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz", - "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ=" - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - }, - "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" - } - }, - "lie": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", - "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", - "requires": { - "immediate": "~3.0.5" - } - }, - "liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", - "dev": true, - "requires": { - "extend": "^3.0.0", - "findup-sync": "^2.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - } - }, - "limiter": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.4.tgz", - "integrity": "sha512-XCpr5bElgDI65vVgstP8TWjv6/QKWm9GU5UG0Pr5sLQ3QLo8NVKsioe+Jed5/3vFOe3IQuqE7DKwTvKQkjTHvg==", - "dev": true - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" - }, - "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.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "dependencies": { - "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.2.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" - }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - } - }, - "localforage": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.7.3.tgz", - "integrity": "sha512-1TulyYfc4udS7ECSBT2vwJksWbkwwTX8BzeUIiq8Y07Riy7bDAAnxDaPU/tWyOVmQAcWJIEIFP9lPfBGqVoPgQ==", - "requires": { - "lie": "3.1.1" - } - }, - "localtunnel": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-1.8.3.tgz", - "integrity": "sha1-3MWSL9hWUQN9S94k/ZMkjQsk6wU=", - "dev": true, - "requires": { - "debug": "2.6.8", - "openurl": "1.1.1", - "request": "2.81.0", - "yargs": "3.29.0" - }, - "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, - "yargs": { - "version": "3.29.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.29.0.tgz", - "integrity": "sha1-GquWYOrnnYuPZ1vK7qtu40ws9pw=", - "dev": true, - "requires": { - "camelcase": "^1.2.1", - "cliui": "^3.0.3", - "decamelize": "^1.0.0", - "os-locale": "^1.4.0", - "window-size": "^0.1.2", - "y18n": "^3.2.0" - } - } - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - }, - "lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", - "dev": true - }, - "lodash._basetostring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", - "dev": true - }, - "lodash._basevalues": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", - "dev": true - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", - "dev": true - }, - "lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", - "dev": true - }, - "lodash._reescape": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", - "dev": true - }, - "lodash._reevaluate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", - "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._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", - "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.escape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", - "dev": true, - "requires": { - "lodash._root": "^3.0.0" - } - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", - "dev": true - }, - "lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", - "dev": true - }, - "lodash.isfinite": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", - "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=", - "dev": true - }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", - "dev": true - }, - "lodash.template": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", - "dev": true, - "requires": { - "lodash._basecopy": "^3.0.0", - "lodash._basetostring": "^3.0.0", - "lodash._basevalues": "^3.0.0", - "lodash._isiterateecall": "^3.0.0", - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0", - "lodash.keys": "^3.0.0", - "lodash.restparam": "^3.0.0", - "lodash.templatesettings": "^3.0.0" - } - }, - "lodash.templatesettings": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", - "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0" - } - }, - "longest-streak": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.3.tgz", - "integrity": "sha512-9lz5IVdpwsKLMzQi0MQ+oD9EA0mIGcWYP7jXMTZVXP8D42PwuAk+M/HBFYQoxt1G5OR8m7aSIgb1UymfWGBWEw==" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "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.0" - } - }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "make-error": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", - "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", - "dev": true - }, - "make-error-cause": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", - "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", - "dev": true, - "requires": { - "make-error": "^1.2.0" - } - }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==" - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "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=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "markdown-escapes": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.3.tgz", - "integrity": "sha512-XUi5HJhhV5R74k8/0H2oCbCiYf/u4cO/rX8tnGkRvrqhsr5BRNU6Mg0yt/8UIx1iIS8220BNJsDb7XnILhLepw==" - }, - "markdown-table": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", - "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==" - }, - "math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", - "dev": true - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mdast-util-compact": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.4.tgz", - "integrity": "sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==", - "requires": { - "unist-util-visit": "^1.1.0" - } - }, - "mdast-util-definitions": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-1.2.5.tgz", - "integrity": "sha512-CJXEdoLfiISCDc2JB6QLb79pYfI6+GcIH+W2ox9nMc7od0Pz+bovcHsiq29xAQY6ayqe/9CsK2VzkSJdg1pFYA==", - "requires": { - "unist-util-visit": "^1.0.0" - } - }, - "mdast-util-to-hast": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-2.5.0.tgz", - "integrity": "sha1-8IeETSVcdUDzaQbaMLoQbA7l7i8=", - "requires": { - "collapse-white-space": "^1.0.0", - "detab": "^2.0.0", - "mdast-util-definitions": "^1.2.0", - "mdurl": "^1.0.1", - "trim": "0.0.1", - "trim-lines": "^1.0.0", - "unist-builder": "^1.0.1", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^1.1.0", - "xtend": "^4.0.1" - } - }, - "mdast-util-to-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.0.7.tgz", - "integrity": "sha512-P+gdtssCoHOX+eJUrrC30Sixqao86ZPlVjR5NEAoy0U79Pfxb1Y0Gntei0+GrnQD4T04X9xA8tcugp90cSmNow==" - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" - }, - "memoize-one": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz", - "integrity": "sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==" - }, - "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=", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "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.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "micro-api-client": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/micro-api-client/-/micro-api-client-3.3.0.tgz", - "integrity": "sha512-y0y6CUB9RLVsy3kfgayU28746QrNMpSm9O/AYGNsBgOkJr/X/Jk0VLGoO8Ude7Bpa8adywzF+MzXNZRFRsNPhg==" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "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.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", - "dev": true - }, - "mime-db": { - "version": "1.42.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz", - "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==", - "dev": true - }, - "mime-types": { - "version": "2.1.25", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz", - "integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==", - "dev": true, - "requires": { - "mime-db": "1.42.0" - } - }, - "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.0" - } - }, - "mini-css-extract-plugin": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz", - "integrity": "sha512-MNpRGbNA52q6U92i0qbVpQNsgk7LExy41MdAlG84FeytfDOtRIf/mCHdEgG8rpTKOaNKiqUnZdlptF469hxqOw==", - "requires": { - "loader-utils": "^1.1.0", - "normalize-url": "1.9.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" - } - }, - "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==" - }, - "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=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "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==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - } - }, - "moment": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multipipe": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", - "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", - "dev": true, - "requires": { - "duplexer2": "0.0.2" - } - }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "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-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "natives": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz", - "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==", - "dev": true - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true - }, - "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==" - }, - "netlify-cms-app": { - "version": "2.9.7", - "resolved": "https://registry.npmjs.org/netlify-cms-app/-/netlify-cms-app-2.9.7.tgz", - "integrity": "sha512-0+SbiekIvXtK+W+1Tj4R5OAhSvQ1j4R0ZSSIqJnKMss1h8u4g86otuBaK3v78RgnSqSQy5MWEGe3/m2n3zLvrA==", - "requires": { - "@emotion/core": "^10.0.9", - "@emotion/styled": "^10.0.9", - "immutable": "^3.7.6", - "lodash": "^4.17.11", - "moment": "^2.24.0", - "netlify-cms-backend-bitbucket": "^2.4.1", - "netlify-cms-backend-git-gateway": "^2.4.5", - "netlify-cms-backend-github": "^2.4.2", - "netlify-cms-backend-gitlab": "^2.3.2", - "netlify-cms-backend-test": "^2.2.3", - "netlify-cms-core": "^2.12.2", - "netlify-cms-editor-component-image": "^2.4.2", - "netlify-cms-lib-auth": "^2.2.4", - "netlify-cms-lib-util": "^2.3.3", - "netlify-cms-ui-default": "^2.6.4", - "netlify-cms-widget-boolean": "^2.2.3", - "netlify-cms-widget-date": "^2.3.3", - "netlify-cms-widget-datetime": "^2.2.3", - "netlify-cms-widget-file": "^2.4.3", - "netlify-cms-widget-image": "^2.3.3", - "netlify-cms-widget-list": "^2.3.4", - "netlify-cms-widget-map": "^1.3.3", - "netlify-cms-widget-markdown": "^2.5.1", - "netlify-cms-widget-number": "^2.3.4", - "netlify-cms-widget-object": "^2.2.3", - "netlify-cms-widget-relation": "^2.4.1", - "netlify-cms-widget-select": "^2.4.3", - "netlify-cms-widget-string": "^2.2.3", - "netlify-cms-widget-text": "^2.2.3", - "prop-types": "^15.7.2", - "react-immutable-proptypes": "^2.1.0", - "uuid": "^3.3.2" - } - }, - "netlify-cms-backend-bitbucket": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/netlify-cms-backend-bitbucket/-/netlify-cms-backend-bitbucket-2.5.0.tgz", - "integrity": "sha512-F2oV3iESq72gxkrvmUSIjqAEXpAkxLlArNI5ggKUSFVuZ3Ej6Ml+UrEl7BetmJXooXQW+LFrOKGhPNfoP2YoHA==", - "requires": { - "js-base64": "^2.5.1", - "semaphore": "^1.1.0" - } - }, - "netlify-cms-backend-git-gateway": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/netlify-cms-backend-git-gateway/-/netlify-cms-backend-git-gateway-2.5.1.tgz", - "integrity": "sha512-qZUaRgXzCNzU+yQMh4YgWHY8C1n8d7Tx9eg78CfEkZYK+VCeSLPitNnZT/cHeeh4N1THbf56tOY4A4jkpi+q9A==", - "requires": { - "gotrue-js": "^0.9.24", - "ini": "^1.3.5", - "jwt-decode": "^2.2.0", - "minimatch": "^3.0.4" - } - }, - "netlify-cms-backend-github": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/netlify-cms-backend-github/-/netlify-cms-backend-github-2.4.2.tgz", - "integrity": "sha512-Pm0LMkbivcUajJpK0MMiCdmhzaxDLl1s1xZi9WDig02uYpubclamLPd20EU3/9yHNUBX5O0woJ68rOR6GowIpw==", - "requires": { - "common-tags": "^1.8.0", - "js-base64": "^2.5.1", - "semaphore": "^1.1.0" - } - }, - "netlify-cms-backend-gitlab": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/netlify-cms-backend-gitlab/-/netlify-cms-backend-gitlab-2.3.2.tgz", - "integrity": "sha512-oGGMOqgczk1ya1UhVda1+5WWt57FPJBk5LUiLQtH7Mcl2DNNUNKWqDg/qJsbUdnsbpVymZI9ocGAxXfxQiVxbQ==", - "requires": { - "js-base64": "^2.5.1", - "semaphore": "^1.1.0" - } - }, - "netlify-cms-backend-test": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/netlify-cms-backend-test/-/netlify-cms-backend-test-2.5.0.tgz", - "integrity": "sha512-Heb4FjXW7Fw06i5VqdpQgGBRcgJpwVRJ3jkPdGG2crqbdfKPrWrr6n//xCExCVSizlLo/6v8KGZyjdIctEh7FA==" - }, - "netlify-cms-core": { - "version": "2.12.2", - "resolved": "https://registry.npmjs.org/netlify-cms-core/-/netlify-cms-core-2.12.2.tgz", - "integrity": "sha512-C9V0RXUUqPY1x3hzBi+D6mAQxV/JY5A1A7MejRTbXfvS5E+l34ARymo68+pfGcFppWPTge1TyhBngQQKGoRHsw==", - "requires": { - "ajv": "^6.10.0", - "ajv-errors": "^1.0.1", - "copy-text-to-clipboard": "^2.0.0", - "diacritics": "^1.3.0", - "fuzzy": "^0.1.1", - "gotrue-js": "^0.9.24", - "gray-matter": "^4.0.2", - "history": "^4.7.2", - "js-base64": "^2.5.1", - "js-yaml": "^3.12.2", - "jwt-decode": "^2.1.0", - "node-polyglot": "^2.3.0", - "prop-types": "^15.7.2", - "react": "^16.8.4", - "react-dnd": "^7.3.2", - "react-dnd-html5-backend": "^7.2.0", - "react-dom": "^16.8.4", - "react-frame-component": "^4.1.0", - "react-hot-loader": "^4.8.0", - "react-immutable-proptypes": "^2.1.0", - "react-is": "16.8.5", - "react-modal": "^3.8.1", - "react-polyglot": "^0.4.0", - "react-redux": "^5.1.1", - "react-router-dom": "^4.2.2", - "react-router-redux": "^5.0.0-alpha.8", - "react-scroll-sync": "^0.6.0", - "react-sortable-hoc": "^1.0.0", - "react-split-pane": "^0.1.85", - "react-topbar-progress-indicator": "^2.0.0", - "react-waypoint": "^8.1.0", - "redux": "^4.0.1", - "redux-notifications": "^4.0.1", - "redux-optimist": "^1.0.0", - "redux-thunk": "^2.3.0", - "sanitize-filename": "^1.6.1", - "semaphore": "^1.0.5", - "toml-j0.4": "^1.1.1", - "tomlify-j0.4": "^3.0.0-alpha.0", - "url": "^0.11.0", - "what-input": "^5.1.4" - } - }, - "netlify-cms-editor-component-image": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/netlify-cms-editor-component-image/-/netlify-cms-editor-component-image-2.4.3.tgz", - "integrity": "sha512-E7z9+LGBMGov7dU9CJKuJ72rcGWCXnE1jKWcfewlHKtGTG9YqoCVtQFWxXv35Wjt79ZA9UqX7XpQnzgS7uA+CQ==" - }, - "netlify-cms-lib-auth": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/netlify-cms-lib-auth/-/netlify-cms-lib-auth-2.2.5.tgz", - "integrity": "sha512-9HFHl9aw1vnmkXwwNt2BX8AffHnq0K6ee/iB3GsX3icVUQdlbi+BFwkpf5Gdhr9X1j1tP9sO5foWd2GMkbKRcA==" - }, - "netlify-cms-lib-util": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/netlify-cms-lib-util/-/netlify-cms-lib-util-2.3.3.tgz", - "integrity": "sha512-Rntw2t+urZmRLvEnPMLYXHVfu12+dtc6qbH31B5RDTWXmlGmNCJvv5a+/fEzjM6eEeiVIYYZcTzZT0VgHY9itQ==", - "requires": { - "js-sha256": "^0.9.0", - "localforage": "^1.7.3" - } - }, - "netlify-cms-ui-default": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/netlify-cms-ui-default/-/netlify-cms-ui-default-2.6.4.tgz", - "integrity": "sha512-/en0nbQ/vywq9Y+eW9yxjoawihy+tcm4rpyE/zuBhLsKz/wwVzkAXJnjcs+oqlc78TYG7MEjALK/wm+WOHbkmQ==", - "requires": { - "react-aria-menubutton": "^6.0.0", - "react-toggled": "^1.1.2", - "react-transition-group": "^2.6.0" - }, - "dependencies": { - "react-transition-group": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", - "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", - "requires": { - "dom-helpers": "^3.4.0", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2", - "react-lifecycles-compat": "^3.0.4" - } - } - } - }, - "netlify-cms-widget-boolean": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/netlify-cms-widget-boolean/-/netlify-cms-widget-boolean-2.2.3.tgz", - "integrity": "sha512-q9YkeciUDF11TCzyebd/ipyTXe9lzsbO+zj0PRfyEMHpKsN/w2z9tMui+Fb0NoytGoF+EYw+nkKdnIL2spL3QA==" - }, - "netlify-cms-widget-date": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/netlify-cms-widget-date/-/netlify-cms-widget-date-2.3.5.tgz", - "integrity": "sha512-VjpWu8WvVyhfoC+ny+JaiBq9l6WoGSU/ZVtGKKHDKRXRfi/dkdMdT2k1jIEkn4f2N7erljN3rc6+cuaKWTEjKQ==", - "requires": { - "react-datetime": "^2.16.3" - } - }, - "netlify-cms-widget-datetime": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/netlify-cms-widget-datetime/-/netlify-cms-widget-datetime-2.2.5.tgz", - "integrity": "sha512-zoCuqkcelNvBwKlv5tJll67rKXFE/tq1W6SlT/f0LbRR78X/CY7jSTuTKbawHYi4XAg4Hhc4NmgKX2C8AWm39g==" - }, - "netlify-cms-widget-file": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/netlify-cms-widget-file/-/netlify-cms-widget-file-2.4.3.tgz", - "integrity": "sha512-Nw5I67qAlkWv/YzXzSgudCuCPmVjKZbJ7dIgt/xTxF2U/4/QhFFcb75nbRCUqzrUpSjDMQXkxhmJFwjcSEKDqg==", - "requires": { - "common-tags": "^1.8.0" - } - }, - "netlify-cms-widget-image": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/netlify-cms-widget-image/-/netlify-cms-widget-image-2.3.3.tgz", - "integrity": "sha512-ERsZmSeYplZRF0SZjRHAePBf4f4+EhH8lZ7eE+0kEFF7jPhoitzPU0My17Vn3KQXNWJLutIZN0u4u/I00aU7dw==" - }, - "netlify-cms-widget-list": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/netlify-cms-widget-list/-/netlify-cms-widget-list-2.3.4.tgz", - "integrity": "sha512-Vw3B3QB+9jcTfBxsYLuqEE7WLZSucWBXeDqGX3bhieZ49nX98Vre1jiLNbrz/FAaa1s4klixpyXqA72vU+wyAQ==", - "requires": { - "react-sortable-hoc": "^1.0.0" - } - }, - "netlify-cms-widget-map": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/netlify-cms-widget-map/-/netlify-cms-widget-map-1.3.3.tgz", - "integrity": "sha512-RiuAWGIWdWaFXZLdRwkuhAatbYhm9dM1vz5PKX8rWHJJjUefF4gqQGTj1m6u1FpexDqnB8pu7trI2cL38HEp9Q==", - "requires": { - "ol": "^5.3.1" - } - }, - "netlify-cms-widget-markdown": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/netlify-cms-widget-markdown/-/netlify-cms-widget-markdown-2.6.0.tgz", - "integrity": "sha512-n2vPusTu7uyVGdmqckeOJCb47LLx905y64treyj8T+TQ5rBF+IGhEoTLuc+THhEG6Rq+CWyZ1F7VS0Auqm8A/w==", - "requires": { - "is-hotkey": "^0.1.4", - "mdast-util-definitions": "^1.2.3", - "mdast-util-to-string": "^1.0.5", - "rehype-parse": "^3.1.0", - "rehype-remark": "^2.0.0", - "rehype-stringify": "^3.0.0", - "remark-parse": "^3.0.1", - "remark-rehype": "^2.0.0", - "remark-stringify": "^3.0.1", - "slate": "^0.34.0", - "slate-edit-list": "^0.11.3", - "slate-edit-table": "^0.15.1", - "slate-plain-serializer": "^0.5.15", - "slate-react": "0.12.9", - "slate-soft-break": "^0.6.1", - "unified": "^6.1.4", - "unist-builder": "^1.0.2", - "unist-util-visit-parents": "^1.1.1" - } - }, - "netlify-cms-widget-number": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/netlify-cms-widget-number/-/netlify-cms-widget-number-2.3.5.tgz", - "integrity": "sha512-s1yMrM8nC3AryC4Qgn+EklOTrA/AvHix7Pqhc5qXe3NIwxj7GPsJ+DqbjCZWyTq/LHjhC4q/IyNh5KIXqfjEnA==" - }, - "netlify-cms-widget-object": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/netlify-cms-widget-object/-/netlify-cms-widget-object-2.2.3.tgz", - "integrity": "sha512-e75irMQc6bRDgKAzYYtrJiNkNoI35DHULwgbUrn9gSB0FtCO1Ljn4dg9AJIKXMnl5KxshqsKdYz+L2fit1nYXw==" - }, - "netlify-cms-widget-relation": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/netlify-cms-widget-relation/-/netlify-cms-widget-relation-2.5.0.tgz", - "integrity": "sha512-jZZsO4+PUYgiz4VWRVH/cwRnqgdSXWOvFSRLgpDfped4B8jsCEDHp0M07hOiFr2K1p6HOmMnk65TbziA5kG8FQ==", - "requires": { - "react-select": "^2.4.2" - } - }, - "netlify-cms-widget-select": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/netlify-cms-widget-select/-/netlify-cms-widget-select-2.4.3.tgz", - "integrity": "sha512-wcJJRwPk4lrd/5RSP0n2hg3FNQZMcqu8AmTe7IsYB909m/2uR/dPOHwc7ZN+vwSEyncuFjlu/erNkP1pvS5GgA==", - "requires": { - "react-select": "^2.4.2" - } - }, - "netlify-cms-widget-string": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/netlify-cms-widget-string/-/netlify-cms-widget-string-2.2.3.tgz", - "integrity": "sha512-d5Cc84MWW5DjRfUdHKDNiE/ciji7Q/0Q5mKOQ9o2n7snBjIfabZ9kdYgostBgI/DgW55m/YRwg1MGMlCZ/hf7Q==" - }, - "netlify-cms-widget-text": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/netlify-cms-widget-text/-/netlify-cms-widget-text-2.2.3.tgz", - "integrity": "sha512-uMMq5/2n3ISSnm3+qOEq5QFAId7MooTIOl6v/jVZZTPPxFYk6ko9DjGdhjGf/WwACoGD/XzMruZAXwZ3pv3LAQ==", - "requires": { - "react-textarea-autosize": "^7.1.0" - } - }, - "netlify-identity-widget": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/netlify-identity-widget/-/netlify-identity-widget-1.5.6.tgz", - "integrity": "sha512-DvWVUGuswOd+IwexKjzIpYcqYMrghmnkmflNqCQc4lG4KX55zE3fFjfXziCTr6LibP7hvZp37s067j5N3kRuyw==" - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "requires": { - "lower-case": "^1.1.1" - } - }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "dev": true, - "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "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=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "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" - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "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==", - "dev": true - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "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 - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } - } - } - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "node-polyglot": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/node-polyglot/-/node-polyglot-2.4.0.tgz", - "integrity": "sha512-KRzKwzMWm3wSAjOSop7/WwNyzaMkCe9ddkwXTQsIZEJmvEnqy/bCqLpAVw6xBszKfy4iLdYVA0d83L+cIkYPbA==", - "requires": { - "for-each": "^0.3.3", - "has": "^1.0.3", - "string.prototype.trim": "^1.1.2", - "warning": "^4.0.3" - } - }, - "node-sass": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.0.tgz", - "integrity": "sha512-W1XBrvoJ1dy7VsvTAS5q1V45lREbTlZQqFbiHb3R3OTTCma0XBtuG6xZ6Z4506nR4lmHPTqVRwxT6KgtWC97CA==", - "dev": true, - "requires": { - "async-foreach": "^0.1.3", - "chalk": "^1.1.1", - "cross-spawn": "^3.0.0", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "in-publish": "^2.0.0", - "lodash": "^4.17.15", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", - "nan": "^2.13.2", - "node-gyp": "^3.8.0", - "npmlog": "^4.0.0", - "request": "^2.88.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 - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "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=", - "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.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "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.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.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "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==", - "dev": true - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "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 - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } - } - } - }, - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "requires": { - "abbrev": "1" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "requires": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - } - }, - "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.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "requires": { - "boolbase": "~1.0.0" - } - }, - "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 - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "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=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-path": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz", - "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU=", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "dev": true, - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - } - } - }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - } - } - }, - "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.4", - "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=", - "requires": { - "isobject": "^3.0.1" - } - }, - "ol": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/ol/-/ol-5.3.3.tgz", - "integrity": "sha512-7eU4x8YMduNcED1D5wI+AMWDRe7/1HmGfsbV+kFFROI9RNABU/6n4osj6Q3trZbxxKnK2DSRIjIRGwRHT/Z+Ww==", - "requires": { - "pbf": "3.1.0", - "pixelworks": "1.1.0", - "rbush": "2.0.2" - } - }, - "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" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "openurl": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", - "integrity": "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c=", - "dev": true - }, - "opn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", - "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", - "dev": true, - "requires": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" - } - }, - "orchestrator": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", - "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", - "dev": true, - "requires": { - "end-of-stream": "~0.1.5", - "sequencify": "~0.0.7", - "stream-consume": "~0.1.0" - }, - "dependencies": { - "end-of-stream": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", - "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", - "dev": true, - "requires": { - "once": "~1.3.0" - } - }, - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "dev": true, - "requires": { - "wrappy": "1" - } - } - } - }, - "ordered-read-streams": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", - "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=", - "dev": true - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - }, - "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": "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" - } - }, - "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.0", - "os-tmpdir": "^1.0.0" - } - }, - "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", - "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==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==" - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "requires": { - "no-case": "^2.2.0" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-entities": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", - "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==", - "requires": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - } - }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, - "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.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" - }, - "dependencies": { - "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-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" - } - } - } - }, - "parse-json": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", - "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1", - "lines-and-columns": "^1.1.6" - } - }, - "parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, - "parse5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-2.2.3.tgz", - "integrity": "sha1-DE/EHBAAxea5PUiwP4CDg3g06fY=" - }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "dev": true, - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "dev": true, - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "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=" - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dev": true, - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true - }, - "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "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=" - } - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "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=" - } - } - }, - "pbf": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.1.0.tgz", - "integrity": "sha512-/hYJmIsTmh7fMkHAWWXJ5b8IKLWdjdlAFb3IHkRBn1XUhIYBChVGfVwmHEAV3UfXTxsP/AKfYTXTS/dCPxJd5w==", - "requires": { - "ieee754": "^1.1.6", - "resolve-protobuf-schema": "^2.0.0" - } - }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "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.0" - } - }, - "pixelworks": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pixelworks/-/pixelworks-1.1.0.tgz", - "integrity": "sha1-Hwla1I3Ki/ihyCWOAJIDGkTyLKU=" - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "requires": { - "find-up": "^3.0.0" - } - }, - "plugin-error": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", - "dev": true, - "requires": { - "ansi-cyan": "^0.1.1", - "ansi-red": "^0.1.1", - "arr-diff": "^1.0.1", - "arr-union": "^2.0.1", - "extend-shallow": "^1.1.2" - }, - "dependencies": { - "arr-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "array-slice": "^0.2.3" - } - }, - "arr-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", - "dev": true - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, - "extend-shallow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", - "dev": true, - "requires": { - "kind-of": "^1.1.0" - } - }, - "kind-of": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", - "dev": true - } - } - }, - "portscanner": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz", - "integrity": "sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y=", - "dev": true, - "requires": { - "async": "1.5.2", - "is-number-like": "^1.0.3" - } - }, - "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=" - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, - "pretty-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", - "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", - "requires": { - "renderkid": "^2.0.1", - "utila": "~0.4" - } - }, - "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 - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "requires": { - "asap": "~2.0.3" - } - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "property-information": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-3.2.0.tgz", - "integrity": "sha1-/RSDyPusYYCPX+NZ52k6H0ilgzE=" - }, - "protocol-buffers-schema": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.3.2.tgz", - "integrity": "sha512-Xdayp8sB/mU+sUV4G7ws8xtYMGdQnxbeIfLjyO9TZZRJdztBGhlmbI5x1qcY4TG5hBkIKGnc28i7nXxaugu88w==" - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "psl": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.6.0.tgz", - "integrity": "sha512-SYKKmVel98NCOYXpkwUqZqh0ahZeeKfmisiLIcEZdsb+WbLv02g/dI5BUmZnIyOe7RzZtLax81nnb2HbvC2tzA==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.1.tgz", - "integrity": "sha1-zgPF/wk1vB2daanxTL0Y5WjWdiU=", - "dev": true - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "requires": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" - }, - "quickselect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-1.1.1.tgz", - "integrity": "sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ==" - }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "requires": { - "performance-now": "^2.1.0" - } - }, - "randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", - "dev": true, - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "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 - } - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "rbush": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/rbush/-/rbush-2.0.2.tgz", - "integrity": "sha512-XBOuALcTm+O/H8G90b6pzu6nX6v2zCKiFG4BJho8a+bY6AER6t8uQUZdi5bomQc0AprCWhEGa7ncAbbRap0bRA==", - "requires": { - "quickselect": "^1.0.1" - } - }, - "react": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.12.0.tgz", - "integrity": "sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - } - }, - "react-aria-menubutton": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/react-aria-menubutton/-/react-aria-menubutton-6.2.0.tgz", - "integrity": "sha512-rTXErH78MXbbPRz9E+TJvWp55QJR2jGRQECIjEcHYFEnAIhrT7dJrVV7GW/CnDfZ8/LQabXlo3A2JWxTPcM4cw==", - "requires": { - "focus-group": "^0.3.1", - "prop-types": "^15.6.0", - "teeny-tap": "^0.2.0" - } - }, - "react-datetime": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/react-datetime/-/react-datetime-2.16.3.tgz", - "integrity": "sha512-amWfb5iGEiyqjLmqCLlPpu2oN415jK8wX1qoTq7qn6EYiU7qQgbNHglww014PT4O/3G5eo/3kbJu/M/IxxTyGw==", - "requires": { - "create-react-class": "^15.5.2", - "object-assign": "^3.0.0", - "prop-types": "^15.5.7", - "react-onclickoutside": "^6.5.0" - }, - "dependencies": { - "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=" - } - } - }, - "react-dnd": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-7.7.0.tgz", - "integrity": "sha512-anpJDKMgdXE6kXvtBFmIAe1fuaexpVy7meUyNjiTfCnjQ1mRvnttGTVvcW9fMKijsUQYadiyvzd3BRxteFuVXg==", - "requires": { - "@types/hoist-non-react-statics": "^3.3.1", - "dnd-core": "^7.7.0", - "hoist-non-react-statics": "^3.3.0", - "invariant": "^2.1.0", - "shallowequal": "^1.1.0" - } - }, - "react-dnd-html5-backend": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-7.7.0.tgz", - "integrity": "sha512-JgKmWOxqorFyfGPeWV+SAPhVGFe6+LrOR24jETE9rrYZU5hCppzwK9ujjS508kWibeDvbfEgi9j5qC2wB1/MoQ==", - "requires": { - "dnd-core": "^7.7.0" - } - }, - "react-dom": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.12.0.tgz", - "integrity": "sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.18.0" - } - }, - "react-frame-component": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/react-frame-component/-/react-frame-component-4.1.1.tgz", - "integrity": "sha512-NfJp90AvYA1R6+uSYafQ+n+UM2HjHqi4WGHeprVXa6quU9d8o6ZFRzQ36uemY82dlkZFzf2jigFx6E4UzNFajA==" - }, - "react-hot-loader": { - "version": "4.12.18", - "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.18.tgz", - "integrity": "sha512-qYD0Qi9lIbg9jLyfmodfqvAQqCBsoPKxAhca8Nxvy2/2pO5Q9r2kM28jN0bbbSnhwK8dJ7FjsfVtXKOxMW+bqw==", - "requires": { - "fast-levenshtein": "^2.0.6", - "global": "^4.3.0", - "hoist-non-react-statics": "^3.3.0", - "loader-utils": "^1.1.0", - "prop-types": "^15.6.1", - "react-lifecycles-compat": "^3.0.4", - "shallowequal": "^1.1.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - } - } - }, - "react-immutable-proptypes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/react-immutable-proptypes/-/react-immutable-proptypes-2.1.0.tgz", - "integrity": "sha1-Aj1vObsVyXwHHp5g0A0TbqxfoLQ=" - }, - "react-input-autosize": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-2.2.2.tgz", - "integrity": "sha512-jQJgYCA3S0j+cuOwzuCd1OjmBmnZLdqQdiLKRYrsMMzbjUrVDS5RvJUDwJqA7sKuksDuzFtm6hZGKFu7Mjk5aw==", - "requires": { - "prop-types": "^15.5.8" - } - }, - "react-is": { - "version": "16.8.5", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.5.tgz", - "integrity": "sha512-sudt2uq5P/2TznPV4Wtdi+Lnq3yaYW8LfvPKLM9BKD8jJNBkxMVyB0C9/GmVhLw7Jbdmndk/73n7XQGeN9A3QQ==" - }, - "react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "react-modal": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.11.1.tgz", - "integrity": "sha512-8uN744Yq0X2lbfSLxsEEc2UV3RjSRb4yDVxRQ1aGzPo86QjNOwhQSukDb8U8kR+636TRTvfMren10fgOjAy9eA==", - "requires": { - "exenv": "^1.2.0", - "prop-types": "^15.5.10", - "react-lifecycles-compat": "^3.0.0", - "warning": "^4.0.3" - } - }, - "react-onclickoutside": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.9.0.tgz", - "integrity": "sha512-8ltIY3bC7oGhj2nPAvWOGi+xGFybPNhJM0V1H8hY/whNcXgmDeaeoCMPPd8VatrpTsUWjb/vGzrmu6SrXVty3A==" - }, - "react-polyglot": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/react-polyglot/-/react-polyglot-0.4.2.tgz", - "integrity": "sha512-dZoz2/eE2Uyq/yW7Zb/QiqdeobMJFvCKT2Qdjm+7pf0e6jM6N0Lg15nsow2/P0oRHTtUH3o+QUyF/MXTJBgLcw==", - "requires": { - "hoist-non-react-statics": "^2.5.0", - "prop-types": "^15.5.8" - }, - "dependencies": { - "hoist-non-react-statics": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", - "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" - } - } - }, - "react-portal": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-portal/-/react-portal-3.2.0.tgz", - "integrity": "sha512-avb1FreAZAVCvNNyS2dCpxZiPYPJnAasHYPxdVBTROgNFeI+KSb+OoMHNsC1GbDawESCriPwCX+qKua6WSPIFw==", - "requires": { - "prop-types": "^15.5.8" - } - }, - "react-redux": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.1.2.tgz", - "integrity": "sha512-Ns1G0XXc8hDyH/OcBHOxNgQx9ayH3SPxBnFCOidGKSle8pKihysQw2rG/PmciUQRoclhVBO8HMhiRmGXnDja9Q==", - "requires": { - "@babel/runtime": "^7.1.2", - "hoist-non-react-statics": "^3.3.0", - "invariant": "^2.2.4", - "loose-envify": "^1.1.0", - "prop-types": "^15.6.1", - "react-is": "^16.6.0", - "react-lifecycles-compat": "^3.0.0" - } - }, - "react-router": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-4.3.1.tgz", - "integrity": "sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg==", - "requires": { - "history": "^4.7.2", - "hoist-non-react-statics": "^2.5.0", - "invariant": "^2.2.4", - "loose-envify": "^1.3.1", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.1", - "warning": "^4.0.1" - }, - "dependencies": { - "hoist-non-react-statics": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", - "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" - } - } - }, - "react-router-dom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-4.3.1.tgz", - "integrity": "sha512-c/MlywfxDdCp7EnB7YfPMOfMD3tOtIjrQlj/CKfNMBxdmpJP8xcz5P/UAFn3JbnQCNUxsHyVVqllF9LhgVyFCA==", - "requires": { - "history": "^4.7.2", - "invariant": "^2.2.4", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.1", - "react-router": "^4.3.1", - "warning": "^4.0.1" - } - }, - "react-router-redux": { - "version": "5.0.0-alpha.8", - "resolved": "https://registry.npmjs.org/react-router-redux/-/react-router-redux-5.0.0-alpha.8.tgz", - "integrity": "sha512-R/Cw62KtlMIifIjLF/xyiVOdHsooXK4uUW/ycX+jYfy1haKqmeY/N/bBiwRFNrMBat1Bn30ynDlgckwFcXLmIQ==", - "requires": { - "history": "^4.7.2", - "prop-types": "^15.6.0", - "react-router": "^4.2.0" - } - }, - "react-scroll-sync": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/react-scroll-sync/-/react-scroll-sync-0.6.0.tgz", - "integrity": "sha512-Frc7pNPIEQY6rUAUwm1wW0an57Xau6X1Sag+Ra2FJT+oDBEBdh4cahrE3oGwtYHPcyWMt74q7vRKLw73cPy6aw==" - }, - "react-select": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/react-select/-/react-select-2.4.4.tgz", - "integrity": "sha512-C4QPLgy9h42J/KkdrpVxNmkY6p4lb49fsrbDk/hRcZpX7JvZPNb6mGj+c5SzyEtBv1DmQ9oPH4NmhAFvCrg8Jw==", - "requires": { - "classnames": "^2.2.5", - "emotion": "^9.1.2", - "memoize-one": "^5.0.0", - "prop-types": "^15.6.0", - "raf": "^3.4.0", - "react-input-autosize": "^2.2.1", - "react-transition-group": "^2.2.1" - }, - "dependencies": { - "react-transition-group": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", - "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", - "requires": { - "dom-helpers": "^3.4.0", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2", - "react-lifecycles-compat": "^3.0.4" - } - } - } - }, - "react-sortable-hoc": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/react-sortable-hoc/-/react-sortable-hoc-1.10.1.tgz", - "integrity": "sha512-eVyv5rrK6qY9bG60bboRY78In7OpdRRg+hxp4QMLIjC/UJaFSU7exTYd0764GtXvBqh+b+faYGzren5/ffRYKw==", - "requires": { - "@babel/runtime": "^7.2.0", - "invariant": "^2.2.4", - "prop-types": "^15.5.7" - } - }, - "react-split-pane": { - "version": "0.1.89", - "resolved": "https://registry.npmjs.org/react-split-pane/-/react-split-pane-0.1.89.tgz", - "integrity": "sha512-bGEiOevi6nBE1evEJOsZjd5A7plLboFAU4+HGASWWVm94XUg7QdsuPInGOB+5Ym4RtY3TZCpmUvLe6qQmrZUOg==", - "requires": { - "prop-types": "^15.5.10", - "react-lifecycles-compat": "^3.0.4", - "react-style-proptype": "^3.0.0" - } - }, - "react-style-proptype": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-style-proptype/-/react-style-proptype-3.2.2.tgz", - "integrity": "sha512-ywYLSjNkxKHiZOqNlso9PZByNEY+FTyh3C+7uuziK0xFXu9xzdyfHwg4S9iyiRRoPCR4k2LqaBBsWVmSBwCWYQ==", - "requires": { - "prop-types": "^15.5.4" - } - }, - "react-textarea-autosize": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-7.1.2.tgz", - "integrity": "sha512-uH3ORCsCa3C6LHxExExhF4jHoXYCQwE5oECmrRsunlspaDAbS4mGKNlWZqjLfInWtFQcf0o1n1jC/NGXFdUBCg==", - "requires": { - "@babel/runtime": "^7.1.2", - "prop-types": "^15.6.0" - } - }, - "react-toggled": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/react-toggled/-/react-toggled-1.2.7.tgz", - "integrity": "sha512-3am1uA5ZzDwUkReEuUkK+fJ0DAYcGiLraWEPqXfL1kKD/NHbbB7fB/t+5FflMGd+FA6n9hih1es4pui1yzKi0w==" - }, - "react-topbar-progress-indicator": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/react-topbar-progress-indicator/-/react-topbar-progress-indicator-2.0.0.tgz", - "integrity": "sha512-QEKsnwkjMvb10h7k+cFm0UeeVcRRIGhOJNqMQAbDyzSifPvlePk0KIcUb9dof2SkW7E5GaSxGsmXSpaFTYn43A==", - "requires": { - "topbar": "^0.1.3" - } - }, - "react-transition-group": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-1.2.1.tgz", - "integrity": "sha512-CWaL3laCmgAFdxdKbhhps+c0HRGF4c+hdM4H23+FI1QBNUyx/AMeIJGWorehPNSaKnQNOAxL7PQmqMu78CDj3Q==", - "requires": { - "chain-function": "^1.0.0", - "dom-helpers": "^3.2.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.5.6", - "warning": "^3.0.0" - }, - "dependencies": { - "warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", - "requires": { - "loose-envify": "^1.0.0" - } - } - } - }, - "react-waypoint": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/react-waypoint/-/react-waypoint-8.1.0.tgz", - "integrity": "sha512-HoOItWTHObgz7bstmz9p3wuTVDRdsyNspnkAOFz9eE4z8LRj1bbNP9Nzye2k9zsFiujlz8lmp13UFmuXPWXPYw==", - "requires": { - "consolidated-events": "^1.1.0 || ^2.0.0", - "prop-types": "^15.0.0", - "react-is": "^16.6.3" - } - }, - "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.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "dependencies": { - "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.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "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.0.0", - "read-pkg": "^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.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "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.0" - } - } - } - }, - "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==", - "requires": { - "core-util-is": "~1.0.0", - "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.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "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" - } - }, - "redux": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.4.tgz", - "integrity": "sha512-vKv4WdiJxOWKxK0yRoaK3Y4pxxB0ilzVx6dszU2W8wLxlb2yikRph4iV/ymtdJ6ZxpBLFbyrxklnT5yBbQSl3Q==", - "requires": { - "loose-envify": "^1.4.0", - "symbol-observable": "^1.2.0" - } - }, - "redux-notifications": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/redux-notifications/-/redux-notifications-4.0.1.tgz", - "integrity": "sha512-mRVaEcsvu5B4P8x8kW0uY83EQqaWL/0+/NvL4bdbHGJVg+Rwx54MgBU1s+tB6RAA2E6NX/DmQrO4EbFDcQSi+w==", - "requires": { - "object-assign": "^4.1.1", - "prop-types": "^15.5.10", - "react-redux": "^4.0.0", - "react-transition-group": "^1.1.3" - }, - "dependencies": { - "react-redux": { - "version": "4.4.10", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.10.tgz", - "integrity": "sha512-tjL0Bmpkj75Td0k+lXlF8Fc8a9GuXFv/3ahUOCXExWs/jhsKiQeTffdH0j5byejCGCRL4tvGFYlrwBF1X/Aujg==", - "requires": { - "create-react-class": "^15.5.1", - "hoist-non-react-statics": "^3.3.0", - "invariant": "^2.0.0", - "lodash": "^4.17.11", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2" - } - } - } - }, - "redux-optimist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redux-optimist/-/redux-optimist-1.0.0.tgz", - "integrity": "sha512-AG1v8o6UZcGXTEH2jVcWG6KD+gEix+Cj9JXAAzln9MPkauSVd98H7N7EOOyT/v4c9N1mJB4sm1zfspGlLDkUEw==" - }, - "redux-thunk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.3.0.tgz", - "integrity": "sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==" - }, - "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" - }, - "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==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "rehype-minify-whitespace": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/rehype-minify-whitespace/-/rehype-minify-whitespace-2.0.4.tgz", - "integrity": "sha512-TQVOvOSURaWNbYepVgSzUofSTRsaAVQe/dH01Mo44u+Gr221jTmUem8l0jlJBAfSOHNaUF4jfDDbyEeb4ueAmA==", - "requires": { - "collapse-white-space": "^1.0.0", - "hast-util-embedded": "^1.0.0", - "hast-util-has-property": "^1.0.0", - "hast-util-is-body-ok-link": "^1.0.0", - "hast-util-is-element": "^1.0.0", - "html-whitespace-sensitive-tag-names": "^1.0.0", - "unist-util-is": "^3.0.0", - "unist-util-modify-children": "^1.0.0" - } - }, - "rehype-parse": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-3.1.0.tgz", - "integrity": "sha1-f1InpZej85/EuThkYWFTnERO5yg=", - "requires": { - "hast-util-from-parse5": "^1.0.0", - "parse5": "^2.1.5", - "xtend": "^4.0.1" - } - }, - "rehype-remark": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/rehype-remark/-/rehype-remark-2.1.0.tgz", - "integrity": "sha1-hMrdQUENI96Pg+FB6SNCwt+Uwcg=", - "requires": { - "hast-util-to-mdast": "^1.1.0" - } - }, - "rehype-stringify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-3.0.0.tgz", - "integrity": "sha1-n+8IaCE8Lc4veAt289BIjIXoGes=", - "requires": { - "hast-util-to-html": "^3.0.0", - "xtend": "^4.0.1" - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" - }, - "remark-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-3.0.1.tgz", - "integrity": "sha1-G5+EGkTY9PvyJGhQJlRZpOs1TIA=", - "requires": { - "collapse-white-space": "^1.0.2", - "has": "^1.0.1", - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "is-word-character": "^1.0.0", - "markdown-escapes": "^1.0.0", - "parse-entities": "^1.0.2", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "trim": "0.0.1", - "trim-trailing-lines": "^1.0.0", - "unherit": "^1.0.4", - "unist-util-remove-position": "^1.0.0", - "vfile-location": "^2.0.0", - "xtend": "^4.0.1" - } - }, - "remark-rehype": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-2.0.1.tgz", - "integrity": "sha1-E+mJ+J7hVES9I1Tf/XZ9qSK5heM=", - "requires": { - "mdast-util-to-hast": "^2.2.0" - } - }, - "remark-stringify": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-3.0.1.tgz", - "integrity": "sha1-eSQr6+CnUggbWAlRb6DAbt7Aac8=", - "requires": { - "ccount": "^1.0.0", - "is-alphanumeric": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "longest-streak": "^2.0.1", - "markdown-escapes": "^1.0.0", - "markdown-table": "^1.1.0", - "mdast-util-compact": "^1.0.0", - "parse-entities": "^1.0.2", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "stringify-entities": "^1.0.1", - "unherit": "^1.0.4", - "xtend": "^4.0.1" - } - }, - "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=" - }, - "renderkid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", - "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", - "requires": { - "css-select": "^1.1.0", - "dom-converter": "^0.2", - "htmlparser2": "^3.3.0", - "strip-ansi": "^3.0.0", - "utila": "^0.4.0" - } - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "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.0" - } - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" - }, - "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.2.1", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~4.2.1", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "performance-now": "^0.2.0", - "qs": "~6.4.0", - "safe-buffer": "^5.0.1", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.0.0" - }, - "dependencies": { - "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 - } - } - }, - "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-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 - }, - "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.13.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz", - "integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==", - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" - }, - "resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" - }, - "resolve-protobuf-schema": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", - "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", - "requires": { - "protocol-buffers-schema": "^3.3.1" - } - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "resp-modifier": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", - "integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=", - "dev": true, - "requires": { - "debug": "^2.2.0", - "minimatch": "^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==" - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "requires": { - "aproba": "^1.1.1" - } - }, - "rx": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", - "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", - "dev": true - }, - "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=", - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sanitize-filename": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", - "requires": { - "truncate-utf8-bytes": "^1.0.0" - } - }, - "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.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^7.0.0" - }, - "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.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.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "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.1.1", - "get-caller-file": "^1.0.1", - "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" - } - } - } - }, - "scheduler": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz", - "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "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.1.8", - "source-map": "^0.4.2" - }, - "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": ">=0.0.4" - } - } - } - }, - "section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "requires": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "selection-is-backward": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/selection-is-backward/-/selection-is-backward-1.0.0.tgz", - "integrity": "sha1-l6VGMxiKURq6ZBn8XB+pG0Z+a+E=" - }, - "semaphore": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", - "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "send": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.15.2.tgz", - "integrity": "sha1-+R+rRAO8+H5xb3DOtdsvV4vcF9Y=", - "dev": true, - "requires": { - "debug": "2.6.4", - "depd": "~1.1.0", - "destroy": "~1.0.4", - "encodeurl": "~1.0.1", - "escape-html": "~1.0.3", - "etag": "~1.8.0", - "fresh": "0.5.0", - "http-errors": "~1.6.1", - "mime": "1.3.4", - "ms": "1.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.3.1" - }, - "dependencies": { - "debug": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.4.tgz", - "integrity": "sha1-dYaps8OXQcAoKuM0RcTorHRzT+A=", - "dev": true, - "requires": { - "ms": "0.7.3" - }, - "dependencies": { - "ms": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.3.tgz", - "integrity": "sha1-cIFVpeROM/X9D8U+gdDUCpG+H/8=", - "dev": true - } - } - }, - "fresh": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", - "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=", - "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 < 2" - }, - "dependencies": { - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - } - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-1.0.0.tgz", - "integrity": "sha1-Wa3NIu3FQ/e1OBhi0xOHsfS8lHM=", - "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 - } - } - }, - "sequencify": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", - "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", - "dev": true - }, - "serialize-javascript": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", - "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==" - }, - "serve-index": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.8.0.tgz", - "integrity": "sha1-fF2WwT+xMRAfk8HFd0+FFqHnjTs=", - "dev": true, - "requires": { - "accepts": "~1.3.3", - "batch": "0.5.3", - "debug": "~2.2.0", - "escape-html": "~1.0.3", - "http-errors": "~1.5.0", - "mime-types": "~2.1.11", - "parseurl": "~1.3.1" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true, - "requires": { - "ms": "0.7.1" - } - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - } - } - }, - "serve-static": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.2.tgz", - "integrity": "sha1-5UbicmCBuBtLzsjpCAjrzdMjr7o=", - "dev": true, - "requires": { - "encodeurl": "~1.0.1", - "escape-html": "~1.0.3", - "parseurl": "~1.3.1", - "send": "0.15.2" - } - }, - "server-destroy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", - "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0=", - "dev": true - }, - "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-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "setprototypeof": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz", - "integrity": "sha1-gaVSFB7BBLiOic44MQOtXGZWTQg=", - "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==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" - }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "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-line-icons": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/simple-line-icons/-/simple-line-icons-2.4.1.tgz", - "integrity": "sha1-t1vFoNh+UwkowszaVzUnS7JW8jQ=" - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, - "slate": { - "version": "0.34.7", - "resolved": "https://registry.npmjs.org/slate/-/slate-0.34.7.tgz", - "integrity": "sha1-WQjh0PwJKiISSIvsplZx8B4OuAo=", - "requires": { - "debug": "^3.1.0", - "direction": "^0.1.5", - "esrever": "^0.2.0", - "is-empty": "^1.0.0", - "is-plain-object": "^2.0.4", - "lodash": "^4.17.4", - "slate-dev-logger": "^0.1.39", - "slate-schema-violations": "^0.1.20", - "type-of": "^2.0.1" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "slate-base64-serializer": { - "version": "0.2.112", - "resolved": "https://registry.npmjs.org/slate-base64-serializer/-/slate-base64-serializer-0.2.112.tgz", - "integrity": "sha512-Vo94bkCq8cbFj7Lutdh2RaM9S4WlLxnnMqZPKGUyefklUN4q2EzM/WUH7s9CIlLUH1qRfC/b0V25VJZr5XXTzA==", - "requires": { - "isomorphic-base64": "^1.0.2" - } - }, - "slate-dev-environment": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/slate-dev-environment/-/slate-dev-environment-0.1.6.tgz", - "integrity": "sha512-DDeNzcpBvdEtPmuLrpPtrth7vnK693fgxzwS6FACu3oMBoXjh0qcJWVBktecPJXJDxcTVkWUpt0dPhfXLMIkWQ==", - "requires": { - "is-in-browser": "^1.1.3" - } - }, - "slate-dev-logger": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/slate-dev-logger/-/slate-dev-logger-0.1.43.tgz", - "integrity": "sha512-GkcPMGzmPVm85AL+jaKnzhIA0UH9ktQDEIDM+FuQtz+TAPcpPCQiRAaZ6I2p2uD0Hq9bImhKSCtHIa0qRxiVGw==" - }, - "slate-edit-list": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/slate-edit-list/-/slate-edit-list-0.11.3.tgz", - "integrity": "sha512-nqaiYYppezMmbsh+JN6vqZl2EexiUTJWwCzJVas8cv+WeRtRmuysn94LKF2VdLIxLmNAe/ZfliIkW9uC/NdO6w==" - }, - "slate-edit-table": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/slate-edit-table/-/slate-edit-table-0.15.2.tgz", - "integrity": "sha1-8mtnRRtQf5NhBhUfVaC/+9vKAhM=" - }, - "slate-hotkeys": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/slate-hotkeys/-/slate-hotkeys-0.1.4.tgz", - "integrity": "sha1-WxCyoXiv/GCCf5KE1MCl1+UEH/4=", - "requires": { - "is-hotkey": "^0.1.1", - "slate-dev-environment": "^0.1.4" - } - }, - "slate-plain-serializer": { - "version": "0.5.41", - "resolved": "https://registry.npmjs.org/slate-plain-serializer/-/slate-plain-serializer-0.5.41.tgz", - "integrity": "sha512-KPC2T5PT29JN7uxpmpg/xIGO1YjNmpTfghkGsUKBx7HHYjGe5c9jEApolTvzNy3F3w+wGQNsiT+aN6dn9m6sFA==", - "requires": { - "slate-dev-logger": "^0.1.43" - } - }, - "slate-prop-types": { - "version": "0.4.67", - "resolved": "https://registry.npmjs.org/slate-prop-types/-/slate-prop-types-0.4.67.tgz", - "integrity": "sha512-FmdwitAw1Y69JHm326dfwP6Zd6R99jz1Im8jvKcnG2hytk72I1vIv6ct2CkNGwc3sg90+OIO/Rf18frYxxoTzw==" - }, - "slate-react": { - "version": "0.12.9", - "resolved": "https://registry.npmjs.org/slate-react/-/slate-react-0.12.9.tgz", - "integrity": "sha1-bLbx+obIaPVrXc4GQUZSBUWIQ1E=", - "requires": { - "debug": "^3.1.0", - "get-window": "^1.1.1", - "is-window": "^1.0.2", - "keycode": "^2.1.2", - "lodash": "^4.1.1", - "prop-types": "^15.5.8", - "react-immutable-proptypes": "^2.1.0", - "react-portal": "^3.1.0", - "selection-is-backward": "^1.0.0", - "slate-base64-serializer": "^0.2.34", - "slate-dev-environment": "^0.1.2", - "slate-dev-logger": "^0.1.39", - "slate-hotkeys": "^0.1.2", - "slate-plain-serializer": "^0.5.15", - "slate-prop-types": "^0.4.32" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "slate-schema-violations": { - "version": "0.1.39", - "resolved": "https://registry.npmjs.org/slate-schema-violations/-/slate-schema-violations-0.1.39.tgz", - "integrity": "sha512-SNRoV9Ii5UqjNqAKcIw7aAOMwgI45zsn86ue2n8NVLNOCe3fUI35cjq6l3fdvmRYw4X/GcZqzhpQsizHD3ts6A==" - }, - "slate-soft-break": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/slate-soft-break/-/slate-soft-break-0.6.1.tgz", - "integrity": "sha512-PTujwU6B8vKO86Yqj2TXcryxkal6PBmFrUhZwZF6fQlhlLUaJAMYQX60blGvO7tncDxyofxxIkBKdGdjL3JldA==" - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "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=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "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==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "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=", - "requires": { - "is-descriptor": "^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==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "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==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true, - "requires": { - "hoek": "2.x.x" - } - }, - "socket.io": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.0.4.tgz", - "integrity": "sha1-waRZDO/4fs8TxyZS8Eb3FrKeYBQ=", - "dev": true, - "requires": { - "debug": "~2.6.6", - "engine.io": "~3.1.0", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.0.4", - "socket.io-parser": "~3.1.1" - } - }, - "socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", - "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", - "dev": true - }, - "socket.io-client": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.0.4.tgz", - "integrity": "sha1-CRilUkBtxeVAs4Dc2Xr8SmQzL44=", - "dev": true, - "requires": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "~2.6.4", - "engine.io-client": "~3.1.0", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "~3.1.1", - "to-array": "0.1.4" - }, - "dependencies": { - "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 - } - } - }, - "socket.io-parser": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.1.3.tgz", - "integrity": "sha512-g0a2HPqLguqAczs3dMECuA1RgoGFPyvDqcbaDEdCWY9g59kdUAz3YRmaJBNKXflrHNwB7Q12Gkf/0CZXfdHR7g==", - "dev": true, - "requires": { - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "has-binary2": "~1.0.2", - "isarray": "2.0.1" - }, - "dependencies": { - "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 - }, - "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" - } - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - } - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "requires": { - "is-plain-obj": "^1.0.0" - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "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==", - "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.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "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=" - }, - "space-separated-tokens": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.4.tgz", - "integrity": "sha512-UyhMSmeIqZrQn2UdjYpxEkwY9JUrn8pP+7L4f91zRzOQuI8MF1FGLfYU9DKCYeLdo7LXMxwrX5zKFy7eeeVHuA==" - }, - "sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", - "dev": true - }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", - "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.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", - "dev": true - }, - "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==", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "stackframe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.1.0.tgz", - "integrity": "sha512-Vx6W1Yvy+AM1R/ckVwcHQHV147pTPBKWCRLrXMuPrFVfvBUc3os7PR1QLIWCMhPpRg5eX9ojzbQIMLGBwyLjqg==" - }, - "state-toggle": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.2.tgz", - "integrity": "sha512-8LpelPGR0qQM4PnfLiplOQNJcIN1/r2Gy0xKB2zKnIW2YzPMt2sR4I/+gtPjhN7Svh9kw+zqEg2SFwpBO9iNiw==" - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "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=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", - "dev": true - }, - "stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-consume": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz", - "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==", - "dev": true - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - }, - "stream-throttle": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", - "integrity": "sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM=", - "dev": true, - "requires": { - "commander": "^2.2.0", - "limiter": "^1.0.5" - } - }, - "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=" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string.prototype.trim": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.0.tgz", - "integrity": "sha512-9EIjYD/WdlvLpn987+ctkLf0FfvBefOCuiEr2henD8X+7jfwPnyvTdmW8OJhj5p+M0/96mBdynLWkxUr+rHlpg==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.13.0", - "function-bind": "^1.1.1" - } - }, - "string.prototype.trimleft": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", - "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "string.prototype.trimright": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", - "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "stringify-entities": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.2.tgz", - "integrity": "sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==", - "requires": { - "character-entities-html4": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-hexadecimal": "^1.0.0" - } - }, - "stringstream": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", - "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", - "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=", - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - } - } - }, - "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.0" - } - }, - "strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=" - }, - "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" - } - }, - "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.2" - } - }, - "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 - }, - "stylis": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz", - "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==" - }, - "stylis-rule-sheet": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", - "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" - }, - "tar": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", - "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", - "dev": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.12", - "inherits": "2" - } - }, - "teeny-tap": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/teeny-tap/-/teeny-tap-0.2.0.tgz", - "integrity": "sha1-Fn5kUYLQasIi1iuyq2eUenClimg=" - }, - "terser": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.2.tgz", - "integrity": "sha512-Uufrsvhj9O1ikwgITGsZ5EZS6qPokUOkCegS7fYOdGTv+OA90vndUbU6PEjr5ePqHfNUbGyMO7xyIZv2MhsALQ==", - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - } - } - }, - "terser-webpack-plugin": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.2.tgz", - "integrity": "sha512-fdEb91kR2l+BVgES77N/NTXWZlpX6vX+pYPjnX5grcDYBF2CMnzJiXX4NNlna4l04lvCW39lZ+O/jSvUhHH/ew==", - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^2.1.1", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - } - }, - "tfunk": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-3.1.0.tgz", - "integrity": "sha1-OORBT8ZJd9h6/apy+sttKfgve1s=", - "dev": true, - "requires": { - "chalk": "^1.1.1", - "object-path": "^0.9.0" - }, - "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.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "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 - } - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "tildify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", - "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", - "dev": true, - "requires": { - "os-homedir": "^1.0.0" - } - }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", - "dev": true - }, - "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", - "requires": { - "setimmediate": "^1.0.4" - } - }, - "tiny-invariant": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.0.6.tgz", - "integrity": "sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA==" - }, - "tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" - }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", - "dev": true - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - }, - "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=" - }, - "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=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "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=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "toml-j0.4": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/toml-j0.4/-/toml-j0.4-1.1.1.tgz", - "integrity": "sha512-lYK5otg0+cto8YmsWcPEfeiTiC/VU6P6HA6ooaYI9K/KYT24Jg0BrYtRZK1K3cwakSMyh6nttfJL9RmQH0gyCg==" - }, - "tomlify-j0.4": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tomlify-j0.4/-/tomlify-j0.4-3.0.0.tgz", - "integrity": "sha512-2Ulkc8T7mXJ2l0W476YC/A209PR38Nw8PuaCNtk9uI3t1zzFdGQeWYGQvmj2PZkVvRC/Yoi4xQKMRnWc/N29tQ==" - }, - "topbar": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/topbar/-/topbar-0.1.3.tgz", - "integrity": "sha1-ye+HdtxEafeEDmQW9BNt3sz0t8Y=" - }, - "toposort": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", - "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=" - }, - "touch": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/touch/-/touch-2.0.2.tgz", - "integrity": "sha512-qjNtvsFXTRq7IuMLweVgFxmEuQ6gLbRs2jQxL80TtZ31dEKWYIxRXquij6w6VimyDek5hD3PytljHmEtAs2u0A==", - "requires": { - "nopt": "~1.0.10" - } - }, - "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==", - "dev": true, - "requires": { - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "trim": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" - }, - "trim-lines": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-1.1.2.tgz", - "integrity": "sha512-3GOuyNeTqk3FAqc3jOJtw7FTjYl94XBR5aD9QnDbK/T4CA9sW/J0l9RoaRPE9wyPP7NF331qnHnvJFBJ+IDkmQ==" - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "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.2" - } - }, - "trim-trailing-lines": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.2.tgz", - "integrity": "sha512-MUjYItdrqqj2zpcHFTkMa9WAv4JHTI6gnRQGPFLrt5L9a6tRMiDnIqYl8JBvu2d2Tc3lWJKQwlGCp0K8AvCM+Q==" - }, - "trough": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.4.tgz", - "integrity": "sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q==" - }, - "true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", - "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", - "dev": true, - "requires": { - "glob": "^7.1.2" - } - }, - "truncate-utf8-bytes": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", - "requires": { - "utf8-byte-length": "^1.0.1" - } - }, - "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-of": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/type-of/-/type-of-2.0.1.tgz", - "integrity": "sha1-5yoXQYllaOn2KDeNgW1pEvfyOXI=" - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "ua-parser-js": { - "version": "0.7.20", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.20.tgz", - "integrity": "sha512-8OaIKfzL5cpx8eCMAhhvTlft8GYF8b2eQr6JkCyVdrgjcytyOmPCXrqXFcUnhonRpLlh5yxEZVohm6mzaowUOw==" - }, - "uglify-js": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", - "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", - "requires": { - "commander": "~2.19.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" - } - } - }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true - }, - "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 - }, - "unherit": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.2.tgz", - "integrity": "sha512-W3tMnpaMG7ZY6xe/moK04U9fBhi6wEiCYHUW5Mop/wQHf12+79EQGwxYejNdhEz2mkqkBlGwm7pxmgBKMVUj0w==", - "requires": { - "inherits": "^2.0.1", - "xtend": "^4.0.1" - } - }, - "unified": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz", - "integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==", - "requires": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^1.1.0", - "trough": "^1.0.0", - "vfile": "^2.0.0", - "x-is-string": "^0.1.0" - } - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unique-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", - "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", - "dev": true - }, - "unist-builder": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-1.0.4.tgz", - "integrity": "sha512-v6xbUPP7ILrT15fHGrNyHc1Xda8H3xVhP7/HAIotHOhVPjH5dCXA097C3Rry1Q2O+HbOLCao4hfPB+EYEjHgVg==", - "requires": { - "object-assign": "^4.1.0" - } - }, - "unist-util-generated": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.5.tgz", - "integrity": "sha512-1TC+NxQa4N9pNdayCYA1EGUOCAO0Le3fVp7Jzns6lnua/mYgwHo0tz5WUAfrdpNch1RZLHc61VZ1SDgrtNXLSw==" - }, - "unist-util-is": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", - "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==" - }, - "unist-util-modify-children": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-1.1.5.tgz", - "integrity": "sha512-XeL5qqyoS3TEueCKEzHusWXE9JBDJPE4rl6LmcLOwlzv0RIZrcMNqKx02GSK3Ms4v45ldu+ltPxG42FBMVdPZw==", - "requires": { - "array-iterate": "^1.0.0" - } - }, - "unist-util-position": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.0.4.tgz", - "integrity": "sha512-tWvIbV8goayTjobxDIr4zVTyG+Q7ragMSMeKC3xnPl9xzIc0+she8mxXLM3JVNDDsfARPbCd3XdzkyLdo7fF3g==" - }, - "unist-util-remove-position": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz", - "integrity": "sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==", - "requires": { - "unist-util-visit": "^1.1.0" - } - }, - "unist-util-stringify-position": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", - "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==" - }, - "unist-util-visit": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", - "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", - "requires": { - "unist-util-visit-parents": "^2.0.0" - }, - "dependencies": { - "unist-util-visit-parents": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", - "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", - "requires": { - "unist-util-is": "^3.0.0" - } - } - } - }, - "unist-util-visit-parents": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz", - "integrity": "sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q==" - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "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=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "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=" - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" - }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "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=" - } - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "dev": true - }, - "utf8-byte-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=" - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "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==", - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" - }, - "utils-merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=", - "dev": true - }, - "uuid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" - }, - "uws": { - "version": "9.14.0", - "resolved": "https://registry.npmjs.org/uws/-/uws-9.14.0.tgz", - "integrity": "sha512-HNMztPP5A1sKuVFmdZ6BPVpBQd5bUjNC8EFMFiICK+oho/OQsAJy5hnIx4btMHiOk8j04f/DbIlqnEZ9d72dqg==", - "dev": true, - "optional": 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.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "value-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } - }, - "vfile": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz", - "integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==", - "requires": { - "is-buffer": "^1.1.4", - "replace-ext": "1.0.0", - "unist-util-stringify-position": "^1.0.0", - "vfile-message": "^1.0.0" - } - }, - "vfile-location": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz", - "integrity": "sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==" - }, - "vfile-message": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz", - "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==", - "requires": { - "unist-util-stringify-position": "^1.1.1" - } - }, - "vinyl": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", - "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", - "dev": true, - "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" - }, - "dependencies": { - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", - "dev": true - } - } - }, - "vinyl-fs": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", - "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", - "dev": true, - "requires": { - "defaults": "^1.0.0", - "glob-stream": "^3.1.5", - "glob-watcher": "^0.0.6", - "graceful-fs": "^3.0.0", - "mkdirp": "^0.5.0", - "strip-bom": "^1.0.0", - "through2": "^0.6.1", - "vinyl": "^0.4.0" - }, - "dependencies": { - "clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", - "dev": true - }, - "graceful-fs": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.12.tgz", - "integrity": "sha512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg==", - "dev": true, - "requires": { - "natives": "^1.1.3" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "strip-bom": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", - "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", - "dev": true, - "requires": { - "first-chunk-stream": "^1.0.0", - "is-utf8": "^0.2.0" - } - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - }, - "vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", - "dev": true, - "requires": { - "clone": "^0.2.0", - "clone-stats": "^0.0.1" - } - } - } - }, - "vinyl-sourcemaps-apply": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", - "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", - "dev": true, - "requires": { - "source-map": "^0.5.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 - } - } - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" - }, - "warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", - "requires": { - "chokidar": "^2.0.2", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - } - }, - "webpack": { - "version": "4.41.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.2.tgz", - "integrity": "sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/wasm-edit": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.2.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.1", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.1", - "watchpack": "^1.6.0", - "webpack-sources": "^1.4.1" - } - }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "what-input": { - "version": "5.2.6", - "resolved": "https://registry.npmjs.org/what-input/-/what-input-5.2.6.tgz", - "integrity": "sha512-a0BcI5YR7xp87vSzGcbN0IszJKpUQuTmrZaTSQBl7TLDIdKj6rDhluQ7b/7lYGG81gWDvkySsEvwv4BW5an9kg==" - }, - "whatwg-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", - "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" - }, - "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" - } - }, - "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 - }, - "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": "^1.0.2 || 2" - } - }, - "window-size": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", - "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", - "dev": true - }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "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.1", - "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.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.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - }, - "x-is-string": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", - "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=" - }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "yaml": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.2.tgz", - "integrity": "sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==", - "requires": { - "@babel/runtime": "^7.6.3" - } - }, - "yargs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.4.0.tgz", - "integrity": "sha1-gW4ahm1VmMzzTlWW3c4i2S2kkNQ=", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "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", - "window-size": "^0.2.0", - "y18n": "^3.2.1", - "yargs-parser": "^4.1.0" - }, - "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.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.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "window-size": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", - "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=", - "dev": true - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - } - } - }, - "yargs-parser": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", - "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", - "dev": true, - "requires": { - "camelcase": "^3.0.0" - } - }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", - "dev": true - } - } + "lockfileVersion": 1 } diff --git a/privacy.md b/privacy.md new file mode 100644 index 0000000..3d7f0a6 --- /dev/null +++ b/privacy.md @@ -0,0 +1,53 @@ +--- +layout: page +width: xsmall +permalink: /privacy/ +title: BlueWallet - Bitcoin wallet +description: A Bitcoin wallet for iOS. Easy to use and secure +--- + +##### Privacy Policy + +This Privacy policy describes the privacy practices that are applicable to your use of the Bluewallet mobile application (the “App”) provided by Bluewallet Services (the “Company”). + +No Use by Children. The App is not intended for use by children under the age of thirteen (13). If you are under the age of thirteen (13), please do not use the App. + +The Company does not collect, use or share any personal information about you when you use the App. The Company also does not allow third parties to collect personal information about you when you use the App, or to use tracking technology to track your use of the App. + +Any information that you provide to us when you communicate with our customer or technical support, will only be used for purposes of addressing your specific support request. + +Third Party App Stores. If you purchase or access the App through a third party app store, such as iTunes or Google Play (an “App Store”), you will have a separate, additional account relationship with that App Store and the information you provide to that App Store will be handled in accordance with the privacy practices of the applicable App Store. App Stores are not partners or representatives of the Company and the Company is not responsible for the acts or omissions of an App Store with regard to the collection, use, maintenance or disclosure of your information. If you want to change your preferences with regard to how an applicable App Store collects or uses your information, you should review the privacy practices of the applicable App Store and adjust your privacy or other settings directly through the applicable App Store. The Company will not receive or have access to any of the information you provide to, or that is collected by, an applicable App Store. + +Creators of BlueWallet never received any inquiries from NSA, FBI, FSB or any other government institution. + +Nor NSA nor any other government institution was ever granted access to BlueWallet's end users data. + +Nor NSA nor any other government institution was ever granted permission to install backdoor or other potentially malicious code in any part of BlueWallet's software. + +Fair Information Practices + +The Fair Information Practices Principles form the backbone of privacy law in the United States and the concepts they include have played a significant role in the development of data protection laws around the globe. Understanding the Fair Information Practice Principles and how they should be implemented is critical to comply with the various privacy laws that protect personal information. + +In order to be in line with Fair Information Practices we will take the following responsive action, should a data breach occur: +We will notify the users via in-site notification +• Within 7 business days + +We also agree to the Individual Redress Principle which requires that individuals have the right to legally pursue enforceable rights against data collectors and processors who fail to adhere to the law. This principle requires not only that individuals have enforceable rights against data users, but also that individuals have recourse to courts or government agencies to investigate and/or prosecute non-compliance by data processors. + +CAN SPAM Act + +The CAN-SPAM Act is a law that sets the rules for commercial email, establishes requirements for commercial messages, gives recipients the right to have emails stopped from being sent to them, and spells out tough penalties for violations. + +We collect your email address in order to: +Send you the updates you subscribe for. + +To be in accordance with CANSPAM and GDPR, we agree to the following: + +If at any time you would like to unsubscribe from receiving future emails, you can email us at bluewallet@bluewallet.io and we will promptly remove you from ALL correspondence. + +If there are any questions regarding this privacy policy, you may contact us using the information below. + +bluewallet@bluewallet.io + +Last Edited on 2020-12-16 + diff --git a/search.json b/search.json new file mode 100644 index 0000000..8e58600 --- /dev/null +++ b/search.json @@ -0,0 +1,14 @@ +--- +layout: null +--- +[ + {% for doc in site.docs %} + { + "title" : "{{ doc.title | escape }}", + "category" : "{{ doc.category }}", + "tags" : "{{ doc.tags | join: ', ' }}", + "url" : "{{ site.baseurl }}{{ doc.url }}", + "date" : "{{ doc.date }}" + } {% unless forloop.last %},{% endunless %} + {% endfor %} +] diff --git a/thanks.md b/thanks.md new file mode 100644 index 0000000..78b4eb4 --- /dev/null +++ b/thanks.md @@ -0,0 +1,16 @@ +--- +layout: page +title: Thanks +permalink: /thanks/ +width: small +--- + +### This is a redirect page for Formspree contact form + +Varius tempor. Nulla non sollicitudin tortor. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. + +Ut malesuada varius tempor. Nulla non sollicitudin tortor. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. + +Mesuada varius tempor. Nulla non sollicitudin tortor. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. + +Varius tempor. Nulla non sollicitudin tortor. Morbi sit amet laoreet ipsum, vel pretium mi. Morbi varius, tellus in accumsan blandit, elit ligula eleifend velit, luctus mattis ante nulla condimentum nulla. diff --git a/tos.md b/tos.md new file mode 100644 index 0000000..b4092a6 --- /dev/null +++ b/tos.md @@ -0,0 +1,29 @@ +--- +layout: page +width: xsmall +permalink: /tos/ +title: BlueWallet - Bitcoin wallet +description: A Bitcoin wallet for iOS. Easy to use and secure +--- + +##### Terms of use + +By using Bluewallet mobile application (the "App") provided by Bluewallet Services (the “Company”), you are agreeing to be bound by these terms of service, all applicable laws and regulations, and agree that you are responsible for compliance with any applicable local laws. If you do not agree with any of these terms, you are prohibited from using the App. + +The Company intends for users to be able to use the functionality of the App on a decentralized, anonymous basis. You acknowledge and agree that BlueWallet is not responsible for any errors or omissions that you make in connection with any Bitcoin transaction initiated via the Services, including but not limited to use of any incorrect address or the loss of your private key. + +How Your Wallet Works: Your Bitcoin is held in your BlueWallet in the "designed form", recorded on the Bitcoin blockchain. When you create a BlueWallet Wallet, the software on your phone generate and store a cryptographic private and public key pair that you may use to send and receive Bitcoin via the Bitcoin Blockchain network. + +Your Public Key: The public key generated by the Software serves as your Bitcoin wallet address, and is stored on your mobile device. We do not keep a copy of your public key associated with your identity or phone number. Therefore BlueWallet cannot identify you at any point. + +Your Private Key: The private key uniquely matches the wallet address and must be used in connection with the wallet address to authorize the transfer of bitcoin from or to that wallet address. The private key is stored on your mobile device. Importantly, your private key provides access to and security for your Bitcoin. BlueWallet has no access to your private key and may not, under any circumstance, initiate a transaction using your private key on your behalf. If you lose your private key, BlueWallet cannot recover it for you. + +In no event shall Blue Wallet Services or its suppliers be liable for any damages (including, without limitation, damages for loss of data or profit, or due to business interruption) arising out of the use or inability to use the materials on Blue Wallet Services, even if Blue Wallet Services or a Blue Wallet Services authorized representative has been notified orally or in writing of the possibility of such damage. + +Lightning Wallet: While the Bitcoin wallets are all self-hosted as outlined above, the Bluewallet Lightning Network Wallets are can be used self-hosted or hosted by BlueWallet Services. Which means BlueWallet Services has full access to all the data and info being sent and receive by this hosted service. +The hosted Lightnig Network wallets should be used as an experimental feature, for recreational use and software developing focus. By using this service you agree to use it exclusively for the mention purposes and not for commerce purposes. Accordingly, any funds stored on the lightning wallet of your BlueWallet app are at risk of loss due to a security breach or other attack and will not be reimbursed by the Company. We will however make every effort to ensure proper security measures are in place and followed. We strongly recommend keeping a small balance (less than $50 USD) on your lightning wallet at any one time. For larger balances, we recommend keeping on the Bitcoin wallet in BlueWallet and load/refill your lightning network wallet as needed. + +Blue Wallet Services may revise these terms of service for its website at any time without notice. By using the service you are agreeing to be bound by the then current version of these terms of service. + +The materials contained in this website are protected by applicable copyright and trademark law. These terms and conditions are governed by and construed in accordance with the laws of Republica Dominicana and you irrevocably submit to the exclusive jurisdiction of the courts in that State or location. + diff --git a/uploads/.DS_Store b/uploads/.DS_Store new file mode 100644 index 0000000..1b93b5e Binary files /dev/null and b/uploads/.DS_Store differ diff --git a/uploads/20-sided-dice-roll-manual-entropy.png b/uploads/20-sided-dice-roll-manual-entropy.png new file mode 100644 index 0000000..0b63cd9 Binary files /dev/null and b/uploads/20-sided-dice-roll-manual-entropy.png differ diff --git a/uploads/6-sided-dice-roll-manual-entropy.png b/uploads/6-sided-dice-roll-manual-entropy.png new file mode 100644 index 0000000..1829db9 Binary files /dev/null and b/uploads/6-sided-dice-roll-manual-entropy.png differ diff --git a/uploads/add-bitcoin-wallet-with-advanced-options.png b/uploads/add-bitcoin-wallet-with-advanced-options.png new file mode 100644 index 0000000..20a0353 Binary files /dev/null and b/uploads/add-bitcoin-wallet-with-advanced-options.png differ diff --git a/uploads/add-bitcoin-wallet.png b/uploads/add-bitcoin-wallet.png new file mode 100644 index 0000000..3642ab1 Binary files /dev/null and b/uploads/add-bitcoin-wallet.png differ diff --git a/uploads/add-lightning-wallet-with-advanced-options.png b/uploads/add-lightning-wallet-with-advanced-options.png new file mode 100644 index 0000000..daca7ea Binary files /dev/null and b/uploads/add-lightning-wallet-with-advanced-options.png differ diff --git a/uploads/add-lightning-wallet.png b/uploads/add-lightning-wallet.png new file mode 100644 index 0000000..c2ec82f Binary files /dev/null and b/uploads/add-lightning-wallet.png differ diff --git a/uploads/add-manual-entropy.png b/uploads/add-manual-entropy.png new file mode 100644 index 0000000..1adbcd4 Binary files /dev/null and b/uploads/add-manual-entropy.png differ diff --git a/uploads/addwallet.png b/uploads/addwallet.png new file mode 100644 index 0000000..787d1aa Binary files /dev/null and b/uploads/addwallet.png differ diff --git a/uploads/app-store-badge-blue copy.svg b/uploads/app-store-badge-blue copy.svg new file mode 100644 index 0000000..f700030 --- /dev/null +++ b/uploads/app-store-badge-blue copy.svg @@ -0,0 +1,48 @@ + + + app-store-badge-blue copy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uploads/app-store-badge-blue.svg b/uploads/app-store-badge-blue.svg new file mode 100644 index 0000000..32947be --- /dev/null +++ b/uploads/app-store-badge-blue.svg @@ -0,0 +1,48 @@ + + + app-store-badge-blue + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uploads/avatar-alex.png b/uploads/avatar-alex.png new file mode 100644 index 0000000..072a299 Binary files /dev/null and b/uploads/avatar-alex.png differ diff --git a/uploads/avatar-daniel.png b/uploads/avatar-daniel.png new file mode 100644 index 0000000..a8baf6a Binary files /dev/null and b/uploads/avatar-daniel.png differ diff --git a/uploads/avatar-evan.png b/uploads/avatar-evan.png new file mode 100644 index 0000000..5e43fb0 Binary files /dev/null and b/uploads/avatar-evan.png differ diff --git a/uploads/avatar-john.png b/uploads/avatar-john.png new file mode 100644 index 0000000..79f20ae Binary files /dev/null and b/uploads/avatar-john.png differ diff --git a/uploads/avatar-sara.png b/uploads/avatar-sara.png new file mode 100644 index 0000000..14a7d98 Binary files /dev/null and b/uploads/avatar-sara.png differ diff --git a/uploads/avatar-tom.png b/uploads/avatar-tom.png new file mode 100644 index 0000000..52c01c2 Binary files /dev/null and b/uploads/avatar-tom.png differ diff --git a/uploads/balance.gif b/uploads/balance.gif new file mode 100644 index 0000000..080973b Binary files /dev/null and b/uploads/balance.gif differ diff --git a/uploads/bitcoin-wallet/create.png b/uploads/bitcoin-wallet/create.png new file mode 100644 index 0000000..576e394 Binary files /dev/null and b/uploads/bitcoin-wallet/create.png differ diff --git a/uploads/bitcoin-wallet/import.png b/uploads/bitcoin-wallet/import.png new file mode 100644 index 0000000..c79b66f Binary files /dev/null and b/uploads/bitcoin-wallet/import.png differ diff --git a/uploads/bitcoinwallets.png b/uploads/bitcoinwallets.png new file mode 100644 index 0000000..ba5bac4 Binary files /dev/null and b/uploads/bitcoinwallets.png differ diff --git a/uploads/blog/0__2lrGSZGY__fUbCqcm.png b/uploads/blog/0__2lrGSZGY__fUbCqcm.png new file mode 100644 index 0000000..7470d39 Binary files /dev/null and b/uploads/blog/0__2lrGSZGY__fUbCqcm.png differ diff --git a/uploads/blog/0__MaCG__qJS9u3Qf__iO.png b/uploads/blog/0__MaCG__qJS9u3Qf__iO.png new file mode 100644 index 0000000..96f622f Binary files /dev/null and b/uploads/blog/0__MaCG__qJS9u3Qf__iO.png differ diff --git a/uploads/blog/0__PKiUj__Bmuqve7jau.png b/uploads/blog/0__PKiUj__Bmuqve7jau.png new file mode 100644 index 0000000..0099c5b Binary files /dev/null and b/uploads/blog/0__PKiUj__Bmuqve7jau.png differ diff --git a/uploads/blog/0__RN3a__9aGkvwxfFi1.png b/uploads/blog/0__RN3a__9aGkvwxfFi1.png new file mode 100644 index 0000000..55ea384 Binary files /dev/null and b/uploads/blog/0__RN3a__9aGkvwxfFi1.png differ diff --git a/uploads/blog/0__T2KUg__arH5AyjUh__.png b/uploads/blog/0__T2KUg__arH5AyjUh__.png new file mode 100644 index 0000000..b75e006 Binary files /dev/null and b/uploads/blog/0__T2KUg__arH5AyjUh__.png differ diff --git a/uploads/blog/0__Xj__U8JCIvEdGqLn__.png b/uploads/blog/0__Xj__U8JCIvEdGqLn__.png new file mode 100644 index 0000000..916871c Binary files /dev/null and b/uploads/blog/0__Xj__U8JCIvEdGqLn__.png differ diff --git a/uploads/blog/0__ZpI0uoq__WolLJDrx.png b/uploads/blog/0__ZpI0uoq__WolLJDrx.png new file mode 100644 index 0000000..b7f9e2b Binary files /dev/null and b/uploads/blog/0__ZpI0uoq__WolLJDrx.png differ diff --git a/uploads/blog/0__ioWAhxCIxGqu8Lz9.png b/uploads/blog/0__ioWAhxCIxGqu8Lz9.png new file mode 100644 index 0000000..8dae744 Binary files /dev/null and b/uploads/blog/0__ioWAhxCIxGqu8Lz9.png differ diff --git a/uploads/blog/0__vTdHldiBeavNmY3U.png b/uploads/blog/0__vTdHldiBeavNmY3U.png new file mode 100644 index 0000000..724bc4c Binary files /dev/null and b/uploads/blog/0__vTdHldiBeavNmY3U.png differ diff --git a/uploads/blog/0__wzOrnxP3ajASE1jK.jpg b/uploads/blog/0__wzOrnxP3ajASE1jK.jpg new file mode 100644 index 0000000..641107d Binary files /dev/null and b/uploads/blog/0__wzOrnxP3ajASE1jK.jpg differ diff --git a/uploads/blog/0__z4NwaQD__OaiXMPbS.png b/uploads/blog/0__z4NwaQD__OaiXMPbS.png new file mode 100644 index 0000000..dcd6e02 Binary files /dev/null and b/uploads/blog/0__z4NwaQD__OaiXMPbS.png differ diff --git a/uploads/blog/1_A7Xl06wiAKH6WOpASX41MA.jpeg b/uploads/blog/1_A7Xl06wiAKH6WOpASX41MA.jpeg new file mode 100644 index 0000000..0775ecd Binary files /dev/null and b/uploads/blog/1_A7Xl06wiAKH6WOpASX41MA.jpeg differ diff --git a/uploads/blog/1_PLxkIoqqPaOh9ppT9_sKmg.jpeg b/uploads/blog/1_PLxkIoqqPaOh9ppT9_sKmg.jpeg new file mode 100644 index 0000000..344d4e4 Binary files /dev/null and b/uploads/blog/1_PLxkIoqqPaOh9ppT9_sKmg.jpeg differ diff --git a/uploads/blog/1__0AjNYIYaPUiDuS5OVtcS6g.png b/uploads/blog/1__0AjNYIYaPUiDuS5OVtcS6g.png new file mode 100644 index 0000000..619a63d Binary files /dev/null and b/uploads/blog/1__0AjNYIYaPUiDuS5OVtcS6g.png differ diff --git a/uploads/blog/1__1UgOVs9myOAfURf8t3lrEg.png b/uploads/blog/1__1UgOVs9myOAfURf8t3lrEg.png new file mode 100644 index 0000000..16397ea Binary files /dev/null and b/uploads/blog/1__1UgOVs9myOAfURf8t3lrEg.png differ diff --git a/uploads/blog/1__3UuRMNuJputXC04a9kMJgA.gif b/uploads/blog/1__3UuRMNuJputXC04a9kMJgA.gif new file mode 100644 index 0000000..cb58926 Binary files /dev/null and b/uploads/blog/1__3UuRMNuJputXC04a9kMJgA.gif differ diff --git a/uploads/blog/1__5cl6lecKsZgz__OReOGjRHA.jpeg b/uploads/blog/1__5cl6lecKsZgz__OReOGjRHA.jpeg new file mode 100644 index 0000000..b7a4972 Binary files /dev/null and b/uploads/blog/1__5cl6lecKsZgz__OReOGjRHA.jpeg differ diff --git a/uploads/blog/1__7nF2__PRwaP9pJB0WeHhtQA.png b/uploads/blog/1__7nF2__PRwaP9pJB0WeHhtQA.png new file mode 100644 index 0000000..f6a7a82 Binary files /dev/null and b/uploads/blog/1__7nF2__PRwaP9pJB0WeHhtQA.png differ diff --git a/uploads/blog/1__8aBrXNxm5J8qGqxNe3leSQ.png b/uploads/blog/1__8aBrXNxm5J8qGqxNe3leSQ.png new file mode 100644 index 0000000..75815d6 Binary files /dev/null and b/uploads/blog/1__8aBrXNxm5J8qGqxNe3leSQ.png differ diff --git a/uploads/blog/1__8ocpMPrkE__pasqTKq8NeGQ.gif b/uploads/blog/1__8ocpMPrkE__pasqTKq8NeGQ.gif new file mode 100644 index 0000000..84eb738 Binary files /dev/null and b/uploads/blog/1__8ocpMPrkE__pasqTKq8NeGQ.gif differ diff --git a/uploads/blog/1__BkxRuZqPs__H8fq1U5WYT__Q.png b/uploads/blog/1__BkxRuZqPs__H8fq1U5WYT__Q.png new file mode 100644 index 0000000..e49d5cc Binary files /dev/null and b/uploads/blog/1__BkxRuZqPs__H8fq1U5WYT__Q.png differ diff --git a/uploads/blog/1__Ce1O88UQUi7LeudYMnn2SA.gif b/uploads/blog/1__Ce1O88UQUi7LeudYMnn2SA.gif new file mode 100644 index 0000000..e2d32cd Binary files /dev/null and b/uploads/blog/1__Ce1O88UQUi7LeudYMnn2SA.gif differ diff --git a/uploads/blog/1__CfiVFmhwKLG0zFTUoMgQsg.png b/uploads/blog/1__CfiVFmhwKLG0zFTUoMgQsg.png new file mode 100644 index 0000000..b5a6382 Binary files /dev/null and b/uploads/blog/1__CfiVFmhwKLG0zFTUoMgQsg.png differ diff --git a/uploads/blog/1__HrzbozVIPmRYMJk9gJDCdg.jpeg b/uploads/blog/1__HrzbozVIPmRYMJk9gJDCdg.jpeg new file mode 100644 index 0000000..ac4b20b Binary files /dev/null and b/uploads/blog/1__HrzbozVIPmRYMJk9gJDCdg.jpeg differ diff --git a/uploads/blog/1__I6D9MS__xv7ZLI4vNs7kiqw.gif b/uploads/blog/1__I6D9MS__xv7ZLI4vNs7kiqw.gif new file mode 100644 index 0000000..c4959b1 Binary files /dev/null and b/uploads/blog/1__I6D9MS__xv7ZLI4vNs7kiqw.gif differ diff --git a/uploads/blog/1__I9tmpGCk61N84__PCZ1TBFw.gif b/uploads/blog/1__I9tmpGCk61N84__PCZ1TBFw.gif new file mode 100644 index 0000000..69b08e5 Binary files /dev/null and b/uploads/blog/1__I9tmpGCk61N84__PCZ1TBFw.gif differ diff --git a/uploads/blog/1__JZdpyNAQs0np2wgCpoHDrw.gif b/uploads/blog/1__JZdpyNAQs0np2wgCpoHDrw.gif new file mode 100644 index 0000000..81f6ea3 Binary files /dev/null and b/uploads/blog/1__JZdpyNAQs0np2wgCpoHDrw.gif differ diff --git a/uploads/blog/1__JueZcC5e5L78fmq7Rop04A.png b/uploads/blog/1__JueZcC5e5L78fmq7Rop04A.png new file mode 100644 index 0000000..efef9b0 Binary files /dev/null and b/uploads/blog/1__JueZcC5e5L78fmq7Rop04A.png differ diff --git a/uploads/blog/1__KNs1nTrAooGXllARG1kizw.png b/uploads/blog/1__KNs1nTrAooGXllARG1kizw.png new file mode 100644 index 0000000..4a4a038 Binary files /dev/null and b/uploads/blog/1__KNs1nTrAooGXllARG1kizw.png differ diff --git a/uploads/blog/1__LlOcKZ9XbM4d8ULehbImLg.png b/uploads/blog/1__LlOcKZ9XbM4d8ULehbImLg.png new file mode 100644 index 0000000..23fd0fe Binary files /dev/null and b/uploads/blog/1__LlOcKZ9XbM4d8ULehbImLg.png differ diff --git a/uploads/blog/1__OWQvkS45QPso6l8X8FVIPQ.png b/uploads/blog/1__OWQvkS45QPso6l8X8FVIPQ.png new file mode 100644 index 0000000..3e455db Binary files /dev/null and b/uploads/blog/1__OWQvkS45QPso6l8X8FVIPQ.png differ diff --git a/uploads/blog/1__Q12kpMPZ726TWRJGl__iT__w.png b/uploads/blog/1__Q12kpMPZ726TWRJGl__iT__w.png new file mode 100644 index 0000000..648a3cd Binary files /dev/null and b/uploads/blog/1__Q12kpMPZ726TWRJGl__iT__w.png differ diff --git a/uploads/blog/1__QIJKuz8hp7k9U1y__qT0MLw.jpeg b/uploads/blog/1__QIJKuz8hp7k9U1y__qT0MLw.jpeg new file mode 100644 index 0000000..54452d0 Binary files /dev/null and b/uploads/blog/1__QIJKuz8hp7k9U1y__qT0MLw.jpeg differ diff --git a/uploads/blog/1__QZlxfhsTQob4xJAaedg6DA.gif b/uploads/blog/1__QZlxfhsTQob4xJAaedg6DA.gif new file mode 100644 index 0000000..5e7b44b Binary files /dev/null and b/uploads/blog/1__QZlxfhsTQob4xJAaedg6DA.gif differ diff --git a/uploads/blog/1__Qo8UrKdO0ALiZmHdzHswrg.png b/uploads/blog/1__Qo8UrKdO0ALiZmHdzHswrg.png new file mode 100644 index 0000000..57aab4b Binary files /dev/null and b/uploads/blog/1__Qo8UrKdO0ALiZmHdzHswrg.png differ diff --git a/uploads/blog/1__QuLtnA__EGWJTNAJ__Nsk__7A.gif b/uploads/blog/1__QuLtnA__EGWJTNAJ__Nsk__7A.gif new file mode 100644 index 0000000..b4dff60 Binary files /dev/null and b/uploads/blog/1__QuLtnA__EGWJTNAJ__Nsk__7A.gif differ diff --git a/uploads/blog/1__Ts3QN99TOC2XLwA3deG41g.png b/uploads/blog/1__Ts3QN99TOC2XLwA3deG41g.png new file mode 100644 index 0000000..0fe0330 Binary files /dev/null and b/uploads/blog/1__Ts3QN99TOC2XLwA3deG41g.png differ diff --git a/uploads/blog/1__WVW3JvNUl77gU5Z0ZdsHBA.jpeg b/uploads/blog/1__WVW3JvNUl77gU5Z0ZdsHBA.jpeg new file mode 100644 index 0000000..93c542f Binary files /dev/null and b/uploads/blog/1__WVW3JvNUl77gU5Z0ZdsHBA.jpeg differ diff --git a/uploads/blog/1__WgPKeu2PHYkA4Jr0JnaThA.png b/uploads/blog/1__WgPKeu2PHYkA4Jr0JnaThA.png new file mode 100644 index 0000000..14a12dc Binary files /dev/null and b/uploads/blog/1__WgPKeu2PHYkA4Jr0JnaThA.png differ diff --git a/uploads/blog/1__Y3NBaMKtXaWMvxx2YPI7__Q.png b/uploads/blog/1__Y3NBaMKtXaWMvxx2YPI7__Q.png new file mode 100644 index 0000000..5cc1ba5 Binary files /dev/null and b/uploads/blog/1__Y3NBaMKtXaWMvxx2YPI7__Q.png differ diff --git a/uploads/blog/1____srLIaM0M9aEFIoIdCjsEw.png b/uploads/blog/1____srLIaM0M9aEFIoIdCjsEw.png new file mode 100644 index 0000000..abdf01c Binary files /dev/null and b/uploads/blog/1____srLIaM0M9aEFIoIdCjsEw.png differ diff --git a/uploads/blog/1__gxyxtWH0df__L9dz0RAbU__w.png b/uploads/blog/1__gxyxtWH0df__L9dz0RAbU__w.png new file mode 100644 index 0000000..7f511b4 Binary files /dev/null and b/uploads/blog/1__gxyxtWH0df__L9dz0RAbU__w.png differ diff --git a/uploads/blog/1__jhzjE2eK1sS8lEDutaQKgw.gif b/uploads/blog/1__jhzjE2eK1sS8lEDutaQKgw.gif new file mode 100644 index 0000000..45c52a1 Binary files /dev/null and b/uploads/blog/1__jhzjE2eK1sS8lEDutaQKgw.gif differ diff --git a/uploads/blog/1__l__z95zazGnMJMuoPyBNHxg.png b/uploads/blog/1__l__z95zazGnMJMuoPyBNHxg.png new file mode 100644 index 0000000..a906920 Binary files /dev/null and b/uploads/blog/1__l__z95zazGnMJMuoPyBNHxg.png differ diff --git a/uploads/blog/1__meQxWp__U0428GlEkJKBqeg.png b/uploads/blog/1__meQxWp__U0428GlEkJKBqeg.png new file mode 100644 index 0000000..042aaa3 Binary files /dev/null and b/uploads/blog/1__meQxWp__U0428GlEkJKBqeg.png differ diff --git a/uploads/blog/1__o0uBYENEVmezDzSSZf1KBQ.png b/uploads/blog/1__o0uBYENEVmezDzSSZf1KBQ.png new file mode 100644 index 0000000..a771d63 Binary files /dev/null and b/uploads/blog/1__o0uBYENEVmezDzSSZf1KBQ.png differ diff --git a/uploads/blog/1__pdu00hpS1hRgjpHcnBfycg.png b/uploads/blog/1__pdu00hpS1hRgjpHcnBfycg.png new file mode 100644 index 0000000..1c8234c Binary files /dev/null and b/uploads/blog/1__pdu00hpS1hRgjpHcnBfycg.png differ diff --git a/uploads/blog/1__tB0Qeaq7acgTyJmz2PA6Sg.png b/uploads/blog/1__tB0Qeaq7acgTyJmz2PA6Sg.png new file mode 100644 index 0000000..54324c3 Binary files /dev/null and b/uploads/blog/1__tB0Qeaq7acgTyJmz2PA6Sg.png differ diff --git a/uploads/blog/1__u1WsNSvvtB4HBiSVNwGlVQ.gif b/uploads/blog/1__u1WsNSvvtB4HBiSVNwGlVQ.gif new file mode 100644 index 0000000..ba90381 Binary files /dev/null and b/uploads/blog/1__u1WsNSvvtB4HBiSVNwGlVQ.gif differ diff --git a/uploads/blog/1__u52WH__MY__bPpqrb6b1tYiQ.jpeg b/uploads/blog/1__u52WH__MY__bPpqrb6b1tYiQ.jpeg new file mode 100644 index 0000000..fb05d48 Binary files /dev/null and b/uploads/blog/1__u52WH__MY__bPpqrb6b1tYiQ.jpeg differ diff --git a/uploads/blog/1__vqmo5jBOWO1VeKG25UHvXQ.png b/uploads/blog/1__vqmo5jBOWO1VeKG25UHvXQ.png new file mode 100644 index 0000000..cc470c8 Binary files /dev/null and b/uploads/blog/1__vqmo5jBOWO1VeKG25UHvXQ.png differ diff --git a/uploads/blog/1__w__mUqMrlx4lhyTqnXc9MCA.jpeg b/uploads/blog/1__w__mUqMrlx4lhyTqnXc9MCA.jpeg new file mode 100644 index 0000000..498155f Binary files /dev/null and b/uploads/blog/1__w__mUqMrlx4lhyTqnXc9MCA.jpeg differ diff --git a/uploads/blog/1__xCzKdweAJ__YNrvXwhkqfTw.png b/uploads/blog/1__xCzKdweAJ__YNrvXwhkqfTw.png new file mode 100644 index 0000000..93e88b5 Binary files /dev/null and b/uploads/blog/1__xCzKdweAJ__YNrvXwhkqfTw.png differ diff --git a/uploads/blog/1__xSS3BEad9Wx9BpmVoe2W4A.png b/uploads/blog/1__xSS3BEad9Wx9BpmVoe2W4A.png new file mode 100644 index 0000000..4917897 Binary files /dev/null and b/uploads/blog/1__xSS3BEad9Wx9BpmVoe2W4A.png differ diff --git a/uploads/blog/1__y4mllrICanzylWy4rrkdyg.png b/uploads/blog/1__y4mllrICanzylWy4rrkdyg.png new file mode 100644 index 0000000..2ee3fcd Binary files /dev/null and b/uploads/blog/1__y4mllrICanzylWy4rrkdyg.png differ diff --git a/uploads/blog/1__ylHJ4Hf5by83gH6JS5HGFA.png b/uploads/blog/1__ylHJ4Hf5by83gH6JS5HGFA.png new file mode 100644 index 0000000..7c826c3 Binary files /dev/null and b/uploads/blog/1__ylHJ4Hf5by83gH6JS5HGFA.png differ diff --git a/uploads/blog/1__zAuAugQjltOFVNXMTMB79g.png b/uploads/blog/1__zAuAugQjltOFVNXMTMB79g.png new file mode 100644 index 0000000..e6836ff Binary files /dev/null and b/uploads/blog/1__zAuAugQjltOFVNXMTMB79g.png differ diff --git a/uploads/blog/1_p9jWuLeYrjaAk72lj8_0_A.png b/uploads/blog/1_p9jWuLeYrjaAk72lj8_0_A.png new file mode 100644 index 0000000..28cb912 Binary files /dev/null and b/uploads/blog/1_p9jWuLeYrjaAk72lj8_0_A.png differ diff --git a/uploads/blog/1_qimXeoqtnjceQQtxpyrSgA.png b/uploads/blog/1_qimXeoqtnjceQQtxpyrSgA.png new file mode 100644 index 0000000..062403b Binary files /dev/null and b/uploads/blog/1_qimXeoqtnjceQQtxpyrSgA.png differ diff --git a/uploads/bluedocs.svg b/uploads/bluedocs.svg new file mode 100644 index 0000000..660933f --- /dev/null +++ b/uploads/bluedocs.svg @@ -0,0 +1,39 @@ + + + + bluedocs + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uploads/bluewallet-first-page.png b/uploads/bluewallet-first-page.png new file mode 100644 index 0000000..ed03bfa Binary files /dev/null and b/uploads/bluewallet-first-page.png differ diff --git a/uploads/bluewallet.png b/uploads/bluewallet.png new file mode 100644 index 0000000..72577ce Binary files /dev/null and b/uploads/bluewallet.png differ diff --git a/uploads/coin-flip-manual-entropy.png b/uploads/coin-flip-manual-entropy.png new file mode 100644 index 0000000..af8d0f6 Binary files /dev/null and b/uploads/coin-flip-manual-entropy.png differ diff --git a/uploads/desktop-bitcoin-wallet.png b/uploads/desktop-bitcoin-wallet.png new file mode 100644 index 0000000..041c8ec Binary files /dev/null and b/uploads/desktop-bitcoin-wallet.png differ diff --git a/uploads/favicon.png b/uploads/favicon.png new file mode 100644 index 0000000..f8650fd Binary files /dev/null and b/uploads/favicon.png differ diff --git a/uploads/features/batch.png b/uploads/features/batch.png new file mode 100644 index 0000000..7111417 Binary files /dev/null and b/uploads/features/batch.png differ diff --git a/uploads/features/fees.png b/uploads/features/fees.png new file mode 100644 index 0000000..81b8a70 Binary files /dev/null and b/uploads/features/fees.png differ diff --git a/uploads/features/lightning.png b/uploads/features/lightning.png new file mode 100644 index 0000000..6ad85c3 Binary files /dev/null and b/uploads/features/lightning.png differ diff --git a/uploads/features/multi-wallet.mp4 b/uploads/features/multi-wallet.mp4 new file mode 100644 index 0000000..447d8c6 Binary files /dev/null and b/uploads/features/multi-wallet.mp4 differ diff --git a/uploads/features/multisig.mp4 b/uploads/features/multisig.mp4 new file mode 100644 index 0000000..17bb1cd Binary files /dev/null and b/uploads/features/multisig.mp4 differ diff --git a/uploads/features/notifications.png b/uploads/features/notifications.png new file mode 100644 index 0000000..0bde65d Binary files /dev/null and b/uploads/features/notifications.png differ diff --git a/uploads/features/pb.png b/uploads/features/pb.png new file mode 100644 index 0000000..b710221 Binary files /dev/null and b/uploads/features/pb.png differ diff --git a/uploads/features/recover.png b/uploads/features/recover.png new file mode 100644 index 0000000..5e39045 Binary files /dev/null and b/uploads/features/recover.png differ diff --git a/uploads/features/watch-only.mp4 b/uploads/features/watch-only.mp4 new file mode 100644 index 0000000..f6fc0ec Binary files /dev/null and b/uploads/features/watch-only.mp4 differ diff --git a/uploads/fees.svg b/uploads/fees.svg new file mode 100644 index 0000000..4f88b79 --- /dev/null +++ b/uploads/fees.svg @@ -0,0 +1,24 @@ + + + Group 17 + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uploads/github.svg b/uploads/github.svg new file mode 100644 index 0000000..d590fb2 --- /dev/null +++ b/uploads/github.svg @@ -0,0 +1,15 @@ + + + Path + + + + + + + + + + + + \ No newline at end of file diff --git a/uploads/igor.png b/uploads/igor.png new file mode 100644 index 0000000..cde58dd Binary files /dev/null and b/uploads/igor.png differ diff --git a/uploads/image1.png b/uploads/image1.png new file mode 100644 index 0000000..a7125c3 Binary files /dev/null and b/uploads/image1.png differ diff --git a/uploads/images/bitcoin-bech32.png b/uploads/images/bitcoin-bech32.png new file mode 100644 index 0000000..f21510a Binary files /dev/null and b/uploads/images/bitcoin-bech32.png differ diff --git a/uploads/images/bitcoin-bread.png b/uploads/images/bitcoin-bread.png new file mode 100644 index 0000000..d50a358 Binary files /dev/null and b/uploads/images/bitcoin-bread.png differ diff --git a/uploads/images/bitcoin-electrum.png b/uploads/images/bitcoin-electrum.png new file mode 100644 index 0000000..af88a01 Binary files /dev/null and b/uploads/images/bitcoin-electrum.png differ diff --git a/uploads/images/bitcoin-legacy.png b/uploads/images/bitcoin-legacy.png new file mode 100644 index 0000000..f8c6576 Binary files /dev/null and b/uploads/images/bitcoin-legacy.png differ diff --git a/uploads/images/bitcoin-lightning.png b/uploads/images/bitcoin-lightning.png new file mode 100644 index 0000000..8bfc990 Binary files /dev/null and b/uploads/images/bitcoin-lightning.png differ diff --git a/uploads/images/bitcoin-native-segwit.png b/uploads/images/bitcoin-native-segwit.png new file mode 100644 index 0000000..0e542b5 Binary files /dev/null and b/uploads/images/bitcoin-native-segwit.png differ diff --git a/uploads/images/bitcoin-segwit.png b/uploads/images/bitcoin-segwit.png new file mode 100644 index 0000000..619db6f Binary files /dev/null and b/uploads/images/bitcoin-segwit.png differ diff --git a/uploads/images/bitcoin-vault.png b/uploads/images/bitcoin-vault.png new file mode 100644 index 0000000..ab1f57e Binary files /dev/null and b/uploads/images/bitcoin-vault.png differ diff --git a/uploads/images/bitcoin-watch-only.png b/uploads/images/bitcoin-watch-only.png new file mode 100644 index 0000000..db6729d Binary files /dev/null and b/uploads/images/bitcoin-watch-only.png differ diff --git a/uploads/import-wallet.png b/uploads/import-wallet.png new file mode 100644 index 0000000..6235f41 Binary files /dev/null and b/uploads/import-wallet.png differ diff --git a/uploads/importok.png b/uploads/importok.png new file mode 100644 index 0000000..cde94c3 Binary files /dev/null and b/uploads/importok.png differ diff --git a/uploads/importwallet.png b/uploads/importwallet.png new file mode 100644 index 0000000..63e40f8 Binary files /dev/null and b/uploads/importwallet.png differ diff --git a/uploads/incomplete-manual-entropy.png b/uploads/incomplete-manual-entropy.png new file mode 100644 index 0000000..53a3288 Binary files /dev/null and b/uploads/incomplete-manual-entropy.png differ diff --git a/uploads/iphoneX.png b/uploads/iphoneX.png new file mode 100644 index 0000000..df41808 Binary files /dev/null and b/uploads/iphoneX.png differ diff --git a/uploads/knowledge.svg b/uploads/knowledge.svg new file mode 100644 index 0000000..eb35de5 --- /dev/null +++ b/uploads/knowledge.svg @@ -0,0 +1 @@ +knowledge \ No newline at end of file diff --git a/uploads/lightning-wallet.png b/uploads/lightning-wallet.png new file mode 100644 index 0000000..e203c4d Binary files /dev/null and b/uploads/lightning-wallet.png differ diff --git a/uploads/lightning.svg b/uploads/lightning.svg new file mode 100644 index 0000000..0be25e6 --- /dev/null +++ b/uploads/lightning.svg @@ -0,0 +1,25 @@ + + + instant_access47a39045f3fa064c805b1c4236f56fa4 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uploads/local-trader.svg b/uploads/local-trader.svg new file mode 100644 index 0000000..d965a73 --- /dev/null +++ b/uploads/local-trader.svg @@ -0,0 +1,22 @@ + + + local-step1 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uploads/local-trader/lndhub-graph.png b/uploads/local-trader/lndhub-graph.png new file mode 100644 index 0000000..5069b48 Binary files /dev/null and b/uploads/local-trader/lndhub-graph.png differ diff --git a/uploads/local-trader/lndhub-logo.svg b/uploads/local-trader/lndhub-logo.svg new file mode 100644 index 0000000..9b61f41 --- /dev/null +++ b/uploads/local-trader/lndhub-logo.svg @@ -0,0 +1,14 @@ + + + lndhub + + + + + + + + + + + \ No newline at end of file diff --git a/uploads/local-trader/local-step1.svg b/uploads/local-trader/local-step1.svg new file mode 100644 index 0000000..d965a73 --- /dev/null +++ b/uploads/local-trader/local-step1.svg @@ -0,0 +1,22 @@ + + + local-step1 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uploads/local-trader/local-step2.svg b/uploads/local-trader/local-step2.svg new file mode 100644 index 0000000..4b8f114 --- /dev/null +++ b/uploads/local-trader/local-step2.svg @@ -0,0 +1,32 @@ + + + local-step2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uploads/local-trader/local-step3.svg b/uploads/local-trader/local-step3.svg new file mode 100644 index 0000000..e5ddc80 --- /dev/null +++ b/uploads/local-trader/local-step3.svg @@ -0,0 +1,25 @@ + + + local-step3 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uploads/local-trader/local-step4.svg b/uploads/local-trader/local-step4.svg new file mode 100644 index 0000000..466fb2b --- /dev/null +++ b/uploads/local-trader/local-step4.svg @@ -0,0 +1,37 @@ + + + local-step4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uploads/localtrader-hero.png b/uploads/localtrader-hero.png new file mode 100644 index 0000000..7708bc8 Binary files /dev/null and b/uploads/localtrader-hero.png differ diff --git a/uploads/logo-bluewallet.svg b/uploads/logo-bluewallet.svg new file mode 100644 index 0000000..3cc93a3 --- /dev/null +++ b/uploads/logo-bluewallet.svg @@ -0,0 +1,40 @@ + + + logo-bluewallet + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uploads/mac-store-badge.svg b/uploads/mac-store-badge.svg new file mode 100644 index 0000000..b347587 --- /dev/null +++ b/uploads/mac-store-badge.svg @@ -0,0 +1,23 @@ + + + app-store-badge-blue + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uploads/manual-entropy-used.png b/uploads/manual-entropy-used.png new file mode 100644 index 0000000..b4f70e0 Binary files /dev/null and b/uploads/manual-entropy-used.png differ diff --git a/uploads/marcos.png b/uploads/marcos.png new file mode 100644 index 0000000..69fc799 Binary files /dev/null and b/uploads/marcos.png differ diff --git a/uploads/ms-vault.svg b/uploads/ms-vault.svg new file mode 100644 index 0000000..58d620d --- /dev/null +++ b/uploads/ms-vault.svg @@ -0,0 +1,21 @@ + + + Group + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uploads/multisig-wallet.png b/uploads/multisig-wallet.png new file mode 100644 index 0000000..3963a5a Binary files /dev/null and b/uploads/multisig-wallet.png differ diff --git a/uploads/notifications.svg b/uploads/notifications.svg new file mode 100644 index 0000000..22a756e --- /dev/null +++ b/uploads/notifications.svg @@ -0,0 +1,21 @@ + + + noun_notification_325051 + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uploads/nuno.png b/uploads/nuno.png new file mode 100644 index 0000000..8a3b0d2 Binary files /dev/null and b/uploads/nuno.png differ diff --git a/uploads/pdeniability.svg b/uploads/pdeniability.svg new file mode 100644 index 0000000..be1efdf --- /dev/null +++ b/uploads/pdeniability.svg @@ -0,0 +1,25 @@ + + + Group 13 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uploads/play-store-badge-blue copy.svg b/uploads/play-store-badge-blue copy.svg new file mode 100644 index 0000000..8dfe623 --- /dev/null +++ b/uploads/play-store-badge-blue copy.svg @@ -0,0 +1,55 @@ + + + play-store-badge-blue copy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uploads/play-store-badge-blue.svg b/uploads/play-store-badge-blue.svg new file mode 100644 index 0000000..31cb211 --- /dev/null +++ b/uploads/play-store-badge-blue.svg @@ -0,0 +1,55 @@ + + + play-store-badge-blue + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uploads/slideshow-1/success.1.png b/uploads/slideshow-1/success.1.png new file mode 100644 index 0000000..14099f9 Binary files /dev/null and b/uploads/slideshow-1/success.1.png differ diff --git a/uploads/slideshow-1/success.png b/uploads/slideshow-1/success.png new file mode 100644 index 0000000..14099f9 Binary files /dev/null and b/uploads/slideshow-1/success.png differ diff --git a/uploads/success.png b/uploads/success.png new file mode 100644 index 0000000..14099f9 Binary files /dev/null and b/uploads/success.png differ diff --git a/uploads/telegram.svg b/uploads/telegram.svg new file mode 100644 index 0000000..0c95d81 --- /dev/null +++ b/uploads/telegram.svg @@ -0,0 +1,13 @@ + + + telegram + + + + + + + + + + \ No newline at end of file diff --git a/uploads/twitter.svg b/uploads/twitter.svg new file mode 100644 index 0000000..096041a --- /dev/null +++ b/uploads/twitter.svg @@ -0,0 +1,15 @@ + + + twitter + + + + + + + + + + + + \ No newline at end of file diff --git a/uploads/watch-app/watch-demo.png b/uploads/watch-app/watch-demo.png new file mode 100644 index 0000000..0d2f587 Binary files /dev/null and b/uploads/watch-app/watch-demo.png differ diff --git a/uploads/watch-app/watch-head.png b/uploads/watch-app/watch-head.png new file mode 100644 index 0000000..17bda5b Binary files /dev/null and b/uploads/watch-app/watch-head.png differ diff --git a/uploads/watch-only-hero.png b/uploads/watch-only-hero.png new file mode 100644 index 0000000..09d1bb3 Binary files /dev/null and b/uploads/watch-only-hero.png differ diff --git a/uploads/watch-only.svg b/uploads/watch-only.svg new file mode 100644 index 0000000..20dc28d --- /dev/null +++ b/uploads/watch-only.svg @@ -0,0 +1,21 @@ + + + local-step1 copy + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/watch-app.md b/watch-app.md new file mode 100644 index 0000000..59f754e --- /dev/null +++ b/watch-app.md @@ -0,0 +1,10 @@ +--- +layout: page +width: expand +permalink: /watch-app +title: Apple Watch app - Bitcoin and Lightning wallet for iOS and Apple Watch +description: Apple Watch app for bitcoin and lightning +--- + +{% include watch-app.html %} + diff --git a/watch-only.md b/watch-only.md new file mode 100644 index 0000000..29e414c --- /dev/null +++ b/watch-only.md @@ -0,0 +1,10 @@ +--- +layout: page +width: expand +permalink: /watch-only +title: Watch-only Wallet - Bitcoin wallet for iOS and Android +description: Watch-only wallets are cold storage wallets for improved bitcoin security. A Bitcoin wallet for iOS. Easy to use and secure +--- + +{% include watch-only.html %} +